約翰·科克
約翰·科克
約翰·科克是從機械到數學、又從數學轉到計算機方向上來的學者,出生於1925年。
約翰·科克生於1925年,1946年在杜克大學(Duke University)獲得機械工程學士學位,幹了幾年實際工作以後,又回到母校讀研究生,於1956年取得數學博士學位。之後,他進入IBM,從此開始了他的計算機生涯並為IBM計算機市場的開拓和計算機科學技術的發展做出了巨大的貢獻。由於學過機械和數學,基礎紮實、知識面廣,加上科克興趣廣泛,善於動腦,他在IBM許多產品的設計開發和技術問題的解決中都起過至關重要的作用,有眾多的發明創造。在沃特森研究中心,在很長一段時間裡,每當人們有疑難問題需要解決的時候,自然就會說:“找約翰討論去”。事實上,科克也總能提出有益的建議,因而受到其同事的普遍敬仰和尊重。
模型
自RISC技術推出以來,由於其優化指令系統帶來運算速度提高的優勢,使得RISC技術在1980年代後期,逐漸在高端伺服器和工作站領域中取代了CISC 成為主流微處理器設計架構之一。各個具備一定技術實力的廠家開始在這個架構上研發出自己的處理器,經過近二十年的發展,各大型計算機和超級伺服器都採用 RISC架構的處理器。現在,RISC處理器已經成為高性能計算機的代名詞。
模型
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以外,他也受到廣泛的認可,獲得無數獎項,其中代表性的有:
ACM 圖靈獎(1987)
IEEE 計算機先驅獎(1989)
美國國家技術獎章(1991)
美國國家科學獎章(1994)
IEEE 約翰·馮諾依曼獎(1994)
國家技術勳章和國家科學獎是美國最具榮耀的兩項政府大獎,在作為科學家的一生中,他在高性能系統設計中取得的革命性進步,Cocke為信息技術的發展做出了獨一無二的創造性貢獻。在系統架構和編譯器優化研究領域取得了大量進步,他當之無愧地成為編譯器優化的奠基人和革新帶頭人。
從1957到1992年,John Cocke在工作中把自己近40年的精力毫無保留地奉獻給了IBM,他取得了了不起(amazing)的成績”,Cocke的同事兼密友Peter Capek這樣評價他:“他的經歷非同一般。他因為計算機架構而聞名,但他對很多領域同樣充滿濃厚興趣。包括邏輯模擬(logic simulation)、編碼理論(coding theory)和編譯器優化(compiler optimization),他都可以把這些技術當成藝術來研究。”
簡介
RISC(reduced instruction set computer,精簡指令集計算機)是一種執行較少類型計算機指令的微處理器,起源於80年代的MIPS主機(即RISC機),RISC機中採用的微處理器統稱RISC處理器。這樣一來,它能夠以更快的速度執行操作(每秒執行更多百萬條指令,即MIPS)。因為計算機執行每個指令類型都需要額外的晶體管和電路元件,計算機指令集越大就會使微處理器更複雜,執行操作也會更慢。
紐約約克鎮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機器是在一條指令執行結束后響應中斷。
(6)設計周期:RISC微處理器結構簡單,布局緊湊,設計周期短,且易於採用最新技術;CISC微處理器結構複雜,設計周期長。
(7)用戶使用:RISC微處理器結構簡單,指令規整,性能容易把握,易學易用;CISC微處理器結構複雜,功能強大,實現特殊功能容易。
(8)應用範圍:由於RISC指令系統的確定與特定的應用領域有關,故RISC機器更適合於專用機;而CISC機器則更適合於通用機。