计算机体系结构.ppt
《计算机体系结构.ppt》由会员分享,可在线阅读,更多相关《计算机体系结构.ppt(113页珍藏版)》请在三一文库上搜索。
1、2019/11/11,中国科学技术大学,Chapter2.1,计算机体系结构,2019/11/11,中国科学技术大学,Chapter2.2,Review,设计发展趋势 Capacity Speed Logic 2x in 3 years 2x in 3 years DRAM 4x in 3 years 2x in 10 years Disk 4x in 3 years 2x in 10 years 运行任务的时间 Execution time, response time, latency 单位时间内完成的任务数 Throughput, bandwidth “X性能是Y的n倍 ” : ExTi
2、me(Y) Performance(X) - = - ExTime(X) Performance(Y),2019/11/11,中国科学技术大学,Chapter2.3,Amdahls 定律: CPI Law: 执行时间是计算机系统度量的最实际,最可靠的方式,2019/11/11,中国科学技术大学,Chapter2.4,第2章 指令集结构设计,2.1 指令集结构分类 2.2 寻址方式 2.3 操作数的类型、表示和大小 2.4 指令集功能设计 2.5 指令格式 2.6 编译技术与计算机体系结构 2.7 DLX指令集结构,2019/11/11,中国科学技术大学,Chapter2.5,指令集设计,201
3、9/11/11,中国科学技术大学,Chapter2.6,指令集结构: 我们必须说明哪些东西?,指令格式或编码方式。即如何编码? 操作数和操作结果的存放位置 存放位置? 多少个显式操作数? 存储器操作数如何定位? 哪些操作数可以或不可以放到存储器中? 数据类型和大小 寻址方式 支持哪些操作 下一条指令地址 jumps, conditions, branches fetch-decode-execute is implicit!,2019/11/11,中国科学技术大学,Chapter2.7,有关ISA的7个方面,Class of ISA Memory addressing Addressing m
4、odes Types and sizes of operands Operations Control flow instructions Encoding an ISA,2019/11/11,中国科学技术大学,Chapter2.8,2.1 ISA 的基本分类,2019/11/11,中国科学技术大学,Chapter2.9,ISA 的基本分类,累加器型(Accumulator) (1 register): 1 address add A acc acc + memA 1+x address addx A acc acc + memA + x 堆栈型(Stack): 0 address add t
5、os tos + next 通用寄存器型(General Purpose Register): Register-memory 2 address add A B EAA EAA + EAB 3 address add A B C EAA EAB + EAC Load/Store: 3 address add Ra Rb Rc Ra Rb + Rc load Ra Rb Ra memRb store Ra Rb memRb Ra 存储器-存储器型 (目前已经没有),2019/11/11,中国科学技术大学,Chapter2.10,比较指令条数,计算 C = A+B,2019/11/11,中国科学
6、技术大学,Chapter2.11,通用寄存器型占主导地位,1980以后至今几乎所有的机器都用通用寄存器结构 原因 寄存器比存储器快 对编译器而言寄存器更容易使用 (A*B)-(B*C)-(A*D) 寄存器可以存放变量 代码紧凑,2019/11/11,中国科学技术大学,Chapter2.12,通用寄存器的分类,分类原则: ALU指令到底是两地址指令还是三地址指令 ALU指令中有多少个操作数可以用存储器寻址,即有多少个存储器操作数,2019/11/11,中国科学技术大学,Chapter2.13,常见的通用寄存器型指令集结构的优缺点,2019/11/11,中国科学技术大学,Chapter2.14,2
7、.2 寻址技术,如何解释存储器地址?如何说明寻址方式? 1980年以来几乎所有机器的存储器都是按字节编址的 ISA设计要关注两个问题: 8bits字节, 16bits-半字,32bits 字, 64bits 双字 如何读32位字,两种方案 每次一个字节,四次完成 每次一个字,一次完成 问题: (1)如何将字节地址映射到字地址 (尾端问题) (2)一个字是否可以存放在任何字节边界上 (对齐问题) 即尾端(Endian)和对齐问题,2019/11/11,中国科学技术大学,Chapter2.15,尾端问题,little endian, big endian, 在一个字内部的字节顺序问题,如地址xxx
8、00指定了一个字(int), 存储器中从xxx00处连续存放ffff0000, 则有两种方式: Little endian 方式下xxx00位置是字的最低字节,整数值为0000ffff, Intel 80x86, DEC Vax, DEC Alpha (Windows NT) Big endian 方式下xxx00位置是字的最高字节,整数值为ffff0000, IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA,2019/11/11,中国科学技术大学,Chapter2.16,对齐问题,对一个s字节的对象访问,地址为A,如果A mod s =0 那么它就是
9、边界对齐的。 边界对齐的原因是存储器本身读写的要求,存储器本身读写通常就是边界对齐的,对于不是边界对齐的对象的访问可能要导致存储器的两次访问,然后再拼接出所需要的数。(或发生异常),2019/11/11,中国科学技术大学,Chapter2.17,寻址方式,寻址方式:如何说明要访问的对象地址 有效地址:由寻址方式说明的某一存储单元的实际存储器地址。 有效地址 vs. 物理地址,2019/11/11,中国科学技术大学,Chapter2.18,Addressing mode,Example,Meaning,Register,Add R4,R3,R4,R4+R3,Immediate,Add R4,#3
10、,R4,R4+3,Displacement,Add R4,100(R1),R4,R4+Mem100+R1,Register indirect,Add R4,(R1),R4,R4+MemR1,Indexed / Base,Add R3,(R1+R2),R3,R3+MemR1+R2,Direct or absolute,Add R1,(1001),R1,R1+Mem1001,Memory indirect,Add R1,(R3),R1,R1+MemMemR3,Post-increment,Add R1,(R2)+,R1,R1+MemR2; R2,R2+d,Pre-decrement,Add R1,
11、(R2),R2,R2d; R1,R1+MemR2,Scaled,Add R1,100(R2)R3,R1,R1+Mem100+R2+R3*d,寻址方式,2019/11/11,中国科学技术大学,Chapter2.19,各种寻址方式的使用情况? (忽略寄存器直接寻址),三个SPEC89程序在VAX结构上的测试结果: 立即寻址,偏移寻址使用较多,2019/11/11,中国科学技术大学,Chapter2.20,偏移寻址,主要问题:偏移的范围(偏移量的大小),Alpha Architecture with full optimization for Spec CPU2000, showing the av
12、erage of integer programs(CINT2000) and the average of floating-point programs (CFP2000),2019/11/11,中国科学技术大学,Chapter2.21,立即数寻址,Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average of floating-point programs (CFP2000),2019/11/11
13、,中国科学技术大学,Chapter2.22,立即数的大小,The distribution of immediate values. About 20% were negative for CINT2000 and about 30% were negative for CFP2000. These measurements were taken on a Alpha, where the maximum immediate is 16 bits, for the spec cpu2000 programs. A similar measurement on the VAX, which su
14、pported 32-bit immediates, showed that about 20% to 25% of immediates were longer than 16 bits.,2019/11/11,中国科学技术大学,Chapter2.23,寻址方式小结,重要的寻址方式: 偏移寻址方式, 立即数寻址方式, 寄存器间址方式 SPEC测试表明,使用频度达到 75%-99% 偏移字段的大小应该在 12 - 16 bits 可满足75%-99%的需求 立即数字段的大小应该在 8 -16 bits 可满足50%-80%的需求,2019/11/11,中国科学技术大学,Chapter2.24,
15、Review lecture3,ISA需考虑的7个方面 Class of ISA Memory addressing Addressing modes Types and sizes of operands Operations Control flow instructions Encoding an ISA ISA的类型 通用寄存器型占主导地位 寻址方式 重要的寻址方式: 偏移寻址方式, 立即数寻址方式, 寄存器间址方式 SPEC测试表明,使用频度达到 75%-99% 偏移字段的大小应该在 12 - 16 bits, 可满足75%-99%的需求 立即数字段的大小应该在 8 -16 bits
16、, 可满足50%-80%的需求,2019/11/11,中国科学技术大学,Chapter2.25,2.3 操作数的类型、表示和大小,操作数类型和操作数表示也是软硬件的主要界面之一。 操作数类型:是面向应用、面向软件系统所处理的各种数据结构。 整型、浮点型、字符、字符串、向量类型等 类型由操作码确定或数据附加硬件解释的标记,一般采用由操作码确定 数据附加硬件解释的标记,现在已经不采用 操作数的表示:硬件结构能够识别,指令系统可以直接调用的结构 整型:原码、反码、补码 浮点:IEEE 754标准 十进制:BCD码,二进制十进制表示,2019/11/11,中国科学技术大学,Chapter2.26,操作
17、数的大小,基准测试的结论:(1)对单字、双字的数据访问具有较高的频率 (2)定义操作数字段长度为64位,更具有一般性,2019/11/11,中国科学技术大学,Chapter2.27,2.4 指令集结构的功能设计,CISC计算机指令集结构的功能设计 RISC计算机指令结构的功能设计,2019/11/11,中国科学技术大学,Chapter2.28,典型操作类型,一般计算机都支持前三类所有的操作; 不同计算机系统 对系统支持程度不同,但都支持基本的系统功能。 对最后四类操作的支持程度差别也很大,有些机器不支持,有些机器还在此基础上做一些扩展,这些指令有时作为可选的指令。,2019/11/11,中国科
18、学技术大学,Chapter2.29,Top 10 80x86 Instructions,2019/11/11,中国科学技术大学,Chapter2.30,控制类指令,四种类型的控制流改变:条件分支( Conditional branch) 、跳转(Jump)、过程调用(Procedure calls)、过程返回(Procedure returns),Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average
19、 of floating-point programs (CFP2000),2019/11/11,中国科学技术大学,Chapter2.31,控制流类指令中的寻址方式,PC-relative 方式 (相对寻址) 说明动态的转移地址方式: 编译时不知道转移地址,程序执行时动态确定 转移地址放到某一寄存器中 其他方式,2019/11/11,中国科学技术大学,Chapter2.32,转移目标地址与当前指令的距离,Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer progr
20、ams(CINT2000) and the average of floating-point programs (CFP2000) 建议:PC-relative 寻址,偏移地址至少8位,2019/11/11,中国科学技术大学,Chapter2.33,分支比较类型比较,Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average of floating-point programs (CFP2000),20
21、19/11/11,中国科学技术大学,Chapter2.34,ISA对操作类型的选择,需考虑的因素:速度、价格和灵活性 基本要求:指令系统的完整性、规整性、高效率和兼容性 完整性设计:具备基本指令种类 兼容性:系列机 高效率:指令执行速度快、使用频度高 规整性 让所有运算部件都能对称、均匀的在所有数据存储单元之间进行操作。 对所有数据存储单元都能同等对待,无论是操作数或运算结果都可以无约束地存放到任意数据存储单元中 正交性 数据类型独立于寻址方式 寻址方式独立于所要完成的操作 当前对这一问题的处理有两种截然不同的方向 CISC和RISC,2019/11/11,中国科学技术大学,Chapter2.
22、35,CISC计算机ISA的功能设计,目标:强化指令功能,减少指令的指令条数,以提高系统性能 基本优化方法 1. 面向目标程序的优化 面向目标程序的优化是提高计算机系统性能最直接的方法 其指标主要 缩短程序的长度 缩短程序的执行时间 优化方法 对大量的目标程序机器执行情况进行统计分析,找出使用频度高,执行时间长的指令或指令串 对于那些使用频度高的指令,用硬件加快其执行,对于那些使用频度高的指令串,用一条新的指令来代替它,2019/11/11,中国科学技术大学,Chapter2.36,优化目标程序的主要途径(1/2),1)增强运算型指令的功能 如sin(x), Cos(x), SQRT(X),甚
23、至多项式计算 如用一条三地址指令完成 P(X) = C(0)+C(1)X+C(2)X2+C(3)X3+ 2) 增强数据传送类指令的功能 主要是指数据块传送指令 R-R, R-M, M-M之间的数据块传送可有效的支持向量和矩阵运算,如IBM370 R-Stack之间设置数据块传送指令,能够在程序调用和程序中断时,快速保存和恢复程序现场,如 VAX-11,2019/11/11,中国科学技术大学,Chapter2.37,优化目标程序的主要途径(2/2),3) 增强程序控制指令的功能 在CISC中,一般均设置了多种程序控制指令,正常仅需要转移指令和子程序控制指令 2. 面向高级语言和编译程序改进指令系
24、统 主要是缩小HL-ML之间的差距 1)增强面向HL和Compiler支持的指令功能 在用高级语言编写的源程序中,对各种语句的使用频度和执行时间进行统计分析,对使用频度高、执行时间长的语句,增强有关指令的功能,或增加相关的专门指令,从而达到缩短目标程序长度,减少目标程序执行时间的目的,同时也缩短了编译时间,2019/11/11,中国科学技术大学,Chapter2.38,例如FORTRAN语言和COBOL语言中各种主要语句的使用频度,观察结果: (1)一元赋值在其中比例最大,增强数据传送类指令功能,缩短这类指令的执行时间是对高级语言非常有力的支持, (2)其他赋值语句中,增1操作比例较大,许多机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构
链接地址:https://www.31doc.com/p-4463287.html