Fiziksel Adres Uzantısı - Physical Address Extension

Gelen bilgi işlem , Fiziksel Adres Uzantısı ( PAE ), bazen olarak anılacaktır Sayfa adres uzantısı x86 mimarisi için bir bellek yönetimi özelliğidir. PAE ilk olarak Intel tarafından Pentium Pro'da ve daha sonra AMD tarafından Athlon işlemcide tanıtıldı . Bu CPU'ların 4 gigabayttan (2 32 bayt) daha büyük  bir fiziksel adres alanına doğrudan erişmesine izin vererek, her biri 32 yerine 64 bitlik tablo girişleriyle üç seviyeli (iki yerine) bir sayfa tablosu hiyerarşisini tanımlar .

Uzun modda çalışırken x86-64 CPU'ları tarafından kullanılan sayfa tablosu yapısı , sayfa tablosu hiyerarşisini dört seviyeye genişletir, sanal adres alanını genişletir ve sayfa tablosunun tüm seviyelerinde ek fiziksel adres bitleri kullanarak fiziksel adres alanını genişletir. . Ayrıca, 64 bitlik sayfa tablosu girişinin en üst bitini yürütme yok veya "NX" biti olarak kullanır ve kodun ilişkili sayfadan yürütülemeyeceğini belirtir. NX özelliği, işletim sisteminin PAE'yi etkinleştirmesi koşuluyla, bu CPU'lar 32 bit işletim sistemi çalıştırdığında korumalı modda da kullanılabilir .

Tarih

PAE ilk olarak 1995 yılında Intel Pentium Pro'da uygulandı , ancak beraberindeki yonga setlerinde genellikle gerekli ekstra adres bitleri desteği yoktu.

PAE, Pentium Pro, Pentium II , Pentium III ve Pentium 4 işlemciler tarafından desteklenir. 2003 yılında piyasaya sürülen ilk Pentium M ailesi işlemcileri ("Banias") da PAE'yi destekler; ancak, CPUID bilgilerinde PAE destek bayrağını göstermezler . Ayrıca AMD Athlon (yonga setleri 32 bit adresleme ile sınırlı olmasına rağmen) ve daha sonraki AMD işlemci modelleri dahil olmak üzere AMD işlemcilerinde de mevcuttu .

Ne zaman AMD endüstri standardı onların 64 bit uzantısı tanımlı x86 mimarisi, AMD64 veya x86-64, onlar da "içinde çağrı sistemi geliştirilmiş uzun modda PAE dayanan". 64 bit sanal adresleri (Kasım 2018 itibarıyla 48 bit uygulanmıştır), 52 bit fiziksel adresleri destekler ve NX bit işlevini içerir . X86-64 işlemci başlatıldığında, işlemci Eski Moddan Uzun Moda geçirilmeden önce PAE özelliğinin etkinleştirilmesi gerekir.

Tasarım (değiştir | kaynağı değiştir)

PAE ile, x86 mimarisinin sayfa tablosu girişi 32 bitten 64 bit'e büyütülür. Bu, sayfa tablosu girişinde fiziksel sayfa adresi veya "sayfa çerçeve numarası" alanı için daha fazla alan sağlar. PAE'nin ilk uygulamalarında, sayfa çerçeve numarası alanı 20'den 24 bit'e genişletildi. Çevrilen adresten "bayt uzaklığının" boyutu hala 12 bittir, bu nedenle toplam fiziksel adres boyutu 32 bitten 36 bit'e (yani 20 + 12'den 24 + 12'ye) çıkar. Bu, CPU tarafından teorik olarak adreslenebilen fiziksel belleği 4 GB'den 64 GB'ye çıkardı.

PAE'yi destekleyen ilk işlemcilerde, daha büyük fiziksel adresler için destek, paket pinout'larında belirgindir ve adres pin atamaları A31'de durmak yerine A35'e kadar çıkar. Daha sonraki işlemci aileleri , ayrılmış bellek adres sinyallerinden yoksun olan Hypertransport veya QuickPath Interconnect gibi ara bağlantıları kullanır , bu nedenle bu ilişki daha az belirgindir.

Sanal adresin 32 bit boyutu değişmez, bu nedenle normal uygulama yazılımı 32 bit adresli komutları kullanmaya devam eder ve ( düz bellek modelinde ) 4 gigabayt sanal adres alanıyla sınırlıdır. Bu modu destekleyen işletim sistemleri , normal 4 GB sanal adres alanını fiziksel belleğe eşlemek için sayfa tablolarını kullanır; bu, işletim sistemine ve donanım platformunun geri kalanına bağlı olarak 64 GB kadar büyük olabilir. Eşleme tipik olarak her işlem için ayrı ayrı uygulanır , böylece tek bir işlem hepsine aynı anda erişemese bile ek RAM kullanışlıdır.

