计算机组成原理教学课件 王 诚 教授 清华大学计算机系 2009 年 10 月

24
计计计计计计计计计计计 计计 计计计计计计计计 2009 年 10 年

Upload: nellie

Post on 15-Jan-2016

150 views

Category:

Documents


0 download

DESCRIPTION

计算机组成原理教学课件 王 诚 教授 清华大学计算机系 2009 年 10 月. 第 1 章 计算机系统概述. (为何要学习这门课程,怎么学,如何要求, 课程主要内容简介) 1.1 计算机系统的基本组成及其层次结构 1.2 计算机硬件的5个功能部件及其功能 1.3  计算机系统主要的技术与性能指标 1.4 计算机的体系结构、组成和实现概述 1.5 计算机发展进步、分类和拓展应用进程. 为什么要学习 计算机组成原理 这门课程. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

计算机组成原理教学课件

王 诚 教授清华大学计算机系

2009 年 10 月

Page 2: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

第 1 章 计算机系统概述

(为何要学习这门课程,怎么学,如何要求,课程主要内容简介)

1.1 计算机系统的基本组成及其层次结构 1.2 计算机硬件的5个功能部件及其功能 1.3  计算机系统主要的技术与性能指标 1.4 计算机的体系结构、组成和实现概述 1.5 计算机发展进步、分类和拓展应用进程

Page 3: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

为什么要学习计算机组成原理这门课程

计算机组成原理是计算机专业本科生的一门统设必修的专业基础课程。在我们系强调培养计算机应用型人才,是把这门课程作为计算机系统平台的内容之一来安排的。 不是只有设计计算机硬件系统的人才要学这门课 ,计算机专业的人员都应该对其有所了解。选择了计算机专业,终生要与计算机系统打交道、要使用好计算机就应该学习这门课,否则就算不上一名合格的计算机专业人员。总不该把计算机硬件系统看作为电视机一样的产品,开一下电源选选台能看节目了就行了。 计算机中有许多知识是到处都会用到的,是学习后续多门课程 ( 系统结构, 操作系统,编译原理,高级语言程序设计 , 计算机网络,数据库 ) 的基础,将来工作中如何想清楚、如何解决遇到的许多问题都会涉及到计算机的硬件问题。 1

Page 4: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

课程有多难,能不能学好 说计算机组成原理课程不是太难学是不能令人信服的,说根本无法学好也缺乏足够的理由和证据。 从计算机组成原理的内容来讲,实在没有太多难懂的原理,与生活中遇到的许多很平常的现象大有同工异曲之处,它不像数学,没有多少理论推导,也没有物理学中的高深理论,不用冥思苦想,接受它的规定和实现方案即可。如果说难,难就难在计算机中的问题是我们平时从未接触到、更没亲眼看见过事物,尚未碰到先怕三分,把本来简单的问题折腾复杂了;教师缺乏计算机系统设计的工程背景进一步加剧了这个矛盾。 学生应该根据自己的实际水平和将来的工作要求,恰当地确定对自己学习这门课程的要求。 2

Page 5: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

课程教学定位和教学要求

计算机组成原理课程教学应该建立在硬、软件组成大体完整的系统平台之上,无疑这是一门硬件内容为主的课程,但需要兼顾一点基础软件的课程,认为课程内容只限于纯硬件 (裸机 ) 是很过时的认识,至少需要了解汇编语言以及计算机系统操作使用方面的基础知识,把学习和使用硬件结合起来。 教学过程中,要把学习原理知识和应用原理解决实际问题结合起来,避免泛泛地讲解书本内容,解决问题可以首先从看别人怎么用已知原理设计实现实用系统,再考虑自己能做些什么实际工作才会使学习更有趣味,更有用。 学生可以对自己提出主要学懂基本原理并能通过考试为底线要求,和还有一定应用能力的正常要求。

3

Page 6: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

这里说的计算机系统( computer system),是指电子数字通用计算机系统,三个定语各自表明了计算机系统的一个方面的特性。

“电子”一词表明使用电子线路(不同于机械、继电器等)来实现计算机硬件的关键逻辑功能;

“数字”一词表明使用的电子线路是数字式电路(不同于模拟电路),运算和处理的数据是二进制的离散数据(不同于连续的电压或电流量); “通用”一词表明计算机本身功能多样 (并非专用于某种特定功能 ) ,具有完成各种运算或数据处理能力。

1 、计算机系统概述

4

Page 7: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

