组成原理期末复习3_第1页
组成原理期末复习3_第2页
组成原理期末复习3_第3页
组成原理期末复习3_第4页
组成原理期末复习3_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1指令格式

从便于程序设计、增加操作并行性、提高指令功能看,指令中应包含多种信息。但指令太长会占用更多的存储空间,增加访存次数。一条指令应包含下列信息:操作码:表明操作的性质和功能。每条指令都有相应的操作码。操作数地址。操作结果的存放地址。下一条指令的地址。为了压缩指令长度,可以用一个程序计数器(ProgramCounter,PC)存放指令地址。每执行一条指令,PC自动增加,指向下一条指令。由于使用了PC,指令中可以不包含下一条指令的地址。一条指令实际上包含两种信息:操作码(OperationCode,OP)和地址码。其基本格式为:2指令字长指令中包含二进制代码的位数,称为指令字长。与机器字的长度有关:单字长,双字长,半字长,优点、缺点。以IBM370为例,其字长为32位。指令格式有16位(半字)的,有32位(单字)的,也有48位(一个半字)的。等长指令:各种指令字长度相等,称为等长指令字结构,结构简单,控制线路简单,RISC。变长指令:如果指令字长度随指令的功能而异,称为变长指令字结构。结构灵活,充分利用指令长度,控制复杂,CISC。

3地址码

根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式。此外,还有二地址格式、一地址格式和零地址格式。操作码A1A2A3三地址指令:操作码A1A2二地址指令:操作码A1一地址指令:操作码零地址指令:4

(1)零地址指令的指令字中只有操作码,而没有地址码。如停机、空操作指令。其格式为:OP

(2)一地址指令常称为单操作数指令。通常这种指令以运算器中累加寄存器AC中的数据为被操作数,指令字的地址码字段所指明的数为操作数,操作结果又放回累加寄存器AC中。其格式为:

功能描述:

(AC)

OP

(A1)→A1

(PC)+1→PC

OP表示操作性质;(AC)表示累加寄存器AC中的数;(A1)表示主存中地址为A1的存储单元中的数或运算器中地址为A1的通用寄存器中的数;→表示把操作(运算)结果传送到指定的地方。单操作数运算指令,如“+1”、“-1”、“求反”,指令中给出一个源操作数的地址OPA15

(3)二地址指令常称为双操作数指令,它的两个地址码字段分别指明参与操作的两个数在主存中或运算器中通用寄存器的地址,A1作存放操作结果的地址。A1中原来的内容被覆盖。其格式为:功能描述:

(A1)OP(A2)→A1(PC)+1→PC二地址指令在计算机中得到了广泛的应用,但是在使用时有一点必须注意:指令执行之后,A1中原存的内容已经被新的运算结果替换了。OPA1A26

(4)三地址指令字中有三个操作数地址。A1为被操作数地址,也称源操作数地址;A2为操作数地址,也称目的操作数地址;A3为存放结果的地址。A1、A2、A3可以是主存中的单元地址,也可以是运算器中通用寄存器的地址。其格式为:功能描述:(A1)OP(A2)→A3(PC)+1→PC这种格式指令长度比较长,所以只在字长较长的大、中型机中使用,而小型、微型机中很少使用。OPA1A2A37

二地址指令格式中,从操作数的物理位置来说,又可归结为三种类型。存储器-存储器(SS)型指令:操作时都是涉及主存单元,参与操作的数都放在主存里,从主存某单元中取操作数,操作结果存放至主存另一单元中。寄存器-寄存器(RR)型指令:需要多个通用寄存器或个别专用寄存器,从寄存器中取操作数,把操作结果放到另一寄存器。机器执行寄存器-寄存器型指令的速度很快,因为执行这类指令,不需要访问主存。寄存器-存储器(RS)型指令:执行此类指令时,既要访问主存单元,又要访问寄存器。指令字助记符由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。为了便于书写和阅读程序,采用一种缩写码叫做指令助记符用3~4个英文字母来表示操作码,一般为英文缩写不同的计算机系统,规定不一样必须用汇编程序翻译成二进制代码89操作码

指令系统中每条指令有唯一确定的操作码,表明指令的性质和功能。操作码可以采用固定长度,也可以采用可变长度。固定长度操作码对于简化硬件设计、减少指令译码时间有利,在字长较大的大、中型机中广泛采用。可变长度操作码可以有效压缩操作码的平均长度,在字长较短的小型机和微型机中采用。定长编码:操作码的长度决定了指令系统中指令的数目。若操作码长度为k位,最多只能有2k条指令。以IBM370为例,其字长为32位。指令格式有16位(半字)的,有32位(单字)的,也有48位(一个半字)的。半字长指令不包含主存地址,单字长指令包含一个主存地址,一个半字长指令包含两个主存地址。

