2017-05-07 122 views
0

所以我剛纔讀到虛擬地址被分成1頁和2頁偏移量。虛擬內存中頁面大小的關鍵點

我也讀過頁碼指示你能夠找到正確的頁面和偏移量來獲得你想獲得物理內存的正確的「字節」。 因此,例如在4KB大小的頁面,我們有12bits保留作爲偏移自2^12 = 4096,這是4KB

我明白了。但我不明白使用頁面的原因。 我的意思是,使用4KB大小的頁面或8KB大小的頁面,爲什麼我們不能使用1byte大頁面?

我想這可能會使所有的字節逐字節讀寫,你可以說它會減慢速度。

但是,我們不是已經做了同樣的事情,首先找到頁面並找到與偏移量正確的字節?

想出大於1byte的頁面的動機是什麼? 我得到使用虛擬內存的原因:避免交換。但爲什麼我們不能用更小,更直接的一個字節大小的頁面來做到這一點?

+0

摘自[「數據中心計算機在CPU設計中的現代挑戰.Dick Sites。Google Inc. February 2015」](http://www.pdl.cmu.edu/SDI/2015/slides/DatacenterComputers.pdf):slide 27 「L1緩存大小=關聯性*頁面大小 - 需要大於4KB的頁面; 256 x 4KB的翻譯緩衝區覆蓋 僅1MB的內存 - 需要大於4KB的頁面; 256KB的RAM @ 4KB:64M頁面 - 需要大於4KB頁面「,幻燈片29」CPU設計中的現代挑戰•大量內存•更多軟件預取•更大的頁面大小「 – osgx

+0

這非常有幫助。謝謝! – Joseph

+0

有關L1大小=關聯*頁大小的更多詳細信息:它允許緩存具有VIPT速度,但沒有同名/同義詞別名,因此它也是PIPT。請參閱https://www.ece.cmu.edu/~ece447/s13/lib/exe/fetch.php?media=onur-447-spring13-lecture24-advancedcaching-afterlecture.pdf。另請參閱https://stackoverflow.com/questions/39436982/virtually-addressed-cache –

回答

0

這與磁盤上的簇大小相同。

較大的頁面=>較低的開銷(較小的頁表)

較小的頁面=>大開銷

較大的頁面=>浪費更多的內存和更多的磁盤讀取/寫入尋呼

較小的頁=>減少內存浪費,減少分頁讀寫磁盤

另外,頁面大小往往比現在小得多(512字節是常見的)。隨着內存的增長,浪費的內存分頁問題減少了,而開銷問題(由於更多的頁面)增加了。因此我們有更大的頁面大小。

一個字節的頁面沒有任何東西。您必須以完整的磁盤塊(通常爲512字節或更大)寫入磁盤。分頁單個字節將會非常慢。

現在添加頁面保護和頁面表。使用單字節頁面時,會有比可用內存更多的頁面表開銷。

+0

這非常有幫助。謝謝! – Joseph