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