版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章中央处理器(教材第5章)教学内容①CPU功能和组成②指令周期基本概念③硬布线控制器设计技术④微程序控制器设计技术⑤流水处理器,以及其他技术教学重点与难点①分析CPU数据通路的,具体操作的微命令的确定和实现过程的流程图描述②对指令具体字段、相关寄存器的分析,微程序控制器、组合逻辑控制器的分析、比较、设计③流水处理器的基本概念第1节CPU的功能和组成第2节指令周期第3节时序信号和控制方式第4节一个模型计算机和控制器初步设计第5节硬布线控制器第6节微程序控制器及微程序设计第7节传统CPU介绍第8节流水CPU第9节RISCCPU第1节CPU的功能和组成
一、CPU的功能二、CPU的组成三、CPU中的主要寄存器四、操作控制单元与时序产生器一、CPU的功能1指令控制程序执行顺序控制2操作控制操作控制单元产生取出的一条指令的各种操作信号和执行该指令的所须的各种操作信号.3时间控制
对操作信号进行时间上的定时.4数据加工
算术逻辑运算FetchDecodeExec二、CPU的组成1
运算器ALU\寄存器\数据缓冲寄存器\状态条件寄存器PSW主要功能在第2章中已讲2控制器PC\指令寄存器IR\指令译码器\时序产生器\操作控制器主要功能:从指令Cache中取指令,确定下一条指令在指令Cache的位置
对指令译码\测试产生相应的操作控制信号控制CPU与Cache\MEM\输入\输出间的数据流动3当前CPU中新增加的部分浮点运算器\CACHEALUC1R0R1R2R3C2通用寄存器数据缓冲寄存器DR状态字PSW通往I/O接口地址数据57061007661077……304031数据CacheAR地址寄存器地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC程序计数器+1地址总线地址总线DBUS数据指令时序发生器操作控制器指令译码OP地址字段C1C2CnCiIR指令寄存器指令集确定后,检查指令系统,根据指令功能,设计ALU,确定数据通路、控制部件!!!IBUSOC三、CPU中的主要寄存器CPU中至少有如下六类寄存器1PC程序计数器2指令寄存器3地址寄存器4数据缓冲器5累加寄存器及通用寄存器6状态条件寄存器PSW程序计数器(PC)指示(指出)下一条指令的内存地址.
指令寄存器(IR)
指令寄存器用来保存当前正在执行的一条指令的内容。当执行一条指令时,先把它从cache(或内存)取到缓冲寄存器中,然后再传送至指令寄存器。指令译码IRAddressOP0010010000000001数据地址寄存器(AR,MAR)
地址寄存器用来保存当前CPU所访问的Cache或内存单元的地址,直到内存的读/写操作完成为止。数据缓冲寄存器(DR)
数据缓冲寄存器用来暂时存放由内存储器读出或要写入内存储器的一条指令或一个数据字缓冲寄存器的作用是:(1)作为ALU运算结果和通用寄存器之间传送的缓冲(2)CPU与内存、外部设备之间信息传送的中转站,起缓冲作用(CPU和内存、外围设备之间在操作速度上的差别)(3)单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。累加寄存器(ACC)及通用寄存器累加寄存器ACC通常简称为累加器,是一个通用寄存器。功能:当运算器的算术逻辑单元ALU)执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。
当使用多个累加器时,就变成通用寄存器堆结构(RegisterFile,RF),其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。状态条件寄存器(PSW)
保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容:运算结果进位标志(C)运算结果溢出标志(V)运算结果为零标志(Z),运算结果为负标志(N)中断和系统工作状态等信息设标志位四操作控制单元与时序产生器1.微操作与数据通路2.操作控制器3.时序发生器微操作(Microoperation)控制器在实现一条指令的功能时,总是把每一条指令分解成时间上先后有序的一系列最基本、最简单、不可再分的操作控制动作这种最基本、最简单、不可再分的操作称为微操作1.微操作与数据通路微操作控制信号数据通路(DataPath)通常把许多寄存器之间及ALU与存储器等各部件间的传输信息的通路称为数据通路控制信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器在数据通路中,微操作通过自身的控制作用和彼此之间的密切配合,使指令流、数据流等信息流按照预定的路径流动,以实现指令的功能每一条指令的功能决定了它所需要的一系列带时序的微操作信号2.操作控制器控制器的基本功能是负责指令的读出、识别和解释,并指挥协调各功能部件执行指令操作控制器是CPU中完成取指令和执行指令全过程的部件其主要功能是根据指令操作码和时序信号的要求,产生各种操作控制信号以便在各寄存器之间正确地建立数据通路,从而完成取指令和执行指令的控制根据设计方法不同,操作控制器可分为组合逻辑控制器和微程序控制器两种二者的区别在于其中的控制信号形成部件不同,进而反映出不同的设计原理和方法根据使用器件的不同,组合逻辑控制器又可进一步细分为硬连线控制器和门阵列控制器3.时序发生器CPU中除了操作控制器外,还必须包括时序发生器由于计算机的高速工作,每一个动作的时间必须非常严格,不能有任何差错时序发生器的作用对操作控制器产生的各种控制信号实施时间上的严格控制产生各功能部件所需要的定时控制信号数据通路
是许多寄存器之间、ALU、数据存储器及相关部件传送信息的通路。操作控制器的功能:
根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。控制器的设计方法时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。硬布线控制器是采用时序逻辑技术来实现的.微程序控制器是采用存储逻辑来实现的前两种方式的组合第2节指令周期一、指令周期的基本概念二、六条指令的指令执行的过程三、用方框图语言表示指令周期指令周期=CPU取出并执行一条指令所需的时间指令周期则由两部分时间构成:取指周期和执行周期指令取指周期相同,但对执行周期则因指令不同而有差异。指令周期可用更基本的时间单位:CPU周期描述CPU周期:即机器周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义一、指令周期的基本概念CPU的基本工作是执行预先存储的指令序列(即程序)程序的运行过程实际上是不断地(取出指令、分析指令)、(执行指令)的过程CPU从存放程序的主存储器里取出一条指令译码并执行这条指令保存执行结果紧接着又去取指令,译码,执行指令……如此周而复始,反复循环,使得计算机能够自动地工作除非遇到停机指令,否则这个循环将一直进行下去指令周期中的操作:1.取指令阶段2.指令译码阶段3.执行指令阶段4.访存取数阶段5.结果写回阶段取指周期执行周期几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段取指令指令译码执行指令访存取数结果写回指令的执行过程1.取指令阶段取指令(InstructionFetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程程序计数器PC中的数值,用来指示当前指令在主存中的位置当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1PC;若为双字长指令,则(PC)+2PC,依此类推2.指令译码阶段取出指令后,计算机立即进入指令译码(InstructionDecode,ID)阶段在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行在传统的设计里,CPU中负责指令译码的部分是无法改变的在众多运用微程序控制技术的新型CPU中,微程序有时是可重写的,可以通过修改成品CPU来改变CPU的译码方式3.执行指令阶段在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段完成指令所规定的各种操作具体实现指令的功能为此,CPU的不同部分被连接起来,以执行所需的操作例如,如果要求完成一个加法运算,算术逻辑单元ALU将被连接到一组输入和一组输出输入端提供需要相加的数值输出端将含有最后的运算结果4.访存取数阶段根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段根据指令地址码,得到操作数在主存中的地址从主存中读取该操作数用于运算5.结果写回阶段作为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存许多指令还会改变程序状态字寄存器中标志位的状态标识不同的操作结果,可被用来影响程序的动作在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令许多新型CPU可以同时取出、译码和执行多条指令,体现并行处理的特性二、六条指令的指令执行的过程(结合具体数据通路)程序执行前,R0=00R1=10R2=20R3=30MOVR0,R1LADR1,6ADDR1,R2100101102103104105106指令存储器八进制表示ANDR1,R3JMP101STOR2,(R3)直接地址70100(LAD不影响6号单元内的数据)6640(120,STO后为120)56710….2030八进制表示77数据存储1取指令阶段
(1)程序计数器PC被装入的101(八进制)(2)PC内容被放到地址总线ABUS上,启动读指存命令;(3)将101号地址的单元读出的MOV指令通过IBUS送IR(4)程序计数器内容加1,变为102,为取下一条指令做好准备;(5)指令寄存器中的操作码OP被译码或测试;(6)CPU识别出是指令MOV,至此,取指令阶段即告结束。非访内指令MOVR0,R1RR型指令。ALUC1R000R110R220R330C2通用寄存器数据缓冲寄存器DR状态字PSW通往I/O接口地址数据57061007661077……304031数据CacheAR地址寄存器地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC101+1地址总线地址总线DBUS数据指令产生1-5取指操作信号指令译码MOVR0,R1C1C2CnCiIR指令集确定后,检查指令系统,根据指令功能,设计ALU,确定数据通路、控制部件!!!IBUS1222345操作控制器PC1022执行指令阶段(1)OC送控制信号,选择R1为源寄存器,选择R0为目标寄存器;(2)OC送控制信号到ALU,指定ALU做传数操作;(3)OC送控制信号,打开与ALU相连的三态门,将ALU输出送至DBUS;(4)OC送控制信号,DBUS上的数据送至DR(10)(5)OC送控制信号,控制将DR中数据送目标寄存器R0,R0为10ALUC1R000R110R220R330C2通用寄存器DR状态字PSW通往I/O接口地址数据57061007661077……304031数据CacheAR地址寄存器地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC102+1地址总线地址总线数据指令产生1-5取指操作信号指令译码MOVR0,R1C1C2CnCiIR3操作控制器oc11R1244MOVR0,R1执行周期101010LAD指令的指令周期由三个CPU周期组成。
指令LADR1,6RS指令,6号单元第一个CPU周期为取指周期与MOV相同第二个CPU周期送操作数地址IR中的地址码(6)AR第二个CPU周期主要完成送操作数地址。(1)OC送控制信号,打开IR输出三态门,将直接地址6送DBUS(2)OC送控制信号,将DBUS上的地址6送ARALUC1R010R110R220R330C2通用寄存器DR10状态字PSW通往I/O接口地址数据57061007661077……304031数据Cache地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC103+1地址总线地址总线数据指令产生1-2取指操作信号指令译码LADR1,6C1C2CnCiIR1操作控制器oc1R12LADR1,6执行周期(第2周期)AR6第三个CPU周期:取操作数装入寄存器(3)OC送读命令,直接地址选中单元6的数据100送DBUS;(4)OC送控制信号,将DBUS上的数据100送DR(5)OC送控制信号,DR中的100送R1LADR1,6执行周期(第3周期)ALUC1R010R1R220R330C2通用寄存器DR状态字PSW通往I/O接口地址数据57061007661077……304031数据CacheAR6地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC103+1地址总线地址总线数据指令产生3-5取指操作信号指令译码LADR1,6C1C2CnCiIR1操作控制器oc1R12LAD执行周期(第3周期)3345100100ADD指令的指令周期由两个CPU周期组成。RR型指令
ADDR1,R2第一个CPU周期为取指周期与MOV,LDA相同。执行周期如下(第2个CPU周期)(1)OC送控制信号,选择R1为源寄存器,选择R2为目标寄存器;(2)OC送控制信号到ALU,指定ALU做加法操作;(3)OC送控制信号,打开与ALU相连的三态门,将ALU运算结果120输出送至DBUS;(4)OC送控制信号,DBUS上的数据送至DR(120);进位标志送PSW(5)OC送控制信号,控制将DR中数据120送目标寄存器R2,R2为120ALUC1R010R1100R2R330C2通用寄存器DR状态字PSW通往I/O接口地址数据57061007661077……304031数据CacheAR6地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC104+1地址总线地址总线数据指令产生1-5取指操作信号指令译码ADDR1,R2C1C2CnCiIR1操作控制器oc1R12ADD执行周期334553120120+20STO指令的指令周期由三个CPU周期组成。RS
型指令
第一个CPU周期为取指周期与MOV相同STO(存储指令)周期第二个CPU周期送操作数地址
(R3)=30AR第二个CPU周期主要完成送操作数地址。(1)OC送控制信号,选择寄存器(R3)=30,此寄存器内容将作为操作数地址;(2)OC送控制信号,打开寄存器输出三态门(不经ALU),将地址30(R3之内容)送DBUS(3)OC送控制信号,将DBUS上的地址30送ARALUC1R010R1100R2120R330C2通用寄存器DR120状态字PSW通往I/O接口地址数据57061007661077……3012031数据Cache地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC105+1地址总线地址总线数据指令产生1-3取指操作信号指令译码STOR2,(R3)C1C2CnCiIR操作控制器oc1R1STO执行周期(第2周期)322230第三个CPU周期:将寄存器内容存入存储器(4)OC送控制信号,选择R2,内容(120)(5)OC送控制信号,打开寄存器输出三态门,把数据120送到DBUS总线;(6)OC送控制信号,数据总线上的数据120写入到所选中的存储器单元30中,STO执行结束。ALUC1R010R1100R2120R330C2通用寄存器DR120状态字PSW通往I/O接口地址数据57061007661077……3031数据Cache30地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC105+1地址总线地址总线数据指令产生4-6取指操作信号指令译码STOR2,(R3)C1C2CnCiIR操作控制器oc1R12STO执行周期(第3周期)3224556120JMP指令周期指令周期由两个CPU周期组成。
第一个CPU周期为取指周期与MOV相同。(1)OC送控制信号,打开IR输出三态门,将其中的地址101送DBUS(2)OC送控制信号,将DBUS上的地址101送PC,程序从101开始执行其执行周期(第2周期)如下:ALUC1R010R1100R2120R330C2通用寄存器DR120状态字PSW通往I/O接口地址数据57061007661077……3012031数据CacheAR30地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC106+1地址总线地址总线数据指令产生1-2取指操作信号指令译码JMP101C1C2CnCiIR操作控制器oc1R1JMP执行周期2101101
菱形
通常用来表示某种判别或测试,不过时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期。三、用方框图语言表示指令周期在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。方框代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。(在具体设计时方框也可表示为时间单位)公操作符号“~”:表示一条指令已经执行完毕,转入公操作所谓公操作,就是一条指令执行完毕后CPU进行的一些操作。这些操作主要是CPU对外设请求的处理如果外设没有向CPU请求交换数据,那么CPU又转向主存取下一条指令
对于一个完整的指令系统中的所有指令都可以用方框图语言表示指令周期:1)从指令流程图中我们可以得到每条指令的指令周期中数据通路(用到哪些单元、寄存器、信息的流向)2)与之对应的其中控制信号的变化,用于指导控制器设计。PCABUS(I)IBUSIRPC+1译码R1R0IRARR1+R2R2R3ARIRPCMOVLADADDSTOJMPDBUSDRDRR1R2DBUSRD(I)RD(D)WE(D)指存读命令取指阶段执行阶段例1
图为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为主存地址寄存器,DR为数据寄存器,ALU由+、-控制信号决定完成何种操作,控制信号G控制一个门电路。另外,线上标注有控制信号,例如Yi表示Y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。 “ADDR2,R0”指令完成(R0)+(R2)→R0的功能操作,试画出其指令周期流程图(假设该指令的地址已放入PC中),并列出相应的微操作控制信号序列。P139例1双总线结构机器的数据通路图微操作信号微操作信号注意微操作控制信号(右边)ALU0ALU0例2(补充例题)某8位模型计算机的数据通路如图所示。其中主要组成在图中标出。根据指令集,写出ADDRD,RS的指令周期流程图指令功能与格式名称助记符功能指令格式R7R6R5R4R3R2R1R0加法ADDRd,RsRd+Rs->Rd0000RS1RS0RD1RD0减法SUBRd,RsRd-Rs->Rd0001RS1RS0RD1RD0乘法MULRd,RsRd*Rs->Rd0010RS1RS0RD1RD0逻辑与ANDRd,RsRd&Rs->Rd0011RS1RS0RD1RD0存数STARd,[Rs]Rd->[Rs]0100RS1RS0RD1RD0取数LDARd,[Rs][Rs]->Rd0101RS1RS0RD1RD0无条件转移JMP[Rs][Rs]->PC1000RS1RS0XX条件转移JCD若C=1则PC+D->PC1001D3D2D1D0停机STP暂停运行0110XXXX中断返回IRET返回断点1010XXXX开中断INTS允许中断1011XXXX关中断INTC禁止中断1100XXXXPCLDAR2M3CERLDIRPC_INCPC+1控制器ADDRD,RS地址OP取指周期W1存储器运算器执行周期W2CER运算器存储器控制器执行周期W3结果CER运算器存储器控制器执行周期W4结果RDCER运算器存储器控制器第3节时序信号和控制方式一、时序信号的作用和体制二、时序信号产生器三、控制方式*一、时序信号的作用和体制在计算机高速运行过程中,计算机内各部件的每一个动作都必须严格遵守时间规定,不能有任何差错例用二进制码表示的指令和数据都放在主存里,那么CPU如何识别出它们是数据还是指令呢?从时间上来说,取指令事件发生在指令周期的第一个CPU周期中,即发生在取指令阶段而取数据事件发生在指令周期的后面几个CPU周期中,即发生在执行指令阶段从空间上来说,如果取出的代码是指令,那么一定送往指令寄存器如果取出的代码是数据,那么一定送往运算器从时序上控制操作信号的顺序时序信号采用电位-脉冲制硬布线控制器:主状态周期-节拍电位(为一个CPU周期)-节拍脉冲微程序控制器:节拍电位-节拍脉冲
节拍电位节拍电位表示一个CPU周期,是一个较大的时间单位.
工作脉冲
在一个机器周期内,要完成若干个微操作。这些微操作有的可以同时执行,有的需要按先后次序串行执行。把一个机器周期分为若干个相等的时间段,每一个时间段对应一个电位信号。
在节拍中执行的有些操作需要同步定时脉冲,为此,在一个节拍内常常设置一个或几个工作脉冲,作为各种同步脉冲的来源。节拍电位与工作脉冲的配合关系QQ-DCP逻辑电路逻辑电路信息节拍电位Ti打入条件工作脉冲PiM1(W1)M2(W2)M3(W3)M4(W4)MF1MF2TMF为状态周期;(W)为节拍;T为节拍脉冲二时序信号产生器计算机内各部件的协调动作需要时间标志而时间标志则是用时序信号来体现的计算机各部分工作所需的时序信号,在CPU中统一由时序发生器来产生启停控制逻辑节拍脉冲及读写时序环形脉冲发生器启停时钟源RD°WE°T1°T2°T3°T4°RDWET1T2T3T4RD’WE’CPU中时序发生器的功能用逻辑电路来发出时序信号,实现时序控制使计算机可以准确、迅速、有条不紊地工作时序发生器是产生控制指令周期的时序信号的部件当CPU开始取指令并执行指令时,操作控制器利用时序发生器产生的定时脉冲的顺序和不同的脉冲间隔,提供计算机各部件工作所需的各种微操作定时控制信号,有条理、有节奏地指挥机器各个部件按规定时间动作2环行脉冲发生器和节拍脉冲
3启停逻辑1时钟源
由石英晶体振荡器和与非门组成的正反馈振荡电路组成
时钟脉冲源电路实现不要求,第5版图5.19
控制方式即控制不同操作序列时序信号的方法。常用的有同步控制、异步控制、联合控制三种方式,其实质反映了时序信号的定时方式。1.同步控制方式在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都固定不变。根据不同情况,同步控制方式可选取如下方案。三、控制方式*(只了解,不考试,ppt81-84)(1)采用完全统一的机器周期执行各种不同的指令。
所有指令采用相同的节拍电位数、节拍脉冲数(2)采用不定长机器周期。
大多数操作安排在一个较短的周期内完成,对一些操作采用延长机器周期的办法解决。(3)中央控制与局部控制结合。将大部分指令安排在固定的机器周期内完成,称之中央控制;对复杂指令(乘、除、浮点运算)则采用另外时序,称之局部控制。2.异步控制方式
特点:每条指令、每个操作控制信号需要多少时间就占用多少时间;用这种方式形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步。
(1)每条指令的指令周期可由多少不等的机器周期数组成;
(2)也可以是当控制器发出某一操作控制信号后,等待执行部件完成操作后发“回答”信号,再开始新的操作。3.联合控制方式此为同步控制和异步控制相结合的方式。
在功能部件内部采用同步控制方式,而在功能部件之间采用异步控制方式。在硬件实现允许的情况下,尽可能多地采用异步控制方式联合控制方式通常选取以下两种方案(1)大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束;(2)机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。一个简化的计算机模型(补充内容)一、模型的指令系统二、计算机简化模型的组成(数据通路)三、程序设计四、指令周期(取指和执行过程)和指令流程图五控制器的设计和实现第4节一个模型计算机和控制器初步设计本模型的指令系统中有5条指令:LDA—将数据装入累加器AADD—加法SUB—减法OUT—输出结果HLT—停机均为
单字长零地址或一地址指令两个通用R(A,B)助记符操作码LDA0000ADD0001SUB0010OUT1110HLT1111一、模型的指令系统二、计算机简化模型的组成(数据通路)CPUPC:计数范围0000-1111MAR:存地址码(地址寄存器)PROM(存储器):16*8,16字节内存(1个字节=8位)IR:8位指令寄存器,高4位为OP,低4位为地址码A:累加器:8位;B:寄存器:8位;O:输出寄存器ALU:算术逻辑部件;二进制显示器D控制部件CON(操作控制单元):为组合逻辑电路,输出12个控制信号,对这12个信号称为1个控制字CPEPLMERLIEILAEASUEULBLO地址译码。。。。。MAR4位0115216*8PROM存储器内部
颜色相同的线相接,并与数据总线相连D0D7。。。。。01010000
区域作用指令区数据区存储单元名称以方便用助记符表示R0-R7R8-RF存储单元地址二进制表示0000-0111如:0000---R01000-1111存储单元地址十六进制表示(0-7)H(8-F)H存储器分配源程序目的程序存储单元号LDA
R9
000010010000(R0)ADDRA
000110100001(R1)ADD
RB
000110110010(R2)ADD
RC
000111000011(R3)SUB
RD
001011010100(R4)OUT
1110****0101(R5)HLT
1111****0110(R6)指令区数据十进制表示数据
存储单元号16000100001001(R9)20000101001010(RA)24000110001011(RB)28000111001100(RC)32001000001101(RD)数据区四、指令周期(取指和执行过程)和指令流程图
以LDA指令为例分析其指令周期和数据通路EpLMERLICP译码EILMERLAEILMLBEREILMEALOLAEULBERLAEUSULDAADDSUBOUTHLT五控制器的设计和实现W1W2EP=ALL*T0*W1LM=ALL*T0*W1+(LDA+ADD+SUB)*T3*W2LI=ALL*T1*W1ER=ALL*T1*W1+(LDA+ADD+SUB)*T4*W2………….操作控制信号实现-以EP\LM为例EpLMERLICpEILMERLAEALOS0S5S4S3S2S1LDAADDSUBOUTHITEILMLBERLAEUEILMLBERLAEUSU指令集指令数据通路的有限状态机组合控制逻辑CPEPLMLO……来自IR的OP字段状态寄存器数据通路控制信号下一状态第5节硬布线控制器一、基本思路二指令的执行过程(算法流程图)三、微操作控制信号的产生设计目标硬布线控制器是把控制部件看作为产生专门固定时序控制信号的逻辑电路,而此逻辑电路以使用最少元件和取得最高操作速度为设计目标。实现方法与特点这种逻辑电路是一种由门电路和触发器构成的复杂树形逻辑网络,故称之为硬布线控制器。一旦控制部件构成后,除非重新设计和物理上对它重新布线,否则要想增加新的控制功能是不可能的。一、基本思路逻辑网络的输入信号来源有三个:(1)来自指令操码译码器的输出Im;(2)来自执行部件的反馈信息Bj;(3)来自时序产生器的时序信号,包括节拍电位信号M和节拍脉冲信号T。
逻辑网络N的输出信号就是,它用来对执行部件进行控制。硬布线控制器的基本原理:C=f(Im,Mi,Tk,Bj)微操作控制信号二指令的执行过程(算法流程图)PCABUS(I)IBUSIRPC+1译码R1R0IRARR1+R2R2R3ARIRPCMOVLADADDSTOJMPDBUSDRDRR1R2DBUSRD(I)RD(D)WE(D)指存读命令M1M2M3三、微操作控制信号的产生(结合第4节的内容)(1)根据所有机器指令流程图,寻找出产生同一个微操作信号的所有条件,并与适当的节拍电位和节拍脉冲组合,从而写出其布尔代数表达式并进行简化,然后用门电路或可编程器件来实现。
(2)为了防止遗漏,设计时可按信号出现在指令流程图中的先后次序书写,然后进行归纳和简化。要特别注意控制信号是电位有效还是脉冲有效,如果是脉冲有效,必须加入节拍脉冲信号进行相“与”。
在硬布线控制器中,某一微操作控制信号由布尔代数表达式描述的输出函数产生。设计微操作控制信号的方法和过程
例3根据图5.29,写出下列操作控制信号 RD(I)RD(D)WE(D)LDPCLDIRLDARLDDRPC+1LDR2RD(I)—指存读命令;RD(D)-数存读命令;WE(D)--指存写命令;LDPC—打入PCLDIR—打入IRLDAR---打入数存地址寄存器LDDR—打入数据缓冲器PC+1LDR2---打入R2Mi(i=1,2,3)为节拍电位信号,Ti(i=1,2,3,4)为节拍脉冲信号WE(D)=M3·T3·STO第6节微程序控制器及微程序设计一、微命令和微操作的概念二、微指令和微程序三、微程序控制器原理框图(CAI)四、微程序举例五、CPU周期和微指令周期的关系六、机器指令与微指令关系七、微程序设计中的概念
按照指令周期中的(取指、执行)各阶段数据通路中每一步(同一个时段内)顺序所产生的控制信号编成所谓的微指令;
将一条一条微指令逐一存放在一个存储器件中;当完成一个指令周期时(取指、执行),会按时序逐一将取出这些微指令,从而产生所需的各种控制信号,使数据通路上相应部件执行所规定的操作。微程序控制器的设计思想回顾第4节的例子:控制器可以由这种设计思想体现微程序控制技术是利用软件方法来设计硬件的一项技术能使机器逻辑设计规整,同时提高可靠性、可利用性和可维护性微程序开发在许多方面类似于软件开发软件工程中行之有效的一系列开发手段都可应用于微程序的开发上1110.CPEPLMERLIEI
LAEASUEULBIOA3A2A1A0000000000000110000000000000110000000000000001100000000000001取指1100000000000000LDA1100000000000000OUT...............ADDSUB
微命令控制部件通过控制线向执行部件发出的各种控制命令(信号)。例如第4节模型计算机的控制信号EP对应的命令。
微操作执行部件接受微命令后所进行的操作。它是执行部件中最基本的操作。控制部件与执行部件通过控制线和反馈信息进行联系。一、微命令和微操作的概念微程序控制器应用----指令集指令规模大的情况同一个CPU周期相容性微操作在同一个CPU周期可以并行执行的微操作互斥性微操作在同一个CPU周期不能并行执行的微操作图5-20简单的数据通路(第4版)
二、微指令和微程序
微指令在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合。
微程序实现一条机器指令功能的许多条微指令组成的序列。微指令的基本格式(图5.21,基于图5-20的数据通路)判别测试CPU周期T4200ns600nsLDR1LDR1’T4LDR1LDR1’LDR2LDR2’LDR3LDR3’三、微程序控制器原理框图OP字段机器指令寄存器IR0001
地址
一条指令执行11000….10100….00100….10010….10011….00000…......….取指.....….OPC000000000000000001PA000010
..1111101111110011000P字段控制字段…地址转移逻辑修改uAR微命令信号状态条件微地址寄存器微命令寄存器控制存储器微程序控制器CPEPLM000000LDR’1PC+1微程序控制器OP字段机器指令寄存器IR0001
地址
一条指令执行11000….10100….00100….10010….10011….00000…......….取指.....….OPC000001000000000001PA000010
..1111101111110011000P字段控制字段…地址转移逻辑微命令信号状态条件微地址寄存器微命令寄存器控制存储器CPEPLM0000011.控制存储器
控制存储器用来存放实现全部指令系统的微指令(微程序),它是一种只读存储器。一旦微程序固化,机器运行时则只读不写。
读出一条微指令并执行微指令的时间总和称为一个微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。
控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。
控制存储器大小(容量)表示为2n*m
①微指令寄存器用来存放由控制存储器读出的一条微指令信息。其中:
微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
②微地址寄存器用来存放将要访问的下一条微指令的地址2.微指令寄存器3.地址转移逻辑
在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。
①如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。②当微程序出现分支时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。地址转移逻辑就承担自动完成修改微地址的任务。四、微程序举例
“十进制加法”指令为例,显示微程序控制的过程.“十进制加法”指令的功能是用BCD码完成十进制数的加法运算.用BCD码运算,当相加位和数大于9时,必须对和数加6予以修正.aR1bR26R3
注意:先做a+b+6运算,再依据仅为标志cy判断,cy=1,保持结果;cy=0,结果减6.图5-20简单的数据通路(第4版,145;第5版,156)ab6CAI---动态演示取指执行五、微指令周期和微指令周期的关系可将微指令周期=CPU周期T1T2T3T4T1T2T3T4CPU周期CPU周期微指令周期微指令周期=读出微指令的时间
+
执行该条微指令的时间六、机器指令与微指令关系(CAI)执行一条指令=执行一段微程序机器指令与微指令的关系(1) 机器指令是提供给使用者编程的基本单位,每一条指令可以完成一个独立的算术运算或逻辑运算操作。一条机器指令对应一组微指令组成的微程序。可见,一条机器指令对应多条微指令,而一条微指令可为多个机器指令服务。(2) 从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与主存有关,后者与控存有关。与此类似,也有相对应的硬设备。(3) 每一个机器周期对应一条微指令。(4)两个层次:
程序员看到的传统机器级:指令、程序、主存;
设计者看到的微程序级:微指令、微程序、控存
设某计算机运算器的数据通路框图如5.28所示,其中ALU为16位的加法器(高电平工作),SA,SB为16位暂存器。4个通用寄存器由D触发器组成,Q端输出,其读、写控制功能见表5.2。机器采用串行微程序控制方式,其微指令周期见图(b)。其中读ROM是从控存中读出一条微指令时间,为1μs;ALU工作是加法器做加法运算,为500ns;m1是读寄存器时间,为500ns;m2是写寄存器的工作脉冲宽度,为100ns。例2(第3版,补充例题,双学位同学不要求)某计算机运算器的数据通路框图RA0RA1:读R0-R3的选择控制
WA0WA1:写R0-R3的选择控制R:寄存器读命令
W:寄存器写命令LDSA:打入SA的控制信号LDSB:打入SB的控制信号SB-ALU:传送SB的控制信号-SB-ALU:传送-SB的控制信号,并使加法器最低位加1.Reset:清暂存器SB为零的信号~:一段微程序结束,转入取机器指令的控制信号微指令字长12位,微指令格式如下:要求:用二进制代码写出如下指令的微程序(不考虑取指阶段)(1)“ADDR0,R1”指令,即(R0)+(R1)→R1(2)“SUBR2,R3”指令,即(R3)-(R2)→R3(3)“MOVR2,R3”指令,即(R2)→(R3)图(b)微地址指令微程序代码ADD1.00**101000002.01**100100003.**0101001001SUB4.11**101000005.10**100100006.**1101000101MOV7.10**101000008.**1101001011取指0.xxxxxxxxxxxx图(b)指令微程序代码ADD100**10100000201**100100003**0101001001SUB411**10100000510**100100006**1101000101MOV710**101000108**1101001001取指0.xxxxxxxxxxxx号单元号单元号单元号单元号单元号单元号单元号单元七、微程序设计中的概念
确定微指令的结构是微程序设计的关键.设计微指令结构应当追求的目标:较短的微指令长度;有利于减小控存容量;有利于提高微程序执行速度;有利于微指令的修改.1、微命令编码2、微地址的形成3、微指令格式1微命令编码
微命令编码对微指令中的操作控制字段采用的表示方法。通常有以下三种方法:1)直接表示法其特点是操作控制字段中的每一位代表一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。(典型的例子是图5.21所标示的情况)2)编码表示法编码表示法是把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组(字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号,其微指令结构如下图所示。3)混合表示法
这种方法是把直接表示法与字段编码法混合使用,以便能综合考虑指令字长、灵活性、执行微程序速度等方面的要求。
图5.27编码表示法2微地址的形成方法
微指令执行的顺序控制问题,实际上是如何确定下一条微指令的地址问题。通常,产生后继微地址有两种方法:1.)计数器方式
这种方法同用程序器计数来产生机器指令地址的方法相类似。在顺序执行微指令时,后继微地址现行微地址加上一个增量来产生;在非顺序执行微指令时,必须通过转移方式,使现行微指令执行后,转去执行指定后继微地址的下一条微指令。在这种方法中,微地址寄存器通常改为计数器。为此,顺序执行的微指令序列就必须安排在控制存储器的连续单元中。计数器方式的基本特点是:微指令的顺序控制字段较短,微地址产生机构简单。但是多路并行转移功能较弱,速度较慢,灵活性较差。(尽管有多个转移条件或判别测试,但对于一条微指令下面只能有两路分支)计数方式原理图(补充解释教材内容,本图不考试)OPAdress译码器µAR控制存储器控制字段下址译码器转移条件转移地址+1IR微指令寄存器微程序入口2位2.)多路转移方式
一条微指令具有多个转移分支的能力称为多路转移。在多路转移方式中:
当微程序不产生分支时,后继微地直接由微指令的顺序控制字段给出;
当微程序出现分支时,有若干“后选”微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中一个微地址。“状态条件”有n位标志,可实现微程序2的n次方路转移,涉及微地址寄存器的n位。多路转移方式的特点是:能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快,但转移地址逻辑需要用组合逻辑方法设计。例3微地址寄存器有6位(μA5-μA0),当需要修改其内容时,可通过某一位触发器的强置端S将其置“1”。现有三种情况(P1P2P3):(1)执行控制台指令微程序时,按IR4,IR5的状态进行4路分支。(2)执行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)进行16路分支;(3)执行条件转移指令微程序时,按进位标志C的状态进行2路分支;请按多路转移方法设计微地址转移逻辑。取指P3?4个分支uA5←IR5uA4←IR4P1?16个分支P2?uA3←IR3uA2←IR2uA1←IR1uA0←IR0cy=1cy=0微指令的格式大体分成两类:(1)水平型微指令(2)垂直型微指令
一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。其一般格式如下:控制字段判别测试字段下地址字段
水平型微指令又分为三种:(1)全水平型(不译法)微指令(2)字段译码法水平型微指令(3)直接和译码相混合的水平型微指令。3、微指令格式
垂直型微指令微指令中设置微操作码字段,由微操作码规定微指令的功能,称为垂直型微指令。其结构类似于机器指令的结构。它有微操作码,在一条微指令中只有1—2个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多。它是采用较长的微程序结构去换取较短的微指令结构。例如水平型微指令与垂直型微指令的比较(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。(2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长(译码)。(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。(4)水平型微指令用户难以掌握,而垂直型微指令与机器指令比较相似,相对来说,比较容易掌握。第7节传统CPU本节为自学内容,请结合以下题目完成自学(阅读时总结)CPU字长为多少位CPU内部寄存器设置的特点CPU如何提供物理地址是否可以完成浮点运算是否采用流水线技术指令集结构是CISCorRISC本节查文献写课程报告,内容提问第8节流水CPU一、并行处理技术二、流水CPU的结构三、流水CPU的主要问题并行性:①同时性,两个以上事件同时刻发生;②并发性,两个以上事件在同一时间间隔内发生(时间并行、空间、时间+空间并行)时间并行:时间重叠、多个过程时间上错开轮流使用同一套硬件设备的各个部分(流水部件)空间并行:资源重复,以数量取胜(多处理机)时间+空间并行:以上两种方法的综合利用(PETIUMCPU)一、并行处理技术2.并行性的等级指令级(指令之间)(指令内部)过程级(程序、进程)粗粒度主要软件实现细粒度主要硬件实现生活中的流水线例子(时间上)洗衣房的例子A,B,C,D每个人都有一包衣服要“洗、烘干、熨平”
洗用30分烘干40分“熨平20分ABCD串行工作方式串行工作这4包衣服处理要6小时但流水作业可以提高效率ABCD3040203040203040203040206晚7891011午夜任务顺序Time流水方式流水工作这4包衣服处理要3.5小时ABCD6PM7891011Midnight任务顺序Time304040404020流水线的特性流水线不能使单独一个任务的效率提高,而是多数任务存在时,对平均每条的效率提高流水周期(或者流水速率)由最慢的流水段决定可以适当的增加流水段以提高效率不平衡的流水段长度将使效率降低ABCD6PM789任务顺序Time304040404020指令流水线——指令级并行(ILP,instructionlevelparallelism)
利用执行指令所需的操作之间的并行,实现多条指令重叠执行的一种技术。目前,几乎所有的高性能计算机都采用了指令流水线。开发方法:依赖于硬件,动态地发现和开发指令级并行,可将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段例:Intel的Pentium系列占市场主导地位依赖于软件技术,在编译阶段静态地发现并行例:Intel的Itanium系列特定应用环境TT0T1T2T3T4T5T6T7T8T9I6I5I4I3指令的流水线执行指令1(I1)指令2(I2)···指令3(I3)I2指令的顺序执行:I1指令的流水线执行:取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数左图为现代流水计算机组成示意图;CPU由3部分组成:指令部件、指令队列、执行部件指令部件:本身是一个流水线指令队列是寄存器队,流水线执行部件:也可以作成流水线存储器体系流水CPU二、流水CPU的结构
处理一个子任务的过程为过程段(Si)。线性流水线由一系列串联的过程段组成,各个过程之间设有高速的缓冲寄存器(L),以暂时保存上一过程子任务处理的结果。在一个统一的时钟(C)控制下,数据从一个过程段流向相邻的过程段。设过程段Si所需的时间为τi,缓冲寄存器的延时为τl,线性流水线的时钟周期定义为τ=max{τi}+τl=τm+τl
故流水线处理的频率为f=1/τ。
在流水线处理中,当任务饱满时,任务源源不断的输入流水线,不论有多少级过程段,每隔一个时钟周期都能输出一个任务。从理论上说,一个具有k级过程段的流水线处理n个任务(指令)需要的时钟周期数为Tk=k+(n-1)
其中k个时钟周期用于处理第一个任务。k个周期后,流水线被装满,剩余的n-1个任务只需n-1个周期就完成了。如果用非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为
TL=n·k
将TL和Tk的比值定义为k级线性流水线的加速比:=Ck=TL
Tk
n·k
k+(n-1)
当n>>k时,Ck→
k。这就是说,理论上k级线性流水线处理几乎可以提高k倍速度。但实际上由于存储器冲突、数据相关,这个理想的加速比不一定能达到。吞吐率流水线的吞吐率H,也称为流水线的带宽,它定义为流水线单位时间内完成的任务数:H=n/((k+n-1)*τ)若将mave定义为每个任务所需的平均时钟周期数,则吞吐率H可以表示为H=1/( mave*τ)当n→
∞,H→f1,f1为最大吞吐率标量流水线处理机:一条指令流水线,一个多功能操作部件,每个时钟周期平均执行指令的条数小于1。超级流水线(Super-pipeline):
将指令的执行分解成小的步骤(级),不同指令中不同步骤可并行操作。级数分的多,并行执行的指令也多。超级流水线指的是多级数的流水线(如8级以上)。超标量处理机典型结构:多条并行工作的指令流水线,多个独立的操作部件。标量流水线的时空图(CAI)可将指令周期的任务分解并由流水部件分别完成。例如,指令周期分为4个过程:取指(IF)、译码(ID)、执行(EX)、结果写回(WB)段与段之间有高速缓冲寄存器I1I1I1I1I1I1I1I1I2I2I2I2I2I2I2I2超标量流水线的时空图(CAI)I1I2I1I1I1I2I2I2
流水线的分类:指令流水线、算术流水线、处理机流水线指令流水线指指令步骤的并行。将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段。目前,几乎所有的高性能计算机都采用了指令流水线。算术流水线指运算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨区域安保协作的模式与机制研究计划
- 2025年高考物理一轮复习之相互作用
- 行政后勤员工福利政策
- 银行工作总结务实高效创造价值
- 银行工作总结协同合作共同发展
- IT行业客服工作技巧
- 2024年琵琶行原文
- 2024年美术教案经典(9篇)
- 《宫腔镜的临床应用》课件
- 到期不续合同范本(2篇)
- 医疗机构发热门诊制度、流程
- 10379食品执行标准
- GB/T 38628-2020信息安全技术汽车电子系统网络安全指南
- GB/T 10609.2-1989技术制图明细栏
- 《商务沟通与谈判》配套教学课件
- 客诉品质异常处理单
- DL∕T 617-2019 气体绝缘金属封闭开关设备技术条件
- 班级管理(第3版)教学课件汇总全套电子教案(完整版)
- 新北师大版八年级下册数学(全册知识点考点梳理、重点题型分类巩固练习)(基础版)(家教、补习、复习用)
- 公司岗位权责划分表
- 玻璃采光顶施工工艺
评论
0/150
提交评论