CISC

CISC

CISC(Complex Instruction Set Computer)複雜指令計算機

CISC是台式計算機系統的基本處理部件,每個微處理器的核心是運行指令的電路。指令由完成任務的多個步驟所組成,把數值傳送進暫存器或進行相加運算。CISC是一種執行整套計算機指令的微處理器,起源於80 年代的MIPS主機(即RISC 機),RISC機中採用的微處理器統稱RISC處理器。這樣一來,它能夠以更快的速度執行操作(每秒執行更多百萬條指令,即MIPS)。因為計算機執行每個指令類型都需要額外的電晶體和電路元件,計算機指令集越大就會使微處理器更複雜,執行操作也會更慢。

基本介紹

  • 中文名:複雜指令計算機
  • 外文名:Complex Instruction Set Computer
  • 簡稱:CISC
  • 性質:台式計算機系統基本處理部件
簡介,發展歷史,區別,特點,缺點,問題,

簡介

CISC是指採用一整套計算機指令進行操作的計算機。而後又出現了精簡指令集計算機,它精簡了指令集,只保留了那些常用的指令,這樣計算機能以更快的速度執行操作。
CISCCISC
CISC早期的計算機部件比較昂貴,主頻低,運算速度慢。為了提高運算速度,人們不得不將越來越多的複雜指令加入到指令系統中,以提高計算機的處理效率,這就逐步形成複雜指令集計算機體系。為了在有限的指令長度內實現更多的指令,人們又設計了操作碼擴展。然後,為了達到操作碼擴展的先決條件——減少地址碼,設計師又發現了各種定址方式,如基址定址、相對定址等,以最大限度地壓縮地址長度,為操作碼留出空間。Intel公司的X86系列CPU是典型的CISC體系的結構,從最初的8086到後來的Pentium系列,每出一代新的CPU,都會有自己新的指令,而為了兼容以前的CPU平台上的軟體,舊的CPU的指令集又必須保留,這就使指令的解碼系統越來越複雜。CISC可以有效地減少編譯代碼中指令的數目,使取指操作所需要的記憶體訪問數量達到最小化。此外CISC可以簡化編譯器結構,它在處理器指令集中包含了類似於程式設計語言結構的複雜指令,這些複雜指令減少了程式設計語言和機器語言之間的語義差別,而且簡化了編譯器的結構。
為了支持複雜指令集,CISC通常包括一個複雜的數據通路和一個微程式控制器。微程式控制器由一個微程式存儲器、一個微程式計數器(MicroPC)和地址選擇邏輯構成。在微程式存儲器中的每一個字都表示一個控制字,並且包含了一個時鐘周期內所有數據通路控制信號的值。這就意味著控制字中的每一位表示一個數據通路控制線的值。例如,它可以用於載入暫存器或者選擇ALU中的一個操作。此外每個處理器指令都由一系列的控制字組成。當從記憶體中取出這樣的一條指令時,首先把它放在指令暫存器中,然後地址選擇邏輯再根據他來確定微程式存儲器中相應的控制字順序起始地址。當把該起始地址放入MicroPC中後,就從微程式記憶體中找到相應的控制字,並利用它在數據通路中把數據從一個暫存器傳送到另一個暫存器。由於MicroPC中的地址並發遞增來指向下一個控制字,因此對於序列中的每個控制器都會重複一遍這一步驟。最終,當執行完最後一個控制字時,就從記憶體中取出一條新的指令,整個過程會重複進行。
CISCCISC
由此可見,控制字的數量及時鐘周期的數目對於每一條指令都可以是不同的。因此在CISC中很難實現指令流水操作。另外,速度相對較慢的微程式存儲器需要一個較長的時鐘周期。由於指令流水和短的時鐘周期都是快速執行程式的必要條件,因此CISC體系結構對於高效處理器而言不太合適的。
(百度名片內容和圖片來源:)

發展歷史

