開啟主選單

求真百科


約翰·科克是從機械到數學、又從數學轉到計算機方向上來的學者。他生於1925年,1946年在杜克大學(Duke University)獲得機械工程學士學位,幹了幾年實際工作以後,又回到母校讀研究生,於1956年取得數學博士學位。之後,他進入IBM,從此開始了他的計算機生涯並為IBM計算機市場的開拓和計算機科學技術的發展,尤其是RISC架構和編譯器優化 ,做出了巨大的貢獻。

約翰·科克
出生 1925年
國籍 美國
別名 John Cocke
職業 科學家
知名於

RISC架構之父 ACM 圖靈獎(1987) IEEE 約翰·馮諾依曼獎(1994)

美國國家科學獎章(1994)
知名作品 《各種變換的優化方法》 (《A Catalog of Optimizing Transformations》《Communications of ACM》

目錄

學術生涯

約翰·科克生於1925年,1946年在杜克大學(Duke University)獲得機械工程學士學位,幹了幾年實際工作以後,又回到母校讀研究生,於1956年取得數學博士學位。之後,他進入IBM,從此開始了他的計算機生涯並為IBM計算機市場的開拓和計算機科學技術的發展做出了巨大的貢獻。由於學過機械和數學,基礎紮實、知識面廣,加上科克興趣廣泛,善於動腦,他在IBM許多產品的設計開發和技術問題的解決中都起過至關重要的作用,有眾多的發明創造。在沃特森研究中心,在很長一段時間裡,每當人們有疑難問題需要解決的時候,自然就會說:「找約翰討論去」。事實上,科克也總能提出有益的建議,因而受到其同事的普遍敬仰和尊重 。

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微電腦項目的一部分最終開發成功。

自RISC技術推出以來,由於其優化指令系統帶來運算速度提高的優勢,使得RISC技術在1980年代後期,逐漸在高端服務器和工作站領域中取代了CISC 成為主流微處理器設計架構之一。各個具備一定技術實力的廠家開始在這個架構上研發出自己的處理器,經過近二十年的發展,各大型計算機和超級服務器都採用 RISC架構的處理器。現在,RISC處理器已經成為高性能計算機的代名詞。

貢獻成就

科克的貢獻和成就首先是在高性能計算機的體系結構方面。科克是IBM60年代推出的晶體管大型計算機,也是世界上第一個「超級計算機」(Supercomputer)型號STRETCH的技術負責人。Stretch包含15萬隻晶體管,其速度比IBM上一個主流計算機型號IBM704快75倍。STRETCH首創的靈活的尋址技術、指令提前執行(即流水線技術)、差錯校正碼ECC(Error Correcting Code)等至今仍被廣泛使用着。Stretch共生產了8顆原子彈的著名的原子能研究中心)等機構所採用。被洛斯阿拉莫斯(Los Alamos)國家實驗室(這是研製出了世界上第一 台。

約翰·科克

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 Instructi

on Set Computer,精簡指令系統計算機)架構設計師——John Cocke,在1972年得到的IBM公司頒贈給內部員工的最高榮譽稱號。 在IBM以外,他也受到廣泛的認可,獲得無數獎項,其中代表性的有:

ACM 圖靈獎(1987) [1]

IEEE 計算機先驅獎 (1989)[2]

美國國家技術獎章(1991) [3]

美國國家科學獎章(1994)[4]

IEEE 約翰·馮諾依曼獎(1994) [5]

國家技術勳章和國家科學獎是美國最具榮耀的兩項政府大獎,在作為科學家的一生中,他在高性能系統設計中取得的革命性進步,Cocke為信息技術的發展做出了獨一無二的創造性貢獻。在系統架構和編譯器優化研究領域取得了大量進步,他當之無愧地成為編譯器優化的奠基人和革新帶頭人。

評價

從1957到1992年,John Cocke在工作中把自己近40年的精力毫無保留地奉獻給了IBM,他取得了了不起(amazing)的成績」,Cocke的同事兼密友Peter Capek這樣評價他:「他的經歷非同一般。他因為計算機架構而聞名,但他對很多領域同樣充滿濃厚興趣。包括邏輯模擬(logic simulation)、編碼理論(coding theory)和編譯器優化(compiler optimization),他都可以把這些技術當成藝術來研究。」

關於RISC

RISC(reduced instruction set computer,精簡指令集計算機)是一種執行較少類型計算機指令的微處理器,起源於80年代的MIPS主機(即RISC機),RISC機中採用的微處理器統稱RISC處理器。這樣一來,它能夠以更快的速度執行操作(每秒執行更多百萬條指令,即MIPS)。因 RISC&CISC

RISC&CISC

為計算機執行每個指令類型都需要額外的晶體管和電路元件,計算機指令集越大就會使微處理器更複雜,執行操作也會更慢。

