计算机系统结构第2章
- 格式:pdf
- 大小:160.91 KB
- 文档页数:7
计算机系统结构第2章
第⼆章指令系统
第⼀节指令系统设计概述
⼀、指令系统概述1、指令系统的设计、应⽤及实现(1)指令系统的设计
*机器指令:计算机硬件实现的运算或操作的命令;第i 种格式:OP i A 1A 2编码⽰例:00110 000~111 000~111功能⽰例:A1←(A 1)+(A 2)
第j 种格式:OP j A 编码⽰例:10110 000~111功能⽰例:A←(A)+1*指令系统设计:定义所有机器指令的格式(含编码)。*指令系统:所有机器指令的集合;
第1种:第2种:…
第n 种:OP 1A 1A 2OP 2A OP n A 1A 2
…
(2)指令系统的应⽤
第i种指令应⽤⽰例a:00110 000 001 功能AH←(AH)+(AL)
⽰例b:00110 011 000 功能BL←(BL)+(AH)
应⽤程序⽰例:从主存地址为2000H开始的100个元素累加求和
机器指令格式机器指令程序汇编程序1011wreg data 1011001001100100 CX←1001011100100000000 00100000LP:BX←2000H
1011000000000000 AL←0 0000000w mod reg r/m 0000000100000111AL←AL+[BX] 01000reg 01000001 BX←BX+1
11100010 disp 11100010 11111000 LOOP LP
*指令系统应⽤:按指令格式要求,根据应⽤需要、编写程序中的指令(即指令格式的实例)。
(3)指令系统的实现
指令功能实现步骤—ID 对IR 的OP 译码,⽤输出信号控制某⼀部件⼯作;ID 对IR 的A 译码,⽤输出信号控制相关REG 的读/写;信号有效时间由时序部件及该指令功能实现步骤决定。
指令操作或运算—部件功能实现及数据传递等的组合。*指令系统实现:按指令格式要求,⽤硬件实现指令功能。*设计/应⽤实现三者关系:
类似C 语⾔设计、⽤C 语⾔编程、C 语⾔编译及执⾏平台!☆指令系统的实质—软件与硬件之间的界⾯(“约定”)!指令译码器ID I OP A 内部总线
CPU ID D 功能部件1功能部件n …寄存器1寄存器m
…指令寄存器IR :
……存储总线
MAR/MDR
2、指令系统涉及内容
(1)指令格式包含信息分析
第i种指令格式:OP i A1A2②数据:(A1)=OP i⽀持类型的地址为A1的数据
①操作:A1←(A1) OP i(A2) 或A 2←(A2) OP i(A1)
硬件⽀持的数据类型(含数据长度)可存放数据部件类型、
部件的编址⽅式
部件中同⼀数据地
址的表⽰⽅式(2)涉及内容
*指令集结构:指令集总体框架,如存放部件、寄存器数量;
*指令集功能:⽀持操作的类型;
*数据表⽰:操作⽀持的数据类型、数据存储格式等。
*寻址⽅式:(不同/相同部件)地址的表⽰形式;
硬件⽀持的操作类型⽬的操作数的表⽰操作数个数及表⽰
⼆、指令系统的性能*指令系统性能的实质:
反映运⽤指令系统编写的程序,在执⾏时的性能。1、代码效率
反映指令系统对应⽤需求的⽀持程度(即同样应⽤需求所需要的指令数)。*指标:指令字功能、指令字长度、指令字冗余空间、操作数或地址访问范围、对编译程序的⽀持(如对称性)等。
例1—若指令系统仅⽀持8/16位运算,32位运算使⽤频率中等,则代码效率不⾼(需多条指令将32位运算拆分为16位运算);假如⽀持32位运算则较好(8086与80286指令系统如是说)。
例2—若指令系统不⽀持基址+变址寻址⽅式,⽽⼆维数组运算使⽤频率中等,则代码效率不⾼(每次需增加⼀条指令实现数组元素。2、执⾏效率
反映指令系统对硬件实现的⽀持程度(即同样功能的指令所需要的执⾏时间)。*指标:正交性、规整性等,以衡量译码速度、操作并⾏性、执⾏速度等⽅⾯的性能。
例3—指令格式中相关字段长度不规整,会影响译码速度(需进⾏⼆次译码或处理)
例4—指令格式中索引字段不靠前,会影响操作并⾏性(不能实现并⾏译码)
第i 种指令格式:OP i (7位) ⽴即数(9位)
第j 种指令格式:OP
j (8位) ⽴即数(8位)OP i (8位) ⽴即数(8位)OP j (8位) ⽴即数(8位)第i 种指令格式:OP i DF 1A 1DF 2A 2
时间OP i 译码DF 1
译码A 1译码A 2译码DF 1译码OP i DF 12A 1A 2A 1译码A 2译码时间OP i 译码DF 12译码△代码效率与执⾏效率的⽅案⽭盾时,常采⽤折中⽅案。
三、指令系统的设计过程1、指令集结构设计
确定指令集风格、显式操作数个数、
存放操作数的部件、寄存器数量等参数。2、指令集功能设计及优化
确定硬件⽀持的基本操作有哪些。5、指令格式设计及优化确定操作码、数据类型、寻址⽅式和地址码等所有信息的表⽰格式。
3、数据表⽰设计
确定硬件⽀持的数据类型有哪些。4、寻址⽅式设计
确定操作数存放部件的编址及操作数地址表⽰⽅式。
第1种:第2种:…第n 种:OP 1A 1A 2OP 2A OP n A 1A 2…
第⼆节指令集结构设计
⼀、指令集结构分类1、分类⽅法
(1)按CPU中操作数的存储⽅法分类--主要准则
*分类结果:堆栈型、累加器型、寄存器型指令集;
*特点:在代码效率、硬件成本、执⾏效率⽅⾯有所不同;
*流⾏类型:⼀般为三种类型中某些类型的混合型。
如--Intel 80x86为通⽤寄存器型和累加器型的混合体(2)按指令中显式操作数个数分类
说明—显式操作数个数指ALU指令中最⼤显式操作数个数*分类结果:零、单、双、三操作数指令集;
堆栈型—0个,累加器型—1个,寄存器型—2个或3个,
如--Intel 80x86为双操作数指令集*特点:操作数多时代码效率⾼、指令较长。
2、通⽤寄存器型指令集进⼀步分类
*分类⽅法:按ALU指令中操作数是否放在存储器中分类;
*分类结果:R-R型、R-M型、M-M型指令集;
注—R-M型指令集中⾄少有1个操作数在存储器中,
如3个操作数中有2个在存储器中,亦属于R-M型*特点:R-R型—指令简单、⽬标代码长、执⾏效率⾼,M-M型—指令密度⾼、⽬标代码短、执⾏效率低,R-M型—介于R-R型和M-M型之间。
*风格:RISC—R-R型指令集;
CISC—R-M型及M-M型指令集。
△Intel 80x86指令集类型:
为累加器型与寄存器型混合的、双操作数的、R-M型指令集,属于CISC风格。⼆、指令集结构设计*设计内容:确定指令集类型、风格、显式操作数个数、REG数量等参数。
1、指令集类型的确定
*类型:堆栈型、累加器型、通⽤寄存器型。
*影响因素:应⽤特征、器件成本、性能及性能/价格要求.
*发展趋势:通⽤寄存器型。
( ∵累加器型代码效率不够⾼、指令短,
⼜∵器件成本较低→通⽤寄存器型代码空间增加的成本不⼤) 2、指令集风格的确定*类型:CISC、RISC。
*影响因素:性能/价格要求,对VLSI、并⾏性的⽀持。
*发展趋势:RISC。
3、指令集显式操作数个数的确定
*类型:通⽤寄存器型⼀般为2~3个显式操作数。
*影响因素:指令集风格。
*确定⽅法:
RISC风格—注重处理速度、采⽤定长指令,考虑REG编码较短及减少数据相关,⼀般选择3个显式操作数;
CISC风格—注重指令效率、采⽤可变长指令,考虑REG 数量少及REG与MEM速度差距,⼀般选择2个显式操作数,考虑对流⽔技术的⽀持,⼀般只选择1个MEM操作数。
思考—若指令集显式操作数个数确定为2个,⽽某指令的操作需要≥3个操作数,如何处理?
答—默认或隐含⾮显式操作数放在堆栈或特定REG中!硬件实现时通过操作码(不同操作的操作码不同)判别这些约定!4、寄存器数量的确定
*寄存器种类:有专⽤REG(系统和堆栈使⽤)及通⽤REG(变
量使⽤)两种。*专⽤REG数量确定:
根据OS需要确定,与指令系统基本⽆关;
如:控制REG、状态REG等,
某操作码只对特定REG操作,REG⽆需在地址码中表⽰,8086汇编中的STI、CLI等指令即如此
*通⽤REG数量:由编译程序根据应⽤程序特征(哪些变量分配REG时最优)及REG分配算法来确定。
如:8086中的AX~DI等8个REG,
某操作码可对任⼀REG操作,REG需在地址码中表⽰,8086汇编中的MOV AX,BX和MOV AX,CX等即如此
☆指令集结构设计基础—应⽤需求,性能及性能/价格要求。
第三节指令集功能设计及优化*设计基础:①应⽤需求的典型程序范例;
②已确定的指令集结构的风格。
*设计内容:确定指令系统⽀持的基本操作有哪些。*指令中操作的常规分类:操作类型实例
算逻运算整数加、减等,逻辑与、或、⾮等
数据传送Load/Store
控制分⽀、跳转、过程调⽤和返回、⾃陷等
系统操作系统调⽤、虚拟存储器管理等
浮点浮点加、乘等
⼗进制⼗进制加、乘等
字符串字符串拷贝、移动、⽐较、搜索等
图形象素操作、压缩/解压操作等
⼀、CISC风格指令集的功能设计及优化1、CISC的功能设计
*设计⽅法:根据应⽤需求的典型程序范例(多个),将所有操作或运算分解成基本操作;对所有基本操作进⾏分类;统计各基本操作的使⽤频率。*CISC⽬标:侧重强化指令功能,以减少程序的⽬标代码长度,从⽽提⾼执⾏速度。
*设计结果:将频率较⾼的操作作为指令系统⽀持的操作。
例1—某系统应⽤需求的基本操作使⽤频率统计如下表:操作类型频率操作类型频率操作类型频率操作类型频率
算术加减0.150传
送
取0.060
浮
点
加减0.060⼗
进
制
加减0.008乘除0.100存0.050乘除0.039乘除0.007加减10.050
控
制
分⽀0.100加减10.001加减10.005
逻辑与0.040跳转0.050
图
形
叠加0.005字
符
串
拷贝0.004或0.040调⽤0.020反⾊0.003⽐较0.004⾮0.020返回0.020压缩0.001移动0.002异或0.005⾃陷0.015解压0.001系统0.140