arch-data
收藏资源简介:
该仓库存储了用于Vesta编译器的已生成和序列化指令数据库,包括x86等架构的指令语法、语义、成本模型(如延迟、吞吐量、微操作)和微架构信息(如Intel Haswell到Arrow Lake、AMD Zen2到Zen5)。它提供了结构化数据文件(如.vxisa和.vxarch格式),用于编译器分析、成本模型和语言服务器,并包含一个可视化的指令表格网站和文本转储,以便于搜索和比较。
This repository hosts a generated and serialized instruction database for the Vesta compiler, covering instruction syntax, semantics, cost models including latency, throughput and micro-operations, as well as microarchitecture details for architectures such as x86, spanning from Intel Haswell through Arrow Lake and AMD Zen2 up to Zen5. It provides structured data files in formats like .vxisa and .vxarch for compiler analysis, cost modeling and language server development, and also includes a visual instruction table website and text dumps to facilitate searching and comparison.
数据集概述
arch-data 是为 Vesta 编译器提供的预生成且序列化的指令数据集,包含微架构成本模型和所有指令的可读转储。
包含内容(x86 架构为例,后续将扩展至 ARM、RISC-V)
| 文件 | 内容说明 |
|---|---|
x86/x86.vxisa |
ISA 语法与语义:每行为一条指令形式(包含完整操作数、编码、效果、语义属性、文档)。 |
x86/<microarq>.vxarch |
微架构成本模型:延迟、吞吐量、微操作(uops)和端口分配,针对调度类去重。当前包含 13 种微架构(Intel Haswell~Arrow Lake + E-cores, AMD Zen2~Zen5)。 |
x86/instr_form_ids.h |
生成的 C 语言头文件:enum InstrFormID、kInstrFormCount 和 kInstrChecksum[]。 |
index.html + assets/ |
可视化网站(GitHub Pages):指令表格,支持帮助、搜索、按 iclass 筛选、微架构选择、分页、排序和可展开行(描述、结构键、效果、按微架构的成本)。 |
analyzer.html |
汇编分析器:粘贴 Intel 格式指令,报告匹配的指令形式、效果和各微架构的成本。 |
dump/x86-instructions.txt |
纯文本转储所有指令形式,可用 grep 搜索或 diff 比较。 |
每条指令形式拥有一个稳定的标识符(FormID),该标识符基于其结构签名派生,而非指令名称。
数据用途
数据集描述每条指令的:
- 语义学:读取/写入的操作数、是否访问内存或标志位、是否为内存屏障、是否序列化、是否为原子操作、是否跳转或调用。
- 按微架构的成本:按操作数路径的延迟、倒数吞吐量、微操作数量和端口分配。
编译器始终不读取原始 XML,而是直接加载本仓库的文件用于:
- 内联汇编分析(
asm { }):根据每条指令的语义推导效果和块的约定(触及的寄存器、是否可能失败、堆栈使用量)并判断能否重新优化。 - 成本模型/调度:按微架构查询延迟和端口分配,以排序指令并估算成本。
- 语言服务器(LSP):在编辑器中显示每条指令的功能、用法以及在所选微架构下的成本。
数据来源与版本
文件通过可复现流程生成:
- 源数据:来自 uops.info 的
instructions.xml,日期2026-03-29,sha256 = e5e702caaf04c4fc1f75192a9bbe4d8554b3e174f7933a14d124cc33ca677ab3(哈希值也记录在每个.vxisa/.vxarch文件头部)。 - 生成工具:Vesta 编译器仓库中的
tools/import/,提交4030e35。 - 格式版本:1。身份方案版本:1。
生成和更新详情见 doc/GENERATION.md。
仓库结构
text arch-data/ ├── README.md ├── index.html 可视化网站:指令表格(Pages) ├── analyzer.html 可视化网站:汇编分析器 ├── assets/ CSS + JS + 内嵌数据(db.js) ├── .nojekyll Pages 按原样提供文件 ├── doc/ │ └── GENERATION.md 文件生成与更新说明 ├── x86/ │ ├── x86.vxisa ISA 语法与语义 │ ├── <microarq>.vxarch 按微架构的成本模型(13 个文件) │ └── instr_form_ids.h C 头文件(FormID + 校验和) └── dump/ └── x86-instructions.txt 所有指令形式的纯文本转储
在线访问
可视化页面 index.html 为自包含的静态页面。启用 GitHub Pages(默认分支、根目录)后,可通过以下地址访问:
text https://vesta-lang.github.io/arch-data/
也可直接在浏览器中打开 index.html 文件,无需服务器。.nojekyll 文件用于避免 Pages 使用 Jekyll 处理站点。




