Uzun mod - Long mode

Gelen x86-64 bilgisayar mimarisi , uzun mod bir moddur 64 bit işletim sistemi 64 bit erişebilir talimatları ve kayıtlarını . 64 bit programlar 64 bit modu adı verilen bir alt modda çalıştırılırken, 32 bit programlar ve 16 bit korumalı mod programları uyumluluk modu adı verilen bir alt modda yürütülür. Gerçek mod veya sanal 8086 modu programları, uzun modda yerel olarak çalıştırılamaz.

genel bakış

Bir x86-64 işlemci , işlemci uzun modda olmadığında desteklenen alt modlar olan gerçek modda veya korumalı modda çalışırken IA-32 işlemci ile aynı şekilde davranır .

CPUID genişletilmiş öznitelikler alanındaki bir bit , işlemcinin uzun moda geçip geçemeyeceği konusunda programları gerçek veya korumalı modlarda bilgilendirir, bu da bir programın bir x86-64 işlemciyi algılamasını sağlar. Bu, Intel IA-64 işlemcilerinin programların IA-32 öykünmesi altında çalışıp çalışmadıklarını algılamasına izin vermek için kullandığı CPUID öznitelik bitine benzer .

Eski çalıştıran bir bilgisayar ile BIOS , BIOS ve önyükleme yükleyicisi çalışıyorsa Gerçek modda daha sonra, 64 bit işletim sistemi çekirdeği kontrolleri ve Uzun moduna CPU geçer ve yeni başlayan çekirdek modu 64 bit kod çalıştıran konuları. UEFI çalıştıran bir bilgisayarda UEFI sabit yazılımı (CSM ve eski Option ROM hariç ), UEFI önyükleme yükleyicisi ve UEFI işletim sistemi çekirdeğinin tümü Uzun modda çalışır.

Bellek sınırlamaları

Kayıt boyutları önceki x86 mimarisinden 64 bit'e çıkarken , bellek adresleme henüz tam 64 bit'e yükseltilmedi. Şu an için, bilgisayarları tam 64 bit gerektirecek kadar yeterli bellekle donatmak pratik değildir. Durum böyle olduğu sürece, yükleme/depolama birimleri, önbellek etiketleri, MMU'lar ve TLB'ler , herhangi bir kullanılabilir bellek kaybı olmadan basitleştirilebilir. Bu sınırlamaya rağmen, yazılım tam 64 bit işaretçiler kullanılarak programlanmıştır ve bu nedenle gelecekteki işlemciler ve işletim sistemleri tarafından desteklendikçe giderek daha büyük adres alanlarını kullanabilecektir.

Mevcut Limitler

x86-64 mimarisini uygulayan ilk CPU'lar, yani AMD Athlon 64 / Opteron (K8) CPU'lar, 48 bit sanal ve 40 bit fiziksel adreslemeye sahipti .

Bu işlemcilerin sanal adres alanı, biri mümkün olan en düşük adresten başlayarak, diğeri en büyükten aşağı doğru uzanan iki 47 bitlik bölgeye bölünmüştür. Bu aralığın dışında kalan adresleri kullanmaya çalışmak genel bir koruma hatasına neden olacaktır .

Fiziksel adresleme sınırı , bilgisayar tarafından ne kadar yüklü RAM'e erişilebileceğini sınırlar. Bir ccNUMA çok işlemcili sistemde (Opteron) bu, uzak düğümlerde kurulu olan belleği içerir, çünkü CPU'lar, ana düğümde veya uzakta olmasına bakılmaksızın tüm belleği doğrudan adresleyebilir (ve önbelleğe alabilir). K8 için fiziksel bellek için 1  TB sınırı (40 bit), tipik kişisel bilgisayar standartlarına göre çok büyüktür, ancak süper bilgisayarlarda kullanım için bir sınırlama olabilir. Sonuç olarak, K10 (veya "10h") mikromimarisi 48-bit fiziksel adresleri uygular ve böylece 256 TB'a kadar RAM'i adresleyebilir  .

Gerektiğinde, mikromimari yazılımdan yan etkiler olmaksızın adım adım genişletilebilir ve eş zamanlı olarak uygulanması ile maliyetten tasarruf edilebilir. Gelecekteki genişleme için mimari, sanal adres alanını 64 bit'e genişletmeyi ve fiziksel bellek adreslemeyi 52 bit'e ( sayfa tablosu giriş biçimiyle sınırlıdır ) destekler. Bu, işlemcinin 2 64 bayt (16 eksabayt ) sanal adres alanını ve 2 52 bayt (4 petabayt ) fiziksel adres alanını adreslemesine olanak tanır .

Ayrıca bakınız

Referanslar

Dış bağlantılar