六章CPU设计ppt课件_第1页
六章CPU设计ppt课件_第2页
六章CPU设计ppt课件_第3页
六章CPU设计ppt课件_第4页
六章CPU设计ppt课件_第5页
已阅读5页,还剩61页未读, 继续免费阅读

下载本文档

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

文档简介

1、第六章CPU设计 6.1 CPU设计根本步骤 6.2 组合逻辑控制器设计 6.3 微程序控制器设计 6.4 流水线技术 6.5 小结 6.1 CPU设计根本步骤 CPU作为计算机系统的一部分,它的设计过程不该当独立进展,CPU的设计只是整个系统设计的一部分。CPU的功能是为系统的整体目的效力,它的组成与构造受系统的运用目的限制。第一步是确定CPU的运用场所目的。此步骤的关键是确定CPU所应具有的处置才干功能,应保证与运用需求一致。设计举例第二步是拟定它将运转的程序类型,确定为完成所要求功能需求的指令,从而确定CPU指令集构造ISA构造。在完成指令集构造设计之后,根据指令集构造所确定的内容来进展

2、设计CPU的各组成部件,以及用于衔接各功能部件的数据通路构造。第三步确定CPU指令集中各指令的微操作信号的节拍安排,以明确CPU主要是控制器为完成取指令、指令译码和执行指令集中的每个指令所必需发出的微操作信号与指令、时间的关系。第四步构成微操作信号的逻辑表达式,该表达式的条件是指令、时间、形状等,而结果是控制信号。根据各控制信号的逻辑表达式,可采用组合逻辑设计法或微程序设计法获得控制器的逻辑电路图或微程序,并将控制器和其它组合到一同构成CPU。设计举例 2019年,美国国家航空航天局NASA发射了一艘火星探路者号宇宙飞船,这只宇宙飞船用了7个月的时间航行才着陆到火星。一到达火星,它就放出了一个

3、遨游机器人,叫做Sojouener,它用来探求探路者号飞船附近的表层,并且将读取的数据传回给宇宙飞船。然后探路者号飞船再将这些送回地球。2019年7月4日,探路者号飞船胜利地到达了火星的外表。Sojouener只用了一个80C85微处置器控制整个操作。它运转的时钟速度为2MHz,但是该处置器并不是由于它的速度而被选中的。实践上,正是由于它可以执行所需功能,而且由于这一版本的8085微处置器能在远离大气层维护,辐射剧烈的环境中正确地任务。 6.2 组合逻辑控制器设计6.2.1 模型机根本设计模型机根本设计 6.2.2 微操作节拍安排微操作节拍安排 6.2.3 模型机组合逻辑控制器设计模型机组合逻

4、辑控制器设计 6.2.1 6.2.1 模型机根本设计模型机根本设计模型机的设计目的:用于教学目的的计算机,其只需完成根本算术逻辑运算即可。ISA构造的设计内容如下:指令类型,指令的数目、功能。寻址方式,确定地址构造、各指令的操作数寻址方式。存放器,存放器所占二进制位数、数目、功能、可见性能否可编程访问。指令格式,指令字长、各字段的分配操作码、寻址方式码、地址码。指令类型指令类型类型硬件描画言语方式汇编方式注释数据传送类AC:=M(X)LD X将存储器内容读如到AC中M(X):=ACST X将AC内容送入存储器中DR:=ACMOV DR, AC将AC内容送入到DRAC:=DRMOV AC, DR

5、将DR内容送入到AC数据运算类AC:=AC+DRADD将AC+DR结果送入ACAC:=AC-DRSUB将AC-DR结果送入ACAC:=AC and DRAND将AC与DR进展“与运算,结果送入ACAC:=not ACNOT将AC的内容进展“非运算,结果送入AC程序控制类PC:=M(adr)BRA adr将程序流程转移到adr单元所存内容所指位置If AC=0 then PC:=M(adr)BZ adr假设AC=0那么将程序流程转移到adr单元所存内容所指位置指令格式指令格式指令采用固定字长方式,同时指令中处置的数据长度与指令长度一样,均为32位。指令寻址方式采用直接寻址,数据寻址方式采用直接寻

6、址和隐含寻址。程序控制单元用于生成衔接数据处置单元和程序控制单元、以及在CPU与外部存储器之间的衔接控制信号。操作码 地址码03 431模型机部件设置与数据通路构造 CPU中存放器的设置包括:IR指令存放器用于存储当前正在执行指令;AR存储器地址存放器用于存储预访问单元地址;PC程序计数器用于存储下条指令地址;DR存储器数据存放器用于存储与存储器进展交互的数据;AC累加器根据指令系统构造可知存放器组中可见存放器为DR和AC,其他均为用于控制的不可见存放器,标志存放器在构造图中未标识。模型机的数据通路构造为单组内总线、分别存放器构造。系系 统统 总总 线线程 序 控 制 单 元控 制 信 号数

