目录
- 通用处理器
- 数字信号处理器
- 专用处理器
通用处理器
我们常听说的中央处理器CPU就是一种典型的通用处理器(GPP)。这种处理器多使用片上系统(SoC)的设计理念,在处理器上集成各种功能模块,每一种功能都是用硬件描述语言如VHDL、Verilog等设计,然后在片上系统里用电路实现。在SoC中,各个功能模块是利用芯片的一部分物理资源去实现各个特定的功能如通信、加解密、数字信号处理等。这些功能模块会用类似搭积木搭方式组合在一起,共同组成一个功能强大的通用处理器。
我们的平板电脑和智能手机中大量使用的ARM cortex A架构的SoC就是一个非常经典的通用处理器SoC的实例。ARM架构的功耗很低,采用这种架构的处理器除了集成多核外,可能还集成了图形处理器、音视频编解码器、浮点运算协处理器、GPS、WiFi、BLE、基带等一系列功能。如下图展示的高通Snapdragon 835就集成了刚刚提到的各种模块。
中央处理器的体系结构可以分为冯诺依曼和哈佛两类。冯诺依曼架构是一种将程序指令存储器和数据存储器合在一起设计的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。而哈佛架构将程序指令和数据分开存储,指令和数据可以有不同的数据宽度。此外,哈佛架构还采用了独立的程序总线和数据总线,分别作为CPU与每个存储器之间的专用通信路径,具有较高的执行效率。
许多芯片,例如前文提到的ARM,采用的是哈佛架构。它具有独立的地址总线和数据总线,两条总线由程序存储器和数据存储器分时共用。因此,改进的哈佛结构针对程序和数据,其实没有独立的总线,而是使用公用数据总线来完成程序存储模块或数据存储模块与CPU之间的数据传输,公用的地址总线来寻址程序和数据。
不少芯片厂商选择全面拥抱这一体系结构。如Apple、Huawei、Qualcomm等。当然还有一些厂商还在坚持冯诺依曼架构的设计路线,其中的代表就是大名鼎鼎的Intel,值得一提的是risc(精简指令集)的开山祖师MIPS公司的MIPS系列处理器使用的也是冯诺依曼架构。
从指令集的角度来讲,中央处理器也可以分为两类,即RISC(精简指令集计算机)和CISC(复杂指令集计算机)。CSIC强调增强指令的能力、减少目标代码的数量,但是指令复杂,指令周期长;而RISC强调尽量减少指令集、指令单周期执行,但是目标代码会更大。ARM、MIPS、PowerPC等CPU内核都采用了RISC指令集。目前,RISC和CSIC两者的融合非常明显。
数字信号处理器
数字信号处理器(DSP)是一种专为通信、图像、音视频等复杂应用的算法设计的处理器。它的特点是包含独立的硬件乘法器。DSP的乘法指令一般在单周期内完成,且通过分治思想和专门电路的设计优化了卷积、数字滤波、FFT(快速傅里叶变换)、相关矩阵运算等算法中的大量重复乘法。
DSP分为两类,一类是定点DSP,另一类是浮点DSP。浮点DSP的浮点运算用硬件来实现,可以在单周期内完成,因而其浮点运算处理速度高于定点DSP。而定点DSP只能用定点运算模拟浮点运算。
全球绝大多数的DSP芯片目前都由德州仪器(TI)、美国模拟器件公司(ADI)生产。高端DSP芯片多用于医疗成像、军工、测试和自动化的应用。但我相信未来几年,我们可能会更多看到中国厂商设计制造的DSP芯片。
专用处理器
除了上述的两种芯片之外,还有一种针对特定应用设计的专用处理器(ASP)。ASP由专用集成电路ASIC组成,专门针对特定应用而设计,不具备也不需要灵活的编程能力。使用ASIC完成同样的功能往往比直接使用CPU资源或CPLD(复杂可编程逻辑器件)/FPGA(现场可编程门阵列)来得更廉价且高效。因为可以按照特定需求增加或减少功能模块,加强某一方面的能力。如GPU就通过减小每个核心的资源,增加核心的数量,加强了处理器处理大量同种运算如浮点运算的能力,使之在AI领域中的表现远强于通用处理器。