Translate

星期三, 8月 08, 2012

CISC(Complex Instruction Set Computer)

CISC(Complex Instruction Set Computer) 代表電腦系統具有許多功能強大的指令,每個指令的複雜度不同,所以在CPU當中各指令的微指令 (micro instruction) 長度也有所差異,因此在CPU的線路設計上便不易做到最佳化,目前的Intel 80x86系列和Pentium都是屬於CISC。

相對的,RISC是指電腦系統僅具有少數的指令,但是每個指令的執行時間相當短,因此CPU可以用相當高的時脈 (clock) 來運算,對於少數專業的應用能發揮很大的功效,由Motorola、IBM、Apple所發展的PowerPC便屬於RISC。

目前新一代的電腦系統大多朝向RISC的晶片發展,但是傳統的CISC晶片仍有它的空間存在。使用RISC的電腦在作業系統、編譯程式上需要更多的邏輯將高階指令或是程式語言轉換為微指令 (micro-instruction)。

RISC(Reduced Instruction Set Computer) 代表電腦系統的所有指令都是利用一些簡單的指令組成的,簡單的指令代表CPU的線路可以盡量做到最佳化,而提高執行速率,相對的使得一個指令所需的時間減到最短。Apple的PowerMac便是採用RISC的PowerPC CPU,此外,IBM的RS系列電腦 (如RS/6000) 也是採用RISC技術的CPU(RS為RISC System的縮寫)。

相對於RISC,目前的IBM-PC所採用Intel 80x86、Pentium、Pentium II CPU是CISC(複雜指令集電腦),這種電腦系統的指令十分豐富,但是每個指令的執行時間可能相差懸殊,因此在CPU的工作上無法達到最佳化,但是CPU卻有豐富的指令集讓作業系統及應用程式使用。IBM的大型主機大多也採用CISC的CPU。

不管是RISC或是CISC,設計電腦的目的便是為人類服務的,對於RISC來說,因為指令集的精簡,所以許多工作都必須組合簡單的指令,而這個組合的工作便需要由『編譯程式』 (compiler) 來執行,而CISC電腦因為硬體所提供的指令集較多,所以許多工作都能夠以一個或是數個指令來代替,compiler的工作因而減少許多。

以一個數值運算程式來說,使用CISC指令集電腦的運算對於一個積分運算式可能只需要10個機器指令,而RISC電腦在執行相同的程式時,卻因為CPU本身不提供浮點數乘法的指令,所以可能需要執行上百個機器指令 (即使每一個指令只需要CISC指令10分之1的時間),而由程式語言轉換成機器指令的動作是由程式語言的Compiler來執行,所以在RISC電腦的Compiler便會較複雜 (因為同樣一個高階語言A=B*C的運算,在RISC電腦轉換為機器指令可能有許多種組合,而每一種組合的『時間/空間』組合都不盡相同。

所以RISC與CISC的取捨之間,似乎也是電腦硬體 (CPU) 與軟體 (Compiler) 的平衡之爭,應該沒有絕對優勢的一方,只能說因應不同的需求而有不同的產品,例如工作單純的印表機核心CPU,便適合使用效能穩定,但單位指令效率較佳的RISC CPU。

沒有留言: