複製鏈接
請複製以下鏈接發送給好友

複雜指令系統計算機

鎖定
複雜指令系統計算機Complex Instruction Set Computer)簡稱CISC,是台式計算機系統的基本處理部件,每個微處理器的核心是運行指令的電路。指令由完成任務的多個步驟所組成,把數值傳送進寄存器或進行相加運算。
中文名
複雜指令系統計算機
外文名
Complex Instruction Set Computer
簡    稱
CISC
屬    性
計算機
複雜指令集計算機(英文Complex Instruction Set Computing,簡稱為CISC)是以微程序技術為基礎的、具有較複雜指令系統的計算機。複雜指令集計算機是相對於精簡指令集計算機(英文Reduced Instruction Set Computing,簡稱為RISC)而言的。

複雜指令系統計算機發展歷程

在20世紀60年代到20世紀80年代初期這一階段中,以微程序控制器(參看撇程序控制器)為基礎的處理機佔主流地位。自20世紀80年代初期、中期以後,採用硬連線控制器、且具有精簡指令集的處理機問世並迅速發展以後,就把過去二十多年中的傳統的指令系統比較複雜的計算機稱為複雜指令集計算機,其處理器稱為複雜指令集處理器。自20世紀60年代初IBM公司開始把計算機產品系列化並做到軟件兼容以後,處理器體系結構設計中採用微程序技術作為控制指令執行的控制器的基礎,是比較合適的。因為在一個產品系列中,低檔機的指令系統中的指令的基本操作可以以微程序方式存放在微存儲器中。如果高檔機要求增加功能更強的,更復雜的指令,則只需要擴充這個微存儲器的內容,增加相應的微程序,即可做到從低檔機到高檔機的軟件向上兼容。
此外,以微程序技術為基礎的控制器的實現是符合當時的計算機工藝的,因為在20世紀70年代末以前,計算機的主存儲器仍為較慢的磁心存儲器。當時,中央處理器(CPU)與微存儲器都已採用雙極型半導體集成電路或其它較快的電路,這種微存儲器的週期與中央處理機的工作節拍相吻合,允許中央處理器1拍執行1條微指令。
複雜指令系統計算機
複雜指令系統計算機(6張)
長期以來,計算機性能的提高往往是通過增加硬件的複雜性來獲得。隨着集成電路技術,特別是VLSI超大規模集成電路)技術的迅速發展,為了軟件編程方便和提高程序的運行速度,硬件工程師採用的辦法是不斷增加可實現複雜功能的指令和多種靈活的編址方式.甚至某些指令可支持高級語言語句歸類後的複雜操作。至使硬件越來越複雜,造價也相應提高.為實現複雜操作,微處理器除向程序員提供類似各種寄存器和機器指令功能外。還通過存於只讀存貯器(ROM)中的微程序來實現其極強的功能,待處理在分析每一條指令之後執行一系列初級指令運算來完成所需的功能,這種設計的型式被稱為複雜指令集計算機結構。一般CISC計算機所含的指令數目至少300條以上,有的甚至超過500條。傳統計算機大多數為複雜指令系統計算機CISC(Complex Instruction Set Computer),機器結構以存儲器為中心,認為機器執行速度和程序代碼大小成比例,絕大多數指令需要多個時鐘週期執行完畢。計算機指令系統十分龐大和複雜(指令條數多,尋址方式多,指令格式也很多),如1973年的IBM370/168基本指令208條,尋址方式4種,指令格式2~6個字節。1978年的VAⅫ/780基本指令304條,24種尋址方式,指令格式2~57個字節,其中微代碼存儲器大小約480KB。指令的控制執行是採用微程序控制技術,有專用的寄存器。這樣龐大的指令系統使得控制器十分複雜,佔用了大量CPU芯片面積,可是有些複雜指令又用得很少,難以用優化編譯生成高效目標代碼。處理器的執行效率不高。指令系統與軟件之間語義差別越來越大,軟件設計任務十分繁重,整個設計風格不是十分經濟有效的。
計算機指令系統的優化發展過程中,出現過兩個截然不同的優化方向:CISC技術和RISC技術。這裏的計算機指令系統指的是計算機的最低層的機器指令,也就是CPU能夠直接識別的指令。隨着計算機系統的複雜,要求計算機指令系統的構造能使計算機的整體性能更快更穩定。最初,人們採用的優化方法是通過設置一些功能複雜的指令,把一些原來由軟件實現的、常用的功能改用硬件的指令系統實現,以此來提高計算機的執行速度,這種計算機系統就被稱為複雜指令系統計算機。
另一種優化方法是在20世紀80年代才發展起來的,其基本思想是儘量簡化計算機指令功能,只保留那些功能簡單、能在一個節拍內執行完成的指令,而把較複雜的功能用一段子程序來實現,這種計算機系統就被稱為精簡指令系統計算機。RISC技術的精華就是通過簡化計算機指令功能,使指令的平均執行週期減少,從而提高計算機的工作主頻,同時大量使用通用寄存器來提高子程序執行的速度。
從計算機誕生以來,人們一直沿用CISC指令集方式。早期的桌面軟件是按CISC設計的,並一直沿用。桌面計算機流行的x86體系結構即使用CISC。微處理器(CPU)廠商一直在走CISC的發展道路,包括Intel、AMD,還有一些已經更名的廠商,如TI(德州儀器)、Cyrix以及ⅥA(威盛)等。在CISC微處理器中,程序的各條指令是按順序串行執行的,每條指令中的各個操作也是按順序串行執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。CISC架構的服務器主要以IA-32架構(IntelArchitecture,英特爾架構)為主,而且多數為中低檔服務器所採用。

