目錄
isa(instruction sets architecture)
risc架構和cisc架構比較
各種不同的架構介紹
標準的isa結構如下圖所示,其操作的階段主要分為3個:取指(fetch),解碼(decode),執行(excecute)
(這個控制暫存器和data path以及整個工作流程的動作忘了)
isa的分類:
l/s(load-store結構)所有的運算元都放在register中操作了(risc架構)
r/m(register-memory結構)單運算元的操作可能會把運算元放在memory中執行(ibm,x86)
r+m(reg+mem結構)運算元全再memory中或者全在register中或者兩者都有(vax)
cisc架構的代表: x86, c51
risc架構的**:arm, mips
指令集的區別
首先從字面上理解就能知道, cisc(complex instruction setcomputer)架構的指令數肯定是遠遠多於risc(reducedinstruction set computer)架構的.另外, risc架構下,不同指令opcode的長度是相等的, 而x86下不同的指令的長度差別很大.
暫存器的區別
cisc架構一般都提供通用暫存器a(x86下為eax),來支援大部分運算指令,但是由於指令太過複雜的原因,並不是所有的暫存器都能支援全部指令的運算,所以彙編**中會有各種針對eax的mov操作,影響效能.
指令執行所需要的時鐘週期
在cisc架構中,不同指令所需要的時鐘週期是不同的(比如乘法和加法的週期就不太可能相同).而risc架構的處理器,大部分的指令都可以在乙個時鐘週期內完成,這應該可以降低指令流水線設計的複雜度. cisc架構的很多複雜指令都通過cpu內的微碼來完成, 這樣那些微碼比較複雜的指令就需要多個時鐘週期才能完成. 指令執行需要的時鐘週期不同, 會增加指令流水線優化的難度.
訪問記憶體的區別
risc在結構設計上是乙個載入/儲存(load/store)的構架,只有載入和儲存指令可以訪問記憶體,資料處理指令只對暫存器的內容進行操作。為了加速程式的運算,risc會設定多組的暫存器,並且指定特殊用途的暫存器。cisc架構則允許資料處理指令對記憶體進行操作,因此需要的暫存器數量會比較少.另外x86架構支援cpu對非對齊的記憶體位址的訪問,這在risc架構的處理器中通常會引起cpu產生異常.其實像類似非對齊記憶體位址訪問的功能, x86也是通過cpu內微碼來實現的,效率會大大降低.
定址方式和io空間
x86架構下io空間和記憶體空間是分開的, io空間使用完全不同的指令來訪問(in, out). risc架構則不區分io空間和記憶體空間,都是直接把io空間對映到記憶體空間,直接用記憶體空間的訪問方式來操作. risc架構下對於定址方式同樣做了精簡,幾乎所有的指令都使用暫存器定址.
編譯的區別
cisc的指令豐富的優勢,使得它的編譯器可以少做很多事情,編譯器的設計更簡單.而risc在實現乙個功能的時候,需要的指令條目數會更多一些,程式也會更大.
1.dlx
2.t2
3.pentium
學習筆記之 指標
本文是學習linux c程式設計一站式學習的學習筆記 一,指標與陣列 對於 1 指標之間是可以相互比較,同時指標之間也可以做減法運算,不過是有條件的。指標之間比較的是位址,只有只想同乙個陣列中元素的指標之間相互比較才有意思。指標之間相減表示兩個指標之間相差的元素個數,同樣只有指向同乙個陣列元素的指標...
perl學習筆記之
1 表示式修飾符if unless while untile foreach 2 data檔案控制代碼 data 標誌著指令碼的邏輯結束,並開啟data檔案控制代碼用於讀取。3 m運算子 如果包圍正規表示式的定界符是斜槓,m運算子是可選的 如果忙亂變了定界符,則是要求的。格式 regular exp...
學習筆記之其它
1.清空cookie cookie.expires datetime response.cookies username expires 0 2.panel 橫向滾動,縱向自動擴充套件 3.回車轉換成tab nkeyd wn if event.keycode 13 event.keycode 9 示...