IBM370机中,不论指令长度为多少,操作码字段都为8位。8位操作码允许指定256条指令,而IBM370只有183条指令,存在极大的信息冗余。10OPR1R2RR型:OPR1X2B2D2RX型:RS型:OPI2B1D1SI型:IBM370的五种指令格式:OPL1B1D1B2D2SS型:OPR1R2B2D28448444128444128841288412412OP:操作码;R:寄存器;X:基址寄存器;L:指定操作数的长度;D:位移量;I:直接操作数;B:变址寄存器。

RR型:寄存器-寄存器型;RX型和RS型:寄存器-存储器型;SI型:直接带操作数;SS型:存储器-存储器型。11

变长编码:在指令字长有限的情况下,变成编码可增加指令种类。当指令中地址部分位数较多时,让操作码的位数少些;地址部分位数较少时,让操作码的位数增多。

PDP-11的字长为16位。指令分为单字长、二字长、三字长三种。操作码占4~16位不等。下面是PDP-11的部分指令格式:OPSDOPX2单字长(16位)OPSD地址OPSD地址1地址2OP46610616466164661616二字长(32位)三字长(48位)12

操作码长度不固定会增加指令译码的难度,使控制器设计复杂化。通常用指令中固定长度的字段表示基本操作码,对于不需要某个地址字段的指令,将操作码扩展到该地址字段。设某机器指令字长16位,包括4位基本操作码和三个4位地址字段:OPA1A2A330741181512

可按以下方式设置操作码:(1)15条三地址指令由基本操作码从0000~1110给出,剩下的1111用于将操作码扩展到A1字段;(2)15条二地址指令由8位操作码从11110000~11111110给出,剩下的11111111用于将操作码扩展到A2字段;(3)15条一地址指令由12位操作码从111111110000~111111111110给出,剩下的111111111111用于将操作码扩展到A3字段;(4)16条零地址指令由16位操作码从1111111111110000~1111111111111111给出。13例:指令字长12位,基本操作码3位,每个地址码3位,设计4条三地址指令、255条一地址指令和8条零地址指令。000×××××××××…………011×××××××××100000000×××…………111111110×××111111111000…………1111111111114条三地址指令255条一地址指令8条零地址指令OPA1A2A32053861191A.8B.4C.12D.162A.64B.63C.255D.25414OPA1A2065111512例如果零地址指令没有占用的话150000××××××××××××…………1011××××××××××××1100000000××××××…………1111111110××××××1111111111000000…………111111111111111112条双地址指令255条一地址指令64条零地址指令这一条一地址指令被用来编码2(最多可以64)条零地址指令这一条一地址指令被用来编码2(最多可以64)条零地址指令16操作码的优化

为缩短操作码的平均长度,应该给使用频度高的指令分配短的操作码,使用频度低的指令分配长的操作码。Huffman编码就是按照这一原则进行编码的。假如某计算机有7条指令,使用频度用Pi表示,Huffman编码如下:指令Ii使用频度PiHuffman编码操作码长度LiI10.4001I20.26102I30.151103I40.06111005I50.05111015I60.04111105I70.04111115

操作码的平均编码长度为:

L=0.40×1+0.26×2+0.15×3+0.19×5=2.32位17Huffman编码

将7条指令按使用频度从小到大的顺序排序,每次将使用频度最小的两个结点合并为一个新的结点并重新排序,如此反复。最后将每个结点的两个分支分别用“1”和“0”标注。操作数类型地址数据:正整数数值数据:定点数、浮点数、BCD码字符数据:ASCII码逻辑数据:若干二进制位,分别看待1819指令寻址方式

顺序寻址方式:指令地址在主存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。

为此,必须使用程序计数器PC来计数指令的顺序号,该顺序号就是指令在主存中的地址。

跳跃寻址方式:下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。程序计数器的内容也必须相应改变。采用指令跳跃寻址方式,可以实现程序转移或构成循环程序。20操作数寻址方式