AMD'nin x86-64 mimarisini geliştirmesiyle ilgili daha sonraki çalışmalar , fiziksel adreslerin teorik olası boyutunu 52 bite genişletti.

Sayfa tablosu yapıları

In korumalı mod çağrı ile (bit 31 etkin PG kontrolden kayıt CR0 kümesidir), ancak PAE olmadan, x86 işlemciler iki seviyeli sayfası çeviri şemasını kullanın. Kontrol kaydı CR3 , 4 KB uzunluğunda tek bir sayfa dizininin sayfa hizalı fiziksel adresini tutar . Bu, geçerliyse , her biri 4 KB boyutunda olan sayfa tablolarının sayfa hizalı fiziksel adreslerini tutan 1024 dört baytlık sayfa dizini girişine bölünmüştür . Bunlar benzer şekilde geçerli ise, 4 KB uzun sayfa hizalanmış fiziksel adresleri tutun 1024 dört baytlık sayfa tablosu girdileri oluşur sayfalarında fiziksel bellek (RAM).

PAE'nin etkinleştirilmesi ( PAE sistem kaydının 5. bitini ayarlayarak CR4 ) bu şemada büyük değişikliklere neden olur. Varsayılan olarak, her sayfanın boyutu 4 KB olarak kalır. Sayfa tablosu ve sayfa dizinindeki her giriş, ek adres bitlerine izin vermek için 32 bit yerine 64 bit uzunluğunda (8 bayt) olur. Ancak, her tablonun boyutunu değil masa ve dizin hem şimdi sadece 512 girdilerine sahip, böylece değiştirin. Bu, orijinal şemanın girişlerinin yalnızca yarısına izin verdiği için, fazladan bir hiyerarşi düzeyi eklenmiştir, bu nedenle CR3 artık fiziksel olarak , sayfa dizinlerine dört işaretçi içeren kısa bir tablo olan Sayfa Dizini İşaretçisi Tablosunu işaret etmektedir.

Sayfa dizinindeki girişler, PS ( sayfa boyutu için ) adlı bit 7'de ek bir bayrağa sahiptir . Sistem bu biti olarak ayarladıysa 1 , sayfa dizini girişi bir sayfa tablosuna değil, 2 MB büyüklüğünde tek bir sayfaya ( Sayfa Boyutu Uzantısı ) işaret eder.

X86 ve x86-64 tarafından desteklenen tüm sayfa tablosu formatlarında , sayfa tablosu girişinin en az önemli 12 biti ya bellek yönetim birimi tarafından yorumlanır ya da işletim sistemi kullanımı için ayrılmıştır. "Yürütme yok" veya "yürütmeyi devre dışı bırakma" özelliğini uygulayan işlemcilerde, en önemli bit (bit 63) NX bitidir . Sonraki on bir en önemli bit (52'den 62'ye kadar olan bitler), hem Intel hem de AMD'nin mimari spesifikasyonları tarafından işletim sistemi kullanımı için ayrılmıştır. Bu nedenle, sayfa tablosu girişindeki 64 bitten, 12 düşük sıralı ve 12 yüksek sıralı bitin başka kullanımları vardır ve fiziksel sayfa numarası için 40 bit (12'den 51'e kadar olan bitler) kalır. Doğrusal adresten 12 bitlik "sayfa içinde ofset" ile birleştirildiğinde, fiziksel belleği adreslemek için maksimum 52 bit kullanılabilir. Bu, maksimum 2 52  bayt veya 4 petabaytlık (yaklaşık 4,5 × 10 15 bayt) RAM yapılandırmasına izin verir .

On X86-64 yerli içinde işlemciler uzun modunda , adres çeviri düzeni PAE kullanır ama dördüncü tablo, 512 girişli ekler sayfa haritası seviye 4 masa ve 512 girdileri yerine orijinal 4 girdileri bunun için sayfa dizin işaretçi tablo uzanır korumalı modda. Şu anda 48 bit sanal sayfa numarası çevrilmekte ve 256 TB'a kadar sanal adres alanı vermektedir. Sayfa tablosu girişlerinde, orijinal spesifikasyonda, 40 bitlik fiziksel sayfa numarası uygulanmaktadır.