在計算機指令系統的最佳化發展過程中,出現過兩個截然不同的最佳化方向:CISC技術和RISC技術。CISC是指複雜指令系統計算機(Complex Instruction Set Computer);RISC是指精簡指令系統計算機(Reduced Instruction Set Computer)。這裡的計算機指令系統指的是計算機的最低層的機器指令,也就是CPU能夠直接識別的指令。隨著計算機系統的複雜,要求計算機指令系統的構造能使計算機的整體性能更快更穩定。最初,人們採用的最佳化方法是通過設定一些功能複雜的指令,把一些原來由軟體實現的、常用的功能改用硬體的指令系統實現,以此來提高計算機的執行速度,這種計算機系統就被稱為複雜指令系統計算機,即Complex Instruction Set Computer,簡稱CISC。另一種最佳化方法是在20世紀80年代才發展起來的,其基本思想是儘量簡化計算機指令功能,只保留那些功能簡單、能在一個節拍內執行完成的指令,而把較複雜的功能用一段子程式來實現,這種計算機系統就被稱為精簡指令系統計算機.即Reduced Instruction Set Computer,簡稱RISC。RISC技術的精華就是通過簡化計算機指令功能,使指令的平均執行周期減少,從而提高計算機的工作主頻,同時大量使用通用暫存器來提高子程式執行的速度。
CISCCISC
從計算機誕生以來,人們一直沿用CISC指令集方式。早期的桌面軟體是按CISC設計的,並一直沿用。桌面計算機流行的x86體系結構即使用CISC。微處理器(CPU)廠商一直在走CISC的發展道路,包括Intel、AMD,還有其他一些現在已經更名的廠商,如TI(德州儀器)、Cyrix以及VIA(威盛)等。在CISC微處理器中,程式的各條指令是按順序串列執行的,每條指令中的各個操作也是按順序串列執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。CISC架構的伺服器主要以IA-32架構(IntelArchitecture,英特爾架構)為主,而且多數為中低檔伺服器所採用。

區別

CISC(複雜指令集計算機)和RISC(精簡指令集計算機)是當前CPU的兩種架構。它們的區別在於不同的CPU設計理念和方法。早期的CPU全部是CISC架構,它的設計目的是要用最少的機器語言指令來完成所需的計算任務。RISC和CISC是設計製造微處理器的兩種典型技術,雖然它們都是試圖在體系結構、操作運行、軟體硬體、編譯時間運行時間等諸多因素中做出某種平衡,以求達到高效的目的,但採用的方法不同,因此,在很多方面差異很大,它們主要有:
CISCCISC
(1)指令系統:RISC設計者把主要精力放在那些經常使用的指令上,儘量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。因此,在RISC機器上實現特殊功能時,效率可能較低。但可以利用流水技術和超標量技術加以改進和彌補。而CISC計算機的指令系統比較豐富,有專用指令來完成特定的功能。因此,處理特殊任務效率較高。
(2)存儲器操作:RISC對存儲器操作有限制,使控制簡單化;而CISC機器的存儲器操作指令多,操作直接。
(3)程式:RISC彙編語言程式一般需要較大的記憶體空間,實現特殊功能時程式複雜,不易設計;而CISC彙編語言程式編程相對簡單,科學計算及複雜操作的程式設計相對容易,效率較高。
(4)中斷:RISC機器在一條指令執行的適當地方可以回響中斷;而CISC機器是在一條指令執行結束後回響中斷。
CISCCISC
(5)CPU:RISCCPU包含有較少的單元電路,因而面積小、功耗低;而CISCCPU包含有豐富的電路單元,因而功能強、面積大、功耗大。
(6)設計周期:RISC微處理器結構簡單,布局緊湊,設計周期短,且易於採用最新技術;CISC微處理器結構複雜,設計周期長。
(7)用戶使用:RISC微處理器結構簡單,指令規整,性能容易把握,易學易用;CISC微處理器結構複雜,功能強大,實現特殊功能容易。
(8)套用範圍:由於RISC指令系統的確定與特定的套用領域有關,故RISC機器更適合於專用機;而CISC機器則更適合於通用機。