7、据 处 理 单 元控控 制制 器器I RA RP CD RA C运运 算算 器器指向M和I/O设备.模型机构造框图6.2.2 6.2.2 微操作节拍安排微操作节拍安排 节拍安排的目的:列出各条指令执行所需的微操作信号以及各操作信号与时序信号之间的关系。 为提高指令的执行效率,应进展微操作的节拍顺序调整,微操作的节拍安排因遵照以下原那么:微操作之间假设次序有先后,安排时应坚持其先后次序不变。假设微操作运用不同的部件,可使其安排在同一节拍内。假设不同微操作所占用的时间均不长,可以将它们安排在同一节拍的进展,且坚持其先后顺序不变。模型机操作流程图 模型机采用将指令周期划分成:取指任务周期和执行任务周

8、期,在取指任务周期包括3个节拍,而执行周期根据指令复杂程度不同包含13个节拍。根据各条指令的功能和节拍安排原那么,可构成下面模型机的操作流程图。AR:=PCDR:=M(AR)IR:=DR(OP)PC:=PC+1AR:=DR(X)DR:=M(AR)AC:=DRAR:=DR(X)DR:=ACM(AR):=DRDR:=ACAC:=DRAC:=AC+ARAC:=AC-DRAC:=AC and DRAC:=not ACPC:=DR(adr)AC=0?LD XST XMOV DR,ACMOV AC,DRADDSUBANDNOTBRA adrBZ adrYesNo模型机控制点 控制点的作用:用于功能的选择或

9、数据流动的控制。数据的正确流动,确保指令功能的实现。 系统 总线控制信号控制器IRARPCDRAC运 算 器.存储器外部设备C0C1C2C3C4C5C6C7C8C9C10C11C12C13C14控制点与数据流控制的关系功能选择用于对运算器ALU进展控制,实现控制ALU完成不同的数据处置。模型机功能选择信号:C2 ,C9 ,C10 ,C11 ,C12。存储控制用于控制外存储器。模型机存储控制信号:C1 ,C8 ,C13 C14。数据通路控制用于控制数据通路中各控制点的开放和封锁形状的切换,实现数据、地址、指令等信息在CPU内部各个数据和控制存放器之间进展传送。模型机数据通路控制信号:C0 ,C3

10、 ,C4 ,C5 ,C6 ,C7。 控制信号功能控制信号功能控制信号功能C0AR:=PCC5AR:=DR(adr)C10AC:=AC-DRC1DR:=M(AR)C6DR:=ACC11AC:=AC and DRC2PC:=PC+1C7AC:=DRC12AC:=not ACC3PC:=DR(adr)C8M(AR):=DRC13IO/MRC4IR:=DR(OP)C9AC:=AC+DRC14IO/MW6.2.3 6.2.3 模型机组合逻辑控制器设计模型机组合逻辑控制器设计组合逻辑控制器根本构造 模型机的操作时间表 组合逻辑控制器设计 组合逻辑控制器的优缺陷 组合逻辑控制器根本构造 组合逻辑控制器中的关

11、键部分是组合逻辑电路,它将时序信号、指令译码结果、形状/条件等信息信号作为输入,经过组合逻辑电路的处置,构成相对应的控制信号,从而完成CPU的指令控制、操作控制和时间控制功能。 组合逻辑电路IR LD ST BZ 指令译码C0C1C2C14开始状态/条件(AC=0)时序信号4模型机的操作时间表 根据模型机指令操作流程图、指令功能、微操作安排原那么和控制信号的设置情况,构成的操作时间表的作用是列出各指令所需的操作信号与节拍信号之间的关系。任务周期标志节拍形状条件控制信号LD XST XMOV DR,ACMOV AC,DRADDSUBANDNOTBRA adrBZ adrFE(取指)T0C0111

