Page size involves a fundamental trade off in computer architecture. A system with the most logically minimal page size (1-byte pages) would have untenably large page tables comparable to the size of all system memory, making an MMU implementation impractical. For huge page sizes (=system memory, 1 page for the entire computer), the MMU is useless because it only recognizes permissions and virtual addresses for just a single unit, even if it would be trivially easy to implement. In between, we have practical and useful MMUs that offer some granularity in addressing and permissions for some trade off of complexity and memory to store the page tables.
Addressable memory has grown so much over the decades. It makes sense to move the trade off point in favor of not storing so much metadata.
Page size involves a fundamental trade off in computer architecture. A system with the most logically minimal page size (1-byte pages) would have untenably large page tables comparable to the size of all system memory, making an MMU implementation impractical. For huge page sizes (=system memory, 1 page for the entire computer), the MMU is useless because it only recognizes permissions and virtual addresses for just a single unit, even if it would be trivially easy to implement. In between, we have practical and useful MMUs that offer some granularity in addressing and permissions for some trade off of complexity and memory to store the page tables.
Addressable memory has grown so much over the decades. It makes sense to move the trade off point in favor of not storing so much metadata.