前言
這里首先直接給出結論:CPU從單核發展到多核的原因是如果維持單核,則為了提高CPU性能只能不斷提高時鍾頻率,從而會導致CPU功耗急速上升,導致機箱過熱,來不及散熱。
歷史
2004年,Intel CEO 貝瑞特曾為奔騰4處理器的時鍾頻率無法突破4GHZ而下跪道歉,並承認“兆赫神話”是錯誤的,即時鍾頻率並不是CPU性能的全部。
CPU性能公式
CPU的性能是每秒執行的指令數。公式如下:
CPU性能 = 時鍾頻率 × IPC
其中:
- 時鍾頻率=1/時鍾周期,時鍾頻率為每秒執行的時鍾周期數,單位了Hz
- 時鍾周期是計算機中最小的工作單位,為一個振盪需要的秒數
- IPC(Instruction Per Cycle): 一個時鍾周期完成的指令數,單位為"指令/時鍾周期"
從中我們可以看出:
- 主頻並不是CPU性能的全部,我們還能夠通過提高IPC來提高CPU性能,比如流水線、超標量等技術就是提高IPC的典型技術。
- 兩個不同廠商的CPU不能僅通過比較時鍾頻率來決定性能好壞,因為不同廠商CPU的架構不同,導致IPC不同。
CPU功耗
首先給出已知條件:
CPU功耗正比於"電流 × 電壓 × 電壓 × 主頻"
主頻正比於"電壓"
IPC正比於"電流"
我們可以看出:
CPU功耗正比於 "主頻的三次方"
CPU功耗正比於 "IPC"

因此:
- 增加主頻會以三次方的速度增加功耗,因此這就證明了只提高主頻並不是個好主意。
- 增加IPC只會以線性的速度增加功耗。
- 如果我們增加一倍IPC,減少一倍時鍾頻率,則根據CPU性能公式得:CPU性能不變,但CPU功耗減少了。
下圖為一個笑話,即主板太熱都可以在上面煮雞蛋。

為什么多核是必然的發展趨勢?
原因有兩點:
- 根據Moore定律,集成電路上可容納的晶體管數量每18個月翻一番,因此CPU上的晶體管數量會越來越多。
- 多核能夠使得在減少時鍾頻率的同時增加性能(多核能增加IPC),但事實上目前程序員寫的軟件幾乎都不是針對多核環境寫的。
目前,世界上最快的計算機是中國的"天河2號",CPU核數為3120000,根據沙行勉教授的觀點,這種計算機一般只是為了爭排名,根本不會實際使用,因為功耗太大。
雖然多核CPU是發展趨勢,但是程序員們的程序還是依舊還是老樣子,因此並行計算的學習是解決這個問題的方法。
參考文獻
[1] http://tech.sina.com.cn/roll/2007-06-04/1054327912.shtml
[2] http://en.wikipedia.org/wiki/Clock_speed
[3] http://en.wikipedia.org/wiki/Instructions_Per_Cycle
