指令集(ISA):指令集是软件和硬件之间的接口,是一套标准规范(以文档的形式发布),并不具备实体,我们可以根据这套规范去设计处理器芯片和对应的软件系统,并最终形成产品。常见指令集如x86(常见于桌面和服务器)、ARM(常见于移动嵌入式、手机平板等)、RISC-V(异军突起的开放指令集)等[4]。
软件和硬件的关系恰如螺母和螺钉。把软件看做是螺母,硬件看做螺钉,那么指令集(ISA)就是螺母和螺钉之间对接的尺寸规范。螺母和螺钉都按照相同的尺寸(也就是同一个规范)去设计,即使是由不同的厂商来生产,也可以保证最终所有的螺母都能拧到螺钉上。
如图1所示,指令集向上承载的是整个软件生态,向下则规范了以处理器芯片为代表的整个硬件生态。根据一份指令集规范,设计一款处理器,其上可以运行同样遵循该指令集规范所编写的软件代码。故而,我们在提到指令集的时候,有时候也指的是其背后的整个软硬件生态系统,包括外围芯片、操作系统、编译器和诸多应用软件(浏览器、游戏软件等)。事实证明,每一种芯片在市场竞争中要取得成功,很大程度上取决于其生态系统。 |