Donanım desteği

Yazılım, bir CPU'nun PAE modunu destekleyip desteklemediğini CPUID bayrak aracılığıyla belirleyebilir PAE . PAE desteği de dahil olmak üzere birçok işlemci özelliğini listeleyen ücretsiz bir Microsoft Windows programı mevcuttur. Linux'ta, mevcut olduğunda bayrağı ve SYSLINUX Donanım Algılama Aracı gibi diğer araçları cat /proc/cpuinfo listeleyebilen komutlar . pae

İşlemciyi PAE modunda çalıştırmak için işletim sistemi desteği gereklidir. PAE'yi 4 GB'den fazla RAM'e erişmek üzere kullanmak için işletim sisteminde, yonga setinde ve ana kartta daha fazla destek gerekir. Bazı yonga setleri 4 GB'nin üzerindeki fiziksel bellek adreslerini (onaltılık olarak FFFFFFFF) desteklemez ve bazı anakartlarda 4 GB'den fazla RAM'in yüklenmesine izin verecek kadar yeterli RAM soketi yoktur. Bununla birlikte, 4 GB'den fazla RAM mevcut ve erişilebilir olmasa bile, PAE uyumlu bir CPU, örneğin Yürütme yok özelliğinin kullanımına izin vermek için PAE modunda çalıştırılabilir .

İşletim sistemi desteği

Microsoft Windows

Microsoft Windows'un 32 bit sürümleri , uygun seçenekle başlatılırsa PAE'yi destekler. Microsoft Teknik Görevlisi Mark Russinovich'e göre , 4 GB'ın üzerindeki fiziksel adreslerle karşılaşıldığında bazı sürücülerin kararsız olduğu tespit edildi.

Aşağıdaki tablo, Microsoft Windows'un 32 bit sürümleri için bellek sınırlarını gösterir:


PAE desteği ile Microsoft Windows'un 32 bit sürümlerinde bellek sınırları
Windows sürümü Hafıza sınırı
Windows 2000 Professional, Sunucu 4 CİGABAYT
Windows 2000 Gelişmiş Sunucu 8 GB
Windows 2000 Veri Merkezi 32 GB
Windows XP Başlangıç 0,5 GB
Windows XP (Diğer sürümler) 4 CİGABAYT
Windows Server 2003 Web SP2 2 GB
Windows Server 2003 Standart SP2 4 CİGABAYT
Windows Server 2003 Enterprise / Datacenter SP2 64 GB
Windows Storage Server 2003 Enterprise 8 GB
Windows Storage Server 2003 (diğer sürümler) 4 CİGABAYT
Windows Ev Sunucusu 4 CİGABAYT
Windows Vista Başlangıç 1 GB
Windows Vista (Diğer sürümler) 4 CİGABAYT
Windows Server 2008 Standard, Web 4 CİGABAYT
Windows Server 2008 Enterprise, Datacenter 64 GB
Windows 7 Başlangıç 2 GB
Windows 7 (Diğer sürümler) 4 CİGABAYT
Windows 8 (tüm sürümler) 4 CİGABAYT
Windows 10 (tüm sürümler) 4 CİGABAYT

Windows XP ve Windows XP SP1'in orijinal sürümleri, RAM'in 4 GB adres sınırını aşmasına izin vermek için PAE modunu kullandı. Ancak, Microsoft'un bu özelliği Windows XP Service Pack 2'de kaldırmasına neden olan üçüncü taraf sürücülerle uyumluluk sorunlarına yol açtı. Windows XP SP2 ve sonraki sürümleri, çalıştırmasız (NX) veya çalıştırma-devre dışı bırakma (XD ) özellikli işlemcilerde varsayılan olarak ) özelliği, NX'e izin vermek için PAE modunda çalışır. NX biti, sayfa tablosu girişinin 63. bitinde bulunur ve PAE olmadan, 32 bit sistemlerdeki sayfa tablosu girişleri yalnızca 32 bit içerir; bu nedenle NX özelliğinden yararlanmak için PAE modu gereklidir. Ancak, 32 bit Windows'un "istemci" sürümleri (Windows XP SP2 ve üstü, Windows Vista, Windows 7), bu sürümler PAE'de çalışsa bile, lisans sınırlama mekanizması aracılığıyla sürücü uyumluluğu için fiziksel adres alanını ilk 4 GB ile sınırlar NX desteği etkinse modu.

Windows 8 ve sonraki sürümler, NX ve SSE2'ye ek olarak yalnızca PAE'yi destekleyen işlemcilerde çalışacaktır .

