六章CPU设计.ppt
第六章CPU设计,6.1 CPU设计基本步骤 6.2 组合逻辑控制器设计 6.3 微程序控制器设计 6.4 流水线技术 6.5 小结,6.1 CPU设计基本步骤,CPU作为计算机系统的一部分,它的设计过程不应当独立进行,CPU的设计只是整个系统设计的一部分。CPU的功能是为系统的整体目标服务,它的组成与结构受系统的应用目标限制。第一步是确定CPU的应用场合(目标)。此步骤的关键是确定CPU所应具有的处理能力(功能),应保证与应用需求一致。设计举例第二步是拟定它将运行的程序类型,确定为完成所要求功能需要的指令,从而确定CPU指令集结构(ISA结构)。在完成指令集结构设计之后,根据指令集结构所确定的内容来进行设计CPU的各组成部件,以及用于连接各功能部件的数据通路结构。第三步确定CPU指令集中各指令的微操作信号的节拍安排,以明确CPU(主要是控制器)为完成取指令、指令译码和执行指令集中的每个指令所必须发出的微操作信号与指令、时间的关系。第四步形成微操作信号的逻辑表达式,该表达式的条件是指令、时间、状态等,而结果是控制信号。依据各控制信号的逻辑表达式,可采用组合逻辑设计法或微程序设计法获得控制器的逻辑电路图或微程序,并将控制器和其它组合到一起形成CPU。,设计举例,1996年,美国国家航空航天局(NASA)发射了一艘火星探路者号宇宙飞船,这只宇宙飞船用了7个月的时间航行才着陆到火星。一到达火星,它就放出了一个漫游机器人,叫做Sojouener,它用来探索探路者号飞船附近的表层,并且将读取的数据传回给宇宙飞船。然后探路者号飞船再将这些送回地球。1997年7月4日,探路者号飞船成功地到达了火星的表面。Sojouener只用了一个80C85微处理器控制整个操作。它运行的时钟速度为2MHz,但是该处理器并不是因为它的速度而被选中的。实际上,正是因为它能够执行所需功能,而且因为这一版本的8085微处理器能在远离大气层保护,辐射强烈的环境中正确地工作。,6.2 组合逻辑控制器设计,6.2.1 模型机基本设计 6.2.2 微操作节拍安排 6.2.3 模型机组合逻辑控制器设计,6.2.1 模型机基本设计,模型机的设计目的:用于教学目的的计算机,其只需完成基本算术逻辑运算即可。ISA结构的设计内容如下:指令类型,指令的数目、功能。寻址方式,确定地址结构、各指令的操作数寻址方式。寄存器,寄存器所占二进制位数、数目、功能、可见性(是否可编程访问)。指令格式,指令字长、各字段的分配(操作码、寻址方式码、地址码)。,指令类型,指令格式,指令采用固定字长方式,同时指令中处理的数据长度与指令长度相同,均为32位。指令寻址方式采用直接寻址,数据寻址方式采用直接寻址和隐含寻址。程序控制单元用于生成连接数据处理单元和程序控制单元、以及在CPU与外部存储器之间的连接控制信号。,模型机部件设置与数据通路结构,CPU中寄存器的设置包括:IR(指令寄存器)用于存储当前正在执行指令;AR(存储器地址寄存器)用于存储预访问单元地址;PC(程序计数器)用于存储下条指令地址;DR(存储器数据寄存器)用于存储与存储器进行交互的数据;AC(累加器)根据指令系统结构可知寄存器组中可见寄存器为DR和AC,其余均为用于控制的不可见寄存器,标志寄存器在结构图中未标识。模型机的数据通路结构为单组内总线、分离寄存器结构。,模型机结构框图,6.2.2 微操作节拍安排,节拍安排的目的:列出各条指令执行所需的微操作信号以及各操作信号与时序信号之间的关系。为提高指令的执行效率,应进行微操作的节拍顺序调整,微操作的节拍安排因遵循以下原则:微操作之间若次序有先后,安排时应保持其先后次序不变。若微操作使用不同的部件,可使其安排在同一节拍内。若不同微操作所占用的时间均不长,可以将它们安排在同一节拍的进行,且保持其先后顺序不变。,模型机操作流程图,模型机采用将指令周期划分成:取指工作周期和执行工作周期,在取指工作周期包括3个节拍,而执行周期根据指令复杂程度不同包含13个节拍。根据各条指令的功能和节拍安排原则,可形成下面模型机的操作流程图。,模型机控制点,控制点的作用:用于功能的选择或数据流动的控制。数据的正确流动,确保指令功能的实现。,控制点与数据流控制的关系,功能选择用于对运算器(ALU)进行控制,实现控制ALU完成不同的数据处理。模型机功能选择信号:C2,C9,C10,C11,C12。存储控制用于控制外存储器。模型机存储控制信号:C1,C8,C13 C14。数据通路控制用于控制数据通路中各控制点的开放和关闭状态的切换,实现数据、地址、指令等信息在CPU内部各个数据和控制寄存器之间进行传递。模型机数据通路控制信号:C0,C3,C4,C5,C6,C7。,6.2.3 模型机组合逻辑控制器设计,组合逻辑控制器基本结构 模型机的操作时间表 组合逻辑控制器设计 组合逻辑控制器的优缺点,组合逻辑控制器基本结构,组合逻辑控制器中的关键部分是组合逻辑电路,它将时序信号、指令译码结果、状态/条件等信息(信号)作为输入,通过组合逻辑电路的处理,形成相对应的控制信号,从而完成CPU的指令控制、操作控制和时间控制功能。,模型机的操作时间表,根据模型机指令操作流程图、指令功能、微操作安排原则和控制信号的设置情况,形成的操作时间表的作用是列出各指令所需的操作信号与节拍信号之间的关系。,组合逻辑控制器设计,产生C6信号的逻辑图,根据操作时间表可以生成各控制信号的逻辑表达式如下:,C0FET0 C1FET1+EXT1LDC2FET2 C3EXT2(BRA+BZ(AC=0)C4FET2 C5EXT0(LD+ST)C6EXT1ST+EXT2MOV1 C7EXT2(LD+MOV2)C8EXT2ST C9EXT2ADDC10EXT2SUB C11EXT2ANDC12EXT2NOT C13FE.T0+EXT0LDC14EXT0ST 在上述的逻辑表达式中,MOV1表示MOV DR,AC指令,MOV2表示MOV AC,DR指令。,组合逻辑控制器的优缺点,在组合逻辑控制器的设计过程发现,组合逻辑控制器控制有以下两个缺点:组合逻辑控制器是由许多门电路产生控制信号,而各控制信号所需的门电路逻辑很不规整,因此组合逻辑控制器的核心部分比较繁琐、凌乱,设计效率较低,检查调试比较困难。改进方法是将程序设计技术引入到CPU机器的构成级,使设计规整化。组合逻辑控制因其使用逻辑门电路生成控制信号,设计结果被固定在印刷电路板上,使其不易修改和扩展。而且,在各个控制信号逻辑表达式中往往包含许多条件,其中一些逻辑变量可能在许多表达式公用的,修改一处就会牵动其他,因而很难修改。改进的方向是将程序存储思想引入CPU设计,取代用组合逻辑电路生成控制信号,而是将控制信号以数字代码的形式直接存入一个存储器中,只要修改所存储的代码即控制信号信息,就可以完成修改有关的功能和执行方式。组合逻辑控制器的优点是运行速度较快,因此目前应用于高速计算机和RISC处理器和巨型机中,以及规模较小的计算机中。,6.3 微程序控制器设计,6.3.1 微程序基本原理6.3.2 微程序控制器基本结构 6.3.3 微指令格式设计 6.3.4 模型机微程序设计 6.3.5 实例:基于微代码的CPU:奔腾微处理器,6.3.1 微程序基本原理,指令的执行是由一系列有序信号控制实现地,借鉴程序存储思想英国剑桥大学教授威尔克斯在1951年提出微程序控制设计思想,作为一种控制单元设计方法,其核心思想可以归纳成一下几点:,每一条机器指令的功能是通过微程序实现的;微程序是作为一个实时指令解释器,即每一条机器指令对应一个由若干条微指令组成的微程序;微程序中的每一条微指令与一组微操作对应(控制信号所对应的动作);微指令的序列反映了为完成一条机器指令所应发出控制信号的先后次序;微指令也采用二进制码的形式;微程序的集合对应着一个特定的指令集或机器语言。,6.3.1 微程序基本原理,微程序控制器的设计工作只要集中在以下几个方面:微指令格式设计,因为微指令采用二进制码的形式,所以必须为微指令拟就格式,以表示每一条微指令所对应的微操作。微程序编制,为每一条机器指令编写对应的微程序,根据机器指令所包含的微操作,确定每个微程序中的微指令以及次序,进而形成存入微程序控制器的微程序。作为一种设计活动,微程序的设计可与汇编语言程序设计相似。控制逻辑电路设计,微程序的执行和解释需要相应的控制逻辑电路,以实现微指令的读取,微指令地址的形成,微指令流程控制和由微指令形成控制信号。,6.3.2 微程序控制器基本结构,1控制存储器用于存储着与全部机器指令对应的微程序。2微地址控制逻辑依据时间、条件、指令和下地址信息等信息,来形成下条微指令地址。3微地址寄存器的作用与PC(指令计数器)相同,用于存储下一条微指令地址。4微指令寄存器用于存储由控制存储器取出的微指令。5微指令译码电路的作用是根据微指令用于生成控制信号。,6.3.3 微指令格式设计,由于微指令是二进制码的形式而指令也是二进制码的形式,一个微指令一般也包括两部分:操作控制字段和下地址控制字段。,操作控制字段用于指出有那些控制信号被激活。下地址控制字段用于指出下一条待执行微指令在控制存储器中地址的本身或其计算方式。,微指令格式设计主要解决以下几个问题:操作控制编码方式 微指令类型 下地址控制编码方式 动态微程序设计 微操作同步定时,操作控制编码方式,在操作控制字段一般包括一个或多个操作控制域,每个控制域可控制一个或一组控制信号的生成,根据控制信号是直接生成于控制域还是译码生成控制信号的不同可分为以下几种形式。直接控制法:操作控制字段的每一位都与一个独立控制信号相对应。若当前微指令的某一位ki=1,则与之对应ci控制信号有效,否则ci控制信号无效。分段编码控制法:在微程序级别,许多微操作是可以并行执行。一般采用将微指令的操作控制字段分成k个相互独立的控制域,每一个控制域存储一组微操作,每一种编码对应一个微操作,每一个微操作都可以与其它控制域所存储的任意一个微操作并行执行,但在组内的微操作之间是互斥的,不允许在同一时间段内发生或有效。分段间接编码控制法:在微指令格式里,如果一个字段的含义不只决定本字段编码,还兼由其他字段决定,则可采用分段间接编码控制法。此时一个字段兼有两层或两层以上的含义。分段间接编码控制法的示意图。其它方式:在实际微指令中操作控制编码并不是只单独采用上述三种编码方式中的一种,而是将上述三种混合使用,以保证能综合考虑指令的字长、灵活性和执行微程序的速度等方面的要求。,分段间接编码控制法的示意图,微指令类型,微指令格式一般分为两种类型:水平型和垂直型。水平型微指令有如下特点:指令字比较长;能表达较高程度的微操作并行性;微操作控制信号编码的量比较小。垂直型微指令有如下特点:指令字长比较短;表达微操作并行程度的能力较低;要进行比较多的操作控制信号的编码。垂直型微指令在很大程度上与RISC指令相类似,都尽量减少并行性,而保证单周期执行的形式。但是计算机也经常被设计成与水平型微指令相似的形式,具有较长指令字和更高并行性的形式。,下地址控制编码方式,一般情况下后继微指令的地址有以下几种给出方式:顺序递增法:将PC设置成可实现自动加1的功能,每当完成当前指令的执行,就以PC+1后的值为地址在控制存储器中取下一条微指令。直接给出法:下一条微指令的地址直接取自微指令中的下地址字段。分支转移法:在包含分支转移的微指令中常设置一个条件选择子区域,用于指出哪些判定条件被测试,与此同时转移地址被存储在下地址字段。当转移条件满足时,将下地址字段的内容读入到PC中,取下一条微指令,实现微程序转移。若转移条件不满足,微程序则顺序执行。微程序入口地址的形成:每条机器指令所对应的微程序的入口地址(首地址),一般由指令的操作码所决定。在机器加电后,第一条微指令的地址一般是由专门的逻辑电路生成,也可以采用由外部直接输入的形式获得。,动态微程序设计,通常计算机的指令系统中指令的类型和数量是固定,而与其对应的微程序也应当是保持不变的。但是如果采用EPROM作为控制存储器,设计者可以通过更改控制存储器所存储的微程序,来改变机器的指令系统,这种技术可以称为动态微程序技术。采用动态微程序技术可以根据需要改变微程序,因此可在一台机器上实现不同类型的微指令,可实现指令系统级的仿真,但对设计者的要求较高,未得到广泛推广。,微操作同步定时,对于微指令的执行过程都是基于下面的假设,微指令所发出的控制信号都是在微指令的执行周期发出的,而控制信号的发出并未指定时间。一个单时钟信号起到控制信号的同步作用,而其长度与微指令的指令周期长度相同,此种控制模式称为单周期。与某个特定操作对应的微指令数目可以通过将微指令周期划分成几个连续更小的时间单位或时钟周期来减少。一个控制信号可以在某个更小的时间单位里被激活,此种控制模式称为多周期模式。多周期模式允许一个微指令指定一个微操作序列,但是将在一定程度上增加微指令格式的复杂程度。,微操作同步定时(示例),若一条微指令控制实现下面的寄存器传送操作:R:=f(R1,R2)其中R可能是R1或R2,该传送操作可以被分解到以下四个阶段进行:阶段1:从控制存储器(CM)中取下条微指令到微指令寄存器。阶段2:将寄存器R1和R2内容送到处理功能单元f。阶段3:将功能单元f生成的结果存储到临时寄存器或锁存器L中。阶段4:将临时寄存器或锁存器L中的结果存储到目的寄存器中。,6.3.4 模型机微程序设计,采用微程序控制器的模型机设计关键任务是编写与每一条机器指令先对应的微程序。具体步骤是:首先列出机器指令的全部的微操作以及时间节拍安排,然后确定微指令格式,最后编写出每条微指令的二进制代码。基本微程序控制器设计 扩充微程序设计,基本微程序控制器设计,模型机机器指令的微操作节拍安排:,模型机微指令格式,模型机的微指令格式:,条件选择字段的含义:,操作控制字段在模型机中控制信号的数目较少,所以采用直接控制法。微指令中操作控制字段的长度是15位。其各位所对应的微操作见下表,模型机微程序控制器组成,模型机基本微程序编制,扩充微程序设计,可以利用微程序控制器设计方法实现机器指令系统中指令扩充。在模型机的基本运算单元不变的情况下,利用在控制存储器中添加微程序实现乘法指令和除法指令,乘除法的算法采用补码的比较算法和补码不恢复余数除法算法。为完成乘/除运算在模型机中需添加两个专用寄存器:乘商寄存器(MQ,用于在乘法运算中保存乘积,在除法运算中保存商)和计数器(COUNT,实现运算过程中加/减并移位运算个数的计数功能)。而将数据寄存器DR作为运算过程中的被乘数和除数。,扩充的模型机的CPU内部结构和控制点,扩展模型机控制信号,采用HDL描述补码的比较乘法算法微程序流程,扩展模型机的微程序控制器,假设扩展模型机操作控制字段采用直接控制法,则操作控制字段和条件选择字段的长度和为32位微指令字长为32位,并设分支地址字段的长度采用8位以表示完整的控制存储器地址空间,6.3.5 实例:基于微代码的CPU:奔腾微处理器,6.4 流水线技术,6.4.1 指令流水线原理 6.4.2 流水线性能 6.4.3 流水线中的多发技术,6.4.1 指令流水线原理,在程序执行时,指令的执行经历了一系列的处理步骤,这个分步骤的执行过程很自然地形成一个流水过程,在一般情况下,指令的执行过程包括:取指令;分析指令;取操作数;执行指令;保存操作结果。通常意义来讲,指令流水线是一个多功能的、可重配置的流水线,通过充分重叠不同的指令不同执行步骤实现加快计算机的执行速度。指令流水线在通常情况下,对程序员来讲是不可见的,而由编译器和CPU内部的程序控制器来自动的进行管理。,1.流水线结构,上图是一个具有m个阶段的运算流水线,在流水线中的第Si阶段完成数据处理后,将其处理结果连同其他未处理数据一起传送到第Si1阶段,以进行进一步的处理,与此同时Si段从Si1段接收到一个新的数据进行处理。在整个流水线中共存在m个独立的数据,但它们分别位于流水线的不同的阶段,在相邻的两个阶段之间设置缓冲寄存器R和其他的同步逻辑,以避免相邻阶段之间的相互影响。,2.多阶段流水线,一个m段的指令流水线能够重叠m条指令的执行,使用m个阶段的目的就是尽最大可能地提高指令吞吐率。如何决定m的值呢?多段流水线的段数是由指令执行过程可以被有效分解的段数决定的,而这个段数是与指令系统的复杂程度、内存的组织形式、CPU内部的数据通路结构等因素有关。在实际应用中,流水线的段数的范围是3个到十几个或更多。,一个具有4段流水线的CPU,图中所显示的四个阶段(S1S4)分别执行下面功能:IF:将指令缓冲中的当前指令取出并进行解码。OL:将操作数由数据缓冲取到寄存器中。EX:使用ALU和寄存器对数据进行处理。OS:将运算结果由寄存器存储到数据缓冲中。,四阶段指令流水线的时空图。,假如每个阶段的操作均在一个CPU周期(Tc)内完成,此时指令流水线和CPU作为一个整体将以f=1/Tc的时钟频率运行。在理想情况下,假如忽略分支转移、cache缺失或其他原因的延迟,指令流水线的最大的吞吐率可以达到每个周期执行一条指令,既CPI=1。,6.4.2 流水线性能,1.流水线性能评价 流水线的性能可以通过指令的吞吐率来度量,吞吐率的单位一般是MIPS表示每秒有多少兆条指令被执行。另一个比较流行的评价指标是CPI表示每条指令执行所需的时钟周期数。,其中f是流水线的时钟频率,单位是MHz。CPI和MIPS都是系统平均值,它们是通过运行系统测试基准程序获得的。CPI的最大值是1,即每个时钟周期完成一条指令执行,此时流水线的性能达到最佳,系统的指令吞吐率与流水线的时钟频率相等。系统最大吞吐率的获得要求指令流水线应被送入一个连续不断的指令流,这样可以保证指令流水线的各阶段都保证处于忙状态,从而提高硬件利用率和指令的执行速度,,可视化的分析工具时空图,时空图通过显示指令流水线的每一个阶段的时间关系。一般情况下,一个m段流水线的时空图包含mn个格,其中n表示完成N条连续指令所需的时钟周期的个数。图中的非阴影部分表示流水线的该阶段在指定周期处于忙的状态,并是对应指令处于对应处理阶段,阴影部分表示在指令序列中该阶段没有被使用,这些阶段也可是因为所需的数据未准备好,而处于空闲状态。,其它度量参数,效率E(m):在整个时空图中非阴影部分(忙阶段)所中的比例称为流水线的效率。加速比S(m):被定义成如下的形式 其中:T(m)表示指定工作程序的指令流在m段流水线上的指令执行时间,T(1)表示相同的指令流在非流水线机上的执行时间。加速比与效率之间存在如下关系:,2.m的最优化选择,加速比的定义公式给出一个改进流水线的性能的途径,即增加指令流水线的段数m。是不是指令流水线的段数越多越好呢?段数多少为合适呢?为确定m的取值范围做如下的假设和推导:,假设流水线P有m个段,并执行一个特定的指令集合SI,a是一个高效的非流水线计算机执行相同的指令集所需的时间。指令流水线中每个阶段的延迟是a/m,指令流水线应加上一个附加的延迟b,它是由于添加了阶段之间的缓冲寄存器。c是每个阶段的缓冲寄存器成本,d是流水线数据处理部分的硬件成本。(流水线性价比PCR与段数m之间关系示意图)实际上,大多数流水线的时在功能级上进行分段的,段数的范围在2m15之间。在实际的计算机中,极少有计算机的流水线设计成超过10段的。,3.影响流水线性能的因素以及解决方法,在分析流水线的性能过程中,流水线的性能达到最高水平要求指令系列是连续的,且在指令执行过程中流水线的各段都应处于忙状态。实际上在计算机的执行过程中,许多问题均可以影响流水线的执行,很难保证流水线各个阶段在任何时刻均保持处于忙的状态。有哪些因素影响流水线的运行?这些问题如何解决?在实际指令执行过程中有以下几种情况可能影响流水线的性能:(1)访存冲突(2)控制相关(3)数据相关,(1)访存冲突,根据前面的分析可知,在指令流水线的取指令、取操作数、存操作数等阶段都需要访问存储器,使得流水线的后继指令的执行停滞,影响流水线的性能。一般可采用以下方法进行解决:1)设置两个独立的存储器分别存放操作数和指令,以免取指令和取操作数同时进行时相互冲突,使取某指令和取另一条指令的操作数实现时间上的重叠。2)采用指令预取技术,如在8086中设置指令队列,将指令预先取到指令队列中排队。指令预取技术的实现是基于访存周期很短的情况,如在指令执行阶段,取数的时间很短,因此在指令执行时,主存会有空闲,此时,只要指令队列空出,就可以取下一条指令,并放至空出的指令队列中,从而保证在执行第K条指令的同时对第K+1条指令进行译码,实现“指令K指令”与“分析K1”的重叠。3)一般情况下也可以采用精细的调度算法,使得可能发生访存冲突的指令的开始执行时间相互错开,涉及内容较多,将在后继课程系统结构中详细介绍,,(2)控制相关,条件转移、无条件转移、子程序调用和其它的程序控制指令都可能导致分支转移,在这些指令的执行过程中,下条指令的地址在程序控制类指令I执行完毕之前都是不确定的。在程序控制指令I执行时,取入的指令很可能是一条错误指令,若程序控制指令导致程序控制流程跳转到另外一个位置,此时在之前预取的指令和相应操作都被取消,这将导致指令流水线刷新,明显的降低指令吞吐率。一般采用如下的解决办法:1)在双分支转移情况下,编译器和指令流水线控制逻辑将“猜测”分支方向,即预测分支条件测试结果,将最用可能的目标指令在程序控制指令I取入到指令流水线。此时指令流水线的刷新只有在“猜测”错误情况下才会发生。2)流水线计算机也可以通过采用不同的硬件技术来解决由于分支转移引起的流水线性能下降。3)在大部分RISC计算机中都普遍采用延迟分支技术,一条延迟分支指令I1在执行时指令I2被预取到指令流水线中,但指令I2并非分支指令I1的转移分支,分支指令I1的转移分支I被放在指令I2后运行,而非一般意义上的在指令I1之后运行。,(3)数据相关,数据相关问题的发生是因为在相近的指令共同使用同一个操作数,数据相关也能影响指令流水线的吞吐率。数据相关有读-写相关、写-读相关和写-写相关等几种形式,这几种情况的发生与指令流水线的结构有关,同时也与进行存取(针对存储器或寄存器)操作的指令的顺序有关。解决方法:1、程序执行过程中可以通过检测来判断是否存在数据相关风险,这种检查可以在程序编译过程中进行静态风险检测,也可以在程序运行过程中进行动态风险检测。若有存在数据相关风险的指令对(I1,I2),只要保证在指令I2进入数据读写阶段之前,指令I1完成可能发生数据相关的阶段即可,可以通过在指令I1之后插入若干个空操作指令,以延迟指令I2的执行。也可以通过改变指令的顺序,或将其他指令插入到I1和I2之间,插入的指令应当既不减慢指令流入流水线的速度,又不会影响程序的功能。2、在流水线中设置专门的数据传送通路,实现在相互作用的指令之间快速传递共享数据。(使用前向数据通路减低数据相关延迟损失示意图),流水线性价比PCR与段数m之间关系示意图,使用前向数据通路减低数据相关延迟损失示意图,6.4.3 流水线中的多发技术,流水线技术使计算机的体系结构发生重大变革,提高了计算机的性能,为了进一步提高计算机的性能,除了采用好的指令调度算法、重新组织指令执行顺序、采用一定的措施降低相关带来的干扰和优化编译之外,还可开发指令流水线的多发技术,设法在一个时钟周期之内完成更多指令的执行。常见的多发技术包括:超标量技术 超流水技术 超长指令字(VLIW),超标量技术,超标量是指在每个时钟周内可同时并发多条指令,以并行操作方式将两条或两条以上的指令译码执行。在超标量计算机中有多个执行部件(E-unit),每一个分属不同的指令流水线,这样在机器内部就构成了多个相互独立的指令流水线。程序控制单元(PCU)被设计成具备同时读取并译码多条指令的能力,而且能够把同时取得K指令分别分配到不同的处理单元,其中K称为超标量机的指令发射度(instruction-issue degree),在现在技术条件下K得值一般大于6。采用超标量技术CPU内部的程序控制部件(PCU)要负责决定哪条指令被执行,并为该指令分配所需的资源,在执行决定和分配过程中,PCU要考虑以下因素:1)指令类型;2)执行部件是否可用;3)数据相关;4)控制相关;5)指令顺序。超标量机、普通计算机和流水线计算机的性能比较示意图,超标量机、普通计算机和流水线计算机的性能比较示意图,普通计算机,流水线计算机,超标量计算机,超流水技术,在度为n的超流水线计算机中,流水线的周期时间是基本周期的1/n。,度为3的超流水机,度为(3,3)的超流水机,超长指令字(VLIW),超长指令字(very long instruction word)技术是将水平微码和超标量处理这两种普遍采用的概念结合起来产生的。在VLIW计算机中,多个功能部件是并发工作的,所有的功能部件共享使用公用的大型寄存器堆,由功能部件同时执行的各种操作是用VLIW指令来同步的。超长指令字不同字段中的操作码分别送给不同的功能部件。通常用短指令字编写的程序必须压缩在一起才能形成VLIW指令。这种代码压缩是由编译器完成,编译器可以利用精心设计过的启发式方法或运行时统计方法来预测转移结果。(超长指令字计算机机构以及超长指令字格式)VLIW处理机主要开发标量操作之间的随机并行性。VLIW处理机的成功与否很大程度上取决于代码的压缩效率,其结构和任何传统的通用处理机完全不兼容。此外,嵌入压缩代码中指令并行性可能是不同功能部件需要不同的等待时间,即使指令是在统一时间发射的也会这样,因此,同一VLIW结构的不同实现也不大可能做到彼此二进制兼容。(VLIW处理器执行指令的过程),超长指令字计算机机构以及超长指令字格式,超长指令字计算机结构,超长指令字格式,VLIW处理器执行指令的过程,6.5 小结,CPU通常情况下被分解成两个部分:控制单元和数据处理单元。控制单元的功能是向处理单元发控制信号已选择应完成的数据处理功能。有两种主要类型控制器:组合逻辑控制器和微程序控制器。组合逻辑控制器的设计以指令格式数据通路结构设计开始。按指令的功能形成指令的操作流程图(列出指令执行过程中各步骤应完成的操作),调整微操作节拍的安排,并形成操作时间表。最后,使用操作时间表得到各操作信号的逻辑表达式,形成逻辑电路网络,但在实际的电路构造是还要考虑电路相关特性。微程序控制器的控制信息都被集中存储到控制存储器中,微程序控制器中相应地包括了微指令的地址处理、读取、译码的逻辑电路。微程序控制器的设计被集中在微指令的格式设计和微程序的编制上。微指令的格式有两种形式:水平型和垂直型。水平型微指令的特点是长指令字、低量级的操作码编码和可以表示更多的并行操作。垂直型微指令的特点是短指令字长、需要进行操作信号的编码、有限的操作并行性表示能力。为提高计算机的执行性能,可将处理器的程序控制逻辑和执行部件构造成流水线的形式。一条m段的指令流水线最高可以重叠m条指令的执行,性能可以达到每个时钟周期完成一条指令的执行。一般指令流水线包含5个或更多的阶段。为保证流水线的有效工作,要求流水线在工作过程中要预防、避免冲突和相关。冲突是指不同指令使用相同的流水线阶段引起的,主要发生在与存储器操作阶段有关的阶段。相关是指指令之间存在着数据或指令依赖。为了进一步提高指令流水线的性能,出现了指令流水线的多发技术。超标量技术是通过设置多条指令流水线达到并行执行多条指令。超流水技术是开发指令的时间并行性。超长指令字技术是开发标量之间的随机并行性。,学而时习之,不亦乐乎!,