2022年第章计算机体系结构属性优选 .pdf





《2022年第章计算机体系结构属性优选 .pdf》由会员分享,可在线阅读,更多相关《2022年第章计算机体系结构属性优选 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章计算机体系结构属性优选软件与硬件功能的分配是计算机体系结构设计的关键,是确定计算机硬件属性的基础,而计算机硬件属性(即计算机体系结构)包括数据表示、寻址技术、指令系统、总线与机器级的I/O 结构(含中断机构)、信息保护等方面的内容。为避免与计算机组成原理等其它课程重复,本章从软硬件功能分配出发,着重讨论计算机硬件属性的优化或选择技术。2.1 数据表示及其格式结构【问题小贴士】信息感觉媒体多种多样,从外部形态来看,有数值布尔的、字符文字的、图形图像的、声音视频的等。理论上任何外部形态的数据均可以采用二进制数表示,但由于效率与通用性的限制,对一台特定计算机来讲,仅部分外部形态的数据实现了数据
2、表示,所以数据表示配置是最基础的软硬件功能分配。一个整数如 26、一个字符如E等数据与一个树、一个文件等数据,它们各自有什么共性,它们是否都可以采用二进制编码直接表示出来呢?若可以,举例说明怎样表示?若不可以,为什么呢?不同类型数据做同一运算的运算规则是不同的,如整数加是末位对齐、实数加是小数点对齐,所以数据做运算之前,应该区分其类型。高级语言是通过类型说明语句指示了数据类型,那么机器语言是如何指示数据类型呢?若采用 8086 汇编语言来编写二个8421 码十进制数相加程序时,在“ADD”指令之后必须配置“DAA”指令,为什么?在“计算机组成原理”课程中已知:浮点数通常采用 IEEE 754
3、标准,该标准规范了许多格式参数如阶码基值、尾数基值、尾数位数、阶码位数等,而这些参数对浮点数特性是有影响的如阶码位数越多、浮点数范围越大等,那么这些参数权衡选取的依据是什么呢?怎样权衡选取呢?1.1.1 数据表示及其选取原则1.数据类型及其分类人们可能接触到的不同外部形态的感觉媒体很多,这些感觉媒体信息必须采用若干位二进制数来表示,由此便形成了许多类型。从算法描述来看,有文件、图、树、阵列、表、串、队列、栈等类型的数据;从高级语言来看,有结构、数组、指针、实数、整数、布尔数、字符、字符串等类型的数据。无论哪个角度的任一种数据类型,除其数据具有相同特征外,还定义了相应的一组运算操作。所谓数据类型
4、是指具有相同特征的数据集合及定义于该集上的一组运算操作及其规则。不同数据类型的同一运算,规则一定不同,如整数加与实数加的规则是不同的,前者是末位对齐,后者是小数点对齐。从规模上来看,数据类型可以分为原名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 21 页 -子的和复合的。原子类型是指不可再分的单个数据元素,数据元素的基本属性是“值”,如实数、整数、字符、布尔数等;根据数据“值”是否为“量”,原子数据又可分为数值的和非数值的二大类。复合类型是指由多个相互关联的原子数据复合而成的数据集,其中数据元素的基本属性则包含“值”与“逻辑位置”,如数组、字符串、向量、栈、队列、记录等;根据数
5、据元素间的“逻辑位置”关系是否为“线性”,复合数据又可分为线性的和非线性的二大类。一种数据类型运算操作及其规则不能作用于另一种数据类型,所以不同的数据类型,数据的表示格式不同,从而有效防止不同类型数据之间的误操作,如定点数与浮点数在计算机中的表示格式是不同的。如果不同类型的数据之间需要进行混合运算,则有二条途径:一是设置相应的运算操作及其规则,如向量类型数据和定点类型数据则规定了乘法运算规则;二是设置相应的转换法则,将一种类型数据转换为另一种类型数据,按转换后数据类型的运算法则进行运算,如整数与实数相加,通常把整数转换为实数,按实数加运算规则进行加运算。2.数据表示及其分类数据二进制形式在计算
6、机中的表示有两种方式,一种是采用计算机硬件直接表示,另一种是通过软件映像间接表示。当数据采用直接表示时,计算机硬件能直接识别、指令可直接引用;但考虑到效率和通用性,有些数据类型的数据则采用间接表示,这时计算机硬件不能直接识别、指令不可以直接引用。因此,把计算机硬件能直接识别、指令可以直接引用的数据类型统称为数据表示,而把计算机硬件难以或无法直接识别、指令不可以直接引用的数据类型统称为数据结构。通常,原子的数据类型一般是数据表示,复合的数据类型一般是数据结构;原子数据表示是复合数据表示的基础,复合数据通过软件组织原子数据来表示。但对于线性或可线性的复合数据,由于数据元素间“逻辑位置”的线性关系可
7、以利用存储单元之间的线性关系来表示,所以线性或可线性化复合数据类型也可以是数据表示,如二维数组、字符串等。可见,线性复合的数据类型可以是数据表示,也可以是数据结构。3.高级数据表示及其类型所谓高级数据表示是指采用多个数据字或一个数据字分为二个字段以上才能实现的数据表示。目前,高级数据表示主要有浮点数据表示、字符串数据表示、堆栈数据表示、数组数据表示和自定义数据表示,其中浮点数据表示仅采用一个数据字,但分为数符、尾数值、阶符和阶码值等四个字段,字符串数据表示、堆栈数据表示与数组数据表示则采用多个数据字。自定义数据表示目前有二种:采用一个数据字的标志符数据表示和采用多个数据字的采用一个数据字。字符
8、串数据类型、堆栈数据类型与数组数据类型是线性化或可线性化的复合数据类型,因此它们往往是数据表示,即由连续存储单元来按序存储它们当中的元素,如一维数组(d1、d2、,、dN)的数据表示如图2-1 所示,有的计算机还提供了相应运算操作。如在向量处理机中,增设变址寄存器和变址加法器,运算指令地址码至少包含二个字段:一个字段用于指明操作数所用的变址寄存器号,另一字段用于指明名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 21 页 -存放向量首元素地址所用的寄存器号,通过变址加法器来形成操作数有效地址(变址寄存器)+(首元素地址寄存器)。改变变址寄存器中的值,就可以使有效地址指向向量中的任
9、何元素。这样,同一条指令可以作用于整个向量,成为向量型运算指令,如图 2-2 所示。对于二维数组,可以为行、列分别设置变址寄存器,通过更为复杂的有效地址计算,同一条指令也可以作用于整个阵列,也是向量型指令。计算机可以对哪些类型的数据进行相应运算操作,则对应的数据类型一定是数据表示;反之,数据类型是数据表示,计算机则不一定可以对该类型的数据进行相应运算操作。图 2-1 堆栈与数组的数据表示图 2-2 变址操作对向量数据的支持4.高级数据表示的选取原则从原理上来看,仅需要实现最简单的数据表示及其相应的运算操作,就可以由软件来完成所有类型数据的运算操作,但这样既不方便,效率也很低,编译软件的负担还很
10、重。早期的计算机如8086 仅有定点数据表示,没有浮点数据表示,所以仅有定点数运算指令,二个浮点数做运算是通过软件将它们分别映像为二个定点数表示,由定点数运算指令来实现。据统计分析,实现32 位浮点数运算平均需要执行100 条以上的定点数指令,CPU需要访问主存储器近百次。后来计算机如Pentium 增加了浮点数据表示及其相应运算指令,二个浮点数运算的效率得到极大改观,但硬件代价也很高,浮点数运算实现的逻辑电路比定点数复杂得多。同样,字符与字符串也是如此。另外,在标量计算机中,向量与阵列数据类型通常是数据表示,但并没有提供相应的运算操作,但在向量计算机中,则提供相应的运算操作,即具有向量指令。
11、如计算 C=A+B(A、B、C均为维数1000 的向量),在没有向量指令的标量计算机上,需要通过循环语句来完成运算,FORTRAN 语言的具体程序段为:d1d2,dN主存储器向量指令操作码变址寄存器号基址寄存器号,变址加法器变址寄存器基址寄存器有效地址,向量 D,名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 21 页 -DO 40 I=1,1000 40 C(I)=A(I)+B(I)在循环程序段中不断反复地执行A(I)与 B(I)读取、A(I)与 B(I)相加、C(I)写入、I递增与判断、条件转移等指令,且仅能顺序执行,直到I 值超过 1000 为止。在具有向量指令的向量计算机
12、上,仅需要一条向量加法指令:C(1:1000)=A(1:1000)+B(1:1000)即可完成运算。在向量加法指令中,对参加运算的源向量A、B及结果向量C均指明其基地址、位移量、向量长度和元素步距等参数。这时,便可以将向量元素成块预取到中央处理器,从而不仅大量减少了主存储器的读写,还使得向量元素运算与循环递增判断转移可以并行处理。可见,由于主存储器一维线性的组织结构与多维离散的数据结构存在着很大差距,计算机不可能仅实现原子型的数据表示及其相应的运算操作,也不可能实现所有复合型的数据表示及其相应的运算操作。选取哪些数据类型为数据表示,哪些数据类型为数据结构,是软硬件取舍问题,是计算机体系结构研究
13、的首要问题,决定计算机中的运算指令及其与运算结构。那么,除基本原子型的数据表示不可缺之外,还需要设置哪些高级数据表示,应该从效率、通用性、利用率、复杂性、可实现性、性价比等方面进行综合权衡,但必须遵循三个基本原则。(1)高效率原则。效率高低取决于计算实现时间与存储空间的多少,实现时间多少主要取决于主存储器与处理机之间传送信息量的多少,传送信息量越少,实现时间就越少。如A、B二个 200 200 的定点数二维数组相加,若没有数组类型的数据表示及其相应的运算操作,A=A+B语句经优化编译程序生成的目程序包含6 条机器指令,其中4 条需要循环执行200200=40000 次;若有则仅需要一条“数组加
14、”指令即可,在主存储器与处理机之间的信息传送量仅取指就减少440000=160000 次,实现时间少很多。另外,目标程序指令条数少,存储空间也少,编译负担还轻。(2)高利用率原则。如果仅对部分数据类型处理的实现效率很高,而对其它数据类型处理的实现效率低,即利用率不高,并未使整体性能得到明显改善,为此还花费了昂贵的硬件,必然导致性能价格比下降。如设置树结构类型的数据表示,增加硬件来对树结构类型数据进行运算操作,实现效率很高,但对堆栈、向量、链表等数据类型处理的实现效率却不高。而若设置指针类型的数据表示,借用指针来实现树结构类型的数据表示,虽然效率不如设置树结构类型的数据表示,但它还可以有效地支持
15、向量、链表、栈和图等多种数据类型的数据表示,即利用率高。(3)高通用性原则。如果设置某种数据类型的数据表示,仅对该数据类型的表示及运算操作提供高效率支持,对其它数据类型不支持或支持程度不高,即通用性不高,整体性能也得不到明显改善,花费的硬件又昂贵,性能价格比必然也下降,如上述(2)中树结构类型的数据表示即是如此。而指针类型数据表示的则具有较高的通用性。1.1.2 标志符数据表示名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 21 页 -1.标志符数据表示的提出在一般数据表示中,仅表示了基本属性“值”(纯数据或二进制编码),对于数值数据还表示了符号属性和格式属性(如小数点位置),但
16、没有表示类型属性(如定点数与浮点数、字符与字符串、二进制与十进制、8421 码与余 3 码、单字节与二字节数、地址与数值等)和寻址属性(如寄存器寻址、变址寻址等)等。数据类型不同即使是同一运算操作,其规则也不同,如二进制数与十进制数,其加法运算规则分别为:逢二进一和逢十进一。在数据表示中没有表示的属性中,寻址属性是通过在地址码中设置若干为二进制位来直接表示外,类型属性通常是通过操作码来表示,即不同类型数据做同一运算操作的操作码不同,是不同的指令,如二进制与十进制的加法指令是不同的,在8086 处理机中,二进制加法指令为ADD,十进制的加法指令则设置了调整指令DAA。这样使得计算机的指令系统极其
17、庞大,也是复杂指令系统产生的原由之一。另外,在高级语言中,也包含许多数据类型,且数据类型由说明语句来指示,使数据类型直接与数据本身结合在一起,不需要运算符来指示数据类型,运算符是通用的,不同类型数据做同一运算操作的运算符相同,如整数与实数的加法运算符是相同的“+”。可见,在数据类型指示上,高级语言与机器语言的语义相距甚远,使得在运算操作规则和数据类型的关系处理上,高级语言与机器语言的差别很大。这样,在高级语言程序编译时,需要根据数据类型说明语句与运算符,选取机器语言中不同类型指令的操作码,还需要验证参与运算操作数的数据类型是否匹配与一致,若匹配不一致,还需要对其中的某些操作数进行类型转换,等等
18、。而这些问题的解决依赖于编译软件,增加了编译软件的负担。2.标志符数据表示及其格式为了缩短高级语言与机器语言在数据类型指示上的语义差距,在数据表示中,在数据字增加类型标志符字段,使数据本身具有类型标志,即数据字=类型标志+数据值,其中类型标志符指示数据值的类型。所谓标志符数据表示是指将数据类型与数据本身直接结合在一起,由类型标志符字段来指示数据类型,其格式如图4-3所示。显然,标志符应该由编译程序建立,对高级语言程序透明,以减轻应用程序员的负担。图 4-3 带多项标志的数据表示格式在标志符数据表示中,标志符主要用于指示数据类型,也可以用于指示数据的其它属性,如功效属性是数值还是地址或是控制字,
19、还可以用于奇偶校验和捕捉位(即陷阱标志),等等。3.标志符数据表示的优点标志符数据表示为硬件与软件的设计提供了有力支持,其优点主要包含以下五标志域数据域类型其它数值名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 21 页 -个方面。加之硬件持续下降,使得标志符数据表示得到广泛的使用。(1)简化了指令系统及其程序设计。由于数据类型及有关属性直接与数据本身结合在一起,使得同一指令可以作用于多种数据类型,从而减少了指令种类,指令系统得以简化,编程也相对容易。(2)减轻了编译软件的负担。由于高级语言与机器语言在数据类型指示上的语义差距缩短,使得编译软件不需要依据数据类型来选用指令,也不需
20、要检查参与运算操作数的类型是否匹配与一致,以便决定是否需要进行数据类型的转换等,从而减少了编译软件工作任务。(3)有利于硬件实现数据类型匹配与一致的检查及其转换。由硬件比较器直接对标志域的二进制数进行比较,由比较结果来判断数据类型是否匹配与一致,也可以通过符号扩展由硬件来实现数据类型的转换。(4)有效支持数据库操作与数据类型无关的要求。数据库管理系统中的查询等操作可以作用于任何数据类型,即与数据类型无关,也就是说其操作的数据必须是带类型指示的,标志符数据表示正好满足这一要求,使得数据库操作的实现代码变得极其简单。(5)有效支持软件调试。由于标志符数据表示也可以带有陷阱标志等属性,所以可以通过软
21、件定义的捕捉标志位来设置断点,从而便于程序的跟踪和调试。4.标志符数据表示的缺点标志符数据表示也存在着不足之处,主要表现以下三个方面。(1)增加了程序所占的存储空间。由于在标志符数据表示中,增设了标志符,数据字长自然更长,数据所占存储空间也自然增加。当然,如果程序设计合理,存储空间的增加量会很小,甚至还可能减少。其原因在于:当采用标志符数据表示时,指令种类减少,操作码位数自然减少;而程序中的操作数往往被多条指令多次访问,使得指令所占存储空间比数据所占存储空间大得多,如图4-4 所示。从图4-4 可以看出:当不采用标志符数据表示时,程序所占的存储空间为二个实线框之和;当采用标志符数据表示时,由于
22、指令字长缩短,指令所占存储空间减少,减少量为左上方阴影部分;而由于数据字长加长,数据所占存储空间增加,增加量为右下方阴影部分。当指令所占存储空间的减少量比数据所占存储空间的增加量还大时,则采用标志符数据表示时程序所占存储空间是减少的。特别地,数据类型的检查与变换由硬件实现,极大地减少程序所占用的存储空间。(2)降低了指令的执行速度。当采用标志符数据表示时,由于指令包含数据类型的检查与变换等操作,单条指令的执行速度自然下降。但程序的编制、编译与调试等时间会缩短,使得总的开销时间可能缩短。(3)增加了硬件的复杂度。当采用标志符数据表示时,由于数据类型的检查与变换等操作,均由硬件实现,硬件复杂度自然
23、更大。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 21 页 -图 4-4 带标志符与不带标志符程序所占存储空间的比较1.1.3 描述符数据表示1.描述符数据表示及其格式对于复合数据类型,如向量、数组和记录等,在一定连续存储空间内,存储的数据类型等属性是相同的,没有必要让每个数据都带有标志符。为减少标志符所占存储空间,就提出了数据描述符。描述符与标志符的主要差别在于:标志符仅作用于一个数据,指示单个数据的有关属性(一般仅有类型属性),且与数据在同一数据字中;而描述符作用于一个数据集,指示数据集中所有数据的有关属性(不仅有类型属性,还有数据集存储的起始地址、长度等),且独占一个数
24、据字。以美国 Burroughs公司生产的B6700 机中的描述符数据表示为例,其描述符数据表示的格式如图4-5所示。当高三位为“000”时,表示该字为数据字;高三位为“101”时,表示该字为描述符字。在描述符字中,8 位标志位描述数据属性,另外设有数据集存储的起始地址字段与长度字段。图 4-5 B6700机中的描述符数据表示格式描述符数据表示的优缺点与标志符数据表示基本一样。2.描述符数据表示的访问方法当执行操作数由描述符数据表示的指令时,按地址d1、d2 访问主存储器,若字的前三位为“000”,则是操作数;若字的前三位为“101”,则是描述符,便将其取到描述符寄存器,在描述符中的标志位、长
25、度和地址等字段联合作用下,经过地址形成逻辑得到操作数地址,再按该地址访问主存储器,存取操作数。采用描述符数据表示时,操作数的存取过程如图4-6 所示。特别地,对于数据块,读取到寄存器的描述符可以用于块内所有元素,一条指令可以使整个块内所有元素执行运算。描述符数据表示不仅可以用于一维数组的数据表示,还有利于多维数组的数据表示,采用描述符数据表示来表示34 二维数组的树形结构如图4-7 所示。由阵列描述符字指示(三)行数据块描述符集,其中每个描述符字又指示相应(四)列数不采用标志符指令与数据字长标志符长度采用标志符数据字长采用标志符指令字长数据字长加长指令指令字长缩短描述符数101 8位标志符元素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年第章计算机体系结构属性优选 2022 年第章 计算机体系结构 属性 优选

限制150内