小土刀

【计算机系统导论】第三章 计算之心 处理器

作为计算机系统的『大脑』,处理器在短短数十年的时间中有着巨大的发展,总结起来便是为人津津乐道的摩尔定律。而在工艺提升的同时,处理器本身的设计也有着翻天覆地的变化,从流水线到超线程,从单核到多核,都值得我们去了解。


作为计算机系统的『大脑』,处理器在短短数十年的时间中有着巨大的发展,总结起来便是为人津津乐道的摩尔定律。而在工艺提升的同时,处理器本身的设计也有着翻天覆地的变化,从流水线到超线程,从单核到多核,都值得我们去了解。

本章中我们会从计算的历史讲起,一步一步沿着技术的发展轨迹来了解处理器的前世今生,并通过基本的电路知识学习来认识到计算的数学基础和本质。在此之后,我们会重点介绍处理器发展历史上的关键设计。无论是流水线还是指令系统,在了解其原理之后,我们还会继续去探究其设计上的思考与权衡,不仅做到知其然,还要知其所以然。

处理器的发展实际上是依赖于硅技术的发展的,每一次制程的飞跃,都离不开硬件工程师的探索与设计。比方说高介电常数(high-k)闸极介电层(gate dielectric)的出现使得 45nm 成为可能,而在 22nm 的时候,则采用的是多闸极晶体管,将闸极对电流的控制从沟道的一个表面增加到了三个表面。这里的关键问题是如何在减小器件尺寸的同时,精准控制晶体管中的电流,但因为种种固有物理限制的存在,摩尔定律到底能持续多久,谁也不清楚。

因为单个核心的性能潜力几乎已经挖掘殆尽,科学家和工程师们把重点放到了并行上,也就是从单核到多核的转变。多核虽然看起来很美,但其实也引入了一些单核中不需要考虑的问题。为此还需要存储层次和访问局部性的配合,这部分内容我们会在下一章详细介绍。

计算机系统最重要的方法论是『分层』,上层无需了解下层的具体实现,只需要使用统一接口进行调用即可。在所有的分层中,最重要的大约是硬件与软件之间的接口,也就是指令集体系结构,相当于硬件与软件的桥梁。从硬件往软件的角度看,指令集体系结构给软件提供了一个统一的抽象,软件无需关心硬件的细节;从软件往硬件的角度看,指令集体系结构给硬件提供了明确的指令翻译,硬件无需关系软件的逻辑。这样一来,无论是软件和硬件工程师都可以专注于软件和硬件,而无需关注太多相关的具体实现。

近年来,随着智能手机的蓬勃发展,因为电池限制,功耗成为了处理器设计的首要考虑因素,现在手机动辄八核心十核心,也是出于功耗的考虑,这样在计算需求较低的时候,只需要使用较小的几个核心,就避免了杀鸡用牛刀的情况。另外一个发展趋势是处理器的专用化,原先处理器的设计更多是为了执行通用的计算,但随着各种专项应用的计算需求越来越高,纯用软件进行计算比较费时费电,于是对硬件编程,使用硬件完成原来通过软件才能完成的工作,也成为了一个可行的选择。比方说最新的 iPhone 7 中,就添加了一块 FPGA 芯片呢。

好了,让我们回到 1960 年,第一片 IC 芯片出现的年代。

捧个钱场?

热评文章