目錄
1. 概念理解
2. 頁式虛擬儲存器
3. 段式虛擬儲存器
4. 段頁式虛擬儲存器
5. tlb 塊表
6. 例題
這樣的乙個儲存器層次是通過硬體直接實現的,作業系統是感受不到的 (透明)。
對於作業系統來說,雖然這裡是乙個層次化的設計,但是只需要給這個儲存系統乙個位址,直接要求所要返回的資料。而並不需要了解這個資料是從 cache 來的,還是從主存來的,以及 cache 和主存如何協同工作。
訪問輔助儲存器的時候不會以位元組為單位,因為輔助儲存器速度本身就慢,再以位元組為單位就更慢了。
對於磁碟(位址結構如上圖所示),定位的最小單位是扇區,傳輸的時候是以扇區為單位進行傳輸的。
不同的輔存提供的位址形式可能是不一樣的,訪問的資料塊的大小也是不一樣的。對於使用者來講,去掌握這些硬體上的細節就不合理。所以在採用大容量的輔助儲存器來進行整個系統的容量擴增的時候,引入了虛擬儲存器的概念。
虛擬儲存器是邏輯上的概念,不是指擴容用的輔助儲存器。
邏輯上的設計更關注功能是什麼,並不關注這些功能由哪些細節來實現。
虛擬儲存器功能:使用者給出乙個位址 (叫虛位址或邏輯位址) ,虛擬儲存器要給出該位址對應的資料,將這個資料反饋給使用者。
由於這個位址和實際的物理裝置聯絡是由軟體實時控制的,並沒有一一對應的關係,所以這個位址叫虛位址或邏輯位址。
實現:由輔助硬體將虛位址對映到主存中的某個單元,主存單元位址稱為實位址或實體地址。
在 cache 和主存之間位址對映是以塊為單位的,虛擬位址和實體地址之間的對映也需要有一定的單位,根據單位的不同將虛擬儲存器分為了 3 類(頁式、段式、段頁式)。
頁的大小是對應的,所以虛頁 頁內位址直接貼到主存的頁內位址。需要處理的是 虛頁號到實頁號 的對映。
做法是:將對映關係儲存在一張表(頁表)中,頁表中儲存的內容是實頁號和裝入位。
裝入位用來表明虛擬位址所指向的資料是已經放在主存中還是在外部磁碟裡。
如果是1表示已經放在主存中,直接將實頁號和頁內位址拼接一下得到主存位址,再到主存中去訪問即可;
如果是0表示資料還在輔存中,需要作業系統控制輔存將這一頁(包含要訪問資料的頁) 調入主存,再進行虛頁號到實頁號的對映,得到主存位址後,最後到主存中去訪問資料。
根據虛頁號如何找到它對應的實頁號?
硬體提供乙個頁表基址暫存器,裡面存放的是頁表起始位址,這個起始位址和虛頁號進行拼接,得到乙個完整的位址(頁表項位址),該位址指向 虛頁號所對應的實頁號所在的那個表項,這樣就找到了實頁號所在的位置。然後將實頁號取出來和頁內位址進行拼接就得到了主存位址。 得到主存當中的位址後,訪問資料需要訪問 cache -主存體系。
===> 在硬體上看起來複雜一點,但是實際操作的時候,很簡單。就是乙個把標記項替換(虛頁號 --> 實頁號)的過程。
補充: 頁表是存放在主存中的,所以 頁表起始位址拼接虛頁號得到的頁表項位址是乙個主存位址;實頁號和頁內位址拼接得到的位址也是乙個主存位址。虛擬位址在主存中是不存在的。
虛位址切分成了段號和段內位址,主存位址沒有切分,因為段的長度不一致。
分析和頁式類似。
tlb 命中的時候,說明資料已經存在主存中, cache 中未命中,則主存中必然有。
tlb 是 page 的副本,如果 page 中都沒有命中,說明資料沒有調入主存,這個時候作業系統會控制輔存將資料所在頁調入主存,並更新 tlb、page 表,然後再進行操作。
標記是虛頁號,頁框是實頁號。
組原 儲存器3
一次性程式設計,熔絲燒掉為0,不斷為1 燒掉後不能恢復 可擦除,可改寫 便宜,整合度高,電可擦除 單片儲存晶元的容量有限,連起來容量大 增加儲存字長 片選線保證同時工作 位是資料線的範圍,一次最多能同時傳輸多少位,所以d增加 a10裡有乙個非門,字是屬於位址線,2k分為兩部分 以0開頭的位址 000...
組原 儲存器5
前提 指令和資料連續 3 帶cache的rdram cpu等待i o裝置,浪費時間 在cpu與主存之間加一級快取 主存速度提高慢,跟不上cpu的速度了 重大發現 由於指令和資料在主存裡是連續存放的,一些子程式 迴圈程式和常數會多次呼叫 cpu訪存有相對的侷限性 將cpu近期要用到的資料提前送到cac...
虛擬儲存器
1 虛擬儲存器只是乙個容量非常大的儲存器的邏輯模型,不是任何實際的物理儲存器 2 它借助於磁碟等輔存來擴大主存的容量,使之為更大或更多的程式使用 3 程式的邏輯位址稱為虛擬位址 虛位址 程式的邏輯位址空間稱為虛擬位址空間 4 實體地址 實位址 由cpu位址引腳送出,是用於訪問主存的位址 5 設cpu...