type
Post
status
Published
date
Oct 20, 2026
slug
summary
建立起从底层芯片到上层应用的技术架构认知
tags
行业洞察
category
AI
icon
password
最近在折腾一款Agentic OS - Omarchy, 部署过程中遇到了操作系统镜指令集的相关问题, 遂把这块知识梳理下.
指令集与微架构
芯片和操作系统是大家相对熟悉的概念, 借用这俩概念引出指令集,估计大家会更好理解.

指令集是计算机领域非常底层的概念, 它是面向CPU的语言, 是芯片的语言规范, 定义了芯片 CPU 如何理解和能执行哪些动作,比如加减、跳转、读取内存等.
按设计理念, 可以分为两大类:
- RISC(精简指令集):追求指令简单、执行高效、功耗低。多用在智能手机、手表、平板,物联网设备等, 典型的代表有 ARM(Advanced RISC Machine)、 RISC-V(开源,免费)、Xtensa 架构。记忆点主打一个功耗低.
- CISC(复杂指令集):追求单个指令能做更多事,适合高性能计算。多用在数据中心服务器, 个人电脑场景, 典型代表 Intel x86、AMD x86-64 。记忆点主打一个能力强.
在芯片领域你会常听到三个概念: 设计、制造、封装.
设计: 有了语言(指令集)之后, 剩下的就是设计什么样的电路去实现它们, 这就是芯片的微架构设计(设计图纸), 需要注意的是, 同一个指令集可以有不同的实现电路, 就像条条大路通罗马一样. 所以你会看到Apple M 和高通骁龙芯片同属于ARM指令集架构. 由设计图纸到真实的物理实物, 就是大家常听到的制造与封装.
制造: 由晶圆代工厂如台积电、三星,用光刻机在硅片上雕刻几十亿个晶体管. 在制造环节, 具体还分不同的制造工艺或者制造制程, 比如新闻上常说的2nm、8nm等.
封装: 把雕刻好的裸芯片保护起来,引出针脚.
注: 指令集是指 CPU能够执行的所有机器指令的集合,如ADD、SUB、MOV等, 而指令集架构(ISA)是整个软硬件交界的“总法律规范”,包括了指令集、寄存器组织、内存寻址模型、数据类型规范. 不过在绝大多数日常交流中,指的都是同一个概念,两者可以互换使用。
这里, 从商业的角度稍为扩展讨论下.
芯片制造产业链:指令集 → 微架构 → 制造 → 封装, 这条链应该是目前地球上集合人类智慧和理工类精英最多的产业链. 每个环节都有独立的公司负责运作.
指令集:如ARM由ARM公司运作、Intel&AMD共享x86指令集、开源的RISC-V由基金会运作.
微架构:主流的公司由Apple、Qualcomm、NVIDIA、AMD等,商业上这些需要给ARM支付“架构授权费”,买的是 ARM 语言的使用权, 然后自己雇佣顶级架构师设计芯片电路.
制造:这个环节的公司被称为Foundry(晶圆代工厂).主流的工厂有TSMC、Samsung Electronics、Intel、SMIC(中芯国际)
封装:晶圆厂雕刻出来的只是一张布满晶体管的薄硅片(晶圆),必须把它切割成小方块,接上引脚,套上保护壳(散热盖或塑料壳),变成我们见到的黑方块芯片,并进行最终测试. 主流工厂有ASE日月光, Amkor、JCET(长电科技)
现实中, 通过组合不同的节点, 形成了三类商业模式:
- 有的公司将全产业链一起搞, 典型的如Intel.
- 更多的是将设计和制造分开,也就是代工模式,典型的如苹果(Apple)、高通(Qualcomm)、AMD、Synopsys
- 还有一些直接把指令集和微架构一起买下来,如ARM将“语言(指令集)”和自己也顺便画好了很多现成的电路图(业内叫 ARM 公版微架构,比如 Cortex-X4、Cortex-A720)一起打包卖给MediaTek(联发科).
- 有些把制造和封装放在一起搞. 由于最新的 AI 芯片(如英伟达 B200)必须使用极高难度的先进封装(如台积电的 CoWoS 技术),传统的封测厂做不了。因此,台积电和Intel自己也建立了自己的超级先进封装厂。如今最顶级的 AI 芯片,制造和封装都直接在台积电内部一站式搞定。
但不得不提的是两家公司, 他们几乎把四个环节几乎全包, 暂且定义为IDM(垂直整合制造)模式:
- Intel:自己参与x86指令集更新 → 自己设计微架构 → 自己的晶圆厂制造 → 自己的封装厂封测。
- Samsung:虽然用的是ARM的指令集,但它自己有微架构团队(部分产品) + 全球第二的晶圆制造厂 + 庞大的封装测试厂。
还有两个点其实可以了, 给制造环节提供工业母机的ASML、以及当下英伟达和台积电的先进封装(CoWoS) 是如何定义全球AI算力的供给, 限于篇幅, 以后在聊.
指令集与机器码、字节码
根据指令集生成机器码
最开始高级语言如C、C++、Go、Rust,在完成开发之后的整个链路是:高级语言 -> 编译器 -> 汇编 -> 机器码.
具体来说就是, 当你在一台Intel (x86-64 架构) 电脑上编译一段C/C++代码时,编译器(如GCC或Clang)会执行以下操作:
- 它会去查阅 x86 的“字典”(指令集)。
- 它会将你的
int a = b + c;直接翻译成 x86 的物理机器码(例如一串代表ADD的二进制0101...)。这里翻译, 详细来说是两个动作: - 一、编译器将复杂的代码逻辑拆解并翻译成单条动作,这一步用的是汇编语言.也就是说编译器的工作就是要把这些人类能看懂的代码,变成特定芯片的汇编语言。
- 二、汇编器根据指令集,将汇编之后的那些动作替换成二进制的机器码. 所以汇编是跟芯片指令集强相关的,也就是说ARM 芯片的汇编和 x86 芯片的汇编完全是两种语言.
- 更致命的是优化:编译器会根据 Intel 芯片特有的寄存器数量、缓存(Cache)大小、甚至特定的硬件加速指令(如 AVX512)来疯狂优化这段代码,让它在这颗 Intel 芯片上跑得飞快。
现代的编译器通常将传统的编译和汇编集成到同一个工具链中, 如汇编器(Assembler)和链接器(Linker),当你按下编译按钮时,编译器在内存里把高级语言转成汇编代码后,直接就调用内置的汇编模块把它变成了机器码(
.exe 或 .o 文件),不需要你手动去干预中间的汇编步骤。字节码与运行时
为什么多出来一个字节码?
这里从技术发展史的角度找找原因.
最开始1950s - 1960s年代, 程序员直接用汇编甚至机器码写程序,换一台电脑,所有的代码就得全部重写,因为那个时候每台机器的指令集都不一样.
进入1970s - 1980s年代,以C/C++为代表, 高级语言的引入极大降低了开发的难度和成本,这个时候引入了静态编译器和轻度/隐形运行时(如libc), 但此时的痛点是软件无法跨平台(换个芯片就得重新编译),开发者必须手动管理内存.
到了1990s - 2000s年代, 随着互联网爆发, 人们急需“一次编写,到处运行”的能力,因为那个年代操作系统和芯片远比今天多的多. 于是在操作系统之上, 新增了一层虚拟机,
这样对上, 高级语言先编译成虚拟机能够运行的字节码,配合上GC(垃圾回收)解放开发者内存管理,构成了运行时.对下,由虚拟机专门处理针对不同OS、芯片的从字节码到机器码的转换, 换句话说,虚拟机,这里一JVM为例, 虚拟机只做一件事:把编译好的 Java 字节码(
.class),通过内部的解释器或 JIT 即时编译器,动态翻译成当前操作系统和 CPU 能听懂的物理机器码。从而实现一次编写各种环境运行, 代价是由于多一层实时翻译,应用变重,运行变慢,本质上就是拿空间换效率.

