PAE, Non-PAE, NX ve SSE2 Nedir?

Kategori Araçlar, Belgeler
10.05.2016
3933 Okunma

Esen;
Sanırım bir kaç yıldan fazla oldu, bir arkadaşımın eski dizüstü bilgisayarına, ona “yeni bir yaşam” vermek için “lightweight” yani sistem kaynaklarını oldukça az tüketen bir linux dağıtımı kurmaya çalışmıştım. İlk denemem de PAE ile ilgili bir hata alıyordum ve sistemin PAE destekli olmadığını, kurmaya çalıştığım sistemi kuramayacağımı anlamıştım. O zaman PAE nedir?

PAE (Physical Address Extention – Fiziksel Adres Uzantısı), 32bitlik x86 mikroişleçlerin 4GB’tan fazla olan rastgele erişimli bellekleri (RAM), işletim sistemlerinin kullanmasına olanak sağlayan teknolojidir.
Biraz da tarihi dokunuşlar yapmam gerek çünkü burada bir durum var. 32bitlik işleç mimarisi ortaya çıktığında “Protected Mode” ve “Real Mode” kavramları ortaya çıkmıştı. Ayrı bir yazının konusu olsa da kısaca değinmekte yarar var.

Gerçek (Real) Mod da sadece bilgisayarın ilk “1MB” alanı adreslenebilir. İşleç, tipik bir 8086 işleç gibi çalışır ve 20 adres bacağı kullanır. (2^20 = 1MB = 1024KB = 1048576 Bayt) Matematiksel olarak da işlecin sadece 1MB alanı adresleyebileceği anlamına gelmektedir. 16Bitlik işleçler bunu kullanılar. Zaten Intel firması burada geçmişe uyumluluğu sağlamak amacıyla işleci çeşitli çalışma modlarına bölmüştür.

Korumalı (Protected) Mod ise işlecin, en gelişmiş modudur. İşleç, bu modda 32 bitlik adresler ve yazmaçlar kullanır. 4GB fiziksel belleği bu modda adresleyebilir. Yukardaki PAE açıklamasında geçen 4GB buradan gelmektedir. Ayrıca bu modda “virtual86” adlı bir mod bulunmaktadır ki amacı; gerçek mod programlarının korumalı mod altında çalışmasını sağlamaktadır.

Kabul ediyorum pek kısa olmadı, konumuza geri dönelim ve aşağıdaki tabloyu inceleyelim:

İşleç Adres Bitleri Virtual Adres Bacakları En Çok Fiziksel Bellek
8080 16 / 16 2^16 = 65KB
8086, 8088, 80186 16 → 20 (PAE) / 20 2^20 = 1MB
80286 16 → 24 (PAE) 30 24 2^24 = 16MB
80386 32 36 32 2^32 = 4GB
Pentium Pro 32 → 36 (PAE) 52 36 2^36 = 64GB

Açıkçası tablonun yazdıklarımdan daha açıklayıcı olduğunu düşünüyorum :) Adres bacaklarına dikkat edelim.

Tablonun son satırına bakarsanız PAE desteğinin işletim sisteminin 4GB’dan daha fazla RAM kullanabilmesine olanak sağladığını görüyoruz.

Şimdi uygulamaya dönelim. Özellikle eski bilgisayarınıza Windows 8.1 kurmaya çalışırken şöyle bir hata alabilirsiniz:
PCNotsupprtWin8z
Ya da bir linux dağıtımı kurmaya çalışırken benim gibi şuna benzer bir hata alabilirsiniz:
linux-error

Bu hataların nedeni işlecinizin non-PAE bir işleç olması. Çözümü ise PAE istemeyen bir işletim sistemi kurmak! Linux dağıtımları bazı sürümlerini non-PAE olarak indirme adreslerine koyarak eski bilgisayarlara kurulabilmeyi sağlıyor. Eski bilgisayarınıza bir windows xp’de kurabilirsiniz ama artık desteklenmeyen bir sistemi kurup kullanmak ne kadar mantıklı. Bunun yerine non-PAE bir Linux dağıtımı ile güncel kalabilirsiniz.

NX – No eXecute, AMD tarafından geliştirilen bir teknolojidir. işleçler bu teknolojiyi kullanarak belirli bazı kodların yürütülmesini engelleyebilirler. Windows 8.1’den itibaren bu teknoloji kötücül yazılımlara karşı kullanıldığı için sistem tarafından istenmektedir. Windows kurulumu esnasında hata alabilirsiniz. NX teknolojisi işlecinizde yoksa yapacak birşey yok ama NX işlecinizde var ve BIOS’unuzda varsayılan olarak “DISABLE” konumunda olabilir. Anakartınıza bağlı olarak “ESC”, “F2”, “F12” veya başka bir kombinasyon ile BIOS’unuza girip NX teknolojisini etkinleştirebilirsiniz. (Genelde “Advanced” veya “Security Settings” sekmesi altında bulunmaktadır.) ARM işleç üreticileri de bu teknolojiyi kullanmakta ve adını eXecute Never olarak koymuş ve XN olarak kısaltmışlardır. XN, XD, NX aynı teknolojinin ayrı işleçlerdeki adıdır.

SSE2 (Streaming SIMD Extensions 2) ise hem Intel hem de AMD işlemcilerde desteklenen, eski bir standart. NX’i destekleyen her işleç, SSE2’yi de destekler. İşleçlerde üçüncü taraf uygulama ve sürücüler tarafından gittikçe daha çok kullanılan bir standart yönerge kümesidir.

Sysinternals sitesinde güzel bir uygulama var: CoreInfo

CoreInfo “GetLogicalProcessorInformation” APIsini kullanarak CPU hakkında ayrıntılı bilgi veren bir komut satırı uygulamasıdır. Yukarıda bağlantısını verdim, indirip kendi bilgisayarınızda kullanabilirsiniz. Şimdi örnek bir çıktı vereceğim:
coreinfooutput

Yukardaki fotoğrafı inceleyerek benim işlecim hakkında ayrıntılı bilgi sahibi olabilirsiniz. Bir başka yazıda görüşmek dileğiyle.

Comments of this post

Henüz yorum bulunmuyor!