计算机系统由硬件和软件两大部分组成。 硬件指由中央处理器、存储器以及外围设备等组成的实际装置,硬件的作用是完成每条指令规定的功能。 指令是计算机运行的最小的功能单位,指令是指示计算机硬件执行某种运算、处理功能的命令。  软件是为了使用计算机而编写的各种系统的和用户的程序,程序由一个序列的计算机指令组成。指令是用于设计程序的一种计算机语言。  一台计算机提供的全部指令构成该计算机的指令系统。指令系统的设计质量关系到厂家和用户的利益。  硬、软件系统相互依存,分工互动,缺一不可,如同一个健全人的物质性的肉体和精神性的智力与思维。

计算机系统概述

5

Page 8: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

汇编语言层

操作系统层

指令系统层

微体系结构层

数字逻辑层

高级语言层

应用层

计算机系统的层次结构

可以从 6 个层次分析和看待计算机系统的基本组成。 最低的2层属于硬件部分,硬件系统用于实现每条指令的功能,解决程序中指令间的衔接系。

上面的3层属于软件部分,软件由按一定规则组织起来的许多条指令组成,完成一定的数据运算或者事务处理功能。

指令系统处在硬件系统和软件系统之间,是硬、软件之间的接口部分,对两部分都有重要影响。

微体系结构层

件 系 统

计算机系统的层次结构

6

Page 9: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

软件是为了使用计算机而编写的各种系统的和用户的程序,程序由一个序列的计算机指令组成。

在计算机系统的6层结构中给出的基本软件包括操作系统和3个级别的计算机语言。

  操作系统主要完成对系统中的硬、软件资源的管理与调度分配,并向程序设计人员和计算机的操作者提供各种服务。

  3个级别的语言是机器语言(二进制代码语言)、汇编语言(符号语言)和高级语言(算法语言),使用它们设计程序的难易程度和工作效率差别很大。

计算机中的基本软件系统

7

Page 10: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

以计算从 1 到 10 的累加和为例,看一看 3 个级别语言的程序例子,并简单介绍该机器语言程序在计算机内部的执行过程。

BASIC 程序 汇编语言程序 机器语言程序 (16 进制 )

10 sum=0 2000: sub R15, R15 01FF

20 for i=1 to 10 sub R1, R1 0111

30 sum=sum+i mvrd R0, 0A 8800 000A

40 next i inc R1 0910

50 print sum add R15, R1 00F1

60 end cmp R1, R0 0310

jrnz 2004 47FC

cala 0664 CE00 0064

ret 8F00

三个级别的程序设计语言语言

15

Page 11: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

数据运算部件

计算机控制部件

数据存储部件

接口线路数据输入设备

接口线路结果输出设备

数据总线地址总线控制总线

计算机主机

计算机外围设备

计算机的 CPU

硬件系统由 5 个功能部件组成,是课程的核心内容

2、计算机中的基本硬件系统

8

Page 12: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

  硬件系统由 5 个功能部件组成。数据输入设备分担对程序和原始数据的输入功能,数据存储部件分担对程序和数据的存储功能,数据运算部件分担对数据的运算处理功能,结果输出设备分担对运算处理结果的输出功能。控制器部件则是依照每条指令的运行功能的需要,向各个部件或设备提供它们协调运行所需要的控制信号,在整个硬件系统中起到指挥、协调和控制的作用。  图中间部位给出的是计算机的3种类型的总线,可以看出,计算机的5个功能部件正是通过这3种类型的总线被有机地连接在一起,从而构成一台完整的、可以协调运行(执行程序)的计算机硬件系统。  

计算机中的基本硬件系统

8

Page 13: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

  可以把计算机想象为一个加工处理数据的工厂,则数据运算部件就是数据加工车间,数据存储部件就是存放原材料、半成品和产品的库房,输入设备相当于运入原材料的卡车,输出设备相当于运出最终产品的卡车,控制部件则相当于承担领导指挥功能的厂长和各个职能办公室。在领导的正确指挥下,如果能够源源不断地取得原材料,工厂内又有存放的场所,车间能够对这些原材料进行指定的加工处理,加工后的产品可以畅通地运出去销售,则这个工厂(计算机)就纳入正常运行的轨道。  前面说的还只限于硬件,当然号必须有配套的软件系统,例如工厂就需要有管理制度、运营策略等。

计算机中的基本硬件系统

8

Page 14: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

( 1)计算机的字长

