ページは仮想アドレス空間の領域であり、ページフレームは物理メモリの領域です。物理メモリの領域をマップするページは、物理メモリのその部分と同じサイズでなければなりません。そうでなければ、意味がありません。
また、通常は正しく位置合わせする必要があります。たとえば、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倍)になります。自分で問題を解決できるかどうかを確認してください。