這個問題是個很好的問題,是因為現在對硬體、ISA啥的完全都沒有概念。所以,只好完全從頭看起。這些都是來干哈的,以及所涉及的各方面。

從最簡單的概念開始看起。

  1. 什麼是RISC和CISC?

RISC(精簡指令集計算機,Reduced Instruction Set Computer-RISC)和CISC(複雜指令集計算機,Complex Instruction Set Computer-CISC)是CPU的兩種架構,區別在於不同的CPU設計理念和方法。早期的CPU全部是CISC架構。

計算機性能的提高可以通過增加硬體的複雜性來獲得,隨著集成電路技術,特別是VLSI(超 大規模集成電路)技術的迅速發展,硬體工程師可以通過不斷增加可實現複雜功能的指令和多種靈活的編址方式軟體編程方便和提高程序的運行速度,相應地,硬體越來越複雜,造價也相應提高。通過提供複雜指令來提高性能的方法,顧名思義,也就叫做CISC。一般CISC計算機所含的指令數目至少300條,甚至超過500條。CISC的設計目的是要用最少的機器語言指令來完成所需的計算任務。比如對於乘法運算,在CISC架構的CPU上,可能只需要一條指令:MUL ADDRA, ADDRB就可以將ADDRA和ADDRB中的數相乘並將結果儲存在ADDRA中。將ADDRA, ADDRB中的數據讀入寄存器、相乘和將結果寫回內存的操作全部依賴於CPU中設計的邏輯來實現。這種架構會增加CPU結構的複雜性和對CPU工藝的要求,但對於編譯器的開發十分有利。比如上面的例子,C程序中的a*=b就可以直接編譯為一條乘法指令。如今,Intel及其兼容CPU還在使用CISC 架構。

隨著CISC的發展,它的缺點也逐漸暴露出來,日趨龐雜的指令系統不但不易實現,而且還可能降低系統性能。IBM公司的JhomasI.Wason研究中心於1975年組織力量研究指令系統的合理性問題,1979年David Patterson教授也開始UC Berkeley開展這一研究。結果發現,首先,在CISC系統中,各種指令的使用率相差懸殊:一個典型程序的運算過程所使用的80%指令,只佔處理器指令系統所有指令中的20%,事實上最頻繁使用的指令是取數據、存數據和加法這些最簡單的指令。這就說明,花大力氣設計和實現的複雜指令其實作用並不大。而且,複雜的指令系統必然帶來結構的複雜性,不但增加了設計的時間與成本還容易造成設計失誤。此外,儘管VLSI技術已達到很高的水平,但也很難把CISC的全部硬體做在一個晶元上,這也妨礙單片計算機的發展。

因而,針對CISC的這些弊病,David Patterson教授等人提出了精簡指令的設想,即指令系統應當只包含那些使用頻率很高的少量指令,並提供一些必要的指令以支持操作系統和高級語言.按照這個原則發展而成的計算機被稱為精簡指令集計算機(Reduced Instruction Set Computer-RISC)結構。RISC架構要求軟體來指定各個操作步驟。上面的例子如果要在RISC架構上實現,將ADDRA, ADDRB中的數據讀入寄存器,相乘和將結果寫回內存的操作都必須由軟體來實現,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。這種架構可以降低CPU的複雜性以及允許在同樣的工藝水平下生產出功能更強大的CPU,但對於編譯器的設計有更高的要求。

RISC-V讀作RISC Five,也即第五代精簡指令處理器。取這個名字正是因為美國伯克利研究團隊的David Patterson教授在此之前已經研製了四代精簡指令處理器晶元。

2. SPARC

2017年9月,Oracle正式放棄硬體業務,當中包括了收購自Sun Microsystems的SPARC處理器。

SUN公司推出的SPARC處理器,SPARC上的操作系統Solaris也成了歷史。

SUN Microsystems起源自斯坦福畢業生Andreas Bechtolsheim的計算機項目(這最後演變成了工作站),主要的產品是是工作站、伺服器和UNIX 操作系統。不同於當時的硬體系統的封閉,這個項目從早期開始就保持開放。之前的系統一般都是一家公司同時提供軟體和硬體,而Bechtolsheim不生產定製化的硬體,還推動不同工作站使用同一的操作系統——UNIX。這種開放性的觀點奠定了Sun Microsystems最後的基礎。在完成了這兩件事後,Bechtolsheim將他的電腦授權給不同公司生產,並將其命名為SUN(Stanford University Network的簡稱)【終於知道SUN原來不是太陽啊】。

不久之後,斯坦福另兩個畢業生Vinod Khosla 和Scott McNealy也加入進來,三人共同成立了後來的Sun Microsystems。公司成立後招的第一個員工就是伯克利的博士生Bill Joy。根據福布斯報道,1985到1989年間,Sun Microsystems的年複合增長率高達145%,是美國當時增長率最高的公司,並在1987年一躍成為全球最大的工作站供應商。

