指令寄存器课件.ppt

上传人(卖家):三亚风情 文档编号:3495465 上传时间:2022-09-07 格式:PPT 页数:130 大小:1.43MB
下载 相关 举报
指令寄存器课件.ppt_第1页
第1页 / 共130页
指令寄存器课件.ppt_第2页
第2页 / 共130页
指令寄存器课件.ppt_第3页
第3页 / 共130页
指令寄存器课件.ppt_第4页
第4页 / 共130页
指令寄存器课件.ppt_第5页
第5页 / 共130页
点击查看更多>>
资源描述

1、6.1.1 CPU的功能 CPUCPU有四个方面的功能:有四个方面的功能:1.1.指令控制:指令控制:程序的顺序控制。程序的顺序控制。2.2.操作控制:操作控制:CPUCPU管理并产生由内存取出的每条指令管理并产生由内存取出的每条指令 的操作信号,把各种操作信号送往相应的部件,控的操作信号,把各种操作信号送往相应的部件,控 制部件工作。制部件工作。3.3.时间控制:时间控制:对各种操作实施时间上的控制。对各种操作实施时间上的控制。4.4.数据加工:数据加工:对数据进行算术运算和逻辑运算。对数据进行算术运算和逻辑运算。6.1 CPU的功能和组成6.1.2 CPU的基本组成CPUCPU控制整个计算

2、机,内部有三大部分:控制整个计算机,内部有三大部分:寄存器部分、算术寄存器部分、算术/逻辑单元(逻辑单元(ALUALU)、控制单元)、控制单元1.寄存器部分 除处理器指令集结构中的寄存器外,还有程序除处理器指令集结构中的寄存器外,还有程序 员不能直接访问的一些寄存器。员不能直接访问的一些寄存器。CPUCPU取指令过程的两个重要寄存器:取指令过程的两个重要寄存器:程序计数器程序计数器:用来存放下一条要取的指令的地址。用来存放下一条要取的指令的地址。指令寄存器指令寄存器:用来存储计算机正在执行的指令。用来存储计算机正在执行的指令。用来访问内存、外设的两个寄存器:用来访问内存、外设的两个寄存器:地址

3、寄存器地址寄存器MARMAR 数据缓冲寄存器数据缓冲寄存器MDRMDR2.算术/逻辑单元 执行大部分的算术和逻辑运算。执行大部分的算术和逻辑运算。如:加、与等操作。如:加、与等操作。3.控制单元 计算机的指挥和控制中心,由它把计算机的运算器、计算机的指挥和控制中心,由它把计算机的运算器、存储器、存储器、I/OI/O设备等联系成一个有机的系统,并根据各部设备等联系成一个有机的系统,并根据各部件具体要求,适时地发出各种控制命令,控制计算机各件具体要求,适时地发出各种控制命令,控制计算机各部件自动、协调地进行工作。部件自动、协调地进行工作。功能:功能:根据事先编好并存放在存储器中的解题程序,根据事先

