回顧:
一個存盤器由存盤體和MAR+MDR構成,存盤體又由多個存盤元構成的存盤矩陣構成,
作業原理:把存盤矩陣還有譯碼器和控制電路組裝在一起就是一個存盤芯片,其中有片選線、地址線和資料線,從而理解如何尋址,
具體分類:上一章說到存盤器的分類以及組成,可以按照材料進行分類,也可以按照功能進行分類:分為Cache、記憶體、外存,
其中存盤器還分為RAM和ROM,RAM就是隨機存盤暫存器,其讀取需要的時間與存盤的位置無關,又分為SRAM和DRAM,這兩個一個是靠觸發器,一個是靠電容,
DRAM由于其為破壞性讀數,需要重繪,所以做主存更多,SRAM做快取更多,來解決CPU和存盤器速度不一致的問題,這兩個都是一斷電資料就丟失,
所以產生了ROM,
指令格式
指令尋址方式
兩種設計方式:CISC和RISC
一條指令就是機器語言的一條,軟體能作業也是因為其首先翻譯成指令,硬體在指令的指揮下進行作業,
一條指令分為操作碼+地址碼
設主存里不僅存盤指令還存盤資料,那么一條指令的執行程序是這樣的

假設執行的是
把()+(
)的內容放到
里面,下一條指令是A4
其中地址為6位,地址中放的內容是32位,放的內容可能是資料也可能是指令,如果放的是指令那么操作碼占8位,4個地址碼占6位,
因為地址碼占6位,那么一共有64個不同的位置,如上圖敘述,該程序要訪問主存4次,
如果把存放資料和指令放在兩個不同的地方,那么執行完一條指令,直接讀下一條指令就可以,即地址+1,所以增加了一個PC,計數器,會自加,這樣就不需要了,指令結構可以優化為三地址指令,又接著優化為2地址指令和一地址指令,如圖:

無論怎么改變都沒有改變指令字長,這樣的叫定長指令字結構:指令長度固定
還有變長指令字結構:隨著地址碼的減小指令變短,如:從一地址變為零地址
定長操作碼和擴展操作碼

擴展操作碼是把其中一個狀態表示為擴展狀態,然后后面的地址碼就表示操作碼,對操作碼進行擴展,地址減少,會變為n-1地址指令

就是哈夫曼編碼
如何設計可擴展指令呢?假設指令字長固定為16

資料存放
其實這部分之前也講過,大端模式:高位先放,小端模式:低位先放,
按字存盤,按位元組存盤,

還有分為對齊和不對齊
不對齊效率低,
指令尋址

基于PC的順序尋址和跳躍尋址
資料尋址有不同的尋址方式
形式地址不是真的對應存盤器中的地址,而是根據存盤特征,把他轉化為存盤器中的真實地址

這就是一地址指令,當然還有二地址指令
立即尋址

直接尋址

間接尋址
怎么判斷尋址結束呢?
增加一個位,如果為1,則表示存盤是形式地址,0的話表示存盤的是實際地址

暫存器尋址

暫存器間接尋址

隱含尋址
默認把一個運算元放到硬體里

總結

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264152.html
標籤:其他
下一篇:WXG一面涼經
