1 / 107

计算机科学与技术专业

计算机科学与技术专业. 计算机组成原理 武汉科技大学 计算机科学与技术学院. 第五章 中央处理器. 本章内容 5.1 CPU 的组成和功能 5.2  指令周期 5.3  时序产生器和控制方式 5.4 微程序控制器 5.5 微程序设计技术 5.6  硬布线控制器 5.7 传统的 CPU 5.8 流水 CPU 5.9 RISC CPU 5.10 多媒体 CPU. 计算机的核心部分称为中央处理器,简称 CPU 。

ishana
Télécharger la présentation

计算机科学与技术专业

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机科学与技术专业 计算机组成原理 武汉科技大学 计算机科学与技术学院

  2. 第五章 中央处理器 • 本章内容 5.1 CPU的组成和功能 5.2  指令周期 5.3  时序产生器和控制方式 5.4 微程序控制器 5.5 微程序设计技术 5.6 硬布线控制器 5.7 传统的CPU 5.8 流水CPU 5.9 RISC CPU 5.10 多媒体CPU

  3. 计算机的核心部分称为中央处理器,简称CPU。 传统的CPU由运算器和控制器两大部件组成,现代的CPU由运算器、控制器和Cache三大部件组成。 CPU的中心任务是逐条地从内存中取出指令,并执行指令所需的操作,完成程序的预定任务。

  4. 5.1 CPU的组成和功能 5.1.1 CPU器的功能   当用计算机解决某个问题时,我们首先必须为它编写程序。程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。     CPU对整个计算机系统的运行是极其重要的,它具有如下四方面的基本功能: 1. 指令控制--控制程序中指令的执行顺序   程序的顺序控制称为指令控制。由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。

  5. 2. 操作控制--形成执行指令所需的控制信号并送往相应部件   一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。 3. 时间控制--对操作控制信号加以时间上的约束   对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。 4. 数据加工--对数据进行相应的算术逻辑运算及相应加工处理   数据加工就是对数据进行算术运算和逻辑运算处理。

  6. 5.1.2 CPU的基本组成--现代CPU由运算器、cache和控制器三大部分组成。

  7. 算术逻辑单元ALU、累加寄存器AC 数据缓冲寄存器DR、状态条件寄存器PSW 组成: 运算器 作为“执行机构”接受控制器送来的命令,负责对数据进行加工处理,包括:执行所有算术、逻辑运算及比较、测试等。 功能: CPU 程序计数器PC、指令寄存器IR 指令译码器、时序产生器、操作控制器 组成: 控制器 功能: 作为“决策机构”协调和指挥整个计算机系统的操作,包括: (1)从内存中取出一条指令,并指出下一条指令在内存中的位置; (2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作; (3)指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。

  8. 5.1.3CPU中的主要寄存器   在CPU中至少要有六类寄存器。 这些寄存器用来暂存一个计算机字。根据需要,可以扩充其数目。 1.数据缓冲寄存器(DR)   数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。   缓冲寄存器的作用是 : (1)作为CPU和内存、外部设备之间信息传送的中转站; (2)补偿CPU和内存、外围设备之间在操作速度上的差别; (3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。

  9. 2.指令寄存器(IR)保存现行令,并将操作码提供指令译码器译码2.指令寄存器(IR)保存现行令,并将操作码提供指令译码器译码 3.程序计数器(PC) 装入给定值,存储程序首地址,或转移目标地址 自动加1计数,每取出一条指令,自动指向下一条指令 4.地址寄存器(AR)保存当前CPU所访问的内存单元的地址 5.累加寄存器(AC)存放算术逻辑运算的操作数之一及运算结果   累加寄存器AC通常简称为累加器,它是一个通用寄存器。其功能是:当运算器的算术逻辑单元ALU)执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。 目前CPU中的累加寄存器,多达16个,32个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。

  10. 6.状态条件寄存器(PSW)保存算术逻辑运算或测试的状态结果6.状态条件寄存器(PSW)保存算术逻辑运算或测试的状态结果   状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C),运算结果溢出标志(V),运算结果为零标 志(Z),运算结果为负标志(N)等等。这些标志位通常分别由 1位触发器保存。   除此之外,状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。

  11. 5.1.4 操作控制器与时序产生器   数据通路 是许多寄存器之间传送信息的通路。   信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。操作控制器的功能,就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。   根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。 1.硬布线控制器 --是采用时序逻辑技术来实现的; 2.微程序控制器--是采用存储逻辑来实现的; 3.前两种方式的组合

  12. 5.2指令周期 5.2.1 指令周期的基本概念   计算机所以能自动地工作,是因为CPU能从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令……,如此周而复始,构成了一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。 指令周期  CPU从内存取出一条指令并执行这条指令的时间总和。 CPU周期   又称机器周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。 时钟周期  通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期。

  13. 下图示出了采用定长CPU周期的指令周期示意图。下图示出了采用定长CPU周期的指令周期示意图。 说明: (1) 指令周期由若干个CPU周期组成,第一个CPU周期为取指周期。 (2) 一条指令的CPU周期数取决于指令的复杂性,如有无操作数,操作数的多少,操作数的寻址方式等。 (3) 每个机器周期由若干个T周期构成,所含的T周期数有定长和变长两种。

  14. 5.2.2 非访内指令--CLA 的指令周期 CLA是一条非访内指令,其作用是将AC清零,它需要两个CPU 周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。 1取指令阶段 (1)PC的内容20(八进制)被装入地址寄存器AR;(PC) -> AR (2)PC内容加1,变成21,为取下一条指令做好准备;(PC)+1 -> PC (3)地址寄存器的内容被放到地址总线上;(AR) -> ABUS (4)所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器DR;((AR))-> DBUS -> DR (5)缓冲寄存器的内容传送到指令寄存器IR; (DR) -> IR (6)指令寄存器中的操作码被译码或测试; (7)CPU识别出是指令CLA,至此,取指令阶段即告结束。

  15. 2执行指令阶段 (1)操作控制器送一控制信号(清零)给算术逻辑运算单元ALU; (2)ALU响应该控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。

  16. 5.2.3 相加指令--ADDn 的指令周期 ADD n 指令的指令周期由三个CPU周期组成,其作用是将累加 累加器AC的内容与地址为n的存储单元的内容相加,结果仍送累加器AC,即(AC)+(n) -> AC ,以ADD 30为例说明如下:

  17. 1.送操作数地址 第二个CPU周期主要完成送操作数地址。在此阶段,CPU的动作只有一个,那就是把指令寄存器中的地址码部分(30)装入地址寄存器,其中30为内存中存放操作数的地址。(IR)中的地址码 -> AR  2.两操作数相加 第三个CPU周期主要完成取操作数并执行加法操作中。在此阶段,CPU完成如下动作: (1)把地址寄存器中的操作数的地址(30)发送到地址总线上。 (AR)-> ABUS ->存储器 (2)由存储器单元30中读出操作数(6),并经过数据总线传送到缓冲寄存器。(30) -> DBUS -> DR (3)执行加操作:由数据缓冲寄存器来的操作数(6)可送往ALU 的一个输入端,已等候在累加器内的另 一个操作数(因为CLA指令执行结束后累加器内容为零)送往ALU的另一输入端,于是ALU将两数相加,产生运算结果为0+6=6。这个结果放回累加器,替换了累加器中原先的数0 。(DR)+(AC)-> AC

  18. 5.2.4 存数指令--STAn 的指令周期 STA指令的指令周期由三个CPU周期组成,基作用是将累加器AC的内容送地址为n的存储单元,即(AC)->n,以STA 40为例。

  19. 1.送操作数地址 在执行阶段的第一个CPU周期中,CPU完成的动作是把指令寄存器中地址码部分的形式地址40装到地址寄存器。其中数字40是操作数地址。(IR)中的地址码 -> AR 2.存储和数 将累加器中的值存入指令指定的地址单元 (1)累加器的内容(6)被传送到数据缓冲寄存器DR; (AC) -> DR  (2)把地址寄存器的内容(40)发送到地址总线上,40即为将要存入的数据6的内存单元号; (AR) -> ABUS (3)把缓冲寄存器的内容(6)发送到数据总线上; (DR) -> DBUS  (4)数据总线上的数写入到所选中的存储器单元中,即将数6写入到存储器40号单元中。 写入 注意:完成指令操作之后,累加器中仍然保留和数6,而存储器40号单元中原先的内容被冲掉 。

  20. 5.2.5 空操作指令--NOP和转移指令--JMP n 的指令周期 第四条指令即“NOP”指令,这是一条空操作指令。其中第一个CPU周期中取指令,CPU把23号单元的“NOP”指令取出放到指令寄存器,第二个CPU周期中执行该指令。因译码器译出是“NOP”指令,第二个CPU周期中操作控制器不发出任何控制信号。NOP指令可用来调程序占位或延时之用。 JMP指令的指令周期由两个CPU周期组成,即取指周期和执行周期。执行周期将IR中的目标地址送PC。以JMP 21为例。

  21. 1.第一个CPU周期(取指令阶段) CPU把24号单元的“JMP 21”指令取出放至指令寄存器, 同时程序计数器内容加1,变为25,从而取下一条指令做好准备。 2.第二个CPU周期(执行阶段) CPU把指令寄存器中地址码部分21送到程序计数器,从而用新内容21代替PC原先的内容25。这样,下一条指令将不从25单元读出,而是从内存21单元开始读出并执行,从而改变了程序原先的执行顺序。(IR)中的地址码 -> PC 注意 : 执行“JMP 21”指令时,我们此处所给的四条指令组成的程序进入了死循环,除非人为停机,否则这个程序将无休止地运行下去,因而内存单元40中的和数将一直不断地发生变化。当然,我们此处所举的转移地址21是随意的,仅仅用来说明转移指令能够改变程序的执行顺序而已。

  22. 5.2.6 五条指令的取指和执行过程

  23. 5.2.7 用方框图语言表示指令周期    在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。 方框 代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。 菱形 通常用来表示某种判别或测试,不过时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期。

  24. 【例1】教材图5.15所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器, ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。

  25. (1)“ADD R2,R0”指令完成(R0)+(R2)→R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC中。并列出相应的微操作控制信号序列。 (2)“SUB R1,R3”指令完成(R3)-(R1)→R3的操作,画出其指令期流程图,并列出相应的微操作控制信号序列。 【解】(1)“ADD R2,R0”指令是一条加法指令,参与运算的两个数放在寄存器R2和R0中,指令周期流程图包括取指令阶段和执行指令阶段两部分(为简单起见 ,省去了“→” 号左边各寄存器代码上应加的括号)。根据给定的数据通路图,“ADD R2,R0”指令的详细指令周期流程图如图(a)所示。 PC->AR PCO,G,ARi 取指 M->DR R/W=R DRO,G,IRi DR->IR R2->Y R2O,G,Yi R0->X R0O,G,Xi R0+R2->R0 +,G,R0i

  26. PC->AR PCO,G,ARi 图的右边部分标注了每一个机器周期中用到的微操作控制信号序列。 (2)“SUB R1,R3”指令是一条减法指令,其指令周期流程图如图(b)所示。与ADD指令不同的是:在执行指令阶段,微操作控制信号序列有所不同。 取指 M->DR R/W=R DRO,G,IRi DR->IR R3->Y R3O,G,Yi R1->X R1O,G,Xi R3 - R1->R3 -,G,R3i

  27. 5.3时序产生器和控制方式 5.3.1 时序信号的作用和体制  时序信号 CPU中一个类似“作息时间”的东西,使计算机可以准确、迅速、有条不紊地工作。机器一旦被启动,即CPU开始取指令并执行指令时,操作控制器就利用定时脉冲的顺序和不同的脉冲间隔,有条理、有节奏地指挥机器的动作,规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机 各部分提供工作所需的时间标志。为此,需要采用多级时序体制。 [思考] 用二进制码表示的指令和数据都放在内存里,那 么CPU是怎样识别出它们是数据还是指令呢? 从时间上来说,取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后

  28. 面几个CPU周期中,即发生在“执行指令”阶段。面几个CPU周期中,即发生在“执行指令”阶段。 从空间上来说,如果取出的代码是指令,那么一定送往指令寄存器(IR),如果取 出的代码是数据,那么一定送往运算器(DR)。由此可见,时间控制对计算机来说是太重要了。 总之,计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。 硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。一个节拍电位表示一个CPU周期的时间,它包含若干个节拍脉冲,一个主状态周期又可包含若干个节拍电位。 在微程序控制器中,时序信号比较简单,一般采用节拍电位-节拍脉冲二级体制。同样,一个节拍电位表示一个CPU周期的时间,它包含若干个节拍脉冲(时钟周期),节拍脉冲把一个CPU周期分成几个较小的时间隔,这时间间隔可是相等,也可以不相等。

  29. 5.3.2 时序信号产生器 时钟源、 环形脉冲发生器、 节拍脉冲和 读写时序译码逻辑 启停控制逻辑 结构随机型的不同异,微程序控制器中使用的时序信号产生器最简单,其组成包括: 1.时钟源 作用:产生频率稳定且电平匹配的方波时钟脉冲信号,供环形脉冲发生器。 组成:石英 晶体振荡器和与非门组成的正反馈振荡电路。 2.环形脉冲发生器 作用:是产生一组有序的间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲。 组成:循环移位寄存器或计数器

  30. 3. 节拍脉冲和读写时序的译码 一个CPU周期产生四个等间隔节拍脉冲 T1o=C1C2 T2o=C2C3 T3o=C3 T4o=C1 读写时序的译码逻辑表达式: RDo=C2RD’ WEo=C3WE’

  31. 起停控制逻辑 • 一旦接通电源,就会产生原始的节拍电位信号T1o~ T4o,然而只有在启动机器运行的情况下,才允许时序产生器发出CPU工作所需的节拍脉冲,为此需要由启停控制逻辑来控制T1o~ T4o的发送。 T2 T3 T4 T1 RD WE 启停控制逻辑的核心是一个运行标志触发器Cr,当运行触发器Cr为“1”时,送出时序,为“0”时,阻断时序。 注意: 由于启停是随机的,所以必须确保时序从T1开始,到 T4才结束。故在Cr输入端引入一个RS触发器,用T4作Cr的时钟控制端。 T2o T3o T4o T1o WEo RDo Q Q Cr D R ^ T4o CLR 启动 低电平触 发 停机

  32. 5.3.3 控制方式          控制方式 即控制不同操作序列时序信号的方法。常用的有同步控制、异步控制、联合控制三种方式,其实质反映了时序信号的定时方式。 1.同步控制方式   在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都固定不变。根据不同情况,同步控制方式可选取如下方案: (1)采用完全统一的机器周期执行各种不同的指令。 (2)采用不定长机器周期。 (3)中央控制与局部控制结合。 

  33. 2.异步控制方式   其特点是:每条指令、每个操作控制信号需要多少时间就占用多少时间。这意味着每条指令的指令周期可由多少不等的机器周期数组成;也可以是当控制器发出某一操作控制信号后,等待执行部件完成操作后发“回答”信号,再开始新的操作。显然,用这种方式形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步。 3.联合控制方式 此为同步控制和异步控制相结合的方式。 情况(1) 大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束; 情况(2) 机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。

  34. 5.4 微程序控制器 微程序控制器的优点:具有规整性,灵活性,可维护性。 微程序控制器的基本思想: 仿照通常的解题程序方法,把操作控制信号编成所谓的“微指令”存放在只读存储器里,当机器运行时,逐条地读出这些“微指令”,从而产生全机所需要的各种微操作控制信号,使相应部件执行规定的操作。 5.4.1 微命令和微操作 控制部件—控制器—通过控制线发出控制命令 运算器 存储器 外设 计算机 执行控制命令并通过反馈线反馈状态信息 执行部件

  35. 微命令--控制部件通过控制线向执行部件发出的各种控制命令。微命令--控制部件通过控制线向执行部件发出的各种控制命令。 微操作-- 执行部件接受微命令后所进行的操作。 状态测试--执行部件通过反馈线向控制部件反映操作情况,以便使控制部件根据执行部件的状态下达新的命令。 微操作类型— 相容性 在同时或同一CPU周期内可并行执行的操作 相斥性 不能在在同时或同一CPU周期内可并行执行的操作 控制线 控制部件 执行部件 反馈线 控制部件与执行部件通过控制线和反馈信息进行联系。

  36. 简单运算器的数据通路 相斥 相斥 1、2、3相容 4 、 6 、 8与5、7、9也是相容的

  37. 5.4.2 微指令和微程序 微指令 在机器的一个CPU周期中,一组实现一定操作功能的微命 令的组合。 微程序 实现一条机器指令功能的许多条微指令组成的序列。 控制部件与执行部件通过控制线和反馈信息进行联系。 微指令的构成:操作控制字段 + 顺序控制字段 ’ ’ ’

  38. 4.3 微程序控制器原理框图 由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。

  39. 1.控制存储器CS 作用:用来存放实现全部指令系统的微程序 操作:只读 要求:是速度快,读出周期要短。  2.微指令寄存器μIR 作用:用来存放由控制存储器读出的一条微指令信息。 组成:微命令寄存器+微地址寄存器μAR 3.地址转移逻辑 作用:当需要转移时,根据机器指令的操作码字段OP和状态条件及P字段实现对μAR的修改。   微指令由控制存储器读出后直接给出下一条微指令的地址,即微地址,这个微地址信息就存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。

  40. 5.4.4 微程序举例 一条机器指令对应一个微程序,而微程序的总和便可实现整个指令系统。 以“十进制”指令为例:数据通路和微指令流程图如下: RD 0000 PC->AR->ABUS DBUS->DR->IR PC+1 0000 P1 1010 R1+R2->R2 1001 R2+R3->R2 0000 Cy<>0 P2 Cy=0 0001 R2-R3->R2 0000

  41. 微指令格式如下: 设数a和b已存放在上图的R1和R2寄存器中,数6存放在R3中,则完成十进制加法的微程序流程图如上图,算法要求先进行 a+b+6 运算,然后判断结果有无进位,当进位标志Cy=1,则说明结果是正确的,当Cy=0,则说明本不需加6,所以应减去6,从而得到正确的结果。 从流程图可见,“十进制加法”指令对应的微程序由四条微指令组成,每一条微指令用一个方框表示。

  42. (1) 第一条微指令是取指周期,有三个任务: 从内存取指令到IR,对应的微命令有 对程序计数器PC加1 根据OP进行判别测试,转十进制的加法微程序 LDAR RD LDDR LDIR PC+1 所以第一条微指令的二进制代码是000 000 000 000 11111 10 0000 设十进制加法的OP为1010,在P1有效时,修改μAR的内容为1010,则第二条指令从1010处开始执行。 (2) 第二条微指令的工作是完成a+b,即R1+R2->R2, 对应的微命令为: 所以第二条微指令的二进制编码是010 100 100 100 00000 00 1001 因此时P1P2均为0,所以下一条微指令的地址由下址字段决定即1001。 (3) 第三条指令的工作是完成加6修正,即R2+R3->R3,对应的微命 R1->X R2->Y + LDR2

  43. 令为: R2->X R3->Y + LDR2 所以第三条微指令的二进制编码是010 001 001 100 00000 01 0000   若Cy=1,则加6修正正确,下次执行新的一条指令,即微程序又进入取指令周期开始取下一条指令。   若Cy=0,则不应该加6,故由P2对下址字段进行修改,改为0001,将不该加的6重新减去,所以要执行第四条指令。 (4) 第四条微指令的工作是完成减6操作,即R2+R3->R2,对应的微命令为: R2->X R3->Y - LDR2

  44. 所以第四条微指令的二制编码是 010 001 001 001 0000 00 0000 执行完第四条指令后,应转取指令操作,所以下址字段为0000,即重新开始取出下一条指令。   四条微指令的编码如下:

  45. 5.4.5CPU周期与微指令周期的关系  在串行方式的微程序控制器中: 微指令周期 = 读出微指令的时间 + 执行该条微指令的时间 下图示出了某小型机中CPU周期与微指令周期的时间关系: 一个CPU周期为0.8μs,它包含四个等间隔的节拍脉冲T1—T4,每个脉冲宽度为200ns。 用T4作为读取微指令的时间,用T1+T2+T3时间作为执行微指令的时间。可用T4上升沿将运算结果打入某个寄存器。与此同时可用T4间隔读取下条微指令,经200ns时间延迟,下条微指令又从只读存储器读出,并用T1上升沿打入到微指令寄存器。 如忽略触发器的翻转延迟,那么下条微指令的微命令信号就从T1上升沿起就开始有效,直到下一条微指令读出后打入微指令寄存器为止。因此一条微指令的时间恰好是0.8μs,一个CPU周期的时间。

  46. 5.4.6 机器指令与微指令的关系 【问】一会儿取机器指令,一会儿取微指令,它们之间到底是什么关系? 【解】 1.一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的 操作划分成若干条微指令来完成,由微指令进行解释和执行。 2.从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。与此相关,也有相对应的硬设备,请参见CAI演示。3.我们在讲述本章5.2节时,曾讲述了指令与机器周期概念,并归纳了五条典型指令的指令周期,并演示了这五条指令的微程序流程图,每一个CPU周期就对应一条微指令。这就告诉我们如何设计微程序,也将使我们进一步体验到机器指令与微指令的关系。

  47. 【例2】设某计算机运算器框图如图(a)所示,其中ALU为16位的加法器(高电平工作),SA,SB为16位暂存器。4个通用寄存器由D触发器组成,Q端输出,其读、写控制功能见下表。【例2】设某计算机运算器框图如图(a)所示,其中ALU为16位的加法器(高电平工作),SA,SB为16位暂存器。4个通用寄存器由D触发器组成,Q端输出,其读、写控制功能见下表。 机器采用串行微程序控制方式,其微指令周期见图(b)。其中读ROM是从控存中读出一条微指令时间,为1μs;ALU工作是加法器做加法运算,为500ns;m1是读寄存器时间,为500ns;m2是写寄存器的工作脉冲宽度,为100ns。 微指令字长12位,微指令格式如下(未考虑顺序控制字段):

  48. RA0RA1:读R0-R3的选择控制  WA0WA1:写R0-R3的选择控制 R:寄存器读命令  W:寄存器写命令 LDSA:打入SA的控制信号 LDSB:打入SB的控制信号 SB-ALU:传送SB的控制信号 SB-ALU:传送SB的控制信号,并使加法器最低位加1. Reset:清暂存器SB为零的信号 ~:一段微程序结束,转入取机器指令的控制信号 要求:用二进制代码写出如下指令的微程序: (1)“ ADD R0,R1 ”指令,即(R0)+(R1)→R1 (2)“ SUB R2,R3 ”指令,即(R3)-(R2)→R3 (3)“ MOV R2,R3 ”指令,即(R2)→(R3)

  49. 【解】 先画出三条指令的微指令的微程序流程图,如下图所示。 其中未考虑“取指周期”和顺序控制问题,也即微程序仅考虑“执行周期”,微指令序列的顺序用数字标号标在每条微指令的右上角。每一框表示一条微指令。 根据给定的微指令周期时间关系,完成ADD,SUB指令的执行动作需要3条微指令,MOV指令只需2条微指令。用二进制代码写出的三条指令的微程序列于下表中,其中*表示代码随意设置(0或1均可)。

More Related