Uma página é uma região do espaço de endereço virtual e um quadro de página é uma região da memória física. Uma página que mapeia uma região da memória física deve ter o mesmo tamanho que essa parte da memória física, caso contrário, não faz sentido.
Eles também geralmente devem estar alinhados corretamente. Se você tentar mapear, digamos, um quadro de página de 2Mb na memória virtual, o endereço virtual e o endereço físico deverão estar alinhados com 2Mb.
Muitas CPUs modernas suportam mais de um tamanho de página e algumas podem suportar tamanhos de página diferentes no mesmo espaço de endereço. O Intel x86-64 atual, por exemplo, suporta tamanhos de página de 4kb, 2Mb e 1Gb. Esses números não são arbitrários; eles representam o espaço de endereço coberto por diferentes "níveis" na tabela de páginas multinível. Da mesma forma, o ARM moderno suporta páginas de 4kb, 64kb e 1Mb, embora o ARM não se refira às páginas de 1Mb como "páginas" (são "seções"). O ARMv4 e o ARMv5 suportaram a divisão de páginas nas chamadas "subpáginas"; eles não estão mais disponíveis no ARMv7.
Curiosamente, existem algumas outras coisas que geralmente têm o mesmo tamanho que o tamanho da página. Obviamente, uma entrada TLB é do mesmo tamanho que uma página ou quadro, pois é conceitualmente um cache para as entradas da tabela de páginas. No entanto, o tamanho do cache L1 também é frequentemente determinado pelo tamanho da página.
Suponha que o cache L1 seja associativo ao conjunto (um cache mapeado direto é realmente apenas um cache associativo unidirecional, para que você possa pensar nisso como um caso limitante), então é conveniente fazer um "definir" o tamanho de uma página física. Portanto, suponha que o tamanho da página seja 4kb e o cache L1 seja um cache associativo de conjunto de quatro maneiras, então o tamanho "melhor" para o cache L1 é 16kb (quatro vezes 4kb). Veja se você pode resolver por si mesmo, este pode ser o caso.