在计算机系统内部,通常选用多少个二进制位来表示一个数据或一条指令是一个关键技术指标,例如 16 、32或者 64位,这个位数被称为计算机的字长。例如在32位字长的计算机系统中,一个整数、一条指令通常都用 32位二进制数表示,叫做一个字,运算器、存储器、数据和地址总线等通常都被设计成 32位。字长对计算机的处理能力和运行性能有明显影响,字长较长有利于提高计算机的性能,但需要使用更多的硬件,计算机系统的价格也会高一些。

3、计算机系统的主要技术与性能指标

7

Page 15: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

(2) CPU的速度 衡量 CPU速度,通常有两种方式。 第一种方式是使用 CPU 主频,即每一秒钟提供给 CPU 的时钟脉冲的个数,通常用赫兹( Hz)表示,例如 500MHz 。但对不同厂家、不同系列的计算机系统,只用 CPU 主频来说明其运行速度则未必准确。 第二种方式是使用 CPU每一秒钟能执行的指令条数,单位是 MIPS(million instructions per second),其计算公式可以通过如下方式推导出来, T=CPI×T_IC×I ,这里的 T 是执行一个程序占用的时间, CPI 是执行一条指令平均使用的 CPU 时钟个数, T_IC 是一个 CPU 时钟的时间长度,是 CPU 主频 f 的倒数 1/f , I 是这个程序的指令条数, 3 个数值的乘积就等于这个程序总的运行时间 T 。由此得到: I = T / (CPI×1/f) = T×f/CPI.

计算机系统的主要技术与性能指标

7

Page 16: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

CPU的速度 ( 续 ) 当取 T=1s ,并假定 f 为 300MHz , CPI 为 4 ,则计算出CPU 系统的性能为 300/4 ,即 75 个 MIPS ,即每秒执行 75 个百万条整数运算指令。若有办法使这台计算机的 CPI尽量靠近1 ,则其运行性能就可以提高近 4倍,这正是精简指令系统计算机( RISC)所追求的目标。 若进一步细化,可安如下办法计算出一个程序中全部指令的平均 CPI :按照指令的执行步骤数对全部指令进行分类,同类指令的条数 × 这类指令的 CPI ,再对各类指令的计算机结果求累加和,则累加和除以总指令条数就得到平均 CPI ,可以表示为CPI 平均 =∑CPIj×Ij / I ,这里的 j 是指令的种类编号(从 0~n)。

可以用 MFLOPS 表示对浮点数指令的运算速度。

计算机系统的主要技术与性能指标

7

Page 17: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

 ( 3)存储容量和读写速度 计算机中的存储器通常包括内存储器和外存储器两大类。 内存储器又被称为主存储器,通常用半导体器件实现,读写速度快,价格较高,通常容量要小一些,例如几百MB或几到十几 GB ,可供 CPU通过指令直接访问。 外存储器又称辅助存储器、海量存储器等,主要包括磁盘设备、光盘设备、磁带设备等,读写速度要慢得多,价格较低,容量很大,例如几十、几百 GB或几十 TB ,外存储器上的信息需要经过操作系统成批量地(而不是以字为单位)与内存储器进行交换。 内存储器的读写周期通常为几十 ns 到一二百 ns ,读写外存储器中的几百个字节数据的时间通常要几到十几ms ,而连续读出辅存中的一大批数据所用时间平均到每个数据上可能要更短得多。 通常还关心单位时间内能够对主存储器读写数据的总量,单位时间内能对辅助存储器交换设据的总量。

当前的计算机系统中都采取了许多增加存储器容量和速度的技术措施。

计算机系统的主要技术与性能指标

7

Page 18: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

( 4)输入输出设备的入出速度 计算机的输入输出设备是计算机系统中比较复杂的部分,不同设备组成和运行原理各不相同,与计算机主机的连接与控制方式也多有差异,在电子线路之外还涉及到精密机械、光学、激光、电磁转换等许多知识。

不同的输入输出设备的运行速度各不相同,例如针式打印机每秒只能打印几个字符,而激光打印机则可以打印多行甚至几页打印纸的信息,键盘输入则主要取决于人员打字的速度。显示器的屏幕大小、分辨率高低、显示字符还是图形的不同内容、屏幕刷新频率等都对系统性能有重要影响。

目前的输入输出设备包含的种类特别多,远远超出了传统入出设备的概念,特别是随着多媒体技术的发展和应用,大量的电子设备已经成为现代计算机的外围设备。

计算机系统的主要技术与性能指标

7

Page 19: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

输入设备

输出设备

总线和入出接口

虚拟存储器外存设备

主存储器

高速缓存

控 制 器

运 算 器

4、本课程各章教学内容简介

第8章

第3、4章第5、6章

第7章

第 2 章预备性知识,第 9章补充性读物,课上不讲。

