https://linxisa.github.io/background/ 是 LinxISA / 灵犀指令集 的官方文档页
1. 它是什么:Block-Structured ISA
灵犀指令集(LinxISA)的核心不是"又一套 RISC",而是 以块(block)为执行单元的层次化 ISA:
- 程序不是纯平铺指令流,而是由
BSTART / BSTOP等边界分成"指令块" - 块内:一组微指令 / 块体指令,显式表达依赖、输入、输出
- 块外:仍用控制流 / 跳转 / 调用约定组织
- 块头(block header):描述块属性、参数、跳转、执行模式
- 块体(block body):真正计算
- 寄存器分两层:
- 全局 / 共享层(GGPR、SGPR 等)
- 块私有层(LGPR、TILE、VGPR 等)
官方自己说:目标是统一 Scalar / Vector / Tile,融合 SIMD 与 SIMT,覆盖 CPU、AI、图形类负载。
思想来源也不是凭空来:
- Stanford BLISS(Block-Aware ISA, 2006)
- EDGE / TRIPS(块内依赖图、块外控制流)
- 数据流处理器(1970s)
- VLIW 的"编译器显式并行"思路
2. 和 x86 / ARM / RISC-V 的本质区别
| 维度 | x86/ARM/RISC-V | LinxISA |
|---|---|---|
| 执行单位 | 单条指令 | 指令块 |
| 并行性来源 | 硬件 OoO + 分支预测 + 调度器 | 编译器静态成块 + 硬件按块调度 |
| 寄存器模型 | 扁平 GPR/Vector/Tile | 全局层 + 块私有层 |
| 异构计算 | CPU / GPU / NPU 各一套 ISA | 同一 ISA 内 Scalar/Vector/Tile |
| 依赖关系 | 硬件重排 / 记分牌 / 发射队列 | 块内依赖图由编译器编码进块 |
| AI 计算 | 扩展指令(SME / AVX / RVV / Matrix) | 原生 Tile / 张量块 |
所以它更像:
VLIW + EDGE + RISC 块体 + GPU/Tensor 编程模型 的混合体
3. 技术亮点
✅ 1)块级并行(Block-Level Parallelism)
单核内可以把多个"块"当作 micro-task 并发调度,不只是指令级并行(ILP)。
✅ 2)块头 / 块体解耦
- 块头:控制、参数、跳转、权限、异常
- 块体:计算
→ 前端做控制解析,后端做数据计算,适合宽发射、宽向量、Tile 引擎。
✅ 3)显式依赖,降低硬件复杂度
传统 OoO CPU 要用大量逻辑做:
- 寄存器重命名
- 依赖检测
- 分支预测
- 投机执行
- 回滚
LinxISA 把部分工作推给编译器:块内依赖图直接编码,硬件可以更像"块调度器 + 执行阵列"。
✅ 4)统一 Scalar / Vector / Tile
文档里已经有:
- 标量块
- 浮点标量块
- 向量块
- 矩阵 / Tile 块
- 访存数据块
- 系统块
- 系统调用块
- 张量指令(TMATMUL、TGEMV、TROWSUM...)
这意味着:
从 C 函数 → 向量核 → 矩阵乘 → AI kernel,可以用同一套 ISA 表达
✅ 5)层次化扩展空间
第二层架构可以有独立编码空间、寄存器、指令定义,产品线能加定制指令,又不破坏第一层架构状态。
这对"厂商自定义加速单元"很友好。
4. 风险和难点(比技术亮点更重要)
❌ 1)编译器负担极重
块结构 ISA 的命门永远是编译器:
- 块划分
- 寄存器分层分配
- 块间调度
- 异常 / 中断 / 页错误恢复
- 热路径重块化
- 老代码(C/C++/Rust/Go)怎么映射
Itanium / VLIW 的历史已经证明:
如果编译器搞不定动态、指针密集、分支难测的代码,架构再漂亮也会翻车。
❌ 2)通用 OS / 数据库 / 浏览器不一定舒服
灵犀适合:
- 矩阵乘
- 卷积
- 归一化
- 向量循环
- 推理 / 训练 micro-kernel
不一定适合:
- 复杂系统调用路径
- 锁竞争
- 虚函数
- 解释器
- GC
- 不规则图遍历
❌ 3)生态从零开始
指令集不是"能跑 Hello World"就成功,而是要:
- Linux 完整移植
- LLVM/GCC
- glibc/musl
- QEMU
- 调试器
- 性能分析
- 容器 / 运行时
- CUDA/OpenCL/PyTorch/TensorFlow 后端
- 主板 / MMU / IOMMU / 设备驱动
官方文档站已经配套 LLVM、QEMU、Linux、LinxCore RTL、glibc/musl,这比只发 PDF 的 ISA 强很多;但离"生态成立"还差十年级投入。
❌ 4)硬件实现收益未经验证
"少乱序、少分支预测 → 更省面积/功耗"是理论上的:
- 块调度器本身不便宜
- Tile/Vector 阵列、依赖解析、异常回滚、块间同步都会吃掉收益
- 没有 SPEC / MLPerf / 真实芯片对比,不能说"比 ARM/x86/NVIDIA 更高效"
❌ 5)"谁提出"证据不足
- 媒体说华为 2019 申商标、2022 申 LinxiISA
- 但 LinxISA 文档站没写 Huawei Inc.
- 许可证署名被第三方指出是 Kevin Zhou
- 所以更准确说法:
灵犀指令集是一个"中文圈广泛传为华为相关"的块结构 ISA 项目;截至公开材料,不能确认它就是华为公司级官方主线架构。
5. 一句话技术判断
灵犀指令集(LinxISA)是一个有完整文档、工具链和 RTL 野心的 Block-Structured Unified ISA,方向上有新意,但属于"高风险的架构豪赌":
- 技术上:比 RISC-V 更激进一步,想把 CPU/GPU/NPU 的语义统一到"块"
- 工程上:编译器、OS、驱动、AI 框架全部要重做
- 商业上:不是"做出来就赢",而是"生态活下来才赢"
- 现实上:短期别信"替代 ARM/x86/CUDA",长期才看它能不能跑通 AI + 通用计算混合负载