计算机科学引论.ppt
《计算机科学引论.ppt》由会员分享,可在线阅读,更多相关《计算机科学引论.ppt(70页珍藏版)》请在三一办公上搜索。
1、CPU的结构和指令的执行,计算机科学引论,2023/10/8,Machine Structure,2,CPU的基本部件,计算机的基本模型有两个部件内存存储需要处理的数据存储处理好的数据存储程序CPU执行存储在内存中的程序,把需要处理的数据变换成所期望的新格式或内容(处理好的数据)结构比内存复杂得多,2023/10/8,Machine Structure,3,CPU的基本部件,CPU究竟需要哪些部件?CPU的工作:执行程序(program)程序:一系列的指令(instruction)指令:对一个或多个数进行某个操作,Z=X+YA=B*C,让CPU工作的第一步:告诉它操作和操作数的信息,CPU只认
2、识二进制数,把指令编码成二进制数,2023/10/8,Machine Structure,4,CPU的基本部件,指令编码编码操作常用操作个数:20-30个,用4-5位二进制数即可编码,2023/10/8,Machine Structure,5,CPU的基本部件,指令编码编码操作数操作数存储在内存中内存用地址索引 用地址编码操作数?32位平台,地址一般是32位3操作数指令的话,地址要32*3=96位!现代内存相对于现代CPU的速度来说也太慢了把操作数放到快而小的存储空间指令中只编码一个地址,2023/10/8,Machine Structure,6,CPU的基本部件,指令编码编码操作数操作数放在
3、哪里?比较小,可以用很短的地址编码非常快,和CPU的计算速度相当要快,就要小!寄存器(register),2023/10/8,Machine Structure,7,CPU的基本部件,指令编码寄存器(register)CPU中存放操作数的空间小:一般不超过32个快:一般一个CPU周期可访问多次(2到10多次)编码操作数编码寄存器的地址32个寄存器须用5位二进制编码,3个操作数需要3*5=15位二进制数,2023/10/8,Machine Structure,8,CPU的基本部件,指令编码寄存器中的数从何而来?数据总是存储在内存中的 数据必须从内存读内存访问指令:只编码一个地址RISC类CPU甚
4、至只编码半个地址,一个32位地址须由两条指令装载到寄存器并拼接而成CPU需要内存访问单元(memory unit),CPU,寄存器,内存,MU,2023/10/8,Machine Structure,9,CPU的基本部件,指令所指定的操作需要执行CPU需要有执行部件不同功能的执行部件有不同的名字ALU:算术逻辑单元(执行整数算术逻辑运算)FPU:浮点单元(执行浮点运算),CPU,寄存器,MU,为何ALU/FPU要接到MU上?CISC类CPU允许指令使用内存操作数现代CPU为优化执行速度而这么设计,2023/10/8,Machine Structure,10,CPU的基本部件,指令也必须从内存中
5、读取存储程序 取指部件(instruction fetch),CPU,寄存器,MU,IF,IF要读内存,连上MU?较老的CPU是这么设计的较新的CPU其MU被分裂成多个部件以提高速度,2023/10/8,Machine Structure,11,CPU的基本部件,指令从哪个内存单元取?IP/PCInstruction Pointer,Program Counter,CPU,寄存器,MU,IF,PC,每次取到指令后,IP/PC自动加适当的值指向下一条指令分支指令怎么办?,2023/10/8,Machine Structure,12,CPU的基本部件,控制器(Control Unit)控制指令执行
6、过程,协调各部件工作,CPU,寄存器,MU,IF,PC,CU,2023/10/8,Machine Structure,13,指令执行过程,第一步:取指把IP/PC的值交给MUMU读到指令给IFIP/PC增加,指向下一条指令,寄存器,MU,IF,PC,CU,.,2023/10/8,Machine Structure,14,指令执行过程,第二步:指令译码(decode)解出指令的操作和操作数,并从寄存器读出需要的操作数,2023/10/8,Machine Structure,15,指令执行过程,第三步:运算执行指令所指定的运算,2023/10/8,Machine Structure,16,指令执行
7、过程,第四步:内存访问如果是要读写内存的指令:读写内存如果不是?暂停等待一周期,或跳过,2023/10/8,Machine Structure,17,指令执行过程,第五步:写回把结果写回寄存器,2023/10/8,Machine Structure,18,MIPS的指令执行,简化表示,1.取指,2.译码,3.执行,4.内存,5.写回,2023/10/8,Machine Structure,19,程序的执行,程序是多条指令的序列一条接一条地执行较老的CPU是这么设计的但很慢,2023/10/8,Machine Structure,20,加速程序执行的方法,流水线(pipeline)流水线是工业化
8、生产的重要概念极大地提高了劳动生产率也可以提高CPU部件的“劳动生产率”流水线为什么有效?指令执行各步骤占用的部件不同 如果各步骤串行进行,则大部分部件在大部分时间都空闲 各步骤并行,让各部件都忙起来,2023/10/8,Machine Structure,21,加速指令执行的方法,指令执行各步骤部件占用情况第一步:取指IP/PC,MU,IF第二步:译码寄存器第三步:运算ALU/FPU第四步:内存访问MU第五步:写回寄存器,2023/10/8,Machine Structure,22,加速指令执行的方法,一条指令执行中占用资源情况,第一条指令开始译码的时候,取指的资源已经空闲此时已经可以开始取
9、第二条指令了,2023/10/8,Machine Structure,23,加速指令执行的方法,指令流水线把多条指令的各执行步骤并行,2023/10/8,Machine Structure,24,加速指令执行的方法,周期(cycle)指令执行一步所需要的时间要使用流水线技术,各不同步骤的执行时间必须相同:都是一周期在同一个周期,有多条指令在流水线中每条指令在不同的执行步骤,占用不同的部件,2023/10/8,Machine Structure,25,加速指令执行的方法,流水线的性能例:执行10条指令,每指令5步骤,每步骤一周期 不用流水线:5*10=50周期 5级流水线:10+(5-1)=14
10、周期加速比:50/14=3.57流水线的理论最高加速比=级数指令数越多,加速比越高无限多条指令加速比=级数一条指令?加速比为1 不能加速!,2023/10/8,Machine Structure,26,加速指令执行的方法,流水线的性能指令的延迟(latency)执行一条指令所需时间流水线不能减少单条指令的延迟流水线可以减少程序的延迟指令的产出(throughput)单位时间内系统处理的指令数流水线可以增加指令的产出,2023/10/8,Machine Structure,27,加速指令执行的方法,流水线问题结构竞争:同一个周期使用相同的部件1.内存访问竞争,2023/10/8,Machine
11、Structure,28,加速指令执行的方法,内存访问竞争在同一个周期,需要同时读取数据和指令用两个不同的内存:DSP、嵌入式CPU等用两个高速缓存(cache):通用CPU,寄存器,IF,PC,CU,.,?,内存,?,2023/10/8,Machine Structure,29,加速指令执行的方法,流水线问题结构竞争2.寄存器访问竞争,2023/10/8,Machine Structure,30,加速指令执行的方法,寄存器访问竞争给寄存器加高速缓存?不现实寄存器非常快单个周期可以完成一次读和一次写前半个周期写,后半个周期读为何写在前?写操作是在前面的指令执行的寄存器很小可以做多个读端口,寄存
12、器,IF,PC,CU,内存,MU,L2 Cache,2023/10/8,Machine Structure,31,机器语言与汇编语言,CPU只能识别二进制数把指令编码成二进制数编码操作、操作数和其它信息机器语言,2023/10/8,Machine Structure,32,机器语言与汇编语言,MIPS的机器语言例,32位,opcode:操作码 funct:操作码第二部分rs:Source Register rt:Target Registerrd:Destination Register shamt:移位位数,2023/10/8,Machine Structure,33,机器语言与汇编语言,M
13、IPS的机器语言例add$8,$9,$10opcode=0(查表)funct=32(查表)rs=9(操作数1)rt=10(操作数2)rd=8(目的操作数)shamt=0(非移位指令),2023/10/8,Machine Structure,34,机器语言与汇编语言,MIPS的机器语言例add$8,$9,$10,二进制表示:,机器语言指令,十进制表示:,MIPS还有其它格式的指令,2023/10/8,Machine Structure,35,机器语言与汇编语言,机器语言适合CPU使用,但不适合程序员人类对长串的数字不敏感但对符号敏感用符号表示指令的各种信息汇编语言,2023/10/8,Machi
14、ne Structure,36,机器语言与汇编语言,汇编语言(assembly)机器指令与汇编指令一一对应在机器语言需要让人看的时候,常常实际使用汇编语言使用与机器语言相同的概念操作,操作数,允许使用名字来索引变量比地址方便得多,2023/10/8,Machine Structure,37,机器语言与汇编语言,MIPS的汇编语言,add$8,$9,$10,操作 操作数(寄存器),addsubbeq,$0$31(32个寄存器),2023/10/8,Machine Structure,38,机器语言与汇编语言,汇编语言程序设计用汇编语言写程序可以有最高的效率(如果程序员合格)比之机器语言前进了一大
15、步被称为第二代程序设计语言问题机器指令相对简单程序员希望用较复杂的表达式与硬件相关移植到不同的CPU非常不方便,2023/10/8,Machine Structure,39,程序语言,什么才是适合程序设计的语言?接近人类的思维特性看起来象人类语言学习较容易机器无关同一个程序可以在不同硬件运行无需学习机器相关内容如果不关注最佳性能的话,程序语言,2023/10/8,Machine Structure,40,程序语言,计算机如何执行程序语言程序?解释(interpret)逐条读取程序语句并立即执行各种script:.bat,.vbs,.js,.py,由解释器处理(interpreter)翻译(tr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 引论
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6232203.html