《计算机系统:系统架构与操作系统的高度集成》——3.4 数据通路设计

本节书摘来自华章计算机《计算机系统:系统架构与操作系统的高度集成》一书中的第3章,第3.4节,作者:(美)拉姆阿堪德兰(Ramachandran, U.)(美)莱希(Leahy, W. D.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 数据通路设计

*处理单元(CPU)包括数据通路和控制单元。数据通路拥有所有的逻辑元件,而控制单元根据处理器的指令集为数据通路提供控制信号。
数据通路是硬件资源及其连接的结合体。我们看看数据通路需要什么硬件资源。我们提到过,指令集体系结构本身已经明确选择了一些硬件资源。一般来说,除了指令集显式要求的之外,我们还需要更多的硬件资源。

《计算机系统:系统架构与操作系统的高度集成》——3.4 数据通路设计

为了使讨论更具体,我们先给出LC-2200指令集要求的硬件资源:
1)能够进行ADD、NAND、SUB运算的ALU。
2)包含16个32位寄存器的寄存器堆,如图3-14所示。
3)32位的PC。
4)232×32位字的内存。
内存是LC-2200指令集中用来存放指令和数据的硬件资源。内存的大小是一种实现上的选择。体系结构只是通过寻址能力限制内存空间的最大大小。LC-2200具有32位寻址能力,所以最大的内存空间应该是232个字,而每个字为32位。
我们看看还需要什么额外的硬件资源。我们提到过,当指令从内存中读出后,它需要保存在数据通路的某个地方。IR正是用于此目的。假设我们想用单条总线将所有这些元件连接起来,先不管总线的数量,看看寄存器堆就能发现很明显的问题。我们只能从寄存器堆中获得一个寄存器的值,因为它只有一个输出端口(Dout)。ALU操作需要两个操作数。所以,我们需要在数据通路中使用一些临时的寄存器来保存一个操作数。而且,使用单总线时,所有元件之间都只有一条通道。这就是我们将寄存器A和B放在ALU前面的原因。由于类似的原因,我们需要存放ALU给出的内存地址。于是出现了内存地址寄存器(MAR)。Z寄存器(1位寄存器)的作用在后面讨论指令集实现的时候自然会知道。在Z寄存器前面的零检测组合逻辑(见图3-15)检测总线上的值是否为0。根据指令集的硬件资源、数据通路的限制以及实现指令集的实际需要,我们最终得出了一个单总线设计,如图3-15所示。
《计算机系统:系统架构与操作系统的高度集成》——3.4 数据通路设计

图3-15  LC-2200数据通路。有些资源是由ISA指定的,另一些则是由于单总线的限制而加上去的
3.4.1 ISA与数据通路宽度
我们将LC-2200定义为一个32位指令集体系结构。因此,所有的指令、地址和操作数都是32位的。我们现在将探讨这种体系结构对数据通路设计带来的影响,理解对总线和ALU等其他部件的影响。
但从逻辑设计的角度来说,很容易想到用低精度的硬件实现高精度的算术和逻辑运算。例如,如果你愿意,你可以使用1位加法器来实现32位加法。虽然这会很慢,但确实可以实现。
同样,你可以让图3-15中的总线变得比32位窄一些。这样的选择会影响指令的执行。比如,如果你使用了8位宽的总线,那么你需要4次才能从内存中读出一条指令或内存操作数。再次为这个选择付出性能上的代价。
我们希望使用比ISA要求更低精度的硬件和更窄的总线,这又是一个性能与价格权衡的问题。因为大部分芯片面积都被连接线占据了,所以总线越窄,处理器的实现就越廉价。使用低精度的硬件也有同样效果,因为它会减小数据通路中连线的宽度。
所以,数据通路的设计体现出性能价格的权衡。这就是我们在3.1节中说的,芯片厂商会提供一种处理器位于性能价格曲线上不同位置的多个版本。
为了我们的讨论,假设数据通路上对体系结构可见的部分(PC、寄存器堆、IR、内存)都是32位宽。
3.4.2 时钟脉冲宽度
在3.3节中(见例3-3),我们非形式化地讨论了如何计算时钟周期宽度。现在我们形式化地定义与时钟周期计算有关的术语:
每个组合逻辑元件(例如,ALU或图3-15中的驱动门)都有一个从输入到输出传播值的一段延迟,这称为传播延迟。
类似地,从寄存器允许读取(例如,图3-15中,将regno值传送到寄存器堆)到将内容传送到输出端口(Dout)也有一段延迟(称为访问时间)。
对于要写入寄存器的情况,输入到寄存器在时钟上升沿到来之前一段时间要保持稳定(即输入值不再变化),这段时间称为建立时间。
类似地,在时钟上升沿到来之后,输入到寄存器还需要保持稳定一段时间,这称为保持时间。
最后,一个值从某个元件的输出通过线路出现在另一个元件的输入(例如,在图3-15中从驱动门的输出到PC的输入)的这段时间称为传输延迟(也称为线延迟)。
因此,如果我们希望在一个时钟周期内读取寄存器堆中的某个值并将它放入寄存器A,我们需要将一系列的延迟相加。我们计算所有需要在单个时钟周期内完成的数据通路操作的最坏情况的延迟。这就给出了时钟周期的下限。
3.4.3 检查点
到目前为止,我们回顾了下面的硬件概念:
基本的逻辑设计,包括组合逻辑电路与时序逻辑电路。
数据通路中的硬件资源,如寄存器堆、ALU和内存。
边沿触发逻辑和时钟周期宽度。
数据通路连接和总线。
有限状态机。
我们使用这些概念为LC-2200指令集体系结构建立了一条数据通路。

上一篇:[LeetCode] Quad Tree Intersection 四叉树相交


下一篇:大型网站架构技术一览