日夲客戶希望英特爾幫助他們設計和生產八種專用集成電路芯片,用於實現桌面計算器。英特爾的工程師發現這樣做有兩個很大的問題。
其一,英特爾已經在全力開發三種內存芯片了,沒有人力再設計八種新的芯片。其二,用八種芯片實現計算器,將大大超出預算成本。
於是,英特爾的一個名叫特德-霍夫(Ted Hoff)的工程師仔細分析了日夲同行的設計。他發現了一個現象:這八塊芯片各實現一種特定的功能。
當用戶使用計算器時,這些功能並不是同時都需要的。比如,用戶需要計算一百個數的和,它會重複地輸入一個數,再做一次加法,一共做一百次,最後再打印出來。
而在這個時候,負責輸入、相加和打印的電路並不同時工作。也就是說,當一塊芯片在工作時,其他芯片可能是空閑的。
於是霍夫有了一個想法:為什麽不能用一塊通用的芯片,加上程序來實現幾塊芯片的功能呢?當需要某種功能時,只需要把實現該功能的一段程序代碼(稱為子程序)加載到通用芯片上,其功能與專用芯片會完全一樣。
經過幾天的思考後,霍夫繪製出計算器新的體系結構圖,其中包含四塊芯片。
一塊通用處理器芯片,實現所有的計算和控制功能;一塊可讀寫內存(RAM)芯片,用來存放數據;一塊隻讀內存(ROM)芯片,用來存放程序;一塊輸入輸出芯片,實現鍵入數據和操作命令、打印結果等等功能。
這枚新的通用芯片,就是最早期CPU的雛形。可以說:CPU就是一種用來代替專用集成電路的器件。
說通俗一點,如果把sel信號看做“程序”的話,這個電路就像一個“CPU”能根據“程序”執行不同的“操作”。如此一來,通過“程序”(sel信號),電路就能夠實現複用。因為程序就是硬件電路的延伸。
這就和人的大腦控制身體的電子信號是一個原理。
比如人坐在電腦前看電影,同時也會吃零食,喝飲料,手會給身體不適應的地方抓癢。其中,看電影這項主要“程序”,就是“計算功能”,而其他的次要“程序”,就是“控制功能”。
可見,控制功能和電腦的重複運算,在理論上是非常接近的。它們可以稱之為人類的重複運算,也就是習慣動作。
比如,我們給電腦輸入兩個指令:
mov eax,0
repeat:inc eax
jmp repeat
——
int main()
{
unsigned int i = 0;
while(1)
i++;
}
電腦產生了一個從0不斷增加的序列,會一直加到溢出閾值,又從0開始。這個閾值取決於計算機的字長,也就是多少位的CPU。
這樣的重複數據,就相當於人類的習慣控制動作。比如吃飯,不需要大腦作為特別細致的計算,隻吃到達到閾值,也就是飽腹為止。
同樣,我們再給電腦輸入另外兩個指令:
mov eax,0
repeat:dec eax
jmp repeat
——
int main()
{
unsigned int i = 0;
while(1)
i--;
}
這是一個遞減序列。
我們可以理解為人的手為自己抓癢,同樣是一個習慣性動作,大腦也不用刻意去指揮運算。人會抓到達到閾值,也就是“消除癢”數據為止。 人做習慣性動作時,一般是不會佔用大腦的思維空間的,電腦也是一樣。開機進入界面之後,非運算程序不再佔用CPU的讀取空間,硬盤也停止跳響。
霍夫最初生產的集成芯片,就完成了這樣的設計理論。它擁有四個運算子程序的芯片,可以理解為四位元。CPU的指令也由此分為了兩種。
一種是RISC(Reduced Set Computer),即精簡指令集計算機,也就是重複運算。
一種是CISC (Complex Set Compute),複雜指令集計算機,也就是控制運算。
RISC,即重複運算,既是取決於CPU的位元。四位元CPU可以同時進行四種不同的重複運算,八位元CPU可以同時進行八種不同的重複運算。
就像一個人,可以邊抽煙,邊喝酒,邊說話,嘴裡嚼著檳榔,人坐在馬桶上拉便便,手上拿著手機刷劇,耳朵裡還能聽歌;而腦子裡則在關心國家大事。
但如何保證在重複運算的時候,信息不會發生錯位呢?比如不小心把馬桶裡的水喝了?人腦靠的是自覺,電腦靠的則是CPU的周期頻率。
CPU的周期頻率,是外頻與倍頻的積。CPU通過外部的晶振產生一個時鍾信號,然後再通過內部的電路(鎖相環),倍頻至需要的頻率。
不同的時鍾信號,可以產生不同的頻率。這讓不同的重複運算,在同一個電路中能夠做到相安無事。你走你的,我走我的,它們以電流的光速移動傳遞運算結果。
率先研發出十六位元CPU的,是一九八三年誕生的蘋果LISA。但這款處理器尚未解決CISC運算成本,價格高達一萬美元, 於一九八六年淘汰。
因為一九八六年的中國長城,研發出更有成本優勢的十六位元計算機。
同年,IBM研發出80386CPU,即三十二位元處理器。但它同樣沒有根本性的解決成本問題。所以到八十年代末,遊戲CPU基本上還停留在八位元。
所謂的準十六位CPU,不過是因為晶體管單方面的升級,讓外頻能夠發射出區別於原周期頻率的信號。而實際上,它並不能完成十六個絕對相同的重複運算,也不能完成十六個絕對不相同的重複運算。
這就是PCE的主機性能。
而CISC,即控制運算,它才是CPU的真正核心。它相當於人類大腦真正的思維正中,真正在辦理的主要事件。無論是作為人還是機器,CISC都是無可取代的“核”。
除去吃零食,喝飲料,抓癢這些可有可無的RISC,增加一個看電影的CISC更重要。從某種意義上來說,CISC就相當於第二顆大腦。
對CPU來講,這就是雙核。
在位元沒有真正普及的時代,這才是提升機能最行之有效的辦法了。
“雙核,原來如此。王君也好,哈德森也好,他們都是邁向新位元的理論先驅!這位王君,真是了不起啊。”晚上,橫井俊平幾乎徹夜未眠,一直坐在書桌前。
他的手上,依然拿著日志本。如今的這本日志,已經寫滿了一百多頁,全部都是橫井俊平和王秋陽一個月以來交流的成果。
王秋陽二十一世紀的思維,讓他再也難以放下這份提案。