1、1,2,第3节 CPU模型机的组成及其数据通路,3.3.1 基本组成,模型机数据通路结构图,3,3.3.1 基本组成,1寄存器,(1)可编程寄存器,通用寄存器有4个:R0、R1、R2、R3;堆栈指针为SP;程序状态字寄存器为PSW;程序计数器为PC。,(2)暂存器,暂存器有3个:C、D、Z 。,(3)指令寄存器IR,指令寄存器IR用来存放当前正在执行的一条指令。,(4)与主存接口的寄存器MAR、MDR,CPU对主存的控制信号有两个:读信号RD控制对主存的读操作;写信号WR控制对主存的写操作。,4,2运算部件,ALU的输入A来自暂存器D,输入B来自ALU总线,运算结果输出到Z 。控制ALU运算的控制信号有:ADD、SUB、AND、OR、XOR、COM、NEG、A+1、A-1、B+1、B-1,它们分别控制ALU完成加、减、与、或、异或、求负、求反等运算。,3总线与数据通路结构,(1)ALU 总线,CPU内部采用单总线结构,即设置一组ALU总线(也称为CPU内总线),由16根双向数据传送线组成,ALU和所有寄存器通过这组公共总线连接起来。,(2)系统总线,模型机的CPU、存储器及I/O设备分。
2、别挂接在一组系统总线上。系统总线包括:16根地址总线、16根数据总线,以及控制总线。为简单起见,模型机采用同步控制方式。,5,4控制器及微命令的基本形式,(1)微命令的基本形式,在模型机中,微命令有两种形式。, 电位型微命令, 各寄存器输出到ALU总线的控制信号有:R0OUT、R1OUT、PCOUT、SPOUT、MDROUT等。 ALU运算控制信号有:ADD、SUB、AND、OR、XOR等。 暂存器D的左移/右移控制信号有:SAL、SAR。 程序计数器PC的计数控制信号有:PC+1。 MAR和MDR输出到系统总线的控制信号有:EMAR、EMDR。 寄存器置入控制信号有:SMDR、SPSW。 主存的读/写信号有:RD、WR。, 脉冲型微命令,脉冲型微命令有:CPR0、CPR1、CPPC、CPIR、CPSP、CPMAR、CPMDR等。,6,(2)控制器,传统控制器的主要部件包括:指令寄存器IR、指令译码器、程序计数器PC、状态字寄存器PSW、时序系统和微操作信号发生器。,控制器是整机的指挥中心,其基本功能就是执行指令,即根据指令产生控制信号序列以控制相应部件分步完成指定的操作。,7,3.3。
3、.2 数据传送,1寄存器之间的数据传送,在模型机中,寄存器之间可直接通过ALU总线传送数据,具体传送由输出门和打入脉冲控制。,例如 :把寄存器R1的内容传送到寄存器R3,即实现传送操作R1R3所需控制信号为R1OUT、CPR3,8,2主存数据传送到CPU,主存与CPU之间通过系统总线传送数据。, PCMAR ;PC中的指令地址送存储器地址寄存器 MMDRIR ;从存储器中读指令到IR,实现PCMAR的控制信号:PCOUT、CPMAR。,实现读操作MMDR的控制信号:EMAR、RD、SMDR;实现MDRIR的控制信号:MDROUT、CPIR。,例如:要从存储器中取指令到指令寄存器IR,通过以下操作序列即可实现:,9,3CPU数据传送到主存, R1MAR ;地址送MAR R2MDR ;数据送MDR MDRM ;数据写入主存,例如:在R2中存放需写入主存的数据,存储单元地址在R1中,则写一个数据到存储器可通过以下操作序列实现:,实现R1MAR的控制信号:R1OUT、CPMAR。实现R2MDR的控制信号为R2OUT、CPMDR。实现写操作MDRM的控制信号为EMAR、EMDR、WR,10,4执。
4、行算术或逻辑操作, R1D ;把R1的内容先送到寄存器D D+ R2Z ;R2内容送到ALU的B端与D内容通过ALU相加,结果送Z ZR3 ;将存放在Z中的相加结果送入R3中,例如:完成“把寄存器R1和R2的内容相加,结果送到R3”这个功能,需要分成3步执行:,实现R1D的控制信号:R1OUT、CPD。实现D + R2MDR的控制信号:R2OUT、ADD、CPZ。实现ZR3的控制信号:ZOUT、CPR3。,11,第四节 组合逻辑控制器原理,组合逻辑控制器是指产生控制信号(即微命令)的部件,是用组合逻辑线路来实现。在模型机中有几十个微命令,则每个微命令都需要一组逻辑门电路,根据相应的逻辑条件(如指令的操作码、寻址方式、时序信号等)产生该微命令。,本节先介绍模型机的指令系统,然后假设模型机采用的是组合逻辑控制器,讨论其时序系统、指令执行流程及微命令的产生与综合。,12,3.4.1 模型机的指令系统,1指令格式,(1)双操作数指令:其格式如下图所示,第1215位表示操作码,第611位为源操作数地址段,第05位为目的操作数地址段,在每个地址段字段中又分为两部分,其中3位表明寻址方式类型,另外3。
5、位给出所指定的寄存器编号。,13,(1)双操作数指令格式,可编程寄存器有7个,编号如下(留有一种编码未用,可扩展): 通用寄存器R0R3 000011 堆栈指针SP 100 程序状态字PSW 101 程序计数器PC 111,14,(2)单操作数指令,第05位为地址字段,第611位空闲不用,也可供扩展操作码用。,15,(3)转移指令,第1215位为操作码,第611位给出转移地址字段(也分为寻址方式与寄存器号两部分)。第05位则为转移条件字段。其中,第03位中有一位为1,表明转移条件进位C、溢出V、结果为零Z、结果为负N。第5位表明转移方式,若为0,表示相关标志位为0转移;若为1,表示相关标志位为1转移。若第05位全为0,表示无条件转移。,16,2寻址方式,模型机的编址为按字编址,字长16位,即主存每个单元16位。采用简单变字长指令格式,指令长度可为16位、32位(指令中含立即数或一个操作数地址)或48位(含2个操作数地址),操作数字长16位。模型机寻址方式 如下表:,17,3操作类型,操作码共4位,现设置14种指令,余下两种操作码组合可供扩展。,(1)传送指令,MOV传送,操作码0000。
6、。,(2)双操作数算术逻辑指令,ADD加,操作码0001(带进位)。SUB减,操作码0010(带进位)。AND逻辑与,操作码0011。OR 逻辑或,操作码0100。EOR逻辑异或,操作码0101。,(3)单操作数算术逻辑指令,COM求反,操作码0110。NEG求补,操作码0111。INC加1,操作码1000。DEC减1,操作码1001。SL 左移,操作码1010。SR 右移,操作码1011。,18,(4)程序控制类指令, 转移指令JMP,操作码1100。,如上表所示,JMP指令第30位选择一位为1,表明以PSW中的某一特征作为转移条件。因此,JMP指令第30位的含义与PSW第30位含义分别相对应。例如PSW第0位是进位位C,而转移指令第0位若为1,则表明以进位状态为转移条件。JMP指令第5位(IR5)决定转移条件为0转,还是为1转。若JMP指令第50位全为0,则表示无条件转移。,19, 返回指令RST,操作码1100。,RST指令与JMP指令的操作码相同,可视为一条指令。RST指令只能采用自增型寄存器间址表明转移地址,并指定寄存器为SP,即寻址方式为(SP)+。它从堆栈中取出返回地址,。
7、然后修改堆栈指针SP+1。实际上,“JMP(SP)+”指令就是一条RST指令。, 转子指令JSR,操作码1101。,执行JSR指令时,先将返回地址压栈保存,然后按寻址方式找到转移地址(即子程序入口地址),将它送入PC中。,20,3.4.2 模型机的时序系统,组合逻辑控制器依靠不同的时间标志,使CPU分步工作。模型机采用前述的三级时序系统,即将时序信号分为工作周期、节拍(时钟周期)和工作脉冲。,1工作周期划分,(1)取指周期FT,在取指周期FT中完成取指所需的操作,(2)源周期ST,如果需要从主存中读取源操作数,则进入ST。,(3)目的周期DT,如果需要从主存中读取目的地址或目的操作,则进入DT。,(4)执行周期ET,在取得操作数后,则进入ET,在ET中将依据IR中操作码执行相应操作,如传送、算术运算、逻辑运算、获得转移地址等,(5)中断响应周期IT,(6)DMA传送周期DMAT,21,(5)中断响应周期IT,(6)DMA传送周期DMAT,中断方式:由于某些异常情况或特殊请求,引起CPU暂停执行当前程序,转去执行中断处理子程序,以处理这些情况或请求,等处理完后又返回原程序断点继续执行,这。
8、一过程就称为中断。,CPU在响应中断请求之后,进入中断响应周期IT。在IT中将直接依靠硬件进行关中断、保存断点、转处理程序入口等操作。IT结束后,进入取指周期FT,开始执行中断处理程序。,DMA(Direct Memory Access)即直接访存方式:其基本思想是在主存储器和I/O设备之间建立直接的数据传送通路,由专门的DMA控制器控制主存和I/O设备间的数据传送,在传送时不需CPU干预。由于传送过程完全由硬件实现,所花费的时间短,因此能满足高速数据传送的需要。,CPU响应DMA请求之后,进入DMAT。在DMAT中,CPU交出系统总线的控制权,即MAR、MDR与系统总线脱钩(呈高阻态)。改由DMA控制器控制系统总线,实现主存与外围设备间的数据直接传送,因此对CPU来说,DMAT是一个空操作周期。,22,FT,ST,DT,IT,ET,DMAT,DMA请求?,中断?,Y,Y,N,N,CPU控制流程,例. 双操作数指令的两个操作数均在主存中,工作周期变化为:,FTSTDTET(FT),例. 单操作数指令的操作数在主存中,工作周期变化为:,FTDTET(FT),例. 双操作数指令的操作数均在。
9、CPU寄存器中,工作周期变化为:,FTET(FT),左图描述了指令执行时工作周期状态变化流程。,23,2节拍(时钟周期)T,每个工作周期的操作一般需要分成若干步完成,为此将工作周期划分成若干节拍。,在模型机中,为了简化时序控制,将CPU内部操作与访问主存的操作统一考虑。节拍宽度为最长微操作所需的时间,即访问主存操作所需的时间。,3工作脉冲P,3工作脉冲,在节拍中执行的有些操作需要同步定时脉冲,如将稳定的运算结果打入寄存器、周期状态切换等。为此,模型机在每个节拍的末尾发一个工作脉冲P,作为各种同步脉冲的来源,如左图。,工作脉冲P的前沿:作为打入寄存器的定时信号,它标志着一次数据通路操作的完成。P的后沿:作为节拍、工作周期切换的定时信号,在此刻对节拍计数器T计数、打入新的工作周期状态。,24,3.4.3 指令流程,分析指令流程是为了在寄存器这一层次分析指令的读取与执行过程,也就是讨论CPU的工作机制。,1取指周期FT,(1)进入FT的条件,初始化时置入FT,,程序正常运行时同步打入FT。,1,CPFT,取指周期状态触发器,产生控制信号1FT的逻辑条件如下:,1FT= ET(1IT1DMAT)+ IT + DMAT(1IT1DMAT),25,(2)取指流程,PCMAR,MMDRIRPC+1PC,FT0,FT1,(3)微操作时间表,26,2MOV指令,1)取指令周期和取源操作数周期流程图,FT,ST0,ST1,ST2,ST3,ST4,R,(R),-(R),I/(R)+,DI,X(R),MOVE指令,27,2)取目的地址和执行周期流程图,DT0,DT1,DT2,DT3,ET0,ET1,R,(R),-(R),I/(R)+,DI,X(R),28,3双操作数指令,双操作数指令共有5条:加ADD、减SUB、与AND、或OR、异或EOR,其指令流程图:,。
《计算机组成原理与汇编语言程序设计第3章2》由会员飞***分享,可在线阅读,更多相关《计算机组成原理与汇编语言程序设计第3章2》请在金锄头文库上搜索。