9

Page 20: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

计算机的5个功能部件及其连接关系运算器:暂存运送数据、中间结果,完成数据运算并暂存 控制器:指挥、控制计算机各部件协同运行以便执行程序主存储器:存储正在使用的程序和数据输入设备:输入程序和数据 输出设备:输出计算结果 接口线路:经总线连接CPU和设备,解决二者识别配合 总线:连接 5个功能部件,以便以分时方式传接送信息

运算器部件 控制器部件

接口

输入设备

接口

输出设备

主存储器

数据总线

地址总线

控制总线

存储器系统存储介质的分类与存储原理,存储器芯片的内部构成 存储器的性能指标:速度、容量、成本 解决问题的途径:构建3级结构的存储器系统 程序运行的局部性原理,一致性原则和包含性原则主存储器:保存CPU正在运行、使用中的程序和数据, 通常情况下以字为单位与CPU交换信息,以字块为 单位与高速缓存交换信息。 主存与CPU的连接,读写操作过程和访存指令 字位扩展技术,一体多字、多体单字技术高速缓冲存储器:缓冲最近使用的主存中的程序和数 据,由硬件直接控制以字块为单位完成交换。 3种地址映射方式与地址变换 高速缓存的命中率与加速比,Cache的替换算法 辅助(外)存储器:以文件形式比较长时间的保存计算机 系统中的信息,通常以几个扇区为单位执行读写。 磁盘的平均寻址时间、磁盘读写的数据传输率计算 温盘与光盘的基本组成与读写原理,磁盘阵列技术虚拟存储器:是高速磁盘上的一片存储空间,暂存目前 主存中存放不下的的程序和数据,依 据系统运行情况随时与主存交换信息,可能以页或段为单位进行交换,也可以兼用二者。 段表和页表的组成(内容)和地址变换过程,快表的作用。 内存中的换页算法。

输入设备输入设备的功能和分类,最常用的输入设备

键盘的组成与运行原理,鼠标设备的功能和工作原理

输出设备以点阵方式显示或打印字符、图形或图像设备的共性原理

输出设备的功能和分类,最常用的输出设备CRT和液晶显示器的一般构成和运行原理

针式、喷墨式和激光打印机的一般构成和运行原理

接口 接口的功能,经过总线连接外设与 CPU

希望把多种设备和不同的CPU都能连接起来 (个性化处理)通用可编程接口的一般组成与初始化操作,中断有关线路

接口标准:串行接口,并行接口,USB 接口,...输入输出方式

程序查询方式,程序中断方式,直接存储器访问方式通道方式, 外围处理机方式

中断源的分类,中断优先级与中断排队,中断屏蔽中断请求、响应和处理(保存与恢复中断现场)过程

DMA接口卡的构成,DMA传送的请求,响应与执行过程

数据表示、运算数据类型 (整型、浮点型、逻辑型、BCD码、字符型) 的表示,中文的输入码、内码、字形码

进位计数制,二进制与十进制数据之间的转换,二进制数据运算规则整数、小数的原、反、补码的编码与表示,机器数和数的真值

补码加、减法运算规则与实现算法,原码一位乘、除法的规则与实现算法3种常用的检错纠错码的实现原理与应用场所

运算器部件算术与逻辑运算部件ALU的原理性线路设计,串行进位与并行进位的概念与实现思路

定点运算器的功能与组成(执行运算的部件ALU、暂存数据的寄存器组REGs、特征位寄存器)补码加减法的线路实现与溢出判别方案、原码一位乘除法的实现原理性线路

浮点数的表示、编码,它的数据范围和精度,IEEE-754标准,浮点数的加、减、乘除运算规则

控制器部件控制器的功能与组成(PC、IR、步骤标记与转换线路、产生与提供控制信号的部件)

两种控制器类型:组合逻辑控制器和微程序控制器,同异之处与应用场合指令的执行过程(步骤),CPU周期,指令周期,指令的串行或并行执行

指令的串行执行过程:单指令周期方案方案,多单指令周期典型指令的执行过程(步骤),与指令格式和功能、计算机的实际组成有关

通用原理需用一个简单实际系统来加深理解,CPU的性能计算:主频、CPI、MIPSRISC 和 CISC 两种计算机追求的基本目标和实现途径(RISC机的特点 ) 指令的并行执行:指令流水线技术,追求的主要目标,实现思路,表示方法

性能指标:吞吐率,加速比,效率流水线中的结构相关、数据相关、控制相关的产生原因与解决思路

计算机组成原理课程教学内容的知识结构图

