Control Register

Aus Lowlevel
Wechseln zu:Navigation,

Die Control Register sind spezielle Register der IA32 und AMD64 Architekturen, die den Betriebsmodus und einige Eigenschaften der CPU festlegen. In der AMD64-Architektur haben sie eine Breite von 64 Bit, wobei die unteren 32 Bit, den der IA32 Architektur entsprechen. Der Zugriff auf diese Register ist wie bei den Segment Registern auch nur mit einem Umweg über Allzweckregister möglich.

CR0

63-32
Reserviert
31 30 29 28-19 18 17 16 15-6 5 4 3 2 1 0
PG CD NW Reserviert AW WP Reserviert NE ET TS EM MP PE
  • PE - Protection Enbale Flag schaltet den Protected Mode ein bzw. aus (Genaueres siehe hier)
  • MP - Mit dem Monitor Coprocessor Flag kann festgelegt werden ob bei Gesetztem TS-Flag der Aufruf von WAIT/FWAIT einen Exception auslösen oder nicht (bei gesetztem MP-Flag wird die Exception ausgelöst).
  • EM - Bei gesetztem Emulation Flag löst die CPU für jede FPU-Instruktion eine #NM-Exception aus. Für Multimedia-Instruktionen wird eine #UD-Exception ausgelöst. Damit wird es dem Betriebssystem ermöglicht eine FPU zu emulieren. (WAIT/FWAIT lösen keine Exception aus)
  • TS - Das Task Switched Flag wird bei einem Hardware-Taskswitch von der CPU gesetzt und kann für Software Multitasking auch von Hand gesetzt werden. Wenn bei gesetztem TS-Flage versucht wird eine FPU- oder Multimedia-Instruktion auszuführen, dann löst die CPU eine #NM-Exception aus. Dadurch können die FPU- bzw. Multimedia-Register, die bei normalen Taskswitchs nicht beachtet werden, entsprechend gesichert und geladen werden bevor sie verwendet werden.
  • ET - Extension Type
  • NE - Numeric Error
  • WP - Write Protect
  • AM - Alignment Mask
  • NW - Not Write-throgh
  • CD - Cache Disable
  • PG - Paging schaltet den Paging-Meschanismus Ein/Aus

CR2

Bevor die CPU eine Page-Falut Exception auslöst, lädt sie die virtuelle Adresse, die den Fehler verursacht hat, in das CR2 Register.

CR3

Das CR3-Register enthält primär die Adresse des Page Directories, sowie 2 Flags, die das interne Caching innerhalb der CPU (nicht im TLB) steuern. Wenn Physical Address Extension (PAE) aktiviert ist, wird die Adresse des Page Directories ersetzt durch die um 7 Bits größere Adresse zur Page-Directory Pointer Table.

Bit Funktion Funktion mit aktivierter PAE
Bit 0-2 Reserviert
Bit 3 PWT Page-level Writes Transparant
Bit 4 PCD Page-level Cache Disable
Bit 5-11 Reserviert Page-Directory-Pointer-Table Base

Basis-Adresse der PDPT

Bit 12-31 Page-Directory Base Basis Adresse des Page-Directorys

CR4

Bit Funktion
Bit 0 VME Virtual 8086 Mode Extension
Bit 1 PVI Protected Mode Virtual Interrupt
Bit 2 TSD Time Stamp Disable
Bit 3 DE Debugging Extension
Bit 4 PSE Page Size Extension
Bit 5 PAE Physical Address Extension
Bit 6 MCE Machine Check Enable
Bit 7 PGE Page Global Enable
Bit 8 PCE Performance Monitoring Counter Enable
Bit 9 OSFXSR Operating System Support for FXSAVE and FXSTOR
Bit 10 OSXMMEXCPT Operating System Support for Unmasked SIMD Exception
Bit 11-31 Reserviert

CR8

Bit Funktion
Bit 0-3 TPL Task Priority Level
Bit 3-31 n/a

CR1, CR5-CR7 und CR9-CR15

Die Register CR1, CR5-CR7 und CR9-CR15 sind reserviert. Versucht Software dennoch darauf zuzugreifen löst die CPU eine #UD-Exception aus.

Weblinks