操作数在主存中的存放并无一定规律,给操作数寻址带来困难。此外,受指令长度的限制,指令中的地址码不会很长,而主存容量却越来越大,因此仅能直接访问主存的一小部分,无法直接访问整个主存。把指令中地址码字段给出的地址称为形式地址,这个地址可能不能直接访问主存。能够直接访问主存的地址称为有效地址。寻址就是把操作数的形式地址变换为有效地址。OPXD

上图是一种单地址指令。OP为操作码,X为寻址特征码,D为形式地址也称偏移量,有效地址E由X和D的组合给出。隐含寻址:在指令中不明显地给出而是隐含着操作数的地址。例如,单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址。21OP(移位)FD立即寻址:指令中地址字段给出的不是操作数的地址,而是操作数本身。

上图为单地址移位指令。D不表示地址,而是一个操作数。F为标志位,F=1操作数右移,F=0操作数左移。取指时同时取出操作码和操作数,不需要访问存储器,提高了指令执行的速度。但操作数是指令的一部分,不能修改,而且立即数的大小受指令长度的限制,灵活性差。直接寻址:指令中地址字段直接给出操作数在主存中的地址。

指令中的形式地址D就是有效地址E,即E=D。如果操作数用S表示,则

S=(E)=(D)随着主存容量不断扩大,所需要的地址码越来越长,而指令中地址码字段长度有限,限制了访问主存的范围。22间接寻址:形式地址不是操作数的有效地址,而是操作数地址的地址。 E=(D)

S=(E)=((D))

间接寻址扩大了寻址范围,可用指令中的短地址访问大的主存空间。此外,操作数的地址改变后,不需要修改指令,只要修改存放有效地址E的主存单元。间接寻址需要两次访存,降低了取操作数的速度。寄存器寻址:指令中的地址码部分给出一个通用寄存器编号,该寄存器中存放着操作数。

从寄存器取数据比从主存取数据快得多。由于寄存器数量较少,寄存器编号的长度比主存地址的长度短得多,可以缩短指令长度。23寄存器间接寻址:寄存器中的内容是操作数的有效地址,该地址在主存中。相对寻址:把程序计数器PC中的内容加上指令中的形式地址D,得到操作数的有效地址。

所谓“相对”,是相对于当前指令的地址。形式地址D称为偏移量,可正可负。操作数地址和指令地址相差一个固定值。操作数可以和指令一起移动,放在主存中任何地方,执行的效果都相同。

寄存器间接寻址的指令较短,而能够访问的主存范围很大,并且只需访问主存一次,执行速度比间接寻址快,是广泛采用的寻址方式。寄存器在编程时常用作地址指针。24变址寻址:把CPU中变址寄存器的内容加上指令中的形式地址D,得到操作数的有效地址。基址寻址:把CPU中基址寄存器的内容加上指令中的形式地址D,得到操作数的有效地址。基址寻址和变址寻址形成操作数有效地址的算法相同,但应用有区别。变址寻址中变址寄存器提供修改量,指令提供基准值;基址寻址中基址寄存器提供基准值,指令提供修改量。变址寻址面向用户,主要用于数组操作;基址寻址面向系统,主要用于逻辑地址和物理地址的转换,解决程序在主存中的再定位和扩大寻址空间的问题。

通常把指令中的形式地址作为基准地址,把变址寄存器的内容作为修改量。需要频繁修改地址时不必修改指令,只需修改变址寄存器。这对于数组运算、字符串操作等成批数据处理是很有用的。25Pentium寻址方式

在实地址模式下,采用段寻址方式:将段寄存器内容(16位)左移4位,低4位补0,到20位段基地址,再加上16位段内偏移,得20位物理地址。在保护模式下,32位段基地址加上段内偏移得到32位线性地址。由存储管理部件将其转换成32位的物理地址。序号寻址方式名称有效地址E算法说明(1)立即

操作数在指令中(2)寄存器

操作数在寄存器中(3)直接E=DispDisp为偏移量(4)基址E=(B)B为基址寄存器(5)基址+偏移量E=(B)+Disp(6)比例变址+偏移量E=(I)*S+DispS为比例因子(7)基址+变址+偏移量E=(B)+(I)+Disp(8)基址+比例变址+偏移量E=(B)+(I)*S+Disp(9)相对指令地址=(PC)+Disp26

