1
课程详述
COURSE SPECIFICATION
以下课程信息可能根据实际授课需要或在课程检讨之后产生变动。如对课程有任何疑问,请
联系授课教师。
The course information as follows may be subject to change, either during the session because of unforeseen
circumstances, or following review of the course at the end of the session. Queries about the course should be
directed to the course instructor.
1.
课程名称 Course Title
计算机组成原理(H Computer Organization (H)
2.
授课院系
Originating Department
计算机科学与工程系 Department of Computer Science and Engineering
3.
课程编号
Course Code
CS214
4.
课程学分 Credit Value
3
5.
课程类别
Course Type
专业基础课 Major Foundational Courses
6.
授课学期
Semester
春季 Spring
7.
授课语言
Teaching Language
中英双语 English & Chinese
8.
他授课教师)
Instructor(s), Affiliation&
Contact
For team teaching, please list
all instructors
张进,助理教授,计算机科学与工程系,zhangj4@sustech.edu.cn
Jin Zhang, Assistant Professor, Department of Computer Science and Engineering,
zhangj4@sustech.edu.cn
9.
实验员/所属学系
方式
Tutor/TA(s), Contact
王薇,教学实验师,计算机科学与工程系,wangw6@sustech.edu.cn
Wei Wang, Assistant Teaching Technician, Department of Computer Science and
Engineering, wangw6@sustech.edu.cn
10.
选课人数限额(可不填)
Maximum Enrolment
Optional
2
11.
讲授
Lectures
习题/辅导/讨论
Tutorials
实验/实习
Lab/Practical
其它(请具体注明)
OtherPlease specify
总学时
Total
32
32
64
12.
先修课程、其它学习要求
Pre-requisites or Other
Academic Requirements
CS207 数字逻辑 Digital Logic
13.
后续课程、其它学习规划
Courses for which this course
is a pre-requisite
None.
14.
其它要求修读本课程的学系
Cross-listing Dept.
Not applicable for other departments beside CS.
教学大纲及教学日历 SYLLABUS
15.
教学目标 Course Objectives
1. Learning the organizational structures that determine the capabilities and performance of computer systems.
Understanding the basic design principles of computer system.
2. Understanding the interactions between the computer’s architecture and its software.
3. Review various computer systems and various instruction set of real computers nowadays.
4. Be able to design the pipeline in processor.
5. Familiar with the memory hierarchy in computer systems.
1. 学习决定计算机系统性能的相关计算机系统的基本组成结构,理解计算机系统设计的基本设计思路和原理;
2. 理解计算机体系结构与软件系统的相互关系;
3. 了解现今各种计算机系统的系统架构和指令集架构;
4. 掌握流水线处理器的设计;
5. 掌握计算机系统的存储器层次结构。
16.
预达学习成果 Learning Outcomes
This course provides a solid theoretical foundation that furnishes the student with insight into the innermost workings of
the modern digital computer, together with a thorough understanding of the organization and architecture of real
computers. The main content students should grasp includes instruction set, arithmetic operation, pipeline, hierarchical
memory and parallel processing.
Assembly language programing using MIPS instructions
Design a reduced CPU on a FPGA using Verilog.
Understand the interaction of hardware and software.
Grasp the basic principles and implementation of Parallel processors.
Be familiar with the basic principles, architectures and application scenarios of cloud computing system.
3
掌握计算机系统的基本概念、基本原理、基本设计和分析方法,主要包括指令集、CPU 的算术运算、流水线、层次存储
结构以及并行计算机系统的基本原理和设计方法。
掌握基于 MIPS 指令集的汇编语言编程。
掌握基于 verilog 语言的 CPU系统设计
理解计算机系统的硬件与软件的关联与依赖关系。
掌握并行处理器的工作原理与实现。
了解云计算系统的基本原理、基本架构与应用领域。
17.
课程内容及教学日 (如授课语言以英文为主,则课程内容介绍可以用英文;如团队教学或模块教学,教学日历须注明
主讲人)
Course Contents (in Parts/Chapters/Sections/Weeks. Please notify name of instructor for course section(s), if
this is a team teaching or module course.)
Lecture 1. Course introduction
The importance of computer organization, background and computer abstraction
Lab 1. Practice on MIPS simulator (QtSpim, Mars), assembly and run a MIPS demo
Lecture 2. Computer System Performance: Performance metric, Power wall, the switch from single processors to multi
processors
Lab 2. Practice on the load and store and arithmetic instruction.
Lecture 3. Instruction Set Architecture 1
Instruction set architecture, instructions, basic concepts
Lab 3. Practice on the data process in MIPS, including big-endian and small-endian, signed and unsigned data,
practice shift and logic instruction.
Lecture 4. Instruction Set Architecture 2
Control instructions, procedure call/return, MIPS addressing, translating and starting a program, a C sort
example, other popular ISAs
Lab 4. Practice on the branch and jump instruction, practice on switch and loop procession. Practice on the function
and macro, practice the stack and heap
Lecture 5. Arithmetic for computers (Integers):
Addition and subtraction, multiple and division, dealing with overflow
Lab 5. Learn the exception in arithmetic operation, practice how to write an exception handler.
Lecture 6. Arithmetic for computers (floating point numbers):
Addition and subtraction, multiplication and division
Lab 6. Practice on the instruction on float-point data.
Lecture 7. Processor:
Methods for logical design, single-clock CPU design, datapath
Lab 7. Using vivado and minisys to develop board, practice a verilog module.
Lecture 8. An overview of Pipelineing, resource hazards, data hazards, control hazards, MIPS pipeline, pipeline
performance
Lab 8. Design an ALU by using Verilog, design the control unit by Verilog, design the decoding unit by verilog.
Lecture 9. Midterm exam
Lab 9. Project explanation
Lecture 10. Instruction-Level Parallelism and Its Exploitation
Lab 10. Design of a multi-clock CPU with pipeline
4
Lecture 11. Data-Level Parallelism in Vector, SIMD, and GPU Architectures
Scheduling example, loop unrolling, dynamic multiple issue,
Lab 11. Experiment about SIMD
Lecture 12. Memory Hierarchy:
SRAM, DRAM and flash, direct-map cache, set-associative cache, dependable memory hierarchy
Lab 12. Experiment about GPU
Lecture 13. Virtual machine, cache access and invoking, virtual memory
Lab 13. Design a memory unit and I/O unit by Verilog.
Lecture 14. Parallel Processors,
SISD, MIMD, SIMD, SPMD and vector machine
Lab 14. Design a single cycle CPU which could process simple MIPS instruction (1)
Lecture 15. Warehouse network, cloud computing, GPU, multi-processors
Lab 15. Design a single cycle CPU which could process simple MIPS instruction (continue)
Lecture 16. Summary & review
Lab 16. Project presentation
1 . 课程介绍:
计算机组织、背景和计算机抽象的重要性
实验 1. 学习 MIPS 模拟器(QtSpimMars)的使用,并在模拟器上进行 MIPS 指令的编程、编译及运行。
2 . 计算机系统性能:性能指标、功耗墙、从单处理器到多处理器的转换
实验 2. MIPS 加载(load)、存储(store)以及算术(arithmetic)指令的练习。
3 . 指令集体系结构 1
指令集体系结构、指令、基本概念
实验 3. MIPS 数据处理练习,包括大端和小端数据存储、有符号和无符号数据、移位和逻辑指令的练习。
4 . 指令集体系结构 2
控制指令、过程调用(call/返回、MIPS寻址、翻译和启动 MIPS程序、C 排序示例、其他流行的指令集体
系结构(ISA
实验 4. 练习分支(branch)指令、跳转(jump)指令、多分支(switch)指令和循环(loop)指令的处理。练习函数
和宏,练习栈和堆。
5 . 计算机算术运算(整型数据):
加法运算、减法运算、乘法运算、除法运算、溢出的处理
实验 5. 学习算术运算中的异常,练习如何编写异常处理程序。
6 . 计算机算术运算(浮点型数据):
加法运算、减法运算、乘法运算、除法运算
实验 6. 浮点型数据指令的练习。
7 . 处理器:
逻辑设计方法,单时钟 CPU 的设计,数据通路
实验 7. 使用 Vivado集成开发环境和 Minisys 开发板,练习 Verilog 模块。
5
8 . 流水线概述,资源冲突,数据冲突,控制冲突,MIPS 流水线,流水线性能
实验 8. Verilog 设计算逻运算单元(ALU),控制单元,和译码单元。
9 . 期中考试
实验 9. 学生项目(project)要求讲解
10 . 指令级并行及其开发
实验 10. 带流水线的多时钟 CPU 的设计
Lecture 11. 向量机、单指令多数据流(SIMD)和图形处理单元(GPU)体系结构中的数据级并行性
调度示例,循环展开,动态多发射
实验 11. 单指令多数据流(SIMD)实验
12 . 存储器层次结构:
静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和闪存(flash)、直接映射缓存(direct-
map cache)、组相联缓存(set-associative cache)、可信存储器层次
实验 12. 图形处理单元(GPU)实验
13 . 虚拟机、缓存访问和调用、虚拟内存
实验 13. Verilog 设计存储单元和输入/输出(I/O)单元。
14 . 并行处理器:
单指令流单数据流处理器(SISD),多指令流多数据流处理器(MIMD),单指令流多数据流处理器
SIMD),单程序多数据流处理器(SPMD)和向量机
实验 14. 设计一个可以处理简单 MIPS 指令的单周期 CPU (1)
15 . 仓库网络、云计算、图形处理单元(GPU)、多处理器
实验 15. 设计一个可以处理简单 MIPS 指令的单周期 CPU ()
16 . 课程总结与回顾
实验 16. 学生项目(project)演示
18.
教材及其它参考资 Textbook and Supplementary Readings
Computer Organization and Design the HW/SW Interface, Patterson and Hennessy, 5th edition
Computer Architecture - a quantitative approach, Hennessy and Patterson, 5th edition
6
课程评估 ASSESSMENT
19.
评估形式
Type of
Assessment
评估时间
Time
占考试总成绩百分
% of final
score
违纪处罚
Penalty
备注
Notes
出勤 Attendance
课堂表现
Class
Performance
小测验
Quiz
课程项目 Projects
15%
平时作业
Assignments
25%
期中考试
Mid-Term Test
2-hours
30%
期末考试
Final Exam
2-hours
30%
期末报告
Final
Presentation
其它(可根据需要
改写以上评估方
式)
Others (The
above may be
modified as
necessary)
20.
记分方式 GRADING SYSTEM
A. 十三级等级制 Letter Grading
B. 二级记分制(通过/不通过) Pass/Fail Grading
课程审批 REVIEW AND APPROVAL
21.
本课程设置已经过以下责任人/委员会审议通过
This Course has been approved by the following person or committee of authority