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