Extensió de la mida de la pàgina

De la Viquipèdia, l'enciclopèdia lliure
"Tradicional" 4 Paginació KiB

En informàtica, l'extensió de la mida de la pàgina (PSE) fa referència a una característica dels processadors x86 que permet pàgines més grans que la mida tradicional de 4 KiB. Es va introduir al processador Pentium original, però només va ser documentat públicament per Intel amb el llançament del Pentium Pro.[1] La instrucció CPUID es pot utilitzar per identificar la disponibilitat de PSE a les CPU x86.[2]

4 Paginació MiB mitjançant PSE

Motivació[modifica]

Imagineu l'escenari següent: un programa d'aplicació demana un Bloc d'1MiB de memòria. Per atendre aquesta sol·licitud, un sistema operatiu que admeti paginació i que s'executi en CPU x86 més antigues haurà d'assignar 256 pàgines de 4 KiB cadascun. Una sobrecàrrega d'1 Es requereix KiB de memòria per mantenir els directoris de pàgines i les taules de pàgines.[3]

En accedir-hi 1 Memòria MiB, cadascuna de les 256 entrades de pàgina s'emmagatzemaria a la memòria cau a la memòria intermèdia de traducció (TLB; una memòria cau que recorda les traduccions d'adreces virtuals a adreces físiques per a una cerca més ràpida en les peticions de memòria posteriors). Desordenar el TLB és possiblement un dels majors desavantatges de tenir diverses entrades de pàgina per al que es podria haver assignat en un sol bloc de memòria. Si s'omple el TLB, s'hauria d'alliberar una entrada de TLB, el directori de pàgines i les taules de pàgines s'haurien de "passar" a la memòria i, finalment, s'accediria a la memòria i la nova entrada es portaria al TLB.. Aquesta és una penalització severa de rendiment i possiblement va ser la motivació més gran per augmentar l'arquitectura x86 amb mides de pàgina més grans.[4]

El PSE permet mides de pàgina de 4 MiB per existir juntament amb pàgines de 4 KiB. La sol·licitud de 1 MiB descrita anteriorment es compliria fàcilment amb un sola pàgina de 4 MiB, i només requeriria una entrada TLB. Tanmateix, el desavantatge d'utilitzar mides de pàgines més grans és la fragmentació interna.

Funcionament[modifica]

En el mode protegit tradicional de 32 bits, els processadors x86 utilitzen un esquema de traducció de pàgines de dos nivells, on el registre de controlCR3apunta a un únic 4 Directori de pàgines de KiB llarg, que es divideix en entrades de 1024 × 4 bytes que apunten a 4 Taules de pàgines de KiB llargs, consistents de manera similar per entrades de 1024 × 4 bytes que apunten a 4 Pàgines llargues de KiB.

L'habilitació de PSE (fixant el bit 4, PSE, del registre del sistema CR4) canvia aquest esquema. Les entrades del directori de pàgines tenen un indicador addicional, al bit 7, anomenat PS (per a la mida de la pàgina). Aquesta marca es va ignorar sense PSE, però ara, l'entrada del directori de pàgines amb PS establert a 1 no apunta a una taula de pàgines, sinó a un únic 4 gran. Pàgina MiB. L'entrada del directori de pàgines amb PS establert a 0 es comporta com sense PSE.

Si la nova capacitat PSE-36 està disponible a la CPU, tal com s'ha comprovat amb la instrucció CPUID, llavors 4 bits més, a més dels 10 normals. bits, s'utilitzen dins d'una entrada de directori de pàgines que apunta a una pàgina gran. Això permet ubicar una pàgina gran en un espai d'adreces de 36 bits.

Si s'utilitza l'extensió d'adreça física (PAE), la mida de les pàgines grans es redueix de 4 MiB fins a 2 MiB i PSE sempre està habilitat, independentment del bit PSE a CR4.

Referències[modifica]

  1. T. Shanley. Pentium Pro and Pentium II System Architecture (en anglès). Addison-Wesley Professional, 1998, p. 439. ISBN 978-0-201-30973-7. 
  2. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3A (en anglès). Intel Corporation, agost 2007, p. 3-26 to 3-28. 
  3. «Why is the page size of Linux (x86) 4 KB, how is that calculated?» (en anglès). [Consulta: 31 desembre 2023].
  4. barkeep. «seo: how to find the total page size of a webpage - lost saloon» (en anglès americà), 18-06-2016. [Consulta: 31 desembre 2023].