ページサイズは常にフレームサイズと同じですか?


9

ページングについて学習しています。私の本では、CPUによって生成される論理アドレスは|p|d|(ページ番号、ページオフセット)という形式であり、物理アドレスは|f|d|(フレーム番号、フレームオフセット)という形式であるとしています。また、具体的にはd、オフセットが直接コピーされて、論理アドレスから物理アドレスが生成されることも述べられています。

常識では、オフセットが直接コピーされる場合、ページサイズはフレームサイズと等しくなるはずです(そうでない場合、オフセットは対応しません)。しかし、残念ながら私の本はそれについて何も述べていません。

では、ページサイズは常にフレームサイズと同じですか?

画像を有効にしてください;)

回答:


8

ページは仮想アドレス空間の領域であり、ページフレームは物理メモリの領域です。物理メモリの領域をマップするページは、物理メモリのその部分と同じサイズでなければなりません。そうでなければ、意味がありません。

また、通常は正しく位置合わせする必要があります。たとえば、2Mbのページフレームを仮想メモリにマップしようとする場合、仮想アドレスと物理アドレスの両方を2Mbに揃える必要があります。

最近のCPUの多くは複数のページサイズをサポートしており、同じアドレス空間で異なるページサイズをサポートできるCPUもあります。たとえば、現在のIntel x86-64は、4kb、2Mb、1Gbのページサイズをサポートしています。これらの数値は任意ではありません。それらは、マルチレベルページテーブルのさまざまな「レベル」でカバーされるアドレス空間を表します。同様に、最近のARMは4kb、64kb、および1Mbページをサポートしていますが、ARMは1Mbページを「ページ」とは呼びません(「セクション」です)。ARMv4およびARMv5は、ページをさらにいわゆる「サブページ」に分割することをサポートしていました。これらはARMv7では使用できなくなりました。

興味深いことに、ページサイズと同じサイズのものがいくつかあります。概念的にはページテーブルエントリのキャッシュであるため、TLBエントリは明らかにページまたはフレームと同じサイズです。ただし、多くの場合、L1キャッシュサイズはページサイズによっても決まります。

L1キャッシュがセットアソシアティブであるとすると(直接マップされたキャッシュは実際には一方向セットアソシアティブキャッシュなので、これを制限ケースと考えることができます)、1つの「セット」サイズを作成すると便利です。物理ページ。したがって、ページサイズが4 kbで、L1キャッシュが4ウェイセットアソシアティブキャッシュであるとすると、L1キャッシュの「最適な」サイズは16 kb(4 kbの4倍)になります。自分で問題を解決できるかどうかを確認してください。


1

はい、メインメモリの内部断片化を最小限に抑えるために、ページサイズはフレームサイズと等しくなければなりません。


3
一部のアーキテクチャは、同時に複数のページサイズをサポートすることに注意してください。
TEMLIB 2015

詳しく説明できますか?私たちは、説明、正当化、または分析を提供する詳細な回答を好みます。ページサイズがフレームサイズと等しくない場合、これによりメインメモリの内部断片化がどのように増加しますか?回答を編集してこれの説明を追加できますか?
DW

上記の回答に1票を投じることは完全に間違っています。ページングは​​一定サイズのメモリブロックを使用するため、割り当てられたメモリがページより少ない場合、内部を犠牲にして外部の断片化を最小限に抑えます。したがって、pageSize = frameSizeを選択すると、OSがより幸せになると結論付けました。
Jignesh Kumar

@JigneshKumar、既存の回答にコメントするために[あなたの回答]ボックスを使用しないでください。代わりに、独自の完全な回答を提供できる質問に焦点を当てるか、有用な新しい質問をしてください。ありがとうございました!
DW
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.