特點

指令系統龐大,指令功能複雜,指令格式、定址方式多;絕大多數指令需多個機器周期完成;各種指令都可訪問存儲器;採用微程式控制;有專用暫存器,少量;難以用最佳化編譯技術生成高效的目標代碼程式;CISC存在的問題 :指令系統龐大,指令功能複雜,指令格式、定址方式多;執行速度慢;難以最佳化編譯,編譯程式複雜; 80%的指令在20%的運行時間內使用;無法並行;無法兼容。
導致CISC指令系統複雜的主要原因 :減少語義差距減少存儲空間,提高速度為了向上兼容 帶來的後果是電路複雜,編譯效率低無法並行;無法兼容。
典型的CISC產品 項目 VAX11/780 1978年 Intel80386 1985年 MC68020 1984年 指令條數 304 111 101 定址方式 24 11 16 指令格式 變長(2-57byte) 變長(1-17byte)16。
從CISC到RISC CISC指令系統存在的問題:20%與80%規律 CISC中,大約20%的指令占據了80%的處理機時間。其餘80%指令:使用頻度只占20%的處理機運行時間
VLSI技術的發展引起的問題 :VLSI工藝要求規整性,RISC正好適應了VLSI工藝的要求主存與控存的速度相當,簡單指令沒有必要用微程式實現,複雜指令用微程式實現與用簡單指令組成的子程式實現沒有多大區別;由於VLSI的集成度迅速提高,使得生產單晶片處理機成為可能。 軟硬體的功能分配問題複雜的指令使指令的執行周期大大加長,一般CISC處理機的指令平均執行周期都在4以上,有些在10以上 。CISC增強了指令系統功能,簡化了軟體,但硬體複雜了,設計周期加長。

缺點

採用複雜指令系統的計算機有著較強的處理高級語言的能力.這對提高計算機的性能是有益的.當計算機的設計沿著這條道路發展時.有些人沒有隨波逐流.他們回過頭去看一看過去走過的道路,開始懷疑這種傳統的做法:IBM公司設在紐約Yorktown的JhomasI.Wason研究中心於1975年組織力量研究指令系統的合理性問題.因為它當時已感到,日趨龐雜的指令系統不但不易實現.而且還可能降低系統性能。1979年以帕特遜教授為首的一批科學家也開始在美國加州大學伯克利分校開展這一研究.結果表明,CISC存在許多缺點. 首先.在這種計算機中.各種指令的使用率相差懸殊:一個典型程式的運算過程所使用的80%指令.只占一個處理器指令系統的20%.事實上最頻繁使用的指令是取、存和加這些最簡單的指令.這樣-來,長期致力於複雜指令系統的設計,實際上是在設計一種難得在實踐中用得上的指令系統的處理器.
CISCCISC
同時.複雜的指令系統必然帶來結構的複雜性.這不但增加了設計的時間與成本還容易造成設計失誤.此外.儘管VLSI技術現在已達到很高的水平,但也很難把CISC的全部硬體做在一個晶片上,這也妨礙單片計算機的發展.在CISC中,許多複雜指令需要極複雜的操作,這類指令多數是某種高級語言的直接翻版,因而通用性差.由於採用二級的微碼執行方式,它也降低那些被頻繁調用的簡單指令系統的運行速度. 因而.針對CISC的這些弊病.帕特遜等人提出了精簡指令的構想即指令系統應當只包含那些使用頻率很高的少量指令.並提供一些必要的指令以支持作業系統和高級語言.按照這個原則發展而成的計算機被稱為精簡指令集計算機(ReducedInstructionSetComputer-RISC).簡稱RISC.

問題

