《计算机组成原理》PPT课件.ppt
计算机组成原理,主讲教师:邵雄凯,计算机组成原理课程介绍,课程地位:是计算机类专业本科生的核心专业基础课程。教学目的:使学生既能从全局或宏观的角度掌握计算机硬件系统的整体结构和工作原理,又能从局部或微观的角度理解计算机各个部件的工作过程和交互方式。,计算机组成原理课程介绍,与其它课程的先后关系 其先导课程有:数字逻辑、汇编语言。课程特点:教学内容多,主要参考书,教材:计算机组成原理白中英 科学出版社(第五版)参考教材:1计算机组成原理唐朔飞 高等教育出版社2.计算机组成原理 秦磊华 清华大学出版社3.计算机组成与系统结构 袁春风 清华出版社4.现代计算机组成原理 潘松 科学出版社,第章 计算机系统概论,1.1 计算机系统简介,1.4 计算机的发展及应用,1.3 计算机硬件的主要技术指标,1.2 计算机的基本组成,1.1 计算机系统简介,由具有各类特殊功能的信息(程序)组成,1.计算机系统,计算机系统,计算机的实体,如主机、外设等,一、计算机的软硬件概念,按任务需要编制成的各种程序,用来管理整个计算机系统,语言处理程序,操作系统,服务性程序,数据库管理系统,网络软件,软件,1.1,1.1,2.计算机的解题过程,翻译程序(Translator)有三类:1.汇编程序(Assembler):汇编语言源程序机器语言目标程序。2.编译程序(Complier):高级语言源程序汇编/机器语言目标程序3.解释程序(Interpreter):将高级语言语句逐条翻译成机器指令并立即执行,不生成目标文件。,2.计算机的解题过程,EXTop=1,ALUSelA=1,ALUSelB=11,ALUop=add,IorD=1,Read,MemtoReg=1,RegWr=1,.,temp=vk;vk=vk+1;vk+1=temp;,lw$15,0($2)lw$16,4($2)sw$16,0($2)sw$15,4($2),1000 1100 0100 1111 0000 0000 0000 00001000 1100 0101 0000 0000 0000 0000 01001010 1100 0101 0000 0000 0000 0000 00001010 1100 0100 1111 0000 0000 0000 0100,1.1,二、计算机系统的层次结构,程序员所见到的计算机系统的属性概念性的结构与功能特性,实现计算机体系结构所体现的属性,有无乘法指令,如何实现乘法指令,(指令系统、数据类型、寻址技术、I/O机理),(具体指令的实现),1.1,三、计算机体系结构和计算机组成,1.2 计算机的基本组成,1.计算机由五大部件组成,3.指令和数据用二进制表示,4.指令由操作码和地址码组成,6.以运算器为中心,5.存储程序,一、冯诺依曼计算机的特点,5.存储程序,算术运算逻辑运算,存放数据和程序,将信息转换成机器能识别的形式,将结果转换成人们熟悉的形式,指挥程序运行,1.2,1.冯诺依曼计算机硬件框图,1.2,1.冯诺依曼计算机硬件框图,一个典型系统的硬件组成,PC:程序计数器;ALU:算术/逻辑单元;USB:通用串行总线,PC主板,CPU插座,内存条,PCI总线插槽,1.上机前的准备,建立数学模型,编制解题程序,确定计算方法,程序 运算的 全部步骤,指令 每 一个步骤,1.2,二、计算机的工作步骤,取x 至运算器中,乘以x 在运算器中,乘以a 在运算器中,存ax2 在存储器中,取b 至运算器中,乘以x 在运算器中,加ax2 在运算器中,加c 在运算器中,=(ax+b)x+c,取x 至运算器中,乘以a 在运算器中,加b 在运算器中,乘以x 在运算器中,加c 在运算器中,计算 ax2+bx+c,1.2,编程举例,000001 0000001000,打印,停机,取数,存数,加,乘,指令格式举例,1.2,1.2,计算 ax2+bx+c 程序清单,存储体,大楼,存储单元 存放一串二进制代码,存储字 存储单元中二进制代码的组合,存储字长 存储单元中二进制代码的位数,每个存储单元赋予一个地址号,按地址寻访,存储单元,存储元件,(0/1),教室,座位,(无人/有人),(1)存储器的基本组成,1.2,2.计算机的解题过程,MAR,MDR,1.2,存储器地址寄存器反映存储单元的个数,存储器数据寄存器反映存储字长,(1)存储器的基本组成,取指令,分析指令,执行指令,PC,IR,CU,取指,执行,IR 存放当前欲执行的指令,访存,访存,完成一条指令,1.2,(2)控制器的基本组成,以取数指令为例,(3)主机完成一条指令的过程,1.2,以存数指令为例,1.2,(3)主机完成一条指令的过程,(4)ax2+bx+c 程序的运行过程,将程序通过输入设备送至计算机,程序首地址,打印结果,分析指令,取指令,停机,启动程序运行,执行指令,1.2,MAR,M,MDR,IR,PC,CU,OP(IR),Ad(IR),MAR,M,MDR,ACC,PC,1.3 计算机硬件的主要技术指标,1.机器字长,一般指 一次参与运算数据的基本长度。用二进 制数位的长度来表示。一般与 计算机内部 的 寄存器位数、数据总线、运算器、存储器字长 有关。早期的计算机字长一般为16位,现在字长为32位或64位。,1.3 计算机硬件的主要技术指标,2.运算速度,时钟周期:又称为节拍周期或T周期,是时钟频率的倒数。是处理器操作最基本的时间单位。例如,主频为1GHz的CPU的时钟周期为1ns。CPI:表示执行每条指令所需要的平均时钟周期数。CPI=一个程序的CPU时钟周期数程序指令数量,1.3 计算机硬件的主要技术指标,2.运算速度,CPI=一个程序的CPU时钟周期数程序指令数量设程序中每类指令的使用频度为Pi,每类指令的CPI为CPIi,每类指令的条数为ICi,程序中的总指令条数为IC.则,程序的CPI可用下列公式计算:,2.运算速度,CPU执行时间:是指CPU计算某个任务所花费的时间,不包括I/O访问时的等待时间等。CPU执行时间=CPU时钟周期总数时钟周期=指令条数CPI 时钟周期 从上面的公式可以看出CPU的性能与计算机体系的关系:时钟频率反映了计算机的实现技术和生产工艺.CPI反映了计算机的实现技术和指令集结构.IC反映了计算机指令系统的设计和编译技术.,2.运算速度,响应时间:是指计算机完成一个任务所花费的全部时间,包括存储访问时间、磁盘访问时间和I/O访问时间等。它是计算机执行单个任务时的性能。吞吐量:是指计算机系统在单位时间内完成的总工作量。它表征了计算机系统执行多个任务时的性能表现。,2.运算速度,MIPS:是指CPU每秒可以执行的百万条机器指令数。MIPS=指令数(程序执行的时间*106)=时钟频率(CPI*106)以MIPS作为衡量计算机系统性能时要注意以下问题:该指标没有考虑不同指令在功能和执行速度上的差异.不能用于不同指令系统计算机之间性能的比较.同一台计算机,不同类型的指令系统的MIPS也不一样。某些情况下,MIPS值可能与计算机的实际性能成反比。,2.运算速度,MFLOPS:是指CPU每秒可以执行的百万条浮点操作次数。MFLOPS=程序中的浮点操作次数(程序执行的时间*106)以MFLOPS作为衡量计算机系统性能时要注意以下问题:MFLOPS仅能反映浮点数的运算速度.MFLOPS的计算结果与所使用的程序相关。,3.CPU性能举例,例1.1 某程序的目标代码主要由4类指令组成,他们在程序中所占比例和各自的CPI如表所示。求该程序的CPI.若该CPU的主频为400MHz,求该机的MIPS.,3.CPU性能举例,解:根据 CPI=1*0.6+2*0.18+4*0.12+8*0.1=2.24根据 MIPS=时钟频率(CPI*106)MIPS=400*106(2.24*106)=178.6,3.CPU性能举例,例1.2 程序P在机器A上运行需10 s,机器A的时钟频率为400MHz。现在要设计一台机器B,希望该程序在B上运行只需6 s.机器B时钟频率的提高导致了其CPI的增加,使得程序P在机器B上时钟周期数是在机器A上的1.2倍。机器B的时钟频率达到A的多少倍才能使程序P在B上执行速度是A上的10/6=1.67倍?,3.CPU性能举例,解:CPU时间A=时钟周期数A/时钟频率A 时钟周期数A=10 sec x 400MHz=4000M个 时钟频率B=时钟周期数B/CPU时间B=1.2 x 4000M/6 sec=800 MHz,机器B的频率是A的两倍,但机器B的速度并不是A的两倍!,3.CPU性能举例,例1.3 假定某程序P编译后生成的的目标代码由A、B、C、D四类指令组成,他们在程序中所占比例分别为43%、21%、12%和24%,已知他们的CPI分别为1、2、2、2。现重新对程序P进行编译优化,生成的新目标代码中A类指令条数减少了50%,其它类指令的条数没有变化,请问:编译优化前后的CPI各是多少?假定程序在主频为50MHz的计算机上运行,则优化前后的MIPS各是多少?编译优化前后,哪种代码的执行速度快?,3.CPU性能举例,解:A类指令条数减少了50%后,各类指令所占比例如下:A类指令:21.5/(21.5+21+12+24)=27%B类指令:21/(21.5+21+12+24)=27%C类指令:12/(21.5+21+12+24)=15%D类指令:24/(21.5+21+12+24)=31%优化前后程序的CPI分别计算如下:优化前:43%*1+21%*2+12%*2+24%*2=1.57优化后:27%*1+27%*2+15%*2+31%*2=1.73,3.CPU性能举例,解:优化前后程序的MIPS分别计算如下:优化前:50M/1.57=31.8 MIPS 优化后:50M/1.73=28.9 MIPS 从这个例子可以看出,用MIPS数来进行性能估计是不可靠。,3.CPU性能举例,解:设优化前的指令条数分别为43、21、12、24,总和为100,则优化后的分别为21.5、21、12、24,总和为78.5.优化前CPU的执行时间为:指令条数*CPI*时钟周期 100*1.57*T=157 T优化后CPU的执行时间为:78.5*1.73*T=135.8 T,221=256 KB,4.存储容量,主存容量,辅存容量,存储单元个数 存储字长,字节数,字节数 80 GB,如 MAR MDR 容量,10 8,16 32,存放二进制信息的总位数,1.3,1 K 8位,64 K 32位,1.4 计算机的发展及应用,1.4.3 计算机的展望,1.4.2 计算机的应用,1.4.1 计算机的发展史,计算机的分类,1.总体分为电子模拟计算机和电子数字计算机。2.电子数字计算机又可以分为通用计算机和专用计算机。3。通用计算机又可以分为:巨型机、大型机、中型机、小型机、微型机和单片机。,1.4.1 计算机的发展史,一、计算机的产生和发展,1946年 美国 ENIAC,1955年退役,用手工搬动开关和拔插电缆来编程,世界上第一台电子计算机 ENIAC(1946),硬件技术对计算机更新换代的影响,二、微型计算机的出现和发展,微处理器芯片,存储器芯片,1971年,1970年,Moore 定律,Intel 公司的缔造者之一 Gordon Moore 提出,Intel 公司的典型微处理器产品,8080 8位 1974年8086 16位 1979年 2.9 万个晶体管80286 16位 1982年 13.4 万个晶体管80386 32位 1985年 27.5 万个晶体管80486 32位 1989年 120.0 万个晶体管Pentium 64位(准)1993年 310.0 万个晶体管Pentium Pro 64位(准)1995年 550.0 万个晶体管Pentium 64位(准)1997年 750.0 万个晶体管Pentium 64位(准)1999年 950.0 万个晶体管Pentium 64位 2000年 4 200.0 万个晶体管,2007 年 芯片上可集成 3 亿 5 千万 个晶体管,2010 年 芯片上可集成 8 亿 个晶体管,Intel产品系列介绍(1),8080:世界上第一个通用微处理器。8位机。8086:16位机,采用了指令高速缓存。80286:可以寻址16MB的存储空间,不再受1MB存储空间的限制。80386:32位机,它是Intel产品中第一个支持多任务的处理器。80486:采用了更为复杂、功能更为强大的高速缓存技术和指令流水线技术。它内置浮点协处理器。,Intel产品系列介绍(2),Pentium:开始采用超标量(Superscalar)技术。允许更多的指令并行执行。Pentium Pro:极富有进取性的采用了转移预测、数据流分析、推测执行等技术。Pentium:采用了专门用于处理视频、音频和图形数据的Intel MMX技术。Pentium:采用了新的浮点指令、支持三维图形软件。Pentium:使用64位组织结构的新一代。,三、软件技术的兴起和发展,机器语言 面向机器,汇编语言 面向机器,高级语言 面向问题,FORTRAN 科学计算和工程计算,PASCAL 结构化程序设计,C 面向对象,Java 适应网络环境,1.各种语言,2.1,2.系统软件,语言处理程序 汇编程序 编译程序 解释程序,操作系统 DOS UNIX Windows,服务性程序 装配 调试 诊断 排错,数据库管理系统 数据库和数据库管理软件,网络软件,2.1,3.软件发展的特点,开发周期长,制作成本昂贵,检测软件产品质量的特殊性,2.1,1.4.2 计算机的应用,一、科学计算和数据处理,二、工业控制和实时控制,三、网络技术,1.电子商务,2.网络教育,3.敏捷制造,四、虚拟现实,五、办公自动化和管理信息系统,六、CAD/CAM/CIMS,七、多媒体技术,八、人工智能,2.2,1.4.3 计算机的展望,一、计算机具有类似人脑的一些超级 智能功能,要求计算机的速度达1015/秒(千万亿次),二、芯片集成度的提高受以下三方面的限制,芯片集成度受物理极限的制约,按几何级数递增的制作成本,芯片的功耗、散热、线延迟,三、?替代传统的硅芯片,1.光计算机,2.DNA生物计算机,3.量子计算机,利用光子取代电子进行运算和存储,通过控制DNA分子间的生化反应,利用原子所具有的量子特性,2.3,中国计算机发展史,1958年,中科院计算所研制成功我国第一台小型电子管通用计算机103机,标志着我国第一台电子计算机的诞生。1965年,中科院计算所研制成功第一台大型晶体管计算机109乙,之后推出109丙机,该机为两弹试验中发挥了重要作用;1974年,清华大学等单位联合设计、研制成功采用集成电路的DJS-130小型计算机,运算速度达每秒100万次;,中国计算机发展史,1983年,国防科技大学研制成功运算速度每秒上亿次的银河-I巨型机,这是我国高速计算机研制的一个重要里程碑;1985年,电子工业部计算机管理局研制成功与IBM PC机兼容的长城0520CH微机。1992年,国防科技大学研究出银河-II通用并行巨型机,峰值速度达每秒4亿次浮点运算(相当于每秒10亿次基本运算操作),为共享主存储器的四处理机向量机,总体上达到80年代中后期国际先进水平。它主要用于中期天气预报;,中国计算机发展史,1993年,国家智能计算机研究开发中心(后成立北京市曙光计算机公司)研制成功曙光一号全对称共享存储多处理机,这是国内首次以基于超大规模集成电路的通用微处理器芯片和标准UNIX操作系统设计开发的并行计算机;1995年,曙光公司又推出了国内第一台具有大规模并行处理机(MPP)结构的并行机曙光1000(含36个处理机),峰值速度每秒25亿次浮点运算,实际运算速度上了每秒10亿次浮点运算这一高性能台阶。曙光1000与美国Intel公司1990年推出的大规模并行机体系结构与实现技术相近,与国外的差距缩小到5年左右。,中国计算机发展史,1997年,国防科大研制成功银河-III百亿次并行巨型计算机系统,采用可扩展分布共享存储并行处理体系结构,由130多个处理结点组成,峰值性能为每秒130亿次浮点运算,系统综合技术达到90年代中期国际先进水平。1997至1999年,曙光公司先后在市场上推出具有机群结构(Cluster)的曙光1000A,曙光2000-I,曙光2000-II超级服务器,峰值计算速度已突破每秒1000亿次浮点运算,机器规模已超过160个处理机,,中国计算机发展史,1999年,国家并行计算机工程技术研究中心研制的神威I计算机通过了国家级验收,并在国家气象中心投入运行。系统有384个运算处理单元,峰值运算速度达每秒3840亿次。2000年,曙光公司推出每秒3000亿次浮点运算的曙光3000超级服务器。2001年,中科院计算所研制成功我国第一款通用CPU“龙芯”芯片,中国计算机发展史,2002年,曙光公司推出完全自主知识产权的“龙腾”服务器,龙腾服务器采用了“龙芯-1”CPU,采用了曙光公司和中科院计算所联合研发的服务器专用主板,采用曙光LINUX操作系统,该服务器是国内第一台完全实现自有产权的产品,在国防、安全等部门将发挥重大作用。2003年,百万亿次数据处理超级服务器曙光4000L通过国家验收,再一次刷新国产超级服务器的历史纪录,使得国产高性能产业再上新台阶。,中国计算机发展史,2010年,“天河一号”为我国首台千万亿次超级计算机。速度在世界排名第一,实测运算速度达到2507万亿次。排名第三的是中国曙光公司研制的“星云”高性能计算机,其实测运算速度达到每秒1270万亿次。这个速度意味着,如果用“天河一号”计算一秒,则相当于全国13亿人连续计算88年。如果用“天河一号”计算一天,一台当前主流微机得算160年。“天河一号”的存储量,则相当于4个国家图书馆藏书量之和。,输入设备,输出设备,输入输出接口和总线,外存设备,主存储器,高速缓存,控 制 器,运 算 器,第三章,第六、八章,第五章,第二章,本课程讲授的内容如图:,第七章,第四章 指令系统,内容的相互关系如图:,谢 谢!,