几点说明:⑴立即数可以是8位,16位,32位。⑵寄存器寻址:通用寄存器可以为8位、16位或32位。对64位浮点数,要使用一对32位寄存器。少数指令以段寄存器来实施寄存器寻址方式。⑶直接寻址:偏移量长度可以是8位,16位,32位。⑷基址寻址:基址寄存器B可以是通用寄存器中任何一个。⑸基址+偏移量寻址:基址寄存器B是32位通用寄存器中任何一个。⑹比例变址+偏移量寻址:变址寄存器I是32位通用寄存器中除ESP外的任何一个。I的内容乘以比例因子1,2,4或8,再加上偏移量得到有效地址。⑺,⑻两种寻址方式是⑷,⑹两种寻址方式的组合,偏移量可有可无。⑼相对寻址:适用于转移控制类指令。用当前指令指针寄存器EIP或IP的内容(下一条指令地址)加上一个有符号偏移量,形成CS段的段内偏移。27例:一种二地址RS型指令的结构如下所示:

6位4位1位2位16位OP---通用寄存器IX偏移量D其中I为间接寻址标志位,X为寻址模式字段,D位偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。请写出六种寻址方式的名称。寻址方式IX有效地址E算法说明(1)000E=D(2)001E=(PC)±DPC为程序计数器(3)010E=(R2)±DR2为变址寄存器(4)111E=(R3)(5)100E=(D)(6)011E=(R1)±DR1为基址寄存器直接相对变址寄存器间接间接基址28例:某16位机器有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S,D都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H

,STA(OP)=(1B)H

,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。⑴分析三种指令的指令格式与寻址方式特点。⑵分析三种指令的执行时间。⑶下列指令字是否正确?分别代表什么操作? ①(F0F1)H(3CD2)H

②(2856)H③(6FD6)H④(1C2)H29⑴分析三种指令的指令格式与寻址方式特点。都是双地址指令,MOV是单字长寄存器-寄存器RR型,STA和LDA是双字长寄存器-存储器RS型;MOV是寄存器寻址,S和D里面直接存放的是操作数STA是变址寻址,有效地址E=(S)+M,LDA是直接寻址,有效地址E=M例:某16位机器有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S,D都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H

,STA(OP)=(1B)H

,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。30⑵分析三种指令的执行时间。MOV执行速度最快,只要访问两次寄存器,LDA其次,访问1次寄存器和1次内存,STA最慢,除了访问2次寄存器和1次内存外,还需要做一次加法(S)+M例:某16位机器有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S,D都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H

,STA(OP)=(1B)H

,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。31⑶下列指令字是否正确?分别代表什么操作?①(F0F1)H(3CD2)H=(111100001111

00010011110011010010)2

②(2856)H=(001010000101

0110)2

③(6FD6)H=(0110111111010110)2

④(1C2)H=(0000000111000010)2①为LDA,②为MOV,③不正确,OP为STA,但只有16位,④不正确,无对应的操作码例:某16位机器有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S,D都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H

,STA(OP)=(1B)H

,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。MOV(OP)=(A)H=(001010)2

STA(OP)=(1B)H=(011011)2,LDA(OP)=(3C)H=(111100)232总线带宽:单位时间内总线上可传送的数据量。通常用兆字节数/秒(MB/s)表示。实际带宽受到总线布线长度、总线驱动器/接收器性能、连接在总线上的模块数等因素的影响,这些因素造成信号在总线上的延时和畸变,使总线的最高数据传输速率受到限制。总线位宽:总线上能同时传送的数据位数。如1位、8位、16位、32位等。总线工作频率:用于控制总线操作周期的时钟信号的频率。通常用MHz表示。这三个参数的关系如下:

总线带宽=总线位宽×总线工作频率总线的性能指标33[例1](1)某总线在一个总线周期中并行传送4个字节的数据,假设一个总线周期等于一个总线时钟周期,总线时钟频率为33MHz,总线带宽是多少?(2)如果一个总线周期中并行传送64位数据,总线时钟频率升为66MHz,总线带宽是多少?解:(1)设总线带宽用Dr表示,总线时钟周期用T=1/f表示,一个总线周期传送的数据量用D表示,根据定义可得Dr=D/T=D×(1/T)=D×f=4B×33×106/s=132MB/s(2)64位=8BDr=D×f=8B×66×106/s=528MB/s34总线的连接方式

单机系统中采用的总线结构有两种基本类型:(1)单总线结构;(2)多总线结构。(1)单总线结构