4、编好并存放在存储器中的解题程序,控制各部件有条不紊地、自动协调地进行工作。控制各部件有条不紊地、自动协调地进行工作。启停线路脉冲源 操作码 地址码指令译码器程序计数器运 算 器状态寄存器 时序控制信号形成部件 转移地址地址码控制总线 CB地址总线 AB数据总线 DB存储器I/OCLK指令IRPC+1reset数据操作数 地址控制器的基本组成 控制器的基本组成控制器的基本组成(1)(1)程序计数器(程序计数器(PCPC)指令地址寄存器,用来存放即将要执行的下一条指令地址寄存器,用来存放即将要执行的下一条 指令地址。具有加指令地址。具有加“1”1”和接收转移地址的功能。和接收转移地址的功能。(2)

5、(2)指令寄存器(指令寄存器(IRIR)用来存放当前正在执行的指令。用来存放当前正在执行的指令。(3)(3)指令译码器或操作码译码器指令译码器或操作码译码器 对对IRIR中的操作码进行分析解释,产生相应的控制信号。中的操作码进行分析解释,产生相应的控制信号。(4)(4)脉冲源及启停线路脉冲源及启停线路 脉冲源产生一定频率的脉冲信号作为整个脉冲源产生一定频率的脉冲信号作为整个 机器的时钟脉冲,是机器周期和工作脉冲的基机器的时钟脉冲,是机器周期和工作脉冲的基 准信号。准信号。启停线路控制时序信号的发生或停止,从而启停线路控制时序信号的发生或停止,从而 启动机器工作或使之停机。启动机器工作或使之停机

6、。(5)(5)时序控制信号形成部件时序控制信号形成部件 根据当前指令的需要,产生相应的时序控制根据当前指令的需要,产生相应的时序控制 信号,并根据被控功能部件的反馈信号调整时序信号,并根据被控功能部件的反馈信号调整时序 控制信号。控制信号。6.1.3 指令周期 1.指令周期 处理器取出并执行一条指令的时间。处理器取出并执行一条指令的时间。2.指令执行的基本步骤 包括包括读取,译码,执行读取,译码,执行三个阶段。三个阶段。读取指令读取指令 根据程序计数器根据程序计数器PCPC提供的内容,从存储器中提供的内容,从存储器中 取出指令。取出指令。译码译码 分析指令的操作码,确定处理的是哪一条指分析指令

7、的操作码,确定处理的是哪一条指 令以便选择正确的操作顺序去执行该指令。令以便选择正确的操作顺序去执行该指令。执行指令执行指令 根据指令功能,完成所规定的操作。指令不根据指令功能,完成所规定的操作。指令不 同,所执行的操作及顺序也不相同。同,所执行的操作及顺序也不相同。3.举例例例1 1:分析单总线结构的分析单总线结构的CPUCPU中,指令中,指令 ADD R0ADD R0,(R1)(R1)的指的指 令流程。设前一操作数地址为目的,后一操作数地令流程。设前一操作数地址为目的,后一操作数地 址为源。址为源。解:解:指令功能:指令功能:(R1)(R1)(R0)R0(R0)R0(R1)(R1)(R0)

8、R0(R0)R0指令流程如下:指令流程如下:(1)(PC)MAR(1)(PC)MAR,ReadRead(2)(PC)(2)(PC)1PC 1PC(3)MMDRIR(3)MMDRIR(4)(R(4)(R1 1)MAR)MAR,Read Read(5)MMDRY(5)MMDRY(6)(Y)(6)(Y)(R(R0 0)Z)Z(7)(Z)R(7)(Z)R0 01习题:习题:分析转移指令分析转移指令 JC DJC D 的指令流程。的指令流程。指令功能:指令功能:IF CIF C1 THEN(PC)1 THEN(PC)DPCDPC 解:解:指令流程如下:指令流程如下:(1)(PC)MAR(1)(PC)MA

9、R,Read Read ;送指令地址,读主存;送指令地址,读主存 (2)(PC)(2)(PC)1 PC 1 PC ;PCPC1PC1PC (3)MMDRIR (3)MMDRIR ;取指令到;取指令到IRIR (4)IF C (4)IF C1 THEN(PC)Y1 THEN(PC)Y ;送当前指令地址;送当前指令地址 (5)Y(5)YIR(DIR(D部分部分)Z )Z ;计算转移地址;计算转移地址 (6)(Z)PC (6)(Z)PC ;下条指令实现转移;下条指令实现转移例例2 2:分析双总线结构的分析双总线结构的CPUCPU中,指令中,指令 ADD ADD R0,(R1)(R1)的指令流程和控制

10、信号。的指令流程和控制信号。设设ALUALU的功能有:的功能有:F FA AB B(ADDADD),),F FA AB B(SUBSUB),),F FA A1 1(INCINC),),F FA A1 1(DECDEC),),F FA A可通过总线连接器可通过总线连接器G G将总线将总线B B的信息直接传到的信息直接传到F F总线。其总线。其控制信号为控制信号为GonGon。IDIDIRIRPCPCR0R0R1R1MARMARMDRMDRTEMPTEMPY YG GIRBPCBR0BR1BFMARMARBTEMPBFYADDSUBA主存主存ReadWriteR7R7R7BABUSDBUSINCD

11、ECBGonFTEMPFMDRFR7FR!FR0FPCFIRF FB BADD ADD R0,(R1)(R1)指令流程如下:指令流程如下:(1)(1)(PC)MAR(PC)MAR,Read Read ;PCBPCB,GonGon,FMARFMAR,ReadRead(2)(PC)(2)(PC)1PC 1PC ;INCINC(3)MMDRIR (3)MMDRIR ;MDRBMDRB,GonGon,FIRFIR(4)(R1)MAR(4)(R1)MAR,Read Read ;R1BR1B,GonGon,FMARFMAR,Read Read(5)MMDRY (5)MMDRY ;MDRBMDRB,GonG

12、on,FYFY (6)(Y)(6)(Y)(R0)R0 (R0)R0 ;R0BR0B,ADDADD,FR0FR0例例3 3:分析双总线结构的分析双总线结构的CPUCPU中,指令中,指令 ADD X(R1),(R2)+ADD X(R1),(R2)+的指令流程和控制信号。的指令流程和控制信号。设设ALUALU的功能有:的功能有:F FA AB B(ADDADD),),F FA AB B(SUBSUB),),F FA A1 1(INCINC),),F FA A1 1(DECDEC),),F FA A可通过总线连接器可通过总线连接器G G将总线将总线B B的信息直接传到的信息直接传到F F总线。其控总线

