第 2章 数据表示与指令系统
2.1 数据表示
2.1.1 数据表示与数据结构定义,数据表示指的是机器硬件直接识别和引用的数据类型,
1.种类,定点 浮点 逻辑 二 -十进制数据表示
2,数据表示与数据结构二者关系,数据表示是数据结构的组成元素相互 影响,数据表示为数据结构提供支持数据表示的实质,软硬件界面第 2章 数据表示与指令系统
2.1.1 数据表示与数据结构
3,数据表示的发展定点 浮点 逻辑 二 -十进制数据表示变址操作,为向量和阵列数据结构的实现提供直 接支持可变长字符串增加数据表示应注意的问题术语,程序的可再入性 数据结构第 2章 数据表示与指令系统
2.1.2 高级数据表示
1,自定义数据表示种类,带标志符的数据表示和数据描述符
(1) 带标志符数据表示
高级语言与机器的语义差距分析
标志符数据表示的引入与建立
举例,Burroughs B5000 B6500 B7500 R-2
1位 3位 10位透明性,对于高级语言程序透明,由编译程序建立类型标志 数据值标志符数据表示的优点
简化指令系统和程序设计
简化编译程序
便于实现一致性校验
可由硬件自动完成数据类型的变换
支持数据库系统 的实现与数据类型无关的要求
为软件调试和应用程序开发提供了支持采用标志符数据表示可能产生的问题
由于数据字增加了标志符,程序占用主存空间可能增加
采用标志符会降低指令的执行速度第 2章 数据表示与指令系统
2.1.2 高级数据表示
1,自定义数据表示
(2) 数据描述符
必要性,向量数组的特性
数据描述符的实现方式,B6700的实现
读取操作数的过程
多维数组的描述方法
好处,比变址方法实现方便,便于越界检查
101
000 数 据各种标志符 长度 地址第 2章 数据表示与指令系统
2.1.2 高级数据表示
2,向量数组数据表示传统的向量数组的处理方法 (举例 )
串行的循环方式及问题向量指令格式,
向量编址的参数,向量长度 基地址起始地址 向量有效长度 位移量向量加 A向量参数 B向量参数 C向量参数第 2章 数据表示与指令系统
2.1.2 高级数据表示
2,向量数组数据表示优点,
快速形成元素地址,成块元素预取
一条指令可以处理整个向量、数组
可以实现越界检查
高速高效
方便处理稀疏矩阵
编译程序简单第 2章 数据表示与指令系统
2.1.2 高级数据表示
3,堆栈数据表示堆栈机器:具 有堆栈数据表示的机器叫堆栈机器。
堆栈的作用:
快速访问堆栈
直接进行各种运算和处理
高级语言的编译 (逆波兰表达式)
子程序的嵌套和递归调用第 2章 数据表示与指令系统
2.1.3 引入数据表示的原则一维线性存储器的局限性引入数据表示的原则
1,系统效率是否提高举例,PL/1实现 A=A+B的计算的两种情况
2,通用性和利用率基本数据表示的问题举例,二 -十进制数定长字表示定点数和浮点数的问题结论 (P50)
第 2章 数据表示与指令系统
2.2 寻址方式寻址方式,指令寻找操作数或操作数地址的方式
2.2.1 寻址方式分析
1,主存、寄存器和堆栈的编址方式
统一编址方式,无单独的 I/O指令
独立编址方式,存储空间大,需要专门的指令
2.面向主存、寄存器和堆栈的寻址方式
面向寄存器
面向堆栈
面向主存第 2章 数据表示与指令系统
2.2.1 寻址方式分析
3.寻址方式在指令中的指明方式
占用操作码,操作码的若干位 DJS-200
不占用操作码,设置寻址方式字段
2.2.2 逻辑地址与主存物理地址
1.概念,逻辑地址 (主存 )物理地址 逻辑地址空间物理地址空间 名称空间 程序可再入性第 2章 数据表示与指令系统逻辑地址,程序员编写程序时使用的地址主存物理地址,程序在主存中的实际地址逻辑地址空间,由全部逻辑地址构成物理地址空间,全部主存实地址构成名称空间,汇编源程序等使用的符号、标号的名称总称程序可再入性第 2章 数据表示与指令系统
2.2.2 逻辑地址与主存物理地址
2,逻辑地址空间到主存物理地址空间的转换
举例 转换:直接寻址、间接寻址、变址寻址不转换:立即寻址(直接操作数)、相对寻址
程序再定位技术静态再定位动态再定位
3,程序再定位技术
( 1) 静态再定位定义,程序在执行过程中物理地址不发生变化的定位技术实现,由 软件 在程序运行前把逻辑地址变换成物理地址问题:破坏程序可再入性 与指令不可修改规则相违背
( 2)动态再定位定义,在执行每条指令时才形成访存物理地址的方法叫做动态再定位。
实现,通过基址寻址方式进行( 硬件 实现)
Von Neumann型计算机的特点
机器以运算器为中心
采用存储程序原理,数据和指令同等对待,程序执行过程可以修改
存储器按地址访问,其为顺序、线性一维空间
程序按执行顺序存储,PC指明要执行的指令在存储器的地址
指令由操作码和地址码构成
数据以二进制编码,采用二进制运算
软件与硬件完全分开
( 2)动态再定位地址加界方法的实现与作用程序基点的确定,0为基点基址方法和变址方法的比较物理地址空间的信息分布
IBM 370的信息及分布情况按整数边界存储的方法
2.3 指令系统的设计与修改
2.3.1 指令格式的优化
1.几个术语指令格式的优化,用最短的位数来表示指令的操作信息和地址信息,
指令的组成,操作码和地址码两部分
Huffman压缩概念,当各种事件发生的概率不均等时,采用的优化技术对发生概率最高的事件用最短位数来表示,对发生概率较低的事件用较长的位数来表示,就会导致表示的平均位数的缩短,
2.3.1 指令格式的优化
2.指令操作码的优化表示
重要公式平均信息源熵,H=-∑ pilog2pi
平均编码长度 =∑ pili
信息冗余量 =(操作码实际平均长度 -H)/操作码实际平均长度
Huffman编码方法
Huffman树方法,举例
Huffman树方法的问题及解决思路
2.3.1 指令格式的优化
2.指令操作码的优化表示
扩展操作码法举例
B1700计算机的指令操作码分析等长扩展编码法,操作码每次扩展位数相同例如,4-8-12位 15/15/15 8/64/512
3.指令字格式的优化
任意长度指令字在主存中的存储状况
等长单地址码的问题
定长指令多地址制格式固定长度的多地址同一地址制下的多种形式和长度
3.指令字格式的优化
IBM 370的地址码编码方式
RR格式,寄存器 -寄存器型指令 (16)
RX格式,寄存器 -变址型指令 (32)
RS格式,寄存器 -主存型指令( 32)
SI格式,主存 -立即数型指令 (32)
SS格式,主存 -主存型指令 (48)
2.3.2 按 CISC方向发展与改进指令系统方法分类,CISC(Complex Instruction Set Computer)
RISC (Reduced Instruction Set Computer)
1,面向目标程序的优化实现改进
根据 指令的使用频度分析改进静态使用频度,对程序中出现的各种指令及指令串进行统计的百分比,
按静态使用频度改进指令系统的 目的 是减少目标程序所占存储空间,
2.3.2 按 CISC方向发展与改进指令系统
1,面向目标程序的优化实现改进动态使用频度,对目标程序执行过程中对出现的各种指令及指令串进行统计的百分比,
按动态使用频度改进指令系统的 目的 是减少目标程序的执行时间,
IBM 370的改进,成组传送指令 增量指令
以复合指令取代常用宏指令或子程序
IBM 370 翻译指令,用于编码的变换
EBCDIC 到 ASCII的变换
EBCDIC (Extended Binary-Coded Decimal
Interchange Code) 扩展的二 -十进制交换码
替代原则软件兼容机器速度瓶颈的解决非功能型指令比例的减少与功能指令型比例的增加,
2.3.2 按 CISC方向发展与改进指令系统
2,面向高级语言的优化实现改进改进目标,缩小高级语言与机器语言的语义差距,
以支持编译系统
根据语句的使用频度进行改进
FORTRAN(FORmula TRANslator)与 COBOL
使用频度统计问题,用途不同的语言差距较大
IBM 370的改进,增设小于等于指令,以支持循环语句
面向编译优化代码生成的改进,系统结构的对称性
2.3.2 按 CISC方向发展与改进指令系统
2,面向高级语言的优化实现改进
缩小整体的语义差距
机器面向多种指令系统,多种系统结构,面向自寻优的计算机系统
发展高级语言机器各种机器的语义差距间接高级语言机器,以汇编方式使高级语言转换为机器语言直接执行高级语言机器,高级语言即为机器语言面向高级语言机器传统机器
2.3.3 按简化指令功能方向发展与改进指令系统
1.精简指令系统思想的提出
发展历史
CISC的问题
设计 RISC的一般原则 ( Patterson等人提出)
( 1)选择使用频度高的指令,压缩指令条数
( 2)减少寻址方式
( 3)指令执行不超过一个机器周期
( 4)设置大量通用寄存器
( 5)大多数指令使用硬联线控制实现,少量采用微程序实现
( 6)优化设计编译程序,对高级语言提供支持
2.3.3 按简化指令功能方向发展 与改进指令系统
2.RISC结构采用的基本技术
遵循设计 RISC的一般原则
硬联与 微程序相结合的技术
设置大量的寄存器组,采用寄存器重叠窗口
(Overlapping Register Window)技术
RISCⅡ 的寄存器重叠窗口技术
指令的执行采用流水和延迟转移技术
采用认真设计和优化编译系统设计的技术
2.3.3 按简化指令功能方向发展 与改进指令系统
3.RISC技术的发展
(1) RISC的优点
简化指令系统的设计,适合 VLSI实现
提高机器的执行速度和效率
降低设计成本,提高了系统的可靠性
支持高级语言,简化编译系统的设计
(2) RISC技术的发展状况
2.3.3 按简化指令功能方向发展 与改进指令系统
3.RISC技术的发展
(3) RISC的问题
由于指令少、功能简单,增大了汇编语言程序员的负担
对浮点运算和虚拟存储器的支持不够
编写 RISC的编译程序比编写 CISC机器的编译程序困难
( 4)实例总结