初识处理器(2)

 

2.2  怎样来使用处理器——处理器的编程模型

2.2.1  软硬不分

早期计算机出现时,软件的编写都是直接面向硬件系统的,即使是同一计算机公司的不同计算机产品,它们的软件都是不能通用的,这个时代的软件和硬件紧密的耦合在一起,不可分离。

2.2.2  ISA横插一刀

IBM为了让自己的一系列计算机能使用相同的软件,免去重复编写软件的痛苦,在它的System/360计算机中引入了ISA(Instruction Set Architecture,指令集体系结构)的概念,将编程所需要了解的硬件信息从硬件系统中抽象出来,这样软件人员就可以面向ISA进行编程,开发出的软件不经过修改就可以应用在其他ISA架构的系统上。

ISA用来描述编程时用到的抽象机器,而非这种机器的具体实现。从编程人员的角度来看,ISA包括一套指令集和一些寄存器,程序员知道它们就可以编写程序。在PC领域,Intel和AMD的处理器都是基于x86指令集,因此我们不用担心换了更高性能的CPU,软件不能用,而手机上的程序不能在电脑上用,这是因为手机上的程序绝大部分是基于ARM指令集的。

2.3  处理器的分层模型

ISA的出现,是处理器领域的一件大事,处理器的外部呈现和内部实现可以分离开来。处理器被分为3个层次,如右图所示。

ISA常被简称为Architecture(架构),是处理器的一个抽象描述,ISA在处理器中的实现,被称为Microarchitecture(微架构),同样是x86的Architecture,Intel和AMD各自使用不同的Microarchitecture。

通俗的说,Architecture是处理器的外表,Microarchitecture是处理器的内心。Architecture是设计规范,定义处理器能做什么,Microarchitecture是设计实现,描述处理器是怎么实现功能的,物理实现是具体的实现过程,可以用20nm的集成电路工艺实现处理器,也可以用40nm的工艺实现,可以用电子实现(电子计算机),也可以用量子实现(量子计算机)。

如果用软件开发的流程来和处理器进行对比,那么Architecture就好比需求,Microarchitecture好比设计,物理实现好比真正的代码。

Microarchitecture通常也可以认为等同于内核(core),一个处理器除了内核外,也还有很多其他的东西。例如:I/O(Input/Output)、电源、时钟等,同样一种微架构可以出多种型号的处理器。

上面这张图描述了一个处理器的物理结构,它包括3大部分:内核、存储器、外设与接口。

下面这张图以商用处理器的例子描述了指令集、微架构、处理器之间的关系:

Intel著名的奔2、奔3电脑,使用了Intel历史上非常成功的P6微架构,奔4及一部分至强处理器使用了NetBurst微架构,它们都使用x86指令集。ARM公司设计的ARM Cortex-A8内核使用ARMv7指令集,被用在了TI、三星等很多公司的处理器上。

2.4  选什么样的处理器——适合的才是最好的

选处理器就像找老婆,没有好坏之分,只有适合与不适合之分,适合的才是最好的。系统集成公司在选择处理器时,通常会考量这些因素:

2.4.1  硬件指标——硬实力的竞争

1.性能

性能是选择处理器第一要考虑的因素,如果性能达不到要求,其他条件再好也没用。下面是常用的评估性能的基准:

时钟基准

MIPS(Millions of Instructions Per Second),MFLOPS(Millions of Floating-point Operations per Second)常常被处理器公司用于衡量处理器的性能。MIPS越高,则理论上每秒钟可以执行的指令数也越多,但是,每秒实际执行的指令数是会少于理论值的,如并行性不强、Cache miss、通信效率、总线冲突等都会影响到实际值和理论值的差距。MIPS、MFLOPS是处理器公司最容易给出的指标,也能大致的反映处理器的性能,但不能真实的反映。

读书导航