請問鎖存器,暫存器,矩陣,記憶體之間的關係是什麼?

時間 2021-06-02 02:18:00

1樓:qakcn

小的矩陣用同樣的方式組成大的矩陣

乙個16×16的矩陣,行和列各4位定址,就組成乙個8位定址、1位訪問的256位大小的矩陣。

並列8個上述矩陣,8個都用同樣的位址線。但是每個都用不同的訪問線,就構成了節大小、1位元組(8位)儲存、8位定址的儲存器了。每次訪問時,8個矩陣都是存在同乙個位址,讀取時自然也就讀取同乙個位址。

再按照前面的方式排列,就能擴充套件了。1千位元組,就是節,就是4個節,那麼只要用上面的組成2×2矩陣就行了。這個矩陣需要2位定址(行列各1位),再加上前面的8位,所以總共就需要10位定址。

後面更多位元組,也只要擴大矩陣就可以了(多級矩陣也是擴大,比如乙個2×2矩陣再組成2×2矩陣,和乙個4×4矩陣是等效的)。

可以發現,2的《定址位數》次方,再乘上《訪問位數》,就是這個儲存器的大小。2=1024,1024×1位元組(8位)=節=1千位元組。

那麼以此類推,1兆位元組=2位元組,就需要20位定址。1吉位元組(約10億位元組)=2位元組,需要30位定址。

32位定址能訪問2=4,294,967,節,也就是4吉位元組。這也就是之前說的32位CPU只支援4GB的記憶體的由來了(實際上,有方法用32位CPU訪問超過4GB記憶體的,那是別的話題了)。32位指的就是記憶體定址位寬(CPU內部位址暫存器的大小)。

而現在的64位CPU,理論上支援2位元組記憶體,也就是16EB=16,384PB=16,777,216TB=17,179,869,184GB=17,592,186,044,416MB=18,014,398,509,481,984KB=18,446,744,073,709,551,616B。不過對於電腦上用的AMD64來說,實際才有48位定址,至於是多少記憶體,就留給你自己算吧。

JMP指令的轉移位址是暫存器定址或暫存器間接定址時,基本操作是什麼?

rayhunter jmp 有兩種常見的定址,一種是間接定址,一種直接定址。間接 jmp relN,彙編指令運算元 EB,E9 RIP RIP offset,間接定址,不直接設定PC值,將當前PC值加上一定的偏移量 直接 JMP r m,彙編指令運算元,FF 直接定址,設定PC的值,不是加乙個偏移量...

現代CPU的暫存器以及暫存器檔案是怎麼做的,應該不是D觸發器做的吧?

超級飛俠 籠統的說,看暫存器的多少而定。有些處理器的暫存器很多,很可能使用RAM來實現 有些比較少暫存器的會傾向於用觸發器實現。至於暫存器檔案 這個概念隱含有比較多的memory空間 幾乎沒有使用觸發器來實現的。這種情況下,相比RAM,DFF占用的物理面積太大,功耗太大了。晶元的成本直接跟面積相關。...

Java中 棧記憶體的訪問速度僅次於暫存器,如何做到的?

Ivony 嚴格的來說,這句話把棧 堆疊 和暫存器相提並論原則上就錯了。這兩者完全不對等,沒有可比性。棧 堆疊 的對等的概念是堆,託管堆。說白了,我們說這個變數在棧上,實際上這個變數說不定已經到了暫存器裡面了。那怎麼比較什麼所謂的棧和暫存器的訪問速度呢? 劉梓牧 因為有空間區域性性 locality...