1. 程式人生 > >天才馮·諾依曼與馮·諾依曼瓶頸

天才馮·諾依曼與馮·諾依曼瓶頸

天才 馮·諾依曼

馮·諾依曼1903年12月28日出生於奧匈帝國布達佩斯,1957年2月8日卒於美國,終年53歲。在他短暫的一生中,他取得了巨大的成就,遠不止於世人熟知的“馮·諾依曼架構”。

約翰·馮·諾伊曼,出生於匈牙利的美國籍猶太人數學家,現代電子計算機與博弈論的重要創始人,在泛函分析、遍歷理論、幾何學、拓撲學和數值分析等眾多數學領域及計算機學、量子力學和經濟學中都有重大貢獻。

-- 約翰·馮·諾伊曼的維基百科

除了對電腦科學的貢獻,他還有一個稱號不被大眾所熟知:“博弈論之父”。博弈論被認為是20世紀經濟學最偉大的成果之一。(說到博弈論,我相信大多數人第一個想到的肯定跟我一樣,那就是“納什均衡”)

馮·諾依曼架構

馮·諾依曼由於在曼哈頓工程中需要大量的運算,從而使用了當時最先進的兩臺計算機 Mark I 和 ENIAC,在使用 Mark I 和 ENIAC 的過程中,他意識到了儲存程式的重要性,從而提出了儲存程式邏輯架構。

“馮·諾依曼架構”定義如下:

  1. 以運算單元為中心
  2. 採用儲存程式原理
  3. 儲存器是按地址訪問、線性編址的空間
  4. 控制流由指令流產生
  5. 指令由操作碼和地址碼組成
  6. 資料以二進位制編碼

優勢

馮·諾依曼架構第一次將儲存器和運算器分開,指令和資料均放置於儲存器中,為計算機的通用性奠定了基礎。雖然在規範中計算單元依然是核心,但馮·諾依曼架構事實上導致了以儲存器為核心的現代計算機的誕生。

注:請各位在心裡明確一件事情:儲存器指的是記憶體,即 RAM。磁碟理論上屬於輸入輸出裝置。

該架構的另一項重要貢獻是用二進位制取代十進位制,大幅降低了運算電路的複雜度。這為電晶體時代超大規模積體電路的誕生提供了最重要的基礎,讓我們實現了今天手腕上的 Apple Watch 運算效能遠超早期大型計算機的壯舉,這也是摩爾定律得以實現的基礎。

馮·諾伊曼瓶頸

馮·諾依曼架構為計算機大提速鋪平了道路,卻也埋下了一個隱患:在記憶體容量指數級提升以後,CPU 和記憶體之間的資料傳輸頻寬成為了瓶頸。

上圖是 i9-7980XE 18 核 36 執行緒的民用最強 CPU,其配合超頻過的 DDR4 3200MHz 的記憶體,測試出的記憶體讀取速度為 90GB/S。看起來很快了是不是?看看圖中的 L1 Cache,3.7TB/S。

我們再來算算時間。這顆 CPU 最大睿頻 4.4GHz,就是說 CPU 執行一個指令需要的時間是 0.000000000227273 秒,即 0.22ns(納秒),而記憶體的延遲是 68.1ns。換句話說,只要去記憶體裡取一個位元組,就需要 CPU 等待 300 個週期,何其的浪費 CPU 的時間啊。

CPU L1 L2 L3 三級快取是使用和 CPU 同樣的 14 納米工藝製造的矽半導體,每一個 bit 都使用六個場效電晶體(通俗解釋成三極體)構成,成本高昂且非常佔用 CPU 核心面積,故不能做成很大容量。

https://lvwenhan.com/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/492.html