半路殺出20世紀效能王

Feb 19, 2023 4 分鐘 1637 字 #晶片

上個世紀末,Apple的Power MAC G4被美國政府限制出口,眼看CISC就要全軍覆没了

沒想到,1999年卻是眾RISC CPU大廠諸神的黃昏


事實上,當今生產的CPU全部都是RISC CPU了,網路上寫的那些RISC跟CISC的分類資料在今天可能都不太正確了。上個世紀會有RISC跟CISC的路線之爭只是被現實環境所逼不得已要做出選擇。

今天還能看到RISC與CISC之爭的遺跡大概只有指令碼的長度是固定或變動而已,內部其實都是RISC架構。

硬要分類可以說:RISC是Load/Store machine,CISC不是。但那也可以看做是解壓縮後的結果。


直到20世紀末,晶圓製造工藝才剛剛突破了微米,台灣眾晶圓代工廠還在加緊研發.6、.5、.35的CMOS邏輯製程,以今天大家常用的單位來表達就是600奈米、500奈米、350奈米。

從晶圓製造工藝就可以想像當時晶片空間是稀缺的,想要擺的電路很多,但晶片上能放的空間有限。IC設計工程師最主要的課題是選擇要塞什麼電路進晶片。

我們看一下CISC與RISC萌芽期的時空環境就可以猜出當時的工程師主要想突破目標而做出的對應選項。


1977/6/5:Apple II問市,主記憶體4KB

1977年的入門產品只有4KB


那個時空背景之下,記憶體空間最珍貴,設計CPU的工程師首先考慮的目標就是怎麼省記憶體,普遍的方案以今天的話來解釋就是:程式碼在先壓縮再存到記憶體,CPU讀取指令後先解壓縮再執行。

這就是CISC中 Complex這個字的真正意義,絕對不是指令數量多或少。

在晶片空間同樣稀缺的時代,為了解決外部記憶體容量不足而把珍貴的晶面空間拿去塞解壓縮電路實在是一個無奈的選擇,佔用空間大就是成本高的意思。效能和電力也同樣浪費去解壓縮。

CISC代表:X86和S390:

X86/64 S390

可以看到編譯出來的機械碼長度是變動的,這就是所謂大家能看到的遺蹟只剩下指令碼壓縮而已了。


1984/8/14:IBM PC/AT發佈,主記憶體256KB

1984年的入門產品有256KB


差不多過了10年,記憶體稀缺問題已經排到後面去了,這時工程師想挑戰的主要目標變成省電、省錢、高效能。

新創公司不像Intel手上抓著大客戶,也沒有歷史包袱。自然就是另闢蹊徑,直接把解壓縮電路丟掉。

除了程式碼變大這項副作用之外,走便宜路線的公司就憑著省掉解壓縮電路的空間來降低晶片成本、走高效路線的公司就把解壓縮電路換成能加快速度的電路,變成同樣的成本和製造工藝下,RISC的CPU效能都比CISC要高。

CISC代表:MIPS,SPARC,POWER,ARM:

power mips sparc64 arm

可以看到編譯出來的機械碼長度是固定的,而且固定是 $$2^n$$

不管是哪一家,編出來的指令碼一定是2、4、8……個位元組(字節)長,就算不帶參數的NOP或RET指令也要跟其他人一樣長。

有興趣可以去compiler explorer看相同的C編譯成不同CPU的機械碼


在20世紀末,

MIPS、SUN SPARC、DEC ALPHA、IBM POWER,靠著把解壓縮電路替換成其他的加速電路在性能上輾壓CISC CPU。

MicroChip、義隆、合泰、十速……則是靠著拿掉解壓縮電路縮小晶片面積,用成本優勢追殺Z80、8051、6502那些CISC核心的MCU。

一時之間,除了程式碼可能比較大以外,RISC又省電,又便宜,又簡單,效能又高,集所有優點於一身,Intel為首的CISC應該時日不多了。


在20世紀的尾聲,RISC終於盼到了他們首次高光時刻,賈伯斯帶著Power Mac G4向大家介紹世界上第一台家用超級電腦,剛開始幾個月,還被美國政府限制出口。

RISC花了10幾年的時間,似乎要把CISC整個淘汰掉了。但這是市場競爭不是技術比賽,成功的定義是看誰比較叫座,20世紀最終RISC在技術面完勝,但市場面只佔有少量的利基市場。

然而,世界在進入21世紀後正迅速發生變化……


下一篇:你中有我,我中有你


參考資料

What’s a supercomputer?

原文連結

Was Apple’s 1999 Power Mac G4 Really Classified as a Weapon?

`