Kontrol kaydı - Control register

Bir kontrol kaydı a, işlemcinin kayıt değişiklikleri ya da genel davranışı kontrol CPU veya diğer dijital aygıt. Kontrol kayıtları tarafından gerçekleştirilen ortak görevler arasında kesinti kontrolü, adresleme modunun değiştirilmesi , sayfalama kontrolü ve yardımcı işlemci kontrolü bulunur.

x86 serisindeki kontrol kayıtları

CR0

CR0 kaydı, 386 ve daha yüksek işlemcilerde 32 bit uzunluğundadır . On x64 işlemciler uzun modunda , bu (ve diğer kontrol kayıtları) 64 bit uzunluğundadır. CR0, işlemcinin temel çalışmasını değiştiren çeşitli kontrol bayraklarına sahiptir.

Biraz İsim Ad Soyad Açıklama
0 PE Korumalı Modu Etkinleştir 1 ise sistem korumalı modda ise sistem gerçek moddadır.
1 milletvekili Yardımcı işlemciyi izleyin WAIT/FWAIT komutlarının CR0'da TS bayrağıyla etkileşimini kontrol eder
2 EM öykünme Ayarlanırsa, x87 kayan nokta birimi yok , temizse x87 FPU mevcut
3 TS Görev değiştirildi Yalnızca x87 talimatı kullanıldıktan sonra bir görev anahtarına x87 görev bağlamının kaydedilmesine izin verir
4 ET Uzantı türü 386'da , harici matematik yardımcı işlemcisinin 80287 veya 80387 olup olmadığını belirlemeye izin verildi.
5 NE sayısal hata Ayarlandığında dahili x87 kayan nokta hata raporlamasını etkinleştirin , aksi takdirde PC stili x87 hata algılamayı etkinleştirin
16 WP Yazma koruması Ayarlandığında, ayrıcalık seviyesi 0 olduğunda CPU salt okunur sayfalara yazamaz
18 NS hizalama maskesi AM ayarlanmışsa, AC bayrağı ( EFLAGS kaydında) ayarlanmışsa ve ayrıcalık seviyesi 3 ise hizalama kontrolü etkinleştirilir
29 KB Yazmamak Genel olarak yazma yoluyla önbelleğe almayı etkinleştirir/devre dışı bırakır
30 CD Önbelleği devre dışı bırak Bellek önbelleğini genel olarak etkinleştirir/devre dışı bırakır
31 PG sayfalama 1 ise, sayfalamayı etkinleştirin ve § CR3 kaydını kullanın , aksi takdirde sayfalamayı devre dışı bırakın.

CR1

Ayrılmış, CPU, erişmeye çalışırken # UD istisnası atar .

CR2

Sayfa Hatası Doğrusal Adresi (PFLA) adlı bir değer içerir. Bir sayfa hatası oluştuğunda, programın erişmeye çalıştığı adres CR2 kaydında saklanır.

CR3

4 KiB sayfalı adres çevirisinde CR3'ün tipik kullanımı 

Kullanılır sanal adresleme etkinleştirildiğinde, dolayısıyla PG bit CR0 içinde ayarlandığında. CR3, işlemcinin geçerli görev için sayfa dizinini ve sayfa tablolarını bularak doğrusal adresleri fiziksel adreslere çevirmesini sağlar . Tipik olarak, CR3'ün üst 20 biti , ilk sayfa dizini girişinin fiziksel adresini saklayan sayfa dizini taban kaydı (PDBR) olur. İçinde PCIDE bit ise CR4 ayarlanır, en düşük 12 bit için kullanılan işlem-bağlam tanımlayıcı (PCID).

CR4

Virtual-8086 desteği, I/O kesme noktalarının etkinleştirilmesi, sayfa boyutu uzantısı ve makine denetimi istisnaları gibi işlemleri kontrol etmek için korumalı modda kullanılır .

Biraz İsim Ad Soyad Açıklama
0 VME Sanal 8086 Modu Uzantıları Ayarlanırsa, virtual-8086 modunda sanal kesme bayrağı (VIF) desteğini etkinleştirir.
1 PVI Korumalı mod Sanal Kesintiler Ayarlanırsa, korumalı modda sanal kesme bayrağı (VIF) desteğini etkinleştirir.
2 TSD Zaman Damgası Devre Dışı Ayarlanırsa , RDTSC komutu yalnızca 0 halkasındayken yürütülebilir , aksi takdirde RDTSC herhangi bir ayrıcalık düzeyinde kullanılabilir.
3 DE Hata Ayıklama Uzantıları Ayarlanırsa, G/Ç alanı erişimindeki kesintilere dayalı hata ayıklama kaydı etkinleştirir .
4 PSE Sayfa Boyutu Uzantısı Ayarlanmadıysa, sayfa boyutu 4 KiB'dir, aksi takdirde sayfa boyutu 4 MiB'a yükseltilir

