引言
伯克利教授 Patterson 曾领导了 RISCⅠ的开发,他在其计算机体系结构一书1中提出了 “Eight Great Ideas in Computer Architecture”,分别是:
- Design for Moore’s Law
- Use Abstraction to Simplify Design
- Make the Common Case Fast
- Performance via Parallelism
- Performance via Pipelining
- Performance via Prediction
- Hierarchy of Memories
- Dependability via Redundancy
当然 CPU 背后的智慧也许远不止这些,因为 CPU 应该是最为复杂的数字电路了,也是发展速度最快的技术之一。微处理器自诞生后其性能大约以每年35%的增长速度增长。总体趋势是时钟频率越来越高,带宽越来越高,管脚越来越多。这些进步一方面得益于摩尔定律推动晶体管不断缩小,另一方面得益于计算机体系结构的创新。当然近些年由于功耗和散热问题,单核处理器性能增长的速度有所放缓,时钟频率基本不怎么提高了2。
在谈论 CPU 之前应该先明确几个概念:CPU、微处理器(Microprocessor)、微处理器核、SoC(System on chip)。CPU 称为中央处理器单元,简称为处理器。而微处理器与 CPU 在原理上其实没有多大区别,只是叫法习惯的问题。从历史发展来看微处理器的概念是随着集成电路的发展产生的,因为集成电路可以使设备越做越小,在集成电路出现之前的大型机里,中央单元还是叫 CPU 比较合适,自然不能称为微处理器。今天两个概念的区分度不是很高。至于 core 是处理器的核心部分,而 SoC 是将系统集成在了一块芯片上,包括了 CPU、GPU、DRAM、Modem(通信模块),ISP(图像处理),DSP(数字信号处理),Codec(编码器)等等。而下面要谈的 CPU 架构,主要是指 core 部分。
经过几十年的发展 CPU 架构已经有几十种了,比较出名的有 Intel x86、ARM、MIPS、SPARC、Power、RISC-V 等。那么大家谈论架构的时候指的是什么呢?一般来说 CPU 架构分为两种:指令集架构与微架构。指令集,顾名思义是一组指令的集合,而指令是指处理器进行操作的最小单元(譬如加减乘除操作或者读/写存储器数据)。有了指令集架构,便可以使用不同的处理器硬件实现方案来设计不同性能的处理器。处理器的具体硬件实现方案称为微架构(Microarchitecture )------微架构又称为微体系结构/微处理器体系结构,是在计算机工程中,将一种给定的指令集架构在处理器中执行的方法。一种给定指令集可以在不同的微架构中执行。
所以说指令集是 CPU 的灵魂,指令集架构是区分不同 CPU 的主要标准。
CISC 与 RISC
指令集架构分为复杂指令集架构(Complex instruction set computer)和精简指令集架构(Reduced instruction set computer)。CISC 以 X86 为代表,由于采取向前兼容的设计策略,指令集复杂,有许多专用的特殊指令,并且指令的长度也不是固定的。后来人们意识到大约20%的计算机指令完成大约80%的工作。这种想法促进了 RISC 架构的发展。
RISC 类 CPU 的指令功能单纯,种类较少。相对应地,CISC 类 CPU 的指令功能复杂,种类繁多。RISC 指令精简的好处是 CPU 内