1、掌握数据表示(高级数据表示、浮点数)
2、掌握寻址技术(编址方式、寻址方式、程序在主存中的定位)
3、理解并掌握指令格式的设计和优化(操作码的优化表示,地址码的优化表示)
4、了解CSIC和RSIC
什么是数据表示:由硬件直接识别和处理(引用)的数据类型。数据表示是硬件设计的基础。
1)常用数据表示:定点数、字符串、浮点数等
2)高级数据表示:自定义、向量、堆栈数据表示
自定义数据表示:在数据格式中,留给让用户自己填写的数据类型的一种数据描述:标志符和描述符。
1、标志符
格式: 数据类型 | 数据值
使用标志位的优缺点:
优点:可简化指令系统与编译程序,便于不同数据类型的自动校验和转换。
缺点:一个标志位只能对一个数据进行描述,其描述效率不高。
2 描述符 (自定义数据表示)
格式:特征位 | 块长度 | 块首址 | 块属性
1)特征位:用来区分是描述符还是非描述符
2)块长度:描述数据块的个数
3)块首址:第一个数据单元的地址
4)块属性:描述数据的特征
使用描述符的好处:
1)描述相同类型的数据时,描述效率高;
2)利用块属性也有利于对信息的保护;
3)可当作直接寻址及间接寻址使用
直接寻址:根据描述符给出数据块的首地址
3、向量数据表示
含义:有序排列的数据元素称为向量(向量数据)
向量数据的三要素:
1)基地址:存放第一个向量数据的地址
2)向量长度:向量数据个数
3)位移量:与基地址的距离
起始地址=基地址+位移量
有效向量长度=向量长度-位移量
四、堆栈数据表示
含义:凡是按先进后出方式工作的特殊(存储)区域称为堆栈。
堆栈的组成方式:
1)寄存器堆栈,全由寄存器构成,速度快,但是扩充成本高。
2)寄存器与存贮器结合堆栈
寄存器速度快作栈顶(需要数个栈顶寄存器)
存贮器价格低扩充栈容易
堆栈的生长方式
通常采用向下生长的方式:压入数据后,堆栈指针SP向地址减少方向变化。
堆栈的主要作用:
1)保护信息,保存现场;
2)支持子程序嵌套与中断嵌套以及递归调用的正确进入与返回;
3)有利于完成对逆波兰表达式的运算
逆波兰表达式->二叉树的后序遍历
五、浮点数尾数的基值(rm)选择和下溢处理
浮点数的一般格式:
尾数的位数n主要影响浮点数可表示的精度。
rm表示浮点数尾数的基。m表示尾数的机器位数,m'表示rm进制尾数的个数
m‘=m/log(2)rm
规格化浮点数个数
尾数最高数值位为非0的浮点数称为规格化浮点数。
“rm越大,其他越小”
rm越大,规格化浮点数分布越稀疏
rm大,精度低
rm大,移位次数少,因而移位损失较小
浮点数的基值rm可对表示数的个数、数的范围、精度和稀密度有影响。
最常用的数据表示是定点数据表示
浮点数的精度主要由尾数的位数决定
规格化浮点数的尾数最高一位二进制数不一定为1
2、寻址方式:
常用寻址方式:立即、直接、寄存器;寄存器间接;基址/变址/基址变址; 相对地址等
指令格式优化
指令格式:操作码 | 数/地址
1、对操作码的编码方法
1)等长编码
每条指令的编码位数相等
编码位数L的确定与指令条数N相关
特点:优点:编码规整,使控制器译码机构简单;缺点:当指令使用频率不同时,不利于等效平均编码长度的减少,从而不利于信息的传递效率。
等长法用于RISC中(精简指令系统计算机)
2)Huffman压缩编码法
基本思想:频率高的指令用短码表示,频率低的指令用较长码表示。
3)扩展编码法
基本思想:即要考虑频率不同时,用不等长编码,又要考虑减少不同位数编码类型,使译码机构不要太复杂,采用多余一位进行扩展。