指令系统分类
两类指令系统体系结构:
CISC
(Complex Instruction Set Computer
,复杂指令集计算机)- 可变的指令长度,支持更复杂的指令长度
RISC
(Reduced Instruction Set Computer
,精简指令集计算机)- 固定的指令长度(32-bit,即1 word)
- 简单的寻址模式
- 指令数量少,指令功能简单(一条指令只完成一个操作)
- 只有
Load
和Store
指令可以访问存储器
指令系统发展
- 微指令(
Micro-Instructions
/Micro-Ops
) x86核心问题是要始终向前兼容 x86 的指令集,那么我们能不能不修改指令集,但是让CISC
风格的指令集,用RISC
的形式在 CPU 里面运行呢? 从 Pentium Pro 时代开始,Intel 就开始在处理器里引入了微指令(Micro-Instructions/Micro-Ops)架构。而微指令架构的引入,也让 CISC 和 RISC 的分界变得模糊了。 在微指令架构的 CPU 里面,编译器编译出来的机器码和汇编代码并没有发生什么变化。但在指令译码的阶段,指令译码器“翻译”出来的,不再是某一条 CPU 指令。译码器会把一条机器码,“翻译”成好几条“微指令”。这里的一条条微指令,就不再是CISC
风格的了,而是变成了固定长度的RISC
风格的了。
这些 RISC
风格的微指令,会被放到一个微指令缓冲区里面,然后再从缓冲区里面,分发给到后面的超标量,并且是乱序执行的流水线架构里面。不过这个流水线架构里面接受的,就不是复杂的指令,而是精简的指令了。在这个架构里,我们的指令译码器相当于变成了设计模式里的一个“适配器”(Adaptor
)。这个适配器,填平了 CISC
和 RISC
之间的指令差异。
为减少译码时间,Intel 就在 CPU 里面加了一层 L0 Cache
。这个 Cache 保存的就是指令译码器把 CISC 的指令“翻译”成 RISC 的微指令的结果。于是,在大部分情况下,CPU 都可以从 Cache 里面拿到译码结果,而不需要让译码器去进行实际的译码操作。这样不仅优化了性能,因为译码器的晶体管开关动作变少了,还减少了功耗。
CPU体系结构
四大CPU体系结构:
x86
/Atom
x86或80x86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。 X86则是基于复杂指令集(CISC
)的架构,Atom是x86或者是x86指令集的精简版。 Intel Atom(中文:凌动,开发代号:Silverthorne)是Intel的一个超低电压处理器系列。ARM
ARM架构,过去称作进阶精简指令集机器(Advanced RISC Machine
,更早称作:Acorn RISC Machine),是一个32
位精简指令集(RISC
)处理器架构,其广泛地使用在许多嵌入式系统设计。MIPS
MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages
),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS 采用精简指令系统计算结构(RISC
)来设计芯片。PowerPC
PowerPC 是一种精简指令集(RISC
)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的IBM PowerPC 601 微处理器POWER(Performance Optimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强RISC性能优化”)架构。
CPU开源
MIPS
https://www.mips.com/ 2019 年MIPS
宣布开源。RISC-V
https://riscv.org/RISC
概念的发明人,图灵奖的得主大卫·帕特森教授从伯克利退休之后,成了RISC-V
国际开源实验室的负责人,开始推动RISC-V
这个“CPU 届的 Linux”的开发。
市场前景
- 台式机和服务器,采用
x86
处理器较多, 目前基本由Intel
和AMD
占据,世界上最大的两家x86
和x86-64
的CPU厂家。 - 移动端,安卓支持三类处理器(CPU):
ARM
、x86
和MIPS
。ARM
无疑被使用得最为广泛。x86
因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小。MIPS
在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低。
by 斯武丶风晴 https://my.oschina.net/langxSpirit