处理器是如何工作的

feature

提到处理器大家都不会陌生,平时人们使用的电脑,手机,里面都有着处理器,也就是CPU,处理器相当于这个设备的大脑,指挥其他硬件工作,处理各种复杂运算,这篇文章将从处理器的硬件模型和编程模型来解释处理器的工作原理。

处理器的硬件模型

首先有一个问题,如何让电路来算数呢?答案就是数字电路

如果想做一个运算,用普通的数字电路就可以实现,比如底下这个:

out=in1+in2*in3+in4*in5*in6;

使用一些加法器和乘法器就可以搭建出以下的电路:

digitalcir1

上面这个电路使用了3个乘法器以及两个加法器。

但是如果需要做另外一个运算:

out=in1+in2+in3+in4*in5+in6

要是需要做这个运算的话,之前搭建的电路已经不能用了,所以就需要搭建另外一个电路

digitalcir2

用数字电路来进行运算有一个坏处,那就是每次要一种新的运算的话,都需要再搭建一个新的电路,这样实在是太浪费了,有没有一种计算设备,只要一个硬件就可以实现以上所有的功能呢?有的!计算机就是为了解决这种计算问题而生的。

每一个复杂的运算都是用一些简单的运算组合而成的,可以用底下这个模型来表示:

输入数据→运算→输出数据

比如a+b=c,那么输入数据就是a,b输出数据是c,运算符是加法

那么,一大堆运算就需要一大堆输入和输出数据喽,要实现这个,首先要有一个储存器把输入数据和输出数据储存起来。

之后,将一些基本运算比如加法器,乘法器放在一起,这个集合就叫做算数逻辑单元(ALU:Arithmetic Logical Unit)

算术逻辑单元(Arithmetic&logical Unit)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由”And Gate”(与门) 和”Or Gate”(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。

最后,就需要一个控制器,这个控制器要去负责把控制储存器中的数据发送到ALU去进行运算,然后再将运算的结果取出来存到储存器中。数据存放在储存器的哪个部位?需要进行什么运算?这些都是一条一条指令来告诉控制器,每一个简单运算都是一条质量,一堆指令的顺序集合就组成了一个有复杂功能的程序。

以上讲解的就是计算机的通用计算模型,下面这个图可以很好地解释:

generalcomputemodelpptx

这个结构就是著名的冯·诺依曼体系结构(von Neumann architecture ),遵循这种结构的计算机被叫做冯诺依曼机,现在所有的计算机都是冯诺依曼机。

von Neumann architecture

可是,与数字电路不同的是,光凭硬件他什么都做不了,除非有了具体的软件。软件实际就是一堆指令序列,决定了这台计算机要完成的功能。相当于硬件当做软件的载体,让软件可以实现功能。

之后,随着集成电路技术不断的发展,人们发现,电路完全可以在一块小 芯片上实现,然后,计算机的基本功能就被转移到了芯片上,这一块芯片,就叫做处理器,再加上各种输入输出设备,就组成了计算机。

处理器的编程模型

在早期年代,软件编写并不是向现在一样,随便一写可以在任何品牌的电脑上面运行。当时软件的编写面向的是硬件徐彤,即使是一家公司的机器,如果不是同一代,那么都是不能使用的,那个年代,软件和硬件耦合度很高,不可分离。

这时候,IBM站了出来,这个公司为了让自己的计算机都可以是用相同的软件而不用去重复编写软件,在他的IBM System/360上面首次引入了ISA的概念。

IBM360

注:System/360是IBM在1964年4月7日,推出的划时代的大型电脑,这一系列是世界上首个指令集可兼容计算机。

ISA(Induction Set Architecture)也被叫做指令集体系结构,这个结构将编程所要了解的硬件信息从硬件系统中抽象了出来,这样开发人员们就可以直接面向处理器的ISA进行编程,而不是只针对一种硬件,他们开发出来的程序就可以不经修改的运行在其他相同ISA的机器上。

现在,在PC领域,常见的Intel和AMD处理器都是基于x86指令集,因此人们不用担心换了更高级的CPU,以前的软件就不能再用的问题,因为所有的PC处理器都采用了基于x86的指令集。但是为什么手机上不能跑电脑的程序呢,因为手机大部分都是基于ARM指令集的。

注:X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC领域。ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。

 

处理器的分层模型

ISA的出现改变了处理器的领域,使得处理器的外部呈现和内部实现可以分离开来。之后处理器被分为三个层次,分别是,指令集体系结构,处理器微架构,处理器物理实现

ISA其实就是我们通常所叫的“架构”(Architecture),这是对处理器的一个抽象的描述,因为比如你说x86处理器,其实要是来具体的,x86涵盖了千千万万个处理器型号。

ISA在处理器中的实现被称为Microarchitecture(微架构),同样是x86的架构,AMD和Intel却各自使用着不同的Microarchitecture。

物理实现就是具体的实现过程,可以用20nm集成电路工艺制造出处理器,也可以使用40nm集成电路制造,可以用电子实现,也可以用量子(量子计算机)

如果用软件开发的范畴来解释,ISA就好比需求,Microarchitecture就好比设计,物理实现就好比真正的代码。

微架构通常也被认为是内核(Core/Kernel)Intel称之为Core而ARM称为Kernel,一个处理器除了内核,还有很多其他东西,I/O,点与,时钟等等,同一种微架构可以出多种型号的处理器。比如人人都在使用的Intel酷睿微架构。i3,i5,i7系列拥有那么多型号。

此文章作者为周毅刚,归属于其个人网站miketech.it,未经允许,不得转载。

打赏

Leave a Reply

Your email address will not be published. Required fields are marked *