第七章 微序列控制单元设计精选PPT.ppt
《第七章 微序列控制单元设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《第七章 微序列控制单元设计精选PPT.ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章微序列控制单元设计第1页,本讲稿共97页微序列控制器:微序列控制器:把控制信号存储在一个查找表把控制信号存储在一个查找表ROMROM,即微代码存储器中。按照正确的次序访问,即微代码存储器中。按照正确的次序访问ROMROM中的内容,查找表中的内容,查找表ROMROM就可以以适当的顺序发就可以以适当的顺序发出控制信号,从而实现处理器指令集中的指令出控制信号,从而实现处理器指令集中的指令。第2页,本讲稿共97页几个基本概念几个基本概念1.1.微操作控制信号微操作控制信号:如如:PCLOADPCLOAD、ACINCACINC2.2.微操作:微操作:由微操作控制信号控制实现的最基本操作。由微操作控
2、制信号控制实现的最基本操作。一个微操作是在一组微操作控制信号的控制下实现的。一个微操作是在一组微操作控制信号的控制下实现的。如:如:ARPC ARLOADARPC ARLOAD、PCBUSPCBUS3.3.微指令:微指令:控制完成一组微操作的二进制编码字。控制完成一组微操作的二进制编码字。4.4.微程序或微代码:微程序或微代码:一系列微指令的有序集合。一系列微指令的有序集合。每一条机器指令对应着一段微程序,通过解释每一条机器指令对应着一段微程序,通过解释执行这段微程序,完成指令规定的操作功能。执行这段微程序,完成指令规定的操作功能。第3页,本讲稿共97页机器指令机器指令ADDADD(在主存中)
3、(在主存中)一段微程序一段微程序(在控制存储器(在控制存储器ROM中)中)FETCH1FETCH1(0 0)100000000 100000000 微指令微指令FETCH2FETCH2(1 1)001010000 001010000 微指令微指令FETCH3FETCH3(2 2)010001000 010001000 微指令微指令ADD1ADD1(8 8)000001000 000001000 微指令微指令ADD2ADD2(9 9)000000100 000000100 微指令微指令第4页,本讲稿共97页7.1.1 微序列控制器的操作1典型微序列控制器的组成 寄存器存储的值与寄存器存储的值与C
4、PUCPU状态图中的一个状态相对状态图中的一个状态相对 应,且当作地址输入到微代码存储器中。应,且当作地址输入到微代码存储器中。存储器的输出是一条微指令,即那个地址对应的存储器的输出是一条微指令,即那个地址对应的 存储单元内容。所有微指令集中组成存储单元内容。所有微指令集中组成CPUCPU的微代的微代 码或微程序。码或微程序。下址产生模块产生所有可能的下一地址或下址,下址产生模块产生所有可能的下一地址或下址,然后从中选择一个正确的下址送入寄存器中。然后从中选择一个正确的下址送入寄存器中。7.1 微序列控制器设计基础第5页,本讲稿共97页典型微序列控制器的组成典型微序列控制器的组成第6页,本讲稿
5、共97页2微指令的组成微指令由几个域组成,其微指令由几个域组成,其bitbit位可分为两组。位可分为两组。微操作(微序列控制器的微序列部分)微操作(微序列控制器的微序列部分)或者输入到组合逻辑以生成或者输入到组合逻辑以生成CPUCPU 的控制信号,或者直接产生控制信号。的控制信号,或者直接产生控制信号。下一个地址(微序列控制器的序列控制部分)下一个地址(微序列控制器的序列控制部分)用来产生存储到寄存器中的下一个地址,用来产生存储到寄存器中的下一个地址,这些位连同指令的操作码和标志值一起输入这些位连同指令的操作码和标志值一起输入到组合逻辑以产生下一条微指令的地址。到组合逻辑以产生下一条微指令的地
6、址。第7页,本讲稿共97页3.微程序控制器的工作过程 启动取指令微程序启动取指令微程序 (PC)MAR (PC)MAR,读出机器指令,读出机器指令IRIR,PCPC增量增量 根据根据IRIR中的操作码,通过微地址形成电路产生该指令中的操作码,通过微地址形成电路产生该指令 的微程序的起始微地址,并送入的微程序的起始微地址,并送入MARMAR中。中。MAR MAR中的微地址经译码、驱动,从被选的控存单元中的微地址经译码、驱动,从被选的控存单元 中取出一条微指令。中取出一条微指令。微指令的操作控制字段经译码或直接产生一组微操作微指令的操作控制字段经译码或直接产生一组微操作 控制信号并送往有关的功能部
7、件,控制其完成所规定控制信号并送往有关的功能部件,控制其完成所规定 的微操作。的微操作。第8页,本讲稿共97页 微指令的地址控制字段及有关状态条件送往微地址微指令的地址控制字段及有关状态条件送往微地址 形成电路,产生下条微指令的地址,再去读取并执形成电路,产生下条微指令的地址,再去读取并执 行下条微指令。如此循环,直到一条机器指令的微行下条微指令。如此循环,直到一条机器指令的微 程序全部执行完毕。程序全部执行完毕。一条指令的微程序执行结束,再启动取指令微指令或微程序,一条指令的微程序执行结束,再启动取指令微指令或微程序,读取下条机器指令。根据该指令码形成起始微地址,又转入执读取下条机器指令。根
8、据该指令码形成起始微地址,又转入执行它的一段微程序。行它的一段微程序。第9页,本讲稿共97页程序、指令、微程序、微指令、微操作控制信号、微程序、指令、微程序、微指令、微操作控制信号、微操作的关系操作的关系第10页,本讲稿共97页4下址的产生四种常用方法:四种常用方法:当前地址加当前地址加1 1:微代码存储器中的下一地址,微代码存储器中的下一地址,即当前地址加即当前地址加1 1。微代码程序在微代码存储器中顺序存放。微代码程序在微代码存储器中顺序存放。(提高可读性、微程序易于调试)(提高可读性、微程序易于调试)第11页,本讲稿共97页 绝对地址:绝对地址:由微代码存储器提供。由微代码存储器提供。映
9、射逻辑映射逻辑 每个微序列控制器必须能够访问正确的执每个微序列控制器必须能够访问正确的执 行周期,这功能可用映射逻辑来实现。行周期,这功能可用映射逻辑来实现。(1)(1)已读取指令的操作码输入到一个已读取指令的操作码输入到一个映射硬件,映射硬件,此硬件将该操作码转换或映射成该指令执行此硬件将该操作码转换或映射成该指令执行 周期的第一条微指令所在的地址;周期的第一条微指令所在的地址;(2)(2)把这一地址装载到寄存器,微序列控制器就把这一地址装载到寄存器,微序列控制器就 能转入到正确的执行过程。能转入到正确的执行过程。第12页,本讲稿共97页 在取指令周期的末端使用一次。在取指令周期的末端使用一
10、次。微子程序微子程序 子程序入口地址:由微代码存储器给出绝对地址。子程序入口地址:由微代码存储器给出绝对地址。返回地址(当前地址加返回地址(当前地址加1 1):存储在微子程序寄存器):存储在微子程序寄存器 或硬件堆栈中,此地址或硬件堆栈中,此地址 用从微子程序中返回。用从微子程序中返回。第13页,本讲稿共97页7.1.2 微指令的格式1典型的微指令格式 选择域:选择域:指明下一条微指令地址的来源指明下一条微指令地址的来源 地址域:地址域:指明一个绝对地址指明一个绝对地址 微操作域:微操作域:一个或多个一个或多个 第14页,本讲稿共97页2微操作的三种编码方法 水平微代码水平微代码微指令太长,大
11、部分微操作位不是有效的。微指令太长,大部分微操作位不是有效的。l 列出列出CPUCPU所要执行的每一个微操作所要执行的每一个微操作 l 将微指令微操作域中的一位分配给每个微操作将微指令微操作域中的一位分配给每个微操作例如:例如:一个一个CPUCPU需要执行需要执行5050个微操作,个微操作,它的每一条微指令的微操作域将占用它的每一条微指令的微操作域将占用5050位。位。第15页,本讲稿共97页 垂直微代码垂直微代码 所有微操作组合成组,组中的每个微操作所有微操作组合成组,组中的每个微操作 被分配一个唯一的编码值。被分配一个唯一的编码值。例如:例如:1616个微操作个微操作 四位二进制来编码四位
12、二进制来编码 微指令位数少,但需要译码器。微指令位数少,但需要译码器。控制信号的直接生成控制信号的直接生成 微代码将微操作组合在一起,不同的是,它微代码将微操作组合在一起,不同的是,它 把控制信号值直接存储在微指令中。把控制信号值直接存储在微指令中。代码的可读性差,调试困难。代码的可读性差,调试困难。第16页,本讲稿共97页7.2 非常简单微序列控制器的设计和实现采用微序列控制器重新设计第六章所讨论的非采用微序列控制器重新设计第六章所讨论的非常简单常简单CPUCPU。指令集、有限状态机、数据通路和指令集、有限状态机、数据通路和ALUALU单元都单元都是相同的,是相同的,CPUCPU内部的数据流
13、也没有变化,只有控内部的数据流也没有变化,只有控制信号的产生方法有所改变。制信号的产生方法有所改变。第17页,本讲稿共97页步骤:1.1.确定基本结构确定基本结构 下地址来源下地址来源 微代码存储器的地址宽度微代码存储器的地址宽度2.2.编写微程序编写微程序 顺序控制部分:地址域、选择域顺序控制部分:地址域、选择域 操作控制部分:微操作域操作控制部分:微操作域3.3.产生微操作控制信号产生微操作控制信号第18页,本讲稿共97页7.2.1基本布局1.非常简单微序列控制器的基本结构第19页,本讲稿共97页2.只用到两种可能的下址方式为什么可以这样做?为什么可以这样做?考虑第六章所示的该考虑第六章所
14、示的该CPUCPU的状态图。的状态图。取指令周期的最后一个状态取指令周期的最后一个状态FETCH3FETCH3可以转到可以转到 四个执行周期中的一个,这必须通过映射输四个执行周期中的一个,这必须通过映射输 入来实现。入来实现。剩余的每一状态都必须转到一个具体的次态,剩余的每一状态都必须转到一个具体的次态,可以通过绝对跳转来实现。可以通过绝对跳转来实现。l操作码映射操作码映射l绝对跳转绝对跳转第20页,本讲稿共97页必须确定必须确定CPUCPU的几件事情:的几件事情:从微代码存储器输出的绝对地址宽度有几位?从微代码存储器输出的绝对地址宽度有几位?CPU CPU的状态图中共有九种状态,每种状态代表
15、的状态图中共有九种状态,每种状态代表 一条微指令,从中选择的话最少需要一条微指令,从中选择的话最少需要4 4位绝对位绝对 地址。既然映射硬件也生成同样宽度的地址,地址。既然映射硬件也生成同样宽度的地址,那么输出的地址就是那么输出的地址就是4 4位宽度。位宽度。多路选择器输出到寄存器的输入、以及寄存器多路选择器输出到寄存器的输入、以及寄存器 输出到微代码存储器的输入,也都是输出到微代码存储器的输入,也都是4 4位宽度。位宽度。第21页,本讲稿共97页7.2.2 生成正确序列并设计映射逻辑设计控制有限状态机状态转换的微代码。设计控制有限状态机状态转换的微代码。1给有限状态机的每种状态分配一个微代码
16、地址着重考虑:着重考虑:每一执行周期的第一个状态的地址分配每一执行周期的第一个状态的地址分配 (它决定了实现映射功能的逻辑)(它决定了实现映射功能的逻辑)(1)(1)映射函数与映射逻辑映射函数与映射逻辑 映射函数:映射函数:1 1IRIR1.001.00 状态状态ADD1ADD1、AND1AND1、JMP1JMP1和和INC1 INC1 1000 1000、10101010、11001100和和11101110 (即(即8 8,1010,1212和和1414)第22页,本讲稿共97页 映射逻辑映射逻辑第23页,本讲稿共97页(2)(2)非常简单微序列控制器的状态地址表非常简单微序列控制器的状态
17、地址表第24页,本讲稿共97页2 2.生成正确的微代码序列为了无条件转移到一种具体的状态,微序列为了无条件转移到一种具体的状态,微序列 控制器通过地址域和选择域来提供状态的地址。控制器通过地址域和选择域来提供状态的地址。例如:例如:FETCH1 FETCH2FETCH1 FETCH2 0 0号单元:号单元:SEL=0 ADDR=0001SEL=0 ADDR=0001l0 0号单元对应于状态号单元对应于状态FETCH1FETCH1lSEL=0SEL=0使微序列控制器从地址域得到它的下一地址使微序列控制器从地址域得到它的下一地址l把地址域置为把地址域置为00010001,使它转到状态,使它转到状态
18、FETCH2FETCH2所对应所对应 的单元。的单元。第25页,本讲稿共97页除了除了FETCH3FETCH3,状态图中的每一种状态都可以这么设置。,状态图中的每一种状态都可以这么设置。FETCH3FETCH3必须映射到正确的执行周期,所以要求必须映射到正确的执行周期,所以要求SEL=1SEL=1,表示采用映射地址。表示采用映射地址。第26页,本讲稿共97页第27页,本讲稿共97页7.2.3 用水平微代码生成微操作1非常简单CPU的微操作及它们的助记符1-1-微操作发生微操作发生0-0-不发生不发生第28页,本讲稿共97页2非常简单微序列控制器初步的水平微代码第29页,本讲稿共97页3非常简单
19、微序列控制器优化后的水平微代码优化微代码:优化微代码:在所有的状态中,在所有的状态中,ARDRARDR和和IRDRIRDR的值是相同的。的值是相同的。用一个输出用一个输出AIDRAIDR来驱动这两个微操作。来驱动这两个微操作。AIDR AIDR组合了两个微操作组合了两个微操作ARDR5.0ARDR5.0和和 IRDR7.6 IRDR7.6第30页,本讲稿共97页第31页,本讲稿共97页4产生所需的控制信号 ARPC;ARDR5.0PCPC 1;PCDR5.0DRMIRDR7.6ACACDR;ACACDR;ACAC1第32页,本讲稿共97页7.2.4 用垂直微代码生成微操作一、从垂直微代码中生成
20、微操作的一般情况在垂直微代码中,所有的微操作被分组到不在垂直微代码中,所有的微操作被分组到不 同的域中,使得任何状态一个域中最多只有一种同的域中,使得任何状态一个域中最多只有一种 微操作是有效的,然后域中的每个微操作被赋予微操作是有效的,然后域中的每个微操作被赋予 一个唯一的域值。一个唯一的域值。例如:例如:8 8种不同的微操作种不同的微操作 3 3位二进制位二进制 (从(从000000到到111111之间的任何一个值)之间的任何一个值)第33页,本讲稿共97页 微操作域位从微代码存储器输出到一个译微操作域位从微代码存储器输出到一个译码器,译码器的输出就是在水平微代码中直接码器,译码器的输出就
21、是在水平微代码中直接产生的微操作。产生的微操作。第34页,本讲稿共97页第35页,本讲稿共97页二、为非常简单CPU设计垂直微代码 任务:任务:给各种微操作分配不同的域给各种微操作分配不同的域 1.指导性原则指导性原则 (1)(1)对于同一状态下发生的两个不同的微操作,对于同一状态下发生的两个不同的微操作,将它们分配到不同的域中。每个域在一个将它们分配到不同的域中。每个域在一个 周期中只能输出唯一一个微操作的值,如周期中只能输出唯一一个微操作的值,如 果两个微操作要同时出现,则它们不可能果两个微操作要同时出现,则它们不可能 在同一个域中。在同一个域中。(2)(2)必要的话在每个域中包括一个必要
22、的话在每个域中包括一个NOPNOP操作操作 第36页,本讲稿共97页 (3)(3)分配剩下的微操作以便充分地利用微操作的分配剩下的微操作以便充分地利用微操作的 域位。域位。(4)(4)把修改相同的寄存器的微操作组合在同一个把修改相同的寄存器的微操作组合在同一个 域中域中。2.2.步骤步骤(1)将微操作分组将微操作分组 DRM DRM和和PCINPCIN都在都在FETCH2FETCH2状态下发生,那么状态下发生,那么 这两种微操作必须被分配到不同的域中。这两种微操作必须被分配到不同的域中。则该则该CPUCPU的微操作至少需要两个域,把它的微操作至少需要两个域,把它第37页,本讲稿共97页 标记为
23、标记为M1M1和和M2M2。包括包括NOPNOP操作在内每个域的微操作如下:操作在内每个域的微操作如下:M1 M2NOPNOPDRMPCIN(FETCH2:DRM,PCPC1)PCINPCIN和和PCDRPCDR都能修改都能修改PCPC值,所以我们现在把值,所以我们现在把PCDRPCDR 也加到也加到M2M2中。中。第38页,本讲稿共97页 把剩下的微操作任意分配给这两个域,但要注意把剩下的微操作任意分配给这两个域,但要注意把那些改变同一个寄存器值的微操作放到同一个域中。把那些改变同一个寄存器值的微操作放到同一个域中。产生如下的分配产生如下的分配 M1 M2NOPNOPDRMPCINACINP
24、CDRPLUSARPCANDAIDR第39页,本讲稿共97页(2)(2)每个域有五种微操作,因此每个域需要每个域有五种微操作,因此每个域需要3 3位。位。(3)(3)对这种分配进行一些调整,对这种分配进行一些调整,减少总的位数。减少总的位数。AIDRAIDR:M2M1M2M1 M2 M2的微操作数从的微操作数从5 5变到变到4 4,而,而M1M1的从的从5 5变变 到到6 6。这时,。这时,M1M1仍需要仍需要3 3位,但是位,但是M2M2现在只现在只 需要需要2 2位,微代码的宽度就减少了位,微代码的宽度就减少了1 1位。位。ARPCARPC和和PCDRPCDR :M2M1M2M1 M1 M
25、1:8 8种微操作,需要种微操作,需要3 3位位 M2M2:两种微操作,需要两种微操作,需要1 1位位 总共总共4 4位位(最少)(最少)第40页,本讲稿共97页第41页,本讲稿共97页三、生成该CPU的最终微代码 第42页,本讲稿共97页四、增加硬件把这些位值转换为所代表的微操作l M1 M1:把这个域输入到一个:把这个域输入到一个3-83-8译码器中译码器中 例如:例如:输出输出2 2 微操作微操作ARPCARPCl M2 M2:只有:只有1 1位,不需要用译码器,直接驱动位,不需要用译码器,直接驱动PCINPCIN。第43页,本讲稿共97页第44页,本讲稿共97页实践视角:毫微指令 毫微
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七章 微序列控制单元设计精选PPT 第七 序列 控制 单元 设计 精选 PPT
限制150内