CPU的兩種指令集 CISC RISC

2021-06-20 05:30:50 字數 1927 閱讀 4676

指令集是什麼?

指令集就是指令的集合——有朋友說了,您這不廢話嗎——哈哈,那指令又是什麼?簡單的說,就是你吩咐cpu去做什麼事情,給它下的命令。比如你有乙個老婆,你給她下指令:老婆,倒水!老婆,做飯!老婆,洗碗!這就是指令,把所有的指令總結一下,就是指令集,如果你老婆的指令集裡不包括的東西,比如拿拖鞋,那你命令她:老婆,拿拖鞋!那她是沒反應的。

cpu必須要指令集才能工作,不同的cpu有不同的指令集,基本上可以分為兩種:複雜指令集cisc和精簡指令集risc

有什麼不同呢?

cisc指令集動不動就上百條,基本上是乙個功能一條,這樣程式設計時就比較方便,大部分桌面機的cpu用的都是cisc,由於廠商的支援和開發,cisc在多**應用上表現很好。

後來人們發現,其實百分之八十的程式只用到了百分之二十的指令,其他的指令很少用到,於是就在這百分之二十的指令的基礎上,開發出了risc體系。

相比cisc指令集,risc指令集就小多了,而且格式非常標準,只提供基礎的指令,如果要實現複雜的功能,就要拆解成幾條指令來做,程式設計上會麻煩一些——當然,你要用高階語言的話是感覺不到的,只苦了寫彙編的哥們。

cisc家族都有哪些呢?基本上市面上主流的cpu都是這個家族的。

x86家族演義

當年有「八叛逆」之稱的八個才俊創辦了大名鼎鼎的仙童半導體,後來又因為各種原因陸續出瞳走自立門戶,今天整個全球晶元行業的底子,差不多都是這家公司打下的,以致於仙童有了電子行業的「西點軍校」之譽,這些人創辦的公司裡有一家叫intel,還有一家叫amd。

也是這些人趕上了好時侯,it總瓢把子藍色巨人推出了世界上第一台個人計算機——就是我們所說的pc——,cpu用的是intel的8080,ibm錄當時有意把一些業務外包,硬體上就給了intel,軟體上就給了乙個叫比爾蓋茨的小年青,既然老大看的起,小弟們自然感激,後來這倆小弟做的都不賴,沒給老大丟人。比爾當年在地下室裡憋出了dos1.0,intel後來則交出了劃時代的8086處理器。

後來pc突飛猛進,8086變成了80286、80386、486和奔騰,他們用的都是當年8086的指令集,於是這個指令集被稱做x86指令集,amd向intel購買了x86指令集的使用權,之後的故事,就是這兩家壟斷桌面處理器市場並相互競爭的歷史了。

後來intel為了更好的支援多**應用,在指令集裡多加了一些專門針對多**應用的指令,推出了mmx指令集,後來又有了sse、sse2、sse3等,amd也推出了3dnow!等。後來隨著64位cpu的問世,雙方又都推出了一些64位系統的指令集。

x86是一種cisc,intel當年同意amd使用x86一失足成千古恨,如今是絕不可能再給自己安排乙個競爭對手的,所以x86指令集一直被這兩家壟斷,後來為了**我們的龍芯,才由amd出面,居心叵測的免費給了我們種x86的低功耗方案。

而我們的龍芯呢?龍芯用的是mips,這是一種risc,這是龍芯不能跑windows的根本原因。

windows為了多**應用,使用的大量的多**擴充套件指令,在risc體系中不支援這些指令,所以risc沒辦法跑windows,其實只要微軟把windows源**重新編譯,稍做修改就可以推出支援risc的版本,可微軟和intel、amd合穿一條褲子,這麼做是不可能的。還好windows不支援還有linux,後者是源**開放的,我們自己可以隨便編譯。

risc vs cisc 準技高一籌?

risc執行效率、晶元功耗、製造成本都比cisc更好事實上,現在無論是inter還是amd,在cpu的設計上都從risc借鑑了很多優點。按說risc是業內公認的「好孩子」,尤其在在伺服器領域——沒誰會要求伺服器跑不跑的了極品飛車,伺服器也不待見windows。但無奈的是,技術改變不了市場,x86+windows一直霸佔著桌面市場,以至有"wintel"的戲稱。但在伺服器領域和嵌入式市場,risc幾乎一統天下。而linux的出現打破了windows一統天下的局面,如果用熟了linux,你會發現,risc的潛力是多麼巨大。

從這裡我們不難看出,risc前景一片光明!龍芯只要能緊緊跟上,將會大有可為。

CPU架構之精簡指令集與複雜指令集

這種 cpu 的設計中,微指令集較為精簡,每個指令的執行時間都很短,完成的動作也很單純,指令的執行效能較佳 但是若要做複雜的事情,就要由多個指令來完成。常見的 risc 微指令集 cpu 主要例如甲骨文 oracle 公司的 sparc 系列 ibm 公司的 power architecture 包...

基礎知識 CPU指令集

計算機指令就是指揮機器工作的指示和命令,程式就是一系列按一定順序排列的指令,執行程式的過程就是計算機的工作過程。指令集,就是cpu中用來計算和控制計算機系統的一套指令的集合,而每一種新型的cpu在設計時就規定了一系列與其他硬體電路相配合的指令系統。而指令集的先進與否,也關係到cpu的效能發揮,它也是...

關於CPU 指令集 架構 晶元概述

cpu,即 處理器 central processing unit 是負責計算機主要運算任務的元件。cpu執行計算任務時都需要遵從一定的規範,程式在被執行前都需要先翻譯為cpu可以理解的語言。這種規範或語言就是指令集 程式被按照某種指令集的規範翻譯為cpu可識別的底層 的過程叫做編譯 compile...