计算机体系结构大揭秘
古老的计算机时代
最早的计算机就像老古董一样,只会干一些特定的活儿,而且还不能“改行”。这种计算机被称为“固定程序计算机”,你手边的计算器就是个典型的例子,只会加减乘除,可不会上网冲浪!
后来,人们发明了“存储程序计算机”,这种计算机更灵活,能处理各种各样的任务。 现在大部分计算机都是基于冯·诺依曼提出的存储程序概念,程序指令和数据都存储在同一个内存里,就像一个大仓库,啥都往里塞。
这种设计的好处就是“灵活”,编辑器的源代码、编译后的机器码、正在编辑的文本,甚至是生成机器码的编译器,都能塞进同一个内存里。 这也带来了巨大的商业价值,只要软件和现有的指令集兼容,计算机就能运行各种各样的软件,想想 App Store 里那琳琅满目的应用吧!
我们可以把计算机简单地分成三个部分:内存、处理器和数据通路。处理器,也就是我们常说的中央处理器(CPU),负责数据的流动和各种计算,就像一个勤劳的搬运工兼数学家。内存呢,就像一个大仓库, 存放着指挥计算机行动的指令和要处理的数据, 同时还负责在内存和 CPU 之间搬运数据。这就是冯·诺依曼体系结构的基本原理。
你可能还听说过哈佛体系结构,它用不同的内存和总线来存放指令和数据,就像把仓库分成了两个区域,一个放工具,一个放材料, 这样效率更高,也更适合通用计算。
虽然哈佛体系结构和冯·诺依曼体系结构在数据流处理上有所不同,但基本的原理是一样的:内存和 CPU 分开工作,就像老板和员工,各司其职。
随着半导体技术的进步,这些体系结构一直都很好用。然而,在人工智能 (AI) 时代,新的挑战也出现了。
当前计算机体系结构面临的挑战
内存墙
“内存墙”指的是处理器速度和内存带宽之间日益增长的差距,就像一个跑得飞快的运动员,却要等一个行动缓慢的裁判。这种差距导致处理器大部分时间都在等待内存中的数据,而不是进行计算,这就造成了严重的性能瓶颈,就像运动员在终点线前等得花儿都谢了。
功耗墙
“功耗墙”指的是芯片散热问题越来越严重,就像电脑用久了会发烫一样。随着晶体管密度和时钟速度的提高,功耗和发热量也越来越难以控制,就像运动员跑得太快,身体都要烧起来了。
专业化与通用化困境
传统的体系结构是为通用计算设计的,就像一把瑞士军刀,啥都能干。然而,像 AI 这样的专业化工作负载通常需要专门的硬件加速器(例如 GPU、TPU),就像专业的运动员需要专门的训练器材。如何在通用性和专业化之间取得平衡,这是一个巨大的挑战。
可能的解决方案
- 内存内处理:将处理单元直接集成到内存阵列中,让计算发生在数据所在的位置,就像把运动员和裁判放在一起,省去了等待的时间。
- 神经形态计算:模仿人脑,使用异步、事件驱动的计算方式来处理 AI 工作负载,就像让运动员像人脑一样思考,做出更快速的反应。
- 光学计算:使用光而不是电来进行计算,这有可能在速度和能效方面带来优势,就像让运动员坐上光速飞船,瞬间到达终点。
- 量子计算:虽然仍处于起步阶段,但量子计算有可能利用量子力学来解决传统计算机无法解决的问题,从而彻底改变计算领域,就像让运动员拥有超能力,打破所有记录。
参考
[1]https://medium.com/@kalebmlemke/the-importance-of-ai-accelerators-in-ai-development-c7012d5e175a
[2]https://www.geeksforgeeks.org/harvard-architecture
[3]https://www.geeksforgeeks.org/computer-organization-von-neumann-architecture
eksforgeeks.org/computer-organization-von-neumann-architecture
[4] Computer Organization and Design MIPS Edition Authors: David A. Patterson, John L. Hennessy