複雜指令系統計算機複雜原因

指令系統逐漸變得複雜的原因很多,大致可歸納成3點:
1.在產品系列中追求軟件兼容性,如VAX的高檔機要和瓏cIDVAX兼容,Intd80486要和Intd8086兼容。已有的即使不合理的指令仍要保留,而新的產品又要求增加一些新的指令。
2.認為指令系統愈複雜,就可以緩解所謂的軟件危機,因此在指令系統中增加了接近於高級語言語句的指令,如新!1/Return指令,這種指令的執行機制十分複雜。此外,還認為指令系統愈豐富,編譯器愈好寫,而且編譯的效率愈高。
3.當時主存儲器價格較貴,存儲器容量有限,因而把存儲效率作為衡量處理機體系結構好壞的重要標準。這樣,在處理機中大量採用存儲效率較高的存儲器一存儲器操作指令。

複雜指令系統計算機存在問題

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

複雜指令系統計算機CISC存在的問題

1.指令系統龐大,指令功能複雜,指令格式、尋址方式多;
2.執行速度慢;
3.難以優化編譯,編譯程序複雜;
4.80%的指令在20%的運行時間使用;無法並行;無法兼容;
5.CISC強調完善的中斷控制, 勢必導致動作繁多,設計複雜,研製週期長;
6.CISC給芯片設計帶來很多困難,使芯片種類增多,出錯幾率增大,成本提高而成品率降低。

複雜指令系統計算機導致CISC指令系統複雜的主要原因

減少語義差距、減少存儲空間、提高速度,為了向上兼容帶來的後果——電路複雜,編譯效率低、無法並行;無法兼容。
典型的CISC產品
項目
時間
指令條數
VAX11/780
1978年
304
24
變長(2-57byte)
Intel80386
1985年
111
11
變長(1-17byte)
MC68020
1984年
101
16
16

複雜指令系統計算機CISC相對於RISC而存在的問題

20%與80%規律CISC中,大約20%的指令佔據了80%的處理機時間。其餘80%指令:使用頻度只佔20%的處理機運行時間VLSI技術的發展引起的問題VLSI工藝要求規整性,RISC正好適應了VLSI工藝的要求主存與控存的速度相當,簡單指令沒有必要用微程序實現,複雜指令用微程序實現與用簡單指令組成的子程序實現沒有多大區別;由於VLSI的集成度迅速提高,使得生產單芯片處理機成為可能。軟硬件的功能分配問題複雜的指令使指令的執行週期大大加長一般CISC處理機的指令平均執行週期都在4以上,有些在10以上CISC增強了指令系統功能,簡化了軟件,但硬件複雜了,設計週期加長。

複雜指令系統計算機主要區別

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