CPU的发展历程、架构与指令

1、CPU发展历程

在一个电子系统中,处理器占据最重要的位置,被称为中央处理器单元:CPU(Central Processing Unit)。它从IO设备读取数据,处理,然后显示出来。CPU的发展有两个路线:MPU、MCU。

  • MPU只是一个处理器,需要搭配内存等非常多的其他外设才可以构成一个系统;
  • MCU内部有处理器、内存、Flash及其他模块,仅仅需要搭配少量外设就可以构成一个系统。

(1)MPU这一路线,在上世纪80年代非常流行,那时的微型计算机、游戏机都是使用MPU。后来MPU逐渐式微,可以认为MPU发展到现在只剩下了intel、AMD两家公司,主要用于个人电脑中。芯片越来越复杂,逐渐强大,称之为MPU似乎不恰当,现在都直接称为CPU。

  • MPU即微处理器(Microprocessor Unit)

(2)MCU这一路线,就是把CPU、内存、Flash都集中在一个芯片上,它再搭配其他外设备就可以构建一个完整的系统。MCU的发展经历过8位8051单片机、16位AVR单片机、32位STM单片机等等。

  • 我们使用的51单片机、STM32单片机,一般都只是用来处理比较简单的事务,应用场景比较单一。
  • 我们使用的手机,里面的主芯片更加复杂,它既含有CPU,也含有用于数据处理的DSP、用于图形显示的GPU。使用这类主芯片设计出来的电路板更加复杂,它的性能甚至不弱于个人电脑。

(3)为了跟个人电脑相区分,这些使用含有CPU电子产品,被称为嵌入式系统、嵌入式产品、嵌入式板卡。

2、CPU、MPU和MCU

嵌入式板卡就是一台形状不一样的电脑,跟电脑相比,可以引入几个概念:

(1)CPU(Central Processing Unit):

  • 中央处理器,在PC机它是一个独立的芯片。
  • 在嵌入系统中,它是芯片里的一个单元,跟其他模块比如USB、UART、音频组成一个芯片。

(2)MPU(Mircro Processor Unit):

  • 微处理器单元,其作用等同于在PC上使用的CPU,它也只仅仅是一个处理器,需要配合内存、Flash等外设才可以使用。
  • 现在,除了个人电脑上的CPU,基本上找不到MPU了。并且我们一般不把电脑上的CPU当作MPU,毕竟它也是挺大的,并不"微小"。
  • 但是,在现实工作中,有时会遇到把A pplication Processors称为MPU

(3)Application Processors:

  • Application Processors 即应用处理器,用于手机、平板当中;
  • 用来处理显示、输入,运行用户的程序等。
  • 它跟MCU类似,也是集成了处理器和各类模块;但是它的性能已经极大提升,可以外接几GB的内存、几GB的Flash。
  • Application Processors 的概念可以扩展到其他场景,不再局限于手机、平板。
  • 跟MCU相比,Application Processors的不同点:
    • 集成了更多的模块:比如用于数据处理的DSP、用于图形显示的GPU,甚至有多个处理器。

    • 运行的操作系统不同:MCU上一般不运行操作系统,或是运行RTOS;Application Processors基本上都会运行比较复杂的操作系统(比如Linux),在操作系统上运行多个APP。

(4)SoC

  • SoC(System on Chip),即片上系统。SoC的本意是在一个芯片上就可以搭建完整的系统。
  • 但是这个概念在日常使用中比较宽泛:MCU芯片也可以称为SoC,Application Processors也可以称为SoC,即使它们还必须外接内存/Flash等外设才可以运行。
  • 在以前的文档中涉及SoC时,意指比较复杂的系统。这时候MCU不属于SoC,因为MCU比较简单;但是时代在发展,MCU也越来越复杂了,所以把MCU也当作SoC也是可以的。

3、哈佛架构和冯诺伊曼架构

CPU架构可以分为哈弗架构与冯诺伊曼架构。

