微线程
概述
通过降低行和列的访问粒度,微线程可提高 DRAM 架构资源的传输效率以及有效使用。通过在物理内存空间的每个象限使用独立的行和列电路,最小传输大小可比典型的 DRAM 设备小四倍。每个象限的独立寻址能力还补充了现代图形和多核处理器的线程内存工作负荷。这一独特的架构使微线程能够维持设备的总数据带宽,同时降低每个事务的功耗。
典型的 DRAM 运行
DRAM 接口吞吐量的提高已快速超越了核心速率中的同类提高。DRAM 接口的数据率已连续几代增加几个数量级,而 DRAM 核心频率仍相对保持一致。随着时间的推移,为了迎合接口带宽的改进,增加了核心预取大小。这些更大的预取大小提高了访问“粒度”(测量被访问的数据量),并为图形或多核计算等应用提供比所需更多的数据。检索过量的数据既无效率又浪费 DRAM 和信令能源。
访问粒度是内存架构中具备数据存取的一个功能。典型的 DRAM 包含 8 个存储库。在此类 DRAM 中,通常会将每个库进一步细分为两个同等大小的半个库,“A”和“B”。对于具备 32 个数据针脚的此类 DRAM 而言,每个 A 半库会连接到 16 个数据针脚,同时每个 B 半库会连接到 16 个针脚。这些库位于物理芯片的相反象限,并且每个象限具备其专有的行和列电路 - 每个半库会以平行方式运行以响应行和列命令。

行命令会在正被处理的每个半库中选择单独的一行,从而感知并锁定该行。在访问另一个半库中的行之前,物理时序限制会实施延迟(如 tRR)。列命令也同样受此限制(如 tCC)。然而,行时序间隔通常是列时序间隔的两倍;因此,在启动一行所需的强制性延迟期间,可发出两个列命令。
列预取长度(每事务传递的数据量)是由各自的列和行时序延迟以及位传输率所确定,其中:
预取 = 时序延迟/位传输率
主流 DRAM 的核心通常最高以 200MHz 的数据率运行,而高性能的业界标准 DRAM 的核心通常能以最高 400MHz 的数据率运行。现代的业界标准 DRAM 技术很难在不牺牲生产产量或提高成本的情况下,实现超出 400MHz 的核心频率。由于 DRAM 核心的每个半库都是在运行的同一行或列下运行,因此,需要 16 位的列预取,才能使此类高性能 DRAM 核心支持超出 3200MHz 的外部数据率
此外:
列粒度 = 列预取 x 每个半库的数据针脚数 x 每次访问的半库数
或:
对于每个半库具备 16 个数据针脚的 32 位宽的 DRAM:
每次访问的列粒度 = 16 x 16 x 2 = 512 位或 64 字节。
另外,在行时序间隔期间,为了保持峰值带宽,必须执行至少两个列操作。这通常描述为每个列地址选通脉冲备有两个栏地址选通脉冲﹝每个 RAS 备有两个 CAS﹞。这会产生至少 128 字节的行粒度。对于某些应用(如 3D 图形),如此庞大的访问粒度会转换为无效率数据和功率利用。
微线程如何提高效率?
微线程 DRAM 核心样本使用与之前示例中大致相同的核心资源,具有 16 个库,其微线程 DRAM 中的每个库与典型 DRAM 核心中的一个半库相等。偶数库会连接到 A 数据针脚,而奇数库连接到 B 数据针脚(在每个示例中都具备 16 个针脚)。然而,与典型核心不同的是,每个 4 库象限可使用每个象限的独立行和列电路实现独立运行。此外,交叉并同时访问多个内存库可对与上一次访问相同的物理面核心的下象限同时进行访问。

微线程能对 DRAM 核心同时进行 4 个独立访问。虽然要经历与典型核心相同的时间间隔后才能访问特定库或库象限中的第二行,在同一个时间段内,仍可对其他象限的三个库进行独立访问。虽然在之前启动的行中访问第二列以前,要先经历列时序间隔,但是也可同时访问位于其他象限的行中的列。(相对于使用典型的 DRAM 技术访问 1 行和 2 列)此象限独立与交叉的实际结果是,在行时序间隔期间可访问 4 行(每个象限 1 个库中 1 行)和 8 列(每行 2 列)。
时序与典型的 DRAM 核心相似,但是每列仅在半个列时序间隔内发送数据。在另外半个间隔中由交叉的列发送数据。微线程可降低最小传输粒度大小,同时维持高产量和经济高效的核心频率。通过从四个不同的库对列进行交叉访问,微线程 DRAM 核心(具备给定的列预取长度和核心频率)可支持比传统 DRAM 核心高出两倍的数据率。相反地,列运行的微线程使 DRAM 核心能够经济高效地维持特定的数据传输和粒度,同时,与传统 DRAM 核心相比,可放宽高达两倍的列周期时间﹝tCC﹞。

采用微线程技术,如今列粒度达到:
列预取/2 x 16 个脚 = 16/2 x 16 = 128 位或 16 字节(是之前值的四分之一)。
行粒度为 32 字节(也是之前值的四分之一)。微线程更小的粒度使得许多应用的性能有所提高。例如,在具有 8 字节微线程列访问粒度的图形应用中,自从引入此技术后,计算和功率效率提高了 29% 至 67%。
摘要:商业挑战和微线程性能优势
- 已使用延长预取长度的方法来提高 DRAM 核心速率,以与接口带宽保持同步。然而,这也使得 DRAM 核心在传输有用的数据方面越来越没有效率。
- 微线程提供了一个替代方案,可使用大致相同的 DRAM 核心来提高传输效率以及降低访问粒度。
- 微线程可维持持续不变的高数据带宽,同时降低功耗。
- 与传统技术相比,微线程可使 DRAM 核心实现两倍的数据率。
- 微线程为提高未来的数据带宽和核心预取比率提供了一种可扩展路径。
