簡介
科克是從機械到數(shù)學(xué)、又從數(shù)學(xué)轉(zhuǎn)到計算機方向上來的學(xué)者。由于學(xué)過機械和數(shù)學(xué),基礎(chǔ)扎實、知識面廣,加上科克興趣廣泛,善于動腦,他在IBM許多產(chǎn)品的設(shè)計開發(fā)和技術(shù)問題的解決中都 起過至關(guān)重要的作用,有眾多的發(fā)明創(chuàng)造。在沃特森研究中心,在很長一段時間里,每當(dāng)人們有疑難問題需要解決的時候,自然就會說:“找約翰討論去”。事實上,科克也總能提出有益的建議,因而受到其同事的普遍敬仰和尊重。
1987年度的圖靈獎授予了IBM沃特森研究中心老資格的研究員約翰·科克(Johncocke)。
學(xué)術(shù)生涯
約翰·科克生于1925年,1946年在杜克大學(xué)(DukeUniversity)獲得機械工程學(xué)士學(xué)位,干了幾年實際工作以后,又回到母校讀研究生,于1956年取得數(shù)學(xué)博士學(xué)位。之后,他進入IBM,從此開始了他的計算機生涯并為IBM計算機市場的開拓和計算機科學(xué)技術(shù)的發(fā)展做出了巨大的貢獻。由于學(xué)過機械和數(shù)學(xué),基礎(chǔ)扎實、知識面廣,加上科克興趣廣泛,善于動腦,他在IBM許多產(chǎn)品的設(shè)計開發(fā)和技術(shù)問題的解決中都起過至關(guān)重要的作用,有眾多的發(fā)明創(chuàng)造。在沃特森研究中心,在很長一段時間里,每當(dāng)人們有疑難問題需要解決的時候,自然就會說:“找約翰討論去”。事實上,科克也總能提出有益的建議,因而受到其同事的普遍敬仰和尊重。
Cocke在IBM公司從事的第一個項目是研究Stretch計算機(世界上第一個“超級計算機”型號),他很快成為大型機專家。1974年,Cocke和他領(lǐng)導(dǎo)的研究小組開始嘗試研發(fā)每秒能夠處理300線呼叫的電話交換網(wǎng)絡(luò)。為了實現(xiàn)這個目標(biāo),他不得不尋找一種辦法來提高交換系統(tǒng)已有架構(gòu)的交換率。1975年,John Cocke研究了IBM370 CISC(Complex Instruction Set Computing,復(fù)雜指令集計算)系統(tǒng),發(fā)現(xiàn)占總指令數(shù)20%的簡單指令發(fā)出了80%程序調(diào)用,而占總指令數(shù)80%的復(fù)雜指令卻 只有20%的機會被用到。由此,他提出了RISC的概念,其中心思想就是簡化硬件設(shè)計,硬件只執(zhí)行一部分很有限的最常用的指令,大部分復(fù)雜的操作則使用成熟的編譯技術(shù),由簡單指令合成。RISC的最大特點是指令長度固定,指令格式種類少,尋址方式種類少,大多數(shù)是簡單指令且都能在一個時鐘周期內(nèi)完成,易于設(shè)計超標(biāo)量與流水線,寄存器數(shù)量多,大量操作在寄存器之間進行。 1980年,Cocke在IBM位于約克城(Yorktown)的華生研究中心(Watson Research Center)里開始研制IBM801(PowerPC的前身),第一臺RISC機器也就作為801微電腦項目的一部分最終開發(fā)成功。
自RISC技術(shù)推出以來,由于其優(yōu)化指令系統(tǒng)帶來運算速度提高的優(yōu)勢,使得RISC技術(shù)在1980年代后期,逐漸在高端服務(wù)器和工作站領(lǐng)域中取代了CISC 成為主流微處理器設(shè)計架構(gòu)之一。各個具備一定技術(shù)實力的廠家開始在這個架構(gòu)上研發(fā)出自己的處理器,經(jīng)過近二十年的發(fā)展,各大型計算機和超級服務(wù)器都采用 RISC架構(gòu)的處理器,F(xiàn)在,RISC處理器已經(jīng)成為高性能計算機的代名詞。
貢獻和成就
科克的貢獻和成就首先是在高性能計算機的體系結(jié)構(gòu)方面?瓶耸荌BM60年代推出的晶體管大型計算機,也是世界上第一個“超級計算機”(Supercomputer)型號STRETCH的技術(shù)負責(zé)人。Stretch包含15萬只晶體管,其速度比IBM上一個主流計算機型號IBM704快75倍。STRETCH首創(chuàng)的靈活的尋址技術(shù)、指令提前執(zhí)行(即流水線技術(shù))、差錯校正碼ECC(ErrorCorrectingCode)等至今仍被廣泛使用著。Stretch共生產(chǎn)了8臺,被洛斯阿拉莫斯(LosAlamos)國家實驗室(這是研制出了世界上第一 顆原子彈的著名的原子能研究中心)等機構(gòu)所采用。
70年代中期,科克又主持了一個801計算機項目(或叫“80號大樓”項目,這是IBM的傳統(tǒng),按研制小組所在建筑物命名項目)。801計算機原是為每小時能處理100萬次呼叫的全數(shù)字電話交換機設(shè)計的專用機,但實現(xiàn)中被發(fā)展為一種具有小指令集、每個指令都是單地址、有固定格式、以流水線方式重疊執(zhí)行、指令高速緩存和數(shù)據(jù)高速緩存則分開并互相獨立的一種超級通用小型機。IBM推出的這種體系結(jié)構(gòu)引起加州大學(xué)伯克利分校的D.Patterson和斯坦福大學(xué)的J.Hennessy的極大興趣和重視,經(jīng)過進一步研究、改進和發(fā)展,最后形成為一種嶄新的計算機體系結(jié)構(gòu),即大家熟知的“精簡指令集計算機”RISC(ReducedInstructionSetComputer)。因此,RISC這個名詞雖然是1980年由Patterson提出的,但學(xué)術(shù)界公認科克是RISC概念的首創(chuàng)者。
除了計算機體系結(jié)構(gòu)以外,科克在編譯器的優(yōu)化方面,也有很多重要貢獻。在高級語言編譯器發(fā)展的初期,技術(shù)上不夠成熟,生成的目標(biāo)代碼大,執(zhí)行效率低,影響了高級語言的推廣應(yīng)用?瓶藢幾g器的代碼生成技術(shù)進行了深入研究,提出了一系列優(yōu)化方法,如過程(Procedure)的集成、循環(huán)(loop)的變換、公共子表達式(commonsubexpression)的消除、代碼移動(codemotion)、寄存器定位、存儲單元重用等等,編譯器的質(zhì)量大大提高,使編譯技術(shù)發(fā)展到一個新階段?瓶嗽谄渲骶幍摹陡鞣N變換的優(yōu)化方法》 (《ACatalogofOptimizingTransformations》,PrenticeHall,1972)中詳細介紹了這些方法。
此外,科克在磁記錄技術(shù)、機器翻譯的統(tǒng)計方法等方面也都有過創(chuàng)造和發(fā)明。
在獲得圖靈獎以前,科克于1985年獲得過ACM的另一個獎項:EckertMauchly獎。這個獎是1979年紀(jì)念世界上第一臺電子計算機ENIAC的兩位設(shè)計者而設(shè)立的,主要用來獎勵在計算機體系結(jié)構(gòu)方面作出杰出貢獻的科學(xué)家。1991年,科克又榮獲美國全國性的技術(shù)創(chuàng)新獎?wù)隆癗ationalMedalofTechnology”。
不知什么原因,科克沒有出席圖靈獎頒獎儀式,而由他的同事A.Peled代為領(lǐng)獎并致詞。但科克發(fā)表了書面的圖靈獎演說,題為“對科學(xué)處理器性能的探索”(“ThesearchforPerformanceinScientificProcessors”)。科克在書面演說中回顧了他一生追求高性能計算機的歷程,認為對計算機性能影響最大的三個因素是算法、編譯器和機器組織。雖然他本人從事的是有關(guān)機器組織和編譯器方面研究工作的,但他認為,這三者中,算法的改進是最重要的。
Peled的致詞和科克的書面演說全文刊載于1988年3月號的《CommunicationsofACM》 。
榮譽
“IBM小子”,是RISC(Reduced Instructi on Set Computer,精簡指令系統(tǒng)計算機)架構(gòu)設(shè)計師——John Cocke,在1972年得到的IBM公司頒贈給內(nèi)部員工的最高榮譽稱號。同年,John Cocke還獲得了美國國家技術(shù)勛章和圖靈獎。1991年,當(dāng)時的老布什總統(tǒng)親自授予他國家科學(xué)獎(國家技術(shù)勛章和國家科學(xué)獎是美國最具榮耀的兩項政府大獎)。在作為科學(xué)家的一生中,他在高性能系統(tǒng)設(shè)計中取得的革命性進步,Cocke為信息技術(shù)的發(fā)展做出了獨一無二的創(chuàng)造性貢獻。在系統(tǒng)架構(gòu)和編譯器優(yōu)化研究領(lǐng)域取得了大量進步,他當(dāng)之無愧地成為編譯器優(yōu)化的奠基人和革新帶頭人。評價
從1957到1992年,John Cocke在工作中把自己近40年的精力毫無保留地奉獻給了IBM,他取得了了不起(amazing)的成績”,Cocke的同事兼密友Peter Capek這樣評價他:“他的經(jīng)歷非同一般。他因為計算機架構(gòu)而聞名,但他對很多領(lǐng)域同樣充滿濃厚興趣。包括邏輯模擬(logic simulation)、編碼理論(coding theory)和編譯器優(yōu)化(compiler optimization),他都可以把這些技術(shù)當(dāng)成藝術(shù)來研究!關(guān)于RISC
簡介
RISC(reducedinstructionsetcomputer,精簡指令集計算機)是一種執(zhí)行較少類型計算機指令的微處理器,起源于80年代的MIPS主機(即RISC機),RISC機中采用的微處理器統(tǒng)稱RISC處理器。這樣一來,它能夠以更快的速度執(zhí)行操作(每秒執(zhí)行更多百萬條指令,即MIPS)。因 為計算機執(zhí)行每個指令類型都需要額外的晶體管和電路元件,計算機指令集越大就會使微處理器更復(fù)雜,執(zhí)行操作也會更慢。
紐約約克鎮(zhèn)IBM研究中心的JohnCocke證明,計算機中約20%的指令承擔(dān)了80%的工作,于1974年,他提出RISC的概念。第一臺得益于這個發(fā)現(xiàn)的電腦是1980年IBM的PC/XT。再后來,IBM的RISCSystem/6000也使用了這個思想。RISC這個詞本身屬于伯克利加利福尼亞大學(xué)的一個教師DavidPatterson。RISC這個概念還被用在Sun公司的SPARC微處理器中,并促成了現(xiàn)在所謂的MIPS技術(shù)的建立,它是SiliconGraphics的一部分。許多當(dāng)前的微芯片現(xiàn)在都使用RISC概念。
RISC概念已經(jīng)引領(lǐng)了微處理器設(shè)計的一個更深層次的思索。設(shè)計中必須考慮到:指令應(yīng)該如何較好的映射到微處理器的時鐘速度上(理想情況下,一條指令應(yīng)在一個時鐘周期內(nèi)執(zhí)行完);體系結(jié)構(gòu)需要多“簡單”;以及在不訴諸于軟件的幫助下,微芯片本身能做多少工作等等。
除了性能的改進,RISC的一些優(yōu)點以及相關(guān)的設(shè)計改進還有:
@如果一個新的微處理器其目標(biāo)之一是不那么復(fù)雜,那么其開發(fā)與測試將會更快。
@使用微處理器指令的操作系統(tǒng)及應(yīng)用程序的程序員將會發(fā)現(xiàn),使用更小的指令集使得代碼開發(fā)變得更加容易。
@RISC的簡單使得在選擇如何使用微處理器上的空間時擁有更多的自由。
@比起從前,高級語言編譯器能產(chǎn)生更有效的代碼,因為編譯器使用RISC機器上的更小的指令集。
除了RISC,任何全指令集計算機都使用的是復(fù)雜指令集計算(CISC)。 RISC典型范例如:MIPSR3000 、 HP—PA8000系列,MotorolaM88000等均屬于RISC微處理器。
主要特點
RISC微處理器不僅精簡了指令系統(tǒng),采用超標(biāo)量和超流水線結(jié)構(gòu);它們的指令數(shù)目只有幾十條,卻大大增強了并行處理能力。如:1987年SunMicrosystem公司推出的SPARC芯片就是一種超標(biāo)量結(jié)構(gòu)的RISC處理器。而SGI公司推出的MIPS處理器則采用超流水線結(jié)構(gòu),這些RISC處理器在構(gòu)建并行精簡指令系統(tǒng)多處理機中起著核心的作用。
RISC處理器是當(dāng)今UNIX領(lǐng)域64位多處理機的主流芯片
性能特點一:由于指令集簡化后,流水線以及常用指令均可用硬件執(zhí)行;
性能特點二:采用大量的寄存器,使大部分指令操作都在寄存器之間進行,提高了處理速度;
性能特點三:采用緩存—主機—外存三級存儲結(jié)構(gòu),使取數(shù)與存數(shù)指令分開執(zhí)行,使處理器可以完成盡可能多的工作,且不因從存儲器存取信息而放慢處理速度。
1、應(yīng)用特點;由于RISC處理器指令簡單、采用硬布線控制邏輯、處理能力強、速度快,世界上絕大部分UNIX工作站和服務(wù)器廠商均采用RISC芯片作CPU用。如原DEC的Alpha21364、IBM的PowerPCG4、HP的PA—8900、SGI的R12000A和SUNMicrosystem公司的UltraSPARC║。
2、運行特點:RISC芯片的工作頻率一般在400MHZ數(shù)量級。時鐘頻率低,功率消耗少,溫升也少,機器不易發(fā)生故障和老化,提高了系統(tǒng)的可靠性。單一指令周期容納多部并行操作。在RISC微處理器發(fā)展過程中。曾產(chǎn)生了超長指令字(VLIW)微處理器,它使用非常長的指令組合,把許多條指令連在一起,以能并行執(zhí)行。VLIW處理器的基本模型是標(biāo)量代碼的執(zhí)行模型,使每個機器周期內(nèi)有多個操作。有些RISC處理器中也采用少數(shù)VLIW指令來提高處理速度。
RISC和CISC區(qū)別
RISC和CISC是目前設(shè)計制造微處理器的兩種典型技術(shù),雖然它們都是試圖在體系結(jié)構(gòu)、操作運行、軟件硬件、編譯時間和運行時間等諸多因素中做出某種平衡,以求達到高效的目的,但采用的方法不同,因此,在很多方面差異很大,它們主要有:
。1)指令系統(tǒng):RISC設(shè)計者把主要精力放在那些經(jīng)常使用的指令上,盡量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。因此,在RISC機器上實現(xiàn)特殊功能時,效率可能較低。但可以利用流水技術(shù)和超標(biāo)量技術(shù)加以改進和彌補。而CISC計算機的指令系統(tǒng)比較豐富,有專用指令來完成特定的功能。因此,處理特殊任務(wù)效率較高。
。2)存儲器操作:RISC對存儲器操作有限制,使控制簡單化;而CISC機器的存儲器操作指令多,操作直接。
。3)程序:RISC匯編語言程序一般需要較大的內(nèi)存空間,實現(xiàn)特殊功能時程序復(fù)雜,不易設(shè)計;而CISC匯編語言程序編程相對簡單,科學(xué)計算及復(fù)雜操作的程序社設(shè)計相對容易,效率較高。
(4)中斷:RISC機器在一條指令執(zhí)行的適當(dāng)?shù)胤娇梢皂憫?yīng)中斷;而CISC機器是在一條指令執(zhí)行結(jié)束后響應(yīng)中斷。
。5)CPU:RISCCPU包含有較少的單元電路,因而面積小、功耗低;而CISCCPU包含有豐富的電路單元,因而功能強、面積大、功耗大。
。6)設(shè)計周期:RISC微處理器結(jié)構(gòu)簡單,布局緊湊,設(shè)計周期短,且易于采用最新技術(shù);CISC微處理器結(jié)構(gòu)復(fù)雜,設(shè)計周期長。
。7)用戶使用:RISC微處理器結(jié)構(gòu)簡單,指令規(guī)整,性能容易把握,易學(xué)易用;CISC微處理器結(jié)構(gòu)復(fù)雜,功能強大,實現(xiàn)特殊功能容易。
。8)應(yīng)用范圍:由于RISC指令系統(tǒng)的確定與特定的應(yīng)用領(lǐng)域有關(guān),故RISC機器更適合于專用機;而CISC機器則更適合于通用機。