计算机系统结构(ch-2)_第1页
计算机系统结构(ch-2)_第2页
计算机系统结构(ch-2)_第3页
计算机系统结构(ch-2)_第4页
计算机系统结构(ch-2)_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1v 计算机系统的性能评价计算机系统的性能评价 T TCPUCPU = I = IN NCPICPITcTc MIPSMIPS和和MFLOPSMFLOPS 基准测试程序基准测试程序(benchmarkbenchmark) 算术平均值算术平均值Am 调和平均值调和平均值Hm 几何平均值几何平均值Gm11()niiniiiNiNIICPIICPICPII总时钟周期数指令总条数CCPU11=CPUNCNfTICPITICPI性能661010CPIfTIMIPScCPUN结论与参结论与参照机无关照机无关2v2.1 2.1 数据表示数据表示v2.2 2.2 寻址方式与指令格式的优化寻址方式与指令格式的优

2、化v2.3 CISC2.3 CISCv2.4 RISC2.4 RISC3v2.1.1 数据类型、数据表示与数据结构数据类型、数据表示与数据结构v2.1.2 高级数据表示高级数据表示 自定义数据表示自定义数据表示 带标志符的数据表示带标志符的数据表示 数据描述符表示数据描述符表示 向量数据表示向量数据表示 堆栈数据表示堆栈数据表示4v什么是数据类型?什么是数据类型?v与数据值有什么区别?与数据值有什么区别?v为什么要定义数据类型?为什么要定义数据类型?v如何实现不同的数据类型?如何实现不同的数据类型?5v 数据类型数据类型:数值集合数值集合+ +操作集合。操作集合。v 数据表示数据表示:计算机硬

3、件可直接识别和引用的数据类型。:计算机硬件可直接识别和引用的数据类型。v 数据结构数据结构:结构数据类型的组织方式;由软件识别的数据类型。:结构数据类型的组织方式;由软件识别的数据类型。v 不同的数据表示可以为数据结构的实现提供不同的支持不同的数据表示可以为数据结构的实现提供不同的支持, 因此因此数据结构和数据表示是数据结构和数据表示是软、硬件界面软、硬件界面。v 理论上只需理论上只需最基本的数据类型最基本的数据类型(定点),其它都可由软件实现,(定点),其它都可由软件实现,但效率差,相反,所有数据类型都由硬件实现,成本高。但效率差,相反,所有数据类型都由硬件实现,成本高。v 实验表明实验表明

4、:用定点数据表示实现浮点运算,处理机速度降低两:用定点数据表示实现浮点运算,处理机速度降低两个数量级。个数量级。何谓硬件能够直接识别?何谓硬件能够直接识别?能够直接由硬件实现相应数据的运算,也就是系能够直接由硬件实现相应数据的运算,也就是系统结构中要有相应的运算指令和运算部件来完成这统结构中要有相应的运算指令和运算部件来完成这项任务。项任务。数据表示数据表示+数据结构数据结构6v系统效率是否提高系统效率是否提高缩短运行时间(减少缩短运行时间(减少CPU与存储器的通信量)与存储器的通信量)减少所需存储空间减少所需存储空间v高通用性和高利用率高通用性和高利用率否则会因为硬件成本的增加而降低性价比否

5、则会因为硬件成本的增加而降低性价比7v 1 1)若)若无向量数据表示无向量数据表示,一般需,一般需6 6条指令,其中条指令,其中4 4条要条要循环循环4 4万次。万次。vCPUCPU与与M M的通信量为:的通信量为:取指令:取指令:2+42+44000040000条条读、写数据:读、写数据:3 34000040000个个共访问存储器:共访问存储器:2+72+74000040000次次循环次数初始化循环次数初始化变址寄存器初始化变址寄存器初始化Ai+BiAi变址值修改变址值修改循环次数修改循环次数修改判断并循环判断并循环8 2)若)若有向量数据表示有向量数据表示,则只需,则只需1条条向量加法指令

6、向量加法指令,即只需取即只需取1条指令,少取指令条指令,少取指令1+440000次,读、写数次,读、写数据次数不变,执行时间(访存次数)缩短一半以上。据次数不变,执行时间(访存次数)缩短一半以上。无向量表示无向量表示有向量表示有向量表示取指令:取指令:2+4400001读写数据读写数据340000340000总访问次数总访问次数2+7400001+3400009v数据表示数据表示不断上移不断上移。字符串、向量、堆栈等数据表示已很。字符串、向量、堆栈等数据表示已很普遍。图、表等复杂数据表示也开始在某些计算机上出现。普遍。图、表等复杂数据表示也开始在某些计算机上出现。v对于一些复杂数据类型,如果用

7、数据表示实现,硬件代价对于一些复杂数据类型,如果用数据表示实现,硬件代价可能非常大。但如果用硬件给以适当的支持,用软、硬结合可能非常大。但如果用硬件给以适当的支持,用软、硬结合的方法实现,效果会很好。如用的方法实现,效果会很好。如用变址寻址方式变址寻址方式支持向量表示。支持向量表示。v系统结构设计者应考虑系统结构设计者应考虑:哪些数据类型用硬件实现(数据:哪些数据类型用硬件实现(数据表示),哪些用软件实现(数据结构),哪些用软、硬结合表示),哪些用软件实现(数据结构),哪些用软、硬结合实现(给以适当的硬件支持)。实现(给以适当的硬件支持)。1011一般处理机中的数据表示方法一般处理机中的数据表

