第五章 中央控制器2015_第1页
第五章 中央控制器2015_第2页
第五章 中央控制器2015_第3页
第五章 中央控制器2015_第4页
第五章 中央控制器2015_第5页
已阅读5页,还剩234页未读 继续免费阅读

下载本文档

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

文档简介

第五章

中央控制器第五章中央控制器CPU的功能和组成指令周期时序产生器和控制方式微程序控制器微程序设计技术硬布线控制器流水线CPU5.1CPU的功能和组成什么是CPU?所谓中央处理器是控制计算机来自动完成取出指令和执行指令任务的部件。它是计算机的核心部件,通常简称为CPU。

5.1CPU的功能和组成CPU的功能

(4)数据加工:所谓数据加工,就是对数据进行算术运算和逻辑运算处理。完成数据的加工处理,这是CPU的根本的任务。

(1)指令控制:就是保证机器按规定的顺序执行程序。(2)操作控制:CPU管理并产生由内存取出的每条指令的操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。

(3)时间控制:对各种操作实施时间上的控制,称为时间控制。5.1CPU的功能和组成CPU的基本组成中央处理器由两个主要部分控制器和运算器组成。

5.1CPU的功能和组成控制器

由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”。控制器的主要功能有:1.从内存中取出一条指令,并指出下一条指令在内存中的位置。2.对指令进行译码或测试,并产生相应的控制信号。3.指挥并控制CPU,内存和I/O之间的数据流动的方向。5.1CPU的功能和组成运算器由算术逻辑单位(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,所以它是执行部件。运算器的主要功能:1.执行所有的算术运算。2.执行所有的逻辑运算。5.1CPU的功能和组成算术逻辑单元状态条件寄存器程序记数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DR存储器I/OCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制ccccc5.1.3CPU中的主要寄存器累加寄存器AC

累加寄存器AC通常简称为累加器,它的功能是:当运算器的算术逻辑单元(ALU)执行全部算术和逻辑运算时,为ALU提供一个工作区。累加寄存器是暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。

5.1.3CPU中的主要寄存器2.状态条件寄存器PSW

状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,同时状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。5.1.3CPU中的主要寄存器3.程序计数器PC

程序计数器中存放的是下一条指令在内存中的地址。

指令寄存器IR

指令寄存器用来保存当前正在执行的一条指令。5.1.3CPU中的主要寄存器

地址寄存器AR

地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。

缓冲寄存器DR

缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在缓冲寄存器中。5.1.4操作控制器和时序产生器1.数据通路:通常把许多寄存器之间传送信息的通路,称为“数据通路”。2.操作控制器:根据指令操作码和时序信号,产生各种操作信号,以便正确建立数据通路,从而完成取指令和执行指令的操作。3.时序产生器:就是对各种操作实施时间上的控制。5.2指令周期5.2指令周期—读取指令指令地址送入主存地址寄存器读主存,读出内容送入指定的寄存器—分析指令—按指令规定内容执行指令不同指令的操作步骤数和具体操作内容差异很大—检查有无中断请求若无,则转入下一条指令的执行过程指令的执行过程5.2指令周期指令周期的基本概念指令周期:CPU每取出并执行一条指令,都要完成一系列的操作,这一系列操作所需花费的时间通常叫做一个指令周期。

机器周期:通常用内存中读取一个指令字的最短时间来规定一个机器周期。指令周期常常用若干个机器周期数来表示,CPU周期也称为机器周期时钟周期:它是处理操作的最基本单位.而一个CPU周期时间又包含有若干个时钟周期。5.2指令周期指令周期T周期CPU周期CPU周期T1T2T3T4(取指令)(执行指令)5.2指令周期执行周期许多类型主要是涉及到处理器内部的寄存器可能的操作有数据传输ALU控制指令的处理下面以一个简单的程序来具体认识每一条指令的指令周期和执行过程。

内存地址内存内容助记符所完成的操作020250000CLA将累加器的内容清零021030030ADD30(A)+(30)A022021040STA40(A)(40)023000000NOP空操作指令024140021JMP2121→PC

030000006

031

040存和数单元

5.2指令周期CLA指令的指令周期非访内指令需要两个CPU周期。在第一个CPU周期,即取指令阶段,CPU完成三件事:(1)从内存取出指令;(2)对程序计数器PC加1,以便为取下一条指令做好准备;(3)对指令操作码进行译码或测试,以便确定进行什么操作。在第二个CPU周期,即执行指令阶段,将累加器A的内容清零。

一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码执行指令取下条指令PC+1CLA指令的指令周期算术逻辑单元状态条件寄存器程序记数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+10000202021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA000021指令周期算术逻辑单元状态条件寄存器程序记数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA000021指令周期ADD指令的指令周期ADD指令的指令周期由三个CPU周期组成。第一个CPU周期为取指令阶段。第二个CPU周期中将操作数的地址送往地址寄存器并完成地址译码。在第三个CPU周期中从内存取出操作数并执行相加的操作。ADD指令的指令周期一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码送操作数地址取下条指令PC+1取出操作数执行加操作一个CPU周期ADD指令的指令周期算术逻辑单元状态条件寄存器程序记数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000021ADDADD300000210000220000300000060+6=6000006STA指令的指令周期STA指令的指令周期

STA指令的指令周期由三个CPU周期组成。其中第一个CPU周期仍然是取指令阶段,其过程和CLA指令、ADD指令完全一样,不同的是此阶段中程序计数器加1后变为023,因而为取第四条指令做好了准备。我们假定,第一个CPU周期后结束,“STA40”指令已放入指令寄存器并完成译码测试。STA指令的指令周期算术逻辑单元状态条件寄存器程序记数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000022STASTA40000022000023000040000006000006000006指令周期NOP指令和JMP指令的指令周期NOP指令是一条空指令,包含两个CPU周期,第一个周期取指令,第二个周期执行指令,因是空指令,所以操作控制器不发出任何控制信号。

JMP指令由两个CPU周期组成,第一个周期是取指令周期,同其他指令。第二个周期为执行阶段,CPU把指令寄存器中的地址码部分21送到程序计数器,从而用新内容21代替PC原先的内容25,这样,下一条指令将不从25单元中读出,而从21电源开始读出并执行,从而改变了程序原先的执行顺序。指令周期算术逻辑单元状态条件寄存器程序记数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000024JMP21JMP210000240000210000060000060000250000215.2指令周期小结:各类信息的传送路径指令:M→DBUS→DR→DBUS→IR

地址:PC→ABUS→AR→

(取决于寻址方式)数据:寄存器→寄存器:总线直接传送寄存器→存储器:

Ri→DBUS→DR→DBUS→M

存储器→寄存器:

M→DBUS→DR→DBUS→Ri5.2.7用方框图语言表示指令周期

在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。一个方框代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制。一个菱形符号代表某种判别或测试,不过时间它依附于它前面一个方框的CPU周期,而不单独占用一个CPU周期。符号“~”代表一个公操作。5.2.7用方框图语言表示指令周期PC→AR→ABUSDBUS→DR→IRPC+1译码或测试0→ACIR→ARIR→ARIR→PCPC→ARAR→ABUSDBUS→DRDR→ALUALU→ACAR→ABUSAC→DRDR→DBUS~~~~~CLAADDSTAJMPNOP5.2.7用方框图语言表示指令周期例:如图所示为双总线结构机器的数据通路,控制信号G控制的是一个门电路。画出下列的指令周期流程图,并列出相应的微操作控制信号序列。1.“ADDR2,R0”

指令完成(R0)+(R2)→R0功能操作。假设该指令的地址已放入PC中。2.“SUBR1,R3”指令完成(R3)-(R1)→R3的功能操作。指令周期IRPCARDRR0R1R2R3MXYALUIRiIRoPCiPCoARiDRiDRoR0iR0oR3iR3oXiYiA总线B总线G+-R/W指令周期PC→ARM→DRDR→IRR2→YR0→XR0+R2→R0~PC→ARM→DRDR→IRR3→YR1→XR3-R1→R3~PC0,G,ARiDR0,G,IRiR2o,G,YiR00,G,Xi+,G,R0I

R/W=RR3o,G,YiR1o,G,Xi-,G,R3i5.3时序产生器和控制方式时序信号的作用和体制计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。操作控制器发出的各种控制信号都是时间因素(时序信号)和空间因素(部件位置)的函数。组成计算机硬件的器件特性决定了时序信号最基本的体制是电位---脉冲制。5.3时序产生器和控制方式常用的操作控制器有两种:硬布线控制器微程序控制器5.3时序产生器和控制方式硬布线控制器中时序信号采用主状态周期——节拍电位——节拍脉冲三级体制微程序控制中时序信号采用节拍电位——节拍脉冲二级体制。5.3时序产生器和控制方式主状态周期(指令周期):包含若干个节拍周期,可以用一个触发器的状态持续时间来表示。节拍电位(机器周期):包含若干个节拍脉冲,表示较大的时间单位。节拍脉冲(时钟周期):表示较小的时间单位。5.3时序产生器和控制方式节拍电位与节拍脉冲时序关系图5.3时序产生器和控制方式时序信号产生器的组成时钟源环形脉冲发生器节拍脉冲和读/写时序的译码启停控制逻辑

环形脉冲发生器四、节拍脉冲和读/写时序的编码读写时序信号的译码逻辑表达式以上带’的表示信号来自微程序控制器,持续一个CPU周期

读写时序信号受到控制的信号,而节拍脉冲信号时计算机加上电源后就产生。5.3时序产生器和控制方式启停控制逻辑节拍脉冲和对时序译码逻辑环形脉冲发生器

IORQMREQRDWET1T2T3T4

IORQ°MREQ°RD°WE°T1°T2°T3°T4°MERQ’IORQ’RD’WR’时钟脉冲源Φ时钟脉冲源环形脉冲发生器节拍脉冲和对时序译码逻辑启停控制逻辑用来位环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。有石英晶体振荡器组成。产生一组有序的间隔相等或不等的脉冲序列。通常采用循环移位寄存器。控制方式

当两个操作速度不同的部件或执行时间不同的指令在一起工作,怎样使计算机协调工作?这就要涉及到部件之间的通信方式及时序的控制方式方面的问题,统称为控制方式问题。

按时序信号与操作的关系进行分类,控制方式可以分为同步控制、异步控制和联合控制等3种方式。控制方式同步控制方式:其基本思想是选取部件中最长的操作时间作为统一的时间间隔标准,使所有的部件都在这个时间间隔内启动并完成操作。已定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的。

优点是:时序关系比较简单,控制器设计方便。缺点是:以牺牲速度为代价。控制方式异步控制方式:又称为可变时序控制方式,其基本思想是不设立统一的时间间隔标准,各部件按本身的速度占用时间。时间上的衔接通过应答通信方式(又称握手方式)实现。每条指令、每个操作控制信号需要多少时间就占用多少时间。这意味着每条指令的指令周期可由多少不等的机器周期数组成。优点:提高了系统的速度缺点:控制器比较复杂控制方式联合控制方式:

其基本思想是将同步控制方式和异步控制方式相结合,使计算机处于同步与异步交替工作方式。

例如,对大多数需要节拍数相近的指令,用相同的节拍数来完成,即采用同步控制;而对少数需要节拍数多的指令或节拍数不固定的指令,给予必要的延长,即采用异步控制;

因为是少数指令,是局部的,所以又称为局部性异步控制,实现局部性异步控制的方法有:

1.节拍数可变周期法,即不同的机器周期采用不同的节拍数,由周期状态触发器来控制;

2.节拍数周期固定法,即不同的机器周期采用相同的节拍数,对需要延长的周期,采用节拍插入法或周期延长法来调整。5.4微程序控制器基本概念组成工作过程微程序举例微程序设计技术微程序控制器的设计方法5.4微程序控制器基本概念微命令微操作微指令微程序控制存储器微地址5.4微程序控制器——基本概念微程序控制器的基本思想:将微操作控制信号按一定规则进行信息编码(代码化)形成控制字(微指令),一条机器指令对应一段“程序”,该程序存放在控制存储器中,因为“程序”的指令结果是实现一条机器指令的功能,所以称为“指令的微程序”5.4微程序控制器——基本概念微命令:控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令称为微命令。微操作:执行部件接受微命令后所进行的操作,称为微操作。5.4微程序控制器——基本概念微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。微程序:微指令序列为微程序。5.4微程序控制器——基本概念程序机器指令1机器指令2机器指令i机器指令n……..………微指令2微指令1微指令i微指令n……..……..微程序5.4微程序控制器——基本概念控制存储器:用来存放微程序的高速存储器。5.4微程序控制器——基本概念微地址:人们常把全部指令的控制字存放在一个高速存储器中,即控制存储器中(简称控存),控存的一个单元的内容即控制字代表了某一个节拍的一组微操作控制信号的信息,而把控存单元的地址称为“微地址”。5.4微程序控制器—组成控制存储器:用来存放实现全部指令系统的微程序。微指令寄存器:用来存放由控制存储器读出的一条微指令信息。微地址转移逻辑:自动完成修改微地址的任务。5.4微程序控制器—组成微程序控制器原理框图控制存储器地址译码微地址寄存器OPP字段控制字段地址转移逻辑状态条件指令寄存器微命令信号5.4微程序控制器—工作过程微程序控制器的工作过程实质上就是在微程序控制器的控制下,计算机执行机器指令的过程。从控存中取出一段“取机器指令”用的微程序,称为取指微程序,这是一段公用的微操作,其首址通常方在“0”号微地址单元。该微程序完成从主存中读取机器指令并送往指令寄存器。机器指令操作码通过微地址形成部件,产生对应的微程序入口地址,并送入微地址寄存器。逐条取出对应的微指令,每一条微指令提供一个微命令序列,控制有关的微操作。执行完对应于一条机器指令的一段微程序后,返回到取指微程序的入口,以便取出下一条机器指令。不断重复,直至程序执行完毕。5.4微程序控制器—微程序举例ALUR1R2R3Cy+-MDR4685791235.4微程序控制器—微程序举例.......................1234

567891011121314151617181920212223微指令的格式:LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制顺序控制5.4微程序控制器—微程序举例举例:“十进制加法”指令的微程序控制的过程。“十进制加法”指令的功能是用BCD码来完成十进制数的加法运算。在十进制运算时,当相加二数之和大于9时,便产生进位,要进行加6修正;当相加二数之和小于等于9时,结果是正确的。5.4微程序控制器—微程序举例假定数a和b已存放在R1和R2两寄存器中,数6存放在R3寄存器中。算法要求先进行a+b+6运算,然后判断结果有无进位;当进位标志Cy=1不减6,当Cy=0,减6,从而可以获得正确的结果。5.4微程序控制器—微程序举例PC→AR→ABUSDBUS→DR→IR,PC+1P1R1+R2→R2R2+R3→R2R2-R3→R2P2RD0000000010101001000000010000Cy≠0Cy=0微程序流程图5.4微程序控制器—微程序举例000000000000111111000001234

567891011121314151617181920212223第一条微指令LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制顺序控制5.4微程序控制器—微程序举例010100100100000000010011234

567891011121314151617181920212223第二条微指令LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制顺序控制R1X,R2Y,+,LDR25.4微程序控制器—微程序举例010001001100000000100001234

567891011121314151617181920212223第三条微指令LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制顺序控制R2X,R3Y,+,LDR25.4微程序控制器—微程序举例010001001001000000000001234

567891011121314151617181920212223第四条微指令LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制顺序控制R2X,R3X,-,LDR2T1T2T3T4T1T2T3T45.4微程序控制器—微指令周期微指令周期:读出微指令的时间加上执行该条微指令的时间。T4T4执行微指令微指令周期CPU周期CPU周期

读微指令5.4机器指令和微指令的关系程序计数器地址寄存器缓冲寄存器指令寄存器微地址寄存器微指令寄存器主存储器控制存储器微命令

例:

设某计算机运算器框图如图所示,其中ALU为16位的加法器(高电平工作),SA,SB为16位暂存器。4个通用寄存器由D触发器组成,Q端输出,其读、写控制功能见下表。写控制读控制选择WA1WA0

W选择RA1RA0

R不写入**

0不读出**

0

R3

1

1

1

R3

1

1

1

R2

0

1

1

R2

0

1

1

R1

1

0

1

R1

1

0

1

R0

0

0

1

R0

0

0

1

机器采用串行微程序控制方式,其微指令周期见下图(b)。其中读ROM是从控存中读出一条微指令时间,为1μs;ALU工作是加法器做加法运算,为500ns;m1是读寄存器时间,为500ns;m2是写寄存器的工作脉冲宽度,为100ns。微指令字长12位,微指令格式如下:RA0RA1:读R0-R3的选择控制

WA0WA1:写R0-R3的选择控制R:寄存器读命令

W:寄存器写命令LDSA:打入SA的控制信号LDSB:打入SB的控制信号SB-ALU:传送SB的控制信号____SB-ALU:传送SB的控制信号,并使加法器最低位加1.Reset:清暂存器SB为零的信号~:一段微程序结束,转入取机器指令的控制信号RA0RA1WA0WA1RWLDSALDSBSB-ALU__SB-ALUReset~要求:用二进制代码写出如下指令的微程序:(1)“ADDR0,R1”指令,即(R0)+(R1)→R1(2)“SUBR2,R3”指令,即(R3)-(R2)→R3(3)“MOVR2,R3”指令,即(R2)→(R3)解:先画出三条指令的微指令的微程序流程图,如下图所示。

其中未考虑“取指周期”和顺序控制问题,也即微程序仅考虑“执行周期”,微指令序列的顺序用数字标号标在每条微指令的右上角。每一框表示一条微指令。根据给定的微指令周期时间关系,完成ADD,SUB指令的执行动作需要3条微指令,MOV指令只需2条微指令。用二进制代码写出的三条指令的微程序列于下表中,其中*表示代码随意设置(0或1均可)。RA0RA1WA0WA1RWLDSALDSBSB-ALU__SB-ALUReset~ADD00**1010000001**10010000**0101001001SUB11**1010000010**10010000**1101000101MOV10**10100000**1101001011

指令微程序代码

ADD00**1010000001**10010000**0101001001SUB11**1010000010**10010000**1101000101MOV10**10100000**1101001011RA0RA1WA0WA1RWLDSALDSBSB-ALU__SB-ALUReset~5.4.2微程序设计技术设计微指令结构应当追求的目标:1。有利于缩短微指令字的长度;2。有利于减少控制存储器的容量;3。有利于提高微程序的执行速度;4。有利于对微指令的修改;5。有利于提高微程序设计的灵活性。5.4.2微程序设计技术微命令编码微地址的形成方法微指令格式微程序控制的设计方法5.4.2微程序设计技术微命令编码直接表示法编码表示法混合表示法5.4.2微程序设计技术直接表示法在微指令的操作控制字段中每一个微命令都用一位信息表示,对应于一种微操作。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的相应位设置成“1”或“0”就可以了。因此,微命令的产生不必经过译码,所需的控制信号直接送到相应的控制点。5.4.2微程序设计技术LTALULA11000100LT→BUSALU→LTLA→ALUBUS→LA0位:LT→BUS1位:BUS→LA2位:LA→ALU3位:DIV4位:MUL5位:SUB6位:ADD7位:ALU→LT这种方法的优点是简单、直观、执行速度快,微命令的并行控制能力强,编制的微程序短;缺点是微指令字长。765432105.4.2微程序设计技术编码表示法将微指令的控制字段分为若干个小字段,每个字段分别编码,每种编码代表一种微命令。微程序控制器——设计技术……………….译码译码译码………控制字段地址字段微命令微命令微命令uIR5.4.2微程序设计技术例如,某机器指令系统总共需要256个微命令,采用直接表示法,微指令的操作控制字段需256位。采用编码表示法,如将控制字段分成4位一段,共16段,每个字段经一个译码器输出,可获得16个微命令,总共16段就可获得256个微命令。微指令的操作控制字段仅64位。5.4.2微程序设计技术编码表示法的分段原则:①相斥性微命令分在同一字段内,相容性微命令分在不同的字段内。②一般将同类操作中互斥的微命令划分在同一个字段中。③每个字段包含的信息位不能太多,一般不超过6位,否则将增加译码线路的复杂性和译码时间。④一般每个小段还要留出一个状态,表示本字段不发出任何微命令。通常用000表示不操作。5.4.2微程序设计技术混合表示法这种方法把直接表示法和字段编码表示法混合使用,以便能综合考虑微指令字长、灵活性、执行微程序速度等方面的要求。5.4.2微程序设计技术微地址的形成方法1.根据机器指令操作码找到相应机器指令所对应的微程序的入口地址。2.后继微地址的产生

⑴计数器方式⑵多路转移方式5.4.2微程序设计技术1.微程序入口地址的确定首先由“取机器指令”微程序完成将一条机器指令从内存中取出送往指令寄存器。这段程序是公用的,一般安排控制存储器的“0”号单元。然后,应根据机器指令的操作码转移到对应的微程序入口地址。5.4.2微程序设计技术

2.后继微地址的产生计数器方式多路转移方式(下址字段方式)5.4.2微程序设计技术(1)计数器方式设置一个微程序计数器uPC,在顺序执行微指令时,后继微指令地址由uPC+1来实现。顺序执行的微指令在控制存储器中要求顺序存放;5.4.2微程序设计技术(1)计数器方式当遇到转移执行时,在当前微指令后面添加一条“转移微指令”实现微指令的跳转。在微指令中专门添加“转移控制字段”,将“转移微指令”或“转移控制字段”中的控制信息送到微指令地址发生器,与相应的指令操作码以及条件码等结合,生成转移地址送upc中。5.4.2微程序设计技术用计数器方式实现的微程序控制单元结构uPC转移部分控制存储器uPC指令寄存器入口地址及转移地址产生器条件码

状态标志5.4.2微程序设计技术计数器方式优点:是微指令字段较短,便于编写微程序,后继微地址产生机构比较简单;缺点:是必须在不连续执行的微指令之间加入“转移微指令”,这样既增加了微指令的条数,也严重影响指令执行速度。5.4.2微程序设计技术(2)多路转移方式(下址字段法)在这种方式中,当微程序不产生分支时,后继微指令地址直接由微指令的顺序控制字段给出;当微程序出现分支时,按顺序控制字段给出的测试判别字段和状态条件来形成后继微地址。这种方式因为要在微指令格式中设置一个字段用来指明下一条要执行的微指令地址,所以也称为下址字段法。5.4.2微程序设计技术多路转移方式的微指令格式如下:uOP测试判别下址5.4.2微程序设计技术用多路转移方式实现的微程序控制单元结构指令寄存器IRPLA微地址修改逻辑+控制存储器uAR下址uIR测试条件码状态标志例题

微地址寄存器有6位(uA5—uA0),当需要修改其内容时,可通过某一位触发器的强置端S将其置“1”。现有三种情况:(1)执行“取指”微指令后,微程序按IR的OP字段(IR3—IR0)进行16路分支;(2)执行条件转移指令微程序时,按进位标志C的状态进行2路分支;(3)执行控制台指令微程序时,按IR4、IR5的状态进行4路分支。请按多路转移方法设计微地址转移逻辑。

解:依题意可知:微程序有三个判断测试,设分别为P1,P2,P3。用P1和IR3—IR0修改uA3—uA0;用P2和C修改uA0;用P3和IR5、IR4修改uA5、uA4。另外考虑时间因素T4(假设CPU周期最后一个节拍脉冲),故转移逻辑表达式如下:

uA5=P3*IR5*T4uA4=P3*IR4*T4uA3=P1*IR3*T4uA2=P1*IR2*T4uA1=P1*IR1*T4uA0=P1*IR0*T4+P2*C*T45.4.2微程序设计技术(3).微指令格式水平型微指令垂直型微指令5.4.2微程序设计技术水平型微指令:一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。基本特征:微指令字较长一条微指令能控制数据通路中多个功能部件并行操作。微命令的编码简单,尽可能使微命令与控制门之间具有直接对应关系。uOP测试判别下地址字段5.4.2微程序设计技术

垂直型微指令:在微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。它有操作码,在一条微指令中只有1-2个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序比水平型的要长。5.4.2微程序设计技术垂直型微指令基本特征:微指令字短。微指令的并行操作能力有限,在一条微指令中只有1-2个微操作命令。微指令编码比较复杂,全部微命令组成一个微操作码字段,经过完全译码,微指令的各个二进制位与数据通路的各个控制点之间完全不存在直接对应关系。水平型微指令与垂直型微指令的比较:(1)水平型微指令的并行操作能力较强,效率高,灵活性强。垂直型则较差;(2)水平型微指令执行一条指令的时间短,而垂直型则时间长;(3)水平型的微指令字较长而微程序短,垂直型则相反,微指令字较短而微程序长。(4)水平型用户难以掌握,而垂直型则较容易掌握。5.4.2微程序设计技术微指令的执行方式串行执行方式取i条执行i条取i+1条执行i+1条微周期微周期5.4.2微程序设计技术并行执行方式取i条执行i条取I+1条执行I+1条取I+2条执行I+2条微程序控制器—微程序控制器举例**简单机器的微程序设计假设机器字长16位,采用单总线结构,CPU,主存和外设都挂在总线上。1.CPU

运算器中以ALU为核心,输入端一个接LA,另一个来自数据总线。共由8个寄存器R0---R7,源操作数寄存器SR,目的操作数寄存器DR,暂存器TEMP。2.主存储器按字编址,主存容量64K3.总线包括16位数据线,16位地址线和若干控制线。微程序控制器—微程序控制器举例**指令格式OPMSRSMDRD1512119865320OP:操作码,4位,可定义16种操作M:寻址方式MS:源操作数寻址方式MD:目的操作数寻址方式RS:源操作数寄存器RD:目的操作数寄存器微程序控制器—微程序控制器举例**寻址方式:M名称汇编符号含义000寄存器寻址R(R)为操作数001寄存器间址(R)有效地址=(R)010自增型寄存器间址(R)+E=(R)且(R)+1→R011自增型双间址@(R)+E=((R))且(R)+1→R100变址寻址X(R)E=X+(R)微程序控制器—微程序控制器举例**操作类型

操作码名称汇编符号操作双操作数运算指令0001加法ADD(RD)+(RS)→RD0010减法SUB(RD)-(RS)→RD0011逻辑乘AND(RD)^(RS)→RD单操作数运算指令0100加1INC(RD)+1→RD0101减1DEC(RD)-1→RD0110求补NEC(RD)+1→RD转移类指令无条件条件0111MR不用1000MRPNZVCLTLAR0R1R7….SRDRTEMPMARMMDRIRuARALU地址译码器PLA微地址修改逻辑条件码状态+控制存储器下址uIR译码PCLT→BUSALU→LT1→C0BUS→LARS→BUSBUS→RSRD→BUSBUS→RDSR→BUSBUS→TEMPBUS→MARMDR→BUSBUS→MDRBUS→IRPC→BUSBUS→PCREADWRITE微命令ADDINCBUS→DRDR→BUSTEMP→BUSBUS→SRWAITCLEAR微程序控制器—微程序控制器举例**时序安排采用微程序控制方式后,指令分步操作是积聚不同的微指令进行的,因此,时序系统不在按指令执行的不同阶段设置不同的工作周期,而代以统一规整的微指令周期。微程序控制器—微程序控制器举例**微指令的编码:共有19个选通信号,加上ALU的控制信号,假设有16个,及其他控制信号,共40个控制信号,所以采用字段直接编译法。微程序控制器—微程序控制器举例**F1F2F3F4F5F6F7F8F90000不送000不送00不送000不送0000ADD00无动作0无动作0无动作00→C00001PC→BUS001BUS→PC01BUS→MAR001BUS→LA0001SUB01READ1CLEARLA1WAIT11→C00010MDR→BUS010BUS→IR10BUS→MDR010BUS→SR0010AND10WRITE

0011LT→BUS011ALU→LT

011BUS→DR

0100RS→BUS100BUS→RS

100BUS→TEMP

0101RD→BUS101BUS→RD

0110SR→BUS

0111DR→BUS

1000TEMP→BUS

微程序控制器—微程序控制器举例**表中:F1字段为所有送往总线的控制信号。F2—F4字段为总线送往各寄存器的控制信号。F5字段用于控制ALU的各种运算。F6字段提供存储器的读写控制。F7字段用于暂存器LA的清除控制。F8字段用于存储器与CPU的同步控制F9字段控制进位操作。微程序控制器—微程序控制器举例**微程序流程分析这是一条双操作数加法指令的微程序流程。PC→BUS,CLEARLABUS→MAR,1→C0READADDALU→LTLT→BUSBUS→PCWAITMDR→BUSBUS→IRRS→BUSBUS→SRRS→BUSBUS→MARREADWAITRS→BUS,CLEARLABUS→MAR,1→C0READADDALU→LTPC→BUS,CLEARLABUS→MAR,1→C0READADDALU→LT000001002003B100R102(R)112@(R)+122X(R)142A①④③②微程序控制器—微程序控制器举例**(R)+LT→BUSBUS→RSWAITLT→BUSBUS→PCWAITMDR→BUSBUS→MARREADWAITMDR→BUSBUS→LAMDR→BUSBUS→SRRS→BUSADDALU→LTLT→BUSBUS→MARREADWAIT①④③②143144145146124125直接间接D微程序控制器—微程序控制器举例**C200RD→BUSBUS→LARD→BUSBUS→MARREADWAITRD→BUS,CLEARLABUS→MAR,1→C0READ,ADDALU→LTPC→BUS,CLEARLABUS→MAR,1→C0READ,ADDALU→LTLT→BUSBUS→RDWAITLT→BUSBUS→PCWAITMDR→BUSBUS→MARREADWAITMDR→BUSBUS→LARD→BUSADDALU→LTMDR→BUSBUS→LALT→BUSBUS→MARREADWAIT200243244245246R202(R)212(R)+@(R)222D(R)242224直接B间接225微程序控制器—微程序控制器举例**CSR→BUSADDALU→LTLT→BUSBUS→MDRWRITELT→BUSBUS→RD270271272273微程序控制器—微程序控制器举例**F微指令地址微指令微命令形式

编码形式F1F2F3F4F5F6F7F8F9000PC→BUS,BUS→MAR,READ,CLEARLA,1→C0,ADD,ALU→LT000101101000000001101001LT→BUS,BUS→PC,WAIT001100100000000000010002MDR→BUS,BUS→IR,001001000000000000000112RS→BUS,BUS→MAR,READ,WAIT010000001000000001010125MDR→BUS,BUS→SR001000000010000000000202RD→BUS,BUS→LA010100000001000000000270SR→BUS,ADD,ALU→LT011001100000000000000273LT→BUS,BUS→RD001110100000000000000微程序控制器—微程序控制器举例**指令“ADD(RS),RD”微程序实例微程序控制器—微程序控制器举例**微指令地址的产生(微程序的顺序控制)在本例中,微程序的入口地址由PLA产生,PLA的输入为机器指令操作码,输出为该指令对应的微程序入口地址。后继微指令地址的产生分别采用计数器方式和断定方式。微程序控制器—微程序控制器举例**

1.计数器方式(第二种方式)其中,转移控制字段3位,以满足微程序顺序执行和无条件转移及下列分支条件转移的要求。000顺序执行001由PLA根据机器指令操作码产生微程序入口地址010由源操作数寻址方式决定后继微指令地址011由目的操作数寻址方式决定后继微指令地址100由结果方式决定后继微指令地址101由源间接寻址方式约定后继微指令地址111无条件转移Uop转移控制微指令地址.微命令形式

转移控制000PC→BUS,BUS→MAR,READ,CLEARLA,1→C0,ADD,ALU→LT000001LT→BUS,BUS→PC,WAIT000002MDR→BUS,BUS→IR,000003

001100112010112RS→BUS,BUS→MAR,READ,WAIT000113125111125MDR→BUS,BUS→SR000126200111200202011202RD→BUS,BUS→LA000203270111270SR→BUS,ADD,ALU→LT000271273100273LT→BUS,BUS→RD000274000111ADD指令计数器方式的微指令表指令“ADD(RS),RD”微程序微程序控制器—微程序控制器举例**

2.多路转移方式(下地址方式)Uop测试判别字段下址字段测试字段3位,下址字段8位。微指令地址.微命令形式测试判别字段下地址000PC→BUS,BUS→MAR,READ,CLEARLA,1→C0,ADD,ALU→LT000001001LT→BUS,BUS→PC,WAIT000002002MDR→BUS,BUS→IR,000003003

001000100

010112112RS→BUS,BUS→MAR,READ,WAIT000125125MDR→BUS,BUS→SR000200200

011202202RD→BUS,BUS→LA000270270SR→BUS,ADD,ALU→LT100273273LT→BUS,BUS→RD000000ADD指令多路转移方式的微指令表指令“ADD(RS),RD”微程序实例5.5硬布线控制器基本思想:把控制部件看成作为生产专门固定时序控制信号的逻辑电路,而此逻辑电路以使用最少元件和取得最高操作速度为设计目标。这种逻辑电路是一种由门电路和触发器构成的复杂树形网络,故称为硬布线控制器。由于门电路多是组合逻辑电路所以也称为组合逻辑控制器。5.5硬布线控制器硬布线控制器的结构图组合逻辑线路指令译码器指令寄存器节拍电位/节拍脉冲发生器微操作控制信号结果反馈信息启动停止时钟复位IR

M1MiT1Ti5.5硬布线控制器设计方法模型机的数据通路全机采用总线结构,分为内部单总线和存储器总线(系统总线),算逻部件,通用寄存器组等挂在内部总线上,主存储器M,I/O都挂在系统总线上。R0----R3为四个通用寄存器,Y连在ALU的一个输入端上,Z是ALU的输出寄存器,以便将结果输出到内部总线上。5.5硬布线控制器MARMDRMYZR0R1R2R3IRPCID逻辑网络模8计数器ALU系统总线内部总线控制信号5.5硬布线控制器寻址方式与指令系统操作码OP寄存器号(Ri)地址码ADDR指令指令编码操作功能LDRi,ADDR000RiADDRRi←(ADDR)STRRi,ADDR001RiADDRADDR←(Ri)ADDRi,ADDR010RiADDRRi←(Ri)+ADDRANDRi,ADDR011RiADDRRi←(Ri)^ADDRJZADDR100RiADDRZ=1,PC←ADDR5.5硬布线控制器时序采用三级时序,设置三个机器周期,每个机器周期可以完成一次主存的读/写操作,每个机器周期可分为若干个节拍,每个节拍可分为若干个脉冲。每个微操作控制信号应是指令、时序、结果特征及状态等等的逻辑函数。

微操作=周期·节拍·脉冲·指令码·其他条件5.5硬布线控制器硬布线控制器的设计方法绘制指令的流程图:以指令的执行过程为线索,按指令类型分类,将每条指令归纳为一个微操作序列,根据操作的先后顺序画出指令流程图。列出微操作时间表:把指令流程图中的微操作序列合理地安排在各个机器周期的相应节拍和脉冲中去,使他们在执行的时间上不发生冲突。微操作的逻辑综合:以每个微操作为单位进行“同类项合并”,就是把不同指令在不同周期状态,不同节拍和不同条件下所需要的同一微操作用逻辑关系式综合起来,然后加以简化使逻辑表达式更为合理。5.5硬布线控制器PC→MAR,READMDR→IRPC+1→PCADDR→MARREADADDR→MARADDR→MARREADADDR→MARREADZ=1ADDR→PCMDR→RiRi→MDRWRITEMDR→YY+Ri→ZZ→RiMDR→YY^Ri→ZZ→RiLDSTRADDANDJZ指令节拍微操作控制信号取指T0PCOUT,MARIN,READ,Y←0,C0←1,ADD,ZINT1MDROUT,IRINT2ZOUT,PCINLDT3ADDROUT,MARIN,READT4MDROUT,RIINSTRT3ADDROUT,MARIN,READT4RIOUT,MDRIN,WRITEADDT3ADDROUT,MARIN,READT4MDROUT,YINT5RIOUT,ADD,ZINT6ZOUT,RIINANDT3ADDROUT,MARIN,READT4MDROUT,YinT5RIOUT,AND,ZINT6ZOUT,RIINJZT3Z=1,ADDROUT,PCINT45.5硬布线控制器PCOUT=T0MARIN=T0+T3

·JZREAD=T0+T3·JZY←0=T0C0←1=T0ADD=T0+T5

·ADDZIN=T0+T5(ADD+AND)ZOUT=T2+T6(ADD+AND)PCIN=T2+T3

·Z·JZMDROUT=T1+T4(ADD+AND+LD)MDRIN=T4

·STRIRIN=T1ADDROUT=T3

·JZ+T3

·Z·JZRIIN=T4

·LD+T6(ADD+AND)RIOUT=T4

·STR+T5(ADD+AND)YIN=T4(ADD+AND)WRITE=T4

·STRAND=T5

·AND5.5硬布线控制器

RIIN=T4

·LD+T6(ADD+AND)RIinT4LDADDANDT6Intel80486CPU1.486CPU的特点(1)通过采用流水技术,以及微程序控制和硬布线逻辑控制相结合的方式,进一步缩短可变长指令的译码时间,达到基本指令可以在一个时钟周期内完成。(2)486芯片内部包含一个8KB的数据和指令混合性cache,为频繁访问的指令和数据提供快速的内部存储。(3)486芯片内部包含了增强性80387协处理器,称为浮点运算部件(FPU)。(4)486CPU的内部数据总线宽度为64位。(5)地址信号线扩充到32位,可以处理4GB的物理存储空间。(6)486CPU采用单倍的时钟频率,而在CLK端加入的时钟频率,就是它内部CPU的时钟频率,因此大大增加了电路的稳定性。2.486CPU的内部结构

486的内部结构包含如下九个功能部件:总线接口部件、小容量cache、指令预取部件、指令译码器、段管理部件、页管理部件、定点运算部件ALU、浮点运算部件FPU及操作控制部件。总线接口部件主要用来产生访问外部存储器和I/O口所需要的地址、数据、命令信号段管理部件用来把指令指定的逻辑地址(程序中指定的虚拟地址)变成线性地址。页管理部件的功能是把线性地址换算成物理地址。指令预取部件中包含了32字节的预取队列寄存器,可以存放多条指令,因而是一种流水线结构。ALU中包含了通用寄存器组以及各种算术逻辑运算操作。FPU则完成浮点数运算、二进制整数运算、十进制数串运算等。操作控制部件采用微程序控制和硬布线控制相结合的方式,因而较好地发挥了效率。5.7

流水CPU并行处理技术时间并行:轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。空间并行:以“数量取胜”

,主要体现在多处理器系统和多计算机系统。时间并行+空间并行:例如奔腾CPU采用了超标量流水线技术,在一个机器周期中同时执行两条指令,因而既有时间并行又有空间并行。5.7

流水CPU1.流水计算机的系统组成5.7

流水CPU2.

.流水CPU的时空图计算机的流水处理过程非常类似于工厂中的流水装配线。为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。下面通过时空图来证明这明这个结论。图(a)表示流水CPU中一个指令周期的任务分解。5.7

流水CPU5.7

流水CPU5.7

流水CPU5.7

流水CPU(a)(b)(c)(d)的动态演示请看CAI演示。5.7

流水CPU

从数学概念讲,标量是指单个量,而向量是指一组标量。一般的流水线计算机只有一条指令流水线,所以称为标量流水线计算机。所谓超标量流水线,是指它具有两条以上的指令流水线。它是时间并行技术和空间并行技术的综合应用。Pentiun微型机就是一个超标量计算机。5.7

流水CPU3

.流水线分类指令流水线

算术流水线

处理机流水线

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

由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移存取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。流水线中的主要问题

转移预测法用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。流水线中的主要问题【例4】流水线中有三类数据相关冲突:写后读相关(RAW);读后写相关(WAR);写后写相关(WAW)。判断以下三组指令各存在哪种类型的数据相关。

温馨提示

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

评论

0/150

提交评论