计算机系统结构第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