13、。其控制信号为制信号为GonGon。其中:其中:X X在本条指令的下一个存储单元在本条指令的下一个存储单元 源操作数有效地址源操作数有效地址:X+:X+(R1R1)目的操作数地址:(目的操作数地址:(R2R2),然后(),然后(R2R2)+1+1 R2R2指令流程指令流程控制信号流程控制信号流程操作功能操作功能(1)(PC)MAR(1)(PC)MAR,ReadRead,(PC)Y(PC)Y PCBPCB,GonGon,FMARFMAR,ReadRead,FYFY读指令操作码读指令操作码(2)(Y)(2)(Y)1PC 1PC INCINC,FPCFPCPCPC1PC1PC(3)(MDR)IR(3

14、)(MDR)IRMDRBMDRB,GonGon,FIRFIR(4)(PC)MAR(4)(PC)MAR,ReadRead,(PC)Y(PC)YPCBPCB,GonGon,FMARFMAR,ReadRead,FYFY(5)(Y)(5)(Y)1PC 1PC INCINC,FPCFPC读读X X,写入暂存器,写入暂存器Y Y(6)(MDR)Y(6)(MDR)YMDRBMDRB,GonGon,FYFY(7)(Y)+(R1)MAR(7)(Y)+(R1)MARR1BR1B,ADDADD,FMARFMAR,ReadRead计算源操作数变址计算源操作数变址值,读源操作数值,读源操作数(8)(8)空白空白等待读存

15、储器等待读存储器(9)(MDR)TEMP(9)(MDR)TEMPMDRBMDRB,GonGon,FTEMPFTEMP源操作数送临时寄源操作数送临时寄存器存器(10)(R2)MAR(10)(R2)MAR,RaadRaad,(R2)YR2)YR2BR2B,GonGon,FMARFMAR,ReadRead,FYFY读目的操作数,读目的操作数,R2R2自增送自增送Z Z(11)(Y)(11)(Y)1R21R2INCINC,FR2FR2(R2)+1R2(R2)+1R2(12)MDRY(12)MDRYMDRBMDRB,GonGon,FYFY目的操作数送目的操作数送Y Y(13)(Y)+(TEMP)MDR(

16、13)(Y)+(TEMP)MDR(MDR)MEM(MDR)MEM,WriteWriteTEMPB TEMPB,ADDADD,FMDR WriteFMDR Write两操作数相加,按两操作数相加,按现行地址写回结果现行地址写回结果(14)(14)空白空白空一个节拍,等待空一个节拍,等待稳定写入稳定写入6.1.4 控制器的时序系统 如何在时间上对各种微操作信号加以控制。如何在时间上对各种微操作信号加以控制。1 1指令周期与指令周期与机器周期机器周期 指令周期:指令周期:从取指令、分析指令到执行完一条指令从取指令、分析指令到执行完一条指令所需的全部时间。所需的全部时间。由于各种指令的操作功能不同,繁

17、简程度不同,因此由于各种指令的操作功能不同,繁简程度不同,因此各种指令的指令周期也不尽相同。各种指令的指令周期也不尽相同。机器周期(机器周期(CPUCPU周期):周期):指令周期中的某一工作阶段指令周期中的某一工作阶段所需的时间。所需的时间。在指令执行过程中,各机器周期相对独立。在指令执行过程中,各机器周期相对独立。一条指令的指令周期由若干个机器周期所组成,一条指令的指令周期由若干个机器周期所组成,每个机器周期完成一个基本操作。所以机器周期也称为每个机器周期完成一个基本操作。所以机器周期也称为基本周期基本周期。指令周期指令周期CPU周期周期CPU周期周期CPU周期周期2 2节拍节拍 节拍:节拍

18、:把一个机器周期等分成若干个时间区间,每把一个机器周期等分成若干个时间区间,每一时间区间称为一个节拍。一个节拍对应一个电位信号,一时间区间称为一个节拍。一个节拍对应一个电位信号,控制一个或几个微操作的执行。控制一个或几个微操作的执行。6.1.5 CPU的设计规范CPUCPU设计的两种方法:设计的两种方法:硬布线逻辑控制硬布线逻辑控制(hardwired controlhardwired control)微序列控制器微序列控制器(microsequencermicrosequencer)(微序列控制或微程序控制微序列控制或微程序控制)1设计CPU的步骤 确定它的用途确定它的用途 关键:使关键:使

