1、 计算机计算机组成原理组成原理 华中科技大学计算机学院华中科技大学计算机学院 秦磊华秦磊华 abc_ L计算机组成原理是计算机专业的计算机组成原理是计算机专业的核心专业基础课核心专业基础课,主要介,主要介绍计算机各大组成部件的结构、工作原理、设计方法以及绍计算机各大组成部件的结构、工作原理、设计方法以及组成整机的有关技术。组成整机的有关技术。B:本课程的主要内容本课程的主要内容计算机系统概论计算机系统概论数据信息的表示方法数据信息的表示方法信息的存储信息的存储指令系统的分析与设计指令系统的分析与设计控制器的原理和设计控制器的原理和设计系统总线系统总线输入输出输入输出A:课程介绍:课程介绍计算机
2、组成原理在计算机系列课程中的地位和作用计算机组成原理在计算机系列课程中的地位和作用 计算机计算机组成原理组成原理数字逻辑电路数字逻辑电路 汇编语言汇编语言 计算机系统结构计算机系统结构计算机接口技术计算机接口技术 计算机网络计算机网络 操作系统操作系统应用应用其它基础课其它基础课 基础课基础课 专业基础课专业基础课 专业课专业课参考书目:参考书目:1.(美美)RANDAL E.BRYANT;DAVID OHALLARON.深入理解计深入理解计算机系统(修订版)算机系统(修订版).(08年度畅销榜年度畅销榜TOP50).中国电力出版社中国电力出版社.2.(荷荷)ANDREW S.TANENBAU
3、M.计算机组成结构化方法(英文影计算机组成结构化方法(英文影印版)(第印版)(第5版)版).人民邮电出版社人民邮电出版社.3.(美美)DAVID A.PATTERSON;JOHN L.HENNESSY.计算机组成与计算机组成与设计硬件设计硬件/软件接口软件接口(原书第原书第3版版).机械工业出版社机械工业出版社.4.Carl Hamacher Zvonko Vranesic Safwat Zaky著著.计算机组成计算机组成.机机械工业出版社械工业出版社.5.唐朔飞唐朔飞.计算机组成原理计算机组成原理(第第2版版).高等教育出版社高等教育出版社 6.白中英;戴志涛;周锲;杨旭东;张杰白中英;戴志
4、涛;周锲;杨旭东;张杰.计算机组成原理计算机组成原理.科学出科学出版社版社.全书教学学时安排全书教学学时安排第一章 计算机系统概述 3学时第二章 数据信息的表示 5学时第三章 运算方法与运算器 8学时第四章 存储系统 12学时第五章 指令系统 4学时第六章 中央处理器 10学时第七章 流水线(系统结构中学习)第八章 系统总线 4学时第九章 输入/输出系统 6学时 共计 52学时 本章主要知识点:本章主要知识点:计算机硬件系统由哪几部分构成、各有何作用?计算机硬件系统由哪几部分构成、各有何作用?冯诺依曼计算机的工作原理冯诺依曼计算机的工作原理计算机系统的层次结构计算机系统的层次结构透明性概念透明
5、性概念固件固件计算机系统的性能评价计算机系统的性能评价第一章第一章 计算机系统概论计算机系统概论一、计算机系统的概念一、计算机系统的概念1、计算机系统的构成:硬件、计算机系统的构成:硬件+软件构成的复杂的自动化设备,由软件构成的复杂的自动化设备,由多层次结构构成。多层次结构构成。硬件:由有形的电子器件构成硬件:由有形的电子器件构成,如运算器、控制器、存储器等如运算器、控制器、存储器等软件:为了方便用户使用计算机而编制的各种程序。软件:为了方便用户使用计算机而编制的各种程序。2、计算机的分类(可从不同的角度进行)、计算机的分类(可从不同的角度进行)模拟计算机模拟计算机(analogue comp
6、uter):数据的表示和处理以模拟信号进行。数据的表示和处理以模拟信号进行。数字计算机数字计算机(digital computer):数据的表示和处理以数字信号数据的表示和处理以数字信号 进行。进行。3、数字计算机的分类、数字计算机的分类 专用机:为某些特定的应用需求而设计的计算机专用机:为某些特定的应用需求而设计的计算机 通用机:巨、大、中、小、微、单片通用机:巨、大、中、小、微、单片4、计算机的应用、计算机的应用 科学计算科学计算 自动控制自动控制 测量和测试测量和测试 信息处理信息处理 教育、卫生教育、卫生 家用电器家用电器 人工智能人工智能二、计算机硬件二、计算机硬件二、计算机硬件二、
7、计算机硬件1)运算器:完成算术运算、逻辑运算、比较、转移和测试等运算器:完成算术运算、逻辑运算、比较、转移和测试等功能的部件。另外还具有传输数据的功能。功能的部件。另外还具有传输数据的功能。条件状态寄存器条件状态寄存器 指挥协调计算机其他部件进行工作的重要部件。控制器根据指挥协调计算机其他部件进行工作的重要部件。控制器根据不同的指令,产生指令执行过程中所需要的控制信号。不同的指令,产生指令执行过程中所需要的控制信号。运算器运算器+控制器件控制器件=?2)控制器控制器CPU保存程序、数据和中间结果的场所保存程序、数据和中间结果的场所;常用的单位和之间的换算关系常用的单位和之间的换算关系 位位bi
8、t字节字节-Byte 1Byte=8bit KB IKB=1024B (需要需要10位表示位表示)MB 1MB=1024KB(需要(需要20位表示)位表示)GB 1GB=1024MB(需要(需要30位表示)位表示)TB 1TB=1024GB(需要(需要40位表示)位表示)PB 1PB=1024TB (需要需要50位表示位表示)3)内存储器内存储器(Memory)存储器的结构及访问机制示意图存储器的结构及访问机制示意图存储器存储器=?主机主机topolgy4)输入和输出设备输入和输出设备常用的常用的 输入设备:输入设备:键盘、鼠标、扫描仪、磁盘机、磁带机等键盘、鼠标、扫描仪、磁盘机、磁带机等常用
9、的输出设备:常用的输出设备:显示器、打印机、绘图仪、磁盘机、磁带机等显示器、打印机、绘图仪、磁盘机、磁带机等提供人提供人-机接口机接口5)系统总线系统总线计算机内各大部件之间的连接部件。计算机内各大部件之间的连接部件。2.冯诺依曼计算机的体系结构冯诺依曼计算机的体系结构 由五大部分组成由五大部分组成;基本原理:存储程序和程序控制基本原理:存储程序和程序控制;计算机的大体工作过程可描述如下:计算机的大体工作过程可描述如下:通过输入设备将解题程序和数据送入主存通过输入设备将解题程序和数据送入主存。(存储程序存储程序)控制器从主存中逐条取出程序的指令,并控制实现指令功能。控制器从主存中逐条取出程序的
10、指令,并控制实现指令功能。在指令功能实现过程中,由运算器完成对数据的运算处理。在指令功能实现过程中,由运算器完成对数据的运算处理。将运算结果送主存。将运算结果送主存。通过输出设备反馈程序运行结果。通过输出设备反馈程序运行结果。称为称为程序控制程序控制 冯诺依曼计算机的冯诺依曼计算机的基本体系结构基本体系结构和和哈佛结构哈佛结构 冯诺依曼冯诺依曼体系结构体系结构计算机计算机:Intel 80X86 ARM7 MIPS等。等。哈佛结构哈佛结构计算机:计算机:Motorola MC68、Zilog Z8、ARM9、ARM10、ARM11等。等。现代计算机多是现代计算机多是Cache采用哈佛结构,主存
11、采用采用哈佛结构,主存采用冯诺依曼结构。冯诺依曼结构。未来的计算机体系结构未来的计算机体系结构(冯诺依曼结构的不足冯诺依曼结构的不足 :并行能力不够并行能力不够)数据流计算机数据流计算机 应用软件:为解决某些具体的问题而编制的各种程序应用软件:为解决某些具体的问题而编制的各种程序 系统软件:为简化程序设计,方便计算机的使用、提系统软件:为简化程序设计,方便计算机的使用、提 高计算机的使用效率,发挥和扩大计算机高计算机的使用效率,发挥和扩大计算机 的功能及用途而编制的各种程序。的功能及用途而编制的各种程序。各种服务程序:诊断、排错程序各种服务程序:诊断、排错程序 语言程序语言程序 :汇编、:汇编
12、、C、编译等、编译等 操作系统操作系统OS DBMS 三、计算机软件三、计算机软件 软件的分类:软件的分类:未来软件的发展趋势:人未来软件的发展趋势:人-机界面不断提升、智能化机界面不断提升、智能化四、计算机系统的层次结构四、计算机系统的层次结构1、五级结构,不同的级面向不同的用户对象,、五级结构,不同的级面向不同的用户对象,采用不同的采用不同的方法和不同的设计工具进行各级程序设计。方法和不同的设计工具进行各级程序设计。2、分级的好处:有利于系统结构的优化,单级的修改只、分级的好处:有利于系统结构的优化,单级的修改只 需需要修改相邻级的接口或相邻级,不会影响其它级。要修改相邻级的接口或相邻级,
13、不会影响其它级。第第1、2级由级由硬件硬件实现,实现,35级由级由软件软件实实现,称为虚拟机。现,称为虚拟机。第第1微程序设计级,用户只能用微指令微程序设计级,用户只能用微指令编写程序,并由计算机硬件直接执行。编写程序,并由计算机硬件直接执行。采用硬布线的计算机没有该级。采用硬布线的计算机没有该级。第第2级一般机器级,级一般机器级,(称传统机器级称传统机器级)用机用机器语言器语言 编写程序。该级也是硬件级。编写程序。该级也是硬件级。第第3级操作系统级,由操作系统程序实级操作系统级,由操作系统程序实现。用机器语言或操作系统级指令编程现。用机器语言或操作系统级指令编程3、各级的说明:、各级的说明:
14、4、各级的说明:、各级的说明:第第4级汇编语言级,用汇编语言编程。级汇编语言级,用汇编语言编程。高级语言级高级语言级,用高级语言编程,程序设,用高级语言编程,程序设计不需要太多的硬件支持,程序设计简单、计不需要太多的硬件支持,程序设计简单、程序界面友好、但程序的效率较低。程序界面友好、但程序的效率较低。语言与虚拟机之间存在着对应关系:机器语言与虚拟机之间存在着对应关系:机器定义了语言,语言也定义了机器。定义了语言,语言也定义了机器。各级之间的关系各级之间的关系高层是低层功能的扩展和高层是低层功能的扩展和虚拟化虚拟化,低层是高层的基础。低层是高层的基础。站在不同层次,得到不同的概念,站在不同层次
15、,得到不同的概念,看到不同的计算机属性,使用不同看到不同的计算机属性,使用不同的编程工具。的编程工具。topolgy 5、软件和硬件的逻辑等价性、软件和硬件的逻辑等价性从逻辑功能看,任何由软件实现的操作都可以由硬件来完成;从逻辑功能看,任何由软件实现的操作都可以由硬件来完成;反过来,任何由硬件实现的指令都可以由软件来模拟。反过来,任何由硬件实现的指令都可以由软件来模拟。进行计算机设计时,要进行软进行计算机设计时,要进行软/硬件功能界面的划分。即确定计硬件功能界面的划分。即确定计算机的功能,哪些采用硬件实现、哪些采用软件实现。算机的功能,哪些采用硬件实现、哪些采用软件实现。划分的原理就是软件和硬
16、件的逻辑等价性划分的原理就是软件和硬件的逻辑等价性划分的依据是性能划分的依据是性能/价格。价格。6、固件、固件 软件的固化。从功能上看是软件,从形态上看是硬件。软件的固化。从功能上看是软件,从形态上看是硬件。1)本来存在的事物,从某个角本来存在的事物,从某个角度去看却好象不存在。度去看却好象不存在。2)计算机分层结构中的透明性计算机分层结构中的透明性:一般机器级的特性,如通用一般机器级的特性,如通用寄存器的数量对高级语言程序寄存器的数量对高级语言程序设计者透明设计者透明 微指令的格式对一般机器级微指令的格式对一般机器级程序设计者透明程序设计者透明 还存在很多透明性还存在很多透明性7、透明性、透
17、明性7、计算机系统的性能评价、计算机系统的性能评价1)几个常用指标几个常用指标(1)机器字长机器字长 指参与运算的数的基本位数;指参与运算的数的基本位数;由加法器、寄存器的位数决定;由加法器、寄存器的位数决定;一般等于内部寄存器的位数;一般等于内部寄存器的位数;字长越长,表示数据的范围就越大,计算精确度就越高;字长越长,表示数据的范围就越大,计算精确度就越高;目前常见的计算机为目前常见的计算机为32位和位和64位计算机。位计算机。(2)数据总线宽度数据总线宽度 数据总线宽度是指数据总线一次能并行传送的信息位数。数据总线宽度是指数据总线一次能并行传送的信息位数。一般指一般指CPU内部运算器与存储
18、器之间的数据总线。内部运算器与存储器之间的数据总线。有些计算机内部与外部数据总线宽度不一致:有些计算机内部与外部数据总线宽度不一致:8086、80286、80386内外数据总线等宽;内外数据总线等宽;8088、80386SX 外部总线宽度小于内部总线宽度;外部总线宽度小于内部总线宽度;Pentium外总线外总线64位,内总线位,内总线32位(两条位(两条32位流水线)位流水线)(3)主存储器容量和带宽主存储器容量和带宽 主存容量是指其包含的存储单元总数量。主存容量是指其包含的存储单元总数量。主存可以主存可以字字 节节 编址、也可以编址、也可以字字 编址。编址。存储带宽存储带宽:指单位时间内从存
19、储器中读出的二进制数的信息指单位时间内从存储器中读出的二进制数的信息量,常用单位量,常用单位B/s(字节(字节/秒)表示。秒)表示。(4)CPU执行时间执行时间 表示执行一段程序所占用的表示执行一段程序所占用的CPU时间时间(程序的执行时间除程序的执行时间除CPU时时间外还包括间外还包括I/O、存储访问、各类排队时延等、存储访问、各类排队时延等)。CPU时间的公式:时间的公式:CPU时间时间=程序中所有指令的时钟周期数之和程序中所有指令的时钟周期数之和 时钟周期时间时钟周期时间 =程序中所有指令的时钟周期数之和程序中所有指令的时钟周期数之和/时钟频率时钟频率 (回顾汇编语言课程中延时子程序的设
20、计原理回顾汇编语言课程中延时子程序的设计原理)(5)CPI(Clock cycles Per Instruction)执行一条指令所需要的平均时钟周期数执行一条指令所需要的平均时钟周期数CPI=程序中程序中所有指令的时钟周期数之和所有指令的时钟周期数之和/指令条数指令条数 =程序中程序中各类指令的各类指令的CPI 程序中该类指令的比例程序中该类指令的比例 考虑考虑CPI后的后的CPU时间可表示为时间可表示为:CPU时间时间=1()niIiICCPI时钟周期时间总指令数ICi表示第表示第i条指令的条数条指令的条数(6)MIPS(Million Instructions Per Second)表示
21、每秒执行多少百万条指令表示每秒执行多少百万条指令 MIPS106 指令条数指令条数执行时间执行时间CPUCPU时钟周期总数时钟周期总数 指令条数指令条数 106/f/ffCPI=106MIPS MIPS 指令条数指令条数 106 程序的执行时间程序的执行时间Te=2)应用举例应用举例例例1 假设一台计算机主频为假设一台计算机主频为1GHZ,在其上运行,在其上运行200000条指令的目条指令的目标代码,程序主要由标代码,程序主要由4条指令组成,他们所占的比例和各自的条指令组成,他们所占的比例和各自的CPI如下表所示。如下表所示。指令类型指令类型CPI指令混合比例指令混合比例算术和逻辑算术和逻辑 160%Load/Store218%转移转移412%Cache缺失访存缺失访存810%解:平均解:平均CPI=1*60%+2*18%+4*12%+8*10%=2.24 MIPS=f/(CPI*10 6)=1*10 9/(2.24*106)=446.4第一章第一章 小结小结本章主要知识点:本章主要知识点:计算机硬件系统由哪几部分构成、各有何作用?计算机硬件系统由哪几部分构成、各有何作用?冯诺依曼计算机的工作原理冯诺依曼计算机的工作原理计算机系统的层次结构计算机系统的层次结构透明性概念透明性概念固件固件计算机系统的性能评价指标及其应用计算机系统的性能评价指标及其应用