Download presentation
Presentation is loading. Please wait.
1
微程序控制器 刘鹏 liupeng@zju.edu.cn Dept. ISEE Zhejiang University
Source: 补充讲义 May 23, 2011 ZDMC – Lec. #19 – 1
2
控制逻辑 数字系统的设计过程可分成两个部分:
数据路径中的寄存器传输设计和控制单元中的控制逻辑设计。控制逻辑是一个有限状态机,其米里型和摩尔型输出控制着数据路径中的操作。 控制单元的输入是外部输入,内部状态信号从数据路径反馈到控制电路。 控制电路是时序电路,可以采用我们前面概括出的时序逻辑设计步骤进行设计。我们现在提出的方法是对经典时序电路设计方法的补充。 设计方法 采用序列寄存器-计数器和译码器 采用数据选择器来设计 采用一位热位设计(每个状态一个触发器) ZDMC – Lec. #19 – 2
3
微程序 微程序控制的基本思想,就是仿照通常的解题程序的方法,把所有的操作控制信号汇集一起编码成所谓的微指令,存放在一个存储单元里。系统运行时,一条又一条地读出这些微指令,从而产生系统所需要的各种操作控制信号,以控制各逻辑部件执行所规定的操作。 控制部件通过控制线向执行部件发出各种控制命令,我们把这种控制命令称为微命令,而执行部件接受微命令所执行的操作叫作微操作。 ZDMC – Lec. #19 – 3
4
微指令的典型结构 微指令除给出微命令信息外,还应给出测试判别信息。 微指令中还包含一个下址字段,该字段将指明存储器中下一条微指令的地址 。
EE141 微指令的典型结构 微指令除给出微命令信息外,还应给出测试判别信息。 微指令中还包含一个下址字段,该字段将指明存储器中下一条微指令的地址 。 微程序是由若干条微码指令组成的序列。 长条框内的符号×表示一个二进制位(bit)。其中微命令字段用于操作控制;×编码为1时表示有微命令,×编码为0时表示无微命令。测试判别字段和下址字段一起实现顺序控制:当测试判别字段无效时(×编码为0),下址字段信息即是下条微指令的地址;当测试判别字段有效时(×编码为1,可以有多个测试),根据反馈线来的“状态”信息对下址字段信息进行修改,修改后的地址即为下条微指令的地址。 ZDMC – Lec. #19 – 4
5
微程序控制器的一般结构 控制存储器存放微码程序 微命令寄存器当前微码指令的控制信息 微地址寄存器存放下条微指令的地址 地址转移逻辑
EE141 微程序控制器的一般结构 控制存储器存放微码程序 微命令寄存器当前微码指令的控制信息 微地址寄存器存放下条微指令的地址 地址转移逻辑 微地址寄存器 存放下条微指令的地址,它可由带R和S端的D触发器组成,其中R端用来清除寄存器,S端用来强置1。后者可用来修改寄存器的内容。也可以不用强置端修改,由打入端分时打入修改内容。 地址转移逻辑 微码指令由ROM读出后直接给出下一条微指令的地址,这个地址就放在微地址寄存器中。如果当前微指令的测试字段Pi标明要测试判别时,意味着微程序出现分支,即出现条件转移。此时,通过测试标志Pi和执行部件反馈的“状态条件”信号所组成的地址转移逻辑电路去修改微地址寄存器的内容,并按修改好的微地址读出下一条微指令。 ZDMC – Lec. #19 – 5
6
微程序控制器的设计 硬件设计和微程序编制 硬件设计选取存储器和寄存器,设计地址转移逻辑。 微程序设计需要确定微程序流程图,即控制算法流程图。 例1按照数据通路,设计微指令格式,确定微程序控制器的基本方案。假定测试判别字段有2位,下址字段有4位。 (讲义例7.11) ZDMC – Lec. #19 – 6
7
微程序控制器的设计例1 ZDMC – Lec. #19 – 7
8
微程序控制器的设计例2 数字比较系统硬件框图及ASM流程图如图7.26所示,请设计其微程序控制器。 微程序流程图 硬件框图 ASM流程图
EE141 微程序控制器的设计例2 数字比较系统硬件框图及ASM流程图如图7.26所示,请设计其微程序控制器。 由于采用控制存储器(E2PROM),流程图中无需写状态名称,每一个状态框变成一条微指令。每条微指令的右上角须写上它在E2PROM中的微地址。本题中只有四条微指令,令其地址为0000,0100,0101,1000,它们是任意安排的用4位二进制表示的微地址。 硬件框图 ASM流程图 微程序流程图 ZDMC – Lec. #19 – 8
9
微程序控制器的设计例2-2 微指令格式 本系统中的控制信号只有3个,所以微命令字段为3位。加上判别测试字段1位,下地址字段4位,故微指令字长度为8位。 ZDMC – Lec. #19 – 9
10
微程序控制器的设计例2-3 当前微地址 微指令二进制代码 微命令 判别 下地址 0 0 0 0 1 0 0 0 1 0 0 0 1 0
0 1 0 0 0 1 1 微程序 微程序控制器硬件结构 ZDMC – Lec. #19 – 10
11
微程序控制器的设计例3-1 采用例7.11的数据通路和图7.32所示的微指令格式,编制如下四种基本操作的微程序流程图,并完成微地址转移逻辑的设计。 00 RAMRj(2) (从RAM中取数至R2) 01 Ri(3)加Rj(4)Rj(4)(R3,R4中二数算术加) 10 Ri(6)RAM (R6中的数存入RAM) Ri(7) ⊕Rj(8)(R7,R8中二数逻辑异) 假设条件: (1)四种基本操作分别用4个状态的编码(00,01,10,11)来表示,该编码值由IR0和IR1两个触发器组成的计数器提供。对应计数器的一种状态,则执行相应的一种基本操作; (2)每当一种基本操作结束时,计数器进行加数而改变状态。但操作开始前计数器的初始状态是随机的,这意味着四种操作执行的顺序可认为是随意的,但时间上必须是连续的; (3)通用寄存器的选择也是随意的; (4)向RAM中取数、存数的地址均由暂存器B给出。 ZDMC – Lec. #19 – 11
12
EE141 微程序控制器的设计例3-2 微程序流程图 图7.34中,每一个方框表示一条微指令。右上角的二进制码表示当前微指令的地址;右下角的数字表示下条微指令的地址(在微程序无分支情况下)或待修改的地址(在微程序有分支情况下)。最上面的第一条微指令的当前地址为0000,它是所有微程序的入口地址,这可以通过系统启动时将微地址寄存器清零来给出。第一条微指令的下地址1000是一个待修改的微地址,在P1测试时,根据IR1,IR2的状态修改微地址寄存器的最后两位触发器,从而得出1000,1001,1010,101l四个微地址,实现了四个微程序的多路并行分支。 ZDMC – Lec. #19 – 12
13
微程序控制器的设计例3-3 当前微地址 八进制表示的微命令(26位) P2 P1 下一微地址(4位) 0 0 0 0
0 1 0 0 ZDMC – Lec. #19 – 13
14
Homework 阅读讲义p.37-51 ZDMC – Lec. #19 – 14
15
Microprogramming How to organize the control signals
Implement control signals by storing 1's and 0's in a ROM Horizontal vs. vertical microprogramming Horizontal: 1 ROM output for each control signal Vertical: encoded control signals in ROM, decoded externally some mutually exclusive signals can be combined helps reduce ROM length ZDMC – Lec. #19 – 15
16
Microprogramming Register Transfer/Microoperations
14 Register Transfer operations become 22 Microoperations: PC ABUS IR ABUS MBR ABUS RBUS AC AC ALU A MBUS ALU B ALU ADD ALU PASS B MAR Address Bus MBR Data Bus ABUS IR ABUS MAR Data Bus MBR RBUS MBR MBR MBUS 0 PC PC + 1 PC ABUS PC Read/Write Request AC RBUS ALU Result RBUS ZDMC – Lec. #19 – 16
17
Horizontal Microprogramming
Horizontal Branch Sequencer , Mux bits 4 x 4 Next State bits 22 Control operation bits 40 bits total RBUS Address Bus MBR ALU B Data Bus ABUS AC MAR MBR MBUS PC IR PC ABUS ALU A RBUS ABUS PC ALU PASS B Read/Write ALU Result ALU ADD Data Bus Request mux mux MBR RBUS MBUS PC + 1 ABUS MAR MBR ABUS ABUS RBUS MBR PC AC AC a IR b Next States A0 A1 A2 A3 ZDMC – Lec. #19 – 17
18
Horizontal Microprogramming
Moore Processor ROM RBUS Address Bus MBR ALU B Data Bus ABUS AC MAR MBR MBUS PC PC ABUS ALU A IR ABUS RBUS ALU PASS B PC Read/Write ALU Result ALU ADD Request mux Data Bus mux Next States MBR RBUS MBUS PC + 1 Current State PC AC MAR MBR ABUS ABUS RBUS MBR ABUS a b IR AC (Address) A0 A1 A2 A3 RES (0000) 0 0 0001 0001 0001 0001 1 IF0 (0001) 0 0 0010 0010 0010 0010 1 1 IF1 (0010) 0 0 0010 0010 0011 0011 IF2 (0011) 0 0 0100 0100 0011 0011 1 IF3 (0100) 0 0 0100 0100 0101 0101 1 OD (0101) 1 1 0110 1001 1011 1110 LD0 (0110) 0 0 0111 0111 0111 0111 1 LD1 (0111) 0 0 1000 1000 0111 0111 1 LD2 (1000) 0 0 0001 0001 0001 0001 1 1 ST0 (1001) 0 0 1010 1010 1010 1010 1 1 ST1 (1010) 0 0 0001 0001 1010 1010 1 AD0 (1011) 0 0 1100 1100 1100 1100 1 AD1 (1100) 0 0 1101 1101 1100 1100 1 1 AD2 (1101) 0 0 0001 0001 0001 0001 1 1 BR0 (1110) 0 1 0001 1111 0001 1111 BR1 (1111) 0 0 0001 0001 0001 0001 1 1 Alpha inputs: 0 = Wait, = IR<15> Beta inputs: 0 = AC<15>, 1 = IR<14> ZDMC – Lec. #19 – 18
19
Horizontal Microprogramming
Advantages: most flexibility -- complete parallel access to datapath control points Disadvantages: very long control words bits for real processors NOTE: Not all microoperation combinations make sense! Output Encodings: Group mutually exclusive signals Use external logic to decode Example: 0 PC, PC + 1 PC, ABUS PC mutually exclusive Save ROM bit with external 2:4 Decoder ZDMC – Lec. #19 – 19
20
Horizontal Microprogramming
Partially Encoded Control Outputs ZDMC – Lec. #19 – 20
21
Vertical Microprogramming
More extensive encoding to reduce ROM word length Typically use multiple microword formats: Horizontal microcode -- next state + control bits in same word Separate formats for control outputs and "branch jumps" may require several microwords in a sequence to implement same function as single horizontal word In the extreme, very much like assembly language programming ZDMC – Lec. #19 – 21
22
Vertical Microprogramming
Branch Jump Compare indicated signal to 0 or 1 Register Transfer Source, Destination, Operation 10 ROM Bits ZDMC – Lec. #19 – 22
23
Vertical Microprogramming
ROM ADDRESS SYMBOLIC CONTENTS BINARY CONTENTS RES RT PC MAR, PC +1 PC IF0 RT MAR M, Read BJ Wait=0, IF IF1 RT MAR M, M MBR, Read BJ Wait=1, IF IF2 RT MBR IR BJ Wait=0, IF RT IR MAR OD BJ IR<15>=1, OD BJ IR<14>=1, ST LD0 RT MAR M, Read LD1 RT MAR M, M MBR, Read BJ Wait=1, LD LD2 RT MBR AC BJ Wait=0, RES BJ Wait=1, RES ZDMC – Lec. #19 – 23
24
Vertical Microprogramming
ROM ADDRESS SYMBOLIC CONTENTS BINARY CONTENTS ST0 RT AC MBR RT MAR M, MBR M, Write ST1 RT MAR M, MBR M, Write BJ Wait=0, RES BJ Wait=1, ST OD1 BJ IR<14>=1, BR AD0 RT MAR M, Read AD1 RT MAR M, M MBR, Read BJ Wait=1, AD AD2 RT AC + MBR AC BJ Wait=0, RES BJ Wait=1, RES BR0 BJ AC<15>=0, RES RT IR PC BJ AC<15>=1, RES 31 words x 10 ROM bits = 310 bits total versus 16 x 38 = 608 bits horizontal ZDMC – Lec. #19 – 24
25
Vertical Programming Controller Block Diagram ZDMC – Lec. #19 – 25
26
Vertical Microprogramming
Condition Logic ZDMC – Lec. #19 – 26
27
Vertical Microprogramming
Writeable Control Store Part of control store addresses map into RAM Allows assembly language programmer to implement own instructions Extend "native" instruction set with application specific instructions Requires considerable sophistication to write microcode Not a popular approach with today's processors Make the native instruction set simple and fast Write "higher level" functions as assembly language sequences ZDMC – Lec. #19 – 27
Similar presentations