8、示方法v数据存储单元(寄存器、主存储器、外存储器等)只存放数据存储单元(寄存器、主存储器、外存储器等)只存放纯数纯数据据v通过指令中的通过指令中的操作码解释:操作码解释: 数据的类型数据的类型(定点、浮点、字符、字符串、逻辑数、向量(定点、浮点、字符、字符串、逻辑数、向量等)等) 进位制进位制(2进制、进制、10进制、进制、16进制等)进制等) 数据字长数据字长(字、半字、双字、字节等)(字、半字、双字、字节等) 寻址方式寻址方式(直接寻址、间接寻址、相对寻址、寄存器寻址(直接寻址、间接寻址、相对寻址、寄存器寻址等)等) 数据的功能数据的功能(地址、数值、控制字、标志等)(地址、数值、控制字、

9、标志等)v同一种操作有很多条指令(如同一种操作有很多条指令(如IBM370 的加法的加法指令指令共有共有8条)条)1213v在高级语言和应用软件中,在高级语言和应用软件中,数据的属性数据的属性由数据自己定由数据自己定义,而机器语言中的数据属性一般由指令区分。高级语义,而机器语言中的数据属性一般由指令区分。高级语言与机器语言之间的这种言与机器语言之间的这种语义差距语义差距,要靠,要靠编译器等填补编译器等填补,这增加了编译的负担、降低效率。这增加了编译的负担、降低效率。v常用高级数据表示方法:常用高级数据表示方法:自定义(自定义(Self-defining)数据表示)数据表示带标志符的数据表示带标

10、志符的数据表示 数据描述符表示数据描述符表示向量数组数据表示向量数组数据表示 堆栈数据表示堆栈数据表示141)带标志符的数据表示)带标志符的数据表示 60年代开始,年代开始,Burroughs公司在大型机中引入带公司在大型机中引入带标志符标志符的数据表示方式和的数据表示方式和数据数据描述符描述符两种自定义数据表示方式。两种自定义数据表示方式。vB5000的类型标志位为的类型标志位为1位,用来区分是操作数还位,用来区分是操作数还 是描述符;是描述符;vB6500、B7500的类型标志位为的类型标志位为3位,用来区分位,用来区分8种数种数据;据;vR-2的类型标志位为的类型标志位为10位位数据值数

11、据值类型标志类型标志 带标志符的数据表示带标志符的数据表示15v功能:操作数、指令、地址、控制字功能:操作数、指令、地址、控制字v陷阱:可由软件定义陷阱:可由软件定义4种捕捉方式种捕捉方式v封写:只读、读写封写:只读、读写v类型:在功能的基础上进一步定义类型类型:在功能的基础上进一步定义类型v校验:奇偶校验校验:奇偶校验2位位2位位1位位4位位1位位功能功能陷阱陷阱封写封写类型类型校验校验数值数值16v 标志符数据表示方法的标志符数据表示方法的主要优点主要优点: 简化了指令系统和程序设计,缩小了人与机器之间的语义简化了指令系统和程序设计,缩小了人与机器之间的语义差距。差距。标志符对高级语言程序

12、员透明,由编译程序建立。标志符对高级语言程序员透明,由编译程序建立。 简化编译程序,使高级语言与机器语言之间的简化编译程序,使高级语言与机器语言之间的语义差距语义差距大大大缩短。大缩短。 便于实现相容性和一致性检查便于实现相容性和一致性检查,可以由硬件自动实现,可以由硬件自动实现。 由硬件自动实现由硬件自动实现数据类型转换数据类型转换。 支持支持DBS的实现与数据类型无关的要求。的实现与数据类型无关的要求。 方便软件调试。根据捕捉标志设置断点等。方便软件调试。根据捕捉标志设置断点等。v 8087中就使用了标志符数据表示方法中就使用了标志符数据表示方法17v数据和指令的长度可能不一致。数据和指令

13、的长度可能不一致。 解决方法:解决方法: 数据和指令分存于不同的存储器,即数据和指令分存于不同的存储器,即多体存储器多体存储器 合理设计指令字长和数据字长,一般原则是指令字合理设计指令字长和数据字长,一般原则是指令字长向数据字长靠拢长向数据字长靠拢v指令的执行速度(指令的执行速度(微观速度微观速度)降低。)降低。 程序的设计时间、编译时间和调试时间缩短(程序的设计时间、编译时间和调试时间缩短(宏观时间宏观时间)v硬件复杂度增加。硬件复杂度增加。 随随VLSIVLSI的发展,已不是大问题。的发展,已不是大问题。v存储容量的变化。存储容量的变化。 数据占用的存储容量增大数据占用的存储容量增大 指令

14、所占用的存储容量减小指令所占用的存储容量减小192)数据描述符表示法)数据描述符表示法用于用于描述一组相同类型的数据描述一组相同类型的数据(向量、矩阵、记(向量、矩阵、记录等)。录等)。Burroughs公司生产的公司生产的B6700机中采用的数据描机中采用的数据描述符表示方法:述符表示方法:101(描述符标志位)(描述符标志位) 特征标记特征标记 数据块长度数据块长度起始地址起始地址000/010(标志符)(标志符)数据数据38202048320yx块长度为块长度为3块长度为块长度为422v标志符要与每个数据相连,两者合用一存储单元,而标志符要与每个数据相连,两者合用一存储单元,而描述符则和