PAE etkinleştirilirse veya işlemci x86-64 uzun modundaysa bu bit yok sayılır.

5 PAE Fiziksel Adres Uzantısı Ayarlanırsa, 32 bit sanal adresleri genişletilmiş 36 bit fiziksel adreslere çevirmek için sayfa tablosu düzenini değiştirir.
6 MCE Makine Kontrolü İstisnası Ayarlanırsa, makine kontrol kesintilerinin gerçekleşmesini sağlar.
7 PGE Sayfa Global Etkin Ayarlanırsa, adres çevirileri (PDE veya PTE kayıtları) adres boşlukları arasında paylaşılabilir.
8 PCE Performans İzleme Sayacı etkinleştirme Ayarlanırsa, RDPMC herhangi bir ayrıcalık düzeyinde yürütülebilir, aksi takdirde RDPMC yalnızca halka 0'da kullanılabilir.
9 OSFXSR FXSAVE ve FXRSTOR komutları için işletim sistemi desteği Ayarlanırsa , Akış SIMD Uzantıları (SSE) talimatlarını ve hızlı FPU kaydetme ve geri yüklemeyi etkinleştirir .
10 OSXMMEXCPT Maskelenmemiş SIMD Kayan Nokta İstisnaları için İşletim Sistemi Desteği Ayarlanırsa, maskesiz SSE istisnalarını etkinleştirir.
11 UMIP Kullanıcı Modu Talimatı Önleme Ayarlanırsa, CPL > 0 ise SGDT, SIDT, SLDT, SMSW ve STR komutları yürütülemez.
12 LA57 (belirtilmemiş) Ayarlanırsa, 5 Düzeyli Çağrıyı etkinleştirir.
13 VMXE Sanal Makine Uzantılarını Etkinleştir bkz. Intel VT-x x86 sanallaştırma .
14 SMXE Daha Güvenli Mod Uzantıları Etkinleştir bkz. Güvenilir Yürütme Teknolojisi (TXT)
16 FSGSBASE RDFSBASE, RDGSBASE, WRFSBASE ve WRGSBASE yönergelerini etkinleştirir.
17 PCİDE PCID Etkinleştir Ayarlanırsa, süreç bağlam tanımlayıcılarını (PCID'ler) etkinleştirir.
18 OSXSAVE XSAVE ve İşlemci Genişletilmiş Durumları Etkinleştir
20 SMEP Yönetici Modu Yürütme Korumasını Etkinleştir Ayarlanırsa, kodun daha yüksek bir halkada yürütülmesi bir hata oluşturur .
21 SMAP Süpervizör Modu Erişim Engelleme Etkinleştir Ayarlanırsa, daha yüksek bir halkadaki verilere erişim bir hata oluşturur .
22 PKE Koruma Anahtarını Etkinleştir Intel 64 ve IA-32 Mimarileri Yazılım Geliştirici Kılavuzuna bakın.

CR5-7

Ayrılmış, CR1 ile aynı durumda.

x86-64 serisinde ek Kontrol kayıtları

EFER

Genişletilmiş Özellik Etkinleştirme Kaydı (EFER), SYSCALL /SYSRET komutunun etkinleştirilmesine ve daha sonra uzun moda girmek ve çıkmak için AMD K6 işlemcisine eklenen modele özgü bir kayıttır . Bu kayıt mimari hale AMD64 ve tarafından kabul edilmiştir Intel IA32_EFER olarak. MSR numarası 0xC0000080'dir.

Biraz Amaç
0 SCE (Sistem Çağrı Uzantıları)
1 DPE (yalnızca AMD K6: Veri Önceden Getirmeyi Etkinleştir)
2 SEWBED (yalnızca AMD K6: Spekülatif EWBE# Devre Dışı Bırakma)
3 GEWBED (yalnızca AMD K6: Global EWBE# Devre Dışı Bırakma)
4 L2D (yalnızca AMD K6: L2 Önbelleği Devre Dışı Bırakma)
5-7 Ayrılmış, Sıfır Olarak Oku
8 LME (Uzun Mod Etkinleştirme)
9 Rezerve
10 LMA (Uzun Mod Aktif)
11 NXE ( Yürütme Yok Etkinleştirme)
12 SVME ( Güvenli Sanal Makine Etkinleştirme)
13 LMSLE (Uzun Mod Segment Sınırı Etkin)
14 FFXSR (Hızlı FXSAVE/FXRSTOR)
15 TCE (Çeviri Önbelleği Uzantısı)
16–63 Rezerve

CR8

CR8, REX öneki kullanılarak 64 bit modunda erişilebilen yeni bir kayıttır. CR8, harici kesmelere öncelik vermek için kullanılır ve görev öncelikli kayıt (TPR) olarak adlandırılır.

AMD64 mimari yazılım 15 dış kesme öncelikli sınıfları kadar tanımlamasına izin verir. Öncelik sınıfları 1'den 15'e kadar numaralandırılmıştır, öncelik sınıfı 1 en düşük ve öncelik sınıfı 15 en yüksektir. CR8, bir görev önceliği belirtmek için dört düşük sıralı biti kullanır ve kalan 60 bit rezerve edilir ve sıfırlarla yazılmalıdır.

Sistem yazılımı, düşük öncelikli kesintilerin yüksek öncelikli bir görevi kesintiye uğratmasını geçici olarak engellemek için TPR kaydını kullanabilir. Bu, engellenecek olan en yüksek öncelikli kesmeye karşılık gelen bir değerle TPR yüklenerek gerçekleştirilir. Örneğin, TPR'yi 9 (1001b) değerinde yüklemek, öncelik sınıfı 9 veya daha düşük olan tüm kesmeleri engellerken, öncelik sınıfı 10 veya daha fazla olan tüm kesmelerin tanınmasına izin verir. TPR'yi 0 ile yüklemek, tüm harici kesmeleri etkinleştirir. TPR'yi 15 (1111b) ile yüklemek, tüm harici kesmeleri devre dışı bırakır.

Sıfırlama sırasında TPR 0 olarak temizlenir.

XCR0 ve XSS

XCR0 veya Genişletilmiş Kontrol Kaydı 0, XSAVE/XRSTOR talimatlarını kullanarak belirli CPU özellikleriyle ilgili kayıtların depolanmasını veya yüklenmesini değiştirmek için kullanılan bir kontrol kaydıdır. Ayrıca, işlemcinin ilgili talimatlarını yürütme yeteneğini etkinleştirmek veya devre dışı bırakmak için bazı özelliklerle birlikte kullanılır. Ayrıcalıklı XSETBV ve ayrıcalıksız XGETBV talimatları kullanılarak erişilebilir.

Biraz Amaç
0 X87 (x87 FPU/MMX Durumu, not, '1' olmalıdır)
1 SSE (MXCSR ve XMM kayıtları için XSAVE özellik seti etkinleştirme)
2 AVX (AVX etkinleştirme ve XSAVE özellik seti, YMM kayıtlarını yönetmek için kullanılabilir)
3 BNDREG (MPX etkinleştirme ve XSAVE özellik seti, BND kayıtları için kullanılabilir)
4 BNDCSR (MPX etkinleştirme ve XSAVE özellik seti, BNDCFGU ve BNDSTATUS kayıtları için kullanılabilir)
5 opmask (AVX-512 etkinleştirme ve XSAVE özellik seti, AVX opmask, AKA k-mask, regs için kullanılabilir)
6 ZMM_hi256 (AVX-512 etkinleştirme ve XSAVE özellik seti, alt ZMM kayıtlarının üst yarısı için kullanılabilir)
7 Hi16_ZMM (AVX-512 etkinleştirme ve XSAVE özellik seti, üst ZMM kayıtları için kullanılabilir)
8 Rezerve
9 PKRU (XSAVE özellik seti, koruma anahtarları mekanizmasının bir parçası olan PKRU kaydı için kullanılabilir .)
10 Ayrılmış ('0' olmalıdır)
11 Kontrol Akışı Uygulama Teknolojisi (CET) Kullanıcı Durumu
12 Kontrol Akışı Uygulama Teknolojisi (CET) Süpervizör Durumu
13–63 Ayrılmış ('0' olmalıdır)

Ayrıca 0DA0h adresinde bulunan IA32_XSS MSR vardır. IA32_XSS MSR, "süpervizör" durumu olarak kabul edilen ve normal programlara görünmez olması gereken XCR0 bitlerini kontrol eder. Çalıştığı verilere süpervizör durumu ekleyerek ayrıcalıklı XSAVES ve XRSTORS komutları ile çalışır. Basitçe söylemek gerekirse, X87 durumu XCR0'da ve PT durumu IA32_XSS'de etkinleştirildiyse, XSAVE komutu yalnızca X87 durumunu depolarken, ayrıcalıklı XSAVES hem X87 hem de PT durumlarını depolayacaktır. Bir MSR olduğu için RDMSR ve WRMSR komutları kullanılarak erişilebilir.

Biraz Amaç
0–7 Rezerve; 0 olmalıdır.
8 PT (Dokuz İşlemci İzleme MSR'sinin kaydedilmesini ve yüklenmesini sağlar.)
9–12 Rezerve; 0 olmalıdır.
13 HDC (IA32_PM_CTL1 MSR'nin kaydedilmesini ve yüklenmesini sağlar.)
14–63 Rezerve; 0 olmalıdır.

Ayrıca bakınız

Referanslar

Dış bağlantılar