Advertisement

指令流水线&CISC&RISC

阅读量:

指令流水线
流水线技术:程序执行时通过多条指令重叠进行操作的一种准并行处理实现技术。

把一件任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作。

流水线执行时间:

一条指令所需的时间+(指令条数-1)*时间最长的的指令时间。

吞吐率计算公式:Though Put rate .TP(考点)

指令条数/流水线时间

最大吞吐率:流水线周期(最长流水段的操作时间)的倒数

加速比计算公式:不使用流水线所用的时间/使用流水线所用的时间

例如:若指令流水线把一条指令分为取指、分析和执行3部分,且3部分的时间分别是取指2ns,分析2ns,执行1ns。求100条指令全部执行完毕所需的时间,吞吐率和加速比?

l 流水线时间:(2+2+1)+(100-1)*2=203ns

l 吞吐率:100/203ns

l 加速比:100*(2+2+1)/203

指令寻址方式

操作码字段(OP)+地址码字段

立即 寻址方式:操作数(本身) 直接在指令中,速度快,灵活性差

直接 寻址方式:操作数的地址 放在指令中

间接寻址方式:操作数的地址的地址 放在指令中

寄存器寻址方式:寄存器存放操作数

寄存器间接寻址方式:寄存器存放操作数的地址

指令寻址方式

立即寻址方式 (Immediate Addressing) * 操作数(本身)直接在指令中 * 速度 :速度快,因为操作数可以直接从指令中获取,无需访问内存。
* 灵活性 :灵活性差,因为操作数是固定的,不能在时改变。
* 帮助理解 :就像直接告诉计算机一个具体的数值,比如“将5加到当前值上”。

直接寻址方式 (Direct Addressing) * 操作数的地址放在指令中 * 帮助理解 :相当于告诉计算机一个位置,它会去那个位置取值。例如,“将内存地址为100的值加到当前值上”。

间接寻址方式 (Indirect Addressing) * 操作数的地址的地址放在指令中 * 帮助理解 :这有点像“接头暗号”,你给计算机一个间接的位置,它会先去找到真正的地址,然后再根据这个地址取值。例如,“将内存地址100中存储的地址所指向的值加到当前值上”。

寄存器寻址方式 (Register Addressing) * 寄存器存放操作数 * 帮助理解 :直接使用寄存器中的数据。就像“快速通道”,直接从寄存器中取值,效率很高。例如,“将寄存器R1中的值加到寄存器R2上”。

寄存器间接寻址方式 (Register Indirect Addressing) * 寄存器存放操作数的地址 * 帮助理解 :寄存器中存储的是一个地址,而真正的操作数存储在这个地址所指向的内存位置。这种方式结合了寄存器的快速访问和内存的灵活性。例如,“将寄存器R1中存储的地址所指向的值加到寄存器R2上”。

CISC(Complex Instruction Set Computer)称为复杂指令系统计算机

1)指令系统复杂庞大,指令数目一般为200条以上。

2)指令的长度不固定,指令格式多,寻址方式多。

3)可以访存的指令不受限制。

4)各种指令使用频度相差很大。

5)各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。

6)控制器大多数采用微程序控制。

7)难以用优化编译生成高效的目标代码程序。

RISC(Reduced Instruction Set Computer)称为精简指令系统计算机

1)选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现。

2)指令长度固定,指令格式种类少,寻址方式种类少。

3)只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行。

4)CPU中通用寄存器数量相当多(减少访存次数)。

5)RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成。

6)以硬布线控制为主,不用或少用微程序控制。(考点:简单指令采用硬布线)

7)特别重视编译优化工作,以减少程序执行时间。

流水线冒险(Pipeline Hazard)

在指令流水线中,可能出现以下三种类型的冒险,降低流水线效率:
数据自险(Data Hazard):当一条指令需要使用另一条指令的结果,而另一条指令的结果尚未准备好时,就会发生数据目险。
结构冒险(Slructural Hazard): 多个指令需要同时使用某个硬件资源,而该资源无法同时服务这些指令,就会发生结构目险。
控制官险(Control Hazard):当分支指令的执行结果尚未确定时,后续的指令流会受到影响,就会发生控制目险。

流水线优化技术

插入气泡(Plpeline Stals): 当出现百险时,可以在流水线中插入一些无操作的周期,以等待数据就绪或解决结构目险。
超标量和动态调度(Superscalar and Dynamic Scheduling): 超标量处理器可以同时执行多个指令,而动态调度技术允许硬件根据时情况重新排序指令执行顺序。
分支预测(Branch Predlctlon): 预测分支指令的结果,以尽量避免控制险。
数据前推(Data Forwarding):将先前指令的执行结果直接传递给后续需要使用的指令,避免数据官险。

流水线的性能提升和限制

性能提升: 流水线可以提高指令吞吐量,使得每个时钟周期都有指令被执行。这在处理大量相互独立的指令时尤为有效。
限制:流水线的性能可能受到目险的影响,尤其是数据和控制目险。目险的解决方式会引入延退,影响整体性能。
指令的流水处理是现代计算机体系结构中常见的设计技术,它通过提高指令吞吐量来增加计算机的性能。然而,合理的指令调度、目险的处理以及硬件结构的优化都是必不可少的,以克服潜在的性能瓶颈。

全部评论 (0)

还没有任何评论哟~