(1)哈佛架构

  • 指令与数据分开存放,CPU可以同时读入指令、读写数据。

  • 现在的ARM属于哈佛结构。

(2)冯诺伊曼架构

  • 指令、数据混合存放,CPU依次读取指令、读写数据,不可同时操作指令和数据。

  • PC机、服务器属于冯诺伊曼架构。

4、指令集: CISC和RISC

(1)CISC,即复杂指令集计算机。

  • 指令数量多:包含数百条复杂指令,涵盖多种操作(如内存访问、算术运算、字符串处理等)。
  • 单条指令功能强:一条指令可能完成多个操作(如"从内存加载数据并计算")。
  • 变长指令:指令长度不固定,可能占用多个字节。
  • 应用:x86架构(Intel/AMD处理器)。

(2)RISC,即精简指令集计算机。

  • 指令数量少:通常只有几十条简单指令,每条指令功能单一。
  • 单条指令功能简单:每条指令仅完成一个基本操作(如"加法"或"内存加载")。
  • 定长指令:指令长度固定(如32位或64位),便于解码。
  • 应用:ARM、RISC-V、MIPS架构。

(3)举一个例子,下图是实现这样的乘法运算:a = a * b。它需要4个步骤:读出a的值、读出b的值、相乘、写结果到a。

  • 使用CISC提供的乘法指令,只需要一条指令即可完成这4步操作。当然,这一个指令需要多个CPU周期才可以完成。
  • 而RISC不提供"一站式"的乘法指令,需调用四条单CPU周期指令完成两数相乘:内存a加载到寄存器,内存b加载到寄存器,两个寄存器中数相乘,寄存器结果存入内存a。
  • 按照此思路,早期的设计出的RISC指令集,指令数是比CISC少些。后来,很多RISC的指令集中指令数反超了CISC。因此,应该根据指令的复杂度而非数量来区分两种指令集。
  • 当然,CISC也是要通过操作内存、寄存器、运算器来完成复杂指令的。它在实现时,是将复杂指令转换成了一个微程序,微程序在制造CPU时就已存储于微服务存储器。一个微程序包含若干条微指令(也称微码),执行复杂指令时,实际上是在执行一个微程序。这也带来两种指令集的一个差别,微程序的执行是不可被打断的,而RISC指令之间可以被打断,所以理论上RISC可更快响应中断。
相关推荐
vx-bot55566614 分钟前
企业微信接口在数据工程与分析场景中的架构应用
架构·企业微信
整点薯条77837 分钟前
2026 智能体技术解析:核心架构、能力边界与学习价值评估
学习·架构
JMchen1231 小时前
AI编程范式转移:深度解析人机协同编码的实战进阶与未来架构
人工智能·经验分享·python·深度学习·架构·pycharm·ai编程
代码游侠1 小时前
学习笔记——Linux字符设备驱动
linux·运维·arm开发·嵌入式硬件·学习·架构
梦梦代码精1 小时前
Gitee 年度人工智能竞赛开源项目评选揭晓!!!
开发语言·数据库·人工智能·架构·gitee·前端框架·开源
赋创小助手2 小时前
NVIDIA B200 GPU 技术解读:Blackwell 架构带来了哪些真实变化?
运维·服务器·人工智能·深度学习·计算机视觉·自然语言处理·架构
勒索病毒前线2 小时前
【运维实战】拒绝删库跑路与勒索病毒:详解 3-2-1 备份架构与技术落地
架构·数据恢复·数据安全·数据备份·勒索病毒
沉睡的无敌雄狮2 小时前
拆解 AdAgent 核心架构:Brain-Bus-Plugin 如何实现营销全域集成
架构
C澒2 小时前
FE BLL 架构:前端复杂业务的逻辑治理方案
前端·架构·前端框架·状态模式
玄同7652 小时前
LangChain 1.0 框架全面解析:从架构到实践
人工智能·深度学习·自然语言处理·中间件·架构·langchain·rag