1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
CPU ? MPU ? MCU
1 CPU(Central Processing Unit,中央处理器) ............................. 1
1.1 CPU的组成 ...................................................... 1 1.2 CPU的工作原理 .................................................. 2 2 MPU(Microprocessor Unit,微处理器) .................................. 3
2.1 MPU的组成 ...................................................... 4 2.2 MPU的分类 ...................................................... 4 2.3 MPU的体系结构:冯·诺伊曼结构和哈佛结构 ........................ 4
2.4 MPU的典型代表:DSP(Digital Signal Processor,数字信号处理器) ....... 5 3 MCU(Microcontroller Unit,微控制器/单片机) ............................... 6
3.1 MCU的概念 .......................................................... 6 3.2 MCU的概述 .......................................................... 6 3.3 MCU的分类 .......................................................... 7 3.4 MCU的架构:CISC架构和RISC架构 ..................................... 7 3.5 常见的MCU .......................................................... 7 3.6 MCU的典型代表:ARM ................................................. 11 4 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件) .............. 11 5 FPGA(Field Programmable Gate Array,现场可编程门阵列) ................... 11 6 DSP,ARM,FPGA的区别 ...................................................... 12
1 CPU(Central Processing Unit,中央处理器)
中央处理器(CPU)是电子计算机的主要器件之一,其功能主要是解释计算机指令及处理计算机软件中的数据。
1.1 CPU的组成
CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。 运算器:进行算术运算和逻辑运算(部件:算数逻辑单元、累加器、寄存器组、路径转换器、数据总线)。
1
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
控制器:控制程序的执行,包括对指令进行译码、寄存,并按指令要求完成所规定的操作,即指令控制、时序控制和操作控制。复位、使能(部件:计数器、指令暂存器、指令解码器、状态暂存器、时序产生器、微操作信号发生器)。
寄存器:用来存放操作数、中间数据及结果数据。 1.2 CPU的工作原理
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,将指令分解成一系列的微操作,然后发出各种控制命令,执行微操作,从而完成一条指令的执行。可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。
注:指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。
第一阶段:提取
从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置,程序计数器保存供识别目前程序位置的数值。换言之,程序计数器记录了CPU在目前程序里的踪迹。
提取指令之后,程序计数器根据指令长度增加存储器单元。指令的提取必须常常从相对较慢的存储器寻找,因此导致CPU等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构。
第二阶段:解码
CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据CPU的指令集架构(Instruction Set Architecture, ISA)定义将数值解译为指令。
一部分指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。这样的运算目标也许提供一个常数值(即立即值),或是一个空间的定址值:暂存器或存储器位址,以定址模式决定。
在旧的设计中,CPU里的指令解码部分是无法改变的硬件设备。不过在众多抽象且复杂的CPU和指令集架构中,一个微程序时常用来帮助转换指令为各种形态的讯号。这些微
2
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
程序在已成品的CPU中往往可以重写,方便变更解码指令。
第三阶段:执行
在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。
例如,要求一个加法运算,算数逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU的处理而言过大的结果,在标志暂存器里,运算溢出(Arithmetic Overflow)标志可能会被设置。
第四阶段:写回
以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。
许多指令也会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。
例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志暂存器上设置一个数值。这个标志可由随后的跳转指令来决定程式动向。
在执行指令并写回结果之后,程序计数器的值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。如果完成的是跳转指令,程序计数器将会修改成跳转到的指令位址,且程序继续正常执行。许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。这个部分一般涉及“经典RISC管线”,那些实际上是在众多使用简单CPU的电子装置中快速普及(常称为微控制器Microcontroller)。
2 MPU(Microprocessor Unit,微处理器)
就物理性来说,MPU就是一块集成了数量庞大的微型晶体管与其他电子组件的半导体集成电路(Integrated Circuit, IC)芯片。
微处理器(MPU)通常代表一个功能强大的CPU,但不是为任何已有的特定计算目的而设
3
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
计的芯片。MPU与传统的CPU相比,具有体积小、重量轻和容易模块化等优点。
2.1 MPU的组成
MPU的组成部分有:算术逻辑单元(ALU,Arithmetic Logical Unit);累加器和通用寄存器组;程序计数器;运算器;时序和逻辑控制电路;数据和地址总线。其中运算器和控制器是其主要组成部分。
MPU能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。
常见的MPU有Motorola的68K系列和Intel的X86系列。 2.2 MPU的分类
根据处理对象的不同分类:
用作处理通用数据时,叫作中央处理器(Central Processing Unit, CPU)这也是最为人所知的应用(如:Intel Pentium CPU);
专用于作图像数据处理的,叫作图形处理器(Graphics Processing Unit, GPU)(如Nvidia GeForce 6150 GPU);
用于音频数据处理的,叫作音频处理器(Audio Processing Unit, APU)(如Creative emu10k1 APU)等等。
2.3 MPU的体系结构:冯·诺伊曼结构和哈佛结构 冯·诺伊曼结构
冯·诺伊曼结构(或普林斯顿结构)是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
目前使用冯·诺伊曼结构的中央处理器和微控制器有很多。除了上面提到的英特尔公司的8086,英特尔公司的其他中央处理器、安谋公司的ARM7、MIPS公司的MIPS处理器也采用了冯·诺伊曼结构。
哈佛结构
哈佛结构是一种将程序指令存储器和数据存储器分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中
4
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。
哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和Advanced RISC Machines(安谋)公司的ARM9、ARM10和ARM11,51单片机也属于哈佛结构。
2.4 MPU的典型代表:DSP(Digital Signal Processor,数字信号处理器)
DSP(Digital signal processor)是一种特殊结构的CPU,有自己的完整指令系统;它专门用于处理数字信号的各种功能,如FFT、数字滤波算法、加密算法和复杂控制算法等。其工作原理是,接受模拟信号并转换成‘0’和‘1’的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,包括控制单元、运算单元、各种寄存器以及一定数量的存储单元等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开(哈佛结构),可以同时访问指令和数据; (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
5