#灵感# 研究下存算一体芯片
在 12nm(比如 TSMC 12FFC)+ FCBGA 的 SoC 里,CPU 和 DDR 不是"并排随便放",而是按"数据流最短 + 出球最近 + 供电不炸"三件事一起定的。下面用一颗典型应用处理器/边缘 AI SoC 的 floorplan 逻辑给你讲。
一、先分清两个东西
- CPU subsystem: CPU core cluster + L2/L3 cache + coherent interconnect (NoC/AXI) → primarily standard cells + SRAM soft/hard macros, placed inside the die.
- DDR subsystem: split into two layers:
- DDR Controller (DFI-side logic): synthesizable RTL, communicates with the CPU via AXI/NoC, typically treated as a regular macro block.
- DDR PHY + IO buffers (DATX8/AC/PLL/SSTL PAD): hard macros + IO region, must be placed at the die edge, close to the corresponding bumps.
二、CPU 放哪
规律很固定:
- 不在最边缘(边缘留给 IO/PAD/PHY)
- 不在正中心死锁(时钟树太长),但会在核心区偏中
- 多核集群 + L2 紧挨着,L3/系统互联围一圈
- 靠近电源 bump 密集区(你之前那个 7259 PG bump 就是给 core 供电的),减少 IR drop
- 高热模块(CPU/GPU/NPU)分散摆,不堆一角,避免局部热点
典型画面:
┌──────────────────────────────┐
│ 顶部: PCIe/SerDes/USB PHY 贴边 │
│ 左: 显示/MIPI 右: 网络/高速IO │
│ ┌──────────────┐ │
│ │ CPU0+L2 │ │
│ │ CPU1+L2 │← NoC │
│ │ 共享 L3/SCU │ │
│ └──────┬───────┘ │
│ DDR Ctrl │ AXI/DFI │
│ (软逻辑) ↓ │
│ ───────────┴───────── │
│ DDR PHY + PAD(底边贴边) │← bump 出球到封装/PCB DDR
└──────────────────────────────┘
三、DDR 放哪(关键)
DDR 是 floorplan 里最被"绑边"的模块:
- DDR PHY 必须贴 die 边缘,且正对封装上 DDR 信号 ball 群
→ 因为 DDR 是 source-synchronous、多比特并行(32/64bit + DQS/CLK/ADDR),走线要等长、低串扰,不能跨芯片绕远 - Controller 和 PHY 要近:DFI 接口位宽大、频率高,PHY 与 Controller 硬化在一起或同边缘区块放,避免 DFI 跨 die 长跑
- PHY 内部顺序:DATX8(数据字节)靠近数据 pad,AC(地址控制)宏靠地址 pad,PLL 在 PHY 旁边
- CPU 到 DDR 的路径:不是"CPU 挨着 PHY",而是
CPU → L2 → NoC → DDR Controller → DFI → PHY → bump
所以 Controller 放 CPU 和 PHY 之间当"中转站",AXI 通道留缓冲 FIFO 区,端口对齐同一侧
四、12nm FCBGA 下的典型布局结论
对你这种 12nm、7800+ bump 的 die,常见做法是:
- 底边或左右下角 → DDR PHY + DDR 信号 bump 群(DQ/DQS/CLK/ADDR)
- 底边内侧 → DDR Controller(硬核或综合逻辑)
- die 中部/偏上 → CPU 簇 + cache + NoC
- 上下左右边缘 → 其他 PHY(SerDes/USB/MIPI/PLL)
- PG bump 大矩阵 → 均匀铺在 core 区正下方/上方,给 CPU 和 PHY 分别喂电
- sealring 内圈 → 不留功能模块,只走保护环
- scribeline → 切割道,不归 floorplan 管
五、算是存算一体吗?
不算。
你前面聊的这套东西------12nm、FCBGA、CPU 放中间、DDR PHY 贴边、bump 7800+------这是经典冯·诺依曼架构 SoC 的 floorplan,不是存算一体。
为什么不算存算一体?
| 特征 | 你描述的架构 | 存算一体(PIM / CIM) |
|---|---|---|
| 计算在哪 | CPU/GPU/NPU 里算 | 存储器内部或紧邻存储器的地方直接算 |
| 数据搬运 | CPU ↔ DDR 来回搬(冯氏瓶颈) | 数据不搬出存储阵列,就地处理 |
| 存储单元 | SRAM/DRAM/L3 只存不计算 | 存储单元本身参与逻辑/乘加运算 |
| DDR 角色 | 纯外部存储器,CPU 通过 PHY 读写 | 要么 DRAM 内嵌 ALU(如 HBM-PIM),要么存内计算宏 |
| 典型应用 | 通用 SoC、手机芯片、边缘 AI | 存内矩阵乘、向量检索、近似搜索、推理加速 |
你那颗芯片的数据路径是:
CPU → NoC → DDR Ctrl → DFI → DDR PHY → bump → 外部 DDR 颗粒
数据必须离开 die、穿过封装/PCB、进 DDR 颗粒再回来------这是最经典的冯·诺依曼瓶颈,跟"存算一体"恰好相反。
六:存算一体长什么样?
一句话判断标准
问自己一个问题:数据有没有离开存储阵列去做计算?
- 离开了 → 冯·诺依曼(你的情况)
- 没离开,在存储阵列内部/紧邻处就算完了 → 存算一体
你那颗芯片明显是前者。除非你后面告诉我它有 HBM-PIM、SRAM CIM macro、或者 ReRAM 阵列之类的东西,那才重新讨论。
真正的存算一体至少满足以下之一:
- SRAM CIM(Compute-in-Memory)
- 用 SRAM 阵列做 6T/8T bitcell,读操作时在 BL/BLB 上做模拟/数字累加
- 典型:NPU 里用 SRAM macro 做 INT8 乘加,权重存在 bitcell 里,激活值输入后直接出 partial sum
- floorplan 上:计算宏和存储宏合体,没有独立 DDR 搬运路径
- DRAM PIM(Processing-in-Memory)
- HBM 内部 bank 之间嵌 ALU,指令通过特殊命令下发
- 三星 HBM-PIM、SK 海力士 AiM 就是这类
- floorplan 上:HBM 堆叠里就有逻辑层参与计算
- ReRAM/PCM/FeFET CIM
- 用阻变存储器做模拟矩阵乘,电导 = 权重,电压 = 输入,电流 = 乘加结果
, floorplan 上直接是 macro 即计算单元
- 用阻变存储器做模拟矩阵乘,电导 = 权重,电压 = 输入,电流 = 乘加结果
你那颗芯片跟"存算"最接近的可能是什么?
如果它是一颗 AI 推理 SoC,那它可能是:
- 靠近存算但还不是:die 内部有 NPU 硬核,NPU 内部有本地 SRAM buffer,减少 DDR 访问频次 → 这叫"近存计算(Near-Memory Computing)",不是存算一体
- 真正的存算一体:如果 NPU 的权重直接存在 SRAM bitcell 阵列里、读操作本身就是 MAC → 那 NPU macro 内部是 CIM,但整个芯片仍然是混合架构(CPU 管调度,NPU 内部存算)