19、CPUCPU的处理能力和它所执行的任务匹配的处理能力和它所执行的任务匹配 设计指令集结构设计指令集结构 设计状态图设计状态图(CPU(CPU就是一个复杂的有限状态机就是一个复杂的有限状态机)l 列出在每个状态中执行的微操作列出在每个状态中执行的微操作l 从一个状态转移到另外一个状态的条件从一个状态转移到另外一个状态的条件 设计必要的数据通路和控制逻辑,实现这个设计必要的数据通路和控制逻辑,实现这个 有限状态机,最终实现这个有限状态机,最终实现这个CPUCPU。数据通路:数据通路:信息传送的基本路径。信息传送的基本路径。CPUCPU内部的数据通路通常是指运算器与寄存器之间内部的数据通路通常是指运

20、算器与寄存器之间的信息传输通道。的信息传输通道。数据通路结构直接影响着数据通路结构直接影响着CPUCPU内各种信息的传送路内各种信息的传送路径。数据通路不同,指令执行过程的微操作序列的安排径。数据通路不同,指令执行过程的微操作序列的安排也不同,它将直接影响到微操作信号形成部件的设计。也不同,它将直接影响到微操作信号形成部件的设计。2CPU执行如下的操作序列 取指令周期:取指令周期:从存储器中取出一条指令,然后从存储器中取出一条指令,然后 转到译码周期。转到译码周期。译码周期:译码周期:对该指令进行译码,即确定取到的对该指令进行译码,即确定取到的 是哪一种指令,然后转移到这种指是哪一种指令,然后

21、转移到这种指 令对应的执行周期。令对应的执行周期。执行周期:执行周期:执行该指令,然后转移到取指令周执行该指令,然后转移到取指令周 期去取下一条指令。期去取下一条指令。3一般CPU状态图6.2.1 非常简单CPU的设计规范 164字节的存储空间,每个字节是8位。6 6位宽的地址:位宽的地址:A5.0 A5.0 存储器的存储器的8 8位值:位值:D7.0 D7.0 2一个程序员可以访问的寄存器AC(8位累加器)3指令集(4条指令)6.2 一个非常简单CPU的设计与实现指令指令指令码指令码操操 作作ADDADD0000AAAAAAAAAAAAACACACACMAAAAAAMAAAAAAANDAND

22、0101AAAAAAAAAAAAACACMAAAAAAACACMAAAAAAJMPJMP1010AAAAAAAAAAAAGOTO AAAAAAGOTO AAAAAAINCINC1111XXXXXXXXXXXXACACACAC1 14寄存器 一个一个6 6位的地址寄存器位的地址寄存器ARAR:它通过:它通过A5.0A5.0向存储向存储 器提供地址。器提供地址。一个一个6 6位的程序计数器位的程序计数器PCPC:它包含下一条将被执:它包含下一条将被执 行指令的地址。行指令的地址。一个一个8 8位的数据寄存器位的数据寄存器DRDR:它通过:它通过D5.0D5.0从存储从存储 器接收指令和数据。器接收

23、指令和数据。一个一个2 2位的指令寄存器位的指令寄存器IRIR:它用来存放从存储器中:它用来存放从存储器中 取回的指令的操作码部分。取回的指令的操作码部分。6.2.2 从存储器中取指令一、从存储器中取出指令的操作序列 1.1.将地址放在地址引脚将地址放在地址引脚A5.0A5.0上,把地址送给上,把地址送给 存储器。存储器。2.2.在给存储器足够的时间处理内部译码并将需在给存储器足够的时间处理内部译码并将需 要的指令取出来之后,向存储器发一个信号,要的指令取出来之后,向存储器发一个信号,使存储器将此指令输出到它的输出引脚,这些使存储器将此指令输出到它的输出引脚,这些 引脚与引脚与CPUCPU的的

24、D7.0D7.0相连接。相连接。CPUCPU从这些引脚从这些引脚 读入数据。读入数据。二、取指令周期的状态 FETCH1:ARPC FETCH2:DRM,PCPC1 FETCH3:IRDR7.6,ARDR5.0 实现实现PCPC加加1 1的两种方案的两种方案l 在取指令周期(易与实现)在取指令周期(易与实现)l 在执行周期在执行周期三、取指令周期的状态图6.2.3 指令译码 当当CPUCPU把一条指令从存储器中取出来之后,它把一条指令从存储器中取出来之后,它 必须判断所取的是哪种指令,从而可以调用正必须判断所取的是哪种指令,从而可以调用正 确的执行周期。确的执行周期。在状态图中,此过程表示为一

25、系列的从取指令在状态图中,此过程表示为一系列的从取指令 周期结束到各个执行周期之间的分支。周期结束到各个执行周期之间的分支。对于本对于本CPUCPU,有四条指令,因此有四个不同的,有四条指令,因此有四个不同的 执行周期。执行周期。取指令和译码周期的状态图取指令和译码周期的状态图 6.2.4 指令执行 6.2.4.1 ADD指令 CPUCPU必须完成两件事情:必须完成两件事情:从存储器中取出一个操作数从存储器中取出一个操作数 将这个操作数和累加器中的值相加,并把结将这个操作数和累加器中的值相加,并把结 果存回到累加器中。果存回到累加器中。ADD1:DRM ADD2:ACACDR 6.2.4.2

26、AND指令 AND1:DRM AND2:ACACDR6.2.4.3 JMP指令 JMP1:PCDR5.0 另外一种选择:另外一种选择:PCAR6.2.4.4 INC指令 INC1:ACAC+1 CPUCPU的状态图的状态图6.2.5 建立所需的数据通路 考察存在哪些数据传送从而设计考察存在哪些数据传送从而设计CPUCPU的内部数据通路。的内部数据通路。一、与CPU的每个状态相关联的操作 FETCH1:ARPC FETCH2:DRM,PCPC1 FETCH3:IRDR7.6,ARDR5.0 ADD1:DRM ADD2:ACACDR AND1:DRM AND2:ACACDR JMP1:PCDR5.

27、0 INC1:ACAC1 二、设计数据通路的两种不同方案1 1在所有需要传送数据的部件之间创建一条直接通路。在所有需要传送数据的部件之间创建一条直接通路。使用多路选择器或者缓冲器为那些有多个数据使用多路选择器或者缓冲器为那些有多个数据 源的寄存器从多个可能的输入中选择一个。源的寄存器从多个可能的输入中选择一个。随着随着CPUCPU复杂度的增加,这种方案将变得不现实。复杂度的增加,这种方案将变得不现实。2 2在在CPUCPU的内部创建一条总线。在各个部件之间使用总的内部创建一条总线。在各个部件之间使用总 线传递数据。线传递数据。三、设计数据通路第一步:第一步:把每个部件都连接到系统总线上把每个部

28、件都连接到系统总线上第二步:第二步:决定每个部件应该完成的功能决定每个部件应该完成的功能1.1.将操作重新分组将操作重新分组 分组的依据:分组的依据:他们所修改的寄存器。他们所修改的寄存器。AR:ARPC;ARDR5.0PC:PCPC1;PCDR5.0DR:DRMIR:IRDR7.6AC:ACACDR;ACACDR;ACAC12.对每一个操作进行分析从而决定每个部件应该完对每一个操作进行分析从而决定每个部件应该完 成的功能成的功能 (1)(1)ARAR,DRDR以及以及IRIR总是从其它一些部件中装入数据总是从其它一些部件中装入数据 (2)(2)PCPC和和ACAC能够从其它一些部件中装入数据

29、,但它们能够从其它一些部件中装入数据,但它们 还要能够自增他们的当前值。还要能够自增他们的当前值。创建一个单独的硬件用来使这两个寄存器的创建一个单独的硬件用来使这两个寄存器的 当前值加当前值加1 1,并且使结果能够重新装入寄存器;,并且使结果能够重新装入寄存器;把每个寄存器设计为一个计数器而且能够并把每个寄存器设计为一个计数器而且能够并 行的装载。行的装载。第三步:第三步:修改设计修改设计1.AR1.AR仅仅向存储器提供数据,除此之外不跟任何部件仅仅向存储器提供数据,除此之外不跟任何部件 传送数据。因此,没有必要将它的输出连接到内部总传送数据。因此,没有必要将它的输出连接到内部总 线上。线上。

30、2.IR2.IR不通过内部总线向任何其他部件提供数据,所以不通过内部总线向任何其他部件提供数据,所以 IR IR 的输出到内部总线的连接可以删除。的输出到内部总线的连接可以删除。3.AC3.AC不向其他任何单元提供数据;因此与内部总线的不向其他任何单元提供数据;因此与内部总线的 连接也可以删除。连接也可以删除。4.4.总线是总线是8 8位宽,但是并非所有被传送的数据都是位宽,但是并非所有被传送的数据都是8 8位宽;位宽;有一些是有一些是6 6位宽,有一个是位宽,有一个是2 2位宽。位宽。5.5.ACAC必须能够装载必须能够装载ACAC和和DRDR的和,以及的和,以及ACAC和和DRDR的逻的逻

31、 辑与的结果。辑与的结果。CPUCPU必须包含一个能够产生这些结必须包含一个能够产生这些结 果的果的ALUALU。第四步:第四步:修改后的修改后的CPUCPU内部组织结构内部组织结构 (图中的控制信号将会由控制单元来产生)(图中的控制信号将会由控制单元来产生)第五步:第五步:必须保证在同一个状态将要发生的传送能够必须保证在同一个状态将要发生的传送能够 事实上同时发生事实上同时发生 FETCH2:DRM,PCPC1 FETCH3:IRDR7.6,ARDR5.0A R:A R P C;ARDR5.0PC:PCPC1;PCDR5.0DR:DRMIR:IRDR7.6AC:ACACDRACACDRACA

32、C16.2.6 非常简单ALU的设计 1ALU完成两个功能 将两个输入相加将两个输入相加 将两个输入相与将两个输入相与 2设计方法 创建两个单独的硬件来实现每个功能创建两个单独的硬件来实现每个功能 加法:加法:用标准的用标准的8 8位并行加法器位并行加法器 逻辑与:逻辑与:用用8 8个个2 2位与门位与门 使用一个多路选择器从两个结果中选择一使用一个多路选择器从两个结果中选择一 个输出个输出 3电路图ALU6.2.7 用硬布线逻辑设计控制单元 控制单元:控制单元:产生控制信号,从而使所有的操作能产生控制信号,从而使所有的操作能 以正确的顺序执行。以正确的顺序执行。设计控制单元有两种主要的方法:

33、设计控制单元有两种主要的方法:硬布线控制:硬布线控制:使用时序逻辑和组合逻辑产生控制信号。使用时序逻辑和组合逻辑产生控制信号。微程序控制微程序控制(或微序列控制):使用存储器查表方式(或微序列控制):使用存储器查表方式 来输出控制信号。来输出控制信号。本章重点:硬布线控制方法 简单的控制单元包括三个部分简单的控制单元包括三个部分l一个计数器:一个计数器:保存当前状态保存当前状态l一个译码器:一个译码器:接受当前状态并为每个状态生成单接受当前状态并为每个状态生成单 独的信号独的信号l一些组合逻辑:一些组合逻辑:接受单独的状态信号为每一部件接受单独的状态信号为每一部件 生成控制信号,以及计数器的生

34、成控制信号,以及计数器的 控制信号。控制信号。一般硬布线控制单元一般硬布线控制单元 对于本对于本CPUCPU,总共有,总共有9 9个状态。因此,需要一个个状态。因此,需要一个4 4位位 的计数器和一个的计数器和一个4-164-16位的译码器。译码器的输出位位的译码器。译码器的输出位 中有中有7 7个用不到。个用不到。一、将状态分配到译码器的各个输出1.1.将将FETCH1FETCH1规定为计数器的规定为计数器的0 0值,并使用计数器的值,并使用计数器的 CLRCLR输入来达到这个状态。输入来达到这个状态。2.2.将顺序的状态指派为计数器的连续值,并且使用将顺序的状态指派为计数器的连续值,并且使

35、用 计数器的计数器的INCINC输入来遍历所有的这些状态输入来遍历所有的这些状态。FETCH2FETCH2:计数器值:计数器值1 1 FETCH3 FETCH3:计数器值:计数器值2 2 同样:将同样:将ADD1ADD1和和ADD2ADD2指派为连续的计数值指派为连续的计数值 对对AND1AND1和和AND2AND2也是一样也是一样3.3.根据指令操作码和执行周期的最大状态数量来指派根据指令操作码和执行周期的最大状态数量来指派 执行周期的第一个状态。用操作码产生计数器的数执行周期的第一个状态。用操作码产生计数器的数 据输入,并用计数器的据输入,并用计数器的LDLD输入使之达到合适的执输入使之达

36、到合适的执 行周期。行周期。实质:实现从操作码到执行周期的一种映射。实质:实现从操作码到执行周期的一种映射。(1)(1)为了装入正确执行周期的地址,控制单元必须完为了装入正确执行周期的地址,控制单元必须完 成两件事情。成两件事情。必须能够将正确的执行周期的第一个状态必须能够将正确的执行周期的第一个状态 的地址放到计数器的输入上的地址放到计数器的输入上 必须发出计数器的必须发出计数器的LDLD信号信号 (2)(2)如何构造映射函数?如何构造映射函数?计数器的输入是计数器的输入是IRIR值的一个函数。值的一个函数。目标:目标:使这个函数越简单越好。使这个函数越简单越好。一个可能的映射:一个可能的映

37、射:1010IRIR1.01.0 如果如果IR=00IR=00,那么计数器的输入就是,那么计数器的输入就是10001000;当当IR=01IR=01,则输入为,则输入为10011001,以此类推。以此类推。非常简单非常简单CPUCPU的指令,第一状态,以及操作码的指令,第一状态,以及操作码指令指令第一状态第一状态IRADDADD100ANDAND101JMPJMP110INCINC111 映射函数的计数值映射函数的计数值IR1.0计数值计数值状态状态001000(8)ADD1011001(9)AND1101010(10)JMP1111011(11)INC1(4)(4)存在一些问题存在一些问题

38、由于状态由于状态ADD1ADD1的计数值是的计数值是8 8,而,而AND1AND1的计数值的计数值 是是9 9,那我们应该给,那我们应该给ADD2ADD2安排一个什么值?安排一个什么值?如何从如何从ADD1ADD1去访问去访问ADD2ADD2呢?呢?解决方法:解决方法:使执行周期的第一个状态的计数值之间使执行周期的第一个状态的计数值之间 的间隔至少为的间隔至少为2 2。通过映射通过映射1 1IRIR1.001.00可以达到这个目的。可以达到这个目的。使得使得ADD1ADD1,AND1AND1,JMP1JMP1,INC1INC1的的 计数值分别是计数值分别是8 8,1010,1212,1414

39、将将ADD2ADD2指派为计数值指派为计数值9 9 AND2 AND2的计数值指派为的计数值指派为1111二、产生计数器的控制信号 对于计数器,我们必须产生对于计数器,我们必须产生INCINC,CLRCLR和和LDLD信号。信号。当控制单元遍历顺序状态,从当控制单元遍历顺序状态,从FETCH1FETCH1,FETCH2FETCH2,ADD1ADD1到到AND1AND1时,时,INCINC信号有效。信号有效。CLR CLR用来从每一个执行周期的末尾返回到取指令用来从每一个执行周期的末尾返回到取指令 周期周期(发生在发生在ADD2ADD2,AND2AND2,JMP1JMP1和和INC1INC1状态

40、状态)。LD LD信号在每个取指令周期的末尾信号在每个取指令周期的末尾FETCH3FETCH3状态中状态中 发出。发出。三、控制单元部分电路图四、组合形成控制AR,PC,DR,IR,M,ALU以及缓冲 器的控制信号 首先考虑首先考虑ARAR寄存器,它是在状态寄存器,它是在状态FETCH1FETCH1(ARPCARPC)和和FETCH3FETCH3(ARDR5.0ARDR5.0期间装载的。通过期间装载的。通过将这两将这两 个状态信号进行逻辑个状态信号进行逻辑OROR操作操作,CPUCPU就为就为ARAR产生了产生了LDLD 信号。信号。为为PCPC,DRDR,ACAC以及以及IRIR创建如下的控

41、制信号:创建如下的控制信号:PCLOAD=JMP1PCLOAD=JMP1 PCINC=FETCH2 PCINC=FETCH2FETCH1:ARPCFETCH2:DRM,PCPC1FETCH3:IRDR7.6,A RDR5.0ADD1:DRMADD2:ACACDRAND1:DRMAND2:ACACDRJMP1:PCDR5.0 INC1:ACAC1DRLOAD=FETCH2 ADD1 AND1DRLOAD=FETCH2 ADD1 AND1ACLOAD=ADD2 AND2ACLOAD=ADD2 AND2ACINC=INC1ACINC=INC1IRLOAD=FETCH3IRLOAD=FETCH3 AL

42、UALU的控制输入的控制输入ALUSELALUSEL 把把ALUSELALUSEL设置为设置为AND2AND2,就能保证当,就能保证当CPUCPU执行执行ADDADD或或ANDAND指令时,有正确的结果从指令时,有正确的结果从ALUALU流向流向ACAC。l 当当ALUSELALUSEL0 0时,时,ALUALU输出的是两个输入的算术和;输出的是两个输入的算术和;l 当当ALUSELALUSEL1 1时,那么输出就是输入的逻辑与。时,那么输出就是输入的逻辑与。产生缓冲器的有效信号产生缓冲器的有效信号 例如:例如:DRDR寄存器寄存器 FETCH3FETCH3(IRDR7.6IRDR7.6,AR

43、DR5.0ARDR5.0)ADD2ADD2(ACAC+DRACAC+DR)AND2AND2(ACACDRACACDR)JMP1JMP1(PCDR5.0PCDR5.0)将这些状态值进行逻辑或就得到将这些状态值进行逻辑或就得到DRBUSDRBUS信号信号 这个过程也可以用于产生其它缓冲器的控制信号:这个过程也可以用于产生其它缓冲器的控制信号:MEMBUS=FETCH2 ADD1 AND1MEMBUS=FETCH2 ADD1 AND1 PCBUS=FETCH1 PCBUS=FETCH1 产生一个产生一个READREAD信号信号 (信号从信号从CPUCPU输出,要求存储器输出数据输出,要求存储器输出数

44、据)READ=FETCH2 ADD1 AND1READ=FETCH2 ADD1 AND1五、控制单元中用来产生这些控制信号的部分电路图6.2.8 设计验证 对每条指令的取指令、译码以及执行周期进行跟踪。对每条指令的取指令、译码以及执行周期进行跟踪。1.考虑如下这段代码,它每条指令仅仅包含了一次。0:0:ADD 4ADD 41:AND 51:AND 52:INC2:INC3:JMP 03:JMP 04:27H4:27H5:39H5:39H2.CPU遵循状态图并以合适的状态顺序取出、译码和 执行每条指令:ADD4:FETCH1FETCH2FETCH3ADD1ADD2ADD4:FETCH1FETCH

45、2FETCH3ADD1ADD2 AND5:FETCH1FETCH2FETCH3AND1AND2 AND5:FETCH1FETCH2FETCH3AND1AND2 INC:FETCH1FETCH2FETCH3INC1 INC:FETCH1FETCH2FETCH3INC1 JMP0:FETCH1FETCH2FETCH3JMP1 JMP0:FETCH1FETCH2FETCH3JMP13.对这段程序的一次循环的跟踪情况 (所有寄存器的初始值都是(所有寄存器的初始值都是0 0)指令指令状态状态有效信号有效信号所执行的操作所执行的操作下 一 个 状下 一 个 状态态ADD 4FETCH1PCBUS,ARLO

46、ADAR0FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR04H,PC1FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR00,AR04HADD1ADD1READ,MEMBUSDRLOADDR27HADD2ADD2DRBUS,ACLOADAC0+27HFETCH1AND 5FETCH1PCBUS,ARLOADAR1FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR45H,PC2FETCH3FETCH3DRBUS,ARLOADIRLOADIR01,AR05HAND1AND1READ,MEMBUSDRLOADDR39HAND2A

47、ND2DRBUS,ALUSEL,ACLOADAC27H39H=21HFETCH1INCFETCH1PCBUS,ARLOADAR2FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDRC0H,PC3FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR11,AR00HINC1INC1ACINCAC21H+1=22HFETCH1J M P 0FETCH1PCBUS,ARLOADAR3FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR80H,PC4FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR10,AR00HJMP1JM

48、P1DRBUS,PCLOADPC0FETCH16.3.1 相对简单CPU的描述 164K字节的存储器,每个存储单元8位宽。地址引脚:地址引脚:A15.0A15.0 数据引脚:数据引脚:D7.0 D7.0(双向)(双向)2CPU的三个内部寄存器 8 8位累加器位累加器ACAC:接受任何算术或者逻辑运算的接受任何算术或者逻辑运算的 结果,并为使用两个操作数的算术或者逻辑结果,并为使用两个操作数的算术或者逻辑 操作指令提供一个操作数。操作指令提供一个操作数。6.3 相对简单CPU的设计和实现 寄存器寄存器R R:一个一个8 8位通用寄存器。为所有的双操作位通用寄存器。为所有的双操作 数算术和逻辑运算

49、指令提供第二个操作数。它也数算术和逻辑运算指令提供第二个操作数。它也 可以用来暂时存放累加器马上要用到的数据。可以用来暂时存放累加器马上要用到的数据。(减少存储器访问次数提高(减少存储器访问次数提高CPUCPU的性能)的性能)零标志位零标志位Z Z:每次执行算术运算或者逻辑运算的每次执行算术运算或者逻辑运算的 时候,它都将被置位。时候,它都将被置位。3指令集结构 InstructionInstruction InstructionInstruction CodeCode OperationOperation NOP 0000 0000 No operation LDAC 0000 0001 A

50、CM STAC 0000 0010 MAC MVAC 0000 0011 RAC MOVR 0000 0100 ACR JUMP 0000 0101 GOTO JMPZ 0000 0110 IF(Z1)THEN GOTO JPNZ 0000 0111 IF(Z0)THEN GOTO ADD 0000 1000 ACACR,If(ACR0)Then Z1 Else Z0 SUB 0000 1001 ACACR,If(ACR0)Then Z1 Else Z0 INAC 0000 1010 ACAC1,If(AC10)Then Z1 Else Z0 CLAC 0000 1011 AC0,Z1 AND

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(指令寄存器课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|