《中央处理机组织.ppt》由会员分享,可在线阅读,更多相关《中央处理机组织.ppt(62页珍藏版)》请在三一办公上搜索。
1、第6章 中央处理机组织,6.1.1 CPU的组成与操作,ALU及所有的CPU寄存器通过一条公共总线连接起来,又称内部总线。存储器总线经由存储器数据寄存器MDR和存储器地址寄存器MAR连到CPU。寄存器R0 到R(n-1):通用寄存器寄存器Y和Z:临时存储。指令寄存器IR和指令译码器:,6.1.1 CPU的组成与操作,PC:程序计数器,存放即将执行的指令地址IR:指令寄存器,暂时存放指令代码MAR:存储器地址寄存器,存放访问内存时的地址MDR:存储器数据寄存器,存放和内存之间传送的数据R0R(n-1):CPU内的数据寄存器Y:ALU输入端的暂存器Z:ALU输出端的暂存器ALU:算术逻辑单元,完成
2、运算M:主存,存放指令和数据,6.1.1 CPU的组成与操作,PC部件控制信号 IR部件控制信号PC+1,PCout-IRin,IRoutMAR部件控制信号 MDR部件控制信号MARin,MARouT-MDRin,MDRout,DRi部件控制信号Rin,RoutY部件控制信号 Z部件控制信号Yin,Yout-Zin,ZoutALU部件控制信号+,-,+1主存控制信号RM,WM,例6.1写出指令执行的控制信号序列和操作序列,指令mov R2,R1存放在主存中,完成读指、分析指令、执行指令的过程操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:R1-R2信号
3、序列:取指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:R1out,R2in,例6.2写出指令执行的控制信号序列和操作序列,指令mov 20h,R2存放在主存中,完成读指、分析指令、执行指令的过程操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:IR中操作数部分-MAR-M R2-MDR-M信号序列:取指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:IRout,MARin,MARout R
4、2out,MDRin,D,MDRout,WM,例6.3写出指令执行的控制信号序列和操作序列,指令ADD R1,R2存放在主存中,完成读指、分析指令、执行指令的过程操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:R2-Y R1-ALU,Y-ALU,ALU-Z Z-R1信号序列:取指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:R2out,Yin R1out,Yout,+,Zin Zout,R1in,例6.4写出指令执行的控制信号序列和操作序列,指令MOV R1,R2存放在
5、主存中,完成读指、分析指令、执行指令的过程操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:R2-MAR-M-MDR MDR-R1信号序列:取指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:R2out,MARin,MARout,RM,MDRin,D MDRout,D,R1in,例6.5根据CPU硬件,完成程序执行,已知cpu 组成结构如图其中IR为1个字节长度已知指令系统中部分指令定义为mov R0,#data;功能data-R0,编码6c,datamov R1,R0;功
6、能(R0)-R1,编码2cadd R1,R0;功能R1+R0-R1,编码0cmov R0,R1;功能R1-(R0),编码8f,例6.5根据CPU硬件,完成程序执行,下面程序已经放在内存0单元开始部分,pc已置0mov R0,#7mov R1,R0add R1,R0mov R0,R1在硬件上完成程序(取指-译码-执行指令)写出操作序列和控制信号序列演示6-1.swf,操作序列和信号序列,MOV R0,#7操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:PC-MAR-M-MDR MDR-R0,PC信号序列取指令:PCout,MARin,MARout,RM,
7、MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D.R0in,PC+1,操作序列和信号序列,MOV R1,R0操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:R0-MAR-M M-MDR-R1信号序列取指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:R0out,MARin,MARout,RM,MDRin,D MDRout,D.R1in,操作序列和信号序列,MOV
8、R1,R0操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:R0-R1信号序列取指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:R0out,R1in,操作序列和信号序列,MOV R0,R1操作序列取指令:PC-MAR-M-MDR MDR-IR,PC分析指令:IR-ID执行指令:R0-MAR-M R1-MDR-M信号序列取指令:PCout,MARin,MARout,RM,MDRin,D MDRout,D,IRin,PC+1分析指令:IRout执行指令:R0out,MARin
9、,MARout,R1out,MDRin,D,MDRout,D,WM,6.1.3 CPU控制流程,计算机进行信息处理的过程就是不断地取指令、分析指令和执行指令这样一个周而复始的过程。CPU控制流程由以下几步完成:取指令:由程序计数器(PC)指出当前指令地址,通过执行“MAR一(PC)”和“Read”命令,从主存中取出指令。,6.1.3 CPU控制流程,分析指令:或称解释指令、指令译码等。对取出的指令进行分析,指出它执行什么操作,产牛相应的操作控制信号。如果参与操作的数据在主存中,则还需要形成操作数地址。执行指令:根据指令分析得到的“操作命令”和“操作数地址”,按一定的算法形成相应的操作控制命令序
10、列,通过运算器、存储器及外部设备的具体执行,实现每条指令的功能。对异常情况和某些请求的处理,CPU控制流程图,6.1.4控制器的组成,6.1.4控制器的组成,程序计数器PC:又称指令计数器或指令指针,在某些机器中用来存放正在执行的指令地址,大多数机器中存放要执行的下一条指令的地址指令寄存器IR:用来存放现行指令指令译码器:又称操作码译码器,对指令寄存器中操作码部分进行分析解释,产生相应的控制信号脉冲源及启停控制线路:脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲。启停线路则是在需要的时候保证可靠地开放或封锁时钟脉冲,控制时序信号的发生与停止,实现对机器的启动和停机。,6.1.4控制器的组成
11、,时序信号产生部件以时钟脉冲为基础,具体产生不同指令相对应的周期、节拍、工作脉冲等时序信号操作控制信号形成部件综合时序信号、指令译码信息、被控功能部件反馈状态信号等,形成不同指令的控制信号序列中断机构:对异常情况和外来请求处理总线控制逻辑:实现对总线信息传输的控制,62组合逻辑控制与PLA控制,通过逻辑电路直接产生控制信号:基于时钟信号CLK驱动的计数器来控制每个控制步。控制步计数器内容(时序信号)指令寄存器的内容条件码和其他状态标志的内容,简化的组合逻辑控制器,例6.6组合逻辑控制信号产生电路,Cpu中使Z寄存器输入门接通的Zin信号在以下情况产生:所有指令的T1时间段,加法指令的T6时间段
12、,转移指令的T5时间段。设计Zin的控制信号产生电路Zin=T1+T6 ADD+T5 BR+,62组合逻辑控制与PLA控制,组合逻辑控制器的设计要用大量的逻辑门电路,按一定规则组合成一个逻辑网络,从而产生各机器指令的控制信号序列,设计过程的步骤根据给定CPU结构及指令功能,排列出每条指令的操作控制步序列确定机器的状态周期、节拍和工作脉冲列出每个操作控制信号的逻辑表达式。所有操作控制信号的逻辑表达式组成了编码器,63微程序控制,微程序控制技术是通过类似于机器语言程序的一种方法来产生控制信号的。微程序设计的思想给计算机控制部件的设计和实现技术带来了巨大的影响。它与组合逻辑的控制方法相比,大大减少了
13、控制器的复杂性和非标准化程度,从而把硬件的用量限制在很小范围内。由于全部机器指令的执行过程都用微程序控制,便提供了很大的灵活性,使得设计的变更、修改以及指令系统的扩充都成为不太困难的事情。,63微程序控制,由于微程序相对固定,且通常不放在主存内,故有可能利用工作速度较高的ROM存放微程序,从而缩短微程序的运行时间。这是一种固化了的微程序,称为固件。缺点是比相同或相近半导体技术的硬布线式控制器(如PLA)慢一些。因此当代大部分计算机采用硬布线式控制器。,6.3.2 基本概念,1基本术语一条指令的功能是通过执行一系列操作控制步完成的。这些控制步中的基本操作被称为微操作。微命令是微操作的控制信号,而
14、微操作是微命令的操作过程。可以同时执行的一组微操作组成一条微指令,它完成一个基本运算或传送功能,6.3.2 基本概念,完成指定任务的微指令序列称为微程序。一条机器指令其功能可由一段微程序解释完成。微程序存储器(控制存储器):存放计算机指令系统所对应的所有微程序的一个专门存储器。微程序控制的基本思想是把机器指令的每一操作控制步编成一条微指令。每条机器指令对应一段微程序。当执行机器指令时,只要从控制存储器中顺序取出这些微指令,即可按所要求的次序产生相应的操作控制信号。,6.3.2 基本概念,2微程序控制器微程序计数器uPC:将根据指令的内容,生成微程序的入口地址放入中。uPC自动增值,依次从微程序
15、存储器中读出一条条微指令。微指令寄存器uIR,存放控制存储器中的微指令,译码后产生一系列微命令。,微程序控制器工作流程(演示6-2.swf),CPU工作就是不断地取出指令和执行指令的过程,取指令的微操作序列是相同的。微程序控制器的工作流程就是不断地执行取指令的微程序和执行相应功能指令的微程序。,3微程序控制器工作流程,6.3.3 微指令的格式与编码,微指令格式大体上可分为两种:水平型微指令和垂直型微指令.水平型微指令能最大限度地表示微操作的并行性,但需要使用较长的代码,少则几十位,多则上百位。较长的代码能充分利用硬件并行性所带来速度上的潜在优势,也使微程序中所包含的微指令条数减至最少,所以适用
16、于要求较高速度的场合。但是,一般说来,水平型微指令的码空间利用率较低,并且编制最佳水平微程序难度较大。,6.3.3 微指令的格式与编码,垂直型微指令采用短格式,一条微指令只能控制一、二个微操作,其格式与普通机器指令相仿,设有微操作码字段,由微操作码确定微指令的功能。它所包含的地址码用来指定微操作数所在的寄存器地址或微指令转移地址,也可表示立即数或标志码等。采用垂直型微指令编写的微程序称垂直微程序。,6.3.3 微指令的格式与编码,常用的微命令编码方法:1)直接表示法。在微指令的微命令字段中,每个二进制位表示一个微命令而一条微指令是否发出某个微命令则由对应的位是“l”还是“0”来确定。很显然,这
17、种方法直观、不必译码、控制电路简单、速度快。但是,通常微命令的个数很多,使得微指令字长多达几百位,实现上非常困难。,6.3.3 微指令的格式与编码,2)字段直接编码法:把微指令中相容的微命令(即在一条微指令中可能同时出现的微命令)分配在不同字段,而将那些相斥的微命令(即在一条微指令中不可能同时出现的微命令)组合在一起,编成一个字段。每个小字段分别编码,每个码表示一个微命令。在微命令字段中所包含的小字段数目,是在一条微指令中最多可同时发出微命令的个数,例6.7对单总线CPU,采用直接表示法设计微指令,CPU中有42个控制信号,采用直接表示法,则微指令有42位,每位对应1位控制信号。微指令格式为,
18、例6.7对单总线CPU,采用直接表示法设计微指令,指令ADD R3,R1的微程序为,例6.8对单总线CPU,采用编码法设计微指令,42个控制信号中大多数不可能同时发生,许多信号是互斥的,这样可以把控制信号分组,那些互斥的分在同一组,在一条微指令中每组只能有1个操作信号有效,经过编码后只有20位了。,例6.9水平型字段编码微指令示例,计算机的微指令中有10个字段c0-c9,每个字段可激活的控制信号如下表,(1)采用字段直接编码法,微指令长度是多少?(2)若改为水平型直接表示,微指令长度是多少?,例6.9水平型字段编码微指令示例,(1)每个字段译码后要能控制所有信号,并留1个码字表示该字段的任何信
19、号都不激活,则字段长度n:2n字段控制的信号数3+3+2+4+4+5+3+1+4+5=34(2)水平型直接表示法,则每个控制信号占微指令中1位,所以4+4+3+11+9+16+7+1+8+22=85,例6.10字段编码微指令示例,某计算机有5条微指令,每条微指令发出的控制信号如表,设计微指令编码,使微指令长度最短,例6.10字段编码微指令示例,微指令编码最短,则要找出相同、相容、相斥的信号相同信号:a=f,b=g,c=h,d=i,e=j相斥信号:(a,b,c,d,e),(f,g,h,i,j)格式:A|B|C|D|E 5位A=0,a,f信号无效,A=1,a,f信号同时有效B=0,b,g信号无效,
20、B=1,b,g信号同时有效C=0,c,h信号无效,C=1,c,h信号同时有效D=0,d,i信号无效,D=1,d,i信号同时有效E=0,e,j信号无效,E=1,e,j信号同时有效对ABCDE5个信号进行编码X(3位)000:A有效 001:B有效 010:C有效 011:D有效 100:E有效 101:都无效,例6.11字段编码微指令示例,某计算机有5条微指令,每条微指令发出的控制信号如表,设计微指令编码,使微指令长度最短,例6.11字段编码微指令示例,相同信号:c=g=i,b=h,相斥信号:(b,i),(e,j),(b,c),(i,f),(g,d),(b,g),(b,j)微指令格式:a|(b/
21、h)(c/g/i)|d|ej|f|a|bc|gd|ej|if,微指令地址生成,微指令地址生成是指如何获得下一条微指令的地址.可以有3种方法由IR指令寄存器中的代码确定对应微程序的起始地址由前一微指令地址顺序产生下一顺序地址根据当前微指令、条件标志、指令寄存器内容,产生下一微指令的地址,微指令地址生成,常用的微指令地址生成技术有计数器法:顺序产生微指令地址。uPC有加1功能。下址字段法:在微指令中设置一个专门的地址字段用以指出下一条微指令的地址。,例6.12根据CPU硬件和指令系统,设计微程序控制器,在单总线CPU中,用一条总线连接IR,MAR,MDR,R0R7,ALU输入寄存器为Y,输出寄存器
22、为Z。计算机指令有 ADD R3,R1,R2;R3R1+R2 LOAD MEM,R1;R1 MEM STORE MEM,R1;MEM R1 JMP#A;PCPC+A已知四条指令的操作码为00,01,10,11,ADD R3,R1,R2指令的控制序列,T1:PCOUT,MARIN,PC+1,READT2:MDROUT,IRIN,T3:R1OUT,YIN,T4:R2OUT,ZIN,ADDT5:ZOUT,R3IN,LOAD MEM,R1控制序列,T1:PCOUT,MARIN,PC+1,READT2:MDROUT,IRINT3:IROUT,MARIN,READT4:MDROUT,R1IN,STORE
23、MEM,R1 控制序列,T1:PCOUT,MARIN,PC+1,READT2:MDROUT,IRINT3:IROUT,MARINT4:R1OUT,MDRIN,WRITE,JMP#A控制序列,T1:PCOUT,MARIN,PC+1,READT2:MDROUT,IRINT3:PCOUT,YINT4:IROUT,ADD,ZINT5:ZOUT,PCIN,水平型直接表示法微指令设计,完成ADD R3,R1,R2指令的微指令,T1:111010000000000000T2:000101000000000000T3:00000011 0000000000T4:000000001110000000T5:000
24、0 00000001100000,T1:111010000000000000T2:000101000000000000T3:001010000000010000T4:000100000000001000,完成LOAD MEM,R1 指令的微指令,完成LOAD MEM,R1 指令的微指令,完成STORE MEM,R1指令的微指令,T1:111010000000000000T2:000101000000000000T3:001000000000010000T4:000000100000000011,完成JMP#A指令的微指令,T1:111010000000000000T2:000101000000000000T3:100000010000000000T4:000000000110010000T5:000000000001000100,