15、数据分开存放描述符则和数据分开存放v要访问数据集中的元素时,必须先访问描述符,增加要访问数据集中的元素时,必须先访问描述符,增加一级寻址一级寻址v描述符可看成是程序的一部分,而不是数据的一部分描述符可看成是程序的一部分,而不是数据的一部分23向量数据表示向量数据表示v C Ci i=A=Ai+5i+5+B+Bi i i=10 i=10 1000 1000v C C代码代码 for (i=10;i=1000;i+)for (i=10;i=1000;i+) Ci Ci=Ai+5+Bi;=Ai+5+Bi;v 标量机上运行时,编译后需借助变址操作实现,标量机上运行时,编译后需借助变址操作实现,各条指令

16、只能顺序执行。各条指令只能顺序执行。v 若有向量数据表示,可用一条向量指令实现若有向量数据表示,可用一条向量指令实现向量加(向量加(OP)A向量参数向量参数B向量参数向量参数C向量参数向量参数24基地址基地址向量长度向量长度 有效长度有效长度(向量长度(向量长度-位移量)位移量) 起始地址起始地址(基址(基址+位移)位移)位移量位移量向量参数:基地址、位移量、向量长度、有效长度、步距向量参数:基地址、位移量、向量长度、有效长度、步距向量数据表示向量数据表示Ci=Ai+5+Bi i=10 1000向量加(向量加(OP)A向量参数向量参数B向量参数向量参数C向量参数向量参数25L.D F0,a ;

17、load scalar aDADDIU R4,Rx,#512 ;last address to loadLoop: L.D F2,0(Rx) ;load X(i)MUL.D F2,F2,F0 ;a X(i)L.D F4,0(Ry) ;load Y(i)ADD.D F4,F4,F2 ;a X(i) + Y(i)S.D 0(Ry),F4 ;store into Y(i)DADDIU Rx,Rx,#8 ;increment index to XDADDIU Ry,Ry,#8 ;increment index to YDSUBU R20,R4,Rx ;compute boundBNEZ R20,Loo

18、p ;check if doneY=aX+Y26L.D F0,a ;load scalar aLV V1,Rx ;load vector XMULVS.D V2,V1,F0 ;vector-scalar multiplyLV V3,Ry ;load vector YADDV.D V4,V2,V3 ;addSV Ry,V4 ;store the result27A0A1(0)A2(0)A3A4A5(0)A6(0)A7稀疏向量稀疏向量A0A3A4A7压缩向量压缩向量01011001有序位向量有序位向量28v一般通用寄存器型机器对堆栈实现的支持较差:一般通用寄存器型机器对堆栈实现的支持较差:堆栈指令

19、少、功能单一(堆栈指令少、功能单一(Push、Pop) 堆栈位于存储器内,速度低,通常用于保存子程序调用时的堆栈位于存储器内,速度低,通常用于保存子程序调用时的返回地址及传递参数(返回地址及传递参数(软堆栈软堆栈)v具有堆栈数据表示和以堆栈寻址方式为主的计算机称具有堆栈数据表示和以堆栈寻址方式为主的计算机称堆栈型堆栈型计算机计算机。堆栈机器优点:。堆栈机器优点:寄存器硬堆栈寄存器硬堆栈与与主存软堆栈主存软堆栈联为一体,速度同寄存器,容量联为一体,速度同寄存器,容量同主存同主存丰富的堆栈指令,直接操作寄存器堆栈数据,无需访问主存丰富的堆栈指令,直接操作寄存器堆栈数据,无需访问主存支持高级语言的编

20、译(逆波兰表达式,支持高级语言的编译(逆波兰表达式,Reverse Polish Notation)F=AF=A* *B+C/(D-E)B+C/(D-E)用用逆波兰表达式表示为逆波兰表达式表示为ABAB* *CDE-/+CDE-/+只需要出、入栈两种操作,就可以完成只需要出、入栈两种操作,就可以完成任何普通表达式的运算任何普通表达式的运算支持支持嵌套嵌套与与递归递归30v寻找操作数及其他信息的地址的技术称为寻址技术寻找操作数及其他信息的地址的技术称为寻址技术 内容:编址方式、寻址方式和定位方式内容:编址方式、寻址方式和定位方式 对象:寄存器、主存储器、堆栈和输入输出设备对象:寄存器、主存储器、

21、堆栈和输入输出设备 重点:分析各寻址技术优缺点,如何选择和确定寻址技术重点:分析各寻址技术优缺点,如何选择和确定寻址技术311、 编址方式编址方式编址单位:字、字节、位编址单位:字、字节、位字节编址时信息在存储器中按整数边界存储字节编址时信息在存储器中按整数边界存储 (清华(清华p72 图图2.12) IBM370 字节(字节(8位)、半字(位)、半字(16位)、单字(位)、单字(32 位)、双位)、双字(字(64位),主存储器宽度为位),主存储器宽度为(64位)位) (P61图图2.13)多字节信息编排方法:多字节信息编排方法:小端排序小端排序(LitterEndian) :高地址为高位字节

22、:高地址为高位字节大端排序大端排序(BigEndian):高地址为低位字节:高地址为低位字节零地址空间个数零地址空间个数3个:通用寄存器、主存储器、输入输出个:通用寄存器、主存储器、输入输出2个:通用寄存器、主存储器和输入输出个:通用寄存器、主存储器和输入输出1个:全部空间个:全部空间0个:隐含编址(堆栈计算机)个:隐含编址(堆栈计算机)32v 数据类型、数据表示与数据结构数据类型、数据表示与数据结构 数据类型数据类型:数值数值+ +操作。数据表示操作。数据表示+ +数据结构;数据结构; 数据表示数据表示:计算机硬件可直接识别和引用的数据类型。:计算机硬件可直接识别和引用的数据类型。 数据结构

23、数据结构:结构数据类型的组织方式;软件识别的数据类:结构数据类型的组织方式;软件识别的数据类型。型。v 常用高级数据表示方法:常用高级数据表示方法: 自定义(自定义(Self-defining)数据表示)数据表示 标志符标志符数据表示数据表示 数据描述符数据描述符数据表示数据表示 向量向量数据表示数据表示 堆栈堆栈数据表示数据表示33v2.2.1 寻址方式寻址方式v2.2.2 程序定位技术程序定位技术v2.2.3 指令格式的优化设计指令格式的优化设计34v寻址方式在指令中的两种寻址方式在指令中的两种指明方式指明方式占用操作码的某些位(如占用操作码的某些位(如DJS 200系列)系列)在地址码部

24、分专门设置寻址方式位字段(如在地址码部分专门设置寻址方式位字段(如VAX-11)v3种面向的寻址方式种面向的寻址方式 面向寄存器的寻址方式面向寄存器的寻址方式面向堆栈的寻址方式面向堆栈的寻址方式面向主存的寻址方式面向主存的寻址方式35v程序的定位:程序的定位:把指令和数据中的把指令和数据中的逻辑地址逻辑地址(相对地址)转换成主存储(相对地址)转换成主存储器的器的物理地理物理地理(绝对地址)的过程。(绝对地址)的过程。v逻辑地址逻辑地址指相对于本程序或程序段的相对地址(编程时使用)指相对于本程序或程序段的相对地址(编程时使用)v物理地址物理地址指程序在主存储器中使用的实际地址。指程序在主存储器中

25、使用的实际地址。什么时间变换?如何变换?什么时间变换?如何变换?36v常用高级数据表示方法:常用高级数据表示方法:自定义(自定义(Self-defining)数据表示)数据表示标志符标志符数据表示数据表示数据描述符数据描述符数据表示数据表示 向量向量数据表示数据表示 堆栈堆栈数据表示数据表示v程序定位技术程序定位技术直接定位(无须重定位)直接定位(无须重定位)静态重(再)定位静态重(再)定位动态重(再)定位动态重(再)定位37v直接定位方式直接定位方式在在编写编写程序时或程序时或编译编译源程序(装入主存前)时,程序中的指源程序(装入主存前)时,程序中的指令和数据的地址就已经确定。令和数据的地址

26、就已经确定。(不重定位)(不重定位)v静态重(再)定位静态重(再)定位在程序运行之前在程序运行之前,装入主存的过程中由,装入主存的过程中由装入程序装入程序一次性完成一次性完成地址变换,把指令和数据的逻辑地址全部变换成物理地址。地址变换,把指令和数据的逻辑地址全部变换成物理地址。如图所示如图所示。如。如DOS系统中的系统中的LINK过程。过程。v动态重(再)定位动态重(再)定位在程序执行过程中在程序执行过程中,当访问到相应的指令和数据时才进行地,当访问到相应的指令和数据时才进行地址变换,确定其物理地址。址变换,确定其物理地址。如图所示。如图所示。3839v优点优点:1. 可在一般机器上全部用软件

27、实现。可在一般机器上全部用软件实现。2. 可以对多个程序段组成的程序静态链接,而且实现简单。可以对多个程序段组成的程序静态链接,而且实现简单。v缺点缺点:1. 因为程序是在执行之前一次性装入到主存储器中的,执行因为程序是在执行之前一次性装入到主存储器中的,执行期间不能在主存中移动,所以期间不能在主存中移动,所以不利于提高主存储器的利用率不利于提高主存储器的利用率。2. 若程序所要求的存储容量超过了分配给它的物理空间,则若程序所要求的存储容量超过了分配给它的物理空间,则程序员必须采用程序员必须采用覆盖结构。覆盖结构。3. 多个用户多个用户不能共享不能共享已经在主存储器中的同一个程序。已经在主存储

28、器中的同一个程序。4041v优点优点:1.1.可以使用较小的主存分配单位,以提高主存储器的利用率。可以使用较小的主存分配单位,以提高主存储器的利用率。2.2.几个程序可以共享存放在主存的同一程序段。几个程序可以共享存放在主存的同一程序段。3.3.支持虚拟存储器。可以为用户提供一个比实际主存储器物支持虚拟存储器。可以为用户提供一个比实际主存储器物理空间大得多的逻辑地址空间。(不需要使用覆盖技术)理空间大得多的逻辑地址空间。(不需要使用覆盖技术)v 缺点缺点:1.1.需要硬件支持(基址寄存器、地址加法器等)。需要硬件支持(基址寄存器、地址加法器等)。 2.2.在虚拟存储器中实现存储管理的软件算法比

29、较复杂在虚拟存储器中实现存储管理的软件算法比较复杂。42v 由两部分组成:由两部分组成:操作码操作码和和地址码地址码。v 操作码主要包括两部分内容:操作码主要包括两部分内容:操作种类:操作种类:加、减、乘、除、数据传送、移位、转移、加、减、乘、除、数据传送、移位、转移、 输入输出输入输出操作数描述操作数描述:(假如没采用自定义数据类型)(假如没采用自定义数据类型)数据的类型:数据的类型:定点数、浮点数、复数、定点数、浮点数、复数、 字符、字符串、逻辑数、向量字符、字符串、逻辑数、向量 进位制:进位制:2进制、进制、10进制、进制、16进制进制数据字长:数据字长:字节、半字、字、双字字节、半字、

30、字、双字OPOA43v操作数的地址:操作数的地址:直接地址、间接地址、立即数、寄存器编号、变址寄存器直接地址、间接地址、立即数、寄存器编号、变址寄存器编号编号v地址的附加信息:地址的附加信息:偏移量、块长度、跳距偏移量、块长度、跳距v寻址方式:寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址寄存器寻址44指令指令操作码操作码地址码地址码操作种类操作种类操作数描述操作数描述操作数地址操作数地址地址附加信息地址附加信息寻址方式寻址方式45v 主要目标:主要目标: 节省程序存储空间(平均指令字长最短)节省程序存储空间(平均指

31、令字长最短) 提高执行速度(指令格式尽量规整,便于译码)提高执行速度(指令格式尽量规整,便于译码)v 研究内容:研究内容: 操作码操作码的优化表示的优化表示 地址码地址码的优化表示的优化表示46v操作码的三种编码方法:操作码的三种编码方法: 定(等)长编码定(等)长编码、Huffman编码编码、扩展编码扩展编码编码方式编码方式整个整个OS所用所用指令的操作码总位数指令的操作码总位数改进的改进的百分比百分比8位定长编码位定长编码4-6-10扩展编码扩展编码Huffman编码编码301,248184,966172,34603943B-1700B-1700操作码编码方式比较操作码编码方式比较v改进操

32、作码编码方式能够节省程序存储空间。改进操作码编码方式能够节省程序存储空间。47v操作码的操作码的信息冗余量信息冗余量= =(操作码的实际平均长度(操作码的实际平均长度H H)/ /操作码实际平均长度操作码实际平均长度v操作码的操作码的实际平均长度实际平均长度 L L表示操作码的实际平均长度表示操作码的实际平均长度 p pi i表示第表示第i i种操作码出现的概率种操作码出现的概率 l li i表示第表示第i i种操作码的实际长度种操作码的实际长度niiilpL121loginiiHpp v操作码的操作码的最短平均长度最短平均长度可通过下式计算(可通过下式计算(信息源熵信息源熵):):-其中:其

33、中:P Pi i表示第表示第i i种操作码在程序中出现的概率种操作码在程序中出现的概率P21表表2.1481、定(等)长编码、定(等)长编码v相对最短操作码长度的相对最短操作码长度的信息冗余量信息冗余量为:为:NHNR22loglog2logLNv对于对于N个操作,采用定长编码时,所需的最小二进个操作,采用定长编码时,所需的最小二进制位数为(即操作码的平均实际长度制位数为(即操作码的平均实际长度L):):2LNv特点特点规整统一,便于译码、冗余量大规整统一,便于译码、冗余量大491)把所有指令按照在程序中出现的概率排序。把所有指令按照在程序中出现的概率排序。2)选选两个概率最小的结点两个概率最

34、小的结点,将其概率值相加合并成一新结点,将其概率值相加合并成一新结点,把新结点与其它还没有合并的结点一起形成新结点集。把新结点与其它还没有合并的结点一起形成新结点集。3)在新结点集中选取两个概率最小的结点进行合并,如此继续在新结点集中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。(进行下去,直至全部结点合并完毕。(根结点值应为根结点值应为1)。)。4)每个结点都有两个分支,分别用一位代码每个结点都有两个分支,分别用一位代码0 和和1表示(表示(可以可以任选任选)。)。5)从根结点开始,沿箭头所指方向,到达属于该指令的概率结从根结点开始,沿箭头所指方向,到达属于该指令的

35、概率结点,把沿线所经过的代码组合起来就得到这条指令的操作码点,把沿线所经过的代码组合起来就得到这条指令的操作码编码。编码。50 假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,如果采种不同的操作码,如果采用固定长操作码则需要用固定长操作码则需要3位。已知各种操作码在程序中出位。已知各种操作码在程序中出现的概率如下表所示,计算采用现的概率如下表所示,计算采用Huffman编码法的操作编码法的操作码码平均长度平均长度,并计算固定长操作码和,并计算固定长操作码和Huffman操作码相操作码相对于最短编码的对于最短编码的信息冗余量信息冗余量。指令指令I1概率概率0.45I20.30I30

36、.15I40.05I50.03I60.01I70.01510.450.300.150.050.030.010.011.000.550.250.100.050.0201010101010101011011101111011111011111152指令序号指令序号概率概率Huffman编码法编码法操作码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位采用采用Huffman编码法所得到的操作码的平均长度编码法所得到的操作码的平均长度0.4510.3020.

37、1530.0540.0350.0160.0161.97(位)(位)也可以采用将也可以采用将非叶子结点值相加非叶子结点值相加的方法求得的方法求得(补充)(补充)=1+0.55+0.25+0.10+0.05+0.02=1.97(位)(位)53操作码的最短平均长度操作码的最短平均长度0.451.1520.301.7370.152.7370.054.3220.035.0590.016.6440.016.6441.95(位)(位)采用采用3位等定长操作码的信息冗余量为:位等定长操作码的信息冗余量为: Huffman编码法的信息冗余量仅为:编码法的信息冗余量仅为:iippH2log%35395.117lo

38、g7log22HR%0.197.195.1197.195.197.1R冗余太多冗余太多54vHuffman编码的编码的特点:特点: 短码不可能是长码的前缀,从而保证译码的唯一性和实时性。短码不可能是长码的前缀,从而保证译码的唯一性和实时性。 Huffman编码不唯一,其最长编码的长度也可能不同,但操编码不唯一,其最长编码的长度也可能不同,但操作码的平均码长肯定是唯一的。作码的平均码长肯定是唯一的。 Huffman编码中编码中最长编码的长度最长编码的长度可能比使用定长编码的长度可能比使用定长编码的长度长,但其长,但其平均码长平均码长比定长编码平均码长短得多,比定长编码平均码长短得多,冗余少冗余少

39、。vHuffman操作码的操作码的主要缺点:主要缺点: 操作码长度很操作码长度很不规整不规整,硬件译码困难,硬件译码困难 与地址码共同组成固定长的指令比较困难与地址码共同组成固定长的指令比较困难55v 由定长编码法与由定长编码法与Huffman编码法相编码法相结合形成结合形成。操作。操作码不定长,但只有有限的几种长度。码不定长,但只有有限的几种长度。v 概率高的用短编码,概率低的用长编码概率高的用短编码,概率低的用长编码。其中某些。其中某些编码组合(码点)要留作编码扩展之用。编码组合(码点)要留作编码扩展之用。v 例如:将前例改例如:将前例改为为1-2-3-5不等长扩展编码不等长扩展编码法,和

40、法,和2-4等长扩展编码等长扩展编码法,可得到以下编码方案:法,可得到以下编码方案:56序号序号概率概率 1-2-3-5不等长扩展编码不等长扩展编码I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111112-4等长扩展编码等长扩展编码0001101100110111101111平均长度平均长度2.02.2信息冗余量信息冗余量2.5%11.4%7条指令的操作码扩展编码法条指令的操作码扩展编码法57v常用高级数据表示方法:常用高级数据表示方法:自定义(自定义(Self-defining)数据表示)数据表示标志符标志符数

41、据表示数据表示数据描述符数据描述符数据表示数据表示 向量向量数据表示数据表示 堆栈堆栈数据表示数据表示v程序定位技术程序定位技术直接定位(无须重定位)直接定位(无须重定位)静态重(再)定位静态重(再)定位动态重(再)定位动态重(再)定位58v1-2-3-5不等长扩展编码不等长扩展编码法,其操作码最短平均长度为:法,其操作码最短平均长度为:L=0.4510.3020.153 (0.050.030.010.01)5 = 2.00信息冗余量为:信息冗余量为:v2-4等长扩展编码等长扩展编码法,其操作码最短平均长度为法,其操作码最短平均长度为:L= (0.45+0.30+0.15) 2+ (0.05+

42、0.03+0.01+0.01) 4 = 2.20信息冗余量为:信息冗余量为:v注意注意:使用不同的扩展方式,所能表示的指令条数是不同的。:使用不同的扩展方式,所能表示的指令条数是不同的。 X-YX-Y扩展法:扩展法:X X、Y Y表示操作码的位数表示操作码的位数 X/YX/Y扩展法:扩展法:X X、Y Y表示扩展出的指令条数。表示扩展出的指令条数。 例:例:4-8-124-8-12的的15/15/1515/15/15和和8/64/5128/64/512编码法(编码法( P22P22 )%5 . 200. 295. 11R%4 .1120. 295. 11R60编码方法编码方法各种不同长度操作码

43、的指令条数各种不同长度操作码的指令条数总指令条数总指令条数4位操作码位操作码6位操作码位操作码10位操作码位操作码15/3/1615316348/31/1683116558/30/3283032708/16/2568162562804/32/2564322562924-6-10不等长扩展编码法举例不等长扩展编码法举例61v某模型机的各条指令的使用频率如下:某模型机的各条指令的使用频率如下: ADD:43% SHR:1% SUB:13% CLL:2% JOM:6% CLA:22% STO:5% STP:1% JMP:7% 请分别用请分别用Huffman编码法编码法和和等长扩展编码法等长扩展编码法

44、为其设为其设计操作码,并计算平均操作码长度。计操作码,并计算平均操作码长度。62vHuffmanHuffman编码法编码法1.001.000.010.010.010.010.020.020.050.050.060.060.070.070.130.130.220.220.430.430.020.020.040.040.090.090.220.220.130.130.350.350.570.57111111100000000163指令指令指令使用指令使用频度频度piHuffman编码编码操作码长操作码长度度li2-4扩展码扩展码编码编码操作码长操作码长度度liADD0.4301002CLA0.22

45、1003012SUB0MP0.071100410014JOM0.061101410104STO0.051110410114CLL0.0211110511004SHR0.01111110611014STP0.0111111161110464vHuffman编码平均码长编码平均码长:0.431+0.223+0.133+0.074+0.06 4+0.054 +0.025 +0.016+0.016 =2.42位位v2-4扩展平均码长扩展平均码长:(0.43+0.22)2+(0.13+0.07+0.06+0.05+0.02 +0.01+0.01)4 =2.7位位请大家练习一下本

46、题用请大家练习一下本题用2-5不等长扩展法的结果不等长扩展法的结果65主存宽度主存宽度主存宽度主存宽度6667v指令格式的优化设计指令格式的优化设计主要目标:主要目标: 节省程序存储空间(缩短指令的平均字长)节省程序存储空间(缩短指令的平均字长) 提高执行速度(指令格式尽量规整,便于译码)提高执行速度(指令格式尽量规整,便于译码) 研究内容:研究内容: 操作码操作码的优化表示的优化表示 地址码地址码的优化表示的优化表示 操作码的优化:操作码的优化:最短编码长度(最短编码长度(信息源熵信息源熵公式)、信息冗余度公式)、信息冗余度等(定)长编码、等(定)长编码、HuffmanHuffman编码、扩

47、展编码编码、扩展编码68v操作码的优化表示操作码的优化表示等(定)长编码等(定)长编码 格式最规整、冗余最大格式最规整、冗余最大Huffman编码编码 最小概率合并法最小概率合并法 代码平均长度算法代码平均长度算法 冗余最小、格式最不规整冗余最小、格式最不规整扩展编码扩展编码 等长扩展、不等长扩展等长扩展、不等长扩展 X-Y-Z、X/Y/Z 冗余量和规整性居中冗余量和规整性居中Nn2log69指令字格式的优化指令字格式的优化v信息在存储器中的存放方式信息在存储器中的存放方式任意存放任意存放问题:问题:信息跨存储单元,降低访问速度信息跨存储单元,降低访问速度00081018202870指令字格式

48、的优化指令字格式的优化按整数边界存储按整数边界存储(各类信息存储的起始地址要求)(各类信息存储的起始地址要求)字节(字节(1B):):半字(半字(2B) :0单字(单字(4B) : 0 0双字(双字(8B) : 0 0 00008101871指令字格式的优化指令字格式的优化v可采用不同的寻址方式、地址制、地址形式和长度以可采用不同的寻址方式、地址制、地址形式和长度以及多种指令字长与可变长操作码结合对指令字优化。及多种指令字长与可变长操作码结合对指令字优化。v只优化只优化OP,不优化,不优化OA(如采用等长地址码),发挥(如采用等长地址码),发挥不了操作码优化带来的好处不了操作码优化带来的好处7

49、2定长指令字内实现多地址制定长指令字内实现多地址制73定长指令字同地址制下的多种地址形式和长度定长指令字同地址制下的多种地址形式和长度74IBM 370 IBM 370 指令的主要格式指令的主要格式( (多种指令字长多种指令字长) )75v某模型机共某模型机共7条指令,使用频度分别为条指令,使用频度分别为35%,25%,20%,10%,5%,3%,2%。该模型机有。该模型机有8位和位和16位两位两种指令字长,采用种指令字长,采用2-4扩展操作码扩展操作码。8位长指令为位长指令为R-R二二地址型,地址型,16位长指令为位长指令为R-M二地址变址寻址型,变址范二地址变址寻址型,变址范围为(围为(-

50、128127)。)。(1)设计该机的两种指令格式,标出各字段位数并给出操作设计该机的两种指令格式,标出各字段位数并给出操作码编码。码编码。(2)该机允许使用多少个可编址的通用寄存器,多少个变址该机允许使用多少个可编址的通用寄存器,多少个变址寄存器?寄存器?(3)计算操作码的平均码长。计算操作码的平均码长。76v2-4扩展操作码编码扩展操作码编码指令号指令号指令的使用频指令的使用频率率2-4扩展操作码编码扩展操作码编码135% 00225% 01320% 10410% 110055% 110163% 111072% 1111R-RR-M77v2)指令格式)指令格式R-RR-R型:型:操作码操作码

51、OP源寄存器源寄存器Rs目的寄存器目的寄存器Rd 2位位 3位位 3位位R-M型:型: 操作码操作码OP源寄存器源寄存器Rs变址寄存器变址寄存器Rx偏移地址偏移地址 4位位 3位位 1位位 8位位v3)平均长度)平均长度 0.352+0.252+0.22+0.14+0.054+ 0.034 +0.024 =2.4位位78v指令系统的功能设计有指令系统的功能设计有两个截然相反的方向两个截然相反的方向: 复杂指令系统复杂指令系统CISC(Complex Instruction Set Computer)增强指令功能,设置功能复杂的指令增强指令功能,设置功能复杂的指令 面向目标代码、面向高级语言、面

52、向操作系统优化面向目标代码、面向高级语言、面向操作系统优化 用一条指令代替一串指令。用一条指令代替一串指令。 精简指令系统精简指令系统RISC(Reduced Instruction Set Computer) vCISC特点:特点: 指令系统庞大,指令系统庞大,100条条 可变长指令字格式可变长指令字格式 ,如,如IBM370 多种寻址方式多种寻址方式 包括许多使用频率不高的特殊功能指令包括许多使用频率不高的特殊功能指令P25 表表2.579v指令系统庞大,相应硬件复杂,增加研制时间和成本且易造指令系统庞大,相应硬件复杂,增加研制时间和成本且易造成设计错误。成设计错误。v指令功能的不均衡,不

53、利于先进体系结构(如流水线)的实指令功能的不均衡,不利于先进体系结构(如流水线)的实现。现。v优化编译困难,难生成高效目标程序,编译程序本身庞大。优化编译困难,难生成高效目标程序,编译程序本身庞大。v多数指令的使用频率不高,多数指令的使用频率不高,80%20%规律规律。 如如VAX-11/780:304条指令、条指令、16种寻址方式、种寻址方式、7类类14种数种数据表示;据表示;IBM 360、370 、VAX8600、MC68020 控制部分控制部分占整个占整个CPU芯片面积芯片面积60%80IntelIntel80888088 处理机指令系统使用频度和执行时间统计处理机指令系统使用频度和执

54、行时间统计 (C C 语言编译程序和语言编译程序和 PROLOGPROLOG 解释程序)解释程序) 使用频度使用频度 执行时间执行时间 序号序号 指令指令 累计累计 序号序号 指令指令 累累 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1010 1111 1212 1313 1414 1515 1616 1717 1818 1919 2020 MOVMOV PUSHPUSH CMPCMP JMPccJMPcc ADDADD POPPOP RETRET CALLCALL JUMPJUMP SUBSUB INCINC LESLES REPNREPN IMULIMUL D

55、ECDEC XORXOR REPNZREPNZ CLDCLD LOOPccLOOPcc TESTTEST 24.8524.85 10.3610.36 10.2810.28 9.039.03 6.806.80 4.144.14 3.923.92 3.893.89 2.702.70 2.432.43 2.372.37 1.981.98 1.921.92 1.691.69 1.371.37 1.131.13 0.780.78 0.540.54 0.520.52 0.400.40 24.8524.85 35.2135.21 45.4945.49 54.5254.52 61.3261.32 65.466

56、5.46 69.3869.38 73.2773.27 75.9775.97 78.4078.40 80.7780.77 82.7582.75 84.6784.67 86.3686.36 87.7387.73 88.8688.86 89.6489.64 90.1890.18 90.7090.70 91.1091.10 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1010 1111 1212 1313 1414 1515 1616 1717 1818 1919 2020 IMULIMUL MOVMOV PUSHPUSH JMPccJMPcc CMPCMP CALLCAL

57、L RETRET ADDADD JMPJMP LESLES POPPOP DECDEC SUBSUB XORXOR INCINC LOOPccLOOPcc LDSLDS CMPSCMPS MOVSMOVS JCXZJCXZ 19.5519.55 17.4417.44 11.1111.11 10.5510.55 7.807.80 7.277.27 4.854.85 3.273.27 3.263.26 2.832.83 2.612.61 1.491.49 1.181.18 1.041.04 0.990.99 0.640.64 0.640.64 0.440.44 0.390.39 0.370.37

58、19.5519.55 36.9936.99 48.1048.10 58.6558.65 66.4566.45 73.7273.72 78.5778.57 81.8481.84 85.1085.10 87.9387.93 90.5490.54 92.092.03 3 93.2193.21 94.2594.25 95.2495.24 95.8895.88 96.5296.52 96.9696.96 97.3597.35 97.7297.72 81vRISC特点:特点:减少指令(减少指令(100条)和寻址(条)和寻址(24种)的种类。种)的种类。 大多数指令在单周期内完成。大多数指令在单周期内完成。

59、CPI1采用采用LOAD/STORE结构。仅此两指令可访问存储器结构。仅此两指令可访问存储器硬联控制为主、固件(微程序)实现为辅硬联控制为主、固件(微程序)实现为辅。固定的指令字格式。固定的指令字格式。优化编译设计技术。优化编译设计技术。设置大量的通用寄存器,并采用设置大量的通用寄存器,并采用重叠寄存器窗口重叠寄存器窗口技术。技术。指令执行采用流水线技术、延迟加载和延时转移技术。指令执行采用流水线技术、延迟加载和延时转移技术。Cache结构(结构(2级级Cache、I-Cache 、 D-Cache )v高效的流水线高效的流水线和和优化编译技术优化编译技术是现代是现代RISC系统特别注重的。系

60、统特别注重的。v如如RISC-I、 RISC-II。控制部分控制部分占整个占整个CPU芯片面积芯片面积10%82 TCPU=In CPI Tc 10ns2ns 1.11.4 1.31.4 RISC 33ns5ns 215 1 CISC TcCPIIn类型类型83 P31 表表2.6 请自学退偶(混合)请自学退偶(混合)CISC/RISC和后和后RISC84v指令系统功能设计指令系统功能设计要求要求:完整性(完整性(Completeness):):通用计算机所应具备的基本指通用计算机所应具备的基本指令种类。令种类。数据传送类指令,运算类指令,程序控制类指令、输入输数据传送类指令,运算类指令,程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论