跳转至

集群架构(Cluster Architecture)

概述

每个集群(Cluster)包含 1 个 Cube 核心2 个伙伴 Vector 核心,它们共享基于硬件标志位(Flag)的同步机制。该架构支持同一集群内协同调度的 InCore 内核之间的高效数据通信。

集群拓扑

┌─────────────────────── Cluster ───────────────────────┐
│                                                       │
│  ┌──────────┐    flags (8 per dir)     ┌──────────┐   │
│  │ Vector 0 │◄════════════════════════►│          │   │
│  └──────────┘    SET/WAIT V→C, C→V     │   Cube   │   │
│                                        │          │   │
│  ┌──────────┐    flags (8 per dir)     │          │   │
│  │ Vector 1 │◄════════════════════════►│          │   │
│  └──────────┘    SET/WAIT V→C, C→V     └──────────┘   │
│                                                       │
└───────────────────────────────────────────────────────┘

硬件标志位(Hardware Flags)

跨核同步使用具有 SET/WAIT 语义的硬件标志位:

属性
每方向每对等核心的标志位数 8
每对等核心的方向数 2(Vector→Cube、Cube→Vector)
每个 Vector-Cube 对的标志位数 16
每个集群的标志位总数 32(2 对等核心 × 16)

Vector 核心可以 SET 一个标志位供 Cube 核心 WAIT,反之亦然。

环形缓冲区数据通道(Ring Buffer Data Channel)

数据通过带流控的多槽环形缓冲区(Multi-Slot Ring Buffer)在生产者和消费者内核之间流动。每个槽(Slot)容纳一个固定大小的 Tile。环形缓冲区的位置取决于平台:

平台 位置 说明
A2/A3 全局内存(GM) 片外 DDR/HBM,集群内所有核心可访问
A5 消费者片上 SRAM UB(Vector 消费者)或 L1(Cube 消费者)
A2/A3 平台:                               A5 平台:

Producer          GM         Consumer    Producer                    Consumer
┌──────┐   ┌─────────────┐   ┌──────┐    ┌──────┐                ┌──────────────┐
│      │──▶│ slot[0..N-1]│──▶│      │    │      │───────────────▶│ UB / L1      │
│ Cube │   │ (off-chip)  │   │ Vec  │    │ Cube │  DMA to local  │ slot[0..N-1] │
│ /Vec │   └─────────────┘   │ /Cube│    │ /Vec │                │ (on-chip)    │
└──────┘                     └──────┘    └──────┘                └──────────────┘

A5 平台将缓冲区放置在消费者本地 SRAM 中,消除了到 GM 的往返开销,实现更低延迟的数据交接。在 A5 上,消费者可以直接操作本地缓冲区中的 Tile 数据,无需从 GM 显式加载。

通信能力

TPUSH/TPOP 机制支持:

  • Tile 级数据流 — Cube 和伙伴 Vector 核心之间(生产者 → 环形缓冲区 → 消费者)
  • 跨核同步 — 通过硬件 SET/WAIT 标志位
  • 流水线执行 — 多槽环形缓冲区(单向 8 槽,双向每方向 4 槽)
  • 平台自适应缓冲区放置 — A2/A3 使用 GM,A5 使用消费者 SRAM

参见 TPUSH/TPOP 指令 了解指令规范,缓冲区管理 了解平台相关的缓冲区放置细节。