(1)指令的2/8規律
CISC計算機系統中,各種指令的使用頻率相差懸殊。大量的統計數字表明,大概有20%的比較簡單的指令被反覆使用,使用量約占整個程式的80%;而有80%左右的指令則很少使用,其使用量約占整個程式的20%。
VLSI製造工藝要求CPU控制邏輯的規整性
進入20世紀80年代後,VLSI技術的發展非常迅速,往往每3到4年集成度就提高了一個數量級。VLSI工藝要求規整性,而CISC處理器中,為了實現大量複雜的指令,控制邏輯極不規整,給VLSI工藝造成很大困難。
此外,以CISC處理器中,大量使用微程式技術以實現複雜的指令系統。20世紀70年代之前一般採用磁芯做主存儲器,採用半導體做控制存儲器,兩者的速度相差5~10倍。從70年代後期開始,大量使用DRAM(動態隨機存儲器)做主存儲器,使主存與控制存儲器的速度相當,從而使許多簡單指令沒有必要用微程式來實現。而複雜的指令,用微程式實現和簡單指令組成的子程式實現已經沒有多大區別。
軟硬體的功能劃分
在CISC中,為了支持目標程式的最佳化,支持高級語言和編譯程式,增加了許多複雜的指令,用一條指令來替代一串指令。這些複雜指令簡化目標程式,縮小了高級語言與機器指令之間的語義差距。但是,增加了這些複雜指令並不等於縮短了程式的執行時間。
為了實現複雜的指令,不僅增加了硬體的複雜程式,而且使指令的執行周期大大加長。例如,為了支持編譯程式的對稱性要求,一般的運算型指令都能直接訪問主存儲器,從而使指令的執行周期數增加,數據的重複利用率降低。據統計,一般CISC處理器的指令平均執行周期都在4以上,有些在10以上,如Intel公司的8088等。
這裡有一個軟體與硬體的功能如何恰當分配的問題。在CISC中,通過增強指令系統的功能,簡化了軟體,增加了硬體的複雜程度。然而,由於指令複雜了,指令的執行時間必然加長,從而有可能使整個程式的執行時間反而增加,因此,在計算機體系結構設計中,軟硬體功能劃分必須核實。
RISC 和CISC 是目前設計製造微處理器的兩種典型技術,雖然它們都是試圖在體系結構、操作運行、軟體硬體、編譯時間和運行時間等諸多因素中做出某種平衡,以求達到高效
的目的,但採用的方法不同,因此,在很多方面差異很大,它們主要有:
(1) 指令系統:RISC 設計者把主要精力放在那些經常使用的指令上,儘量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。因此,在RISC 機器上實現特殊功能時,效率可能較低。但可以利用流水技術和超標量技術加以改進和彌補。而CISC 計算機的指令系統比較豐富,有專用指令來完成特定的功能。因此,處理特殊任務效率較高。
(2) 存儲器操作:RISC 對存儲器操作有限制,使控制簡單化;而CISC 機器的存儲器操作指令多,操作直接。
(3) 程式:RISC 彙編語言程式一般需要較大的記憶體空間,實現特殊功能時程式複雜,不易設計;而CISC 彙編語言程式編程相對簡單,科學計算及複雜操作的程式讓設計相對容易,效率較高。
(4) 中斷:RISC 機器在一條指令執行的適當地方可以回響中斷;而CISC 機器是在一條指令執行結束後回響中斷。
(5) CPU:RISC CPU 包含有較少的單元電路,因而面積小、功耗低;而CISC CPU 包含有豐富的電路單元,因而功能強、面積大、功耗大。
(6) 設計周期:RISC 微處理器結構簡單,布局緊湊,設計周期短,且易於採用最新技術;CISC 微處理器結構複雜,設計周期長。
(7) 用戶使用:RISC 微處理器結構簡單,指令規整,性能容易把握,易學易用;CISC微處理器結構複雜,功能強大,實現特殊功能容易。
(8) 套用範圍:由於RISC 指令系統的確定與特定的套用領域有關,故RISC 機器更適合於專用機;而CISC 機器則更適合於通用機。

相關詞條

熱門詞條

聯絡我們