在许多单处理器的计算机中,使用一条单一的系统总线来连接CPU、主存和I/O设备,叫做单总线结构。此时要求连接到总线上的逻辑部件必须高速运行,以便在某些设备需要使用总线时能迅速获得总线控制权;而当不再使用总线时,能迅速放弃总线控制权。35取指令:当CPU取一条指令时,首先把程序计数器PC中的地址同控制信息一起送至总线上。在“取指令”情况下的地址是主存地址,此时该地址所指定的主存单元的内容一定是一条指令,而且将被传送给CPU。传送数据:取出指令之后,CPU将检查操作码。操作码规定了对数据要执行什么操作,以及数据是流进CPU还是流出CPU。I/O操作:CPU把指令的地址字段放到总线上,如果该指令地址字段对应的是外围设备地址,则外围设备译码器予以响应,从而在CPU和与该地址所对应的外围设备之间发生数据传送,而数据传送的方向由指令操作码决定。DMA(DirectMemoryAccess,直接存储器访问)操作:

某些外围设备也可以指定地址。如果一个由外围设备指定的地址对应于一个主存单元,则主存予以响应,于是在主存和外设间将进行直接存储器传送(DMA)。扩展成多CPU系统:只要在系统总线上挂接多个CPU即可。36(2)多总线结构

CPU和cache之间采用高速的CPU总线,主存连接在系统总线,高速总线上可以连接高速LAN(100Mb/s局域网)、视频接口、图形接口、SCSI接口、Firewire接口。通过桥,CPU总线、系统总线和高速总线彼此相连。桥实质上是一种具有缓冲、转换、控制功能的逻辑电路。高速总线通过扩充总线接口与扩充总线相连,扩充总线上可以连接串行方式工作的I/O设备。多总线结构体现了高速、中速、低速设备连接到不同的总线上同时进行工作,以提高总线的效率和吞吐量,而且处理器结构的变化不影响高速总线。37总线结构的优点(1)简化了硬件的设计。从硬件的角度看,总线结构是由总线接口代替了专门的I/O接口,由总线规范给出了传输线和信号的规定,并对存储器、I/O设备和CPU如何挂在总线上都作了具体的规定,所以,面向总线的微型计算机设计只要按照这些规定制作CPU插件、存储器插件以及I/O插件等,将它们连入总线即可工作,而不必考虑总线的详细操作。(2)简化了系统结构。整个系统结构清晰,连线少,底板连线可以印刷化。(3)系统扩充性好。一是规模扩充,二是功能扩充。规模扩充仅仅需要多插一些同类型的插件;功能扩充仅仅需要按总线标准设计一些新插件。插件插入机器的位置往往没有严格的限制。这就使系统扩充既简单又快速可靠,而且也便于查错。(4)系统更新性能好。因为CPU、存储器、I/O接口等都是按总线规约挂到总线上的,因而只要总线设计恰当,可以随时随着处理器芯片以及其他有关芯片的进展设计新的插件,新的插件插到底板上对系统进行更新,其他插件和底板连线一般不需更改。38

连接到总线上的功能模块有主动和被动两种形态。主方可以启动一个总线周期,而从方只能响应主方的请求。每次总线操作,只能有一个主方占用总线控制权,但同一时刻可以有一个或多个从方。为了解决多个主设备同时竞争总线控制权,必须具有总线仲裁部件,以某种方式选择其中一个主设备作为总线的下一次主方。对多个主设备提出的占用总线请求,一般采用优先级或公平策略进行仲裁。例如,在多处理器系统中对各CPU模块的总线请求采用公平的原则来处理,而对I/O模块的总线请求采用优先级策略。总线占用期:主方持续控制总线的时间按照总线仲裁电路的位置不同,仲裁方式分为集中式仲裁和分布式仲裁两类。总线仲裁39集中式仲裁

集中式仲裁中每个功能模块有两条线连到总线仲裁器:一条是送往仲裁器的总线请求信号线BR,一条是仲裁器送出的总线授权信号线BG。链式查询方式:A表示地址线,D表示数据线。BS线为1表示总线忙。总线授权信号BG串行地从一个I/O接口传送到下一个I/O接口。假如BG到达的接口无总线请求,则继续往下查询;假如BG到达的接口有总线请求,BG信号不再往下查询,该I/O接口就获得了总线的控制权。查询链中离总线仲裁器最近的设备具有最高的优先级,离总线仲裁器越远,优先级越低。40

链式查询方式的优点:逻辑上和物理实现上都很简单,只用很少几根线就能按一定优先次序实现总线仲裁,与设备数无关。易于扩充,增加设备时,只需“挂到”总线上即可。链式查询方式的缺点:对查询链的电路故障很敏感,如

温馨提示

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

评论

0/150

提交评论