CPU ? MPU ? MCU
1 CPU(Central Processing Unit,中央处理器) ........................... 1
1.1 CPU的组成 .................................................... 2 1.2 CPU的工作原理 ................................................ 2 2 MPU(Microprocessor Unit,微处理器) ................................. 4
2.1 MPU的组成 .................................................... 5 2.2 MPU的分类 .................................................... 5 2.3 MPU的体系结构:冯·诺伊曼结构和哈佛结构 ...................... 5 2.4 MPU的典型代表:DSP(Digital Signal Processor,数字信号处理器) . 6 3 MCU(Microcontroller Unit,微控制器/单片机) ......................... 7
3.1 MCU的概念 .................................................... 7 3.2 MCU的概述 .................................................... 8 3.3 MCU的分类 .................................................... 9 3.4 MCU的架构:CISC架构和RISC架构 ................................ 9 3.5 常见的MCU ................................................... 10 3.6 MCU的典型代表:ARM ........................................... 14 4 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件) ........ 15 5 FPGA(Field Programmable Gate Array,现场可编程门阵列) ............. 15 6 DSP,ARM,FPGA的区别 ................................................ 15
1 CPU(Central Processing Unit,中央处理器)
中央处理器(CPU)是电子计算机的主要器件之一,其功能主要是解释计算机指令及处理计算机软件中的数据。
1.1 CPU的组成
CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。
运算器:进行算术运算和逻辑运算(部件:算数逻辑单元、累加器、寄存器组、路径转换器、数据总线)。
控制器:控制程序的执行,包括对指令进行译码、寄存,并按指令要求完成所规定的操作,即指令控制、时序控制和操作控制。复位、使能(部件:计数器、指令暂存器、指令解码器、状态暂存器、时序产生器、微操作信号发生器)。
寄存器:用来存放操作数、中间数据及结果数据。 1.2 CPU的工作原理
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,将指令分解成一系列的微操作,然后发出各种控制命令,执行微操作,从而完成一条指令的执行。可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。
注:指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。
第一阶段:提取
从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置,程序计数器保存供识别目前程序位置的数值。换言之,程序计数器记录了CPU在目前程序里的踪迹。
提取指令之后,程序计数器根据指令长度增加存储器单元。指令的提取必须常常从相对较慢的存储器寻找,因此导致CPU等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构。
第二阶段:解码
CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据CPU的指令集架构(Instruction Set Architecture, ISA)定义将数值解译为指令。
一部分指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。这样的运算目标也许提供一个常数值(即立即值),或是一个空间的定址值:暂存器或存储器位址,以定址模式决定。
在旧的设计中,CPU里的指令解码部分是无法改变的硬件设备。不过在众多抽象且复杂的CPU和指令集架构中,一个微程序时常用来帮助转换指令为各种形态的讯号。这些微程序在已成品的CPU中往往可以重写,方便变更解码指令。
第三阶段:执行
在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。
例如,要求一个加法运算,算数逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU的处理而言过大的结果,在标志暂存器里,运算溢出(Arithmetic Overflow)标志可能会被设置。