简介

处理器一般指中央处理器,中央处理器(CPU, Central Processing Unit)是一块超大规模的集成电路,是一台计算机的核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
大多数现代电路设计都是用信号线上的高电压和低电压来表示不同的位值。
要实现一个数字系统需要三个主要的组成部分:
(1)计算对位进行操作的函数的组合逻辑(ALU);
(2)存储位的存储器元素(寄存器);
(3)控制存储器元素更新的时钟信号。

结构

根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示:

处理器架构设计 计算机处理器架构_主存


CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。如下所示:

处理器架构设计 计算机处理器架构_主存_02

  • 控制单元
    控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
  • 运算单元
    运算单元是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。
  • 存储单元
    存储单元包括CPU片内缓存和寄存器组,是CPU暂时存放数据的地方,里面保存着那些等待处理的数据,或者已经处理过的数据,CPU访问寄存器所用的时间比直接访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度限制,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器作用广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而不同。

工作原理

CPU的工作原理概括如下图:

处理器架构设计 计算机处理器架构_处理器架构设计_03


总的来说,CPU从内存中一条一条地取出指令和相应的数据,按照指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。

更细一点的说,控制单元是CPU的控制中心,CPU需要通过它才知道下一步做什么,也就是执行什么指令,控制单元包含指令寄存器(IR)、指令译码器(ID)和操作控制器(OC)。当程序被加载进内存后,指令就在内存中了,这个时候说的内存是独立于CPU外的主存设备,也就是PC机中的内存条。指令指针寄存器IP指向内存下一条待执行指令的地址,控制单元根据IP寄存器的指向,将主存中的指令加载到指令寄存器,这个指令寄存器也是一个存储设备,不过集成在CPU内部。指令从主存到达CPU后只是一串串010101的二进制串,还需要通过译码器解码,分析出操作码是什么,操作数在哪,之后就是具体的运算单元进行算数运算(加减乘除),逻辑运算(比较,位移)。

CPU指令执行过程大致为:取址(去主存获取指令放到寄存器)→ 译码(从主存获取操作数放到高速缓存L1)→ 执行(运算)

处理器架构设计 计算机处理器架构_寄存器_04


上图中 CPU 内部集成的存储单元 SRAM ,正好和主存中的 DRAM 对应, RAM 是随机访问内存,就是给一个地址就能访问到数据,而磁盘这种存储媒介必须顺序访问,而 RAM 又分为动态和静态两种,静态 RAM 由于集成度较低,一般容量小,速度快,而动态 RAM 集成度较高,主要通过给电容充电和放电实现,速度没有静态 RAM 快,所以一般将动态 RAM 做为主存,而静态 RAM 作为 CPU 和主存之间的高速缓存 (cache),用来屏蔽 CPU 和主存速度上的差异,也就是我们经常看到的 L1 , L2 缓存。每一级别缓存速度变低,容量变大。

处理器的逻辑单元

更细一点,从实现的功能方面看,CPU大致可分为如下八个逻辑单元:
(1)指令寄存器 :它是芯片上的指令仓库,有了它CPU就不必停下来查找计算机内存中的指令,从而大幅提高了CPU的运算速度。
(2)指令译码器 :它负责将复杂的机器语言指令解译成运算逻辑单元(ALU)和寄存器能够理解的简单格式,就像一位外交官。
(3)控制单元 :既然指令可以存入CPU,而且有相应指令来完成运算前的准备工作,背后自然有一个扮演推动作用的角色——它便是负责整个处理过程的操作控制器。根据来自译码单元的指令,它会生成控制信号,告诉运算逻辑单元(ALU)和寄存器如何运算、对什么进行运算以及对结果进行怎样的处理。
(4)寄存器 :它对于CPU来说非常的重要,除了存放程序的部分指令,它还负责存储指针跳转信息以及循环操作命令,是运算逻辑单元(ALU)为完成控制单元请求的任务所使用的数据的小型存储区域,其数据来源可以是高速缓存、内存、控制单元中的任何一个。
(5)逻辑运算单元(ALU) :它是CPU芯片的智能部件,能够执行加、减、乘、除等各种命令。此外,它还知道如何读取逻辑命令,如或、与、非。来自控制单元的讯息将告诉运算逻辑单元应该做些什么,然后运算单元会从寄存器中间断或连续提取数据,完成最终的任务。
(6)预取单元 :PU效能发挥对其依赖非常明显,预取命中率的高低直接关系到CPU核心利用率的高低,进而带来指令执行速度上的不同。根据命令或要执行任务所提出的要求,何时时候,预取单元都有可能从指令高速缓存或计算机内存中获取数据和指令。当指令到达时,预取单元最重要的任务就是确保所有指令均排列正确,然后发送给译码单元。
(7)总线单元 :它就像一条高速公路,快速完成各个单元间的数据交换,也是数据从内存流进和流出CPU的地方。
(8)数据高速缓存 :存储来自译码单元专门标记的数据,以备逻辑运算单元使用,同时还准备了分配到计算机不同部分的最终结果。
通过以上介绍可以看出CPU虽小,方寸之地却能容纳大世界,内部更像一个发达的装配工厂,环环相扣,层层相套。正因为有了相互间的协作配合,才使得指令最终得以执行,才构成了图文并茂、影像结合的神奇数字世界 。