计算机体系结构第二章.ppt_第1页
计算机体系结构第二章.ppt_第2页
计算机体系结构第二章.ppt_第3页
计算机体系结构第二章.ppt_第4页
计算机体系结构第二章.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

第二章 数据表示与指令系统,1 数据表示,一、数据表示的确定 1. 何谓数据表示 由硬件直接识别和处理(引用)的数据类型, 2. 数据表示的主要类型 1)常用数据表示:定点数、字符串、浮点数等。 2)高级数据表示:自定义、向量、堆栈数据表示 3. 数据表示与系统结构的关系 1)数据表示是硬件设计基础 2)数据表示是指令加工的对象,4. 数据表示确定 在进行软件和硬件的功能分配时,计算机系统结构设计应考虑在机器中设置哪些数据表示,使之能对应用中用到的数据结构有高的实现效率。在定点、浮点、字符串、逻辑、十进制等基本数据表示的基础之上,根据应用的需要,考虑在机器中引入哪些高级的数据表示,以便能为数据的实现提供更好的支持(通用性和利用率是否较高)。 1)一般计算机要选用常用的数据表示; 2)对较高级的数据表示要有针对选取。 当处理的数据类型较多时,可选自定义的数据。 当对向量数据处理较多时,可选向量数据表示。 当逆波兰表达式处理较多时,可选堆栈数据表示。,二、自定义数据表示 自定义数据表示是为缩短高级语言和机器语言的语义差距引出来的。它又有标志符数据表示和数据描述符两类。 1. 标志符 1)格式 类型标志 数据值,类型标志,数据值,2)标志位位数选取 简单的用三位标志符区分8种(23)类型 根据需要选取更多位,3)使用标志位的优缺点 可简化指令系统与编译程序,便于不同数据类型的自动校验与转换。 缺点:一个标志位只能对一个数据进行描述,其描述效率不高。 2. 描述符,特征位:用来区分描述符还是非描述符。 当为描述符时,才有后面的三个字段,如某机采用101表示描述符的特征位。,块长度:描述数据块的个数。 块首址:第一个数据单元的地址。 块属性:描述数据的特征。 2)使用描述符的好处 描述相同类型的数据时,描述效率高; 利用块属性也有利于对信息的保护; 可当作直接寻址及间接寻址使用。 直接寻址:根据描述符给出数据块的首址,直接寻址。,存储器一次间接 存储器两次间接: 描述符给出的仍是数据描述符 可描述阵列数据:描述一个阵列可用一级、二级描述符描述。 a00 a03 A= a30 a33,一级描述符(要求数据连续存放),分别利用两级描述符和三级描述符描述下列阵列数据。 a00 a01 a02 a03 b00 b01 b02 b03 a10 a11 a12 a13 b10 b11 b12 b13 A= a20 a21 a22 a23 B= b20 b21 b22 b23 a30 a31 a32 a33 b30 b31 b32 b33,1. 解: 1)两级描述符:,或:,2)三级描述符,三、向量数据表示 1. 含义:有序排列的数据元素称为向量(向量数据) 2. 向量数据的三要素: 1)基地址:存放第一个向量数据的地址; 2)向量长度:向量数据个数; 3)位移量:与基地址的距离。,3. 根据三要素可推出参数 1)起始地址 = 基地址 + 位移量,实际参与本次操作的第一个数据(元素)的地址; 2)有效向量长度 = 向量长度-位移量,实际参与本次操作的向量数据个数。 4. 向量运算指令 STAR100机共有16个向量寄存器, 每个寄存器用四位二进制数表示 。 1)格式:,说明:,F:主操作码字段,表示向量指令操作性质。 G:辅操作码字段(根据结果,进行转移等) X:存放源向量A长度及基址的寄存器号。 Y:存放源向量B长度及基址的寄存器号。 A:源向量A位移量所在寄存器号。 B:源向量B位移量所在寄存器号。 Z:控制向量长度(在G有效时)。 C:存放结果向量C长度及基地址的寄存器号。,3)例子: 完成以下向量运算。A, B向量分布如右图示。 c0=a3+b1 c1=a4+b2 c7=a10+b8 设:编译程序测出8、9、10、11、12号寄存器空闲,并分别存放X、A、Y、B、C,画出各寄存器及指令的内容。,解: 向量寄存器分配(无G),向量指令格式填写,5. 稀疏向量的压缩 1)稀疏向量含义:具有多个0元素的向量。 2)压缩办法:利用有序“位向量”来指明稀疏向量中各元素的状况及所在位置。 位向量的位数与向量长度相等。 某元素为0时,对应位向量的位为0。 某元素为非0时,对应位向量的位为1。 如: 稀疏向量,有序位向量: 占用5个单元 节省3个单元,a0= 56 a3= -112 a5= 78 a6= 34 目的:*可节省存储空间; *实际长度减少可加快运算速度。,压缩向量,四、堆栈数据表示 1. 含义:凡是按先进后出方式工作的特殊(存储)区域称为堆栈。 2. 堆栈组成方式: 1)寄存器堆栈,全由寄存器构成,速度快,扩充栈容成本高。 2)寄存器与存贮器结合堆栈。 寄存器速度快作栈顶(需数个栈顶寄存器)。 存贮器价格低扩充栈容易。 3. 堆栈的生长方式 通常采用向下生长方式:压入数据后,堆栈指针SP向地址减少方向变化。,4. 堆栈的主要作用 1)保护信息,保存现场; 2)支持子程序嵌套与中断嵌套以及递归调用的正确进入与返回; 3)十分有利于完成对逆波兰表达式的运算。 5. 逆波兰表达式及其运算 1)三种表达式 数学表达式:A+B 波兰表达式:+AB 逆波兰表达式:AB+,2)数学表达式的树结构 把运算符做结点。 把运算元素做叶子。 把最后一个运算符作根节点(二叉树) 例:(A+B)*C-D/(E+F),3)逆波兰表达式的生成 利用后序遍历树,生成逆波兰表达式要点: 先左,后右,先枝叶,后结点,依次收集运算元素与运算符,直到最后一个运算符(根结点)为止。 AB+C*DEF+/- 4)在堆栈机上完成逆波兰表达式运算 要点:见运算元素压入堆栈。 见运算符就将次栈顶元素与栈顶元素进行相应运算, 结果留在栈顶,直到最后一个运算符。,五、浮点数尾数的基值(rm)选择 1.,浮点表示,N = Srp,浮点数的一般形式,S 尾数(含小数点),p 阶码,r 基数(基值rm ),计算机中 r 取 2、4、8、16 等 。 如:0.23581,当 r = 2,N = 11.0101,= 0.110101210,= 1.1010121,= 1101.012-10,= 0.001101012100,计算机中 S 小数、可正可负,p 整数、可正可负,规格化数,S小数点后的最高数值位为非0的浮点数称为规格化浮点数。,2. 浮点数的一般格式,3. rm影响的因素 数的表示范围 上图中阶码的位数P的大小主要影响浮点数的可表示范围的大小。,尾数的位数m主要影响浮点数的可表示精度。 当P一定时,尾数采用什么进制(r)可影响数的表示范围、精度及数在数轴上分布的离散程度。 P在所有的机器中都采用二进制。 rm=2时, m位 非0最小正尾数2-m .0001,最大正尾数1-2-m .1111,最大正阶2p1 0111,P个1,最大负阶-2p 1000,P个0,最小正浮点数 2-m*2-2P 非0最小尾数乘最大负阶-2p rm-m*rm-2P 最大的正浮点数 (1-2-m ) *22P-1 最大尾数乘最大正阶-2p-1 (1-rm-m)*rm2P-1 正数轴上表示范围 rm-m*rm-2P (1- rm-m)*rm2P-1 规格化浮点数个数 尾数最高数值位为非0的浮点数称为规格化浮点数。,设:P=2 ,m=4 正尾数、规格化、非负阶。 rm=2时,共有32个规格化浮点数,rm=16时,共有60个规格化浮点数,rm=4时,p,规格化浮点数的稀密度e rm=16时 e=15/32=0.47 rm =4时 e=24/32=0.75 结论:rm越大,规格化浮点数分布越稀疏。 精度:(从e可以看出) rm大,精度低。 4. rm的选择原则 应视数的表示范围决定。 随着位数范围越来越大,rm有向下取的趋势。,习题2. 分别用rm =2和8,在不包括符号位在内的p=3,m=3且非负阶、正尾数、规格化条件下 1)先列出两种rm的规格化浮点数表。 2)分别计算rm =2和8条件下规格化数的个数,数的表示范围及表示比e。,最小规格化浮点数的尾数的确定: 设尾数位数m=4 阶码部分值E=0 对 (0.1)r 二进制:0.1000 1/2 四进制: 0.0100 1/4 八进制: 0.0010 1/8 十六进制: 0.0001 1/16,六、下溢的处理 两种溢出: 运算结果超出允许范围。 是指尾数右移过程中丢掉的移出位,它影响精度。,最小负数 (绝对值最大),最小正数,最大负数 (绝对值最小),阶符,数符,移出位,2. 恒置1法 含义:不管移出位如何,均将尾数末位置1的一种下溢处理方法。,误差分析中把机器能表示的最小分辨数值定为1 1. 截断法 含义:对尾数移出位简单截取的一种处理方法。 特点:)无下移处理线路,实现容易。 )平均误差为负且较大,无法调节,只适用于对精度无要求之处。,取值表,0 1,特点:)有了简单的下溢处理线路; )综合误差有所下降(比截断法)。,3. 舍入法 含义:根据移出最高位进行舍取时的一种下溢处理法。 )当移出的最高位( 2-1 )=0时,按截断法。 )当移出的最高位(2-1 )=1时,将尾数的末位加1。 取值表,特点: )需移出最高位判别线路及尾数加1线路,比较复杂。 )综合误差较小,用于对精度要求较高处,较常用。,4. 查表舍入法(ROM查表法) 基本思想:从n位尾数中切取K位尾数,并同移出位一起送ROM中去查表,并从表中送出K位尾数,使其综合误差趋于0。,ROM表的安排原则 )当K位尾数为非全1时,按舍入法取值。 )当K位尾数为全1时,按截断法取值。 取值表,设K=2,两个移出位,特点:)具有最复杂的下溢线路(除舍入法线路外,还要有ROM 表); )综合误差最小; )用在精度高的地方。,2 地址表示与寻址方式,一、地址表示 1. 地址表示类型 1) 按所用不同进制数 用二进制地址 用八进制地址 用十六进制地址 用十进制地址 2)按所指不同空间表示 存贮单元地址。 I/O端口地址。 寄存器地址,3)按存贮管理不同 页地址 段地址 段页地址 4)按访问空间数据长度不同 字节地址(8位) 半字地址(16位) 单字地址(32位) 双字地址(64位) 5)按编程角度 逻辑地址程序员编程使用 物理地址程序在主存中的实际存放地址,6)存储保护来分 基地址:某用户存储单元的首地址 界地址:存储保护中的界限保护 2 物理地址空间的信息分布 1)条件:在一个具有双字存储器中,可存放多种长度数据(字节、半字、字、双字) 2)紧凑存放:尽量利用存储空间,将各种不同长度的数据紧凑存放,但可能出现双字、字、半字跨主存字边界存放的情况,从而增加访存时间。 如:依次存放单字(4字节)、双字、半字(2字节)、字节、半字、单字、单字,3)按整数边界存放(存放地址是信息宽度(字节数)的整数倍):,浪费了一定的空间,但保证了访问时间。,二、寻址方式简介 1. 三种面向的寻址方式 机器指令可以访问寄存器、堆栈或主存中的数,因此相应地就有面向寄存器、面向堆栈和面向主存的不同寻址方式。 2. 寻址方式选择原则 1)尽快获得操作数(速度) 2)寻址字段位数少(省空间) 3)能访问尽可能大的存储空间 4)有利于循环程序设计 5)有灵活多变寻址来达到同一目的访问(编程灵活),3. 程序在主存中的定位技术 1)静态再定位 目程序装入主存时,通过调用系统配备的装入程序,把目程序的逻辑地址用软的方法逐一修改成物理地址。 静态再定位不利于多道程序的运行环境。 2)动态再定位 动态再定位的一种方法是设置基址寄存器和地址加法器硬件,在程序装入主存时,只将装入主存的起始地址存入该道程序的基址寄存器中即可,指令的地址字段不作修改。程序在执行过程中,才形成物理地址访存。,基址寻址的方法主要是支持程序的动态再定位。变址寻址则主要是为实现程序的循环,支持向量、数组数据的寻址使用的。 动态再定位技术的进一步发展是采用映象表来进行地址的映象和变换,它可以使每个用户在机器上运行比实际主存容量大得多的程序。,3 指令系统,能由计算机硬件直接识别的指令为机器指令,所有机器指令的集合为指令系统,不同的机器类型具有不同的指令系统。 一、指令主要类型,二、指令格式的优化 1. 对操作码编码方法 1)等长编码 每条指令的编码位数相等 编码位数L的确定与指令条数N相关。 L =log2N 例:N=7 L=3 特点: )编码规整,使控制器译码机构简单。 )当指令使用频度不同时,不利于等效平均编码长度的减少,从而不利于信息的传递效率。 等长法用于RISC(精简指令系统计算机)中,2)Huff man压缩编码法 基本思想 )频度高的指令用短码表示。 )频度低的指令用较长码表示。 Huff man-A方案编码树的绘制要点: *将指令按频度从高到低顺序排列; *在指令线之外找个根结点,并将它与两端指令连接起来形成; *其余指令分别作与频度高的那条边的多条平行线,即形成编码树。,每条指令的使用频度之和为1,即,编码形成 编码树上,结点与结点之间,结点与指令之间规则地加0,1。 每条指令均从根结点出发,沿最短路径指向指令,依次收集途中数码,即形成编码。 特点 )在指令的使用频度不相同时,有利于降低信息等效平均编码长度及信息的传送效率。 )不同位数编码类型太多,使控制器的译码复杂。,信息等效平均码长L的计算,3)扩展编码法 基本思想:即要考虑频度不同时,用不等长编码,又要考虑减少不同位数编码类型,使译码机构不要太复杂,采用多余一位进行扩展。 两位扩展 )3/3/3方案 0 0 1 1 0 0 1 1 1 1 0 0 0 1 3 1 1 0 1 3 1 1 1 1 0 1 3 1 0 1 1 1 0 1 1 1 1 1 0,)2/4/8方案 0 0 2 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 4 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 8 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1,三位扩展 )7/7/7方案 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 7 7 7 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0,0 0 0 0 0 0 0 0 0 4 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 16 1 0 0 0 00 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 64 0 0 0 )4/16/64方案 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1,例:某机7条指令使用频度分别为0.45,0.3,0.15,0.05,0.03,0.01,0.01, 画Huffman-A方案的树结构,分别用等长法,H-A方案,扩展法进行编码,并分别计算各种方案编码的平均码长。 ( 0.45+0.3+0.15+0.05+0.03+0.01+0.01= 1 ),解:,2 关于信息源熵简介 1)含义:指信息源中包含的平均信息量。 (理论上可以达到的最短平均码长) 2) 信息源熵H的计算:,3)信息冗余量 (操作码的实际平均长度-H)/操作码的实际平均长度,3. 多地址指令设计 某机指令字长16位,每个地址字段为4位,要求编写11条三地址指令,70条两地址指令,140条单地址指令,其余还能扩展多少条零地址指令,并写出各类指令编码示意图。 4 4 4 4,1) 各类指令编码格式 三地址指令 0 0 0 0 11条 1 0 1 0,两地址指令 0 0 0 0 1 0 1 1 16 1 1 1 1 0 0 0 0 1 1 0 0 16 1 1 1 1 70条 0 0 0 0 1 1 1 0 16 1 1 1 1 0 0 0 0 1 1 1 1 6 0 1 0 1,单地址指令 0 0 0 0 1 1 1 1 0 1 1 0 16 1 1 1 1 140条 0 0 0 0 1 1 1 1 1 1 1 0 12 1 0 1 1 零地址 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 320条 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,2)可扩展零地址指令条数计算 共可编写多少条三地址:24=16 剩余三地址共可扩展多少条两地址:(24-11)*24 =5*16=80 剩余二地址共可扩展多少条单地址: (24-11)*24-70*24 =(80-70)*16 =160 剩余单地址共可扩展多少条零地址: (24-11)*24-70*24-140*24 =(160-140)*16=320,三、指令系统的改进途径 1. 按CISC(复杂指令系统计算机)方向发展与改进指令系统 1) CISC的改进思路 按CISC方向发展改进指令系统的出发点是,如何进一步增强原有指令的功能以及设置更为复杂的新指令来取代原先由软件子程序完成的功能,实现软件功能的硬化。它可以从面向机器语言目标程序的优化实现、面向高级语言的优化实现和面向操作系统的优化实现三个方面来改进。,2) 面向目标程序的优化实现 目标是提高包括系统软件和应用软件在内的各种机器语言目标程序的实现效率,即缩短目标程序的长度,加快目标程序的执行速度,并使实现起来方便可行。 a. 对使用频度高的指令加速完成,可提高指令的吞吐量。 b. 对经常出现的程序段,可用一条指令代替。,3) 面向高级语言的优化实现 目标是缩短高级语言和机器语言的语义差距,这样可以缩短编译程序的长度和节省编译所需的时间。 a. 对使用频度高的语句,通过增设复合指令来减少辅助操作时间。 b. 在编译中优化代码生成。 c. 改进指令系统使之与各种高级语言的语义差距都有共同的减少。 d. 提供多种指令系统,多种系统结构以适应不同的高级语言。 e. 发展高级语言计算机。,4) 面向OS(操作系统)的优化实现 目标是缩短OS与计算机系统结构之间的语义差,减少OS的时间开销和空间开销。 a. 操作系统的常用指令进行分析改进。 b. 增设专用于OS的新指令。 c. 对OS中由软件子程序实现的某些功能进行硬化或固化。 d. 设置专门的处理机来运行OS,发展功能分布处理系统。,2. 按RISC方向发展与改进指令系统 1) CISC结构的问题 指令系统日趋庞大和复杂,使机器的设计周期延长,成本升高,错误增多,可靠性降低; 指令的操作繁杂,使执行速度降低; 高级语言源程序的优化编译困难,编译的时空开销增大; 指令系统中,约有80的指令使用频度很低,利用率低,因而系统的性能价格比低。 (一般软件中简单指令约占总指令数的80%, 复杂指令只有约20;简单指令约占总运行时间的20,复杂指令约占总运行时间的80),2) 对策 a. 去掉复杂指令, 复杂指令功能由软件实现,可简化电路设计 b. 去掉微程序, 采用硬连控制方法, 提高处理器速度 c. 简单指令有利于流水线执行 d. 简化电路节省了芯片面积, 利于增加Cache容量,3) RISC机器主要特点 a. 精简指令的条数,使用频度很高的部分指令; b. 让指令字等长,所有指令都在一个机器周期执行完; c. 寻址方式简单,充分利用寄存器寻址; d. CPU内增加通用寄存器的数目; e. 采用重迭寄存器窗口技术,有利于子程序调用时的参数传递; f. 访存指令只有Load/Store两种,其它的指令一律只能对寄存器进行操

温馨提示

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

评论

0/150

提交评论