多扩展一点: 虽然都叫虚拟机, 但运行时的虚拟机和云计算中虚拟机是两回事,前者是运行在操作系统之上 应用/计算机语言层的概念,虚拟的是一个“假芯片(字节码执行环境);而后运行在硬件/系统层,虚拟的是虚构的是一台“假电脑“.
到了2010s之后, 运行时又朝着即时/前时编译与智能运行时发展. 典型代表就是现代 V8 引擎(JavaScript/Node.js)、现代 JVM、Go 语言运行时。发展的底层逻辑是, 在运行时可以根据代码的执行频率不同, 将执行高频的代码,动态编译为更高效的字节码去运行,这也就是目前最为流行的JIT编辑器技术.
所以, 简单理解就是, 字节码是新增了一层运行时中,虚拟机构建出来的中间产物.形成了这样的结构, 高级语言 → 字节码 → 汇编层 → 机器码. 对比下没有运行时的原生语言C/C++的编译器执行的逻辑是高级语言 → 汇编层 → 机器码.
围绕这个中间产物,搭配上更精细的内存管理与动态效率优化, 就构成了运行时最内核的内容.
为了更好理解这个运行时, 稍微上升下高度.
软件层不同的高级语言背后,对应的不同的任务需求和应用场景.硬件层不同的微架构对应不同的电路性能, 为了解决“人类编写软件的复杂性”与“硬件的多样性”之间的矛盾, 逐渐的在高级语言和指令集之间, 在操作系统之上, 演化出了新的一层: 运行时.
有了以上的认识, 这里给到两个高级语言下的, 从应用层到指令集层架构:
Java版本:

JS/TS版本:

不同语言技术栈中, 离开发者写的业务代码逻辑最近的就是各种框架, 如果把框架也独立成层, 那它大概的位置在图中的应用和运行时之间.
再补上传统原生语言的架构图, 放在一起方便对比

讨论到这里, 当你的大脑里有了指令集、微架构、运行时、虚拟机、操作系统、内存管理、垃圾回收、线程调度等这些基本概念和直接产生的背景和逻辑之后,你可能就会悟到这些点:
- 整个计算机领域,软件与硬件最清晰的那条边界是指令集.
- Java所谓的一次编写到处运行,实现的底层逻辑是Java官方在不同的OS和芯片上,提前定制好了不同芯片平台的虚拟机.
- 高级语言主流分为两代流派:虚拟机派如Java、JS/TS、Python,这些更多用在业务端如前端、大数据、人工智能、企业级业务系统;不带虚拟机的原生编译派如Go、Rust、C/C++,这些更多用在服务器端,如服务器运维Docker/K8s、区块链、系统级高并发等.
- 当程序在电脑上双击启动的那一刻,运行时(Runtime) 轰然启动,它在内存里盖起了一座大楼,里面包含虚拟机、垃圾回收器和内存管理器。程序就住在这座大楼里,无忧无虑地运行,直到生命周期结束。
读到这里的朋友, 有了以上知识的梳理和加持, 你是否能快速的理解沙箱、Apple的 MLX框架等概念?
- Author:Taylor
- URL:https://www.taylorblog.top/article/3fe2186a-d85d-80da-b9b7-dd5ee74c4fb5
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts








