CPU指令系统和控制器部件_第1页
CPU指令系统和控制器部件_第2页
CPU指令系统和控制器部件_第3页
CPU指令系统和控制器部件_第4页
CPU指令系统和控制器部件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章指令系统和控制器部件4.1指令系统4.2指令功能及执行过程4.3MIPS指令单周期CPU设计4.4MIPS指令多周期CPU设计4.5指令流水基本概念重点和难点

单条指令功能的实现如何设计指令的数据通路?如何划分指令的执行步骤?如何根据指令得到控制信号?

机器语言程序的自动执行指令之间如何衔接?

提高性能在不增加太多硬件的情况下如何提高性能?

实现途径控制信号生成:组合逻辑或微程序程序自动执行:PC、节拍和下地址指令系统:RISC和CISC提高性能:指令流水数据运算部件计算机控制部件存储部件接口线路数据输入设备接口线路数据输出设备数据总线地址总线控制总线计算机主机

计算机外围设备计算机的CPU计算机硬件系统功能部件对指令的控制:计算机的工作过程是连续执行指令的过程,控制器应能保证动态指令流的形成。对时序的控制:产生固定的时序信号,以保证全机各部件有节奏的工作。对操作的控制:依据指令内容、指令的执行步骤,形成并提供当前各部件本时刻要用到的全部控制信号。控制器的功能指令:

是指示计算机执行基本操作的命令。指令也是用户使用计算机的最小功能单位。

从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。

微指令:是微程序级的命令,它属于硬件;宏指令:是由苦干条机器指令组成的软件指令,它属于软件;

机器指令:则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。

本章所讨论的指令是机器指令。

指令系统:一台计算机支持(或称使用)的全部指令的集合构成该计算机的指令系统。由于指令与计算机的性能以及硬件结构密切相关,所以不同系列、不同型号的计算机其指令系统是不一样的。4.1指令系统

指令的基本格式寻址方式

指令系统的设计要求指令系统的发展oprsrtrdsafuncoprsrtimmediateoptargetMIPS指令格式

(32位)drsrioport/offsetImmediate/address/offsetTh-union指令格式

(16位)op任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。如何把一个指令字划分成多个字段并分配各字段所表示的内容大有学问。一、指令的基本格式1.操作码定长操作码变长操作码

在指令系统中,每一条指令都有唯一确定的操作码。分二种形式:a.定长操作码形式在指令字中,操作码字段的位数和位置是固定的。早期的计算机一般采用定长操作码的设计,控制简单,且对操作码的译码实现容易。

IBM360/370操作码是八位的:

00000000~11111111

该指令系统最多可有多少条指令?

Th-union操作码是八位的:

00000000~11111111

该指令系统最多可有256条指令。

例如:256RR型

OPC

R1R2844RS型

OPC

RnRmBD

844412RX型

OPC

R1X2B2D2844412SI型

OPC

I2B1D284412SS型

OPC

LB1D1B2D28

8

4

12412IBM360/370计算机的指令格式Ri:通用寄存器Xi:变址寄存器Bi:基址寄存器Di:位移量I:立即数L:数据的长度定长操作码的特点

优点:有利于简化硬件设计,提高指令译码的速度和指令执行的速度。

缺点:限制了指令系统的扩充、不利于缩短指令的长度,存在有很大程度的信息冗余。b.变长操作码形式指令系统中,各指令的操作码字段位数不等长。例:PDP-11小型机的指令系统

其指令长度为16位,操作码字段的长度有4、7、10、13、16等不同的情况。

Mod

Ri

Mod

Rj

OP

四位六位六位

Ri

Mod

Rj

OP(7)

Mod

Rj

OP(10)

Rj

OP(13)

OP(16)为增加操作码长度,采用

——

操作码逐段扩展技术

变长操作码的特点

优点:可方便扩充指令系统有利于缩短指令操作码的平均长度。

缺点:指令译码的控制复杂,硬件电路复杂。2.地址码的设计和安排

按照指令中地址码字段给出的地址的个数的不同,无地址指令(零地址指令)一地址指令(单地址指令)双地址指令多地址指令有四种情况:Th-union的机器指令汇编指令

0000000000010010

ADDR1,R20000000110001001

SUBR8,R90000100100110000

INCR31000100000010000MOVR1,0055H0000000001010101a.无地址指令(零地址指令)有二种情况:

指令不需要任何操作数。

例:NOP、HALT

操作数为隐含的,或操作数地址是默认的。例:PUSHF、POPF

操作码格式:b.一地址指令(单地址指令)操作码地址码只有一个地址码,用于单操作数指令。例:INC、SHL、JMP、CALL或者双操作数指令,但其中一个操作数的地址为默认值。

例:MUL、DIV格式:c.双地址指令

地址码2

地址码1

操作码

地址码1既是源操作数的地址,也是目的操作数的地址。双操作数在运算类、传送类指令中使用较多。ADDDR,SR

格式:d.多地址指令

地址码3

地址码2

地址码1

操作码地址码4地址码3地址码2