12、1111111C131111111111T1C11111111111T2C21111111111C411111111111EX1111111111EX(执行)T0C511C131C141T1C11C61T2C711C81C61C91C101C111C121C31AC=0C31组合逻辑控制器设计产生C6信号的逻辑图 根据操作时间表可以生成各控制信号的逻辑表达式如下:C0FET0 C1FET1+EXT1LDC2FET2 C3EXT2(BRA+BZ(AC=0)C4FET2 C5EXT0(LD+ST)C6EXT1ST+EXT2MOV1 C7EXT2(LD+MOV2)C8EXT2ST C9EXT2ADD

13、C10EXT2SUB C11EXT2ANDC12EXT2NOT C13FE.T0+ EXT0LDC14EXT0ST 在上述的逻辑表达式中,MOV1表示MOV DR,AC指令,MOV2表示MOV AC,DR指令。 C6 T1T2STMOV1EX组合逻辑控制器的优缺陷 在组合逻辑控制器的设计过程发现,组合逻辑控制器控制有以下两个缺陷:组合逻辑控制器是由许多门电路产生控制信号,而各控制信号所需的门电路逻辑很不规整,因此组合逻辑控制器的中心部分比较繁琐、混乱,设计效率较低,检查调试比较困难。改良方法是将程序设计技术引入到CPU机器的构成级,使设计规整化。组合逻辑控制因其运用逻辑门电路生成控制信号,设计

14、结果被固定在印刷电路板上,使其不易修正和扩展。而且,在各个控制信号逻辑表达式中往往包含许多条件,其中一些逻辑变量能够在许多表达式公用的,修正一处就会牵动其他,因此很难修正。改良的方向是将程序存储思想引入CPU设计,取代用组合逻辑电路生成控制信号,而是将控制信号以数字代码的方式直接存入一个存储器中,只需修正所存储的代码即控制信号信息,就可以完成修正有关的功能和执行方式。组合逻辑控制器的优点是运转速度较快,因此目前运用于高速计算机和RISC处置器和巨型机中,以及规模较小的计算机中。6.3 微程序控制器设计6.3.1 微程序根本原理微程序根本原理6.3.2 微程序控制器根本构造微程序控制器根本构造

15、6.3.3 微指令格式设计微指令格式设计 6.3.4 模型机微程序设计模型机微程序设计 6.3.5 实例:基于微代码的实例:基于微代码的CPU:奔腾微处置器:奔腾微处置器 6.3.1 6.3.1 微程序根本原理微程序根本原理 指令的执行是由一系列有序信号控制实现地,自创程序存储思想英国剑桥大学教授威尔克斯在1951年提出微程序控制设计思想,作为一种控制单元设计方法,其中心思想可以归纳成一下几点:每一条机器指令的功能是经过微程序实现的;每一条机器指令的功能是经过微程序实现的;微程序是作为一个实时指令解释器,即每一条机器指微程序是作为一个实时指令解释器,即每一条机器指令对应一个由假设干条微指令组成

16、的微程序;令对应一个由假设干条微指令组成的微程序;微程序中的每一条微指令与一组微操作对应控制信微程序中的每一条微指令与一组微操作对应控制信号所对应的动作;号所对应的动作;微指令的序列反映了为完成一条机器指令所应发出控微指令的序列反映了为完成一条机器指令所应发出控制信号的先后次序;制信号的先后次序;微指令也采用二进制码的方式;微指令也采用二进制码的方式;微程序的集合对应着一个特定的指令集或机器言语。微程序的集合对应着一个特定的指令集或机器言语。6.3.1 6.3.1 微程序根本原理微程序根本原理微程序控制器的设计任务只需集中在以下几个方面:微指令格式设计,由于微指令采用二进制码的方式,所以必需为

17、微指令拟就格式,以表示每一条微指令所对应的微操作。微程序编制,为每一条机器指令编写对应的微程序,根据机器指令所包含的微操作,确定每个微程序中的微指令以及次序,进而构成存入微程序控制器的微程序。作为一种设计活动,微程序的设计可与汇编言语程序设计类似。控制逻辑电路设计,微程序的执行和解释需求相应的控制逻辑电路,以实现微指令的读取,微指令地址的构成,微指令流程控制和由微指令构成控制信号。6.3.2 6.3.2 微程序控制器根本构造微程序控制器根本构造1控制存储器用于存储着与全部机器指令对应的微程序。2微地址控制逻辑根据时间、条件、指令和下地址信息等信息,来构成下条微指令地址。3微地址存放器的作用与P

18、C指令计数器一样,用于存储下一条微指令地址。4微指令存放器用于存储由控制存储器取出的微指令。5微指令译码电路的作用是根据微指令用于生成控制信号。控制存储器(control memory)微指令寄存器(IR)微地址控制逻辑微指令译码控制信号指令条件与状态微指令下地址信息微地址寄存器(PC)6.3.3 6.3.3 微指令格式设计微指令格式设计 由于微指令是二进制码的方式而指令也是二进制码的方式,一个微指令普通也包括两部分:操作控制字段和下地址控制字段。操作控制 下地址控制操作控制字段用于指出有那些控制信号被激活。下地址控制字段用于指出下一条待执行微指令在控制存储器中地址的本身或其计算方式。 微指令

19、格式设计主要处理以下几个问题:操作控制编码方式 微指令类型 下地址控制编码方式 动态微程序设计 微操作同步定时 操作控制编码方式操作控制编码方式 在操作控制字段普通包括一个或多个操作控制域,每个控制域可控制一个或一组控制信号的生成,根据控制信号是直接生成于控制域还是译码生成控制信号的不同可分为以下几种方式。直接控制法:操作控制字段的每一位都与一个独立控制信号相对应。假设当前微指令的某一位ki=1,那么与之对应ci控制信号有效,否那么ci控制信号无效。分段编码控制法:在微程序级别,许多微操作是可以并行执行。普通采用将微指令的操作控制字段分成k个相互独立的控制域,每一个控制域存储一组微操作,每一种

20、编码对应一个微操作,每一个微操作都可以与其它控制域所存储的恣意一个微操作并行执行,但在组内的微操作之间是互斥的,不允许在同一时间段内发生或有效。分段间接编码控制法:在微指令格式里,假设一个字段的含义不只决议本字段编码,还兼由其他字段决议,那么可采用分段间接编码控制法。此时一个字段兼有两层或两层以上的含义。分段间接编码控制法的表示图。其它方式:在实践微指令中操作控制编码并不是只单独采用上述三种编码方式中的一种,而是将上述三种混合运用,以保证能综合思索指令的字长、灵敏性和执行微程序的速度等方面的要求。分段间接编码控制法的表示图分段间接编码控制法的表示图字段1 字段2 字段n 下地址译码译码译码译码

21、译码.控制信号控制信号.微指令类型微指令类型微指令格式普通分为两种类型:程度型和垂直型。程度型微指令有如下特点:指令字比较长;能表达较高程度的微操作并行性;微操作控制信号编码的量比较小。垂直型微指令有如下特点:指令字长比较短;表达微操作并行程度的才干较低;要进展比较多的操作控制信号的编码。垂直型微指令在很大程度上与RISC指令相类似,都尽量减少并行性,而保证单周期执行的方式。但是计算机也经常被设计成与程度型微指令类似的方式,具有较长指令字和更高并行性的方式。下地址控制编码方式下地址控制编码方式普通情况下后继微指令的地址有以下几种给出方式:顺序递增法:将PC设置成可实现自动加1的功能,每当完成当

22、前指令的执行,就以PC +1后的值为地址在控制存储器中取下一条微指令。直接给出法:下一条微指令的地址直接取自微指令中的下地址字段。分支转移法:在包含分支转移的微指令中常设置一个条件选择子区域,用于指出哪些断定条件被测试,与此同时转移地址被存储在下地址字段。当转移条件满足时,将下地址字段的内容读入到PC中,取下一条微指令,实现微程序转移。假设转移条件不满足,微程序那么顺序执行。微程序入口地址的构成:每条机器指令所对应的微程序的入口地址首地址,普通由指令的操作码所决议。在机器加电后,第一条微指令的地址普通是由专门的逻辑电路生成,也可以采用由外部直接输入的方式获得。动态微程序设计动态微程序设计 通常

23、计算机的指令系统中指令的类型和数量是固定,而与其对应的微程序也该当是坚持不变的。但是假设采用EPROM作为控制存储器,设计者可以经过更改控制存储器所存储的微程序,来改动机器的指令系统,这种技术可以称为动态微程序技术。采用动态微程序技术可以根据需求改动微程序,因此可在一台机器上实现不同类型的微指令,可实现指令系统级的仿真,但对设计者的要求较高,未得到广泛推行。 微操作同步定时微操作同步定时 对于微指令的执行过程都是基于下面的假设,微指令所发出的控制信号都是在微指令的执行周期发出的,而控制信号的发出并未指定时间。一个单时钟信号起到控制信号的同步作用,而其长度与微指令的指令周期长度一样,此种控制方式

24、称为单周期。与某个特定操作对应的微指令数目可以经过将微指令周期划分成几个延续更小的时间单位或时钟周期来减少。一个控制信号可以在某个更小的时间单位里被激活,此种控制方式称为多周期方式。多周期方式允许一个微指令指定一个微操作序列,但是将在一定程度上添加微指令格式的复杂程度。微操作同步定时例如微操作同步定时例如假设一条微指令控制实现下面的存放器传送操作:R:=f(R1,R2)其中R能够是R1或R2,该传送操作可以被分解到以下四个阶段进展:阶段1:从控制存储器CM中取下条微指令到微指令存放器。阶段2:将存放器R1和R2内容送四处置功能单元f。阶段3:将功能单元f生成的结果存储到暂时存放器或锁存器L中。

25、阶段4:将暂时存放器或锁存器L中的结果存储到目的存放器中。微 指 令 周 期生 成 后 继 微 指 令 地 址 , 取 后 继 微 指 令控 制 数 据 输 入 f功 能 单 元存 储 结 果 数 据 到 临 时 寄 存 器存 储 数 据 到 目 的 寄 存 器12346.3.4 6.3.4 模型机微程序设计模型机微程序设计 采用微程序控制器的模型机设计关键义务是编写与每一条机器指令先对应的微程序。 详细步骤是:首先列出机器指令的全部的微操作以及时间节拍安排,然后确定微指令格式,最后编写出每条微指令的二进制代码。 根本微程序控制器设计 扩展微程序设计 根本微程序控制器设计根本微程序控制器设计模

26、型机机器指令的微操作节拍安排:机器指令微操作机器指令微操作FETCHAR:=PC;DR:=M(AR);PC:=PC1,IR:=DR(OP);转移到对应指令执行微子程序;MOV1DR:AC,转移到取指微子程序;MOV2AC:DR,转移到取指微子程序;ADDAC:AC+DR,转移到取指微子程序;SUBAC:ACDR,转移到取指微子程序;LDAR:=DR(ADR);DR:=M(AR);AC:=DR,转移到取指微子程序;ANDAC:ACDR,转移到取指微子程序;NOTAC:.not.AC,转移到取指微子程序;BRAPC:DR(ADR),转移到取指微子程序;STAR:DR(ADR);DR:AC;M(AR

27、):DR,转移到取指微子程序;BZIf AC=0 then PC:DR(ADR),转移到取指微子程序;模型机微指令格式模型机微指令格式 模型机的微指令格式:条件选择字段的含义:S0S1含义00增量执行01AC=0,转移执行10读入起始地址11无条件转移条件选择分支地址操作控制字段0126721操作控制字段在模型机中控制信号的数目较少,所以采用直接控制法。操作控制字段在模型机中控制信号的数目较少,所以采用直接控制法。微指令中操作控制字段的长度是微指令中操作控制字段的长度是1515位。其各位所对应的微操作见下表位。其各位所对应的微操作见下表 位标志位标志对应控制信号对应控制信号位标志位标志对应控制

28、信号对应控制信号7AR:=PC15M(AR):=DR8DR:=M(AR)16AC:=AC+DR9PC:=PC+117AC:=AC-DR10PC:=DR(adr)18AC:=AC and DR11IR:=DR(OP)19AC:=not AC12AR:=DR(adr)20IO/MR13DR:=AC2121IO/MW14AC:=DR模型机微程序控制器组成模型机微程序控制器组成 控 制 存 储 器( control memory)微 指 令 寄 存 器( IR)微 地 址 寄 存 器( PC)微 指 令 译 码 控 制 信 号外 部 地 址多 路选 择器分 支 转 移 地 址条 件选 择自 增载 入外

29、 部条 件模型机根本微程序编制模型机根本微程序编制 微程序称号微指令地址微指令二进制代码下地址操作控制十进制0123456789101112131415161718192021取指0000100000000000010010001000000000000002000010100000000000310000000000000000LD04000000010000000100500010000000000000061100000000000010000000ST07000000010000000000800000000100000001091100000000000001000000MOV 11

30、01100000000000100000000MOV 2111100000000000010000000ADD121100000000000000100000SUB131100000000000000010000AND141100000000000000001000NOT151100000000000000000100BRA161100000000100000000000BZ170111000000100000000000扩展微程序设计扩展微程序设计 可以利用微程序控制器设计方法实现机器指令系统中指令扩展。在模型机的根本运算单元不变的情况下,利用在控制存储器中添加微程序实现乘法指令和除法指令,

31、乘除法的算法采用补码的比较算法和补码不恢复余数除法算法。为完成乘/除运算在模型机中需添加两个公用存放器:乘商存放器MQ,用于在乘法运算中保管乘积,在除法运算中保管商和计数器COUNT,实现运算过程中加/减并移位运算个数的计数功能。而将数据存放器DR作为运算过程中的被乘数和除数。扩展的模型机的CPU内部构造和控制点系 统总 线控 制 信 号微 程 序 控 制 单 元I RA RP CD RA C运算器.存 储 器外 部 设 备C0C1C2C3C4C5C6: C7C8C9: C1 2C1 7: C2 1C2 6: C2 7M QC1 3: C 1 6C2 4C2 1C2 2F L A G SC O

32、 U N TC2 3C2 5M Q ( 0 )A C 0A C = 0O V RC O U N T = n - 1C2 8扩展模型机控制信号扩展模型机控制信号 控制信号功能控制信号功能控制信号功能C0AR:=PCC10AC:=AC-DRC20DR:=MQC1DR:=M(AR)C11AC:=AC and DRC21MQ0:=1C2PC:=PC+1C12AC:=not ACC22MQ0:=0C3PC:=DR(ADR)C13RSHIFT ACC23COUNT:=COUNT+1C4IR:=DR(OP)C14LSHIFT ACC24PC:=IRC5AR:=DR(ADR)C15RSHIFT AC,MQC2

33、5COUNT:=0C6DR:=ACC16LSHIFT AC,MQC26F:=0C7AC:=DRC17AC:=0C27F:=1C8M(AR):=DRC18ACn-1:=FC28FLAGS:=0C9AC:=AC+DRC19MQ:=DR采用HDL描画补码的比较乘法算法微程序流程 微地址标志微操作BEGINA:=0,COUNT:=0,F:=0TEST1IF MQ0=0 then 转到RSHIFTADDAC:=AC+DR,F:=(DRn-1 and MQ0or FRSHIFTACn-1:=f, AC.MQ:=RSHIFT(AC.MQ),COUNT:=COUNT+1,if COUNTn-1 then 转到

34、TEST1TEST2if MQ0=0 then 转到FETCHSUBTRACTAC:=AC-DR,MQ0:=0,转到FETCH扩展模型机的微程序控制器 假设扩展模型机操作控制字段采用直接控制法,那么操作控制字段和条件选择字段的长度和为32位微指令字长为32位,并设分支地址字段的长度采用8位以表示完好的控制存储器地址空间 控制存储器(control memory)25640位微指令寄存器(IR)微地址寄存器(PC)微指令译码控制信号外部地址多路选择器分支转移地址条件选择自增载入AC=0AV0MQ0CONUT=n-1OVR382986.3.5 6.3.5 实例:基于微代码的实例:基于微代码的CPU

35、CPU:奔腾微处置器:奔腾微处置器 MMXTM单 元2浮 点 单 元16K字 节 的 数 据CACHEDP逻 辑控 制总 线单 元控 制32位地 址总 线64位数 据总 线APIC数 据控 制分 类目 标缓 冲 器16K字 节 的 数 据CACHETLB预 取 缓 冲 器指 令 译 码控 制ROM分 支 验 证和 目 标 地 址控 制 单 元页单元生 成 地 址生 成 地 址( U流 水 线 ) ( V流 水 线 )整 型 integer寄 存 器 文 件ALU ALU( U流 水 线 ) ( V流 水 线 )Barret转 换 器TLB控 制寄 存 器 文 件加减乘8080预 取地 址指 令

36、指 针32323232323232位地 址总 线64位数 据总 线U 流 水 线 连 接V 流 水 线 连 接6.4 6.4 流水线技术流水线技术6.4.1 指令流水线原理 6.4.2 流水线性能 6.4.3 流水线中的多发技术 6.4.1 指令流水线原理 在程序执行时,指令的执行阅历了一系列的处置步骤,这个分步骤的执行过程很自然地构成一个流水过程,在普通情况下,指令的执行过程包括:取指令;分析指令;取操作数;执行指令;保管操作结果。通常意义来讲,指令流水线是一个多功能的、可重配置的流水线,经过充分重叠不同的指令不同执行步骤实现加快计算机的执行速度。指令流水线在通常情况下,对程序员来讲是不可见

37、的,而由编译器和CPU内部的程序控制器来自动的进展管理。1. 流水线构造 上图是一个具有m个阶段的运算流水线,在流水线中的第Si阶段完成数据处置后,将其处置结果连同其他未处置数据一同传送到第Si1阶段,以进展进一步的处置,与此同时Si段从Si1段接纳到一个新的数据进展处置。在整个流水线中共存在m个独立的数据,但它们分别位于流水线的不同的阶段,在相邻的两个阶段之间设置缓冲存放器R和其他的同步逻辑,以防止相邻阶段之间的相互影响。 R1C1R2C2RmCm数据输入数据输出阶段S1阶段S2阶段Sm2. 多阶段流水线 一个m段的指令流水线可以重叠m条指令的执行,运用m个阶段的目的就是尽最大能够地提高指令

38、吞吐率。如何决议m的值呢?多段流水线的段数是由指令执行过程可以被有效分解的段数决议的,而这个段数是与指令系统的复杂程度、内存的组织方式、CPU内部的数据通路构造等要素有关。在实践运用中,流水线的段数的范围是3个到十几个或更多 。一个具有一个具有4段流水线的段流水线的CPU 图中所显示的四个阶段S1S4分别执行下面功能:IF:将指令缓冲中的当前指令取出并进展解码。OL:将操作数由数据缓冲取到存放器中。EX:运用ALU和存放器对数据进展处置。OS:将运算结果由存放器存储到数据缓冲中。S2:取操作数(OL)S1:取指与译码(IF)I-cache主存储器取指与译码逻辑PCIRD-cache指令主存储器

39、数据数据读逻辑S3:执行指令(EX)数据读逻辑S2:存操作数(OS)数据读逻辑寄存器组四阶段指令流水线的时空图。四阶段指令流水线的时空图。 假设每个阶段的操作均在一个CPU周期Tc内完成,此时指令流水线和CPU作为一个整体将以f=1/Tc的时钟频率运转。在理想情况下,假设忽略分支转移、cache缺失或其他缘由的延迟,指令流水线的最大的吞吐率可以到达每个周期执行一条指令,既CPI=1。 I1I2I1I3I2I1I4I3I2I1I5I4I3I2I6I5I4I3I7I6I5I4I8I7I6I5I9I8I7I6IFOLEXOS时间1234567896.4.2 流水线性能1.流水线性能评价 流水线的性能

40、可以经过指令的吞吐率来度量,吞吐率的单位普通是MIPS表示每秒有多少兆条指令被执行。另一个比较流行的评价目的是CPI表示每条指令执行所需的时钟周期数。 MIPSfCPI/其中f是流水线的时钟频率,单位是MHz。CPI和MIPS都是系统平均值,它们是经过运转系统测试基准程序获得的。CPI的最大值是1,即每个时钟周期完成一条指令执行,此时流水线的性能到达最正确,系统的指令吞吐率与流水线的时钟频率相等。系统最大吞吐率的获得要求指令流水线应被送入一个延续不断的指令流,这样可以保证指令流水线的各阶段都保证处于忙形状,从而提高硬件利用率和指令的执行速度,可视化的分析工具时空图I1I2I1I3I2I1I4I

41、3I2I1I5I4I3I2I6I5I4I3I7I6I5I4I8I7I6I5I8I7I6IFOLEXOS时间123456789I9I9I9I9I9I10I9I10I9I10I10I11I1110111213141516171819I11I11 时空图经过显示指令流水线的每一个阶段的时间关系。普通情况下,一个m段流水线的时空图包含mn个格,其中n表示完成N条延续指令所需的时钟周期的个数。图中的非阴影部分表示流水线的该阶段在指定周期处于忙的形状,并是对应指令处于对应处置阶段,阴影部分表示在指令序列中该阶段没有被运用,这些阶段也可是由于所需的数据未预备好,而处于空闲形状。 其它度量参数其它度量参数效率

42、E(m) :在整个时空图中非阴影部分忙阶段所中的比例称为流水线的效率。加速比S(m) :被定义成如下的方式 其中:T(m)表示指定任务程序的指令流在m段流水线上的指令执行时间,T(1)表示一样的指令流在非流水线机上的执行时间 。加速比与效率之间存在如下关系 :)()1()(mTTmS)()(mEmmS2.m2.m的最优化选择的最优化选择 加速比的定义公式给出一个改良流水线的性能的途径,即添加指令流水线的段数m。 是不是指令流水线的段数越多越好呢?段数多少为适宜呢? 为确定m的取值范围做如下的假设和推导: 假设流水线P有m个段,并执行一个特定的指令集合SI,a是一个高效的非流水线计算机执行一样的

43、指令集所需的时间。指令流水线中每个阶段的延迟是a/m,指令流水线应加上一个附加的延迟b,它是由于添加了阶段之间的缓冲存放器。 c是每个阶段的缓冲存放器本钱,d是流水线数据处置部分的硬件本钱。(流水线性价比PCR与段数m之间关系表示图) 实践上,大多数流水线的时在功能级上进展分段的,段数的范围在2m15之间。在实践的计算机中,极少有计算机的流水线设计成超越10段的。 bcadmopt3.3.影响流水线性能的要素以及处理方法影响流水线性能的要素以及处理方法 在分析流水线的性能过程中,流水线的性能到达最高程度要求指令系列是延续的,且在指令执行过程中流水线的各段都应处于忙形状。实践上在计算机的执行过程

44、中,许多问题均可以影响流水线的执行,很难保证流水线各个阶段在任何时辰均坚持处于忙的形状。有哪些要素影响流水线的运转?这些问题如何处理? 在实践指令执行过程中有以下几种情况能够影响流水线的性能:1访存冲突 2控制相关 3数据相关 1 1访存冲突访存冲突根据前面的分析可知,在指令流水线的取指令、取操作数、存操作数等阶段都需求访问存储器,使得流水线的后继指令的执行停滞,影响流水线的性能。普通可采用以下方法进展处理:1设置两个独立的存储器分别存放操作数和指令,以免取指令和取操作数同时进展时相互冲突,使取某指令和取另一条指令的操作数实现时间上的重叠。2采用指令预取技术,如在8086中设置指令队列,将指令

45、预先取到指令队列中排队。指令预取技术的实现是基于访存周期很短的情况,如在指令执行阶段,取数的时间很短,因此在指令执行时,主存会有空闲,此时,只需指令队列空出,就可以取下一条指令,并放至空出的指令队列中,从而保证在执行第K条指令的同时对第K+1条指令进展译码,实现“指令K指令与“分析K1的重叠。3普通情况下也可以采用精细的调度算法,使得能够发生访存冲突的指令的开场执行时间相互错开,涉及内容较多,将在后继课程中详细引见,2 2控制相关控制相关 条件转移、无条件转移、子程序调用和其它的程序控制指令都能够导致分支转移,在这些指令的执行过程中,下条指令的地址在程序控制类指令I执行终了之前都是不确定的。在

46、程序控制指令I执行时,取入的指令很能够是一条错误指令,假设程序控制指令导致程序控制流程跳转到另外一个位置,此时在之前预取的指令和相应操作都被取消,这将导致指令流水线刷新,明显的降低指令吞吐率。 普通采用如下的处理方法: 1在双分支转移情况下,编译器和指令流水线控制逻辑将“猜测分支方向,即预测分支条件测试结果,将最用能够的目的指令在程序控制指令I取入到指令流水线。此时指令流水线的刷新只需在“猜测错误情况下才会发生。 2流水线计算机也可以经过采用不同的硬件技术来处理由于分支转移引起的流水线性能下降。 3在大部分RISC计算机中都普遍采用延迟分支技术,一条延迟分支指令I1在执行时指令I2被预取到指令

47、流水线中,但指令I2并非分支指令I1的转移分支,分支指令I1的转移分支I被放在指令I2后运转,而非普通意义上的在指令I1之后运转。 3 3数据相关数据相关数据相关问题的发生是由于在相近的指令共同运用同一个操作数,数据相关也能影响指令流水线的吞吐率。 数据相关有读-写相关、写-读相关和写-写相关等几种方式,这几种情况的发生与指令流水线的构造有关,同时也与进展存取针对存储器或存放器操作的指令的顺序有关。处理方法:1、程序执行过程中可以经过检测来判别能否存在数据相关风险,这种检查可以在程序编译过程中进展静态风险检测,也可以在程序运转过程中进展动态风险检测。假设有存在数据相关风险的指令对I1,I2,只

48、需保证在指令I2进入数据读写阶段之前,指令I1完成能够发生数据相关的阶段即可,可以经过在指令I1之后插入假设干个空操作指令,以延迟指令I2的执行。也可以经过改动指令的顺序,或将其他指令插入到I1和I2之间,插入的指令该当既不减慢指令流入流水线的速度,又不会影响程序的功能。 2、在流水线中设置专门的数据传送通路,实如今相互作用的指令之间快速传送共享数据。运用前向数据通路减低数据相关延迟损失表示图 流水线性价比流水线性价比PCRPCR与段数与段数m m之间关系表示图之间关系表示图指 令 流 水 线 段 数 ( m)流水线性价比(PCR)135790.010.020.030.040.050.06运用

49、前向数据通路减低数据相关延迟损失表示图运用前向数据通路减低数据相关延迟损失表示图S1:取 指 令 译 码 ( IF)S2:读 寄 存 器 ( RD)S3:执 行 ALU操 作 ( EX)S4:存 储 器 存 取 ( MA)S5:写 寄 存 器 ( WB)PaPb6.4.3 流水线中的多发技术 流水线技术使计算机的体系构造发生艰苦变革,提高了计算机的性能,为了进一步提高计算机的性能,除了采用好的指令调度算法、重新组织指令执行顺序、采用一定的措施降低相关带来的干扰和优化编译之外,还可开发指令流水线的多发技术,设法在一个时钟周期之内完成更多指令的执行。常见的多发技术包括: 超标量技术 超流水技术 超

50、长指令字VLIW 超标量技术超标量技术 超标量是指在每个时钟周内可同时并发多条指令,以并行操作方式将两条或两条以上的指令译码执行。在超标量计算机中有多个执行部件E-unit,每一个分属不同的指令流水线,这样在机器内部就构成了多个相互独立的指令流水线。程序控制单元PCU被设计成具备同时读取并译码多条指令的才干,而且可以把同时获得K指令分别分配到不同的处置单元,其中K称为超标量机的指令发射度instruction-issue degree,在如今技术条件下K得值普通大于6。采用超标量技术CPU内部的程序控制部件PCU要担任决议哪条指令被执行,并为该指令分配所需的资源,在执行决议和分配过程中,PCU

51、要思索以下要素: 1指令类型; 2执行部件能否可用;3数据相关;4控制相关; 5指令顺序。超标量机、普通计算机和流水线计算机的性能比较表示图超标量机、普通计算机和流水线计算机的性能比较表示图超标量机、普通计算机和流水线计算机的性能比较表示图I1I2I1I3I2I1I4I3I2I1I5I4I3I2I6I5I4I3I7I6I5I4I8I7I6I5I9I8I7I6IFIDO LEX时 间123456789I10I8I7I10I8I12I10I12I10I12I12101112131415I9I9I9I11I11I11I11I13I14I15I13I14I13IF1ID1O L1EX1O S1IF2I

52、D2O L2EX2O S2IF3ID3O L3EX3O S3指 令 1指 令 2指 令 3I1I2I3I4I5O SI6I7I9I11I8I10I1I3I1I5I3I1I7I5I3I1I9I7I5I3I11I9I7I5I13I11I9I7I15I13I11I9I17I15I13I11IF1ID1O L1EX1I19I15I13I19I15I23I19I23I19I23I23I17I17I17I21I21I21I21I25I27I29I25I27I25I1I3I5I7I9O S1I11I13I17I21I15I19I2I4I6I8I10I12I14I16I18IF2I20I24I22I26I28I30I2I4I6I8I10I12I14I16ID2I20I24I18I22I26I28I2I4I6I8I10I12I14O L2I16I20I24I18I22I26I2I4I6I8I10I12EX2I14I16I20I24I18I22I2I4I6I8I10O S2I12I14I18I22I16I20普通计算机流水线计算机超标量计算机超流水技术超流水技术在度为n的超流水线计算机中,流水线的周期时间是根本周期的1/n 。IFIDIFO LIDIFE XO LIDIFO SE XO LIDO

温馨提示

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

评论

0/150

提交评论