其他|计算机系统结构期末重点——数据表示与指令系统(计算机系统结构,李学干(第五版))(史上最详细)

接上章:计算机系统结构期末重点——计算机系统结构基础及并行性的开发(计算机系统结构,李学干(第五版))(史上最详细)_拉姆哥的小屋的博客-CSDN博客

本章主要介绍数据表示、寻址方式、指令系统,为程序设计者提供什么样的机器级界面才能合理的进行软硬件界面的功能分配。在保持高级语言与机器语言、操作系统与计算机系统结构、程序设计环境与计算机系统结构之间适当的语义差距的前提下,分析怎样来改进计算机系统结构、同时讨论缩小语义差距的途径。最后介绍RISC结构。
接下来介绍本章重点需要掌握的内容(考试必考)!!!
1. 数据表示与数据结构 要求:理解数据表示与数据结构的关系
软硬件划分问题的讨论
算法层:图、树、链表、堆栈、向量(数据结构)
高级语言层:向量、数组
机器语言层:数据表示
数据表示可以由机器硬件直接识别和引用的
数据类型;
数据类型它不同于数据,数据类型除了指一组值的集合外,还定义了可作用于这个集合上的操作集。如:一组整数值的集合,连同定义在这个集合上可进行的加减乘除等算术操作,这个整数的集合就成为了整数数据类型。
从系统结构的观点来看,数据类型可分为基本数据类型一般包括二进制位及其位串、整数及自然数、实数(浮点数)、字符和布尔数等;结构数据类型一组由相互有关的数据元素复合而成的数据类型,这些数据元素可以是基本数据类型中的元素,也可以是结构数据类型本身中的元素;这些数据是有结构的,包括向量和数组、字符串、堆栈、队列、记录等,结构数据类型中的元素不一定都具有相同类型;访问指针。抽象数据等类型。
基本数据表示例如:当机器设置了定点+、-、*、/、移位、比较等一系列定点运算指令和相应的运算硬件,可以直接对定点数进行各种处理时,机器就有了定点数据表示;当机器设有逻辑加、逻辑乘、按位相加、逻辑移位等一系列逻辑运算类指令和相应的逻辑运算硬件,可以直接对逻辑数进行各种处理,机器就有了逻辑数据表示;浮点数据表示、十进制数等各种数据表示。
数据结构是应用中相互之间存在一种或多种特定关系的数据元素的集合。如:线性表、栈、队列、串、数组、阵列、链表、树和图等。是结构数据类型的组织方式,它反映了结构数据类型中各种数据元素或信息单元之间的结构关系;它往往通过软件的映像,将信息变成机器中具有的各种数据表示,从而达到实现。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性。
2.理解自定义、堆栈、向量三种高级数据表示的内涵 高级数据表示主要有三种:
(1)自定义数据表示 — 关注语义差异 n 标志符数据表示 n 数据描述符(哈弗结构) ( 2 )向量数据表示 — 关注语义差异,向量机、通用机 ( 3 )堆栈数据表示 — 关注语义差异,堆栈机器 在处理运算符和数据类型的关系上,高级语言和机器语言差距很大; 在 20 世纪 60 年代末,开始关注: 数据表示上缩短高级语言与机器语言的语义差距的问题。 3.掌握浮点数尾数基数大小和尾数下溢处理方法的分析 v 浮点数如何表示? v 浮点数尾数基址的不同,对浮点数表示何有影响? n 表数范围、表数精度和表数效率之间的关系 v 在不同的机型,应该如何选择尾数基址? 数学中实数在数轴上是连续分布的,但由于机器字长有限,浮点数只能表示出数轴上分散于正、负两个区间上的部分离散。
其他|计算机系统结构期末重点——数据表示与指令系统(计算机系统结构,李学干(第五版))(史上最详细)
文章图片

在机器中阶码都采用二进制,可避免运算中因对阶造成的精度和有效数值的过多损失。
主要讨论尾数的基值的选择。

v 问题的提出 n 信息在运算过程中会因为相乘或各种右移操作超出运算器和存储器的字长不得不舍弃,从而造成精度损失,虽然采用两倍存储器字长寄存信息和双倍字长运算可以保证精度,但是它是以花费两倍的存储空间和长的多的多的运算时间为代价的, 研究更好的方法减少精度损失 v 浮点数尾数的下溢处理方法 n 减少运算中的精度损失关键是要处理好运算中尾数超出字长的部分,使之精度损失 v 下溢处理方法 n 截断法、舍入法、恒置 “ 1 ” 、查表舍入法 4.理解基址寻址和变址寻址的区别,静态再定位与动态再定位技术的不同 v 多数计算机都将主存、寄存器、堆栈分类编址,分别有面向主存、面向寄存器、面向堆栈的寻址方式; n 面向主存的寻址 主要访问主存,少量访问寄存器; n 面向寄存器的寻址 操作数主要访问寄存器,少量访问主存和堆栈; n 面向堆栈的寻址 主要访问堆栈,少量访问主存或寄存器; 静态再定位 在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址;重定位在程序装入时一次完成 其他|计算机系统结构期末重点——数据表示与指令系统(计算机系统结构,李学干(第五版))(史上最详细)
文章图片

