CPU与ISA
CPU ,全称为中央处理器单元,简称为处理器,是一个不算年轻的概念 早在 20 世纪 60 年代便己诞生了第一款 CPU。
不严谨地说,CPU=Soc的一种=处理器内核core和其他的设备或者存储器。
在传统的计算机体系结构分类中,处理器应用分为 3 个领域:服务器领域、PC领域和嵌入式领域。
CPU 灵魂一一指令集架构 Clnstructio Set Architecture, ISA),它是一组指令的集合,而指令是指处理器进行操作的最小单元(譬如加减乘除操作或者读/写存储器数据)。
- 指令集架构,有时简称为“架构”或者称为“处理器架构”,是软硬件的“接口”,是区分不同CPU的主要标准
- 处理器的具体硬件实现方案称为微架构(Microarchitecture)
指令集分为复杂指令集CISC与精简指令集RISC:
- CISC 不仅包含了处理器常用的指令,还包含了许多不常用的特殊指令。其指令数目比较多,所以称为复杂指令集。
- RISC 只包含处理器常用的指令,而对于不常用的操作,则通过执行多条常用指令的方式来达到同样的效果。由于其指令数目比较精简,所以称为精简指令集。
基本上所有现代指令集架构都选择使用RISC架构。
除了CISC与RISC之分,处理器指令集架构的位数也是一个重要的概念。通俗来讲,处理器架构的位数是指通用寄存器的宽度,其决定了寻址范围的大小、数据运算能力的强弱。譬如32位架构的处理器,其通用寄存器的宽度为32位,能够寻址的范围为2的32方,即4GB的寻址空间,运算指令可以操作的操作数为32位。
处理器指令集架构的宽度和指令的编码长度无任何关系。并不是说64位架构的指令长度为64位(这是一个常见的误区)。从理论上来讲,指令本身的编码长度越短越好因为可以节省代码的存储空间。因此即便在64位的架构中,也大量存在16 位编码的指令且基本上很少出现过 64 位长的指令编码。
本系列主要以RISC-V(精简指令集RISC中的一种)为主展开介绍。有关RISC-V的诞生,有兴趣的读者可以自行到网络中查阅文章《伯克利希望将 RISC-V 开源架构推向主流》。
本系列还将结合开源的蜂鸟E200(基于RISC-V架构的Soc)实例详细介绍如何设计一款面向嵌入式领域的RISC-V处理器。