上個世紀70年代,記憶體又慢又貴, 程式設計師得想盡一切辦法節省記憶體。
那個時代的編譯器也比較差勁
所以,70年代的程式設計師幾乎都寫得一手好彙編。
為了幫助程式設計師寫好彙編,這個時候的CPU也有意把指令集做了增強。
80年代初,Intel 的x86 CPU和微軟的DOS被IBM選中,成為了IBM PC相容機的處理器和作業系統。
在摩爾定律的支配下, x86 CPU 變得越來越複雜。
最後,連編譯器都受不了了。
IBM研究院的John Cocke發現,處理器提供的大量指令集和定址方式並不會被編譯器生成的程式碼用到。
既然如此,為什麼不設計一個新的指令集,保留這最常用的20%的指令呢?
這樣CPU的設計和實現豈不更加簡單?
這就是著名的精簡指令集(RISC)的思路。
當時,IBM,加州大學伯克利分校的David Patterson,史丹佛大學的John Hennessy是RISC研究的先驅。
RISC可不僅僅把指令做了精簡,還有其他一些非常重要的提升。
新理論的誕生從來都不是一帆風順的,當時CICS的一些設計大師就持不同意見。
David Patterson憋著一口氣,帶領自己的學生,設計出了一款RISC處理器, 1982年, RISC-I處理器釋出了。
看到RISC有如此表現,一大批公司開始採用RISC的思路來設計處理器,RISC如同星火燎原之勢,迅速攻佔了伺服器端市場。
雖然牢牢統治者PC市場,但RISC的發展讓Intel 感受到了巨大的壓力,Intel決定兩條腿走路。
但是PC是x86架構,所有的作業系統和軟體都圍繞它來構建。
i860連相容的作業系統和軟體都沒有,根本就發展不下去。
既然RISC發展不起來,Intel 下定決心,拋棄RISC, 一條道走到黑。
到了1995年,Intel終於找到了辦法,那就是把x86的指令集,解碼成類似於RISC的微操作(uops),執行的時候採用RISC核心。
Intel利用從PC市場賺取的鉅額利潤,不斷投入,隨著體系結構和微電子技術的進步,CICS在結構上的劣勢逐漸消失。
在Intel 的進攻下, RISC在伺服器CPU市場節節敗退,時至今日,被Intel佔據了95%的市場。
再加上桌面市場, x86幾乎完成了壟斷。
RISC就此失敗了嗎?
在90年代和21世紀初,PC佔據了主導地位,但是一顆新星正在蟄伏,等待爆發。
但是很遺憾,Newton技術過於超前,使用者體驗糟糕,未被市場接受,以失敗告終。
但ARM積累了經驗,繼續改進技術。沒過多久,便在諾基亞等功能機上獲得了成功。
2007年, ARM終於迎來了自己的黃金時代。
後面的故事大家都比較清楚了, ARM 踏上了移動時代的浪潮,統治了手機市場。
不僅如此,統治了移動市場的ARM,開始反攻伺服器和桌上型電腦了!
2007年,David Patterson和John Hennessy由於在RISC領域的卓越貢獻獲得圖靈獎
實際上,回顧CPU過去40年的發展,Intel曾經向RISC學習,搞出了RISC核心。
而ARM也引入了程式碼密度更高的新指令集,向CISC取經。
CISC與RISC在指令集架構層面上的差異已經被彌合。