




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第五章 CPU设计,5.1 引言 5.2 一台模型机的设计 5.3 微程序设计,2,5.1 引言,CPU通常包括三个主要部分: 寄存器 算术逻辑运算单元(ALU) 控制单元 所有这些部分协同工作,完成CPU指令集中每条指令的取指、译码,以及产生执行阶段所必须的微操作序列。,3,5.1.1 寄存器,通常由带置位和清零功能的D触发器和D锁存器构成 触发器由边沿触发 锁存器由电平触发 CPU寄存器设置通常分两类: 一类用于处理 一类用于控制,4,1、用于处理的寄存器,程序能直接访问的寄存器,如通用寄存器 可编程访问、具有多种功能。 自身逻辑设计简单,只有接收、发送和锁存功能。 通过加法器数据通路
2、上其它部件的配合,实现多种功能。 如,用做地址指针、基址或变址寄存器、间接指示器(寄存器间接寻址)、计数器、数据接收寄存器等。,5,程序不可访问的寄存器,如暂存器。 CPU设置了一些临时存放数据的寄存器,称为暂存器。 对用户来说是透明的,程序不能直接访问。,6,2、用于控制的寄存器,指令寄存器IR 用来存放现行指令。 如果指令的执行是串行的(即一条指令结束,下条指令才能执行),在执行过程中,指令寄存器的内容不发生变化,直至本条指令结束,以确保实现指令的全部功能。,7,程序计数器PC (Program Counter) 也称指令计数器(Instruction Counter)或指令指针(Inst
3、ruction Pointer)。 指示程序进程: 开始执行时,PC装有程序起始地址; 顺序执行时,每读取一条指令,PC加一增量,形成下一条指令地址; 转移时,转移指令修改PC,指向转移地址。,8,程序状态字PSW (Program Status Word) 用来存放两类信息: 一类表征运行状态:N(负数),Z(零),V(溢出),C(进位); 另一类是控制信息:IF(中断允许位),TF(跟踪标志),IOPL(I/O优先级)等。,9,3、用于与主存接口的寄存器,对用户透明 地址寄存器:MAR(单向) 取指:PC内容MAR 存取操作数:地址计算结果MAR 数据缓冲寄存器:MBR(双向),10,5.
4、1.2 算术逻辑运算单元,第二章已述,不再重复。,11,5.1.3 控制单元,控制整个计算机: 从存储器中取指令,提供存储器需要的地址和控制信号,并对指令译码,且控制整个执行过程。 执行一些内部操作,并提出必要的地址、数据和控制信号给存储器和I/O设备来执行指令。,12,具体实现常采用两种方式: 一种是采用硬连线逻辑控制(hard wire control),或称组合逻辑设计; 另一种是微序列控制器(micro sequencing),或称微程序控制器。 以一台模型机为例,分别用这两种方法进行设计。,13,5.2 一台模型机的设计,组合逻辑控制器设计步骤: 第一步:拟定指令系统(确定逻辑设计依
5、据); 第二步:确定总体结构(进行空间安排),包括:设置哪些部件,确定数据通路; 第三步:拟定时序系统(进行时间安排);,14,第四步:根据指令系统及时序,拟定指令流程,即将一条指令的执行步骤按时序用流程图形式表示出来; 第五步:根据指令流程和机器结构编制操作时间表,即将指令流程中所规定的具体操作,具体地落实到由哪个部件完成,在什么时间完成;,15,第六步:根据操作时间表进行微操作组合与化简,即将产生同一个微操作(打开或关闭某个门的操作)的条件用“或”连接成原始表达式,并进行逻辑化简,以获得最简的逻辑表达式; 第七步:布硬连线逻辑图。,16,5.2.1 模型机指令系统设计,1、模型机的指令集
6、传送类:MOV(传送) 算术运算类:ADD(加)、SUB(减)、NEG(求补)、INC(加1)、DEC(减1) 逻辑运算类:AND(逻辑乘)、OR(逻辑或)、NOT(取反)、EOR(异或),17,移位类:SL(左移)、SR(右移) 程序控制类:BR(条件转移)、JMP(无条件转)、RST(返回)、JSR(转子) 对I/O设备寻址采用存储器映射I/O方式,I/O操作由MOV指令完成。,18,2、指令类型分类 传送类指令:MOV 双操作数指令:ADD,SUB,AND,OR,EOR 单操作数指令:NOT,NEG,INC,DEC,SL,SR 转移类指令:BR,JMP,RST 转子指令:JSR,19,3
7、、指令格式设计 从软件的观点来看,指令、操作码和地址应该是有规律的结构,这样,指令格式可以达到最少。 指令采用定长指令格式,不采用扩展操作码。 操作码与地址位数固定,位置也固定。,20,(1) 模型机指令格式设计环境 指令字长:16位 可编程序寄存器7个:R0R3,SP,PSW,PC。 寻址方式9种: 与通用寄存器GR有关的寻址方式6种:寄存器寻址、寄存器间接寻址、自减型寄存器间址、自增型寄存器间址、自增型双间址、变址寻址。 与PC有关的寻址方式3种:立即寻址、直接寻址、相对寻址。 指令16条,分为5类。,21,(2) 指令格式设计考虑 为减少指令长度,简化指令格式设计,特做如下安排: 为减少
8、指令长度,将立即数、直接寻址中的全部操作数地址,以及偏移地址放在紧跟指令的下一个单元中,指令中不做安排。,22,设寄存器R(Register)包含PC和GR,相对于PC和相对于GR中的: 立即寻址与自增型寄存器间址 直接寻址与自增型双间址 相对寻址与变址寻址 操作过程一致,将其合并为立即/自增型,直接/双间址,相对/变址寻址方式。,23,模型机中,为简化指令集设置,不设比较测试指令,由减法指令取代,并将结果置条件码N、Z、V、C。 转移指令中的条件码为N、Z、V、C,与PSW的N、Z、V、C对应。,24,条件码只设N、Z、V、C基本模式,且当N、Z、V、C均0时表示转移与条件无关,定为无条件转
9、移。其中有一位为1,表示相关标志为1转移. 若寻址方式为自增型寄存器间址,且寄存器为SP,执行的是弹出(POP)操作,即返回指令。于是,BR、JMP和RST指令可共用一个操作码。,25,(3) 模型机指令格式 MOV、双操作数指令格式:,26,单操作数指令格式:,27,转移类指令格式:,28,转子类指令格式:,29,(4) 寻址方式 寄存器寻址:操作数在指定寄存器中,寻址方式编码:000,汇编符号:R 可编程寄存器 编码 通用寄存器R0R3 000011 堆栈指针SP 100 程序状态字PSW 101 程序计数器PC 111,30,寄存器间址:操作数地址在指定寄存器中,可指定寄存器:R0R3,
10、SP,PC。寻址方式编码:001,汇编符号:(R) 自减型寄存器间址:指定寄存器内容减1后作为操作数地址,可指定寄存器:R0R3,SP。寻址方式编码:010,汇编符号:(R) 若指定SP,执行PUSH指令操作。,31,立即/自增型寄存器间址:指定寄存器内容作为操作数地址,操作后寄存器的内容加1,可指定的寄存器同。寻址方式编码:011,汇编符号:I/(R)+ 若指定PC,即立即寻址。立即数存放在紧跟指令的单元中,取指时PC+1,即指向存放立即数的单元,取出立即数后PC+1,指向下一条指令。,32,若指定R0R3,即自增型寄存器间址,适于作数据块传送。编程时指定R0R3中的两个作为指针。 若指定S
11、P,即堆栈操作POP(弹出)的寻址方式。取出栈顶单元数据后SP+1,指向新的栈顶单元。,33,直接寻址/自增型双间址:指定寄存器内容作为间址单元的地址,操作后寄存器内容加1,可指定寄存器同。寻址方式编码:100,汇编符号:D/(R)+ 若指定PC,即直接寻址方式,操作数地址存放在紧跟指令的单元中。 若指定R0R3,可用作查表的地址指针。,34,相对/变址寻址:指定寄存器内容与紧跟指令的位移量相加,其结果为操作数地址,可指定的寄存器同。寻址方式编码:101,汇编符号:P/X(R)。 若指定PC,即相对寻址方式; 若指定R0R3 ,即变址寻址方式。,35,(5) 操作码编码及功能 传送指令 MOV
12、指令:OP=0000 格式:MOV OPD,OPS 功能:OPSOPD,(OPS)不变, OPS可以是R/M/imm,OPD只能是R/M; OPD和OPS不能同时为M,只能实现RR和RM之间的传送;I/O操作时,为I/O端口寄存器之间进行传送。,36, 双操作数指令 ADD指令:OP=0001 格式:ADD OPD,OPS 功能:OPD+OPS+CFOPD,其中CF为进位位的值 SUB指令:OP=0010 格式:SUB OPD,OPS 功能:OPD-OPS-CFOPD,其中CF为进位位的值,37,AND指令:OP=0011 格式:AND OPD,OPS 功能:逻辑乘,OPDOPSOPD OR指
13、令:OP=0100 格式:OR OPD,OPS 功能:逻辑或,OPDOPSOPD EOR指令:OP=0101 格式:EOR OPD,OPS 功能:逻辑异或,OPDOPSOPD,38, 单操作数指令 NOT指令:OP=0110 格式:NOT OPD 功能:取反,OPD求反OPD NEG指令:OP=0111 格式:NEG OPD 功能:求补,OPD OPD,求反加1OPD,39,INC指令:OP=1000 格式:INC OPD 功能:加1,OPD+1OPD DEC指令:OP=1001 格式:DEC OPD 功能:减1,OPD1OPD,40,SL指令:OP=1010 格式:SL OPD 功能:左移一
14、位,OPD左移一位,移出的位保留在CF中。 SR指令:OP=1011 格式:SR OPD 功能:右移一位,与SL相反,其余同。,41, 转移类指令 BR(Branch转移),JMP(无条件转),RST(返回):OP=1100 格式:BR/JMP/ RST OPD 若相应条件满足,则转移到由OPD字段提供的转向地址去执行程序。 若为返回指令RST,则从堆栈中取出返回地址,然后SP+1SP,42, 转子指令 JSR指令:OP=1101 格式:JSR OPS 功能:先将返回地址压入堆栈,然后根据OPS字段提供的子程序入口地址,实现转子操作。,43,5.2.2 模型机总体结构,这一步,要根据指令集的实
15、现要求,对机器做空间安排,包括:功能部件的设置、连接以及指令信息、数据信息、地址信息传递路径拟定。 模型机总体结构如图 :,44,45,1、寄存器设置 R03(150):通用寄存器,16位。 SP(150):堆栈指示器,16位。 PC(150):程序计数器,16位。 PSW(150):状态寄存器,其中03位为条件码C、V、N、Z。 IR(150):指令寄存器,16位。 MAR(150):地址寄存器,16位(可寻最大地址空间为64K)。 MBR (150):数据寄存器,16位。 C、D (150):暂存器。,46,MBR主要用于CPU与M及I/O之间的速度匹配,作缓冲用;MBR较忙,不能将读出的
16、数据放MBR中暂存。 设置两个暂存器C、D ,并规定OPSC,OPDD;且C、D对用户是透明的。 R03、C、D、SP、MAR:由16位D触发器构成。 IR、MBR、PSW:采用带置位和清零的D触发器构成。,47,2、运算器部件 ALU由741814,741821构成,采用反变量输入,通过S3S2S1S0控制实现算术运算和逻辑运算。 移位门采用4YHF门,通过ALU左斜一位输出送移位门和右斜一位输出送移位门实现左移(SL)和右移(SR)操作,通过ALU直送送出和低高字节交换送出实现直送(DM)和半字交换(EX)操作。,48,选择门A、B各采用一个八通道选一的选择器,以满足ALU逻辑输入条件。
17、与运算器部件相关的寄存器有R03、C、D。 CPU内部采用单向总线,将移位门的输出与所有寄存器的D输入端相连。,49,3、CPU与M、I/O设备的连接 CPU与M、I/O设备通过单总线结构连接,这组总线在模型机中采取了彼此独立的地址总线(ABUS)、数据总线(DBUS)和控制总线(CBUS)进行各设备间的通信。,50,一条指令的执行过程,51,循环进程的每步都是彼此相对独立操作组成的; 如果按时间先后顺序,给每步操作划分一定的时间片,让它完成定时区域内规定的操作,整个指令周期(指完成一次循环操作所需的时间)结束,就完成指令所规定的全部操作。,52,一个复杂的时序问题是不易解决的,然而在定时区域
18、内流向控制的逻辑设计问题(即打开一个信息传递路径上的控制门条件)是很容易实现的。 组合逻辑常见的时序计数器法。 一个必要的工作是:确定信息传送路径,只有信息的传送路径严格地确定下来,流向控制才能得以实现。,53,5.2.3 信息传送路径,信息(包含指令信息、地址信息、数据信息)传送的路径也称数据通路。 1、指令信息传送路径 MIR,采用置入方式,54,2、地址信息传送路径 指令地址信息的传送路径 PC选择门AALU移位门MAR(D) 并在CPMAR作用下打入MAR寄存器 顺序执行时,下一条指令地址的形成路径 PC选择门AALU移位门PC(D) +1 并在CPPC作用下打入PC 操作数地址的形成
19、路径 与寻址方式有关,55,3、数据信息传送指令 RiRj Ri选择门A(or B)ALU移位门Rj(D) 并在CPRj作用下打入Rj RiM Ri选择门A(or B)ALU移位门MBR M(MAR) MRj MMBRBALU移位门Rj(D) 并在CPRj作用下打入Rj,56,RiI/O端口 Ri选择门A(or B)ALU移位门MBR单总线I/O端口 I/O端口Rj I/O端口MBRBALU移位门Rj(D) 并在CPRj作用下打入Rj,57,5.2.4 拟定时序系统,模型机采用三级时序系统,即 周期节拍脉冲 同步控制方式。,58,1、周期,将指令的执行过程分为若干个阶段,每个阶段称为周期(或机
20、器周期)。 模型机设置了6个基本周期状态: FT(取指周期) ST(源周期) DT(目的周期) ET(执行周期) IT(中断周期) DMAT(DMA周期),59,各种指令在FT、ST、DT、ET周期中工作安排如下表: 中断周期(IT) 通过中断隐指令(硬件)实现:关中断、返回地址压栈、通过中断矢量形成中断服务程序入口地址等操作。 DMA周期(DMAT) 通过硬件实现:响应DMA请求、建立DMA周期、实现主存与磁盘之间的数据直接传送。,60,61,62,2、节拍,节拍也称时钟周期。 通常在一个机器周期内,设置若干个节拍。 每个节拍宽度应满足CPU完成一个基本操作,如打开一条完整的数据通路,即从寄
21、存器到寄存器、或寄存器到存储器、或存储器到寄存器,这样才能保证数据不丢失。,63,设置一个节拍计数器T: 延长一节拍:发T+1命令,计数器继续计数,延长机器周期,T的计数值译码产生节拍状态T0、T1、; 结束一节拍:发 命令,计数器复位,结束机器周期。,64,3、脉冲,为简化时序系统的设计,模型机在每个节拍末尾发一个P脉冲。 P的前沿作为打入寄存器的工作脉冲,标志着一次数据通路操作的结果打入相应的寄存器。 的后沿作为周期切换的定时信号,表示本周期结束,并进入新的周期。,65,66,5.2.5 指令流程与操作时间表,指令流程:将各种指令的执行,按预先拟定的周期状态要求加以落实,即在定时区域(基本
22、周期)内,指令所完成的操作,以流程的形式写出来。 操作时间表:将指令流程中所规定的操作,具体的落实到由机器的哪个部件完成,在什么时间内完成。,67,1、取指周期FT,建立FT条件 进入FT周期状态有两种情况: 当机器加电后,首先产生一个“总请信号”,将其它状态触发器清“0”,将FT状态置1,从而进入FT周期。,68,运行下进入取指周期FT条件,69,在ET周期的最后一个节拍脉冲的上升沿,即一条指令结束,无DMA请求( ),且无中断请求( ),则进入取指周期,读取下一条指令; 一条指令结束后进入IT周期,在中断服务程序入口处读取指令,则进入取指周期,读取下一条指令; DMAT周期结束,无DMA请
23、求( ),且无中断请求( ),则进入取指周期,读取下一条指令。,70,取指流程 取指周期需做两件事: 取指令IR; 形成下条指令地址,即PC+1PC 由于这两种操作可同时执行,于是,将它们安排在一个节拍内完成。,71,操作时间表,72,MIR操作 ET周期的最后一个节拍执行PCMAR操作,下一条指令地址已送入MAR中。 FT周期可进行读取指令操作,产生如下微操作控制电平: EMAR:地址开放,将指令地址送地址总线A-BUS R:读命令,将指令送到D-BUS SIR:打开三态门将指令置入IR,73,PC+1PC操作 传送路径: PC选择门AALU移位门PC(D) +1 微操作控制电平: PCA:
24、PC的内容送A选择门,并在PCA控制下经A选择门到达ALU。 :74181执行算术操作A+B,加1信号由C0给出,完成PC+1操作。,74,DM:由移位门控制信号DM作用下,直接送出。 CPPC(P):在CPPC(P)作用下,打入PC,完成PC+1PC操作。 取出指令后,经译码,根据不同指令将进入不同的周期状态。,75,如下指令将进入源周期(ST) 1ST=MOV+ADD+SUB+AND+OR +EOR+JSR (逻辑条件1) 如下指令将直接进入目的周期(DT) 1DT=NOT+NEG+INC+DEC+SL+SR (逻辑条件2) 条件转移类指令直接进入执行周期(ET) 1ET=BR+JMP+R
25、ST (逻辑条件3),76,FT周期执行工作结束,通过 和CPFT( )撤消FT状态。 FT周期周期结束, 和CPT( )共同作用,将计数器T复位。 通常,指令流程只要求写到寄存器级,而操作时间表,则要求落实到逻辑门级。,77,2、MOV指令流程,根据周期状态分配表,MOV指令在各机器周期内完成如下工作: ST周期: R型寻址:源操作数在指定寄存器中,不需经历源周期ST。 型寻址:源操作数不在寄存器中,在存储器中,需将源操作数从存储器取出送暂存器C,以备使用。,78,DT周期: R型寻址:传送的目的地址已由寄存器给出,DT周期不再经历。 型寻址:传送的目的地址是存储单元,DT周期需将传送的目的
26、地址送MAR,以备写入时使用。 ET周期: 完成RR间和RM间的传送。,79,由于传送路径与寻址方式有关,因此,设计指令流程时以寻址方式作为逻辑分支条件: (1) R型:寄存器寻址,定义为操作数在指定寄存器中。 ST:如果源操作数为R型,则不经历源周期ST(用短接线连接)。 DT:如果传送的目的地址也为R型,也不经历DT周期(用短接线连接)。,80,(2) (R)型:寄存器间接寻址,定义为操作数地址在指定寄存器中。 ST:需将源操作数取出送暂存器C,数据通路如下:,81,ST:RiMARMMBRC 根据数据通路,设定每个节拍内所完成的工作如下: ST0:RiMAR ST1:MMBRC DT:
27、在DT周期需将传送的目的地址送MAR。 目的地址在Rj中,需将RjMAR,可在一拍完成,即 DT0:RjMAR,82,上述过程可用如下形式概括:,83,84,(3) -(R)型:自减型寄存器间接寻址,定义为:指定寄存器内容减1,作为操作数地址。,85,(4) I/(R)+型:立即/自增型寄存器间址,定义为:操作数地址在指定寄存器中,操作后,将寄存器内容加1;若指定寄存器为PC,则为立即寻址,立即数存放在紧跟指令的下一个单元中。 若指定寄存器为R03、SP:,86,若指定寄存器为PC,为立即寻址,操作数在紧跟指令的下一单元中。,87,FT周期将指令1取出,同时做PC+1 PC操作; 此时,PC内
28、容是紧跟指令1的下一单元(立即数)地址,即(PC)=K+1; 按此地址将立即寻址操作数取出送暂存器C; 只有取指周期PC有自动加1功能,其他周期均无此操作,此时必须强行做PC+1,使其指向下一条(指令2)地址。,88,89,(5) D/(R)+:直接/自增型双间址,定义为:指定寄存器的内容为间接指示器地址,操作之后寄存器内容加1;若指定寄存器为PC,为直接寻址,操作数地址存放在紧跟指令的下一单元中。 与(4)不同的是:前者(4)寄存器中存放的是操作数地址,后者(5)寄存器中存放的是操作数地址的地址。,90,91,(6) P/X(R)型:相对/变址寻址,定义为:指定寄存器内容与紧跟指令的下一单元
29、的位移量相加,其结果为操作数地址;如果指定寄存器为PC,为相对寻址,其偏移量放在紧跟指令的下一单元中。 位移量/偏移量存放:,92,两种寻址方式 EA= R变/PC+DISP/OFFEST 或写成统一形式 EA=(R)+DISP,93,94,ET周期实现寄存器和寄存器之间,以及寄存器与存储器间的传送。 操作数源于ST,目的地址源于DT。 如果ST用S代替,DT用D代替,与寄存器有关用R表示,与存储器有关用 表示。于是: 寄存器到寄存器传送可表示成SRDR 寄存器到存储器传送可表示为SR 存储器到寄存器传送可表示成 DR,95, SRDR SR DR ET2安排送下条指令地址PCMAR操作,96
30、,97,98,3、MOV指令操作时间表,操作时间表是将指令流程所规定的操作,具体地落实到由哪个部件完成。 为简化控制,使控制信号不致过度零乱,除执行顺序不可改变的流程外,尽量将相同或相近操作安排在同一节拍内。 有些数据通路,如RiA(or B),在选择控制信号时,要考虑到同一节拍内数据流向,如SPA,PCA,则选RiA,使控制一致。,99,100,101,102,103,104,105,106,4、双操作指令流程,双操作数指令与MOV指令的ST周期是相同的。 DT周期的差别:MOV要求得到目的地址,双操作数指令则要求在目的地址基础上给出目的操作数。 R型寻址:目的操作数Rj中; 型寻址:在MO
31、V指令基础上多做一步MMBRD即可。,107,ET周期 若为SRDR 源操作数在Ri中,目的操作数在Rj中,结果存入到Rj中。,108,若为SR 源操作数在Ri中,目的操作数在暂存器D中,结果写入由MAR给出的存储器单元中。,109,若为 DR 源操作数在暂存器C中,目的操作数在Rj中,结果写入Rj中。 在ET2节拍安排PCMAR操作,以便在FT周期读取指令 。,110,111,112,5、单操作数据指令流程,单操作数指令在ST周期无操作(空白); DT周期执行的操作与双操作数指令相同。,113,ET周期 若为DR型 目的数(单操作数)在Rj中,结果存放在Rj中。,114,若为 型 目的数在暂
32、存器D中,操作后结果存放在由MAR指定的存储器单元中。 在ET2节拍安排PCMAR操作,以便进入FT读取指令。,115,116,6、转移类指令流程,若取出指令为转移类指令:BR、JMP、RTS,则进入该流程。 由指令周期状态分配表知,ST与DT周期空白; ET周期 形成转移地址; 实现转移操作。,117,条件语句的语义: 当条件满足,转移成功; 当条件不满足,该语句为空语句,顺序执行。 因此,在转移类指令流程设置不转移和转移两个分支。,118,不转移:根据模型机指令寻址特点: 与PC有关的指令格式(记作PC) 紧跟指令的下一单元可能是立即数、直接地址,或偏移量;唯独不是下一条指令的地址。 需强
33、行做PC+1操作,形成下一条指令地址。 与PC无关的指令格式(记作 ) 下一条指令地址在PC中,只需将PCMAR即可。,119,转移:模型机给出形成转移地址的四种方式:R、(R)、(R)+、P。 若为R型:转移地址在Ri中,只需做RiPC, MAR即可。 若为(R)型:转移地址的地址在Ri中,需做。,120,若为(R)+型:与(R)型不同的是操作后,Ri内容加1。,121,若为P型:EA=(PC)+DISP。先取偏移量并与PC相加形成转移地址,送PC, MAR。偏移量放在紧跟指令的下一单元中。,122,123,在模型机指令格式设计中,OP=1100,且寻址方式为自增型寄存器间址,寄存器指定SP
34、,为返回指令RST。 把指令流程中(R)+中的Ri用SP代替: SPMAR;MMBRPC,MAR;SP+1SP 即先弹出,后修改堆栈指针,正好是RST操作。,124,7、转子指令流程,若取出指令为转子指令,进入该流程。 分转子成功和不成功两个分支: 转子不成功:操作与转移类指令流程操作相同。 条件满足,转子成功:由指令周期状态分配表知,需做三件事:在ST周期,形成子程序入口;在ET周期,将返回地址压栈,实现转子操作。,125,ST周期 工作安排分两种: 子程序入口地址在Ri中:不经历源周期; 子程序入口地址不在Ri中:给出获得子程序入口的两种寻址方式:(R)和(R)+。,126,若为(R)型
35、寄存器中给出的是子程序入口的地址,需完成:,127,若为(R)+型 与(R)寻址不同的是,操作后寄存器的内容加1,即:,128,ET周期 返回地址压栈操作为:,129,实现转子操作: 若子程序入口地址在Ri中,则执行: 若子程序入口地址在C中,则执行,130,131,8、中断周期IT,中断响应 发INTA信号; 周期切换:1IT。 中断周期IT 关中断,修改栈指针; 保存断点; 向量地址送MAR; 获得入口地址,转入中断程序,开中断。,132,133,9、DMA周期,DMA响应 发DACK信号; 周期切换:1DMAT。 DMAT CPU与总线断开(空周期); DMA控制器接管总线; 结束时发1
36、FT。 恢复原程序执行,134,135,5.2.6 微操作组合,微操作组合是根据操作时间表各种微操作信号,如:EMAR,R,SIR,SMBR,PCA,MBRB CPRj,等,按其控制信号产生的条件通过“或”连接在一起,称作微操作的组合。 在此基础上进行化简,得到相应的逻辑表达式,并布逻辑图。,136,例如: EMAR=FT0+MOVST1+MOVST4+ R= FT0+MOVST1+MOVST4+ PCA=FT1+MOVST0IR5IR4IR3+X +MOVST2IR5IR4IR3+X+ SMBR=MOVST1+MOVST4+ SIR=FT0 MBRB=FT0+MOVST1 +MOVST4 C
37、PR0=MOVST0P +MOVST2P +,137,5.3 微程序设计,微程序控制的概念,是英国剑桥大学威尔克斯(M.V.Wilkes)教授1951年提出的,辉煌于20世纪60和70年代。 威尔克斯开始提出微程序设计只是注重于将存储逻辑引入CPU,代替硬线逻辑控制信号的形成线路。,138,从硬线逻辑控制可以看出,其实质就是对部件之间的指令、地址、数据,在时间和空间上实现正确的流向控制。 这种流向控制无非是按时间的要求,打开不同的数据通路而已,而作为打开这条数据通路上的那些最基本操作,又无非是打开、关闭、接收等基本操作信息的重构。,139,能否采用一种这样的技术:各种最基本的操作(如打开、关闭
38、门的操作)是松散的,并以一定的结构形式组织起来,存放在一个特定的存储器中; 随着执行不同的指令序列,沿时间将这些控制信息重新组合(就像程序设计一样),从特定的存储器中取出,作为实现逻辑门级的控制信号,代替组合控制信号的形成线路。,140,5.3.1 微程序的概念,微命令和微操作 从发布命令和执行命令角度,可把计算机划分为两大部分:控制部件和执行部件。控制器为控制部件;运算器、存储器、输入/输出设备为执行部件。 控制部件通过控制线向执行部件发布的,如令其打开或关闭一个或一组门的命令称微命令。执行部件接到微命令后所完成的操作,如把一个或一组门打开或关闭,称为微操作。,141,微指令 若干个微命令的
39、集合称为微指令。 微命令是进行微程序设计的基本元素(像指令是程序设计的基本元素一样)。 微指令通常由两部分组成:微指令控制部分和微指令顺序控制部分。前者用以产生某一步操作所需的各微操作控制信号;后者显示或隐示地给出下一条微指令地址。,142,微程序 一系列微指令的有序集合就是微程序,就像程序是一系列指令的有序集合一样。 通常一条机器指令对应一段微程序。 控制存储器 为了区分于主存储器,机器设计者将用于存放控制用的微指令的存储器称为控制存储器CM(Control Memory).,143,微周期 从控制存储器中读取一条微指令并执行这条微命令所需的全部时间,称为一个微指令周期,简称微周期。,144
40、,微程序控制方法可做如下表述: 运用程序设计技术和存储逻辑,使微操作控制信号微指令化,即以代码的形式存于控制存储器中。 一条机器指令对应一段微程序,一条指令的微操作序列就转化为发布控制信号的微程序。 执行指令时,从控制存储器中读出与该指令对应的微程序,并转化为执行微操作的控制序列。,145,5.3.2 微程序控制器的设计,微程序控制器设计步骤如下: 第一步:拟定指令系统 第二步:确定总体结构 第三步:拟定时序系统 第四步:微指令格式设计 第五步:拟定微程序流程 第六步:编制微程序 第七步:编制码点表,146,5.3.3 微程序时序,模型机拟采用串行(而非重叠)的执行方式。 其时序不再采用周期节
41、拍脉冲的三级时序系统。 采用微程序控制方式,指令分步操作的依据是不同的微指令,因此,时序上不再按阶段设置不同的机器周期,取而代之的是统一规整的微指令周期。,147,微周期:指在CPU中进行一次基本运算或信息传送所需要的时间(简称数据通路操作),加上为从CM读出下一条微指令所需要的时间。,148,工作脉冲P有两个作用: 前沿 将本周期数据通路的操作结果或传送数据打入目的寄存器; 将微地址打入微地址寄存器MAR. 后沿即CPIR的上升沿,将读出的微指令打入微指令寄存器IR,开始新的微周期操作。,149,数据通路操作时间tDB由三部分组成: t1:微指令译码给出数据通路控制信号; t2:实现传送或基
42、本运算时间; t3:转移逻辑的延长时间。 转移类微指令,用工作脉冲的前沿将其转移的微地址打入到MAR是允许的。,150,5.3.4 微指令格式设计,微指令格式设计包括: 微指令控制部分(微命令)的设计; 微指令顺序部分(微地址)的设计。,151,1、微指令控制字段的设计 直接控制法:将微指令控制字段分成若干位,每位对应一个微命令,直接送到门级线路,由于它不需要译码,也称不译码法。 优点:速度快、控制简单。 适用于: 特别要求高速的场合; 若数据通路中,某些门需要经常打开,可采用这种方案。,152,缺点:所需控制信息位太多,在已往的中小型机常需要400到600位,很不经济。 在模型机的设计中,需
43、要经常打开的门,采用了这种方式。,153,最短字长编码:完全采用编码方式。 一般中、小型机其控制字段不会超过10位,可产生1024个微命令,使微指令长度最短。 缺点:由于译码本身具有互斥性,所以每次只能产生一个微指令,将本来完全可以同时执行的微操作序列,变成了纯串行操作。 启示:提高信息表示效率的基本途径是采用编码方式定义微指令。,154,分段直接编码:将微指令控制字段分成为若干小段,每个段各自独立地定义自己的微命令。 每个段在某一时刻只产生一个微命令,但是各个段可同时产生微命令。 既减少了微指令的长段,也提高了系统的并行性。,155, 分段原则 分段按相斥性和相容性进行:将相斥性微操作安排在
44、同一段内,将相容性微操作安排在不同段内。 相斥性微操作指在同一时刻不能同时发生的操作; 相容性微操作指在同一时刻可以同时发生的操作。,156, 安排方法 按指令类型分类,将不同类型的指令安排在同一段内,而把打开数据通路上的各个相容性操作安排在不同段内; 按功能部件来分类,将同一功能部件上的各个微操作安排在同一段内,而做为连接在数据通路上的各个功能部件,彼此独立的,能同时发生的操作安排在不同段内。 对于任何不同性质的操作,无非是将各功能部件上微操作命令的进行重构。,157, 各字段位数安排 应考虑到平行度,即一条微指令能同时出现的微命令个数。 平行度的高低直接影响到机器速度。一个字段包含的位数多
45、,微指令长度就短,但同时发出的微命令就少,平行度就低。而平行度高,分段就要多,微指令字长要加长,信息表示的效率又要降低。 常见字段:三、四、五位居多,六位也有,七位也就很少了。,158,分段间接译码法:与分段直接编码法不同,每个字段的某些编码不能独立地定义自己的微命令,需要其他字段参于解释(或定义)。 可解释字段编译法 在微指令中增加1位,作为解释字段。 常数字段K 设一个常数字段K,就像指令中的立即操作数一样。通常用来建立状态触发器,计数器初值或用来做主存的部分地址,或用作常数参与某种运算。,159,如PDP-11: 第31位为0:表示全局性微命令,即各类指令出现的,可共用的微命令。 第31
46、位为1:表示局部性微命令,即一条或少数几条出现的专用微命令。,160,微指令译码与部分机器指令译码复合控制:为缩短微指令长度,微指令中只提供选取寄存器的命令,如RiA,至于i指的是哪个寄存器,可由机器指令中的Src(Dst)段中的寄存器号字段给出。,161,2、微指令顺序控制字段的设计 是指如何给出顺序执行和转移的下一条微指令地址。 如何给出微地址 显式:直接通过下址字段给出微指令地址。 隐式:在下址字段只保留相应的解释字段来说明微地址的产生方法,并指定如何给出这种方法。,162,微地址的形成 包括:初始微地址的形成以及后继微地址的形成。 初始微地址的形成 一条机器指令对应一段微程序,微程序的
47、入口地址可通过操作码来实现。 这是最常见的一种初始地址形成方式,俗称功能转移。,163,后继微地址的形成 一条微指令执行后,如何得到下一条微指令的地址,称为后继微地址的形成。通常有两种方式: 增量方式:是指在顺序执行时,后继微地址由现行微地址加一个增量给出. 顺序执行时:现行微地址加增量1; 跳步时:现行微地址加增量2。,164,无条件转时:需给出转移的全部地址,或给出偏移地址,相对地址由现行微地址给出; 若为分支:一次只允许存在两路; 若为多分支时:需将多分支转化成两分支。,165,166, 断定方式:一种直接给定和测试断定相结合的方式,格式为: 给定部分:属非测试段,用来指定微程序在CM中
48、的存放区域; 断定部分:又称测试段,用来确定区域内的具体分支(可能是指令操作码,源操作数寻址方式,目的操作数寻址方式,执行方式等)。,167,由来: 在微程序设计中,转移可能是由条件引起的(可能占有相当大的比例),有些微操作的控制条件,如寻址方式或特征位的状态也能引起转移。 如果有多种条件,微地址字段中就要保留一定选择位,用来指定需要测试的是哪一个条件。,168,解释一条机器指令的一段微程序总是有限的,如64条,则最大的范围也不过是64路,所以转移地址只能出现在低位部分。如果各种微指令转移地址都集中在低位,都从0号地址开始,那就有问题了。 倘若,将微地址分为两部分,高位部分由设计者给定。于是,
49、高位地址的不同选定,相当于划分了不同的区域,使微指令转移变成了不同区域的再分配,低位部分相互覆盖的现象不见了。,169,微程序转子与返回 典型做法是,设置一个返回地址寄存器RR(Return Register),存放返回地址。 转入微子程序时,首先将返回地址送返回寄存器,即PCRR;然后通过转子功能微指令来实现。 微子程序的最后安排一条返回指令,执行RRPC,返回微主程序。,170,5.3.5 模型机的微指令格式设计,从微指令的平行度和信息的表示效率出发,在微指令控制字段设计中用直接控制法和分段直接编码方案。 分段的原则是按功能部件进行。,171,为了不使微指令字长过长,微地址字段的设计采用隐
50、式规定: 顺序执行时,靠PC/MAR加1提供下一条微指令地址,此时控制字段提供的是全部微命令。 转移时,采用断定方式,控制字段将提供全部或高位地址。,172,模型机的微指令格式:,173,1、微指令控制字段设计 AI:ALU的A输入端选择控制字段,3位 000 无输入 001 RiA(由机器指令的寄存器号具体指明Ri是哪个寄存器,如R03、SP、PC) 010 CA 011 DA 100 PCA(专用的命令,用于取指、变址时对PC的选取),174,BI:ALU的B输入端选择控制字段,3位 000 无输入 001 RiB (由机器指令的寄存器号具体指明Ri是哪个寄存器,如R03、PSW) 010
51、 CB 011 DB 100 MBRB,175,编制说明: 在大多数的字段中,必须包括一个非激活代码,例如AI(或BI)的全“0”方式,表示AI(或BI)字段的所有寄存器中,没有一个需要将其内容放在数据总线上。,176,由于ALU的输入选择门A(或B)本身有分时要求,一次只能激活ALU的一个功能,每个功能部件传送的操作数必须是唯一的,不可以将两个不同的寄存器的内容,同时送到总线上。而译码的本身带有互斥性,这样正好满足ALU输入选择门的要求,所以AI、BI段采用分段直接编码方式。,177,R03A的处理采用指令译码和机器指令译码复合控制方案,字段内只提供RiA(或RiB)微命令,其寄存器号则由机
52、器指令中寄存器号字段指定,从而减少控制字段的位数。 101111为冗余码,可作微命令扩充用。,178,SM:ALU功能选择信号S3S2S1S0M,共5位,采用直接控制法(不译码) 编制说明: ALU的5位功能选择信号,分别表示16种算术(M=0)和16种逻辑操作(M=1)。 不包括空代码,ALU在每一微指令执行期间都是被激活的。 它的动作要受输入门制约,只有输入门(A或B)被激活,才能有ALU的输出产生。 并不是所有段都需要非激活代码。设与不设非激活代码,要看功能部件的源端是否能制约它。,179,C0:初始进位设置,2位。 00 0C0 01 1C0 10 PSW(C)C0 S:移位门控制,2
53、位。 00 DM(直传) 01 SL(左移) 10 SR(右移) 11 EX(高、低字节交换),180,RI:寄存器接收控制字段,3位。 000 不发打入脉冲(非激活代码) 001 CPRi(微指令译码与机器指令复合控制,见AI、BI编制说明) 010 CPC 011 CPD 100 CPIR 101 CPMAR 110 CPMBR 111 CPPC,181,EMAR:1位 1 由MAR向地址总线提供有效地址; 0 MAR与地址总线断开。 R:1位 1 读存储器,同时作为SMBR。 W:1位 1 写入存储器。 以上三位采用直接控制法;R和W均为0时,MBR输出与数据总线断开。,182,ST:杂
54、控制字段,2位。 00 无操作(非激活代码) 01 开中断 10 关中断 11 SIR 编制说明: 将控制置入IR置位信号SIR、中断触发器开与关,安排在杂控制字段,缩短了微指令字长,又不影响并行性。,183,2、微指令顺序控制字段设计 采用隐式规定,NAC(Next Address Control)设置4位。CM=512B。 顺序执行时,由MAR/PC通过加增量1给出下一条微指令地址,此时,控制字段发布的是微命令; 转移时,控制字段给出的是全部转移地址或高位地址。,184,NAC:下址控制字段,4位。 0000 顺序执行。 0001 无条件转,由控制字段提供9位转移全部地址。 0010 控制
55、字段给出高5位地址,低4位由机器指令操作码部分断定。 0011 控制字段给出高6位地址,低3位由源寻址方式断定。 0100 控制字段给出高6位地址,低3位由目的寻址方式断定。,185,0101 控制字段给出高7位地址,低2位由执行状态(SRDR)断定。 0110 控制字段给出高8位地址,低1位由DR断定。 0111 转微子程序,由控制字段给出微子程序入口地址,返回地址存放在RR中。 1000 返回微主程序。 1001 控制字段给出高5位地址,低4位由PSW中N、Z、V、C结果断定。,186,5.3.6 模型机微程序控制器组成,下条微地址控制信号NAC,及执行通路如图所示。 由于控制存储器CM存
56、放的是微指令,与存储器MEM不同。 在MEM中不仅有指令,还有数据,所以MAR和PC要分开设置。 CM中存放的只是微指令,所以,PC与MAR合为一个,并有计数功能。,187,188,189,5.3.7 微程序流程图,微程序流程图用来描述机器指令操作步骤,以及各步骤之间的顺序关系。 微程序流程图应当遵循的原则: ISO(国际标准化协会)推荐的“信息处理流程图标号”也适用于微程序流程图。 流程图中信息流动方向一般从左到右,从上到下。,190,微程序流程图必须体现指令操作过程的处理算法,逻辑关系和顺序关系。 微程序时序避开了计算机固有的复杂时序系统,取而代之的是微周期。 唯有当一步骤或过程执行完后,
57、才开始下一步的执行。 流程图框外一般冠以本条微指令地址,接着的是下一条微指令的地址。,191,1、取指微程序流程 按照指令流程图的原则,仍将送下条指令地址操作PMAR,安排在上一条指令结束前的最后一个微周期,一旦满足取指条件进入取指微周期时,可直接读取指令。 一条机器指令对应一段微程序。 首先要做的是如何通过机器指令形成相应的微程序入口地址,可借助操作码通过功能转移实现。,192,假如,将14条指令的入口从CM的0号单元开始存放。 即OP=0000 1101,安排在000H00DH中。 则NAC=0010,高5位地址为00000,低4位由操作码断定。,193,194,2、MOV微程序流程 依据
58、指令流程图,MOV指令与双操作数指令,在ST周期操作流程是相同的,在DT周期MOV指令与单双操作数指令只差一框,即MMBRD。 为减少微指令冗余,采用微子程序,分别设“取源操作数微子程序”和“取目的操作数微子程序”。 若为单、双操作数指令,加上执行一条微指令:MMBRD。,195,196,3、双操作数微程序流程,197,4、单操作数微程序流程,198,5.3.8 微程序编制,见word文档,199,5.3.9 微代码编制,将预先编制好的微程序按微指令格式,将每一微周期的微操作,以编码的形式进行代码化过程,从而得到模型机微程序的代码表。 最后,将这一串二进制代码写入CM中,就完成了微程序设计。
59、模型机微程序代码表示例见word文档。,200,5.3.10 结束语,当关心操作速度时,硬件控制是最好的; 而实现指令集方面,微程序控制提供了相当大的灵活性。 一个(大部分)是微代码的CPU:Pentium处理器。,201,微程序控制器的缺点是操作速度低,因为从控制器读取微指令要花费一些时间。 如果在当前微指令执行的同时预取下一条微指令,就可以获得较快的操作速度。 此时,执行时间与取指令时间是重叠的。,202,然而,预取微指令为系统的结构带来一些困难。 有时,状态位和当前执行的微指令的操作结果要用来判定下一条微指令的地址。 因此,直接预取偶尔会发生取错微指令的情况。 这时,必须按照正确地址重取,这就需要比较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年吉林省乾安七中物理高二第二学期期末统考试题含解析
- 贵州省凤冈县第二中学2025届物理高一第二学期期末综合测试试题含解析
- 黑龙江省林口林业局中学2025年物理高一第二学期期末统考试题含解析
- 2025届福建省漳州市第八中学高一物理第二学期期末经典试题含解析
- 农贸市场管理课件
- 二零二五年被褥原材供应链合同
- 2025版标前协议书-道路桥梁工程
- 二零二五年度安全设施设备维护保养合同范本
- 2025版车辆交易市场管理合同
- 二零二五年HSE安全管理体系审核合同
- 旅行社与游客协议旅游合同
- 先天性甲状腺功能减退症诊治指南(2025)解读
- 2025-2030付费自习室行业市场深度分析及竞争格局与投资价值研究报告
- (二模)淮北市和淮南市2025届高三第二次质量检测英语试题(含答案详解)
- 腾讯入职合同协议
- 新产品导入流程图
- 电力设备质量保证措施
- 2025年江西省高职单招文化统一考试真题及答案(网络版)
- 干挂石材脚手架施工方案
- 企业税务自查与整改方案
- 村务公开申请书
评论
0/150
提交评论