




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六讲8位CPU分析与设计6.1CPU组成结构6.2RichardCPU分析6.3CPU设计方法6.4指令系统设计6.5CPU设计思路6.6CPU功能模块设计6.1CPU组成结构按照冯•诺依曼计算机的划分方式,运算部件和与运算有关的寄存器属于运算器,而与程序执行有关的寄存器、微命令产生部件及时序系统等则属于控制器部分。CPU主要由控制部件和运算部件两部分构成。CPU的主要功能单元通过内部总线建立CPU内部的信号传送通路,实现信息交换。
6.1.1控制部件控制器主要由以下几部分组成:
指令部件
时序部件
微操作序列形成部件
中断控制逻辑等辅助电路6.1.1控制部件控制器分为硬布线控制器和微程序控制器两种基本类型。硬布线控制器将控制部件看做产生专门固定时序控制信号的逻辑电路,以使用最少的元件和取得最高操作速度作为设计目标。缺点:设计不规整,并且不易修改或扩展。微程序控制器将机器指令的操作(从取指令到执行)分解为若干更基本的微操作序列,并将有关的控制信息(微命令)以微码形式编成微指令输入控制存储器中。优点:设计规则,方便修改及功能扩展。6.1.2运算部件运算部件是计算机中对数据进行加工处理的主要场所,其最重要的功能是执行算术和逻辑运算。运算器的性能直接决定计算机的处理能力,而运算器的设计与数据在计算机内的表示、存储方式、完成运算所用的算法及实现算法所用的逻辑电路都有密切关联。6.1.2运算部件运算部件主要由输入逻辑、算术/逻辑运算单元及输出逻辑等三部分组成。输入逻辑对输入到算术/逻辑运算单元的操作数进行选择算术/逻辑运算单元运算部件的核心,完成具体的算术、逻辑运算操作。输出逻辑将算术/逻辑运算单元的运算结果经直传、左移、右移或者字节交换后送入相应的寄存器。6.1.3寄存器组在复杂指令集计算机系统中一般有5种类型的寄存器:指令寄存器程序计数器存储器数据缓冲寄存器(MemoryBufferRegister,MBR)存储器地址寄存器(MemoryAddressRegister,MAR)程序状态字寄存器(ProgramStatusWord,PSW)1.CPU包括哪些部件控制器运算器寄存器数据通路ABCD提交多选题1分此题未设置答案,请点击右侧设置按钮CPU设计实例CPU设计实例2.这个CPU需要多长时间完成设计6个月12个月18个月20个月以上ABCD提交投票最多可选1项CPU设计实例BMOW(BigMessofWires)6.2RichardCPU分析美国华盛顿大学WilliamD.Richard采用VHDL语言设计的16位CPU,仅有200行代码。IREG:指令寄存器(InstructionRegister)PC:程序计数器(ProgramCounter)IAR:间接地址寄存器(IndirectAddressRegister)ALU:算术逻辑单元
(ArithmeticLogicUnit)ACC:累加器(Accumulator)6.2RichardCPU分析6.2.1指令集设计分析代码指令說明运算方法0000halt暂停(haltexecution)0001negate反相(negation)ACC:=-ACC1xxxload立即载入
(immediateload)ifsignbitofxxxis0then
ACC:=0xxxelseACC:=fxxx2xxxdload直接载入(directload)ACC:=M[0xxx]3xxxiload间接载入(indirectload)ACC:=M[M[0xxx]]4xxxdstore直接存储
(directstore)M[0xxx]:=ACC5xxxistore间接存储
(indirectstore)M[M[0xxx]]:=ACC6xxxbr分枝(branch)PC:=0xxx7xxxbrZero零分枝(branchifzero)ifACC=0thenPC:=0xxx8xxxbrPos正分枝(branchifpositive)ifACC>0thenPC:=0xxx9xxxbrNeg负分枝(branchifnegative)ifACC<0thenPC:=0xxxaxxxadd加法ACC:=ACC+M[0xxx]
6.2.2指令编码分析halt与negate沒有运算参数,编码为0000H和0001H。指令编码 IR(15..12):运算码 IR(11..0):运算元四种指令类型载入指令(load,dload,iload)存储指令(dstore,istore)分支指令(br,brZero,brZero,brPos,brNeg)
运算指令,加法运算(add)陳鍾誠
-2024/12/266.2.3设计思路采用Mealy状态机设计方式输出由当前状态state与输入信号t0-t7决定。CPU基本状态
标准状态:reset,fetch,halt指令状态:negate,mload,dload,iload,dstore,istore,brahch,brZero,brPos,brNeg,add等。17陳鍾誠
-2024/12/26typestate_typeis( reset_state,fetch,halt,negate,mload,dload,iload, dstore,istore,branch,brZero,brPos,brNeg,add);signalstate:state_type;typetick_typeis(t0,t1,t2,t3,t4,t5,t6,t7);signaltick:tick_type;6.2.4指令周期分析istore--M[M[0xxx]]:=ACC①IR(11..0)([0xxx])地址总线②数据总线(M[0xxx])
IAR③清除地址线④IAR
地址总线⑤ACC
数据总线⑥使能存储器写操作⑦等待完成写操作⑧清除地址总线、数据总线三态6.2.5时钟节拍产生指令执行最多包含8个CPU周期,每一个CPU周期为一个节拍:t0t1…t7。6.2.6指令译码器设计陳鍾誠
-2024/12/26 proceduredecodeisbegin --Instructiondecoding. caseiReg(15downto12)is whenx"0"=> ifiReg(11downto0)=x"000"then state<=halt; elsifiReg(11downto0)=x"001"then state<=negate; endif; whenx"1"=> state<=mload; whenx"2"=> state<=dload; whenx"3"=> state<=iload; whenx"4"=> state<=dstore; whenx"5"=> state<=istore; whenx"6"=> state<=branch; whenx"7"=> state<=brZero; whenx"8"=> state<=brPos; whenx"9"=> state<=brNeg; whenx"a"=> state<=add; whenothers=>state<=halt; endcase; endproceduredecode;6.2.7微控制器设计微控制器将每条指令分解为若干条微操作。为了提高执行效率,在时钟上升和下降边沿都有执行动作。(1)Fetch指令分析(2)Dload指令分析(3)仿真波形6.2.8RAM设计为了简化设计,在RAM中存放测试程序代码。3.RichardCPU采用的设计方式是Mealy状态机Moore状态机哈佛结构自顶向下设计ABCD提交单选题1分此题未设置答案,请点击右侧设置按钮6.3CPU设计方法①CPU基本结构②指令集设计(功能设计)③指令编码设计④整体设计思路⑤确定指令周期⑥CPU功能模块设计⑦CPU模块联合调试测试8位CPU结构哈佛结构RAM:128ByteROM:4KB6.4指令集设计四种类型指令传送类型指令逻辑运算指令算术运算指令调用及转移指令6.4指令集设计四种类型指令,27条指令传送类型指令(7条指令)逻辑运算指令(5条指令)算术运算指令(7条指令)调用及跳转指令(8条指令)指令寻址方式立即寻址直接寻址寄存器直接寻址操作码操作数指令的操作种类所用操作数数据类型操作数地址地址附加信息寻址方式6.4.1指令组成6.4.2指令编码操作码优化编码的方法有三种:定长编码、哈夫曼编码和扩展编码。定长编码:是指所有指令的操作码长度都是相等的。如果有n个需要编码的操作码,定长操作码的位数最少需要log2n位。哈夫曼编码:哈夫曼方法构造哈夫曼树进行编码。
扩展编码:继承了哈夫曼思想,限制了操作码长度为有限个数。6.4.3指令集设计端口操作6.4.3指令集设计6.4.3指令集设计6.4.3指令集设计6.4.5指令编码设计传送类指令0016.4.5指令编码设计逻辑运算指令0106.4.5指令编码设计算术运算指令0116.4.5指令编码设计跳转及调用指令1004.本课程所设计的CPU包含多少条指令20252736ABCD提交单选题1分此题未设置答案,请点击右侧设置按钮6.5CPU设计思路模块化设计方法(分析模块功能、模块间信号传递)时钟控制信号微程序控制方式6.5.1指令周期确定调用指令实现过程CALLAddr[11..0];
指令编码为10011000,即98H取指操作
IR使能,指令通过总线传送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片选信号有效,ROM读使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能说明控制信号微操作微控制器使能,IR送入指令,生成下一条微程序地址。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0]调用指令实现过程CALLAddr12;
指令编码为10011000,即98H取操作数操作
IR使能,指令通过总线传送到IR,PC+1。M_PCBUS-->IR;PC=PC+1;ROM片选信号有效,ROM读使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能说明控制信号微操作微控制器生成下一条微程序地址。将IR接收到的地址赋给PC高4位。LDIR2;M_uROMCMROM_CSIR-->PC[11..8];addr[7:0]->CM[47:0]112调用指令实现过程CALLAddr12;
指令编码为10011000,即98H取操作数操作
IR使能,指令通过总线传送到IR,PC+1。M_PCBUS-->IR;PC=PC+1;ROM片选信号有效,ROM读使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能说明控制信号微操作微控制器生成下一条微程序地址。将IR接收到的地址赋给PC低8位。LDIR3;M_uROMCMROM_CSIR-->PC[7..0];addr[7:0]->CM[47:0]334调用指令实现过程微操作控制信号功能说明SP-->AR/SP_EN/RAM_ENSP使能,将SP指针地址送到地址寄存器,使能RAMPC[11..8]-->BUSSP+1-->SP/PCH;M_SP_UPPC高8位送到SPSP指针加1SP-->ARPC[7..0]-->BUS/SP_EN/RAM_EN/PCL;SP使能,将SP地址送到地址寄存器,使能RAM。PC高8位送到SPSP+1-->SPPC-->addr12M_SP_UP;/LD_PCSP指针加1PC指向新的地址指令执行
67586.5.2指令周期确定定长指令周期(8个CPU周期)6.6CPU功能模块设计2443时钟模块156791086.6.1时钟节拍设计8个时钟节拍?4个时钟节拍一个节拍包含2个时钟周期时钟上升沿或下降沿触发时钟模块仿真结果时钟模块仿真结果时钟模块仿真结果时钟模块仿真结果5.所设计的指令集的指令周期是多少时钟周期481216ABCD提交单选题1分此题未设置答案,请点击右侧设置按钮指令中的数据通路PC程序计数器只读存储器ROM指令寄存器ROM片选信号有效,ROM读使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能说明控制信号微操作6.6.2PC程序计数器设计PC功能分析加1功能更新地址功能PC数值送到数据总线跳转指令:JMP,JZ,JC调用函数指令:CALL计数器、锁存器(1)PC端口信号分析(2)PC功能实现分析全局异步复位功能
ADDR<=“000000000000”;数据总线高阻态;加1功能
clk_PC上升沿有效;M_PC高电平有效,PC+1ADDR;
clk_PC=nclk2;(2)PC功能实现分析地址更新功能clk_PC上升沿有效,nLD_PC低电平有效新的PCADDRPC数值送到数据总线
clk_PC上升沿有效,nPCH和nPCL低电平有效,注意分两次输出到总线上,先高8位后低8位。
6.什么指令会使PC值传送到数据总线ADDJMPJNZCALLABCD提交单选题1分此题未设置答案,请点击右侧设置按钮6.6.3程序存储器ROM设计clk_ROM=clk2&nclk16.6.4指令存储器IR设计IR功能分析传送指令编码到微控制器生成PC的新地址生成RAM的读写地址IR不作译码操作,仅暂存数据。(1)IR端口定义clk_IR=nclk2(2)IR功能实现分析传送指令编码到微控制器
clk_IR上升沿有效,LD_IR1高电平有效
dataIR。寄存器地址操作Data[0]RSData[1]RD(2)IR功能实现分析生成PC的新地址
clk_IR上升沿有效,LD_IR2高电平有效,data[3..0]PC[11..8];
clk_IR上升沿有效,LD_IR3高电平有效,data[7..0]PC[7..0]。生成RAM的读写地址
clk_IR上升沿有效,LD_IR3高电平有效data[7..0]PC[7..0];
nARen低电平有效,PC[6..0]AR[6..0]。7.生成PC新地址为何需要分两个时钟周期完成PC地址为12位,数据总线为8位PC地址为16位,数据总线为8位PC地址为12位,数据总线为6位PC地址为10位,数据总线为8位ABCD提交单选题1分此题未设置答案,请点击右侧设置按钮功能模块设计顺序寄存器ALURAMSPIO端口微控制器8.本课程设计的CPU的存储器的容量是4KBROM256BRAM128BRAM2KBROMABCD提交16KBROME多选题1分此题未设置答案,请点击右侧设置按钮6.6.5寄存器RN设计RN功能分析数据锁存功能读写功能clk_RN=nclk2D触发器RN功能实现分析(1)复位功能:所有寄存器初始化为0。(2)读寄存器功能:clk_RN上升沿有效,Ri_CS片选信号高电平有效,nRi_EN低电平有效,读信号RDRi高电平有效,将源寄存器选择信号RS对应的寄存器存放的数据读出到数据总线。(3)写寄存器功能:当clk_RN上升沿有效,Ri_CS片选信号高电平有效,写信号WRRi高电平有效,将数据总线上的数据写入到目的寄存器选择信号RD对应的寄存器。6.6.6ALU模块设计ALU功能与结构ALU设计方法8位ALU设计6.6.6.1ALU功能与结构算术逻辑单元(ALU)执行各种算术和逻辑运算算术运算操作加、减、乘、除逻辑运算操作与、或、非、异或计算机CPUALU6.6.6.1ALU功能与结构ALU(算术运算、逻辑运算)输入输出6.6.6.1ALU功能与结构ALU输入操作数以及来自控制单元的控制命令ALU输出运算结果,以及状态信息ADDR0,R1;ALU(算术运算、逻辑运算)输入输出6.6.6.2ALU设计方法设计要求确定ALU功能确定指令操作ALU设计实现124指令执行分析5ALU结构选择39.ALU输出包括哪些内容?运算结果寄存器数据状态信息控制信号ABCD提交多选题1分此题未设置答案,请点击右侧设置按钮(1)确定ALU功能
算术运算:加减运算不带进位加法运算不带进位减法运算带进位加法运算带进位减法运算逻辑运算基本逻辑运算混合逻辑运算(2)确定指令操作ALU功能必须支持指令集中所有的算术运算和逻辑运算类型指令。系统可扩展性。ADDCR0,R1;ALU功能指令集算术逻辑运算指令ALU功能算术逻辑运算指令(2)确定指令操作算术运算指令
(2)确定指令操作逻辑运算指令(3)ALU结构选择
根据运算器内部总线与构成运算器的基本部件的连接情况运算器分为3种基本结构:单总线结构双总线结构三总线结构单总线结构所有部件都接到同一总线上,数据可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送。在同一时间内,只能有一个操作数放在总线上进行传输。单总线结构需要分两次才能将两个操作数输入到ALU,并且需要A、B两个缓冲寄存器。优点:控制电路比较简单。缺点:操作速度较慢。双总线结构两个操作数同时加到ALU进行运算,只需一次操作控制,可得到运算结果。ALU的输出不能直接加到总线上去。必须在ALU输出端设置缓冲寄存器。两条总线都被输入数据占据双总线结构操作的控制要分两步完成:(1)在ALU的两个输入端输入操作数,形成结果并送入缓冲寄存器;(2)暂存器将结果送入目的寄存器。暂存器暂存器三总线结构ALU两个输入端分别连接两条总线,ALU的输出与第三条总线相连。附加直接传送功能,当一个操作数不需要修改,可通过总线开关将数据从输入总线直接传送到输出总线。特点是操作时间快。缺点是结构复杂。(4)指令执行分析ADDR0,R1;两个控制信号不能同时有效。暂存器A控制信号暂存器B控制信号AB(3)指令执行分析ADDR0,R1;在时钟上升沿有效,暂存器A控制信号有效,R0
总线暂存器A
。暂存器A控制信号有效AB(4)指令执行分析ADDR0,R1;在下一个时钟上升沿有效的时候,暂存器B控制信号有效,R1
总线暂存器B。暂存器B控制信号有效AB两个控制信号在不同的时钟节拍内有效,实现暂存器的控制选择。(4)指令执行分析ADDR0,R1;暂存器A控制信号暂存器B控制信号运算类型选择信号操作选择信号进位输入信号AB10.ALU单总线结构的特点是所有部件连接到同一条总线在同一时间内,只能有一个操作数放在总线上进行传输。需要A、B两个缓冲寄存器ALU的输出不能直接加到总线上去。ABCD提交多选题1分此题未设置答案,请点击右侧设置按钮(5)ALU设计实现基于器件电路的ALU设计基于硬件描述语言的ALU设计FPGA验证6.6.6.38位ALU设计基于器件的8位ALU设计基于VHDL的8位ALU设计(1)基于器件的8位ALU设计8位D触发器742734位算术逻辑运算部件74181(1)基于器件的8位ALU设计暂存器设计算术逻辑运算部件设计暂存器电路实现锁存器选择信号清零信号CLRN接高电平R0,R1的数据送入到暂存器A和B。
ADD R0,R1;算术逻辑运算部件设计根据设计的指令集,包括加法、减法、与或非等算术逻辑运算。如何利用现有的多位的算术逻辑器件构建ALU中的算术逻辑运算部件。4位算术逻辑运算器件74181M运算类型选择输入S3—S0操作选择输入Cn进位输入A3—A0数据A输入B3—B0数据B输入4位算术逻辑运算器件74181Cn+4进位输出FA=BA=B比较输出G进位产生输出P进位传送输出F3—F0运算结果输出74181运算功能“加”指算术加;符号“+”指“逻辑加”;减法采用补码进行。算术逻辑部件电路实现暂存器A暂存器BCN为进位输入CN4为低4位向高4位的进位ADD R0,R1;加法运算实现过程ADDR0,R1;
指令编码为01100100,即64H取指操作
IR使能,指令通过总线传送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片选信号有效,ROM读使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能说明控制信号微操作微控制器使能,IR送入指令,生成控制信号。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0]加法运算实现过程微操作控制信号功能说明R0-->BUSRDRi,/Ri_EN寄存器读使能,读信号有效,R0数据送到数据总线BUS-->AM_A暂存器A使能,数据从总线输入到暂存器AR1-->BUSRDRi,/Ri_EN寄存器读使能,读信号有效,R1数据送到数据总线BUS-->BM_B暂存器B使能,数据从总线输入到暂存器B取操作数
暂存器电路锁存器选择信号加法运算实现过程微操作控制信号功能说明A-->ALU,B-->ALUM=0;Cn=1;
S3…S0=1001暂存器数据送到ALU,选择不带进位算术加法运算ALU-->BUS/ALU_EN=0ALU输出使能,ALU运算结果输出到数据总线BUS-->R0M_Rn;WRRi寄存器使能,写信号有效,数据通过总线写入R0寄存器执行指令
算术逻辑部件电路实现暂存器A暂存器B程序状态标志设计算术逻辑运算影响程序状态AC(PSW.0)辅助进位标志位,用于BCD码的十进制调整运算。CY(PSW.1)进位标志位在执行算术指令时,指示运算是否产生进位。ZN(PSW.2)零标志位用来判断最近一次的运算结果是否为零。OV(PSW.3)溢出标志位在执行算术指令时,指示运算是否产生溢出。程序状态标志设计用户可以访问和控制程序状态具有置位、清零、数据存储功能集成置位、清零功能的D触发器程序状态电路实现AC辅助进位标志CY进位标志ZN零标志位OV溢出标志11.本课程设计的CPU程序状态信息包括进位零标志位溢出奇偶标志位ABCD提交多选题1分此题未设置答案,请点击右侧设置按钮移位寄存器设计逻辑左移逻辑右移循环逻辑左移循环逻辑右移移位寄存器电路实现F[1..0]操作选择[00]直接传送[01]循环右移[10]循环左移[11]逻辑左移当ALU_EN信号使能时,通过74244三态缓冲器,将结果输出到数据总线上。四选一选择电路RLR0;循环左移循环左移运算实现过程RLR0;
指令编码为01111000,即78H取指操作
微操作控制信号功能说明PC-->ADDR[11..0]M_ROM;/ROM_ENROM片选信号有效,PC指向程序入口地址BUS-->IR;PC+1-->PCLDIR1;M_PCIR使能,微指令通过总线传送到IR,PC+1。循环左移运算实现过程微操作控制信号功能说明R0-->BUSRDRi,/Ri_EN寄存器读使能,读信号有效,R0数据送到数据总线BUS-->AM_A暂存器A使能,数据从总线输入到暂存器A取操作数
循环左移运算实现过程微操作控制信号功能说明A-->ALU,M=0;Cn=1;
S3…S0=0000暂存器数据送到ALU,直接输出到移位寄存器ALU-->BUS
F1F0=10;/ALU_EN=0循环左移运算,ALU输出使能,ALU运算结果输出到总线BUS-->R0M_Rn;WRRi寄存器使能,写信号有效,数据通过总线写入寄存器R0执行指令
ALU模块(2)基于VHDL语言的ALU设计clk_ALU=nclk212.本课程所设计的ALU功能包括算术逻辑运算乘法运算移位运算程序状态字ABCD提交多选题1分此题未设置答案,请点击右侧设置按钮6.6.7数据存储器RAM设计MOVRi,direct;MOVdirect,Ri;RAM功能分析数据存储功能数据读写操作(1)RAM端口定义高电平写操作有效,低电平读有效clk_RAM=W2MOVR0,[16H](2)RAM功能实现读数据操作 clk_RAM上升沿有效,RAM_CS高电平,wr_nRD低电平,nRAM_EN低电平,[AR]
data
。写数据操作 clk_RAM上升沿有效,RAM_CS高电平,wr_nRD高电平有效,data[AR]。6.6.8堆栈指针SP设计MOVSP,#data;PUSHRi;POPRi;SP功能分析数据存储功能加1功能(出栈)减1功能(压栈)(1)SP端口定义clk_SP=nclk1&nclk2&W2(2)SP功能实现分析数据存储功能
clk_SP上升沿有效,SP_CS高电平,dataSP。加1功能(出栈)clk_SP上升沿有效,SP_CS高电平,SP_UP高电平,nSP_EN低电平有效,SP+1SP,SPAR。减1功能(压栈)clk_SP上升沿有效,SP_CS高电平,SP_DN高电平,nSP_EN低电平有效,SP-1SP,SPAR。13.本课程所设计的堆栈最大容量是多少1024B512B256B128BABCD提交单选题1分此题未设置答案,请点击右侧设置按钮6.6.9IO端口设计MOVP0,Ri;MOVRi,P0;IO端口功能分析输入锁存输出锁存(1)IO端口定义clk_P0=nclk2(2)IO功能实现分析输入锁存clk_PO上升沿有效,P0_CS高电平,nP0_IEN低电平,P0_IN
data。输出锁存clk_PO上升沿有效,P0_CS高电平,nP0_OEN低电平,data
P0_OUT。6.6.10微程序控制器设计微程序控制器基本原理微程序控制器基本结构微程序控制器设计方法基于VHDL的微程序控制器设计6.6.10.1微程序控制器基本原理将指令分解为基本的微命令序列,把操作控制信号编制成微指令,存放到控制存储器(CM)。运行时,从控存中取出微指令,产生指令运行所需的操作控制信号。微操作、微命令、微指令、微程序机器指令ADDR0,R1MOVR0,R1微操作、微命令、微指令、微程序T1:微操作1(微命令1,2…i)T2:微操作2(微命令1,2…j)T3:微操作3(微命令1,2…k)………Tm:微操作n(微命令1,2…x)机器指令ADDR0,R1MOVR0,R1微操作、微命令、微指令、微程序T1:微操作1(微命令1,2…i)T2:微操作2(微命令1,2…j)T3:微操作3(微命令1,2…k)………Tm:微操作n(微命令1,2…x)机器指令ADDR0,R1MOVR0,R1微指令(取指令/取操作数/执行)微操作、微命令、微指令、微程序T1:微操作1(微命令1,2…i)T2:微操作2(微命令1,2…j)T3:微操作3(微命令1,2…k)………Tm:微操作n(微命令1,2…x)机器指令ADDR0,R1MOVR0,R1微指令(取指令/取操作数/执行)一段微程序微操作、微命令、微指令、微程序应用程序
a=b微操作
PC->ADDR(11:0)
机器指令(微程序)MOVR0,R1
微命令(控制信号)M_ROM,ROM_EN微指令
取指令6.6.10.2微程序控制器基本结构微地址形成电路
IR微地址寄存器
µAR控制存储器CM译码器微命令序列微命令字段微地址字段µIR6.6.10.2微程序控制器基本结构控制存储器CM--存放微程序微指令寄存器µIR--存放现行微指令微地址形成电路--提供下一条微地址微地址寄存器µAR--存放现在微地址加法指令的微程序分析ADDR0,R1;取指令
IR使能,指令通过总线传送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片选信号有效,ROM读使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能说明控制信号微操作微控制器使能,IR送入指令,生成控制信号。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0]加法指令的微程序分析微操作控制信号功能说明R0-->BUSRDRi,/Ri_EN寄存器读使能,读信号有效,R0数据送到数据总线BUS-->AM_A暂存器A使能,数据从总线输入到暂存器AR1-->BUSRDRi,/Ri_EN寄存器读使能,读信号有效,R1数据送到数据总线BUS-->BM_B暂存器B使能,数据从总线输入到暂存器B取操作数
加法指令的微程序分析微操作控制信号功能说明A-->ALU,B-->ALUM=0;Cn=1;
S3…S0=1001暂存器数据送到ALU,选择不带进位算术加法运算ALU-->BUS/ALU_EN=0ALU输出使能,ALU运算结果输出到数据总线BUS-->R0M_Rn;WRRi寄存器使能,写信号有效,数据通过总线写入R0寄存器执行指令
14.微程序控制器基本结构包括控制存储器CM微指令寄存器µIR微地址形成电路微地址寄存器ABCD提交程序计数器E多选题1分此题未设置答案,请点击右侧设置按钮(1)控制存储器CM控制存储器与主存储器的区别控制存储器主存储器位置CPU内CPU外器件ROMRAM和ROM内容微程序、微指令程序、指令和数据(2)微指令寄存器µIR微命令(微操作)控制字段:提供当前操作所需的微命令。微地址(顺序控制)字段:微命令字段微地址字段指明后续微地址的形成方式。提供微地址的给定部分。(3)微地址形成电路微程序入口地址:由机器指令操作码形成。后续微地址:由微地址字段、现行微地址等形成。工作过程微地址形成电路
IR微地址寄存器
µAR控制存储器CM译码器微命令序列微命令字段微地址字段µIR取指微指令(1)取机器指令CM取指微指令µIR控制存储器取指微指令微命令字段微地址字段译码器微命令序列
IR微命令字段译码器控制存储器微命令主存机器指令微命令字段微地址字段IR译码器微命令序列(2)转微程序入口IR操作码微地址形成电路入口µAR微命令字段CM首条微指令微地址形成电路
IR微地址寄存器
µAR控制存储器CM译码器微命令序列微命令字段微地址字段µIR取指微指令控制存储器取指微指令微命令字段微地址字段译码器微命令序列
IR控制存储器微命令字段微地址字段译码器微命令序列微地址形成电路
IR微地址寄存器微地址形成电路控制存储器微地址寄存器微命令字段微地址字段(3)执行首条微指令控制存储器译码器µIRµIR译码器微命令字段微地址字段微命令序列微命令操作部件微地址形成电路
IR微地址寄存器
µAR控制存储器CM译码器微命令序列微命令字段微地址字段µIR(4)取后续微指令微地址字段现行微地址微地址形成电路微命令字段微地址字段微地址寄存器微地址形成电路微命令字段微地址字段微地址寄存器微地址寄存器后续微地址µAR微地址形成电路控制存储器CM后续微指令µIR微地址寄存器微命令字段微地址字段(5)执行后续微指令同(3)微地址形成电路
IR微地址寄存器
µAR控制存储器CM译码器微命令序列微命令字段微地址字段µIR微命令字段微地址字段微地址寄存器微地址形成电路微命令字段微地址字段微地址寄存器微地址寄存器微地址形成电路微地址寄存器微命令字段微地址字段(6)返回微程序执行完,返回CM(存放取指微指令的固定单元)。15.微地址形成电路的微地址来自指令的操作码后续微地址程序计数器ABC提交多选题1分此题未设置答案,请点击右侧设置按钮6.6.10.3微程序控制器设计方法根据指令系统,列出微操作序列微指令编码控制微程序流确定指令格式微程序写入控制存储器功能模块设计(1)指令的微操作分析IR使能,指令通过总线传送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片选信号有效,ROM读使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能说明控制信号微操作微控制器使能,IR送入指令,生成控制信号。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0](2)微指令编码直接控制法字段直接编译法字段间接编译法假设控存容量为4K,则需12位来表示下一个微指令地址。控制存储器的容量由实现指令系统所需要的微程序长度决定。12…2324…35下址字段控制字段直接控制编码不译码法:微指令的控制字段中,每一位代表一个微命令。是否发出某个微命令,只要将控制字段中相应位置成“1”或“0”,就可以打开或关闭某个控制门。优点:控制简单、速度快、并行好。缺点:微指令字长度长,需要大容量存储空间。互斥与相容互斥的微操作:是指不能同时或不能在同一个节拍内并行执行的微操作。相容的微操作:是指能够同时或在同一个节拍内并行执行的微操作。把互斥的微操作组合在同一字段中,采用编码方式存取。把相容的微操作组合在不同字段中,各段单独译码。把互斥的微命令编成一组,用二进制编码表示,成为微指令字的一个字段。在微指令寄存器的输出端,为该字段增加一个译码器。优点:缩短了微指令长度。字段直接编译法字段1字段2字段3字段4
译码器1译码器2译码器3译码器4……..……..微操作微操作微操作微操作
IR下一地址分段间接编译法在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法。一个字段的某些微命令,要兼由另一些字段中的某些微命令来解释。缺点:可能会削弱微指令的并行控制能力。译码器1译码器2译码器3译码器4……..……..微操作微操作微操作
IR后继地址译码12微操作(3)控制微程序流当前正在执行的微指令,称为现行微指令,现行微指令所在的控存单元的地址称为现行微地址。现行微指令执行完毕后,下一条要执行的微指令称为后继微指令,后继微指令所在的控存单元地址称为后继微地址。(3)控制微程序流微程序流的控制:是指当前微指令执行完毕后,怎样控制产生后继微指令的微地址。由指令操作码译码器产生由微指令的下址字段指出以增量方式产生后继地址顺序执行微程序。
后继微地址由现行微地址加上一个增量(通常为1)操作码地址码译码器微程序计数器(µPC)控制存储器控制字段转移条件后继地址+1µPC+1微程序入口以增量方式产生后继地址转移的控制操作码地址码译码器控制地址寄存器(µPC)控制存储器控制字段转移条件后继地址微程序入口逻辑控制转移地址以增量方式产生后继地址“计数器”方式下址部分很短,只有两位,它选择三个输入源中的一个作为μPC的输入①(μPC)+1→μPC②转移微地址③操作码译码器的输出。译码器下址控制字段控制存储器μPC译码器地址码操作码+1微程序入口IRμIR转移逻辑转移微地址非顺序执行的下址初始地址:控制存储器的0号或1号单元开机时,微地址形成部件复位;开机后,执行后续指令时,由现行微程序的最后一条微指令给出。转移地址:由微指令给出。微中断地址:入口地址是固定的,由硬件直接赋值给微地址形成部件(微中断信号由程序的中断引起)。(4)微指令格式垂直型微指令一条微指令定义并执行一种基本操作优点:微指令短、简单、规整、便于编写微程序缺点:微程序长,执行速度慢,工作效率低水平型微指令一条微指令定义并执行几种并行的基本操作优点:微程序短、执行速度快缺点:微指令长,编写微程序较麻烦水平微指令与垂直微指令比较水平微指令垂直微指令能力效率灵活性高强低弱速度执行时间快短慢长字长长短掌握难度难容易(5)微指令设计思路采用直接控制编码,增量方式产生后继地址,水平型微指令。所有模块控制信号控制信号汇总PC模块(4条)LD_PC:instd_logic;--装载新地址M_PC:instd_logic;--PC加1控制信号nPCH,nPCL::instd_logic;--PC输出总线控制信号ROM模块(2条)M_ROM:instd_logic;--ROM片选信号ROM_EN:instd_logic;--ROM使能信号控制信号汇总IR模块(4条)LD_IR1,LD_IR2,LD_IR3:instd_logic;--IR指令存储控制信号nARen:instd_logic;--IR中RAM地址控制信号RN模块(4条)Ri_CS :instd_logic;--RN选择信号Ri_EN:instd_logic;--RN寄存器使能RDRi,WRRi:instd_logic;--RN读写信号控制信号汇总ALU模块(13条)M_A,M_B :instd_logic; --暂存器控制信号M_F :instd_logic; --程序状态字控制信号nALU_EN :instd_logic; --ALU运算结果输出使能nPSW_EN :instd_logic; --PSW输出使能C0 :instd_logic; --进位输入 S:instd_logic_vector(4downto0);--运算类型和操作选择F_in:instd_logic_vector(1downto0);--移位功能选择RAM模块(3条)RAM_CS:instd_logic;--RAM片选信号nRAM_EN:instd_logic;--RAM输出使能信号wr_nRD:instd_logic;--读写信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 不同年龄段宠物的饮食调整试题及答案
- 全方位分析六年级语文试题及答案
- 2024年古代文学史历程考题及答案
- 二手车市场中公信力建立的策略试题及答案
- 2024年食品质检员考试的职业吸引力分析试题及答案
- 2024年宠物营养师考试与营养科学发展的关联与试题及答案
- 预测2024年统计学考试可能考查的试题及答案
- 员工心理培训方案
- 太原中考体测试题及答案
- 2024年汽车电路原理基础试题及答案
- AQ/T 2055-2016 金属非金属矿山在用空气压缩机安全检验规范 第1部分:固定式空气压缩机(正式版)
- 瑞幸加盟合同范本
- 【人教部编版】五年级语文下册第13课《人物描写一组 摔跤》教学课件
- 读书分享读书交流会《四世同堂》
- 2024年人教精通版四年级下册英语期末专项复习-阅读理解
- 中医推拿基础培训课件
- 防电信诈骗安全教案
- 产品履历表完
- 保健食品备案产品可用辅料及其使用规定
- 肺癌伴胸腔积液护理查房
- 健康管理中的健康教育与健康促进研究
评论
0/150
提交评论