计算机指令与流水线技术

2022-09-12 From 程序之心 By 丁仪

一条计算机指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数是参加运算的数据及其所在的单元地址。计算机指令执行过程分为 3 个阶段,取指令、分析指令、执行指令。

指令寻址方式包括顺序寻址和跳跃寻址。顺序寻址当执行一段程序时,一条指令接着一条指令顺序执行。跳跃寻址时,下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。

指令操作数的寻址方式有如下几种方式:

  • 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身;
  • 直接寻址方式:在指令的地址字段中直接给出操作数在主存中的地址;
  • 间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址;
  • 寄存器寻址方式:指令中的地址码是寄存器的编号;
  • 基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址;
  • 变址寻址方式:计算有效地址的方法是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。

流水线技术把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以同时并行工作。在任一时刻,任一任务只占用其中一个执行机构, 这样就可以实现多个任务的重叠执行,以提高工作效率。

RISC 中的流水线技术包括:

  • 超流水线(Super Pipe Line)技术:通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作,本质上是以时间换空间;
  • 超标量技术(Super Scalar):通过内装多条流水线来同时执行多个处理,时钟频率虽然与一般流水接近,却有更小的 CPI,本质上是以空间换时间;
  • 超长指令字(Very Long Instruction Word,VLIW)技术:与超标量类似,不同的是超标量依靠硬件来实现并行处理的调度,超长指令字充分发挥软件的作用使硬件简化提高性能。

流水线应用过程中,会将需要处理的工作分为 N 个阶段,最耗时的那一段所消耗的时间为流水线周期。如:使用流水线技术执行 100 条指令,每条指令取指 2ms,分析 4ms,执 行 1ms,则流水线周期为 4ms。

除了第 1 个任务需要完整的时间外,其他都通过并行,流水线的执行时间表示为:第 1 条指令的执行时间+(总指令条数 - 1 ) * 流水线周期。

流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的指令条数。公式为:指令条数 / 流水线执行时间。

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比(speedup ratio),表示流水线的效率提升度。

本文来源:程序之心,转载请注明出处!

君子曰:学不可以已。
《黑匣子思维》
“黑匣子思维”是一种记录和审视失败并从中吸取经验的积极态度。不惧怕面对失败,反而视失败为学习的途径。不会否认过失、推诿责任和想方设法脱身,而会把失败作为样本深入研究。 缺乏从失败中学习的态度、勇气和能力,会对个体或行业带来严重危害。千方百计避免犯错并不是我们的目标,学习如何聪明而有意义地犯错,将每一次失败作为测试我们成绩的机会。
发表感想

© 2016 - 2024 chengxuzhixin.com All Rights Reserved.

浙ICP备2021034854号-1    浙公网安备 33011002016107号