虛擬儲存器簡介

2021-10-03 21:00:17 字數 929 閱讀 7447

把虛擬位址轉換成實際位址這項工作有儲存器管理部件(memory management unit, mmu)完成。管理方法有分段管理(segmentation)和分頁管理(paging)兩種。

分段管理

分段管理是把儲存器分為若干段,為乙個程式指定乙個或幾個「段暫存器」。這些暫存器指定當前段所在的主存的起始位址。每次訪問儲存器時,主存的位址由段暫存器的內容與程式中的虛擬位址相加得到。

除了主存的起始位址,段暫存器中可能還存有該段的大小以及對該段的訪問控制資訊。段的大小用於判斷虛擬位址是否出界,而訪問控制資訊指出該段是否已在主存以及能否對其進行讀寫或執行等訪問許可權資訊。由此可見,分段管理中每段的大小是可變的。

分頁管理

分頁管理把儲存器機械地分成若干頁,使用單一的虛擬位址,而不需要使用段暫存器。在32位架構系統中,虛擬位址是32位,可以把虛擬位址分為兩部分:虛擬頁號(高20位)和頁內位址(低12位)。可以繼續把20位虛擬頁號分為兩部分:頁目錄位址(高10位)和頁表位址(低10位)。我們首先使用頁目錄位址訪問頁目錄,從中得到頁表的起始位址,然後再使用頁表位址訪問頁表,得到實際頁號,最後再使用實際位址訪問儲存器取出資料。這樣,乙個頁目錄和乙個頁表都只佔4kb。值得注意的是,4kb的頁目錄只有乙個,但4kb的頁表有1k個。

但是上述分頁管理機制存在乙個很大的問題:為了訪問一次資料儲存器,先要訪問一次頁目錄儲存器,再要訪問一次頁表儲存器,這時得到的才是實際位址。這樣一來,我們從主存中取出乙個資料,需要先後訪問三次主存,實在太慢了!為此,我們可以使用快速位址轉換tlb來解決這一問題。

快速位址轉換tlb

tlb(translation lookaside buffer,旁路轉換緩衝)是一種與cache極其相似的電路,只是裡面的ram儲存的不是資料而是儲存器位址的實際頁號部分。

儲存器簡介

靜態儲存器 sram 靜態儲存器不需要重新整理,主要用於cache和tlb設計。特點是與cpu的介面簡單且速度快,但 高,耗電量也大。因此一般用於cache和tlb設計,但有一些高效能計算機也拿它當主存用。動態儲存器 dram 動態儲存器需要使用乙個小容量的電容來儲存資訊,用電容中有無電荷來表示1和...

虛擬儲存器

1 虛擬儲存器只是乙個容量非常大的儲存器的邏輯模型,不是任何實際的物理儲存器 2 它借助於磁碟等輔存來擴大主存的容量,使之為更大或更多的程式使用 3 程式的邏輯位址稱為虛擬位址 虛位址 程式的邏輯位址空間稱為虛擬位址空間 4 實體地址 實位址 由cpu位址引腳送出,是用於訪問主存的位址 5 設cpu...

虛擬儲存器

在系統中程序是與其它的程序共享cpu和主存資源的,程序太多就需要太多的儲存器,而且儲存器很容易受到破壞,如果某個程序不小心寫了另乙個程序使用的儲存器,它就會以 完全和程式邏輯無關的令人迷惑的方式失敗。位址空間。特點 1.主存看成是虛擬在磁碟上的位址空間 的快取記憶體,在主存裡只儲存活動區域。2.為每...