複雜指令集電腦
雖然許多設計達到了提高吞吐量和降低成本的目標,並且通過較少的指令表達了高階語言構造,但也觀察到,這並非總是如此。例如,複雜架構的低階版本(即使用較少硬體的版本)可能會導致這種情況:通過不使用複雜的指令(如過程呼叫或進入指令),而是使用一系列更簡單的指令來改善效能。
其中一個原因是,架構師(微碼編寫者)有時會「過度設計」組合語言指令,包括一些在基本硬體上無法高效實現的特性。例如,可能會出現「副作用」(超出常規標誌的操作),如設定一個暫存器或主記憶體位置,而這個暫存器或主記憶體位置可能很少使用;如果通過普通的(非重複的)內部匯流排,甚至是外部匯流排來實現這類操作,每次都會占用額外的周期,因此效率較低。
即使是在平衡的高效能設計中,高度編碼和(相對)進階的指令可能也會使解碼和執行變得複雜,在有限的電晶體預算下難以高效處理。因此,這類架構需要處理器設計者付出大量工作,在某些情況下,如果基於解碼表和/或微碼序列的更簡單但(典型地)較慢的解決方案不合適時。
RISC的理念
編輯
在許多(但不是所有)CISC處理器中,執行微碼定義的操作的電路本身是一個處理器,在許多方面,它的結構與早期的CPU設計非常相似。1970年代初期,這促使人們提出了回歸更簡單處理器設計的想法,以便在沒有(當時相對較大且昂貴的)ROM表和/或PLA結構進行排序和/或解碼的情況下,也能更容易地應對。
一款早期的(事後被標記為)RISC處理器(IBM 801 —— IBM華生研究中心,1970年代中期)是一個高度管線化的簡單機器,最初是作為CISC設計中的內部微碼核心或引擎使用的[來源請求],但它也成為了將RISC理念介紹給更廣泛觀眾的處理器。簡潔性和規律性在可見指令集中的體現,使得在機器碼級別(即編譯器所看到的層級)更容易實現重疊的處理器階段(管線)。然而,在那個層級上,管線技術已經被一些高效能CISC「超級電腦」使用,以減少指令周期時間(儘管在當時,實施時受到組件數量和布線複雜度的限制)。而CISC處理器中的內部微碼執行,可以根據具體設計的不同,更多或更少地進行管線操作,因此在某種程度上更接近於RISC處理器的基本結構。
CDC 6600超級電腦(1965年首次交付)也被事後描述為RISC[1][2]。它採用了載入-儲存架構,允許最多五個載入和兩個儲存操作同時進行,且由程式設計師控制。它還擁有多個功能單元,可以同時操作。