iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0

前言

前面幾天提到了虛擬記憶體,以及一些關於實體記憶體與虛擬記憶體的映射方式,今天來講講兩個重要的設計,MMU與 TLB,這兩個部分都是屬於硬體設計的部分,以下是實際上MMU與TLB做的事情。

MMU

在前面已經講過,現代的作業系統大多是使用虛擬記憶體管理的方式,這需要處理器裡的MMU(memory management unit) 進行支持,才能夠進行查找。MMU將虛擬位址(virtual address)映射到實體位址(physical address)的方式,是利用cr3 register 又稱為 page table base register拿到分頁表的起始位置,再利用 page index(上圖的p),對分頁表查找。 cr3 是負責記錄該行程的分頁表在記憶體中的起始位置的暫存器,因為每個行程都有各自的分頁表,所以當行程轉換的時候也需要同時修改 cr3

TLB(Translation Lookaside Buffers)

上面MMU的轉換方法,會需要存取實體記憶體,也因為CPU的速度遠遠大於實體記憶體,所以虛擬位址轉成實體位址的過程,很容易變成效能的瓶頸,因此TLB就產生了,處理器會將最近使用的分頁目錄與分頁資料放在名叫TLB的快取中,藉此加速虛擬位址跟實體位址轉換的速度。另外要注意的是,當cr3 快取記憶體更新的時候,TLB也要全部刷新,避免轉換錯誤。


上一篇
Day18 page fault, LRU, second chance
下一篇
Day20 Anonymous page 與 RMAP
系列文
當你凝視linux, linux也在凝視你30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言