版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微序列控制单元设计第一页,共九十七页,2022年,8月28日微序列控制器:把控制信号存储在一个查找表ROM,即微代码存储器中。按照正确的次序访问ROM中的内容,查找表ROM就可以以适当的顺序发出控制信号,从而实现处理器指令集中的指令。第二页,共九十七页,2022年,8月28日几个基本概念1.微操作控制信号:如:PCLOAD、ACINC2.微操作:由微操作控制信号控制实现的最基本操作。一个微操作是在一组微操作控制信号的控制下实现的。如:AR←PCARLOAD、PCBUS3.微指令:控制完成一组微操作的二进制编码字。4.微程序或微代码:一系列微指令的有序集合。每一条机器指令对应着一段微程序,通过解释执行这段微程序,完成指令规定的操作功能。
第三页,共九十七页,2022年,8月28日机器指令ADD(在主存中)一段微程序(在控制存储器ROM中)FETCH1(0)100000000微指令FETCH2(1)001010000微指令FETCH3(2)010001000微指令ADD1(8)000001000微指令ADD2(9)000000100微指令第四页,共九十七页,2022年,8月28日7.1.1微序列控制器的操作1.典型微序列控制器的组成
◆
寄存器存储的值与CPU状态图中的一个状态相对 应,且当作地址输入到微代码存储器中。
◆
存储器的输出是一条微指令,即那个地址对应的 存储单元内容。所有微指令集中组成CPU的微代 码或微程序。
◆
下址产生模块产生所有可能的下一地址或下址,然后从中选择一个正确的下址送入寄存器中。7.1微序列控制器设计基础第五页,共九十七页,2022年,8月28日典型微序列控制器的组成第六页,共九十七页,2022年,8月28日2.微指令的组成
微指令由几个域组成,其bit位可分为两组。
◆
微操作(微序列控制器的微序列部分) 或者输入到组合逻辑以生成CPU 的控制信号,或者直接产生控制信号。
◆
下一个地址(微序列控制器的序列控制部分) 用来产生存储到寄存器中的下一个地址,这些位连同指令的操作码和标志值一起输入到组合逻辑以产生下一条微指令的地址。第七页,共九十七页,2022年,8月28日3.微程序控制器的工作过程①启动取指令微程序(PC)→MAR,读出机器指令→IR,PC增量②根据IR中的操作码,通过微地址形成电路产生该指令的微程序的起始微地址,并送入μMAR中。③μMAR中的微地址经译码、驱动,从被选的控存单元中取出一条微指令。④微指令的操作控制字段经译码或直接产生一组微操作控制信号并送往有关的功能部件,控制其完成所规定的微操作。第八页,共九十七页,2022年,8月28日⑤微指令的地址控制字段及有关状态条件送往微地址形成电路,产生下条微指令的地址,再去读取并执行下条微指令。如此循环,直到一条机器指令的微程序全部执行完毕。⑥一条指令的微程序执行结束,再启动取指令微指令或微程序,读取下条机器指令。根据该指令码形成起始微地址,又转入执行它的一段微程序。第九页,共九十七页,2022年,8月28日程序、指令、微程序、微指令、微操作控制信号、微操作的关系第十页,共九十七页,2022年,8月28日4.下址的产生
四种常用方法:
◆当前地址加1:微代码存储器中的下一地址, 即当前地址加1。 微代码程序在微代码存储器中顺序存放。
(提高可读性、微程序易于调试)第十一页,共九十七页,2022年,8月28日◆
绝对地址:由微代码存储器提供。◆映射逻辑 每个微序列控制器必须能够访问正确的执行周期,这功能可用映射逻辑来实现。(1)已读取指令的操作码输入到一个映射硬件,
此硬件将该操作码转换或映射成该指令执行周期的第一条微指令所在的地址;(2)把这一地址装载到寄存器,微序列控制器就能转入到正确的执行过程。第十二页,共九十七页,2022年,8月28日在取指令周期的末端使用一次。◆
微子程序子程序入口地址:由微代码存储器给出绝对地址。返回地址(当前地址加1):存储在微子程序寄存器或硬件堆栈中,此地址用从微子程序中返回。第十三页,共九十七页,2022年,8月28日7.1.2微指令的格式1.典型的微指令格式◆选择域:指明下一条微指令地址的来源◆地址域:指明一个绝对地址◆微操作域:一个或多个第十四页,共九十七页,2022年,8月28日2.微操作的三种编码方法
◆
水平微代码
微指令太长,大部分微操作位不是有效的。列出CPU所要执行的每一个微操作将微指令微操作域中的一位分配给每个微操作例如:一个CPU需要执行50个微操作,它的每一条微指令的微操作域将占用50位。
第十五页,共九十七页,2022年,8月28日◆
垂直微代码所有微操作组合成组,组中的每个微操作被分配一个唯一的编码值。
例如:16个微操作——四位二进制来编码
微指令位数少,但需要译码器。◆
控制信号的直接生成微代码将微操作组合在一起,不同的是,它把控制信号值直接存储在微指令中。
代码的可读性差,调试困难。第十六页,共九十七页,2022年,8月28日7.2非常简单微序列控制器的设计和实现
采用微序列控制器重新设计第六章所讨论的非常简单CPU。指令集、有限状态机、数据通路和ALU单元都是相同的,CPU内部的数据流也没有变化,只有控制信号的产生方法有所改变。第十七页,共九十七页,2022年,8月28日步骤:1.确定基本结构
下地址来源微代码存储器的地址宽度2.编写微程序
顺序控制部分:地址域、选择域操作控制部分:微操作域3.产生微操作控制信号第十八页,共九十七页,2022年,8月28日7.2.1基本布局1.非常简单微序列控制器的基本结构第十九页,共九十七页,2022年,8月28日2.只用到两种可能的下址方式为什么可以这样做?考虑第六章所示的该CPU的状态图。◆取指令周期的最后一个状态FETCH3可以转到 四个执行周期中的一个,这必须通过映射输 入来实现。◆剩余的每一状态都必须转到一个具体的次态, 可以通过绝对跳转来实现。
操作码映射
绝对跳转第二十页,共九十七页,2022年,8月28日必须确定CPU的几件事情:从微代码存储器输出的绝对地址宽度有几位?◆CPU的状态图中共有九种状态,每种状态代表 一条微指令,从中选择的话最少需要4位绝对 地址。既然映射硬件也生成同样宽度的地址, 那么输出的地址就是4位宽度。◆多路选择器输出到寄存器的输入、以及寄存器 输出到微代码存储器的输入,也都是4位宽度。第二十一页,共九十七页,2022年,8月28日7.2.2生成正确序列并设计映射逻辑
设计控制有限状态机状态转换的微代码。1.给有限状态机的每种状态分配一个微代码地址
着重考虑:每一执行周期的第一个状态的地址分配(它决定了实现映射功能的逻辑)(1)映射函数与映射逻辑
◆
映射函数:1IR[1..0]0状态ADD1、AND1、JMP1和INC1→1000、1010、1100和1110(即8,10,12和14)第二十二页,共九十七页,2022年,8月28日◆
映射逻辑第二十三页,共九十七页,2022年,8月28日(2)非常简单微序列控制器的状态地址表第二十四页,共九十七页,2022年,8月28日2.生成正确的微代码序列
为了无条件转移到一种具体的状态,微序列控制器通过地址域和选择域来提供状态的地址。
例如:
FETCH1→FETCH2
0号单元:SEL=0ADDR=00010号单元对应于状态FETCH1SEL=0使微序列控制器从地址域得到它的下一地址把地址域置为0001,使它转到状态FETCH2所对应的单元。第二十五页,共九十七页,2022年,8月28日除了FETCH3,状态图中的每一种状态都可以这么设置。
FETCH3必须映射到正确的执行周期,所以要求SEL=1,表示采用映射地址。第二十六页,共九十七页,2022年,8月28日第二十七页,共九十七页,2022年,8月28日7.2.3用水平微代码生成微操作1.非常简单CPU的微操作及它们的助记符1--微操作发生0--不发生第二十八页,共九十七页,2022年,8月28日2.非常简单微序列控制器初步的水平微代码第二十九页,共九十七页,2022年,8月28日3.非常简单微序列控制器优化后的水平微代码
优化微代码:◆在所有的状态中,ARDR和IRDR的值是相同的。用一个输出AIDR来驱动这两个微操作。◆AIDR组合了两个微操作AR←DR[5..0]和IR←DR[7..6]第三十页,共九十七页,2022年,8月28日第三十一页,共九十七页,2022年,8月28日4.产生所需的控制信号
AR←PC;AR←DR[5..0]PC←PC+1;PC←DR[5..0]DR←MIR←DR[7..6]AC←AC+DR;AC←AC∧DR;AC←AC+1第三十二页,共九十七页,2022年,8月28日
7.2.4用垂直微代码生成微操作
一、从垂直微代码中生成微操作的一般情况
在垂直微代码中,所有的微操作被分组到不同的域中,使得任何状态一个域中最多只有一种微操作是有效的,然后域中的每个微操作被赋予一个唯一的域值。
例如:8种不同的微操作——3位二进制(从000到111之间的任何一个值)第三十三页,共九十七页,2022年,8月28日微操作域位从微代码存储器输出到一个译码器,译码器的输出就是在水平微代码中直接产生的微操作。第三十四页,共九十七页,2022年,8月28日第三十五页,共九十七页,2022年,8月28日二、为非常简单CPU设计垂直微代码
任务:给各种微操作分配不同的域1.指导性原则(1)对于同一状态下发生的两个不同的微操作,将它们分配到不同的域中。每个域在一个周期中只能输出唯一一个微操作的值,如果两个微操作要同时出现,则它们不可能在同一个域中。(2)必要的话在每个域中包括一个NOP操作
第三十六页,共九十七页,2022年,8月28日(3)分配剩下的微操作以便充分地利用微操作的域位。(4)把修改相同的寄存器的微操作组合在同一个域中。2.步骤(1)将微操作分组
◆DRM和PCIN都在FETCH2状态下发生,那么 这两种微操作必须被分配到不同的域中。 则该CPU的微操作至少需要两个域,把它第三十七页,共九十七页,2022年,8月28日标记为M1和M2。包括NOP操作在内每个域的微操作如下:
M1M2
NOPNOPDRMPCIN
(FETCH2:DR←M,PC←PC+1)◆
PCIN和PCDR都能修改PC值,所以我们现在把PCDR 也加到M2中。第三十八页,共九十七页,2022年,8月28日◆把剩下的微操作任意分配给这两个域,但要注意把那些改变同一个寄存器值的微操作放到同一个域中。◆产生如下的分配
M1M2
NOPNOPDRMPCINACINPCDRPLUSARPCANDAIDR第三十九页,共九十七页,2022年,8月28日(2)每个域有五种微操作,因此每个域需要3位。(3)对这种分配进行一些调整,减少总的位数。
◆
AIDR:M2→M1M2的微操作数从5变到4,而M1的从5变 到6。这时,M1仍需要3位,但是M2现在只 需要2位,微代码的宽度就减少了1位。
◆ARPC和PCDR
:M2→M1
M1:8种微操作,需要3位
M2:两种微操作,需要1位
总共4位(最少)第四十页,共九十七页,2022年,8月28日第四十一页,共九十七页,2022年,8月28日三、生成该CPU的最终微代码第四十二页,共九十七页,2022年,8月28日四、增加硬件把这些位值转换为所代表的微操作M1:把这个域输入到一个3-8译码器中
例如:输出2→微操作ARPCM2:只有1位,不需要用译码器,直接驱动PCIN。第四十三页,共九十七页,2022年,8月28日第四十四页,共九十七页,2022年,8月28日实践视角:毫微指令毫微存储器与毫微指令第四十五页,共九十七页,2022年,8月28日
用毫微存储器可以减少微序列控制器中存储器的总的大小。如果10种不同的微指令有完全相同的微操作,那么所有这些微指令可以指向毫微存储器的同一个单元。
例如:一个有128条微指令和32个不同微操作的微序列控制器。◆
水平微代码的微序列控制器
128*32=4,096位存储器
第四十六页,共九十七页,2022年,8月28日假设:这128条微指令中只有16种不同的微操作组合,在一个16*32的毫微存储器中存储这16种模式。每条微指令需要一个4位的域来指向毫微存储器中的一个正确的模式。◆毫微存储器16*32=512位◆
微代码存储器额外的128*4=512位的指针
共512位+512位=1,024位第四十七页,共九十七页,2022年,8月28日7.2.5从微代码直接产生控制信号1.直接输出控制信号
微序列控制器为每个控制信号保留一位,以代替水平微代码设计中的微操作和垂直微代码设计中的M1和M2。对微代码存储器的每个字来说,如果信号有效,则相应的控制位置1,否则置0。第四十八页,共九十七页,2022年,8月28日例如:
FETCH2:DR←M和PC←PC+1
◆
DR←M
◆
PC←PC+1:使PCINC信号有效◆
微指令的其他信号置0使READ信号有效以便从存储器里输出数据使MEMBUS信号有效使此数据输入到内部系统总线上使DRLOAD信号有效以便把数据从总线上装载到DR中第四十九页,共九十七页,2022年,8月28日2.非常简单微序列控制器直接产生控制信号的微代码第五十页,共九十七页,2022年,8月28日3.优化直接生成控制信号的微操作
DRLOAD、MEMBUS和READ信号总有相同的值,把这些信号组合起来。用1位(DMR)驱动这3个信号。第五十一页,共九十七页,2022年,8月28日直接产生控制信号与前两种方法相比:优点:不需要额外的硬件将微代码存储器的输出转换成控制信号缺点:可读性差,难于调试。第五十二页,共九十七页,2022年,8月28日
7.3.1修改状态图
考虑:条件跳转的取指令周期末尾
◆设计两种新的状态:JMPZ1和JPNZ1
◆使FETCH3映射到这两个状态上
◆这两种状态再依据Z的值转移到正确的流程上
7.3相对简单微序列控制器的设计和实现
设计一个用于相对简单CPU的微序列控制单元。类似非常简单CPU,这一设计用到的指令集、数据通道、以及ALU都与硬布线控制设计中的相同。第五十三页,共九十七页,2022年,8月28日第五十四页,共九十七页,2022年,8月28日7.3.2设计顺序硬件和微代码
1.增加完成条件分支的能力
新增加的两个状态JMPZ1和JPNZ1能根据Z的值正确转移到两个下一地址之一:
条件满足:转移到ADDR域所指的地址
条件不满足:转移到微代码存储器的下一地址(当前地址加1)
2.微序列控制器的基本结构
有三种可能的下一地址。用一个两输入控制端的多路选择器作出选择。第五十五页,共九十七页,2022年,8月28日4组合逻辑电路第五十六页,共九十七页,2022年,8月28日3.相对简单微序列控制器的状态分配
◆映射函数和映射逻辑 状态图有39种状态,要一个6位的地址。映射函数:IR[3..0]00第五十七页,共九十七页,2022年,8月28日相对简单微序列控制器的状态分配第五十八页,共九十七页,2022年,8月28日4.下址的产生
状态JMPZ1和JPNZ1各自都用到两个下址之一。 分两步实现:(1)
用一个多路选择器选择所期望的条件
◆Z和Z’可能在JMPZ1和JPNZ1状态下用到, 也可以把一个硬布线的1作为无条件跳转的 输入,多路选择器选择其中的一个值作为条 件值输出。
第五十九页,共九十七页,2022年,8月28日
条件值◆微代码存储器提供条件选择信号用来决定使 用哪个条件第六十页,共九十七页,2022年,8月28日(2)
用组合逻辑将这些条件值,连同微序列控制器提供的一种分支类型,转换成恰当的选择信号以选择下一地 址的正确源。
◆
给定分支类型 分支类型的形式:
IF(condition)THENNextAddress=SOURCE1ELSENextAddress=SOURCE2
或者是
REGARDLESSOFconditionNextAddress=SOURCE第六十一页,共九十七页,2022年,8月28日◆确定准确的分支类型映射和无条件转移的处理很容易,有条件的跳转 就取决于微代码的布局。
JMPZ1和JPNZ1会转移到两个地址之一:
一个分支地址、当前地址加1一种分支类型:
IF(condition)THENNextAddress=ADDRELSENextAddress=CurrentAddress+1第六十二页,共九十七页,2022年,8月28日第六十三页,共九十七页,2022年,8月28日◆
根据分支类型和条件值,为下址多路选择器设计 出产生选择信号的逻辑。 表中列出了期望的值,它导致:
S1=BT,S0=BT’∧(条件值)第六十四页,共九十七页,2022年,8月28日第六十五页,共九十七页,2022年,8月28日5.实现微代码的顺序部分
第六十六页,共九十七页,2022年,8月28日7.3.3用水平微代码完成设计
一、形成微操作表
考察每种状态,列出微操作。把22种微操作合并为微代码的几个域,然后为这些域赋值。第六十七页,共九十七页,2022年,8月28日相对简单微序列控制器的微操作第六十八页,共九十七页,2022年,8月28日二、生成CPU的控制信号第六十九页,共九十七页,2022年,8月28日第七十页,共九十七页,2022年,8月28日三、相对简单CPU的部分控制信号值第七十一页,共九十七页,2022年,8月28日
介绍两种利用冗余来减少控制单元所需的微指令数的方法。7.4减少微指令数1.用微子程序把重复的微操作合并成一个微指令块, 这个微指令块可供两个或更多个执行周期访问。2.用微代码的跳转来访问可供两个或多个周期共享 的微指令。第七十二页,共九十七页,2022年,8月28日7.4.1微子程序
微子程序:微码中供多个周期执行的一组动作序列。
优点:减少微代码所需的存储单元数量
缺点:微序列控制器的硬件必须增强以实现微子 程序的调用和返回 为了说明微子程序是怎样工作的,我们修改 相对简单CPU的设计。
1.把一些状态用微子程序实现第七十三页,共九十七页,2022年,8月28日考虑:状态LDAC1、LDAC2、LDAC3分别和状态STAC1、STAC2、STAC3执行相同的微操作(从存储器获得一个16位的地址,并把它存入AR中)LDAC1、STAC1:DR←M,PC←PC+1,AR←AR+1
LDAC2、STAC2: TR←DR,DR←M,PC←PC+1
LDAC3、STAC3: AR←DR,TR
第七十四页,共九十七页,2022年,8月28日◆
修改最初的设计,把这些状态用一个微子程序实现。
增加两个哑状态:LDAC0和STAC0当LDAC或STAC指令译码时,FETCH3映射到这两个状态中的一个。两个哑状态不执行微操作,只是去调用微子程序。当完成时,微子程序返回到下一地址。(包含LDAC4或STAC4的地址)第七十五页,共九十七页,2022年,8月28日◆
用微子程序修改LDAC和STAC指令的执行周期
第七十六页,共九十七页,2022年,8月28日◆
相对简单CPU修改后的状态分配
SUB1、SUB2、SUB3分别与LDAC1(STAC1)、LDAC2(STAC2)、LDAC3(STAC3)执行同样的微操作。
第七十七页,共九十七页,2022年,8月28日2.修改微序列控制器
微子程序的地址由微代码存储器的地址域ADDR输出提供。微序列控制器必须将返回地址存储起来,一旦微子程序结束,它才能继续执行。
进行如下修改:
◆
增加一个微子程序寄存器以保存返回地址(当前地址加1)第七十八页,共九十七页,2022年,8月28日4第七十九页,共九十七页,2022年,8月28日◆修改下一地址生成硬件,把微子程序寄存器包括 进去,作为产生下一地址的一个可能的源。◆
修改下一地址多路选择器的选择逻辑,使之能够 考虑可能的返回地址。这个逻辑也必须产生一个控 制微子程序寄存器的装载信号。◆
必须扩充分支转移类型的列表,使之包括微子程 序调用和返回的类型。◆
必须修改微代码,使之能够正确的访问微子程序。第八十页,共九十七页,2022年,8月28日修改后的微序列控制器硬件第八十一页,共九十七页,2022年,8月28日3.修改分支转移类型修改后有四种分支转移类型:条件转移无条件映射微子程序调用微子程序返回◆
把BT扩充为两位,以便于在四种类型中进行选择。第八十二页,共九十七页,2022年,8月28日
相对简单微序列控制器修改后的分支类型
第八十三页,共九十七页,2022年,8月28日◆
产生下一地址多路选择器的控制信号S1和S0以及微 子程序寄存器的装载信号L:
S1=BT0S2=BT1∨(BT0’∧条件值)L=BT1∧BT0’第八十四页,共九十七页,2022年,8月28日4.修改执行周期微代码
相对简单微序列控制器修改后的微指令000000第八十五页,共九十七页,2022年,8月28日7.4.2微代码跳转
1.修改状态图
无条件转移和条件转移指令有几个状态执行 同样的微操作。修改状态图使这些指令可以直接访问相同的状态。一个状态集将执行跳转,而另一个状态集将处理不发生跳转的条件转移,于是这些周期将会转移到正确的状态。第八十六页,共九十七页,2022年,8月28日JUMP1:DR←M,AR←AR+1JUMP2:TR←DR,DR←MJUMP3:PC←DR,TRJMPZ:当Z=1时:JMPZY1:DR←M,AR←AR+1JMPZY2:TR←DR,DR←MJMPZY3:PC←DR,TR当Z=0时:JMPZN1: PC←PC+1JMPZN2: PC←PC+1JPNZ指令的状态:当Z=0时:
JPNZY1:DR←M,AR←AR+1JPNZY2:TR←DR,DR←MJPNZY3:PC←DR,TR
当Z=1时:JPNZN1:PC←PC+1JPNZN2:PC←PC+1第八十七页,共九十七页,2022年,8月28日JUMP、JMPZ和JPNZ指令修改后的状态图第八十八页,共九十七页,2022年,8月28日2.相对简单微序列控制器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024中国福州外轮代理限公司招聘15人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年度地磅设备分期付款销售合同3篇
- 2024中国电信产业研究院招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国建筑一局(集团)限公司轨道交通项目部总工程师招聘1人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年度生物医药产品临床试验合同
- 2024中国五洲工程设计集团限公司公开招聘若干人易考易错模拟试题(共500题)试卷后附参考答案
- 《实务专题研究》课件
- 2024年度版权许可合同:授权使用音乐作品进行演出
- 2024年度研发合作合同与研发成果分配协议
- 2024年度品牌授权使用合同标的授权范围与使用期限协议
- 2024年-咨询服务合同协议书范本
- 金融基础知识考试题库300题(含答案)
- 2023-2024学年教科版六年级上册科学第二单元《地球的运动》单元测试卷(含答案)
- 2024 年咨询工程师《宏观经济政策与发展规划》猛龙过江口袋书
- 追觅入职测评题库
- 弹力袜的使用课件
- 2024年医学高级职称-妇女保健(医学高级)笔试历年真题荟萃含答案
- (2024版)小学语文新课标解读:更加注重阅读与写作
- 2023年四川省凉山州中考数学适应性试卷(含答案)
- 华为信用管理手册
- 药店医保政策培训课程
评论
0/150
提交评论