紐約約克鎮IBM研究中心的JohnCocke證明,計算機中約20%的指令承擔了80%的工作,於1974年,他提出RISC的概念。第一台得益於這個發現的電腦是1980年IBM的PC/XT。再後來,IBM的RISCSystem/6000也使用了這個思想。RISC這個詞本身屬於伯克利加利福尼亞大學的一個教師David Patterson。RISC這個概念還被用在Sun公司的SPARC微處理器中,並促成了現在所謂的MIPS技術的建立,它是Silicon Graphics的一部分。許多當前的微芯片現在都使用RISC概念。

RISC概念已經引領了微處理器設計的一個更深層次的思索。設計中必須考慮到:指令應該如何較好的映射到微處理器的時鐘速度上(理想情況下,一條指令應在一個時鐘周期內執行完);體系結構需要多「簡單」;以及在不訴諸於軟件的幫助下,微芯片本身能做多少工作等等。 除了性能的改進,RISC的一些優點以及相關的設計改進還有:

@如果一個新的微處理器其目標之一是不那麼複雜,那麼其開發與測試將會更快。

@使用微處理器指令的操作系統及應用程序的程序員將會發現,使用更小的指令集使得代碼開發變得更加容易。

@RISC的簡單使得在選擇如何使用微處理器上的空間時擁有更多的自由。

@比起從前,高級語言編譯器能產生更有效的代碼,因為編譯器使用RISC機器上的更小的指令集。

除了RISC,任何全指令集計算機都使用的是複雜指令集計算(CISC)。 RISC典型範例如:MIPSR3000、 HP—PA8000系列,MotorolaM88000等均屬於RISC微處理器。

主要特點

RISC微處理器不僅精簡了指令系統,採用超標量和超流水線結構;它們的指令數目只有幾十條,卻大大增強了並行處理能力。如:1987年SunMicrosystem公司推出的SPARC芯片就是一種超標量結構的RISC處理器。而SGI公司推出的MIPS處理器則採用超流水線結構,這些RISC處理器在構建並行精簡指令系統多處理機中起着核心的作用。

RISC處理器是當今UNIX領域64位多處理機的主流芯片

性能特點一:由於指令集簡化後,流水線以及常用指令均可用硬件執行;

性能特點二:採用大量的寄存器,使大部分指令操作都在寄存器之間進行,提高了處理速度;

性能特點三:採用緩存—主機—外存三級存儲結構,使取數與存數指令分開執行,使處理器可以完成儘可能多的工作,且不因從存儲器存取信息而放慢處理速度。

1、應用特點;由於RISC處理器指令簡單、採用硬布線控制邏輯、處理能力強、速度快,世界上絕大部分UNIX工作站和服務器廠商均採用RISC芯片作CPU用。如原DEC的Alpha21364、IBM的PowerPCG4、HP的PA—8900、SGI的R12000A和SUNMicrosystem公司的UltraSPARC║。

2、運行特點:RISC芯片的工作頻率一般在400MHZ數量級。時鐘頻率低,功率消耗少,溫升也少,機器不易發生故障和老化,提高了系統的可靠性。單一指令周期容納多部並行操作。在RISC微處理器發展過程中。曾產生了超長指令字(VLIW)微處理器,它使用非常長的指令組合,把許多條指令連在一起,以能並行執行。VLIW處理器的基本模型是標量代碼的執行模型,使每個機器周期內有多個操作。有些RISC處理器中也採用少數VLIW指令來提高處理速度。

RISC和CISC區別

RISC和CISC是目前設計製造微處理器的兩種典型技術,雖然它們都是試圖在體系結構、操作運行、軟件硬件、編譯時間和運行時間等諸多因素中做出某種平衡,以求達到高效的目的,但採用的方法不同,因此,在很多方面差異很大,它們主要有:

(1)指令系統:RISC設計者把主要精力放在那些經常使用的指令上,儘量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。因此,在RISC機器上實現特殊功能時,效率可能較低。但可以利用流水技術和超標量技術加以改進和彌補。而CISC計算機的指令系統比較豐富,有專用指令來完成特定的功能。因此,處理特殊任務效率較高。

(2)存儲器操作:RISC對存儲器操作有限制,使控制簡單化;而CISC機器的存儲器操作指令多,操作直接。

(3)程序:RISC匯編語言程序一般需要較大的內存空間,實現特殊功能時程序複雜,不易設計;而CISC匯編語言程序編程相對簡單,科學計算及複雜操作的程序社設計相對容易,效率較高。

(4)中斷:RISC機器在一條指令執行的適當地方可以響應中斷;而CISC機器是在一條指令執行結束後響應中斷。

(5)CPU:RISCCPU包含有較少的單元電路,因而面積小、功耗低;而CISCCPU包含有豐富的電路單元,因而功能強、面積大、功耗大。 (6)設計周期:RISC微處理器結構簡單,布局緊湊,設計周期短,且易於採用最新技術;CISC微處理器結構複雜,設計周期長。

(7)用戶使用:RISC微處理器結構簡單,指令規整,性能容易把握,易學易用;CISC微處理器結構複雜,功能強大,實現特殊功能容易。 (8)應用範圍:由於RISC指令系統的確定與特定的應用領域有關,故RISC機器更適合於專用機;而CISC機器則更適合於通用機。[6]


參考資料