Skip to main content

1. Proposed Locus Architecture

A. Proposed Locus Architecture 详细介绍​

这一节给出了 Locus 加速器的整体架构设计。它的核心目标是支持 跨阶段融合(cross-stage fusion) 和 数据并行(data parallelism),从而减少中间数据在 DRAM 中的往返,并让多个 reads 复用同一份图数据。下面从架构总览、全局缓冲区组织、控制与模式切换三个方面详细展开。


1. 架构总览​

Figure 5 展示了 Locus 的整体架构。加速器主要由以下组件构成:

  • 12×1212 \times 12 可重构 PE 阵列:用于执行线性链接、图链接和比对三个阶段的统一计算。
  • 两级存储层次:
    • 全局缓冲区(Global Buffer, GLB):容量较大,用于保存跨阶段中间数据和当前分区的图数据。
    • 本地暂存器(Local Scratchpad):容量较小,用于保存 WFA 比对过程中的波前 DP 矩阵,访问延迟更低。
  • Graph Path Finder (GPF) 引擎:负责在图链接阶段执行最短路径搜索。
  • Traceback Engine:负责从比对分数矩阵回溯生成 CIGAR 字符串。
  • Range Maximum Query (RMQ) 引擎:用于线性链接阶段快速筛选候选前驱 anchor,降低 PE 阵列的计算量。

这些组件共同支持 S2G mapping 的完整流水线:从 anchors 输入,经过线性链接、图链接、比对,最终输出 CIGAR 结果。架构的关键在于:中间结果不再写回 DRAM,而是保留在 GLB 中,供后续阶段直接使用;同时,当前分区的图拓扑数据也被缓存在 GLB 中,供多个 reads 共享。


2. 全局缓冲区组织(Global Buffer Organization)​

GLB 是 Locus 实现融合执行的核心。它被划分为 四个逻辑 bank,分别服务于中间数据复用和图数据复用。

2.1 支持中间数据复用的三个 bank​

这三个 bank 保存跨融合阶段交换的数据:

  1. Anchor Bank:

    • 存储 seeding 阶段产生的 seed anchors。
    • 这些 anchors 被线性链接阶段消费。
  2. Intermediate Result (IR) Bank:

    • 保存链接分数(chaining scores)和回溯指针(traceback pointers)。
    • 这些数据会传递给图链接和比对阶段。
    • 最终比对结果(CIGAR)也写回这里。
  3. Sequence Bank:

    • 存储打包的 DNA 子序列(packed DNA subsequences)。
    • 用于比对阶段的碱基级比较。

2.2 支持图数据复用的 bank​

  1. Graph Topology Bank:
    • 缓存当前活跃分区 bin 的顶点序列(vertex sequences)和邻接表(adjacency lists)。
    • 这些图结构数据被多个 reads 共享,避免每个 read 都从 DRAM 重新加载。
    • 该 bank 采用 双缓冲(double-buffered):当当前 bin 正在处理时,下一个 bin 的数据可以被预取到另一个 buffer 中,从而隐藏内存延迟。

2.3 容量分配:60% / 40%​

GLB 的容量被静态划分为两部分,以匹配泛基因组图的结构特征:

  • 约 60% 分配给 fusion working set:用于数据流并行(dataflow parallelism),即保存 anchors、中间结果、序列和 WFA scratchpad 等。
  • 约 40% 分配给共享子图数据:用于数据并行(data parallelism),即缓存 Graph Topology Bank。

这个比例反映了论文中观察到的结构不变量:α≈0.40\alpha \approx 0.40,即约 40% 的路径会跨越 bubble 区域。静态划分避免了运行时仲裁开销,同时匹配了图结构隐含的预期工作负载分布。


3. 控制与模式切换(Control and Mode Switching)​

3.1 主控制器与三阶段 FSM​

主控制器(main controller)负责协调 tile 的执行,并管理流水线阶段之间的切换。它采用一个 三阶段有限状态机(FSM):

  1. Load:加载当前 tile 所需的 anchors 和图数据。
  2. Execute:执行 LC → GC → AL 的计算。
  3. Writeback:写回最终结果(如 CIGAR)。

3.2 Tile Prefetch Engine (TPE)​

TPE 是实现数据并行机制的关键组件,它通过三个功能来协调 tile 预取:

  1. 四条目 tile 队列:

    • 缓冲来自 host 的待处理 tile 元数据。
    • 队列深度为 4,允许一定程度的流水线重叠。
  2. 预取触发器(prefetch trigger):

    • 发起 DMA 传输,将下一个 bin 的顶点序列和邻接表加载到非活跃的双缓冲 bank 中。
    • 这样,当前 bin 还在处理时,下一个 bin 的数据已经在后台加载。
  3. 缓冲区交换控制(buffer swap control):

    • 当一个 tile 完成时,切换双缓冲 bank,使预取好的数据变为活跃。
    • 从而实现计算与数据加载的重叠。

Host 侧负责确定 bin:即在一个 tile 批处理过程中,包含最多 anchors 的那个分区。TPE 接收这个 bin ID 以及下一个顶点地址,并协调预取时机,将内存延迟隐藏在计算之后。

3.3 模式切换​

Locus 的 PE 阵列需要在不同阶段切换工作模式:

  • Chaining 模式:用于线性链接和图链接的分数计算。
  • Alignment 模式:用于 WFA 比对(包括 affine gap 和 edit distance 两种子模式)。

切换模式时,需要重新配置 PE 的数据通路多路复用器(datapath multiplexers)和互连拓扑(interconnection topology)。论文给出了具体的切换协议:

  1. 排空 in-flight 操作:等待当前正在执行的操作完成,耗时 2 个周期。
  2. 广播模式配置到所有 PE:将新的模式配置广播给 PE 阵列,耗时 1 个周期。
  3. 重配置 GLB 仲裁:这部分与前面步骤重叠执行,不额外增加延迟。

因此,每次模式切换的总延迟为 3 个周期。由于每个 tile 内包含数千次操作,这个切换开销被充分摊销,对整体性能影响极小。


4. 设计意义总结​

Locus 的架构设计直接回应了 S2G mapping 的两个核心挑战:

  1. 中间数据移动主导 DRAM 流量:

    • 通过 GLB 的 Anchor Bank、IR Bank、Sequence Bank 保留跨阶段中间结果,消除 LC→GC→AL 之间的 DRAM 往返。
    • 通过 Graph Topology Bank 缓存当前分区的图数据,让多个 reads 复用,减少 topology 加载。
  2. 结构不规则性阻碍并行:

    • 通过 TPE 的预取和双缓冲机制,实现计算与数据加载的重叠,隐藏内存延迟。
    • 通过静态划分 GLB 容量(60% fusion / 40% topology),匹配 α≈0.40\alpha \approx 0.40 的图结构特征,避免运行时仲裁。
    • 通过可重构 PE 阵列和低开销模式切换(3 周期),在统一硬件上支持多种计算模式。

总之,A 节描述的 Locus 架构是一个以 片上数据复用 和 流水线融合 为核心的加速器设计,为后续的 PE 阵列细节、GPF 引擎、Traceback 引擎和数据流映射奠定了基础。