Mac os işletim sistemi

Mac OS X Snow Leopard aracılığıyla Mac OS X Tiger , IA-32 işlemcilerde PAE ve NX bitini destekler ; Snow Leopard, IA-32 işlemcileri destekleyen son sürümdü. X86-64 işlemcilerde, tüm sürümleri MacOS 4GB yukarıdaki adres belleğine 4 seviyeli sayfalama (yerine PAE daha IA-32e sayfalama) kullanın. Mac Pro ve Xserve sistemleri 64 GB'a kadar RAM kullanabilir.

Linux

Linux çekirdeği 32 bit makinelerde bellek 64 GB'a erişimini sağlayan 1999 yılında, sürüm 2.3.23 ile başlayan tam PAE modu desteği içerir. PAE'nin etkin olduğu bir Linux çekirdeği, CPU'nun da PAE'yi desteklemesini gerektirir. Linux çekirdeği, derleme seçeneği olarak PAE'yi destekler ve ana dağıtımlar, varsayılan veya seçenek olarak bir PAE çekirdeği sağlar.

NX bit özelliği, PAE desteği ile oluşturulmuş bir çekirdek gerektirir.

Linux dağıtımları artık varsayılan olarak PAE'nin etkin olduğu bir çekirdeği yaygın olarak kullanıyor ve bu eğilim 2009'da başladı. 2012 itibariyle, Ubuntu (ve Xubuntu ve Linux Mint gibi türevler ), Red Hat Enterprise Linux 6.0 ve CentOS dahil olmak üzere birçok kişi dağıtımı durdurdu. PAE olmayan çekirdekler, bu nedenle PAE destekli donanımı zorunlu kılar. PAE gerektiren Linux dağıtımları, Pentium M ailesi işlemcilerde önyüklemeyi reddedebilir çünkü CPUID bilgilerinde PAE destek bayrağını göstermezler (dahili olarak desteklense bile). Ancak, bu kolayca en azından içinde, atlanabilir Ubuntu ile, forcepae opsiyon.

Debian (ve LMDE 2 (Linux Mint Debian Sürümü) gibi türevler ), Slackware ve LXLE dahil olmak üzere PAE dışı bir seçenek sunan dağıtımlar , bunu genellikle "i386", "i486" veya "retro" etiketlerle yapar. Lightweight Linux dağıtımı makalesi , Linux'un eski bilgisayarlara kurulmasına izin veren bazılarını listeliyor.

Diğerleri

FreeBSD ve NetBSD , çekirdek oluşturma seçeneği olarak PAE'yi de destekler. FreeBSD , 4.9 ile başlayan 4.x serisinde, 5.1 ile başlayan 5.x serisinde ve tüm 6.x ve sonraki sürümlerde PAE'yi destekler. Destek, çekirdek PAE yapılandırma seçeneğini gerektirir . Yüklenebilir çekirdek modülleri , modüller PAE etkinleştirilmiş olarak oluşturulmuşsa, yalnızca PAE etkinleştirilmiş bir çekirdeğe yüklenebilir; FreeBSD dağıtımlarındaki ikili modüller, PAE etkinleştirilmiş olarak oluşturulmaz ve bu nedenle PAE çekirdeklerine yüklenemez. Tüm sürücüler 4 GB'den fazla fiziksel belleği desteklemez; bu sürücüler PAE bulunan bir sistemde düzgün çalışmayacaktır.

OpenBSD , 2006 yılından beri standart GENERIC i386 çekirdeği ile PAE'yi desteklemektedir. GeNUA mbH, ilk uygulamayı destekledi. 5.0 yayımından bu yana PAE bir dizi değişikliğe, özellikle de PMAP için i386 MMU işlemede değişiklikler yaptı, bkz. Pmap (9).

Solaris , Solaris sürüm 7'den başlayarak PAE'yi destekler. Ancak, sürüm 7 ile kullanılan ve PAE desteğini özel olarak içermeyen üçüncü taraf sürücüler, PAE'li bir sistemde düzensiz çalışabilir veya doğrudan başarısız olabilir.

Haiku , R1 Alpha 2 sürümünden bir süre sonra PAE için ilk desteği ekledi. R1 Alpha 3'ün piyasaya sürülmesiyle PAE artık resmi olarak destekleniyor.

ArcaOS , 4 GB sınırının üzerinde RAM diskleri oluşturmak amacıyla PAE için sınırlı desteğe sahiptir.

Ayrıca bakınız

Referanslar

daha fazla okuma