资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章 中央处理器,返回,1,第五章 中央处理器,5.1CPU,功能和组成,5.2,指令周期,5.3,时序产生器,5.4,微程序控制器及其设计,5.5,硬布线控制器及其设计,5.6,传统,CPU,5.7,流水,CPU,5.8RISC,的,CPU,5.9,多媒体,CPU,2,5,.1 CPU,的功能和组成,1,、,CPU,的功能,指令控制(程序的顺序控制),操作控制(一条指令有若干操作信号实现),时间控制(指令各个操作实施时间的定时),数据加工(算术运算和逻辑运算),3,2,、,CPU,的基本组成,RD/WR,LDDR,LDIR,LDPC,LDAR,PC+1,4,2,、,CPU,的基本组成,(,1,)中央处理器,CPU=,运算器,+,控制器,(,2,)运算器,ALU,累加器,暂存器,5,2,、,CPU,的基本组成,(,3,)控制器,控制器组成,:程序计数器、指令寄存器、数据缓冲器、地址寄存器、通用寄存器、状态寄存器、时序发生器、指令译码器、总线(数据通路),程序计数器,PC(Programming Counter),用来存放正在执行的指令的地址或接着将要执行的下一条指令的地址。,顺序执行时,每执行一条指令,,PC,的值应加,1,要改变程序执行顺序的情况时,一般由转移类指令将转移目标地址送往,PC,,,可实现程序的转移。,指令寄存器,IR(Instruction Register),指令寄存器用来存放从存储器中取出的待执行的指令。,在执行该指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。,6,2,、,CPU,的基本组成,指令译码器,ID(Instruction Decoder),暂存在指令寄存器中的指令只有在其操作码部分经译码后才能识别出是一条什么样的指令。,译码器经过对指令进行分析和解释,产生相应的控制信号提供给时序控制信号形成部件。,机器周期、工作节拍、脉冲及启停控制线路,由脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,时序控制信号形成部件,时序控制信号形成部件又称微操作信号发生器,真正控制各部件工作的微操作信号是由指令部件提供的操作信号、时序部件提供的时序信号、被控制功能部件所反馈的状态及条件综合形成的。,7,2,、,CPU,的基本组成,地址形成部件,根据指令的不同寻址方式,用来形成操作数的有效地址,功能就是指令流出的控制,实质上就是对取指令的控制。,指令分析与执行的控制,对指令流中的每条指令进行分析解释,根据指令的操作性质和寻址方式形成操作数的地址,然后根据该操作数的地址找到相应的存储单元,并从中取出指令执行过程中要用到的操作数,最后还要形成相应的操作控制信号序列,通过运算器、存储器及输入输出设备的动作,来实现这条指令的功能。,指令流向的控制,指令流向的控制即下条指令地址的形成控制。,数据缓冲器、状态条件寄存器,8,3,、,CPU,中的主要寄存器,DR,缓冲寄存器,/,地址寄存器,AR,中转站,补偿速度差别,IR,指令寄存器,PC,程序计数器,AC,内存,或,I/O,指令,数据,DR,指令,数据,9,4,、操作控制器和时序产生器,(,1,)数据通路,(,2,)操作控制器:为数据通路的建立提供各种操作信号。操作信号提供的依据是指令操作码和时序信号,主要有三种类型:,组合类型,存储类型,混合类型,10,4,、操作控制器和时序产生器,硬布线控制器,硬布线控制器,它是采用组合逻辑技术来实现的,其时序控制信号形成部件是由门电路组成的复杂树形网络。这种方法是分立元件时代的产物,以使用最少器件数和取得最高操作速度为设计目标。,组合逻辑控制器的最大优点是速度快,但是时序控制信号形成部件的结构不规整,使得设计、调试、维修较困难,难以实现设计自动化。,11,4,、操作控制器和时序产生器,微程序控制器,微程序控制器是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器,(,控制存储器,),中,微操作控制信号由微指令产生。,微程序控制器的设计思想和组合逻辑设计思想截然不同。它具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。但是,由于它增加了一级控制存储器,所以指令执行速度比组合逻辑控制器慢。,组合逻辑和存储逻辑结合型 ,这种控制器称为,PLA,控制器,它是吸收前两种的设计思想来实现的。,12,4,、操作控制器和时序产生器,时序产生器:提供定时和时序信号,13,14,5.2,指令周期,5.2.1,指令周期的基本概念,5.2.2,典型指令的指令周期,5.2.3,用方框图语言表示指令周期,15,5,.2,指令周期,16,5,.2.1,指令周期的基本概念,概念,指令周期:指取指令、分析指令到执行完该指令所需的全部时间。,各种指令的指令周期相同吗?为什么?,机器周期通常又称,CPU,周期,,通常把一条指令周期划分为若干个机器周期,每个机器周期完成一个基本操作。,主存的工作周期,(,存取周期,),为基础来规定,CPU,周期,比如,可以用,CPU,读取一个指令字的最短时间来规定,CPU,周期,不同的指令,可能包含不同数目的机器周期。,一个机器周期中,包含若干个机器周期(节拍脉冲或,T,脉冲)。,CPU,周期规定,不同的计算机中规定不同,17,5,.2.1,指令周期的基本概念,时钟周期,在一个机器周期内,要完成若干个微操作。这些微操作有的可以同时执行,有的需要按先后次序串行执行。因而需要把一个机器周期分为若干个相等的时间段,每一个时间段称为一个节拍。节拍常用具有一定宽度的电位信号表示,称之为节拍电位。,节拍的宽度取决于,CPU,完成一次基本的微操作的时间,如:,ALU,完成一次正确的运算,寄存器间的一次数据传送等。,18,5,.2.1,指令周期的基本概念,19,5.2.2,指令周期,下面我们用一个模型机来介绍指令周期概念,主要包括:取指(令)周期、(指令)执行周期,执行过程:框架原理,20,21,5.2.2MOV,指令的指令周期,取指周期,执行周期,22,5.2.2MOV,指令的指令周期,-,取指, 程序计数器,PC,中装入第一条指令地址,101,(八进制);,PC,的内容被放到指令地址总线,ABUS,(,I,)上,对指存进行译码,并启动读命令;, 从,101,号地址读出的,MOV,指令通过指令总线,IBUS,装入指令寄存器,IR,;, 程序计数器内容加,1,,变成,102,,为取下一条指令做好准备;, 指令寄存器中的操作码(,OP,)被译码;,CPU,识别出是,MOV,指令,至此,取指周期即告结束。,WR/RD,23,5.2.2MOV,指令的指令周期,-,执行, 操作控制器(,OC,)送出控制信号到通用寄存器,选择,R1,(,10,)作源寄存器,选择,R0,作目标寄存器;,OC,送出控制信号到,ALU,,指定,ALU,做传送操作;,OC,送出控制信号,打开,ALU,输出三态门,将,ALU,输出送到数据总线,DBUS,上。注意,任何时候,DBUS,上只能有一个数据。,OC,送出控制信号,将,DBUS,上的数据打入到数据缓冲寄存器,DR,(,10,);,OC,送出控制信号,将,DR,中的数据,10,打入到目标寄存器,R0,,,R0,的内容由,00,变为,10,。至此,,MOV,指令执行结束。,24,5.2.3LAD,指令的指令周期,取指周期,执行周期,25,5.2.3LAD,指令的指令周期,26,5.2.5ADD,指令的指令周期,27,5.2.5ADD,指令的指令周期,28,5.2.5STO,指令的指令周期,29,5.2.5STO,指令的指令周期,30,5.2.6JMP,指令的指令周期,31,5.2.6JMP,指令的指令周期,32,5.2.7,用方框图语言表示的指令周期,引入目的主要是为了教学目的(控制器设计),方法:,指令系统设计(模型机的五指令系统),方框,按,CPU,周期,方框内内容,数据通路操作或控制操作,菱形符号,判别或测试,公操作,前边所讲述的,5,种操作的框图描述,33,5.2.7,方框图表示指令周期,取指,执行,34,5.2.7,方框图表示指令周期,P139,例,1,双总线结构机器的数据通路图,微操作信号,微操作信号,35,注意微操作控制信号(右边),ALU0,ALU0,36,总结:,一条指令包括一个取指令周期和一个及一个以上的执行周期组成,在每个,CPU,周期中数据通路是明确的,数据通路的建立及操作受到操作控制器的控制,当然决定于是什么指令。,37,5,.3,时序产生器和控制方式,5.3.1,时序产生器作用和体制,5.3.2,时序信号产生器,5,.3.3,控制方式,38,5.3.1,、时序产生器作用和体制,作用:,CPU,中的控制器用它指挥机器的工作,CPU,可以用时序信号,/,周期信息来辨认从内存中取出的是指令(取指)还是数据(执行),一个,CPU,周期中时钟脉冲对,CPU,的动作有严格的约束,操作控制器发出的各种信号是时间(时序信号)和空间(部件操作信号)的函数。,39,5.3.1,、,时序产生器,作用和体制,体制,组成计算机硬件的器件特性决定了时序信号的基本体制是电位,脉冲制(以触发器为例),D,为电位输入端,,CP,(,Clock Pulse,)为脉冲输入端,R,S,为电位输入端,特性方程如下,D=0,时,,CP,上升沿到来时,,D,触发器状态置,0,D=1,时,,CP,上升沿到来时,,D,触发器状态置,1,40,5.3.1,、,时序产生器,作用和体制,41,5.3.1,、,时序产生器,作用和体制,硬布线控制器,采用主状态周期,节拍电位,节拍脉冲三级体制,时序信号产生电路复杂,42,5.3.1,、,时序产生器,作用和体制,微程序控制器,节拍电位,节拍脉冲二级体制,利用微程序顺序执行来实现微操作,时序信号产生电路简单,43,5.3.2,、时序信号产生器,功能:产生时序信号,各型计算机产生时序电路不相同,大、中型计算机的时序电路复杂,微型计算机的时序电路简单,构成:,时钟源,环形脉冲发生器,节拍脉冲和读写时序译码逻辑,启停控制逻辑,44,一、时钟脉冲源,电路左边是振荡电路,右边是整形电路,左边的电路产生接近正弦波的波形,右边非门则将其整形为一个理想的方波,1,1,R,C1,C2,45,二、环形脉冲发生器,作用:产生一组有序间隔相等或不等的脉冲序列,毛刺产生原因:电路内部原因以及寄存器参数的影响,避免方法:采用循环移位寄存器,电路分析:,S,为置位端,,R,为复位端,S,R,D,CP,Q,Q,46,三、环形脉冲发生器,47,三、环形脉冲发生器,C4,C1,C2,C3,48,四、节拍脉冲和读,/,写时序的编码,节拍脉冲的译码逻辑(一个,CPU,周期包含,4,个等间隔的节拍脉冲),思考:假设一个,CPU,周期包含,5,个等间隔的节拍脉冲,环型脉冲发生电路怎样改进?译码逻辑有什么变化?,49,四、节拍脉冲和读,/,写时序的编码,读写时序信号的译码逻辑表达式,以上带,的表示信号来自微程序控制器,持续一个,CPU,周期,读写时序信号受到控制的信号,而节拍脉冲信号时计算机加上电源后就产生。,50,51,五、启停控制逻辑,启动、停机是随机的,对读,/,写时序信号也需要由启停逻辑加以控制。,当运行触发器为“,1”,时,打开时序电路。当计算机启动时,一定要从第,1,个节拍脉冲前沿开始工作。,当运行触发器“,0”,时,关闭时序产生器。停机时一定要在第,4,个节拍脉冲结束后关闭时序产生器。,52,5,.3.3,控制方式,机器指令所包含的,CPU,周期数反映了指令的复杂程度,不同,CPU,周期的操作信号的数目和出现的先后次序也不相同。,控制方式:控制不同操作序列时序信号的方法。,分为以下几种:,同步控制方式,异步控制方式,联合控制方式,53,5,.3.3,控制方式,同步控制方式(指令的机器周期和时钟周期数不变),完全统一的机器周期执行各种不同的指令,采用不定长机器周期,中央控制于局部控制的结合,异步控制方式,每条指令需要多长时间就占多长时间,联合控制方式,大部分指令在固定的周期内完成,少数难以确定的操作采用异步方式,机器周期的节拍脉冲固定,但是各指令的机器周期数不固定(微程序控制器采用),54,5,.4,微程序控制器,发展,微程序的概念和原理是由英国剑桥大学,的,MVWilkes,教授于,1951,年在曼彻斯特大学计算机会议上首先提出来的,当时还没有合适的存放微程序的控制存储器的元件。,到,1964,年,,IBM,公司在,IBM 360,系列机上成功地采用了微程序设计技术。,20,世纪,70,年代以来,由于,VLSI,技术的发展,推动了微程序设计技术的发展和应用。,目前,从大型机到小型机、微型机都普遍采用了微程序设计技术。,55,5,.4,微程序控制器,基本思想:仿照解题的方法,把操作控制信号编制成微指令,存放到控制存储器里,运行时,从控存中取出微指令,产生指令运行所需的操作控制信号。从上述可以看出,微程序设计技术是用软件方法来设计硬件的技术。,56,5,.4,微程序控制器,5,.4.1,微程序控制原理,5,.4.2,微程序设计技术,57,5,.4.1,微程序控制原理,微命令:控制部件向执行部件发出的各种控制命令叫作微命令,它是构成控制序列的最小单位。,例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。,微命令是控制计算机各部件完成某个基本微操作的命令。,微操作:是微命令的操作过程。,微命令和微操作是一一对应的。,微命令是微操作的控制信号,微操作是微命令的操作过程。,微操作是执行部件中最基本的操作。,58,5,.4.1,微程序控制原理,由于数据通路的结构关系,微操作可分为相容的和互斥的两种:,互斥的微操作,是指不能同时或不能在同一个节拍内并行执行的微操作。可以编码,相容的微操作,是指能够同时或在同一个节拍内并行执行的微操作。必须各占一位,举一个例子看一下:见下图,59,60,5,.4.1,微程序控制原理,3,、微指令:把在同一,CPU,周期内并行执行的微操作控制信息,存储在控制存储器里,称为一条微指令(,Microinstruction,)。,它是微,命令的组合,微指令存储在控制器中的控制存储器中,一条微指令通常至少包含两大部分信息:,操作控制字段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号。,某位为,1,,表明发微指令,微指令发出的控制信号都是节拍电位信号,持续时间为一个,CPU,周期,微命令信号还要引入时间控制,顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。,61,5,.4.1,微程序控制原理,4,、微程序,一系列微指令的有序集合就是微程序。,一段微程序对应一条机器指令。,微地址:存放微指令的控制存储器的单元地址,下面我们举一个十进制加法指令为实例。,62,5,.4.1,微程序控制原理,微指令基本格式,63,5,.4.1,微程序控制原理,以,十进制加法指令流程,数据通路图,操作流程图,64,5,.4.1,微程序控制原理,四条微指令如下,000,000,000,000,11111,10,0000,0000,取,指令操作信号,P1,判别,010 100,100,100,00000,00,1001,1010,存,结果,LDR,2,R,1,-X,R,2,- Y,+,65,十进制加法指令的微程序,010 001,001,100 00000,01,0000,1001,存,结果,LDR,2,R,2,- X,R,3,- Y,+,P2,判别,P2,条件为,0,,转到取指令的公操作,010 001,001,001,00000,00,0000,0001,存,结果,LDR,2,R,2,- X,R,3,- Y,-,转到取指令的公操作,66,5,.4.1,微程序控制原理,控制存储器,(CM),。,这是微程序控制器的核心部件,用来存放微程序。其性能,(,包括容量、速度、可靠性等,),与计算机的性能密切相关。,5,、微程序控制器原理,67,5,.4.1,微程序控制原理,微指令寄存器,(IR),用来存放从,CM,取出的正在执行的微指令,它的位数同微指令字长相等。,微地址形成部件,用来产生初始微地址和后继微地址,以保证微指令的连续执行。,微地址寄存器,(MAR),它接受微地址形成部件送来的微地址,为下一步从,CM,中读取微指令作准备。,68,5,.4.1,微程序控制原理,微程序控制器的工作过程,(1),执行取指令的公共操作。取指令的公共操作通常由一段取指微程序来完成,在机器开始运行时,自动将取指微程序的入口微地址送,MAR,,,并从,CM,中读出相应的微指令送入,IR,。,微指令的操作控制字段产生有关的微命令,用来控制实现取机器指令的公共操作。取指微程序的入口地址一般,为,CM,的,0,号单元,当取指微程序执行完后,从主存中取出的机器指令就已存人指令寄存器,IR,中了。,(2),由机器指令的操作码字段通过微地址形成部件产生出该机器指令所对应的微程序的入口地址,并送入,MA,(3),从,CM,中逐条取出对应的微指令并执行之,每条微指令都能自动产生下一条微指令的地址。,69,5,.4.1,微程序控制原理,(4),一条机器指令对应的微程序的最后一条微指令执行完毕后,其下一条微指令地址又回到取指微程序的人口地址,从而继续第,(1),步,以完成取下条机器指令的公共操作。,以上是一条机器指令的执行过程,如此周而复始,直到整个程序的所有机器指令执行完毕。,70,5,.4.1,微程序控制原理,6,、,CPU,周期和微指令周期的关系,71,5,.4.1,微程序控制原理,72,机器指令与,微指令的关系,状态信息,73,例 设某计算机运算器框图,如图所示,,其中,ALU,为,16,位的加法器,(,高电平工作,),,,SA,SB,为,16,位暂存器。,4,个通用寄存器由,D,触发器组成,,Q,端输出,其读、写控制功能见下表。,写控制,读控制,选择,WA1,WA0,W,选择,RA1,RA0,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,74,75,机器采用串行微程序控制方式,其微指令周期见上页图(,b),。其中读,ROM,是从控存中读出一条微指令时间,为,1s,;,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,为零的信号,:一段微程序结束,转入取机器指令的控制信号,RA0RA1,WA0WA1,RW,LDSA,LDSB,SB-ALU,SB-ALU,Reset,76,要求:用二进制代码写出如下指令的微程序:,(1)“ADD R0,,,R1”,指令,即,(R0)+(R1)R1,(2)“SUB R2,,,R3”,指令,即,(R3)-(R2)R3,(3)“MOV R2,,,R3”,指令,即,(R2)(R3),77,先画出三条指令的微指令的微程序流程图,如下图所示。,其中未考虑“取指周期”和顺序控制问题,也即微程序仅考虑“执行周期”,微指令序列的顺序用数字标号标在每条微指令的右上角。每一框表示一条微指令。,根据给定的微指令周期时间关系,完成,ADD,,,SUB,指令的执行动作需要,3,条微指令,,MOV,指令只需,2,条微指令。用二进制代码写出的三条指令的微程序列于下表中,其中*表示代码随意设置,(0,或,1,均可,),。,78,指令 微程序代码,ADD 00*10100000,01*10010000,*0101001001,SUB 11*10100000,10*10010000,*1101000101,MOV 10*10100000,*1101001011,RA0RA1,WA0WA1,RW,LDSA,LDSB,SB-ALU,SB-ALU,Reset,79,5,.4.2,微程序设计技术,一、设计微指令应当追求的目标,有利于缩短微指令的长度,有利于缩小,CM,的容量,有利于提高微程序的执行速度,有利于对微指令的修改,有利于提高微程序设计的灵活性,80,5,.4.2,微程序设计技术,1,、微命令的编码方法,编码有三种方法:直接表示法,/,编码表示法,/,混合表示法,直接表示法:操作控制字段中的各位分别可以直接控制计算机,不需要进行译码。,81,直接表示法举例,操作控制字段的每一个独立的二进制位代表一个微命令,该位为“,1”,表示这个微命令有效,为“,0”,表示这个微命令无效。,5,.4.2,微程序设计技术,后继微地址,判断条件,u,A,0,u,A,1,u,A,2,u,A,3,u,A,4,u,A,5,P,0,P,1,P,2,P,3,I,N,T,S,I,N,T,C,L,D,I,R,L,D,P,C,M,4,P,C,_,A,D,D,P,C,_,I,N,C,L,D,I,A,R,L,D,A,R,1,A,R,1,_,I,N,C,M,3,L,D,E,R,I,A,R,_,B,U,S,#,S,W,_,B,U,S,#,R,S,_,B,U,S,#,A,L,U,_,B,U,S,L,R,W,C,E,L,#,W,R,D,L,D,D,R,1,M,1,S,0,S,1,S,2,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,微指令格式举例(,TEC_5,实验平台格式),35,T,J,82,直接表示法特点:,这种方法结构简单,并行性强,操作速度快,但是微指令字太长,若微命令的总数为,N,个,则微指令字的操作控制字段就要有,N,位。,另外,在,N,个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中是毫无意义的,只会使信息的利用率下降。,5,.4.2,微程序设计技术,83,2,、编码表示法:将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。,5,.4.2,微程序设计技术,编码表示法特点:可以避免互斥,使指令字大大缩短,但增加了译码电路,使微程序的执行速度减慢,84,5,.4.2,微程序设计技术,3,、混合编码法:将前两种结合在一起,兼顾两者特点。一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义,如例,2,:,F1,与,RW,85,5,.4.2,微程序设计技术,编码注意几点:字段编码法中操作控制字段并非是任意的,必须要遵循如下的原则:,把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。这样不仅有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。,应与数据通路结构相适应。,每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。,一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,,通常用,000,表示不操作。,下面举例说明,86,1,2,3,4,5,6,7,8,9,顺序控制,4,、,5,:,00,无操作,01 R1,X,10 R2, X,11 DR,X,6,、,7,:,00,无操作,01 R3,Y,10 R2, Y,11 R1,Y,8,、,9,:,00,无操作,01,10,11 M,混和表示法,1,、,2,、,3,位为直接表示法,4,、,5 6,、,78,、,9,位为编码表示法,87,5,.4.2,微程序设计技术,二、微指令地址的形成,入口地址:每条机器指令对应一段微程序,当公用的取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各段微程序的入口地址,这是一种多分支,(,或多路转移,),的情况。,机器指令的操作码转换成初始微地址的方式主要有两种。,计数器的方式,多路转移的方式,88,5,.4.2,微程序设计技术,1,、入口地址形成:,如果机器指令操作码字段的位数和位置固定,可以直接使操作码与微程序入口地址的部分位相对应。,89,5,.4.2,微程序设计技术,2,、后继微地址形成方法,(,1,)计数器的方式,方法:,微程序顺序执行时,其后继微地址就是现行微地址加上一个增量,(,通常为,1),;,当微程序遇到转移或转子程序时,由微指令的转移地址段来形成转移微地址。,在微程序控制器中也有一个微程序计数器,PC,,,一般情况下都是将微地址寄存器,MAR,作为,PC,特点:,优点是简单、易于掌握,编制微程序容易,缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。,90,5,.4.2,微程序设计技术,(,2,)多路转移的方式,根据条件转移如图,条件:状态条件,/,测试,/,微指令中微地址,/,操作码,91,【,例,2】,微地址寄存器有,6,位,(A5-A0),,当需要修改其内容时,可通过某一位触发器的强置端,S,将其置“,1”,。现有三种情况:,(1),执行“取指”微指令后,微程序按,IR,的,OP,字段,(IR3-IR0),进行,16,路分支;,(2),执行条件转移指令微程序时,按进位标志,C,的状态进行,2,路分支;,(3),执行控制台指令微程序时,按,IR4,,,IR5,的状态进行,4,路分支。,请按多路转移方法设计微地址转移逻辑。,92,按所给设计条件,微程序有三种判别测试,分别为,P1,,,P2,,,P3,。 由于修改,A5-A0,内容具有很大灵活性,现分配如下:,(1),用,P1,和,IR3-IR0,修改,A3-A0,;,(2),用,P2,和,C,修改,A0,;,(3),用,P3,和,IR5,,,IR4,修改,A5,,,A4,。,另外还要考虑时间因素,T4(,假设,CPU,周期最后一个节拍脉冲,),,故转移逻辑表达式如下:,A5=P3IR5T4,A4=P3IR4T4,A3=P1IR3T4,A2=P1IR2T4,A1=P1IR1T4,A0=P1IR0T4+P2CT4,由于从触发器强置端修改,故前,5,个表达式可用“与非”门实现,最后一个用“与或非”门实现。,下图仅画出了,A2,、,A1,、,A0,触发器的微地址转移逻辑图。,93,94,5,.4.2,微程序设计技术,3,、微指令格式分为两类:水平型微指令和垂直型微指令,(,1,)水平型微指令 ,水平型微指令是指一次能定义并能并行执行多个微命令的微指令。,格式如下,控制字段,判别测试字段,下地址字段,95,5,.4.2,微程序设计技术,水平型微指令特点,:,优点:,微指令字较长,速度越快。,微指令中的微操作有高度的并行性。,微指令译码简单。,控制存储器的纵向容量小,灵活性强。,缺点:,微指令字比较长,明显地增加了控制存储器的横向容量。,水平微指令与机器指令差别很大,一般要熟悉机器结构、数据通路、时序系统以及指令执行过程的人才能进行微程序设计,这对用户来说是很困难的。,96,5,.4.2,微程序设计技术,(,2,)垂直型微指令:采用编码方式。,设置微操作控制字段时,一次只能执行一到二个微命令的微指令称为垂直型微指令。,97,5,.4.2,微程序设计技术,垂直型微指令的,特点:,微指令字短,一般为,10,20,位左右。,微指令的并行微操作能力有限,一条微指令一般只包含一个微操作命令。,微指令译码比较复杂。全部微命令用一个微操作控制字段进行编码,微指令执行时需行完全译码。,设计用户只需注意微指令的功能,而对微命令及其选择、数据通路的结构则不用过多地考虑,因此,便于用户编制微程序。而且,编制的微程序规整、直观,便于实现设计的自动化。,垂直微指令字较短,使控制存储器的横向容量少。,用垂直微指令编制微程序要使用较多的微指令,微程序较长;要求控制存储器的纵向容量大。垂直微指令产生微命令要经过译码,微程序执行速度慢。,不能充分利用数据通路具有多种并行操作能力,98,5,.4.2,微程序设计技术,水平型微指令和垂直型微指令的比较,(1),水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。,(2),水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。,(3),由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。,(4),水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。,99,5,.4.2,微程序设计技术,4,、,动态微程序设计,对应于一台计算机的机器指令只有一组微程序,这一组微程序设计好之后,一般无须改变而且也不好改变,这种微程序设计技术称为静态微程序设计。,采用,EPROM,作为控制存储器,可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。,100,5,.6,硬布线控制器,1,、实现方法,通过逻辑电路直接连线而产生的,又称为组合逻辑控制方式,2,、设计目标,使用最少元件(复杂的树形网络),速度最高,101,5,.6,硬布线控制器,3,、逻辑原理,(,1,)逻辑原理图,C,为微操作控制信号,I,m,为译码器输出,,M,i,为节拍电位,,T,k,为节拍脉冲,,B,j,为状态条件,C,由组合电路实现,速度快,但难以修改。,(,2,)指令的执行流程,微程序控制器时序信号简单。只需要若干节拍脉冲信号即可。,组合逻辑控制器除了节拍脉冲信号外,还需要节拍电位信号。,返回,102,5,.6,硬布线控制器,(,3,)微操作控制信号产生,在微程序控制器中,微操作控制信号由微指令产生,并且可以重复使用。,在硬联线控制器中,某一微操作控制信号由布尔代数表达式描述的输出函数产生。,设计微操作控制信号的方法和过程是,根据所有机器指令流程图,寻找出产生同一个微操作信号的所有条件,并与适当的节拍电位和节拍脉冲组合,从而写出其布尔代数表达式并进行简化,然后用门电路或可编程器件来实现。,103,5,.6,硬布线控制器,4,、设计步骤,(,1,)画出指令流程图,(,2,)列出微操作时间表,将指令流程图中的微操作合理地安排到各个机器周期的相应节拍和脉冲中去;,微操作时间表形象地表明:什么时间、根据什么条件发出哪些微操作信号。,104,5,.6,硬布线控制器,(,3,)进行微操作信号的综合,当列出所有指令的微操作时间表之后,需要对它们进行综合分析,把凡是要执行某一微操作的所有条件,(,哪条指令、哪个机器周期、哪个节拍和脉冲等,),都考虑在内,加以分类组合,列出各微操作产生的逻辑表达式,然后加以简化,使逻辑表达式更为合理。,(,4,)实现电路 ,根据整理并化简的逻辑表达式组,可以用一系列组合逻辑电路加以实现,加根据逻辑表达式画出逻辑电路图,用逻辑门电路的组合来实现之,也可以直接根据逻辑表达式,用,PLA,或其他逻辑电路实现。,105,例,3,根据图,5.29,,写出以下操作控制信号,RD,(,I,)、,RD,(,D,)、,WE,(,D,)、,LDPC,、,LDIR,、,LDAR,、,LDDR,、,PC+1,、,LDR2,的逻辑表达式。其中每个操作控制信号的含义是:,RD,(,I,),指存读命令,RD,(,D,),数存读命令,WE,(,D,),数存写命令,LDPC,打入程序计数器,LDIR,打入指令寄存器,LDAR,打入数存地址寄存器,LDDR,打入数据缓冲寄存器,PC+1,程序计数器加,1,LDR2,打入,R1,寄存器,106,数据通路图,RD/WR,LDDR,LDIR,LDPC,LDAR,PC+1,107,图,5.29,硬布线控制器的指令周期流程图,108,列出微操作时间表(根据数据通路和操作流程图),节拍电位,脉冲,LDAR,LDDR,LDIR,M1,T1,T2,T3,ADD,、,STA,、,JMP,、,NOP,、,CLA,T4,ADD,、,STA,、,JMP,、,NOP,、,CLA,ADD,、,STA,、,JMP,、,NOP,、,CLA,M2,T1,T2,T3,T4,ADD,、,STA,、,JMP,M3,T1,T2,T3,ADD,、,STA,T4,109,进行微操作信号的综合,图,5.29,中五条指令的微操作控制信号举例。,LDAR=M1T4+M2(ADD+STA+JMP)T4,LDDR=M1T3+M3(ADD+STA)T3,LDIR=M1T4,其中,M1,、,M2,、,M3,是三个节拍电位信号;,T3,、,T4,为时钟周期信号;,ADD,、,STA,、,JMP,是指令,OP,字段译码器的输出信号。,最后给出电路(省略),110,5,.6,传统,CPU,5.6.1Intel 8088,5,.6.2 IBM370,111,5.6.1Intel 8088,112,5,.6.2,IBM370,IBM370 CPU,(,自己看),1972,年,32,位,ALU,的三个功能部件,寄存器结构,CPU,控制状态,管态,目态,113,5,.7,流水,CPU,Enslow,统计过:,19651975,间,反映器件性能级延迟大约为原来的,1/10,,而反映计算机系统性能之一的平均指令时间为,1%,。,结论:同一时期计算机系统性能比器件性能提高的速度快得多,促使计算机性能提高的因素除了器件性能得提高外还有哪些呢?,114,5,.7,流水,CPU,5.7.1,并行处理技术,5.7.2,流水,CPU,的结构,5,.7.3,流水线中的主要问题,5.7.4 Pentium CPU,115,5.7.1,并行处理技术,并行性(,Parrelism,),概念,问题中具有可以同时进行运算或操作的特性,例:在相同时延的条件下,用,n,位运算器进行,n,位并行运算速度几乎是一位运算器进行,n,位串行运算的,n,倍(狭义),(广义)含义,只要在,同一时刻,(同时性)或在,同一时间间隔,内(并发性)完成两种或两种以上性质相同或不同的工作,他们在时间上相互重叠,都体现了并行性,116,5.7.1,并行处理技术,三种形式,时间并行(重叠):让多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部件,以加快硬件周转而赢得速度,实现方式就是采用流水处理部件,空间并行(资源重复):以数量取胜,它能真正的体现同时性,LSI,和,VLSI,为其提供了技术保证,时间,+,空间并行,Pentium,中采用了超标量流水线技术,117,5.7,.2,流水,CPU,的结构,流水计算机的系统组成,存储器体系:主存采用多体交叉存储器;,Cache,流水方式,CPU,:,指令部件、指令队列、执行部件,指令流水线,指令队列:,FIFO,执行部件:可以有多个采用流水线方式构成的算术逻辑部件构成,可以将定点运算部件和浮点运算部件分开。,118,5.7,.2,流水,CPU,的结构,流水线,CPU,时空图,IF,(,Instruction Fetch,取指),ID,(,Instruction Decode,指令译码),EX,(,Execution,执行),WB,(,Write Back,写回),119,5.7,.2,流水,CPU,的结构,流水,CPU,非流水,CPU,120,5.7,.2,流水,CPU,的结构,具有两条以上的指令流水线,上图中流水线满载时,每一个时钟周期可以执行,2,条指令,采用时间和空间并行,技术,121,5.7,.2,流水,CPU,的结构,流水线(,Pipelining,)的分类,按级别分为,指令流水线,算术流水线,处理机流水线(宏流水线),122,5.7,.3,流水线中的主要问题,瓶颈问题(流水线中有速度慢的段),再分成几个段,用资源重复的方法也可以解决,资源相关:多条指令进入流水线后在同一时钟周期内争用同一功能部件。,解决办法:后边指令拖一拍再推进;增设一个功能部件,123,5.7,.3,流水线中的主要问题,数据相关,RAW(Read After Write),后面指令用到前面指令所写的数据,WAW(Write After Write),两条指令写同一个单元,在简单流水线中没有此类相关,因为不会乱序执行,WAR(Write After Read),后面指令覆盖前面指令所读的单元,在简单流水线中没有此类相关,解决办法:,可以推后后继指令对相关单元的读操作,设置相关的直接通路,(,Forwarding,),124,5.7,.3,流水线中的主要问题,例:两条指令发生数据相关冲突,RAW(Read After Write),ADDR1,R2,R3R2+R3-R1,SUBR4,R1,R5R1-R5-R4,ANDR6,R1,R7R1R7-R6,125,5.7,.3,流水线中的主要问题,控制相关,引起原因:转移指令,解决办法:延迟转移法,转移预测法,126,【,例,4】,流水线中有三类数据相关冲突:写后读(,RAW,)相关;读后写(,WAR,)相关;写后写(,WAW,)相关。判断以下三组指令各存在哪种类型的数据相关。,(,1,),I1 ADD R1,,,R2,,,R3,;(,R2,),+,(,R3,),-R1,I2 SUB R4,,,R1,,,R5,;(,R1,),-,(,R5,),-R4,(,2,),I3 STO M,(,x,),,R3,;(,R3,),-,M(x,),,,M(x,),是存储器单元,I4 ADD R3,,,R4,,,R5,;(,R4,),+,(,R5,),-R3,(,3,),I5 MUL R3,,,R1,,,R2,;(,R1,),(,R2,),-R3,I6 ADD R3,,,R4,,,R5,;(,R4,),+,(,R5,),-R3,解:,第(,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,相关。,127,5.7,.4 Pentium CPU,Pentium CPU,(,第一代),1989,年初,0.8um,工艺,,310,万晶体管,有,60M,和,66MHz,外频两种版本,5V,电压,功耗,20W,超标量流水线结构,486,有一条流水线,Pentium,有,U,和,V,两条指令流水线,U,流水线可以执行所有的整数和浮点指令,V,流水线可以执行简单的整数和,FXCH,浮点指令,双重分离式,Cache,,,减少了等待和搬移数据时间,32,位,CPU,,,外部数据总线宽度为,64,位,外部地址总线宽度为,36,位,128,5.7,.4 Pentium CPU,非固定长度指令格式,,9,种寻址方式,,191,条指令,兼具有,RISC,和,CISC,特性,不过我们还是将其看成,CISC,SL,电源管理技术,提供了更加灵活的存储器寻址结构,可以支持传统的,4k,大小的页面,也可以支持,4M,大小的页面,动态转移预测技术,Pentium,结构图,MESI,(,Modified Exclusion Share Invalid,),BTB,(,Branch Target Buffer,),TLB,(,Translation,Lookaside,Buffer,),129,130,5,.8 RISC CPU,特点,(采用流水线技术),简单而统一格式的指令译码;,大部分指令可以单周期执行,只有,LOAD/STORE,可以访问存储器,简单的寻址方式,采用延迟转移技术,采用,LOAD,延迟技术,三地址指令格式,较多的寄存器,对称的指令格式,其他。(见书),131,5,.8 RISC CPU,实例,MC88110,CPU,结构框图(见下图),12,个执行功能部件,3,个,Cache,(,指令,数据和目标指令),两个寄存器堆(通用寄存器堆、扩展寄存器堆),六条,80,位宽的内部总线,132,MC88110 CPU,结构框图,133,MC88110,的指令流水线,超标量流水线,CPU,F&D,:取指和译码段需要一个时钟周期,,EX,:执行段,大都只需要一个时钟周期,,WB,:写回段,只需要时钟周期的一半,采用了直接通路(,Forwarding,)技术,F&D,EX,WB,134,指令动态调度策略,按序发射,取两条指令,配对发送,一个周期可以有两条指令执行完毕,如下图:,135,第一条指令由于资源相关或数据相关,则这两条指令都不发射,若第一条指令能发射,第二条不能发射,只发射第,1,条指令到,EX,段,第二条指令等待并新取一条指令与之配对等待发射,136,5,.8 RISC CPU,几个问题:,怎样判断能否发射呢,?,可以采用计分牌的方法,如何保证按序完成?,FIFO,指令队列,如何对待控制相关(转移指令)?,采用延迟转移法和目标指令,cache,法,137,5,.8 RISC CPU,计分牌:,计分牌是一个位向量、每一位对应寄存器堆中的一个寄存器。,指令发射时,目的寄存器在计分牌中相应位为,1,;写回后清,0,判断指令可否发射的条件是:,该指令的所有目的寄存器、源寄存器在向量位中对应的位都为,0,否则,等待这些位清除,138,5,.8 RISC CPU,FIFO,队列,FIFO,队列称为历史缓冲器,每当一条指令发射后,副本传入,FIFO,队列队尾,只有当前面的指令执行完毕,才到达队首,,执行完毕后,离开队列,139,5,.8 RISC CPU,延迟转移法,可选,如果采用延迟转移选项,则转移指令后的转移延迟时间内指令被发射,否则,指令照常发送,指令,Cache,(,TIC,)法,是一个,32,位的全相联,Cache,,用来保存转移路径的前两条指令,140,5,.8 RISC CPU,例,5,超标量流水线结构如下,141,5,.8 RISC CPU,I1LDA R1,A,I2ADDR2,R1,I3ADDR3,R4,I4MULR4,R5,I5LDAR6,B,I6MULR6,R7,画出按序完成各段推进情况图,画出按序完成流水线时空图,RAW,WAR,WAW,142,5,.8 RISC CPU,I,6,143,5.8 RISC CPU,144,5,.9,多媒体,CPU,多媒体概念,指利用计算机来综合、集成地处理文字、图形、图象、声音、视频、动画等媒体,从而形成的一种全新的信息传播和处理的计算机技术。主要特征:,信息表示的数字化,处理的集成性,系统的交互性,145,5,.9,多媒体,CPU,主要技术问题,压缩和解压缩技术,静态,640*480,的,256,色图象约占,640*480*1B=307200B,300K,640*480,的,24Bit,彩色图象约占,640*480B*3=921600B=900K,动态,每秒钟,30,桢(播放,256,色),则每秒钟处理,300K*30=9M,,而,ISA,总线的传输率只有,5MBPS,结论:多媒体信息量大,给信息处理和传输带来了困难,146,5,.9,多媒体,CPU,解决方法:,压缩技术,JPEG,(,Joint Photographic Experts Group,MPEG,(,Moving Picture group,),软件技术,多媒体,OS,多媒体处理软件,硬件技术,MMX,(多媒体扩展技术),动态执行技术,147,5,.9,多媒体,CPU,MMX,(多媒体扩展技术),MMX,是,Intel,为增强处理器的多媒体能力而提出的解决方案,它是,57,个多媒体指令集合。这些指令是为高效地处理视频、声音和图形数据而专门设计的,Intel,使用,SIMD(,单指令流,多数据流,),过程来实现这些多媒体指令。,148,5,.9,多媒体,CPU,多媒体和通信应用中经常使用重复运行的循环,这些循环只占程序代码的,10%,或更少,却要占用多达,90%,的执行时间。,SIMD,允许一条指令在多个数据上进行相同的操作。由于循环
展开阅读全文