tlb是把你的程式用的位址(程式位址或者虛擬位址)轉換成為訪問儲存器的實體地址的硬體。作業系統對於記憶體轉換的控制是所有軟體安全特性的關鍵。
在mips cpu(以及所有的現代cpu上)上,位址轉換以4kb大小為單位,稱為頁。頁內的12位位址只是從虛擬位址簡單地傳遞到實體地址。轉換表中每一項含有乙個頁的虛擬位址(vpn即虛擬頁號)和乙個物理頁位址(pfn代表頁幀號)。當程式給出乙個虛擬位址時,該位址和tlb中的每個vpn做比較,如果和某一項匹配就給出相應的pfn。tlb是一種稱之為相聯儲存器或者內容才址的儲存器——不是按照索引來選擇而是根據內容來選擇某一項。這邏輯是相當複雜的,其中每一項都有內建的比較器,複雜度和效能擴充套件性很差。所以典型的tlb只有16到64項。
有一組標誌位和每個pfn一起儲存並一起返回叫,標誌位讓作業系統可以指定某一頁為唯讀或者指定某頁的資料是否可以快取記憶體。
大多數現代的mips cpu(以及所有的mips32/64 cpu)採用雙倍儲存,每乙個tlb項容納一對相鄰的虛擬頁面對應的兩個單獨的實體地址。
圖5.1 : tlb資料項
圖5.1給出了乙個tlb項。每個域標上軟體載入和讀取tlb表項的時候用的cpo暫存器的名字,下一節講這些暫存器。
當你在執行乙個真正的複雜的作業系統時,軟體很快就會覆蓋比tlb的轉換錶能容納的更多位址。這可以通過把tlb當作乙個軟體管理的最近用過的位址轉換的快取記憶體來維護得到解決。當乙個需要的位址轉換不在tlb中時,就會產生乙個異常,異常處理程式算出並安裝正確的位址轉換。很難相信這種做法會有效率,但是事實確實如此。
Windows下幾個使用者目錄的獲取及其作用介紹
userprofile c users alluserprofile c programdata homepath c users userprofile c documents and setting alluserprofile c documents and setting allusers ...
什麼是ARM開發板及其硬體特性介紹
什麼是arm開發板及其硬體特性介紹 前言什麼是arm開發板 arm開發板,從概念上來講,與軟體外包非常類似 軟體外包是指軟體外包提供商為了集中精力從事核心競爭力業務,降低專案成本,同時提高專案實施的質量,將自己的軟體專案中的全部或部分工作發包給合適的軟體企業去完成 以arm7tdmi為例介紹arm開...
樹莓派及其他硬體平台國內外Linux映象站全彙總
注 全志 allwinner 瑞芯微 rockchip 德儀 ti 等核心的開發板,統稱為arm cortex a開發板。raspbian系統 於debian的armhf次級架構。debian armhf最低要求armv7架構,所以社群向樹莓派armv6架構的cpu逆向移植了debian,而形成 幾...