您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 计算机系统结构(ch-2).
1内容回顾计算机系统的性能评价•TCPU=IN×CPI×Tc•MIPS和MFLOPS•基准测试程序(benchmark)算术平均值Am调和平均值Hm几何平均值Gm11()niiniiiNiNIICPIICPICPII总时钟周期数指令总条数CCPU11=CPUNCNfTICPITICPI性能661010CPIfTIMIPScCPUN结论与参照机无关2第二章数据表示与指令系统2.1数据表示2.2寻址方式与指令格式的优化2.3CISC2.4RISC32.1数据表示2.1.1数据类型、数据表示与数据结构2.1.2高级数据表示自定义数据表示•带标志符的数据表示•数据描述符表示向量数据表示堆栈数据表示42.1.1数据类型、数据表示与数据结构什么是数据类型?与数据值有什么区别?为什么要定义数据类型?如何实现不同的数据类型?52.1.1数据类型、数据表示与数据结构数据类型:数值集合+操作集合。数据表示:计算机硬件可直接识别和引用的数据类型。数据结构:结构数据类型的组织方式;由软件识别的数据类型。不同的数据表示可以为数据结构的实现提供不同的支持,因此数据结构和数据表示是软、硬件界面。理论上只需最基本的数据类型(定点),其它都可由软件实现,但效率差,相反,所有数据类型都由硬件实现,成本高。实验表明:用定点数据表示实现浮点运算,处理机速度降低两个数量级。何谓硬件能够直接识别?能够直接由硬件实现相应数据的运算,也就是系统结构中要有相应的运算指令和运算部件来完成这项任务。数据表示+数据结构6引入数据表示的主要原则系统效率是否提高•缩短运行时间(减少CPU与存储器的通信量)•减少所需存储空间高通用性和高利用率•否则会因为硬件成本的增加而降低性价比71)若无向量数据表示,一般需6条指令,其中4条要循环4万次。CPU与M的通信量为:取指令:2+4×40000条读、写数据:3×40000个共访问存储器:2+7×40000次例实现A=A+B,A、B都是200×200的矩阵。数据表示举例•循环次数初始化•变址寄存器初始化•Ai+Bi→Ai•变址值修改•循环次数修改•判断并循环8数据表示举例2)若有向量数据表示,则只需1条向量加法指令,即只需取1条指令,少取指令1+4×40000次,读、写数据次数不变,执行时间(访存次数)缩短一半以上。无向量表示有向量表示取指令:2+4×400001读写数据3×400003×40000总访问次数2+7×400001+3×400009数据表示不断上移。字符串、向量、堆栈等数据表示已很普遍。图、表等复杂数据表示也开始在某些计算机上出现。对于一些复杂数据类型,如果用数据表示实现,硬件代价可能非常大。但如果用硬件给以适当的支持,用软、硬结合的方法实现,效果会很好。如用变址寻址方式支持向量表示。系统结构设计者应考虑:哪些数据类型用硬件实现(数据表示),哪些用软件实现(数据结构),哪些用软、硬结合实现(给以适当的硬件支持)。趋势和方法1011一般处理机中的数据表示方法数据存储单元(寄存器、主存储器、外存储器等)只存放纯数据通过指令中的操作码解释:•数据的类型(定点、浮点、字符、字符串、逻辑数、向量等)•进位制(2进制、10进制、16进制等)•数据字长(字、半字、双字、字节等)•寻址方式(直接寻址、间接寻址、相对寻址、寄存器寻址等)•数据的功能(地址、数值、控制字、标志等)同一种操作有很多条指令(如IBM370的加法指令共有8条)12132.1.2高级数据表示在高级语言和应用软件中,数据的属性由数据自己定义,而机器语言中的数据属性一般由指令区分。高级语言与机器语言之间的这种语义差距,要靠编译器等填补,这增加了编译的负担、降低效率。常用高级数据表示方法:自定义(Self-defining)数据表示带标志符的数据表示数据描述符表示向量数组数据表示堆栈数据表示14自定义数据表示1)带标志符的数据表示60年代开始,Burroughs公司在大型机中引入带标志符的数据表示方式和数据描述符两种自定义数据表示方式。B5000的类型标志位为1位,用来区分是操作数还是描述符;B6500、B7500的类型标志位为3位,用来区分8种数据;R-2的类型标志位为10位数据值类型标志•带标志符的数据表示15功能:操作数、指令、地址、控制字陷阱:可由软件定义4种捕捉方式封写:只读、读写类型:在功能的基础上进一步定义类型校验:奇偶校验R-2的类型标志定义2位2位1位4位1位功能陷阱封写类型校验数值16标志符数据表示方法的主要优点标志符数据表示方法的主要优点:•简化了指令系统和程序设计,缩小了人与机器之间的语义差距。标志符对高级语言程序员透明,由编译程序建立。•简化编译程序,使高级语言与机器语言之间的语义差距大大缩短。•便于实现相容性和一致性检查,可以由硬件自动实现。•由硬件自动实现数据类型转换。•支持DBS的实现与数据类型无关的要求。•方便软件调试。根据捕捉标志设置断点等。8087中就使用了标志符数据表示方法17数据和指令的长度可能不一致。解决方法:–数据和指令分存于不同的存储器,即多体存储器–合理设计指令字长和数据字长,一般原则是指令字长向数据字长靠拢指令的执行速度(微观速度)降低。程序的设计时间、编译时间和调试时间缩短(宏观时间)硬件复杂度增加。随VLSI的发展,已不是大问题。存储容量的变化。数据占用的存储容量增大指令所占用的存储容量减小对采用标志符数据表示方法的主要质疑192)数据描述符表示法•用于描述一组相同类型的数据(向量、矩阵、记录等)。•Burroughs公司生产的B6700机中采用的数据描述符表示方法:自定义数据表示101(描述符标志位)特征标记数据块长度起始地址000/010(标志符)数据38202048320yx块长度为3块长度为422描述符与标志符的主要区别:标志符要与每个数据相连,两者合用一存储单元,而描述符则和数据分开存放要访问数据集中的元素时,必须先访问描述符,增加一级寻址描述符可看成是程序的一部分,而不是数据的一部分23向量数据表示Ci=Ai+5+Bii=10¨1000C代码for(i=10;i=1000;i++)C[i]=A[i+5]+B[i];标量机上运行时,编译后需借助变址操作实现,各条指令只能顺序执行。若有向量数据表示,可用一条向量指令实现向量加(OP)A向量参数B向量参数C向量参数24基地址向量长度有效长度(向量长度-位移量)起始地址(基址+位移)位移量向量参数:基地址、位移量、向量长度、有效长度、步距向量数据表示Ci=Ai+5+Bii=10¨1000向量加(OP)A向量参数B向量参数C向量参数25HereistheMIPScodeL.DF0,a;loadscalaraDADDIUR4,Rx,#512;lastaddresstoloadLoop:L.DF2,0(Rx);loadX(i)MUL.DF2,F2,F0;a×X(i)L.DF4,0(Ry);loadY(i)ADD.DF4,F4,F2;a×X(i)+Y(i)S.D0(Ry),F4;storeintoY(i)DADDIURx,Rx,#8;incrementindextoXDADDIURy,Ry,#8;incrementindextoYDSUBUR20,R4,Rx;computeboundBNEZR20,Loop;checkifdoneY=aX+Y26HereistheVMIPScodeL.DF0,a;loadscalaraLVV1,Rx;loadvectorXMULVS.DV2,V1,F0;vector-scalarmultiplyLVV3,Ry;loadvectorYADDV.DV4,V2,V3;addSVRy,V4;storetheresult27稀疏向量A0A1(0)A2(0)A3A4A5(0)A6(0)A7稀疏向量A0A3A4A7压缩向量01011001有序位向量28堆栈数据表示一般通用寄存器型机器对堆栈实现的支持较差:•堆栈指令少、功能单一(Push、Pop)•堆栈位于存储器内,速度低,通常用于保存子程序调用时的返回地址及传递参数(软堆栈)具有堆栈数据表示和以堆栈寻址方式为主的计算机称堆栈型计算机。堆栈机器优点:•寄存器硬堆栈与主存软堆栈联为一体,速度同寄存器,容量同主存•丰富的堆栈指令,直接操作寄存器堆栈数据,无需访问主存•支持高级语言的编译(逆波兰表达式,ReversePolishNotation)F=A*B+C/(D-E)用逆波兰表达式表示为AB*CDE-/+只需要出、入栈两种操作,就可以完成任何普通表达式的运算•支持嵌套与递归32内容回顾数据类型、数据表示与数据结构•数据类型:数值+操作。数据表示+数据结构;•数据表示:计算机硬件可直接识别和引用的数据类型。•数据结构:结构数据类型的组织方式;软件识别的数据类型。常用高级数据表示方法:•自定义(Self-defining)数据表示标志符数据表示数据描述符数据表示•向量数据表示•堆栈数据表示332.2寻址方式与指令格式的优化2.2.1寻址方式2.2.2程序定位技术2.2.3指令格式的优化设计342.2.1寻址方式寻址方式在指令中的两种指明方式•占用操作码的某些位(如DJS200系列)•在地址码部分专门设置寻址方式位字段(如VAX-11)3种面向的寻址方式•面向寄存器的寻址方式•面向堆栈的寻址方式•面向主存的寻址方式352.2.2程序定位技术程序的定位:把指令和数据中的逻辑地址(相对地址)转换成主存储器的物理地理(绝对地址)的过程。逻辑地址指相对于本程序或程序段的相对地址(编程时使用)物理地址指程序在主存储器中使用的实际地址。什么时间变换?如何变换?37三种定位方式(按物理地址确定的时间划分)直接定位方式在编写程序时或编译源程序(装入主存前)时,程序中的指令和数据的地址就已经确定。(不重定位)静态重(再)定位在程序运行之前,装入主存的过程中由装入程序一次性完成地址变换,把指令和数据的逻辑地址全部变换成物理地址。如图所示。如DOS系统中的LINK过程。动态重(再)定位在程序执行过程中,当访问到相应的指令和数据时才进行地址变换,确定其物理地址。如图所示。3839静态定位的优缺点优点:1.可在一般机器上全部用软件实现。2.可以对多个程序段组成的程序静态链接,而且实现简单。缺点:1.因为程序是在执行之前一次性装入到主存储器中的,执行期间不能在主存中移动,所以不利于提高主存储器的利用率。2.若程序所要求的存储容量超过了分配给它的物理空间,则程序员必须采用覆盖结构。3.多个用户不能共享已经在主存储器中的同一个程序。4041动态定位的优缺点优点:1.可以使用较小的主存分配单位,以提高主存储器的利用率。2.几个程序可以共享存放在主存的同一程序段。3.支持虚拟存储器。可以为用户提供一个比实际主存储器物理空间大得多的逻辑地址空间。(不需要使用覆盖技术)缺点:1.需要硬件支持(基址寄存器、地址加法器等)。2.在虚拟存储器中实现存储管理的软件算法比较复杂。422.2.3指令格式的优化设计由两部分组成:操作码和地址码。操作码主要包括两部分内容:操作种类:加、减、乘、除、数据传送、移位、转移、输入输出操作数描述:(假如没采用自定义数据类型)数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量进位制:2进制、10进制、16进制数据字长:字节、半字、字、双字OPOA43地址码部分操作数的地址:直接地址、间接地址、立即数、寄存器编号、变址寄存器编号地址的附加信息:偏移量、块长度、跳距寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址44指令格式小结指令操作码地址码操作种类操作数描述操作数地址地址附加信息寻址方式452.2.3指令格式的优化设计主要目标:节省程序存储空间(
本文标题:计算机系统结构(ch-2).
链接地址:https://www.777doc.com/doc-2043859 .html