Sun Microsystems在20世紀80年代末推出了RISC架構的處理器Sparc(scalable performance architecture的簡稱),這個架構的處理器比當時流行CISC架構處理器快得多,很快就佔領了RISC處理器的市場。SPARC架構也對外完全開放,作為業界第一款具有可擴展性功能的產品,SPARC微處理器的推出為SUN贏得了高端微處理器市場的領先地位。為了推動SPARK處理器的發展,Sun Microsystems接下來推進UNIX操作系統的發展。那幾年的Sun Microsystems擁有了晶元、Solaris系統、工作站等產品,公司還在1993年進入了財富五百強,風頭盛極一時。

到了2001年,SUN成為全球增長最快的伺服器公司。根據IDC的數據,當年SUN的伺服器市場佔有率從前一年的第四上升到第二,僅僅屈居IBM之後。同時SUN還是無可爭議的UNIX伺服器市場領導者。當時SPARC的生態鏈有數百家製造商、不少的獨立晶元製造商,還有數十家公司製造自由的工作站和伺服器。但是根據Gartner的數據,從2002年開始,Sun Microsystems的營收份額每況愈下,到了2007年正式被IBM反超。而RISC+UNIX的伺服器市場也逐漸被Intel的X86+Linux/Windows拉下。

2008年,SUN投入巨額研發資金,開發面向中高端伺服器應用的「Rock」處理器,但是研發過程中「Rock」出現了比較嚴重的性能問題,並沒有達到當初Sun的預期,並且連續的財政赤字讓Sun無力再繼續負擔,被Oracle收購。

3. RISC-V

在2010年,伯克利研究團隊要設計一款CPU,然而,英特爾對X86的授權卡的很嚴,ARM的指令集授權很貴,MIPS、SPARC、Open Power也都需要各自的公司授權。在選擇很有限的情況下,伯克利的研究團隊決定從零開始設計一套全新的指令集。而被很多媒體大肆宣揚也讓人振奮的是,伯克利的研究團隊4名成員僅用了3個月就完成了RISC-V的指令集開發。目前,伯克利研究團隊已經完成了基於RISC-V指令集的順序執行的64位處理器核心(代號為Rocket),並前後基於45nm與28nm工藝進行了12次流片。Rocket晶元主頻1GHz,與ARM Cortex-A5相比,實測性能較之高10%,面積效率高49%,單位頻率動態功耗僅為Cortex-A5的43%。在嵌入式領域,Rocket已經可以和ARM爭市場了。

RISC-V指令集是基於精簡指令集計算(RISC)原理建立的開放指令集架構(ISA),RISC-V是在指令集不斷發展和成熟的基礎上建立的全新指令。RISC-V指令集完全開源,設計簡單,易於移植Unix系統,模塊化設計,完整工具鏈,同時有大量的開源實現和流片案例,已在社區得到大力支持。它雖然不是第一個開源的的指令集(ISA),但它是第一個被設計成可以根據具體場景可以選擇適合的指令集的指令集架構。基於RISC-V指令集架構可以設計伺服器CPU、家用電器CPU、工控CPU和感測器中的CPU。

在處理器領域,目前主流的架構為x86與ARM架構,但它們作為商用的架構,為了能夠保持架構的向後兼容性,其不得不保留許多過時的定義。久而久之就變得極為冗長。RISC-V架構相對而言不用向後兼容。目前的「RISC-V架構文檔」分為「指令集文檔」(riscv-spec-v2.2.pdf)和「特權架構文檔」(riscv-privileged-v1.10.pdf)。「指令集文檔」的篇幅為145頁,而「特權架構文檔」的篇幅也僅為91頁。相對上手和入門較快。

RISC-V架構相比其他成熟的商業架構的最大一個不同還在於它是一個模塊化的架構。因此,RISC-V架構不僅短小精悍,而且其不同的部分還能以模塊化的方式組織在一起,從而試圖通過一套統一的架構滿足各種不同的應用。這種模塊化是x86與ARM架構所不具備的。以ARM的架構為例,ARM的架構分為A、R和M三個系列,分別針對於Application(應用操作系統)、Real-Time(實時)和Embedded(嵌入式)三個領域,彼此之間並不兼容。

短小精悍的架構以及模塊化的哲學,使得RISC-V架構的指令數目非常的簡潔。基本的RISC-V指令數目僅有40多條,加上其他的模塊化擴展指令總共幾十條指令。

參考:

  1. [行業動態]再見,SPARC處理器!再見,SUN! - 名片全能王
  2. 大道至簡--RISC-V架構之魂(上) - zoomdys blog - CSDN博客
  3. SPARC微處理器綜述
  4. 終於有人把RISC-V講明白了-電子發燒友網
  5. 華為等巨頭加入RISC-V陣營,是為了對抗ARM嗎
  6. ARM(RISC)和x86(CISC)的技術差異 - 奮進的苦瓜 - 博客園

推薦閱讀:

相关文章