地址码1操作码特点:操作完成后源操作数的内容不被破坏,用户编程方便。严重的缺点是指令字较长。格式1:格式2:3.指令字长度

机器指令的二进制序列的位数。

定长指令变长操作码

变长指令定长操作码例1:某机指令系统,指令字为16位固定长,要求有3地址指令、2地址指令、1地址指令和0地址指令,每个地址码4位。应如何设计?a.定长指令变长操作码

该种形式是将操作码的设计与地址码的设计作为一个整体考虑,以形成高效合理的指令编码。0000

XXXX

XXXX

XXXX~4位操作码(3地址指令15条)1110

XXXX

XXXX

XXXX8位操作码~(2地址指令15条)1111

0000

XXXX

XXXX1111

1110

XXXX

XXXX~(1地址指令15条)1111

11110000

XXXX1111

11111110

XXXX12位操作码~(0地址指令16条)1111

1111111100001111

11111111111116位操作码设计方案

练习1.指令字长为12位,每个地址码为3位,采用扩展操作的方式,设计4条三地址指令、16条二地址指令、64条一地址指令和16条零地址指令。

(1)画出扩展图。

(2)画出指令译码逻辑。

000

××××××××× ┆ ┆

011

×××××××××

100

000 ×××××× ┆┆

101

111

××× ×××110

000

000××× ┆┆

110

111

111

×××111

000

000

000 ┆┆

111

000

001

1114条三地址指令16条二地址指令16条零地址指令64条一地址指令(1)操作码的扩展如下图所示。练习2.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种方案,使该系统包含4条三地址指令,8条二地址指令,60条单地址指令。

000

××××××××× ┆ ┆

011

×××××××××

100

000 ×××××× ┆┆

100

111

××× ×××101

000

000××× ┆┆

101

111

011

×××4条三地址指令8条二地址指令60条一地址指令练习3.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种方案,使该系统包含4条三地址指令,8条二地址指令,180条单地址指令。

另问:能否构成三地址指令4条,单地址指令255条,零地址指令64条呢?

000

××××××××× ┆ ┆

011

×××××××××

100

000 ×××××× ┆┆

100

111

××× ×××101

000

000××× ┆┆

111

110

011

×××4条三地址指令8条二地址指令180条一地址指令

000

×××××××××┆┆

011

×××××××××

100

000

000××× ┆┆

111

111

110

×××111111111000 ┆

111

111

111

111255条一地址指令8条零地址指令4条三地址指令指令字的长度与机器字长没有固定的关系。

b.变长指令定长操作码例:IBM360/370

指令的操作码是8位的,指令字为16位、32位、48位。

TH-union

指令的操作码是8位的,指令字为16位.

设某机型需设计100条指令。试确定以下两种操作码设计方案的操作码长度。1)采用定长操作码格式。2)采用扩展操作码法。(设10℅的指令使用频度为90℅)思考:

二、寻址方式寻址方式:指的是确定本条指令的数据地址及下一条要执行的指令地址的方法。

不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能也各不相同。1、指令寻址顺序(PC)+1PC跳跃由转移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址82、数据寻址约定

指令字长=存储字长=机器字长形式地址A操作码寻址特征

通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。

在指令中给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址。

运算器中寄存器的编号或专用寄存器名称(编号)输入/输出指令中I/O设备的输入输出端口地址内存储器的一个存储单元(或一I/O设备)的地址在指令的操作数地址字段,可能要指出:

在计算机的指令系统中,会有多种基本寻址方式和某些复合寻址方式,简介如下:1)直接寻址

在指令的地址码字段直接给出所需的操作数(或指令)在存储器中的地址。

存储器地址为操作数在存储器中的地址。或转移指令等用到的指令地址。内存储器

操作数

操作码

存储器地址…例:MOVR1,[0800]0000

1000

0000

0000操作码0001

不用

特点是什么?简单直观,执行速度快。编程不灵活,访问空间有限。2)寄存器寻址

操作码

寄存器编号…例如:

0000110010001001

SUB

R8,R90111010000110000

INC

R3

指令地址码字段给出某一通用寄存器的编号(地址),且所需的操作数就在这个寄存器中,这就是寄存器寻址方式。

执行阶段不访存,只访问寄存器,执行速度快。

寄存器个数有限,可缩短指令字长。3)间接寻址方式

若寄存器中存放的是操作数在内存中所在单元的地址,这就是寄存器间接寻址方式。a.通过寄存器的间接寻址方式

OP

RegNo…寄存器间接寻址示意图

OP

0101

…0000000000000111

R50007H

操作数………000700060008FFFF0000………(1)寄存器寻址与寄存器间接寻址的不同点

操作数所在位置不同指令执行的速度不同思考题(2)设计寄存器间接寻址的必要性可有效缩短指令的长度可方便程序处理的需要b.通过存储器的间接寻址方式

指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址,这被称为存储器间接寻址方式。操作数Addr1特点:比直接寻址灵活,并且可用指令中的短地址访问大的内存空间;取操作数需二次访问主存,降低了指令执行的速度。

OP

