240 likes | 479 Views
计算机组成原理教学课件 王 诚 教授 清华大学计算机系 2009 年 10 月. 第 1 章 计算机系统概述. (为何要学习这门课程,怎么学,如何要求, 课程主要内容简介) 1.1 计算机系统的基本组成及其层次结构 1.2 计算机硬件的5个功能部件及其功能 1.3 计算机系统主要的技术与性能指标 1.4 计算机的体系结构、组成和实现概述 1.5 计算机发展进步、分类和拓展应用进程. 为什么要学习 计算机组成原理 这门课程.
E N D
计算机组成原理教学课件 王 诚 教授 清华大学计算机系 2009年10月
第 1 章 计算机系统概述 (为何要学习这门课程,怎么学,如何要求, 课程主要内容简介) 1.1 计算机系统的基本组成及其层次结构 1.2 计算机硬件的5个功能部件及其功能 1.3 计算机系统主要的技术与性能指标 1.4 计算机的体系结构、组成和实现概述 1.5 计算机发展进步、分类和拓展应用进程
为什么要学习计算机组成原理这门课程 计算机组成原理是计算机专业本科生的一门统设必修的专业基础课程。在我们系强调培养计算机应用型人才,是把这门课程作为计算机系统平台的内容之一来安排的。 不是只有设计计算机硬件系统的人才要学这门课,计算机专业的人员都应该对其有所了解。选择了计算机专业,终生要与计算机系统打交道、要使用好计算机就应该学习这门课,否则就算不上一名合格的计算机专业人员。总不该把计算机硬件系统看作为电视机一样的产品,开一下电源选选台能看节目了就行了。 计算机中有许多知识是到处都会用到的,是学习后续多门课程 (系统结构, 操作系统,编译原理,高级语言程序设计, 计算机网络,数据库) 的基础,将来工作中如何想清楚、如何解决遇到的许多问题都会涉及到计算机的硬件问题。 1
课程有多难,能不能学好 说计算机组成原理课程不是太难学是不能令人信服的,说根本无法学好也缺乏足够的理由和证据。 从计算机组成原理的内容来讲,实在没有太多难懂的原理,与生活中遇到的许多很平常的现象大有同工异曲之处,它不像数学,没有多少理论推导,也没有物理学中的高深理论,不用冥思苦想,接受它的规定和实现方案即可。如果说难,难就难在计算机中的问题是我们平时从未接触到、更没亲眼看见过事物,尚未碰到先怕三分,把本来简单的问题折腾复杂了;教师缺乏计算机系统设计的工程背景进一步加剧了这个矛盾。 学生应该根据自己的实际水平和将来的工作要求,恰当地确定对自己学习这门课程的要求。 2
课程教学定位和教学要求 计算机组成原理课程教学应该建立在硬、软件组成大体完整的系统平台之上,无疑这是一门硬件内容为主的课程,但需要兼顾一点基础软件的课程,认为课程内容只限于纯硬件(裸机)是很过时的认识,至少需要了解汇编语言以及计算机系统操作使用方面的基础知识,把学习和使用硬件结合起来。 教学过程中,要把学习原理知识和应用原理解决实际问题结合起来,避免泛泛地讲解书本内容,解决问题可以首先从看别人怎么用已知原理设计实现实用系统,再考虑自己能做些什么实际工作才会使学习更有趣味,更有用。 学生可以对自己提出主要学懂基本原理并能通过考试为底线要求,和还有一定应用能力的正常要求。 3
1、计算机系统概述 这里说的计算机系统(computer system),是指电子数字通用计算机系统,三个定语各自表明了计算机系统的一个方面的特性。 “电子”一词表明使用电子线路(不同于机械、继电器等)来实现计算机硬件的关键逻辑功能; “数字”一词表明使用的电子线路是数字式电路(不同于模拟电路),运算和处理的数据是二进制的离散数据(不同于连续的电压或电流量); “通用”一词表明计算机本身功能多样(并非专用于某种特定功能),具有完成各种运算或数据处理能力。 4
计算机系统概述 计算机系统由硬件和软件两大部分组成。 硬件指由中央处理器、存储器以及外围设备等组成的实际装置,硬件的作用是完成每条指令规定的功能。 指令是计算机运行的最小的功能单位,指令是指示计算机硬件执行某种运算、处理功能的命令。 软件是为了使用计算机而编写的各种系统的和用户的程序,程序由一个序列的计算机指令组成。指令是用于设计程序的一种计算机语言。 一台计算机提供的全部指令构成该计算机的指令系统。指令系统的设计质量关系到厂家和用户的利益。 硬、软件系统相互依存,分工互动,缺一不可,如同一个健全人的物质性的肉体和精神性的智力与思维。 5
软 件 系 统 硬 件 系 统 微体系结构层 应用层 高级语言层 汇编语言层 操作系统层 指令系统层 微体系结构层 数字逻辑层 计算机系统的层次结构 计算机系统的层次结构 可以从 6 个层次分析和看待计算机系统的基本组成。 最低的2层属于硬件部分,硬件系统用于实现每条指令的功能,解决程序中指令间的衔接系。 上面的3层属于软件部分,软件由按一定规则组织起来的许多条指令组成,完成一定的数据运算或者事务处理功能。 指令系统处在硬件系统和软件系统之间,是硬、软件之间的接口部分,对两部分都有重要影响。 6
计算机中的基本软件系统 软件是为了使用计算机而编写的各种系统的和用户的程序,程序由一个序列的计算机指令组成。 在计算机系统的6层结构中给出的基本软件包括操作系统和3个级别的计算机语言。 操作系统主要完成对系统中的硬、软件资源的管理与调度分配,并向程序设计人员和计算机的操作者提供各种服务。 3个级别的语言是机器语言(二进制代码语言)、汇编语言(符号语言)和高级语言(算法语言),使用它们设计程序的难易程度和工作效率差别很大。 7
三个级别的程序设计语言语言 以计算从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
2、计算机中的基本硬件系统 硬件系统由 5 个功能部件组成,是课程的核心内容 计算机的 CPU 数据运算部件 计算机控制部件 数据存储 部件 计算机主机 数据总线 地址总线 控制总线 接口线路 数据输入设备 接口线路 结果输出设备 计算机 外围设备 8
计算机中的基本硬件系统 硬件系统由5个功能部件组成。数据输入设备分担对程序和原始数据的输入功能,数据存储部件分担对程序和数据的存储功能,数据运算部件分担对数据的运算处理功能,结果输出设备分担对运算处理结果的输出功能。控制器部件则是依照每条指令的运行功能的需要,向各个部件或设备提供它们协调运行所需要的控制信号,在整个硬件系统中起到指挥、协调和控制的作用。 图中间部位给出的是计算机的3种类型的总线,可以看出,计算机的5个功能部件正是通过这3种类型的总线被有机地连接在一起,从而构成一台完整的、可以协调运行(执行程序)的计算机硬件系统。 8
计算机中的基本硬件系统 可以把计算机想象为一个加工处理数据的工厂,则数据运算部件就是数据加工车间,数据存储部件就是存放原材料、半成品和产品的库房,输入设备相当于运入原材料的卡车,输出设备相当于运出最终产品的卡车,控制部件则相当于承担领导指挥功能的厂长和各个职能办公室。在领导的正确指挥下,如果能够源源不断地取得原材料,工厂内又有存放的场所,车间能够对这些原材料进行指定的加工处理,加工后的产品可以畅通地运出去销售,则这个工厂(计算机)就纳入正常运行的轨道。前面说的还只限于硬件,当然号必须有配套的软件系统,例如工厂就需要有管理制度、运营策略等。 8
3、计算机系统的主要技术与性能指标 (1)计算机的字长 在计算机系统内部,通常选用多少个二进制位来表示一个数据或一条指令是一个关键技术指标,例如16、32或者64位,这个位数被称为计算机的字长。例如在32位字长的计算机系统中,一个整数、一条指令通常都用32位二进制数表示,叫做一个字,运算器、存储器、数据和地址总线等通常都被设计成32位。字长对计算机的处理能力和运行性能有明显影响,字长较长有利于提高计算机的性能,但需要使用更多的硬件,计算机系统的价格也会高一些。 7
计算机系统的主要技术与性能指标 (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
计算机系统的主要技术与性能指标 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
计算机系统的主要技术与性能指标 (3)存储容量和读写速度 计算机中的存储器通常包括内存储器和外存储器两大类。 内存储器又被称为主存储器,通常用半导体器件实现,读写速度快,价格较高,通常容量要小一些,例如几百MB或几到十几GB,可供CPU通过指令直接访问。 外存储器又称辅助存储器、海量存储器等,主要包括磁盘设备、光盘设备、磁带设备等,读写速度要慢得多,价格较低,容量很大,例如几十、几百GB或几十TB,外存储器上的信息需要经过操作系统成批量地(而不是以字为单位)与内存储器进行交换。 内存储器的读写周期通常为几十ns到一二百ns,读写外存储器中的几百个字节数据的时间通常要几到十几ms,而连续读出辅存中的一大批数据所用时间平均到每个数据上可能要更短得多。 通常还关心单位时间内能够对主存储器读写数据的总量,单位时间内能对辅助存储器交换设据的总量。 当前的计算机系统中都采取了许多增加存储器容量和速度的技术措施。 7
计算机系统的主要技术与性能指标 (4)输入输出设备的入出速度 计算机的输入输出设备是计算机系统中比较复杂的部分,不同设备组成和运行原理各不相同,与计算机主机的连接与控制方式也多有差异,在电子线路之外还涉及到精密机械、光学、激光、电磁转换等许多知识。 不同的输入输出设备的运行速度各不相同,例如针式打印机每秒只能打印几个字符,而激光打印机则可以打印多行甚至几页打印纸的信息,键盘输入则主要取决于人员打字的速度。显示器的屏幕大小、分辨率高低、显示字符还是图形的不同内容、屏幕刷新频率等都对系统性能有重要影响。 目前的输入输出设备包含的种类特别多,远远超出了传统入出设备的概念,特别是随着多媒体技术的发展和应用,大量的电子设备已经成为现代计算机的外围设备。 7
4、本课程各章教学内容简介 第5、6章 第3、4章 运 算 器 控 制 器 第7章 总线和入出接口 第8章 高速缓存 输入设备 主存储器 输出设备 虚拟存储器 外存设备 第2章预备性知识,第9章补充性读物,课上不讲。 9
第3、4章主要教学内容 第3章 讲解数据表示和运算方法,这是设计实现计算机运算器部件的理论基础。 计算机中都使用二进制的信息编码。二进制编码和码制转换是数据运算的数学基础。 整数的原码、补码表示是为了简化数据运算的方案,可以简化用到的硬件线路,提高运算速度。 数据的检错纠错编码技术是提高硬件可靠性的有效措施。 第4章 讲解计算机的运算器部件,有定点运算器和浮点运算器2种类型,是实现数据运算的执行部件。 重点学习定点运算器,由完成算数与逻辑运算的电路 ALU和暂存运算数据和中间结果的寄存器组 REGs、保存结果特征状态的Flag 寄存器这3个主要部分组成。 一般了解浮点运算器的组成和浮点数的运算方法即可。 10
第5、6章主要教学内容 第5章 讲解指令系统和汇编语言程序设计。 指令是计算机最小的功能单位,是计算机硬、软件联系的纽带,很重要。 了解影响指令字长的有关因素。指令格式设计、寻址方式选用是核心内容。 浏览典型指令系统的概貌是必要的,需要比较具体地了解 TEC-2008计算机的指令系统,这是完成简单的汇编语言程序设计的必要条件。 第6章 讲解计算机的控制器部件。 控制器的功能是指挥控制计算机硬件系统执行程序,它要依据指令内容、指令的执行步骤向每一个部件提供它们运行需要的控制信号。计算机设计者的任务是把每条指令的功能细分为几项操作,并将其划分到几个步骤、分配给相应部件去完成。 控制器分为组合逻辑(更易学易懂)和微程序两种类型。 11
第7章主要教学内容 第7章讲解计算机的存储器系统。 当前计算机的存储器系统由高速缓存、主存和虚存这样3级结构的、统一管理调度的系统组成,追求的目标是尽可能快的读写速度(满足CPU的运行需要),尽可能大的存储空间(放得下最大的程序和数据),尽可能低的硬件成本(计算机厂家和用户都能接受)。 学习存储器分类和可用器件的存储原理、读写过程的基本知识;了解存储器的性能指标; 学习主存的构建技术,与CPU的连接方式和读写时序关系;学习高速缓存的构建技术,运行原理;一般了解虚拟存储器的实现方案和基本术语。 对磁盘、光盘的原理性组成和运行原理有基本了解,理解磁盘阵列技术的特点和对系统性能的影响。 12
第8章主要教学内容 第8章 讲解计算机的输入输出设备与系统。 输入输出设备合称外围设备,通过接口电路连接到总线上,进而与主机的 CPU、存储器实现连接,在通信协议的控制下,与主机系统实现信息输入输出。 一般了解常用输入输出设备的工作原理即可。理解程序查询、程序中断和直接存储器访问3种基本输入输出方式各自的特点、实现思路、需要的硬件支持; 各种不同类型的接口的功能、组成有很大差异,要了解它们组成中的共性功能和共性组成,通过浏览一些具体的接口实例建立正确概念,了解使用方法。 总线是影响计算机系统性能的一个重要元素,涉及到的概念较多,有不同的总线标准,又与应用联系密切,多关注一些是必要的。 13