计算机组成原理_第1页
计算机组成原理_第2页
计算机组成原理_第3页
计算机组成原理_第4页
计算机组成原理_第5页
已阅读5页,还剩162页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理演示文稿当前1页,总共167页。计算机组成原理当前2页,总共167页。5.1CPU的组成和功能

5.1.1

CPU的功能

当用计算机解决某个问题时,我们首先必须为它编写程序。程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。CPU对整个计算机系统的运行是极其重要的,它具有如下四方面的基本功能:当前3页,总共167页。★指令控制

程序的顺序控制称为指令控制。由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。★操作控制一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。★时间控制对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。★数据加工数据加工就是对数据进行算术运算和逻辑运算处理。当前4页,总共167页。5.1.2CPU的基本组成CPU的基本部分由运算器、cache和控制器三大部分组成。内部结构如下图。当前5页,总共167页。当前6页,总共167页。控制器

由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有:(1)从内存中取出一条指令,并指出下一条指令在内存中的位置;(2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;(3)指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。当前7页,总共167页。运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有两个主要功能:(1)执行所有的算术运算;(2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。当前8页,总共167页。5.1.3CPU中的主要寄存器在CPU中至少要有以下六类寄存器。这些寄存器用来暂存一个计算机字。根据需要,可以扩充其数目。

1.数据缓冲寄存器(DR)2.指令寄存器(IR)3.程序计数器(PC)4.地址寄存器(AR)5.累加寄存器(AC)6.状态条件寄存器(PSW)下面详细介绍这些寄存器的功能与结构。当前9页,总共167页。1.数据缓冲寄存器(DR)数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。缓冲寄存器的作用是:(1)作为CPU和内存、外部设备之间信息传送的中转站;(2)补偿CPU和内存、外围设备之间在操作速度上的差别;(3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。当前10页,总共167页。2.指令寄存器(IR)指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。当前11页,总共167页。3.程序计数器(PC)为了保证程序能连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此PC的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。但是当遇到转移指令如JMP指令时,那么后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下下一条从内存取出的指令将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。当前12页,总共167页。4.地址寄存器(AR)地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用地址寄存器和数据缓冲寄存器。地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时地将信息打入寄存器。当前13页,总共167页。5.累加寄存器(AC)累加寄存器AC通常简称为累加器,它是一个通用寄存器。其功能是:当运算器的算术逻辑单元ALU)执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。目前CPU中的累加寄存器,多达16个,32个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。当前14页,总共167页。6.状态条件寄存器(PSW)状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志C,运算结果溢出标志V,运算结果为零标志Z,运算结果为负标志N等等。这些标志位通常分别由1位触发器保存。除此之外,状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。当前15页,总共167页。5.1.4操作控制器与时序产生器数据通路是许多寄存器之间传送信息的通路。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。操作控制器的功能,就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。当前16页,总共167页。根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。第一种称为硬布线控制器,它是采用时序逻辑技术来实现的;第二种称为微程序控制器,它是采用存储逻辑来实现的;第三种是前两种方式的组合。我们重点介绍微程序控制器。1.硬布线控制器:采用时序逻辑技术来实现的操作控制器。2.微程序控制器:采用存储逻辑来实现的的操作控制器。当前17页,总共167页。5.2指令周期

5.2.1指令周期的基本概念计算机的CPU自动地从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令……,如此周而复始,构成了一个封闭的循环。指令周期

CPU从内存取出一条指令并执行这条指令的时间总和。CPU周期

又称机器周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。时钟周期

通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期。当前18页,总共167页。图5.3指令周期当前19页,总共167页。下面举例来说明指令的执行周期过程。程序指令:S1:CLAADD30STA40NOPJMPS1其中包含有非访内存,和访内存,程序控制转移指令。当前20页,总共167页。5.2.2非访内存指令的指令周期CLA是一条非访内存指令,它需要两个CPU周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。1.取指令阶段(1)程序计数器PC的内容20(八进制)被装入地址寄存器AR;(2)程序计数器内容加1,变成21,为取下一条指令做好准备;(3)地址寄存器的内容被放到地址总线上;当前21页,总共167页。当前22页,总共167页。(4)所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器DR;(5)缓冲寄存器的内容传送到指令寄存器IR;(6)指令寄存器中的操作码被译码或测试;(7)CPU识别出是指令CLA,至此,取指令阶段即告结束。2.执行指令阶段(1)操作控制器送一控制信号给算术逻辑运算单元ALU;(2)ALU响应该控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。当前23页,总共167页。5.2.3取数指令的指令周期ADD指令是一条访问内存取数的指令,指令周期由三个CPU周期组成,如下图所示。1.取指令阶段(同上)2.送操作数地址

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

STA指令是一条访问内存存数的指令,指令周期由三个CPU周期组成,如下图所示。1.取指令阶段(同上)2.送操作数地址在执行阶段的第二个CPU周期中,CPU完成的动作是把指令寄存器中地址码部分的形式地址40装到地址寄存器。其中数字40是操作数地址。当前27页,总共167页。当前28页,总共167页。3.存储和数执行阶段的第三个CPU周期中,累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元(40)中。CPU完成如下动作:(1)累加器的内容(6)被传送到数据缓冲寄存器DR;(2)把地址寄存器的内容(40)发送到地址总线上,40即为将要存入的数据6的内存单元号;(3)把缓冲寄存器的内容(6)发送到数据总线上;(4)数据总线上的数写入到所选中的存储器单元中,即将数6写入到存储器40号单元中。注意

在这个操作之后,累加器中仍然保留和数6,而存储器40号单元中原先的内容被冲掉。当前29页,总共167页。5.2.5空操作指令和转移指令的指令周期第四条指令即“NOP”指令,这是一条空操作指令。其中第一个CPU周期中取指令,CPU把23号单元的“NOP”指令取出放到指令寄存器,第二个CPU周期中执行该指令。因译码器译出是“NOP”指令,第二个CPU周期中操作控制器不发出任何控制信号。NOP指令可用来调机之用。第五条JMP指令的指令周期由两个CPU周期组成,如下图所示。当前30页,总共167页。当前31页,总共167页。1.第一个CPU周期(取指令阶段)CPU把24号单元的“JMP21”指令取出放至指令寄存器,同时程序计数器内容加1,变为25,从而取下一条指令做好准备。2.第二个CPU周期(执行阶段)CPU把指令寄存器中地址码部分21送到程序计数器,从而用新内容21代替PC原先的内容25。这样,下一条指令将不从25单元读出,而是从内存21单元开始读出并执行,从而改变了程序原先的执行顺序。注意执行“JMP21”指令时,此处程序进入死循环,除非人为停机,否则程序将无休止地运行下去。当前32页,总共167页。5.2.6五条指令的取指和执行过程我们把前面的五条典型指令加以归纳,其取指和执行过程如下图所示。当前33页,总共167页。当前34页,总共167页。5.2.7用方框图语言表示指令周期

在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。方框代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。菱形通常用来表示某种判别或测试,不过时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期。我们把前面的五条典型指令加以归纳,用方框图语言表示的指令周期如下图所示。当前35页,总共167页。当前36页,总共167页。【例1】教材图5.15所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。“ADDR2,R0”指令完成(R0)+(R2)→R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC中。列出相应的微操作控制信号序列。(2)“SUBR1,R3”指令完成(R3)-(R1)→R3的操作,画出其指令期流程图,并列出相应的微操作控制信号序列。

当前37页,总共167页。当前38页,总共167页。【解】(1)“ADDR2,R0”指令是一条加法指令,参与运算的两个数放在寄存器R2和R0中,指令周期流程图包括取指令阶段和执行指令阶段两部分(为简单起见,省去了“→”号左边各寄存器代码上应加的括号)。根据给定的数据通路图,“ADDR2,R0”指令的详细指令周期流程图如图(a)所示,图的右边部分标注了每一个机器周期中用到的微操作控制信号序列。(2)“SUBR1,R3”指令是一条减法指令,其指令周期流程图如图(b)所示。与ADD指令不同的是:在执行指令阶段,微操作控制信号序列有所不同。当前39页,总共167页。图5.16加法和减法指令周期流程图当前40页,总共167页。5.3时序产生器和控制方式

5.3.1时序信号的作用和体制时序信号

CPU中一个类似“作息时间”的东西,使计算机可以准确、迅速、有条不紊地工作。机器一旦被启动,即CPU开始取指令并执行指令时,操作控制器就利用定时脉冲的顺序和不同的脉冲间隔,有条理、有节奏地指挥机器的动作,规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机各部分提供工作所需的时间标志。为此,需要采用多级时序体制。当前41页,总共167页。[思考]

用二进制码表示的指令和数据都放在内存里,那么CPU是怎样识别出它们是数据还是指令呢?从时间上来说,取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段。从空间上来说,如果取出的代码是指令,那么一定送往指令寄存器,如果取出的代码是数据,那么一定送往运算器。由此可见,时间控制对计算机来说是太重要了。当前42页,总共167页。总之,计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。在微程序控制器中,时序信号比较简单,一般采用节拍电位-节拍脉冲二级体制。当前43页,总共167页。5.3.2时序信号产生器

微程序控制器中使用的时序信号产生器由时钟源、环形脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑等部分组成。

1.时钟源时钟源用来为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。它通常由石英晶体振荡器和与非门组成的正反馈振荡电路组成,其输出送至环形脉冲发生器。当前44页,总共167页。2.环形脉冲发生器与时序信号译码环形脉冲发生器的作用是产生一组有序的间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲。为了在节拍脉冲上不带干扰毛刺,环形脉冲发生器通常采用循环移位寄存器形式,如下图5.18所示。如图所生产的输出节拍脉冲关系如下图5.19所示。当前45页,总共167页。当前46页,总共167页。图5.19节拍电位与节拍脉冲时序关系图当前47页,总共167页。5.3.3控制方式控制方式即控制不同操作序列时序信号的方法。常用的有同步控制、异步控制、联合控制三种方式,其实质反映了时序信号的定时方式。1.同步控制方式在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都固定不变。根据不同情况,同步控制方式可选取如下方案:(1)采用完全统一的机器周期执行各种不同的指令。(2)采用不定长机器周期。(3)中央控制与局部控制结合。当前48页,总共167页。2.异步控制方式其特点是:每条指令、每个操作控制信号需要多少时间就占用多少时间。这意味着每条指令的指令周期可由多少不等的机器周期数组成;也可以是当控制器发出某一操作控制信号后,等待执行部件完成操作后发“回答”信号,再开始新的操作。显然,用这种方式形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步。当前49页,总共167页。3.联合控制方式此为同步控制和异步控制相结合的方式。情况1

大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束;情况2机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。当前50页,总共167页。5.4

微程序控制器

5.4.1微命令和微操作微命令

控制部件通过控制线向执行部件发出的各种控制命令。微操作执行部件接受微命令后所进行的操作。

控制部件与执行部件通过控制线和反馈信息进行联系。简单运算器数据通路如下图所示。当前51页,总共167页。当前52页,总共167页。5.4.2微指令和微程序

微指令

在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合。微程序实现一条机器指令功能的许多条微指令组成的序列。控制部件与执行部件通过控制线和反馈信息进行联系。具体的微指令结构如下图所示。当前53页,总共167页。当前54页,总共167页。当前55页,总共167页。5.4.3微程序控制器原理框图

微程序控制器原理框图如下图所示。它主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。

当前56页,总共167页。当前57页,总共167页。1.控制存储器控制存储器用来存放实现全部指令系统的微程序,它是一种只读存储器。一旦微程序固化,机器运行时则只读不写。其工作过程是:每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令,如此循环下去。读出一条微指令并执行该微指令的时间总和称为一个微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。当前58页,总共167页。2.微指令寄存器微指令寄存器用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。当前59页,总共167页。3.地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。地址转移逻辑就承担自动完成修改微地址的任务。当前60页,总共167页。5.4.4微程序举例我们举“十进制加法”指令为例,具体看一看微程序控制的过程。

第一条微指令的二进制编码是00000000000011111100000第二条微指令的二进制编码是01010010010000000001001第三条微指令的二进制编码是第四条微指令的二进制编码是0100010011000000001000001000100100100000000000当前61页,总共167页。当前62页,总共167页。5.4.5CPU周期与微指令周期的关系在串行方式的微程序控制器中:

微指令周期=读出微指令的时间+执行该条微指令的时间下图示出了某小型机中CPU周期与微指令周期的时间关系当前63页,总共167页。【分析】一个CPU周期为0.8μs,它包含四个等间隔的节拍脉冲T1—T4,每个脉冲宽度为200ns。用T4作为读取微指令的时间,用T1+T2+T3时间作为执行微指令的时间。例如,在前600ns时间内运算器进行运算,在600ns时间的末尾运算器已经运算完毕,可用T4上升沿将运算结果打入某个寄存器。与此同时可用T4间隔读取下条微指令,经200ns时间延迟,下条微指令又从只读存储器读出,并用T1上升沿打入到微指令寄存器。如忽略触发器的翻转延迟,那么下条微指令的微命令信号就从T1上升沿起就开始有效,直到下一条微指令读出后打入微指令寄存器为止。因此一条微指令的保持时间恰好是0.8μs,也就是一个CPU周期的时间。当前64页,总共167页。5.4.6机器指令与微指令的关系

【问】一会儿取机器指令,一会儿取微指令,它们之间到底是什么关系?【解】1.一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。2.从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。当前65页,总共167页。当前66页,总共167页。【例2】设某计算机运算器框图如图(a)所示,其中ALU为16位的加法器(高电平工作),SA,SB为16位暂存器。4个通用寄存器由D触发器组成,Q端输出,其读、写控制功能见下表。读控制写控制RRA0RA1选择WWA0WA1选择100R0100R0101R1101R1110R2110R2111R3111R30**不读出0**不写入当前67页,总共167页。当前68页,总共167页。当前69页,总共167页。机器采用串行微程序控制方式,其微指令周期见图(b)。其中读ROM是从控存中读出一条微指令时间,为1μs;ALU工作是加法器做加法运算,为500ns;m1是读寄存器时间,为500ns;m2是写寄存器的工作脉冲宽度,为100ns。微指令字长12位,微指令格式如下(未考虑顺序控制字段):RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALUReset~

RA0RA1:读R0-R3的选择控制

WA0WA1:写R0-R3的选择控制当前70页,总共167页。LDSA:打入SA的控制信号LDSB:打入SB的控制信号SB-ALU:传送SB的控制信号SB-ALU:传送SB的控制信号,并使加法器最低位加1.Reset:清暂存器SB为零的信号~:一段微程序结束,转入取机器指令的控制信号要求:用二进制代码写出如下指令的微程序:(1)“ADDR0,R1”指令,即(R0)+(R1)→R1(2)“SUBR2,R3”指令,即(R3)-(R2)→R3(3)“MOVR2,R3”指令,即(R2)→(R3)当前71页,总共167页。【解】先画出三条指令的微指令的微程序流程图,如下图所示。当前72页,总共167页。其中未考虑“取指周期”和顺序控制问题,也即微程序仅考虑“执行周期”,微指令序列的顺序用数字标号标在每条微指令的右上角。每一框表示一条微指令。根据给定的微指令周期时间关系,完成ADD,SUB指令的执行动作需要3条微指令,MOV指令只需2条微指令。用二进制代码写出的三条指令的微程序列于下表中,其中*表示代码随意设置(0或1均可)。当前73页,总共167页。指令微程序代码ADD1.00**101000002.01**100100003.**0101001001SUB4.11**101000005.10**100100006.**1101000101MOV7.10**101000008.**1101001011当前74页,总共167页。5.5微程序设计技术

5.5.1微命令编码微命令编码

对微指令中的操作控制字段采用的表示方法。通常有以下三种方法:1.直接表示法其特点是操作控制字段中的每一位代表一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。当前75页,总共167页。2.编码表示法编码表示法是把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组译码器对每一个微命令信号进行译码,译码输出作为操作控制信号,其微指令结构如下图所示。采用字段译码的编码方法,可以用较小的二进制信息位表示较多的微命令信号。例如3位二进位译码后可表示7个微命令,4位二进制位译码后可表示15个微命令。与直接控制法相比,字译码控制法可使微指令字大大缩短,但由于增加译码电路,使微程序的执行速度稍稍减慢。目前在微程序控制器设计中,字段直接译码法使用较普遍。当前76页,总共167页。当前77页,总共167页。3.混合表示法这种方法是把直接表示法与字段编码法混合使用,以便能综合考虑指令字长、灵活性、执行微程序速度等方面的要求。另外在微指令中还可附设一个常数字段。该常数可作为操作数送入ALU运算,也可作为计数器初值用来控制微程序循环次数。当前78页,总共167页。5.5.2微地址的形成方法

微指令执行的顺序控制问题,实际上是如何确定下一条微指令的地址问题。通常,产生后继微地址有两种方法:1.计数器方式

2.多路转移方式当前79页,总共167页。1.计数器方式

这种方法同程序计数器来产生机器指令地址的方法相类似。在顺序执行微指令时,后继微地址由现行微地址加上一个增量来产生;在非顺序执行微指令时,必须通过转移方式,使现行微指令执行后,转去执行指定后继微地址的下一条微指令。在这种方法中,微地址寄存器通常改为计数器。为此,顺序执行的微指令序列就必须安排在控制存储器的连续单元中。计数器方式的基本特点是:微指令的顺序控制字段较短,微地址产生机构简单。但是多路并行转移功能较弱,速度较慢,灵活性较差。

当前80页,总共167页。2.多路转移方式一条微指令具有多个转移分支的能力称为多路转移。在多路转移方式中,当微程序不产生分支时,后继微地址直接由顺序控制字段给出;当微程序出现分支时,有若干“后选”微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中一个微地址。“状态条件”有n位标志则可实现微程序2的n次方路转移,涉及微地址寄存器的n位。多路转移方式的特点是:能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快,但转移地址逻辑需要用组合逻辑方法设计。当前81页,总共167页。【例3】

微地址寄存器有6位(μA5-μA0),当需要修改其内容时,可通过某一位触发器的强置端S将其置“1”。现有三种情况:(1)执行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)进行16路分支;(2)执行条件转移指令微程序时,按进位标志C的状态进行2路分支;(3)执行控制台指令微程序时,按IR4,IR5的状态进行4路分支。请按多路转移方法设计微地址转移逻辑。当前82页,总共167页。【解】按所给设计条件,微程序有三种判别测试,分别为P1,P2,P3。由于修改μA5-μA0内容具有很大灵活性,现分配如下:(1)用P1和IR3-IR0修改μA3-μA0;(2)用P2和C修改μA0;(3)用P3和IR5,IR4修改μA5,μA4。另外还要考虑时间因素T4(假设CPU周期最后一个节拍脉冲),故转移逻辑表达式如下:当前83页,总共167页。μA5=P3·IR5·T4μA4=P3·IR4·T4μA3=P1·IR3·T4μA2=P1·IR2·T4μA1=P1·IR1·T4μA0=P1·IR0·T4+P2·C·T4由于从触发器强置端修改,故前5个表达式可用“与非”门实现,最后一个用“与或非”门实现。下图仅画出了μA2、μA1、μA0触发器的微地址转移逻辑图。当前84页,总共167页。当前85页,总共167页。5.5.3微指令格式微指令的编译方法是决定微指令格式的主要因素。微指令的格式大体分成两类:水平型微指令和垂直型微指令。1.水平型微指令一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。其一般格式如下:控制字段判别测试字段下一地址字段按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。当前86页,总共167页。2.垂直型微指令微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。其结构类似于机器指令的结构。它有操作码,在一条微指令中只有1~2个微操作命令。每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多。它是采用较长的微程序结构去换取较短的微指令结构。下面举4条垂直型微指令的微指令格式加以说明。设微指令字长为16位,微操作码3位。当前87页,总共167页。(1)寄存器-寄存器传送型微指令其功能是把源寄存器数据送目标寄存器。13~15位为微操作码(下同),源寄存器和目标寄存器编址各5位,可指定31个寄存器。当前88页,总共167页。(2)运算控制型微指令其功能是选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。左、右输入源编址可指定31种信息源之一。当前89页,总共167页。(3)访问主存微指令其功能是将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。存储器编址是指按规定的寻址方式进行编址。第1,2位指定读操作或写操作(取其之一)。当前90页,总共167页。(4)条件转移微指令其功能是根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。9位D字段不足以表示一个完整的微地址,但可以用来替代现行μPC的低位地址。测试条件字段有4位,可规定16种测试条件。011当前91页,总共167页。3.水平型微指令与垂直型微指令的比较(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。(2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。当前92页,总共167页。5.5.4动态微程序设计

微程序设计技术有静态微程序设计和动态微程序设计之分。1.静态微程序设计对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无须改变而且也不好改变,这种微程序设计技术称为静态微程序设计。当前93页,总共167页。2.动态微程序设计

当采用EPROM作为控制存储器时,还可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。采用动态微程序设计时,微指令和微程序可以根据需要加以改变,因而可在一台机器上实现不同类型的指令系统。这种技术又称为仿真其他机器指令系统,以便扩大机器的功能。当前94页,总共167页。5.6硬布线控制器

1.基本思想硬布线控制器是早期设计计算机的一种方法。这种方法是把控制部件看作为产生专门固定时序控制信号的逻辑电路,而此逻辑电路以使用最少元件和取得最高操作速度为设计目标。一旦控制部件构成后,除非重新设计和物理上对它重新布线,否则要想增加新的控制功能是不可能的。这种逻辑电路是一种由门电路和触发器构成的复杂树形逻辑网络,故称之为硬布线控制器。当前95页,总共167页。图5.31硬布线控制器结构方框图当前96页,总共167页。由上图可知:逻辑网络的输入信号来源有三个:(1)来自指令操码译码器的输出Im;(2)来自执行部件的反馈信息Bj;(3)来自时序产生器的时序信号,包括节拍电位信号M和节拍脉冲信号T。逻辑网络N的输出信号就是微操作控制信号,它用来对执行部件进行控制。硬布线控制器的基本原理:C=f(Im,Mi,Tk,Bj)当前97页,总共167页。2.指令执行流程在用硬布线实现的操作控制器中,通常时序产生器除了产生节拍脉冲信号外,还应当产生节拍电位信号。因为在一个指令周期中要顺序执行一系列微操作,需要设置若干节拍电位来定时。例如前面提到的五条指令的指令周期,其指令流程可用下图来表示。当前98页,总共167页。图5.32硬布线控制器的指令周期流程图当前99页,总共167页。

图中M1、M2、M3为三个节拍电位信号,用于定时。由于采用同步工作方式,长指令和短指令对节拍时间的利用都是一样的。这对短指令来讲,在时间的利用上是浪费的,因而也降低了CPU的指令执行速度,影响到机器的速度指标。为了改变这种情况,在设计短指令流程时可以跳过某些节拍。当然在这种情况下,节拍信号发生器的电路相应就要复杂一些。节拍电位信号的产生电路与节拍脉冲产生电路十分类似,它可以在节拍脉冲信号时序器的基础上产生,运行中以循环方式工作,并与节拍脉冲保持同步。当前100页,总共167页。3.微操作控制信号的产生在微程序控制器中,微操作控制信号由微指令产生,并且可以重复使用。在硬布线控制器中,某一微操作控制信号由布尔代数表达式描述的输出函数产生。设计微操作控制信号的方法和过程是,根据所有机器指令流程图,寻找出产生同一个微操作信号的所有条件,并与适当的节拍电位和节拍脉冲组合,从而写出其布尔代数表达式并进行简化,然后用门电路或可编程器件来实现。为了防止遗漏,设计时可按信号出现在指令流程图中的先后次序书写,然后进行归纳和简化。要特别注意控制信号是电位有效还是脉冲有效,如果是脉冲有效,必须加入节拍脉冲信号进行相“与”。当前101页,总共167页。[例4]

上图5.32中五条指令的微操作控制信号举例,注意T脉冲的顺序。

LDAR=M1·T2+M2(ADD+STA)·T2

LDDR=M1·T3+M3(ADD+STA)·T3

LDIR=M1·T4

RD=M1+M3·ADD

WE=M3·STA其中M1、M2、M3是三个节拍电位信号;T3、T4为时钟周期信号;ADD、STA、JMP是指令OP字段译码器的输出信号。当前102页,总共167页。5.7传统CPU

5.7.1M6800CPU

M6800CPU是一个比较典型的单总线结构的8位微理器,它通过内部的一条总线将微处理器内部的各个逻辑部件连接起来,而外部总线将CPU与外面的部件连接起来。这样,它描述了内部总线和外部总线,也描述了本章中讨论的算术逻辑运算部件ALU、各类寄存器和控制部件的关系。

M6800CPU的逻辑框图如下:当前103页,总共167页。图3.33M6800CPU的逻辑框图当前104页,总共167页。5.7.2Intel8088CPUIntel8088是一种通用的准16位微处理器,其内部结构为16位,与外部交换的数据为8位。它可以处理16位数据(具有16位运算指令,包括乘除法指令),也可以处理8位数据。它有20条地址线,所以直接寻址能力达到1M字节。采用40条引线封装,单相时钟,电源为5V。8088CPU的内部结构如下:当前105页,总共167页。图5.348088CPU的内部结构当前106页,总共167页。5.7.3IBM370系列CPUIBM370系列机其字长32位,ALU部件按功能不同分为如下三个子部件:(1)定点运算,包括整数计算和有效地址的计算;(2)浮点运算;(3)变长运算,包括十进制算术运算和字符串操作。

IBM370系列机的内部结构如下图所示。当前107页,总共167页。图3.35IBM370系列计算机的CPU结构当前108页,总共167页。在370机系统中,任何时刻CPU都只能处于几种控制状态中的一种。当它在执行操作系统的一段程序时,操作系统明确地控制着CPU,这时我们说CPU处于管理状态(简称管态)。某些指令只允许在这个状态下执行。当CPU在执行用户程序时,则认为处于正常的解题状态(简称目态)。CPU在任何时刻的状态都是由它的PSW来说明的。当前109页,总共167页。5.7.4Intel80486CPU1.486CPU的特点Intel80486是32位的CPU,内部结构见文字教材图5.36。其主要特点如下:

(1)通过采用流水技术,以及微程序控制和硬布线逻辑控制相结合的方式,进一步缩短可变长指令的译码时间,达到基本指令可以在一个时钟周期内完成。

(2)486芯片内部包含一个8KB的数据和指令混合性cache,为频繁访问的指令和数据提供快速的内部存储,从而使系统总线有更多的时间用于其他控制。

当前110页,总共167页。

(3)486芯片内部包含了增强性80387协处理器,称为浮点运算部件(FPU)。由于FPU功能扩充,且放在CPU内部,使引线缩短,故速度比80387提高了3~5倍。

(4)486CPU的内部数据总线宽度为64位,这也是它缩短指令周期的一个原因。而外部数据总线的宽度也可以自动转换。

(5)地址信号线扩充到32位,可以处理4GB的物理存储空间。如果利用虚拟存储器,其存储空间达64TB。(6)486CPU采用单倍的时钟频率,而在CLK端加入的时钟频率,就是它内部CPU的时钟频率,因此大大增加了电路的稳定性。当前111页,总共167页。2.486CPU的内部结构486的内部结构包含如下九个功能部件:总线接口部件、小容量cache、指令预取部件、指令译码器、段管理部件、页管理部件、定点运算部件ALU、浮点运算部件FPU及操作控制部件。总线接口部件主要用来产生访问外部存储器和I/O口所需要的地址、数据、命令信号。段管理部件用来把指令指定的逻辑地址(程序中指定的虚拟地址)变成线性地址。当前112页,总共167页。页管理部件的功能是把线性地址换算成物理地址。指令预取部件中包含了32字节的预取队列寄存器,可以存放多条指令,因而是一种流水线结构。ALU中包含了通用寄存器组以及各种算术逻辑运算操作。FPU则完成浮点数运算、二进制整数运算、十进制数串运算等。操作控制部件采用微程序控制和硬布线控制相结合的方式,因而较好地发挥了效率。当前113页,总共167页。5.8流水CPU

5.8.1并行处理技术

并行性的两种含义:同时性指两个以上事件在同一时刻发生;并发性指两个以上事件在同一时间间隔内发生。计算机的并行处理技术概括起来主要有以下三种形式:

1.时间并行2.空间并行3.时间并行+空间并行当前114页,总共167页。1.时间并行时间并行指时间重叠,在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。时间并行性概念的实现方式就是采用流水处理部件。这是一种非常经济而实用的并行技术,能保证计算机系统具有较高的性能价格比。目前的高性能微型机几乎无一例外地使用了流水技术。当前115页,总共167页。2.空间并行空间并行指资源重复,在并行性概念中引入空间因素,以“数量取胜”为原则来大幅度提高计算机的处理速度。大规模和超大规模集成电路的迅速发展为空间并行技术带来了巨大生机,因而成为目前实现并行处理的一个主要途径。空间并行技术主要体现在多处理器系统和多计算机系统。但是在单处理器系统中也得到了广泛应用。3.时间并行+空间并行指时间重叠和资源重复的综合应用,既采用时间并行性又采用空间并行性。显然,第三种并行技术带来的高速效益是最好的。当前116页,总共167页。5.8.2流水CPU的结构1.流水计算机的系统组成

现代流水计算机的系统组成原理如下图所示。其中CPU按流水线方式组织,通常由三部分组成:指令部件、指令队列、执行部件。这三个功能部件可以组成一个3级流水线。当前117页,总共167页。图3.37流水计算机系统组成原理示意图当前118页,总共167页。2.流水CPU的时空图为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。下面通过时空图来证明这个结论。图(a)表示流水CPU中一个指令周期的任务分解。当前119页,总共167页。图(b)表示非流水计算机的时空图。当前120页,总共167页。图(c)表示流水计算机的时空图。当前121页,总共167页。图(d)表示超标量流水计算机的时空图。当前122页,总共167页。3.流水线分类指令流水线:指令步骤的并行。将指令流处理过程分为取指令、译码、执行、写回等几个并行处理过程段。目前几乎所有高性能计算机都采用指令流水线。算术流水线:运算操作步骤的并行。如流水加法器、流水乘法器、流水除法器等。现代计算机中已广泛采用了流水的算术运算器。处理机流水线:又称为宏流水线,是指程序步骤的并行。由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务。数据流从第一台处理机输入,经处理后被送入与第二台处理机相联的缓冲存储器中。第二台处理机从该存储器中取出数据进行处理,然后传送给第三台处理机,如此串联下去。随着高档微处理器芯片的出现,构造处理机流水线将变得容易了。处理机流水线应用在多机系统中。当前123页,总共167页。5.8.3流水线中的主要问题

流水过程中通常会出现以下三种相关冲突,使流水线断流。

1.资源相关2.数据相关3.控制相关1.资源相关资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。假定一条指令流水线由五段组成。由下表可以看出,在时钟4时,I1与I4两条指令发生争用存储器资源的相关冲突。当前124页,总共167页。解决资源相关冲突的办法:(1)第I4条指令停顿一拍后再启动;(2)增设一个存储器,将指令和数据分别放在两个存储器中。两条指令同时访问内存发生资源相关冲突当前125页,总共167页。2.数据相关在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。如下表所示,ADD指令与SUB指令发生了数据相关冲突。当前126页,总共167页。两条指令发生数据相关冲突解决数据相关冲突的办法:在流水CPU的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。当前127页,总共167页。3.控制相关控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线发生断流。为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术:

(1)延迟转移法

(2)转移预测法当前128页,总共167页。(1)延迟转移法:由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。(2)转移预测法:用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。当前129页,总共167页。【例4】流水线中有三类数据相关冲突:写后读相关;读后写相关;写后写相关。判断以下三组指令各存在哪种类型的数据相关。(1)I1:ADDR1,R2,R3;(R2)+(R3)->R1I2:SUBR4,R1,R5;(R1)-(R5)->R4(2)I3:STAM(x),R3;

(R3)->M(x),M(x)是存储器单元

I4:ADDR3,R4,R5;(R4)+(R5)->R3(3)I5:MULR3,R1,R2;(R1)×(R2)->R3I6:ADDR3,R4,R5;(R4)+(R5)->R3当前130页,总共167页。【解】第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出R1内容,发生RAW相关。第(2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指令在I3指令读出R3内容前就写入R3,发生WAR相关。第(3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运算时间,变成指令I6在指令I5写入R3前就写入R3,导致R3的内容错误,发生WAW相关。当前131页,总共167页。5.8.4pentiumCPU

1.pentium的技术性能pentium是Intel公司生产的超标量流水处理器,早期使用5V工作电压,后期使用3.3V工作电压。CPU的主频是片外主总线时钟频率(60MHz或66MHz)的倍频,有120,166,200MHz等多种。CPU内部的主要寄存器宽度为32位,故认为它是一个32位微处理器。但它通向存储器的外部数据总线宽度为64位,每次总线操作可以同时传输8个字节。以主总线(存储器总线)时钟频率66MHz计算,64位数据总线可使CPU与主存的数据交换速率达到528MB/s。CPU支持多种类型的总线周期,其中一种称猝发模式,在此模式下,可在一个总线周期内读出或写入256位(32字节)的数据。当前132页,总共167页。CPU外部地址总线宽度是36位,但一般使用32位宽,故物理地址空间为4096MB(4GB)。虚拟地址空间为64TB,分页模式除支持4KB页面外(与486相同),还支持2MB和4MB页面。其中2MB页面的分页模式必须使用36位地址总线。CPU内部分别设置指令cache和数据cache,外部还可接L2cache。CPU采用U,V两条指令流水线,能在一个时钟周期内发射两条简单的整数指令,也可发射一条浮点指令。操作控制器采用硬布线控制和微程序控制相结合的方式。大多数简单指令用硬布线控制实现,在一个时钟周期内执行完毕。对微程序实现的指令,也在2~3个时钟周期内执行完毕。当前133页,总共167页。pentium具有非固定长度的指令格式,9种寻址方式,191条指令,但是在每个时钟周期又能执行两条指令。因此它具有CISC和RISC两者的特性,不过具有的CISC特性更多一些,因此被看成为一个CISC结构的处理器。以CISC结构实现超标量流水线,并有转移目标缓冲器(BTB)方式的转移预测能力,堪称为当代CISC机器的经典之作。当前134页,总共167页。2.奔腾CPU的结构框图CPU的结构框图请参见教材。

(1)超标量流水线(2)指令cache和数据cache

(3)浮点运算部件

(4)动态转移预测技术

当前135页,总共167页。5.9

RISCCPU

5.9.1RISCCPU

RISC的三个要素是:(1)一个有限的简单的指令集;(2)CPU配备大量的通用寄存器;(3)强调对指令流水线的优化。基于三要素的RISC机器的特征是:(1)使用等长指令,目前的典型长度是4字节。(2)寻址方式少且简单,一般为2~3种,最多不超过4种,绝不出现存储器间接寻址方式。(3)只有取数指令、存数指令访问存储器。指令中最多出现RS型指令,绝不出现SS型指令。当前136页,总共167页。(4)指令集中的指令数目一般少于100种,指令格式一般少于4种。(5)指令功能简单,控制器多采用硬布线方式,以期更快的执行速度。(6)平均而言,所有指令的执行时间为一个处理时钟周期。(7)指令格式中用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数不少于16个。(8)强调通用寄存器资源的优化使用。(9)支持指令流水并强调指令流水的优化使用。(10)RISC技术的复杂性在它的编译程序,因此软件系统开发时间比CISC机器长。当前137页,总共167页。RISC简单,精简一般小于100一般小于4一般小于4比较内容指令系统指令数目指令格式寻址方式指令字长CISC复杂,庞大一般大于200一般大于4一般大于4不固定等长只有LOAD/STORE指令相差不大绝大多数在一个周期内完成较容易较长绝大多数为硬布线控制可访存指令各种指令使用频率各种指令执行时间优化编译实现程序源代码长度控制器实现方式软件系统开发时间不加限制相差很大相差很大很难较短绝大多数为微程序控制较短较长RISC与CISC的主要特征对比当前138页,总共167页。5.9.2RISCCPU实例

——MC88110CPU1.MC88110CPU结构框图MC88110CPU是一个RISC处理器。处理器有12个执行功能部件,3个cache和1个控制部件。其结构框图如下所示。当前139页,总共167页。当前140页,总共167页。2.MC88110的指令流水线由于MC88110是超标量流水CPU,所以指令流水线在每个机器时钟周期完成两条指令。流水线共分为三段:取指和译码(F&D)段、执行(EX)段、写回(WB)段,下图所示为88110超标量流水线正常运行情况图。

当前141页,总共167页。当前142页,总共167页。3.指令动态调度策略88110采用按序发射、按序完成的指令动态调度策略。指令派遣单元总是发出单一地址,然后从指令cache取出此地址及下一地址的两条指令。译码后总是力图同一时间发射这两条指令到EX段。若这对指令的第一条指令由于资源冲突或数据相关冲突,则这一对指令都不发射,两条指令在F&D段停顿等待资源的可用或数据相关的消除。若是第一条指令能发射第二条指令不能发射则只发射第一条指令,而第二条指令停顿并与新取的指令之一进行配对等待发射,此时原第二条指令作为配对的第一条指令对待。可见,这样实现的方式是按序发射。当前143页,总共167页。当前144页,总共167页。为了判定能否发射指令,88110使用了计分牌方法。计分牌是一个位向量,寄存器堆中每个寄存器都有一个相应位。每当一条指令发射时,它预约的目的寄存器在位向量中的相应位上置1,表示该寄存器“忙”。当指令执行完毕并将结果写回此目的寄存器时,该位被清除。于是,每当判定是否发射一条指令(STORE指令和转移指令除外)时,一个必须满足的条件是:该指令的所有目的寄存器、源寄存器在位向量中的相应位都已被清除。否则,指令必须停顿等待这些位被清除。为了减少经常出现的数据相关,流水线采用了如前面所述的定向传送技术,将前面指令执行的结果直接送给后面指令所需此源操作数的功能部件,并同时将位向量中的相应位清除。因此指令发射和定向传送是同时进行的。当前145页,总共167页。如何实现按序完成呢?88110提供了一个FIFO指令执行队列,称之为历史缓冲器。每当一条指令发射出去,它的副本就被送到FIFO队尾。队列最多能保存12条指令。只有前面的所有指令执行完,这条指令才到达队首。当它到达队首并执行完毕后才离开队列。对于转移处理,88110使用了延迟转移法和目标指令cache(TIC)法。延迟转移是个选项(.n)。如果采用这个选项(指令如.n),则跟随在转移指令后的指令将被发射。如果不采用这个选项,则在转移指令发射之后的转移延迟时间片内没有任何指令被发射。延迟转移通过编译程序来调度。TIC是一个32项的全相联cache,每项能保存转移目标路径的前两条指令。当一条转移指令译码并命中cache时,能同时由TIC取来它的目标路径的前面两条指令。当前146页,总共167页。【例5】超标度为2的超标量流水线结构模型如图5.42(a)所示。它分为4个段,即取指(F)段、译码(D)段、执行(E)段和写回(W)段。F,D,W段只需1个时钟周期完成。E段有多个功能部件,其中LOAD/STORE部件完成数据cache访问,只需一个时钟周期;加法器完成需2个时钟周期,乘法器需3个时钟周期,它们都已流水化。F段和D段要求成对输入。E段有内部数据定向传送,结果生成即可使用。现有如下6条指令序列,其中I1,I2有RAW相关,I3,I4有WAR相关,I5,I6有WW相关和RAW相关。当前147页,总共167页。I1LADR1,A;M(A)->R1,M(A)是存储器单元I2ADDR2,R1;(R2)+(R1)->R2I3ADDR3,R4;(R3)+(R4)->R3I4MULR4,R5;(R4)×(R5)->R4I5LADR6,B;M(B)->R6,M(B)是存储器单元I6MULR6,R7;(R6)×(R7)->R6请画出:(1)按序发射按序完成各段推进情况图;(2)按序发射按序完成的流水线时空图。当前148页,总共167页。【解】(1)由于I1,I2间有RAW相关,I2要推迟一个时钟才能发射。类似的情况也存在于I5,I6之间;I3,I4之间有WAR相关,但按序发射,即使I3,I4并行操作,也不会导致错误;I5,I6间还有WAW相关,只要I6的完成放在I5之后,就不会出错。注意,I5实际上已在时钟6执行完毕,但一直推迟到时钟9才写回,这是为了保持按序完成。超标量流水线完成6条指令的执行任务总共需要10个时钟周期。(2)根据各段推进情况图可画出流水线时空图如下所示。当前149页,总共167页。当前150页,总共167页。5.10

多媒体CPU

5.10.1多媒体CPU

媒体一词在涉及信息传递的领域中是指传递信息的媒介,它包括存储信息的实体与传递信息的载体两部分。磁盘、光盘等皆属存储信息的实体,而载体则指用来表达信息的形体,如数值、文字、声音、图形与动静图像等。多媒体技术是指计算机把各种不同的电子媒质集成起来,统一进行存储、处理和传输。这些电子媒质包括计算机屏幕显示、视频光盘、CD-ROM以及语言和声音的综合,同时在这些部件之间建立逻辑连接,从而使整个系统具有交互性。显然,多媒体技术使计算机进一步摆脱了“计算工具”的传统观念,成为处理各种信息的强有力工具。

多媒体技术解决的主要问题有:当前151页,总共167页。1.图像与声音的压缩技术多媒体技术很重要的内容是对图像与声音进行操作、存储与传送。这就需要将每幅图像从模拟量转换成数字量,然后进行图像处理,与图形文字等复合,再存储在机器内。但是进行管理、操作、存储的图像并不只是数量很少的静止图像,而是符合视频标准的每秒30帧的彩色图像。如果由多媒体计算机存储器能演放1秒钟的音像制品,则信息量就高达22.5兆字节,而目前用来存储图像、程序的光盘CD-ROM,容量只有550兆字节。可见如不对图像采用压缩技术,仅存储图像的要求这一点就无法达到,何况CD-ROM的数据传输率也只有150KB/s,无法做到多幅图像的实时再现。图像数据如不压缩,则实现多媒体通信也就不可能。图像压缩是将图像用像素存储的方式,经过图像变换、量化、高效编码等处理转换成特殊形式的编码。这样一来,计算机所需存储与实时传送的数据量就可大大降低。当前152页,总共167页。2.适应多媒体技术的软件技术为适应多媒体技术发展,一是需要开发具有多媒体功能的OS(操作系统),二是开展以编辑工具为中心的软件技术研究。对第一个课题,Microsoft开发的视窗95至视窗2000系列多媒体OS版获得了很大成功。对第二个课题,编辑工具必须将图形、文档、声音、图像、视像等多种媒质联系在一起,为实际应用提供方便。当前153页,总共167页。3.计算机系统结构方面的技术为了在计算机系统中增加多媒体数据的获取功能、压缩解压功能、实时处理功能、多媒体数据的I/O与通信功能,在计算机系统结构领域需要做三方面的改进:第一,选择专用芯片和专用插卡来扩充功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论