Addr…4)基址寻址方式

在计算机中设置一个专用的基址寄存器,操作数(或指令)的地址通过基址寄存器的内容和指令中的地址码相加得到。基址寄存器加法器操作数存储器

OP

disp…例:disp=18H,[BS]=5700H

则操作数地址=5718H

主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。5)变址寻址方式

操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到。通用寄存器加法器存储器

操作数

OP

Reg

Disp…例:Disp=18H,Reg=5,R5)=5700H

则操作数地址=5718H

便于对数组元素进行处理,此方式是计算机中常用的一种寻址方式。6)块(串)寻址方式

为了对数组运算提供更好的支持,采用该种寻址方式的指令中,要对整个数组实现某种运算,只需给出数组的首地址和末地址,这条指令执行一次,可对数组的全部元素完成某种运算操作。此方式是现代计算机中广泛采用的一种寻址方式。7)隐含寻址方式

对于双操作数指令,如果事先约定参与运算的一个操作数固定存放在某个寄存器或某个存储单元中。指令中不直接给出某个操作数的地址,被称为隐含寻址方式。ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在ACC中如8086MUL指令被乘数隐含在AX(16位)或AL(8位)中MOVS指令源操作数的地址隐含在SI中目的操作数的地址隐含在DI中

指令字中少了一个地址字段,可缩短指令字长。8)立即寻址方式所需的一个操作数在指令的地址码部分直接给出。特点:在取指令的同时取出了操作数,不必访问主存,提高了指令的执行速度;灵活性差。

OP

Num…

操作数(或指令)的地址由程序计数器PC的内容(即当前执行指令的地址)和指令的地址码相加得到。例如:disp=48H (PC)=5600H则实际地址=disp+(PC)=5648H

主要用于转移指令,对缩短指令长度很有用。位移量可正可负,通常用补码表示。9)相对寻址方式主存空间2000PCJMP+30现行指令JMPNEXTADDAX,BX………200120012031PC在指令中不指定,是隐含的,所以可以缩短指令长度。

例题:设相对转移指令占两个字节,第一个字节是操作码,其地址是2000H,第二个字节是相对位移量,那么:(PC)=2002H(1)若第二个字节的内容为06H,则转移到的地址为______。①2008H②2009H③1FFCH④FFBH(2)若转移到的地址为1FFDH,则第二个字节的内容为_______。①05H②FBH③FDH④FFH

堆栈是内存储器中一块按“后进先出”原则进行读写的存储区,并通过一个专用的寄存器(堆栈指针SP)给出堆栈的栈顶地址,完成数据的读写操作,故不必在指令中用操作数地址字段给堆栈地址。通常在读写操作的前后伴随有计算机自动(不是用户通过指令)修改SP内容的动作,以确保按正确的“后进先出”原则读写堆栈区。10)堆栈结构及寻址

如何在指令中表示寻址方式呢?1.用操作码区分2.在指令中划分专用的字段来说明问题:下图所指的寻址方式的名称是什么?

操作码操作数

操作码

寄存器

操作数

R

立即寻址寄存器寻址

操作码

存储器

指令

操作数

A

问题:下图所指的寻址方式的名称是什么?存储器直接寻址

操作码

操作数

A

存储器

寄存器

R

存储器

操作码

操作数

A'

A

问题:下图所指的寻址方式的名称是什么?存储器间接寻址寄存器间接寻址

操作码

操作数

PC

存储器

A

问题:下图所指的寻址方式是什么?相对寻址──────────────────────────

寻址方式有效地址EA的计算公式寻址范围

立即寻址直接寻址间接寻址变址寻址相对寻址解:因为OP字段长5位,所以指令能定义25=32种指令。

例:某机字长为16位,存储器按字编址,访内存指令格式如下:

151110870OPMA其中OP是操作码,M定义寻址方式,A为形式地址。设PC和Rx分别为程序计数器和变址寄存器,字长16位。(1)该指令能定义多少种指令?(2)表中各种寻址方式的寻址范围为多少?(3)写出表中各种寻址方式的有效地址EA的计算公式。EA=(PC)1个字,即指令自身EA=A256个字EA=(A)64K字EA=(Rx)+A64K字EA=(PC)+A256个字(PC附近)练习题:某机字长16位,内存容量为64K字,指令格式为单字长单地址,其有64条指令,问:

1)若只采用直接寻址方式,指令能访问多少内存单元?

2)为了扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少?

一个完善的指令系统应满足如下四方面的要求:

完备性

有效性规整性兼容性

三、指令系统的设计要求完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。1.对称性是指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;2.匀齐性是指一种操作性质的指令可以支持各种数据类型;

3.指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取。兼容性

要能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。要能做到“向后兼容”,即先生产机器上运行的软件可以在后生产的机器上运行。输入设备输出设备入出接口和总线外存设备主存储器高速缓存控制器运算器ADDSUBANDORMVRRSHRRCLOUTSTOREPUSHJUMPJRCCALLRETLOADPOPIN指令的功能分类算术与逻辑运算指令加、减、乘、除、变符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论