教材:胡乃平曲英杰周艳平主编计算机组成与结构青岛科技大学自编教材计算机组成原理教师:胡乃平hunaiping@163.com信息科学技术学院计算机硬件教研室(A0公共区)用户名:public密码:public先修课程:数字逻辑电路课程性质:专业必修课学时分配:课堂64学时,实验16学时其他参考教材:白中英计算机组成原理科学出版社唐朔飞计算机组成原理高等教育出版社后续课程:计算机系统结构课程历史沿革:•1987年,中国计算机学会教育专业委员会推出我国计算机本科专业“87教程”,对8门重点课程(其中含计算机组成原理)提出了基本要求;•2002年,中国计算机学会教育专业委员会、全国高等学校计算机教育研究会推出《中国计算机科学与技术学科教程2002》,提出硬件课程包含“数字逻辑与数字系统”、“计算机组成”、“计算机体系结构”三大知识模块;•2006年,教育部高等学校计算机科学与技术教学指导委员会推出“高等学校计算机科学与技术专业发展战略报告暨专业规范”,仍然将“数字逻辑与数字系统”、“计算机组成”、“计算机体系结构”列为主干课程。目录第1章计算机系统概述第2章数据的表示和运算第3章存储器层次结构第4章指令系统第5章中央处理器第6章总线第7章输入输出系统目录第8章流水线处理技术第9章并行计算机体系结构第1章计算机系统概论1.1计算机的发展历程1.2计算机系统的层次结构1.3计算机的性能指标1.4计算机的分类和应用1.1计算机的发展历程根据制造计算机所使用的元器件的不同,电子计算机的发展依次经历了电子管时代、晶体管时代、中小规模集成电路时代、大规模和超大规模集成电路时代、甚大规模和极大规模集成电路时代等几个不同的发展阶段。•第一代,电子管计算机时代(1946~1959)电子管是封装在玻璃外壳内的一种电真空器件,如图1.1所示。世界上第一台电子数字计算机ENIAC(ElectronicNumericalIntegratorAndcalculator),1946年由美国宾夕法尼亚大学研制,字长12位,运算速度5000次/秒,使用18800个电子管、1500个继电器,功耗150kw,占地170m2,重达30吨,造价100万美元,如图1.2所示。图1.1电子管图1.2第一台电子数字计算机ENIAC•第二代,晶体管计算机时代(1959~1964)晶体管,通常指的是晶体三极管,是用半导体材料制作出来、封装在一个金属壳内的带有三个管脚的小器件,1958年进入批量生产阶段。用它可以设计出实现反相功能的反相器线路,在此基础上,再实现出计算机使用的全部组合逻辑线路,和触发器、寄存器、计数器等各种时序逻辑线路。用分立的晶体管线路实现的计算机称为晶体管计算机。第二代计算机的体积和价格都下降了,使用的人也多起来了,计算机工业迅速发展,主要用于商业、大学教学和政府机关。•第三代,中小规模集成电路计算机时代(1964~1970)集成电路(IntegratedCircuit,简称IC)是做在晶片上的一个完整的电子电路,这个晶片比手指甲还小,却包含了几千个晶体管元件。计算机的数据存储、运算、传输以及控制功能基本上都是由具有逻辑功能的各类门电路组成实现的,而门电路又是由晶体管、电阻、电容等组成,因此集成电路制造技术的发展可以实现将成百上千个门电路全部制作在一块极小的硅片上,这种技术的应用使得计算机的体积大大缩小,并且降低了功耗,提高了计算机的可靠性。第三代计算机的代表是IBM公司花了50亿美元开发的IBM360系列。•第四代,大规模、超大规模集成电路计算机时代(1970~至今)这个时代的计算机使用的元件依然是集成电路,不过,这种集成电路已经大大改善,它包含着几十万到上百万个晶体管,人们称之为大规模集成电路(LargeScalelntegratedCircuit,简称LSI)和超大规模集成电路(VeryLargeScalelntegratedCircuit,简称VLSI)。1975年,美国1BM公司推出了个人计算机PC(PersonaIComputer),从此,人们对计算机不再陌生,计算机开始深入到人类生活的各个方面。表1.1计算机发展历程中各个阶段的特点年代第一代1946-1959第二代1959-1964第三代1964-1970第四代1970-现在电子器件电子管晶体管集成电路大规模、超大规模集成电路存储器延迟线磁芯、磁鼓磁带、纸带磁芯、磁鼓磁带、磁盘半导体存储器磁芯、磁鼓磁带、磁盘半导体存储器磁带、磁盘光盘处理方式机器语言汇编语言监控程序高级语言实时处理操作系统实时/分时处理网络操作系统应用领域科学计算科学计算数据处理过程控制科学计算系统设计等科技工程领域各行各业运行速度5000至3万次/秒几十万至百万次/秒百万至几百万次/秒几百万至千亿次/秒典型机型ENIACEDVACIBM705UNIVACⅡIBM7094CDC6600IBM360PDP11NOVA1200ILLIAC-ⅣVAX11IBMPC1.2计算机系统的层次结构为了描述计算机系统的结构,首先要清楚地区分计算机结构和计算机组织两个概念。•计算机结构:对涉及机器语言或者汇编语言的程序设计人员所见到的计算机系统的属性,更多的情况下是指计算机的外特性。这些属性直接影响到程序的逻辑执行,主要包括指令集、表示各种数据类型的比特数、I/O机制以及内存访问技术等。•计算机组成:计算机各部件的具体组成以及它们之间的连接关系,实现机器指令级的各种功能和特性。从这一点上,计算机组成是计算机结构的逻辑实现。应用语言机器高级语言机器汇编语言机器操作系统语言机器传统机器(机器语言机器)微程序机器(微指令系统)第一级第二级第四级第五级第六级由硬件直接执行微指令用微程序解释机器指令用机器语言解释操作系统汇编程序将其翻译成机器语言编译程序将其翻译成汇编语言编译程序将其翻译成高级语言图1.3计算机系统的层次结构•计算机系统通常包括硬件和软件两大部分,计算机的层次结构既是分配软硬件功能的一种模式描述,也是分析计算机系统的较好方法。•目前计算机系统层次结构分为六层,如图1.3所示。1.2计算机系统的层次结构1.2.1计算机硬件的基本组成计算机系统的硬件部分从外观上看主要有主机、键盘、鼠标和显示器等组成;从逻辑功能上看,可以分为控制器、运算器、存储器、输入设备、输出设备五个部分,一般地又把运算器和控制器合称为中央处理器(CentralProcessingUnit,CPU)。1.2.2计算机软件的分类•计算机软件:计算机系统中的程序和文档。程序是对计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。计算机的软件按照面向对象的不同可以分为两类:系统软件和应用软件。•系统软件:用于实现系统功能、管理系统的软件,为了便于人们使用计算机而设计。系统软件管理整个计算机系统,合理分配系统资源,确保计算机正确高效地运行。常用的系统软件有:操作系统、编译器、解释器、汇编器等。•应用软件:面向用户的,针对某种特定应用而开发的软件。这类软件通常是实现用户的某类需求。例如安装在操作系统下的各类应用软件,用于企业的各类资源管理软件。•1.2.3计算机的工作过程计算机的工作过程就是将编制好的程序经过输入设备存放到主存储器中,并将程序存放的首地址传送到控制器中。•取指阶段:首先,将指令从存储器读到指令寄存器。•分析阶段:接着,它分析这条指令,指出指令要完成的操作,并指明操作数的地址。•执行阶段:最后,根据指令分析的结果完成某种操作。计算机的工作过程就是取指令、分析指令、执行指令,如此周而复始的过程。1.3计算机的性能指标•机器字长:机器字长是指CPU一次能处理二进制数据的位数,实际上指该计算机中的运算器的位数。如某机器字长32位,表示该机器中,每次能完成两个32位二进制数的运算。通常,机器字长越长,计算机的运算能力越强,其运算精度也越高。•运算速度:计算机的运算速度与很多因素有关,常用的性能指标如下:(1)CPU的主频(f):CPU内部的工作频率,表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力并没有直接关系,但与CPU实际的运算速度存在一定的关系。因此,主频仅是CPU性能表现的一个方面,而不能代表CPU的整体性能。•外部工作频率:简称外频。它是由主板为CPU提供的基准时钟频率,它表示的是系统总线的工作频率;而•倍频:CPU外频与主频相差的倍数。主频=外频×倍频(2)时钟周期(T):CPU内部时钟频率的倒数。是CPU执行操作的最小时间元素。每个动作至少需要一个时钟周期。以PC系列微处理器为例,最初的8086和8088执行一条指令平均需要12个时钟周期,CPU的主频与CPU时钟周期互为倒数,即(3)CPU执行时间:CPU执行某段程序所需的时间,通常用tCPU表示。可以用下式来表示:CPU执行时间=CPU时钟周期数×CPU时钟周期长•T1fT1f(4)CPI(CyclesPerInstruction):执行一条指令所需的时钟周期数。计算公式如下:(5)MIPS(MillionInstructionsPerSecond):每秒执行多少百万条指令。定义为:(6)MFLOPS(MillionFloating-pointOpereationPerSecond):每秒执行多少百万次浮点运算。定义为:该程序包含的指令条数时钟周期数CPU执行某段程序所需的CPI610MIPS执行时间指令条数610MFLOPS执行时间浮点操作次数1.3.3吞吐量和响应时间(1)计算机范畴下的吞吐量分为两种:•网络范畴下的吞吐量:在没有帧丢失的情况下,设备能够接受的最大速度。它的大小主要是由防火墙内网卡,及程序算法的效率决定的;•系统结构下的吞吐量:在单位时间内CPU从存储设备中读取、处理、存储信息的量,单位是字节/秒(B/S),影响因素主要有存储设备的存取速度和CPU的性能,如主频、CPI等。(2)响应时间在操作系统中,指用户发出请求或指令到系统做出反应(响应)的时间。例1.用一台40MHz处理机执行标准测试程序,它包含的混合指令数和相应所需的平均时钟周期数如下表所示:求:有效CPI、MIPS速率、程序执行时间tCPU。指令类型指令数平均时钟周期数整数运算450001数据传送320002浮点运算150002控制传送80002解:CPI==(45000×1+32000×2+15000×2+8000×2)/(45000+32000+15000+8000)=1.55(周期/指令)MIPS=f/(CPI×106)=(40×106)/(1.55×106)=25.81(百万条指令/秒)T=1/f=1/(40×106)(秒)tCPU=(45000×1+32000×2+15000×2+8000×2)/(40×106)=3.875×103(秒)niNIIiCPIi1/1.4计算机分类和应用领域1.4.1计算机分类1.按计算机信息的表示形式和对信息的处理方式分类(1)数字计算机该类计算机输入、处理、输出和存储的数据都是数字量,这些数据在时间上是离散的。(2)模拟计算机该类计算机输入、处理、输出和存储的数据都是模拟量,这些数据在时间上是连续的。模拟计算机由于受元器件质量影响,其计算精度较低,应用范围较窄,目前已很少生产。2.按照计算机的用途分类(1)通用计算机通用计算机是为能解决各种问题,具有较强的通用性而设计的计算机。它具有一定的运算速度,有一定的存储容量,带有通用的外部设备,配备各种系统软件、应用软件。一般的数字式电子计算机多属此类。(2)专用计算机专用计算机是为解决某个或某类特定问题而设计的计算机。它的硬件和软件的配置依据解决特定问题的需要而定,并不求全。专用机功能单一,配有解决特定问题的固定程序,能高速、可靠地解决特定问题。3.计算机按其规模、速度和功能分类(1)巨型机巨型机又称超级计算机,是指运算速度超过每秒1亿次的高性能计算机,它是目前功能最强、速度最快、软硬件配套齐备、价格最贵的计算机,主要用于解决诸如气象、太