总线总线的功能和基本结构,对总线线路的基本要求

总线类型(数据、地址、控制3类总线)及各自的作用总线的竞争使用:总线仲裁、定时和总线使用

总线周期,总线状态,总线传送方式(正常或成组传送)总线标准,常用的几种总线概况总线的性能指标:总线的带宽

指令、指令系统和汇编语言程序设计 读写外设,外设编址方式:与主存统一编址, IO端口地址 读写内存,寻址方式,CPU与主存交换数据或指令 数据传送,数据运算,数据地址计算,指令地址计算使用硬件的命令,指令系统—机器语言,写程序很难机器语言符号化并扩展得到汇编语言,写程序容易些针对解题算法而不是硬件本身提供高级语言,最好用

指令格式:操作码与数据地址字段 寻址方式 形式地址与实际 (物理) 地址的概念及其相互关系 基本寻址方式  : 寄存器寻址    , 寄存器间接寻址  直接寻址,变址寻址,相对寻址,基地址寻址    堆栈寻址,间接寻址, 立即数寻址 用几种基本寻址方式复合而成的更复杂的寻址方式

Page 21: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

第 3 、 4 章 主要教学内容

第 3章 讲解数据表示和运算方法,这是设计实现计算机运算器部件的理论基础。  计算机中都使用二进制的信息编码。二进制编码和码制转换是数据运算的数学基础。  整数的原码、补码表示是为了简化数据运算的方案,可以简化用到的硬件线路,提高运算速度。  数据的检错纠错编码技术是提高硬件可靠性的有效措施。

第 4章 讲解计算机的运算器部件,有定点运算器和浮点运算器2种类型,是实现数据运算的执行部件。  重点学习定点运算器,由完成算数与逻辑运算的电路 ALU 和暂存运算数据和中间结果的寄存器组 REGs 、保存结果特征状态的 Flag 寄存器这3个主要部分组成。  一般了解浮点运算器的组成和浮点数的运算方法即可。 10

Page 22: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

第5、6章 主要教学内容   第5章 讲解指令系统和汇编语言程序设计。  指令是计算机最小的功能单位,是计算机硬、软件联系的纽带,很重要。  了解影响指令字长的有关因素。指令格式设计、寻址方式选用是核心内容。  浏览典型指令系统的概貌是必要的,需要比较具体地了解 TEC-2008计算机的指令系统,这是完成简单的汇编语言程序设计的必要条件。

第 6章 讲解计算机的控制器部件。 控制器的功能是指挥控制计算机硬件系统执行程序,它要依据指令内容、指令的执行步骤向每一个部件提供它们运行需要的控制信号。计算机设计者的任务是把每条指令的功能细分为几项操作 ,并将其划分到几个步骤、分配给相应部件去完成。 控制器分为组合逻辑(更易学易懂)和微程序两种类型。11

Page 23: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

第 7 章 主要教学内容 第 7章 讲解计算机的存储器系统。 当前计算机的存储器系统由高速缓存、主存和虚存这样3级结构的、统一管理调度的系统组成,追求的目标是尽可能快的读写速度 (满足 CPU的运行需要 ) ,尽可能大的存储空间(放得下最大的程序和数据),尽可能低的硬件成本 ( 计算机厂家和用户都能接受 ) 。  学习存储器分类和可用器件的存储原理、读写过程的基本知识;了解存储器的性能指标;  学习主存的构建技术,与 CPU的连接方式和读写时序关系;学习高速缓存的构建技术,运行原理;一般了解虚拟存储器的实现方案和基本术语。  对磁盘、光盘的原理性组成和运行原理有基本了解,理解磁盘阵列技术的特点和对系统性能的影响。12

Page 24: 计算机组成原理教学课件 王   诚    教授 清华大学计算机系 2009 年 10 月

第8章 主要教学内容

第8章 讲解计算机的输入输出设备与系统。  输入输出设备合称外围设备,通过接口电路连接到总线上,进而与主机的 CPU、存储器实现连接,在通信协议的控制下,与主机系统实现信息输入输出。  一般了解常用输入输出设备的工作原理即可。理解程序查询、程序中断和直接存储器访问 3种基本输入输出方式各自的特点、实现思路、需要的硬件支持 ;  各种不同类型的接口的功能、组成有很大差异,要了解它们组成中的共性功能和共性组成,通过浏览一些具体的接口实例建立正确概念,了解使用方法。  总线是影响计算机系统性能的一个重要元素,涉及到的概念较多,有不同的总线标准,又与应用联系密切,多关注一些是必要的。 13