动态再定位 是在程序执行期间完成的,即程序的逻辑地址在装入内存时不作任何修改,程序执行中,每取出一条指令, CPU 对其译码时,如果有逻辑地址,就借助于重定位机构将其转换成绝对地址,然后执行该指令。 其他|计算机系统结构期末重点——数据表示与指令系统(计算机系统结构,李学干(第五版))(史上最详细)
文章图片

5.理解信息在存储器按整数边界存储的概念 v 信息在存储器中 按整数边界 存储 n 信息在主存中存放的地址必须是 该信息宽度 ( 字节数)的整数倍 ,否则发生信息跨主存边界存放; n 字节信息地址为×…×××× n 半字信息地址为×…××× 0 n 单字信息地址为×…×× 0 0 n 双字信息地址为×…× 0 0 0 6.熟悉掌握哈夫曼压缩思想的扩展操作码编码 假设用于通信的电文由字符集{a,b,c,d,e,f,g,h}中的字母构成,这8个字母在电文中出现的概率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}。
哈夫曼编码 根据上面可得编码表: a:1001 b:01 c:10111 d:1010 e:11 f:10110 g:00 h:1000
用三位二进行数进行的等长编码平均长度为3,而根据哈夫曼树编码的平均码长为:4*0.07+2*0.19+5*0.02+4*0.06+2*0.32+5*0.03+2*0.21+4*0.10=2.61 2.61/3=0.87=87%其平均码长是等长码的87%,所以平均压缩率为13%。
因为定长编码已经用相同的位数这个条件保证了任一个字符的编码都不会成为其它编码的前缀,所以这种情况只会出现在变长编码当中,要想避免这种情况,
就必须用一个条件来制约定长编码,这个条件就是要想成为压缩编码,变长编码就必须是前缀编码,所谓的前缀编码就是任何一个字符的编码都不能是另一个字符编码的前缀。其他|计算机系统结构期末重点——数据表示与指令系统(计算机系统结构,李学干(第五版))(史上最详细)
文章图片


7.掌握指令格式优化设计的方法 指令格式的优化设计的目的是用最短的二进制位数表示指令的操作信息和位置信息,使指令的平均字长最短。指令格式的优化设计,首先根据指令集各指令的使用频度的分布{P; }对操作码进行优化设计,然后对位置码和寻址方式的表示采取优化措施,使指令格式达到优化。经过优化设计的指令集减少了程序的总位数,减少了程序运行的时空开销,从而提高了系统的性能。
我们首先讨论操作码的优化编码方法,然后讨论寻址技术,最后,在操作码和位置码优化表示的基础上,说明指令格式的优化设计。

8.掌握按增强指令功能的方向发展改进指令的目的、方法和途径
l 解决方案:指令字格式的优化措施 ① 采用扩展操作码:概率高的短编码,概率低的长编码; ② 在保证指令字在存储器中按整数边界存储的前提下,使用变长指令字格式; ③ 采用多种寻址方式,以便缩短地址码的长度,并在有限的地址码长度范围内提供寻址范围更大的信息。 其他|计算机系统结构期末重点——数据表示与指令系统(计算机系统结构,李学干(第五版))(史上最详细)
文章图片

【其他|计算机系统结构期末重点——数据表示与指令系统(计算机系统结构,李学干(第五版))(史上最详细)】
9.理解精简指令系统思想、掌握RISC结构所采用的基本技术 v 早期的 CPU 全部是 CISC 架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如 n 对于乘法运算,在 CISC 架构的 CPU 上可能需要这样一条指令: MUL ADDRA , ADDRB 就可以将 ADDRA 和 ADDRB 中的数相乘并将结果储存在 ADDRA 中。 n 将 ADDRA , ADDRB 中的数据读入寄存器,相乘以及将结果写回内存的操作全部依赖于 CPU 中设计的逻辑来实现。 n 这种架构会增加 CPU 结构的复杂性和对 CPU 工艺的要求,但对于编译器的开发十分有利,例如 C 程序中的 a*=b 就可以直接编译为一条乘法指令。 v 按照这种通过强化指令系统功能的方向发展改进,越来越多的复杂指令被加入到指令系统中,这样就产生了 CISC体系结构。 v Reduced Instruction Set ComputerRISC n 减少指令总数和简化指令的功能,降低硬件设计的复杂性,提高指令的执行速度。n Sun SPARC 、 Intel i860 、 MC 88100 、 IBM 6150 n 只保留功能简单的指令 n 功能较复杂的指令用软件实现 n 提高流水线效率 v RISC 的发展受到制约 n 串行性是 RISC 架构的本质特性 n 基本代码块中指令级并行度十分有限

    推荐阅读