跳转至

02 Block Diagram 与 GPC/TPC/SM 层次拓扑

1. 现代高性能 GPU 顶层框图 (Top-Level Block Diagram)

graph TB
    subgraph HostInterface["Host 接口与管理总线"]
        PCIe["PCIe Gen5/Gen6 x16 控制器"]
        NVLink_IF["NVLink4/5 端口控制器 (1.8 TB/s)"]
        HSP["High Speed Port / D2D PHY"]
        PMU_Subsys["PMU 电源管理 / 安全引擎 / JTAG"]
    end

    subgraph CommandProcessor["前端指令与任务调度"]
        GigaThread["GigaThread 硬件任务分派引擎"]
        CmdFIFO["Command FIFO & PushBuffer Ring"]
    end

    subgraph ComputeFabric["GPC 计算集群阵列 (128 SMs)"]
        GPC0["GPC 0 (8 TPCs / 16 SMs)"]
        GPC1["GPC 1 (8 TPCs / 16 SMs)"]
        GPCN["GPC 7 (8 TPCs / 16 SMs)"]
    end

    subgraph InterconnectNetwork["高带宽片上 NoC / Crossbar (50 TB/s)"]
        XBAR["Distributed Crossbar Interconnect & Tile Routing"]
    end

    subgraph MemorySubsystem["显存与缓存子系统"]
        L2_0["L2 Cache Slice 0 (32MB)"]
        L2_1["L2 Cache Slice 1 (32MB)"]
        L2_N["L2 Cache Slice 7 (32MB)"]
        HBM_Ctrl0["HBM3e Controller 0"]
        HBM_Ctrl1["HBM3e Controller 1"]
        HBM_CtrlN["HBM3e Controller 5"]
        HBM_Stack0["HBM3e Stack (24GB)"]
        HBM_Stack1["HBM3e Stack (24GB)"]
    end

    PCIe & NVLink_IF --> CmdFIFO --> GigaThread
    GigaThread --> GPC0 & GPC1 & GPCN
    GPC0 & GPC1 & GPCN <--> XBAR
    XBAR <--> L2_0 & L2_1 & L2_N
    L2_0 <--> HBM_Ctrl0 <--> HBM_Stack0
    L2_1 <--> HBM_Ctrl1 <--> HBM_Stack1

2. GPC、TPC 与 SM 的物理微架构展开

每个 GPC(Graphics Processing Cluster)由独立的时钟树分支和电源门控开关驱动,内部包含若干 TPC(Texture Processing Cluster),而每个 TPC 包含 2 个独立的 SM(Streaming Multiprocessor)

graph LR
    subgraph TPC_Detail["TPC 内部结构"]
        TexUnit["Texture Unit (纹理采样/滤波/解压缩)"]
        SM_A["SM 0"]
        SM_B["SM 1"]
        PolyMorph["PolyMorph Engine / 几何前处理"]
    end
    TexUnit --- SM_A & SM_B
    PolyMorph --- SM_A & SM_B

单 SM 内部四路处理分区 (Processing Block / Warp Scheduler)

每个 SM 内部被严格切分为 4 个物理对等的 Sub-Core (Processing Block): - 每个 Sub-Core 拥有独立的 1 个 Warp 调度器 (Warp Scheduler) + 1 个指令分派单元 (Dispatch Unit); - 独立映射 16K 个 32-bit 寄存器 (64KB SRAM); - 包含 16 个 FP32 ALU、16 个 INT32 ALU、4 个 FP64 ALU、1 个 Tensor Core 矩阵乘单元、4 个 SFU 特殊函数单元; - 4 个 Sub-Core 共享统一的 228KB Shared Memory / L1 Data Cache 与 L1 Instruction Cache。