Cocke在IBM公司從事的第一個項目是研究Stretch計算機(世界上第一個“超級計算機”型號),他很快成為大型機專家。1974年,Cocke和他領導的研究小組開始嘗試研發每秒能夠處理300線呼叫的電話交換網路。為了實現這個目標,他不得不尋找一種辦法來提高交換系統已有架構的交換率。1975年,John Cocke研究了IBM370 CISC(Complex Instruction Set Computing,複雜指令集計算)系統,發現占總指令數20%的簡單指令發出了80%程式調用,而占總指令數80%的複雜指令卻 只有20%的機會被用到。由此,他提出了RISC的概念,其中心思想就是簡化硬體設計,硬體只執行一部分很有限的最常用的指令,大部分複雜的操作則使用成熟的編譯技術,由簡單指令合成。RISC的最大特點是指令長度固定,指令格式種類少,定址方式種類少,大多數是簡單指令且都能在一個時鐘周期內完成,易於設計超標量與流水線,暫存器數量多,大量操作在暫存器之間進行。 1980年,Cocke在IBM位於約克城(Yorktown)的華生研究中心(Watson Research Center)里開始研製IBM801(PowerPC的前身),第一台RISC機器也就作為801微電腦項目的一部分最終開發成功。模型
70年代中期,科克又主持了一個801計算機項目(或叫“80號大樓”項目,這是IBM的傳統,按研製小組所在建築物命名項目)。801計算機原是為每小時能處理100萬次呼叫的全數字電話交換機設計的專用機,但實現中被發展為一種具有小指令集、每個指令都是單地址、有固定格式、以流水線方式重疊執行、指令高速快取和數據高速快取則分開並互相獨立的一種超級通用小型機。IBM推出的這種體系結構引起加州大學伯克利分校的D.Patterson和史丹福大學的J.Hennessy的極大興趣和重視,經過進一步研究、改進和發展,最後形成為一種嶄新的計算機體系結構,即大家熟知的“精簡指令集計算機”RISC (Reduced Instruction Set Computer)。因此,RISC這個名詞雖然是1980年由Patterson提出的,但學術界公認科克是RISC概念的首創者。
除了計算機體系結構以外,科克在編譯器的最佳化方面,也有很多重要貢獻。在高級語言編譯器發展的初期,技術上不夠成熟,生成的目標代碼大,執行效率低,影響了高級語言的推廣套用。科克對編譯器的代碼生成技術進行了深入研究,提出了一系列最佳化方法,如過程(Procedure)的集成、循環(loop)的變換、公共子表達式(common subexpression)的消除、代碼移動(code motion)、暫存器定位、存儲單元重用等等,編譯器的質量大大提高,使編譯技術發展到一個新階段。科克在其主編的《各種變換的最佳化方法》 (《A Catalog of Optimizing Transformations》,Prentice Hall,1972)中詳細介紹了這些方法。
此外,科克在磁記錄技術、機器翻譯的統計方法等方面也都有過創造和發明。
在獲得圖靈獎以前,科克於1985年獲得過ACM的另一個獎項:Eckert Mauchly獎。這個獎是1979年紀念世界上第一台電子計算機ENIAC的兩位設計者而設立的,主要用來獎勵在計算機體系結構方面作出傑出貢獻的科學家。1991年,科克又榮獲美國全國性的技術創新獎章“National Medal of Technology”。
不知什麼原因,科克沒有出席圖靈獎頒獎儀式,而由他的同事A.Peled代為領獎並致詞。但科克發表了書面的圖靈獎演說,題為“對科學處理器性能的探索”(“The search for Performance in Scientific Processors”)。科克在書面演說中回顧了他一生追求高性能計算機的歷程,認為對計算機性能影響最大的三個因素是算法、編譯器和機器組織。雖然他本人從事的是有關機器組織和編譯器方面研究工作的,但他認為,這三者中,算法的改進是最重要的。
Peled的致詞和科克的書面演說全文刊載於1988年3月號的《Communications of ACM》 。
榮譽
“IBM小子”,是RISC(Reduced Instruction Set Computer,精簡指令系統計算機)架構設計師——John Cocke,在1972年得到的IBM公司頒贈給內部員工的最高榮譽稱號。約翰·科克
RISC(reduced instruction set computer,精簡指令集計算機)是一種執行較少類型計算機指令的微處理器,起源於80年代的MIPS主機(即RISC機),RISC機中採用的微處理器統稱RISC處理器。這樣一來,它能夠以更快的速度執行操作(每秒執行更多百萬條指令,即MIPS)。因 為計算機執行每個指令類型都需要額外的電晶體和電路元件,計算機指令集越大就會使微處理器更複雜,執行操作也會更慢。RISC&CISC