Table 56-2 on page 1347 identifies the MSRs implemented in the Pentium® 4 and Pentium® M processors. Starting with the Pentium® 4, all MSRs in the table with shaded register names (and starting with “IA32_”) are defined as part of the IA32 architecture and, as such, are guaranteed to be implemented at the same MSR addresses in future IA32 processors.
ECX = Reg Address before executing RDMSR or WRMSR) | Register Name | 1st in | Description | |
Hex | Decimal | |||
Miscellaneous MSRs | ||||
000h | 0 | IA32_P5_MC_ADDR | P5 | Please note that, although these are Pentium®-specific MSRs, access attempts in all post-Pentium® processors do not cause an exception. |
001h | 1 | IA32_P5_MC_TYPE | ||
010h | 16 | IA32_TSC | The Time Stamp Counter (TSC) register was introduced in the Pentium® and is present in all subsequent IA32 processors. | |
017h | 23 | IA32_PLATFORM_ID | PIII | This register was added in the Pentium® III as an aid to the Microcode update feature. For more information, refer to “MicroCode Update Feature” on page 631. |
01Bh | 27 | IA32_APIC_BASE | Pro |
|
02Ah | 42 | MSR_EBC_HARD_ POWERON | P4 | External Bus (FSB) Control Hard Power On register. See “Program-Accessible Startup Features” on page 869 for a detailed description of this read-only register. |
02Bh | 43 | MSR_EBC_SOFT_ POWERON | External Bus (FSB) Control Soft Power On register (R/W). Processor Soft Power-On Configuration. Enables and disables processor features. See “Program-Accessible Startup Features” on page 869 for a detailed description of this register. | |
02Ch | 44 | MSR_EBC_ FREQUENCY_ID | Read-only. External Bus (FSB) Control Frequency ID Register. Processor Frequency Configuration. Indicates the speed at which the FSB's BCLK is running:
Encoding Scalable Bus Speed
| |
1A0h | 416 | IA32_MISC_ENABLE | Enable Miscellaneous Processor Features. (R/W) Allows a variety of processor functions to be enabled or disabled. See Figure 56-21 on page 1373 for more information. | |
1D9h | 473 | IA32_DEBUGCTL | Pro | The DEBUGCTL register implements bits that control miscellaneous debug-related functions. See Figure 54-4 on page 1311 for more information. |
0277h | 631 | IA32_CR_PAT | PII | Page Attribute Table. Note that the Intel® Volume 3: System Programming Guide, Order Number 245472-008, incorrectly refers the reader to a discussion of the Fixed-Range MTRRs for a description of this register. The PAT feature was first introduced in the Pentium® II Xeon processor. Refer to “PAT Feature (Page Attribute Table)” on page 797 for a detailed description of the PAT feature. |
600h | 1536 | IA32_DS_AREA | P4 | DS Save Area (RW). Points to the Debug Store buffer management area, which is used to manage the BTS and PEBS buffers. See “The Debug Store (DS) Mechanism” on page 1366 for a detailed description of this register. |
Microcode Update MSRs | ||||
079h | 121 | IA32_BIOS_UPDT_TRIG | Pro | The BIOS Update-related MSRs. See “MicroCode Update Feature” on page 631 for a detailed description of the Microcode Update feature. |
08Bh | 139 | IA32_BIOS_SIGN | ||
Performance Monitoring MSRs The Pentium® 4 processor increased the number of performance counters from 2 to 18. See “The Performance Monitoring Facility” on page 1371 for a detailed description of the Pentium® 4's Performance Monitoring facility. | ||||
300h | 768 | MSR_BPU_COUNTER0 | P4 | Performance Counters BPU = Branch Prediction Unit |
301h | 769 | MSR_BPU_COUNTER1 | ||
302h | 770 | MSR_BPU_COUNTER2 | ||
303h | 771 | MSR_BPU_COUNTER3 | ||
360h | 864 | MSR_BPU_CCCR0 | Counter Control and Configuration Registers. BPU = Branch Prediction Unit | |
361h | 865 | MSR_BPU_CCCR1 | ||
362h | 866 | MSR_BPU_CCCR2 | ||
363h | 867 | MSR_BPU_CCCR3 | ||
3B2h | 946 | MSR_BPU_ESCR0 | ESCR = Event Select Control Registers BPU = Branch Prediction Unit | |
3B3h | 947 | MSR_BPU_ESCR1 | ||
304h | 772 | MSR_MS_COUNTER0 | Performance Counters MS = Microcode Store ROM | |
305h | 773 | MSR_MS_COUNTER1 | ||
306h | 774 | MSR_MS_COUNTER2 | ||
307h | 775 | MSR_MS_COUNTER3 | ||
364h | 868 | MSR_MS_CCCR0 | P4 | Counter Control and Configuration Registers. MS = Microcode Store ROM |
365h | 869 | MSR_MS_CCCR1 | ||
366h | 870 | MSR_MS_CCCR2 | ||
367h | 871 | MSR_MS_CCCR3 | ||
3C0h | 960 | MSR_MS_ESCR0 | ESCR = Event Select Control Registers MS = Microcode Store ROM | |
3C1h | 961 | MSR_MS_ESCR1 | ||
308h | 776 | MSR_FLAME_COUNTER0 | Performance Counters FLAME = ? | |
309h | 777 | MSR_FLAME_COUNTER1 | ||
30Ah | 778 | MSR_FLAME_COUNTER2 | ||
30Bh | 779 | MSR_FLAME_COUNTER3 | ||
368h | 872 | MSR_FLAME_CCCR0 | Counter Control and Configuration Registers FLAME = ? | |
369h | 873 | MSR_FLAME_CCCR1 | ||
36Ah | 874 | MSR_FLAME_CCCR2 | ||
36Bh | 875 | MSR_FLAME_CCCR3 | ||
3A6h | 934 | MSR_FLAME_ESCR0 | ESCR = Event Select Control Registers FLAME = ? | |
3A7h | 935 | MSR_FLAME_ESCR1 | ||
30Ch | 780 | MSR_IQ_COUNTER0 | P4 | Performance Counters IQ = Instruction Queue |
30Dh | 781 | MSR_IQ_COUNTER1 | ||
30Eh | 782 | MSR_IQ_COUNTER2 | ||
30Fh | 783 | MSR_IQ_COUNTER3 | ||
310h | 784 | MSR_IQ_COUNTER4 | ||
311h | 785 | MSR_IQ_COUNTER5 | ||
36Ch | 876 | MSR_IQ_CCCR0 | Counter Control and Configuration Registers. IQ = Instruction Queue | |
36Dh | 877 | MSR_IQ_CCCR1 | ||
36Eh | 878 | MSR_IQ_CCCR2 | ||
36Fh | 879 | MSR_IQ_CCCR3 | ||
370h | 880 | MSR_IQ_CCCR4 | ||
371h | 881 | MSR_IQ_CCCR5 | ||
3BAh | 954 | MSR_IQ_ESCR0 | ESCR = Event Select Control Registers IQ = Instruction Queue | |
3BBh | 955 | MSR_IQ_ESCR1 | ||
3A0h | 928 | MSR_BSU_ESCR0 | ESCR = Event Select Control Registers BSU = Bus Sequence Unit | |
3A1h | 929 | MSR_BSU_ESCR1 | ||
3A2h | 930 | MSR_FSB_ESCR0 | ESCR = Event Select Control Registers FSB = Front-Side Bus | |
3A3h | 931 | MSR_FSB_ESCR1 | ||
3A4h | 932 | MSR_FIRM_ESCR0 | ESCR = Event Select Control Registers FIRM = ? | |
3A5h | 933 | MSR_FIRM_ESCR1 | ||
3A8h | 936 | MSR_DAC_ESCR0 | P4 | ESCR = Event Select Control Registers DAC = Data cache Access Control unit |
3A9h | 937 | MSR_DAC_ESCR1 | ||
3AAh | 938 | MSR_MOB_ESCR0 | ESCR = Event Select Control Registers MOB = Memory Order Buffer | |
3ABh | 939 | MSR_MOB_ESCR1 | ||
3ACh | 940 | MSR_PMH_ESCR0 | ESCR = Event Select Control Registers PMH = ? | |
3ADh | 941 | MSR_PMH_ESCR1 | ||
3AEh | 942 | MSR_SAAT_ESCR0 | ESCR = Event Select Control Registers SAAT = ? | |
3AFh | 943 | MSR_SAAT_ESCR1 | ||
3B0h | 944 | MSR_U2L_ESCR0 | ESCR = Event Select Control Registers U2L = ? | |
3B1h | 945 | MSR_U2L_ESCR1 | ||
3B4h | 948 | MSR_IS_ESCR0 | ESCR = Event Select Control Registers IS = ? | |
3B5h | 949 | MSR_IS_ESCR1 | ||
3B6h | 950 | MSR_ITLB_ESCR0 | ESCR = Event Select Control Registers ITLB = Instruction Translation Lookaside Buffer | |
3B7h | 951 | MSR_ITLB_ESCR1 | ||
3B8h | 952 | MSR_CRU_ESCR0 | ESCR = Event Select Control Registers CRU = Cache References Unit | |
3B9h | 953 | MSR_CRU_ESCR1 | ||
3CCh | 972 | MSR_CRU_ESCR2 | ||
3CDh | 973 | MSR_CRU_ESCR3 | ||
3E0h | 992 | MSR_CRU_ESCR4 | ||
3E1h | 993 | MSR_CRU_ESCR5 | ||
3BCh | 956 | MSR_RAT_ESCR0 | P4 | ESCR = Event Select Control Registers RAT = Register Alias Table |
3BDh | 957 | MSR_RAT_ESCR1 | ||
3BEh | 958 | MSR_SSU_ESCR0 | ESCR = Event Select Control Registers SSU = ? | |
3C2h | 962 | MSR_TBPU_ESCR0 | ESCR = Event Select Control Registers TBPU = Type of mis-predicted branches by BPU | |
3C3h | 963 | MSR_TBPU_ESCR1 | ||
3C4h | 964 | MSR_TC_ESCR0 | ESCR = Event Select Control Registers TC = Trace Cache | |
3C5h | 965 | MSR_TC_ESCR1 | ||
3C8h | 968 | MSR_IX_ESCR0 | ESCR = Event Select Control Registers IX = ? | |
3C9h | 969 | MSR_IX_ESCR1 | ||
3CAh | 970 | MSR_ALF_ESCR0 | ESCR = Event Select Control Registers ALF = ? | |
3F0h | 1008 | MSR_TC_PRECISE_EVENT | See “Front-End Tagging” on page 1411. | |
3F1h | 1009 | IA32_PEBS_ENABLE | See Figure 56-26 on page 1417. | |
3F2h | 1010 | MSR_PEBS_MATRIX_VERT | See “Replay Tagging” on page 1413. | |
Memory Type and Range Registers (MTRRs) They are optional in the architecture, but are implemented in the Pentium® Pro through the Pentium® 4 and Pentium® M. The MTRR registers permit the BIOS and/or the OS to define the rules of conduct that the processor must use when accessing various areas of memory. See “MTRRs Added” on page 572 for a detailed description of the MTRRs. | ||||
0FEh | 254 | IA32_MTRRCap | Pro | Variable-Range MTRRs. |
200h | 512 | IA32_MTRR_PHYSBASE0 | ||
201h | 513 | IA32_MTRR_PHYSMASK0 | ||
202h | 514 | IA32_MTRR_PHYSBASE1 | ||
203h | 515 | IA32_MTRR_PHYSMASK1 | ||
204h | 516 | IA32_MTRR_PHYSBASE2 | ||
205h | 517 | IA32_MTRR_PHYSMASK2 | ||
206h | 518 | IA32_MTRR_PHYSBASE3 | ||
207h | 519 | IA32_MTRR_PHYSMASK3 | ||
208h | 520 | IA32_MTRR_PHYSBASE4 | ||
209h | 521 | IA32_MTRR_PHYSMASK4 | Pro | |
20Ah | 522 | IA32_MTRR_PHYSBASE5 | ||
20Bh | 523 | IA32_MTRR_PHYSMASK5 | ||
20Ch | 524 | IA32_MTRR_PHYSBASE6 | ||
20Dh | 525 | IA32_MTRR_PHYSMASK6 | ||
20Eh | 526 | IA32_MTRR_PHYSBASE7 | ||
20Fh | 527 | IA32_MTRR_PHYSMASK7 | ||
250h | 592 | IA32_MTRR_FIX64K_00000 | Fixed-Range MTRRs. | |
258h | 600 | IA32_MTRR_FIX16K_80000 | ||
259h | 601 | IA32_MTRR_FIX16K_A0000 | ||
268h | 616 | IA32_MTRR_FIX4K_C0000 | ||
269h | 617 | IA32_MTRR_FIX4K_C8000 | ||
26Ah | 618 | IA32_MTRR_FIX4K_D0000 | ||
26Bh | 619 | IA32_MTRR_FIX4K_D8000 | ||
26Ch | 620 | IA32_MTRR_FIX4K_E0000 | ||
26Dh | 621 | IA32_MTRR_FIX4K_E8000 | ||
26Eh | 622 | IA32_MTRR_FIX4K_F0000 | ||
26Fh | 623 | IA32_MTRR_FIX4K_F8000 | ||
2FFh | 767 | IA32_MTRR_DEF_TYPE | MTRR Default Type register. | |
MCA Registers See “The Machine Check Architecture” on page 1363 for a detailed description of the Pentium® 4's implementation of the MCA. | ||||
179h | 377 | IA32_MCG_CAP | Pro | MC Global Count and Present register. |
17Ah | 378 | IA32_MCG_STATUS | MC Global Status register. Note: In the Intel® Volume 3: System Programming Guide, Order Number 245472-008, this register is erroneously called IA32_STATUS. | |
17Bh | 379 | IA32_MCG_CTL | MC Global Control register. Note: In the Intel® Volume 3: System Programming Guide, Order Number 245472-008, this register is erroneously called IA32_CTL. | |
180h | 384 | IA32_MCG_EAX | P4 | Machine Check EAX Save State. |
181h | 385 | IA32_MCG_EBX | Machine Check EBX Save State. | |
182h | 386 | IA32_MCG_ECX | Machine Check ECX Save State. | |
183h | 387 | IA32_MCG_EDX | Machine Check EDX Save State. | |
184h | 388 | IA32_MCG_ESI | Machine Check ESI Save State. | |
185h | 389 | IA32_MCG_EDI | Machine Check EDI Save State. | |
186h | 390 | IA32_MCG_EBP | Machine Check EBP Save State. | |
187h | 391 | IA32_MCG_ESP | Machine Check ESP Save State. | |
188h | 392 | IA32_MCG_EFLAGS | Machine Check EFLAGS Save State. | |
189h | 393 | IA32_MCG_EIP | Machine Check EIP Save State. | |
18Ah | 394 | IA32_MCG_MISC | P4 | This register contains only one bit (DS). When set to one, it indicates that a Page Fault or a Page Assist occurred during a Debug Store operation. Refer to “The Debug Store (DS) Mechanism” on page 1366 for a detailed description of the DS facility. |
400h | 1024 | IA32_MC0_CTL | Pro | MCA Bank 0 error logging registers. |
401h | 1025 | IA32_MC0_STATUS | ||
402h | 1026 | IA32_MC0_ADDR | ||
403h | 1027 | IA32_MC0_MISC | P4 | Bank 0 Miscellaneous register. Defined as optional in the MCA architecture but is implemented in the Pentium® 4 family processors. |
404h | 1028 | IA32_MC1_CTL | Pro | MCA Bank 1 error logging registers. The MISC register is defined as optional in MCA architecture but is implemented in the Pentium® 4 family processors. |
405h | 1029 | IA32_MC1_STATUS | ||
406h | 1030 | IA32_MC1_ADDR | ||
407h | 1031 | IA32_MC1_MISC | P4 | |
408h | 1032 | IA32_MC2_CTL | Pro | MCA Bank 2 error logging registers. The MISC register is defined as optional in MCA architecture but is implemented in the Pentium® 4 family processors. |
409h | 1033 | IA32_MC2_STATUS | ||
40Ah | 1034 | IA32_MC2_ADDR | ||
40Bh | 1035 | IA32_MC2_MISC | P4 | |
40Ch | 1036 | IA32_MC3_CTL | Pro | MCA Bank 3 error logging registers. The MISC register is defined as optional in MCA architecture but is implemented in the Pentium® 4 family processors. |
40Dh | 1037 | IA32_MC3_STATUS | ||
40Eh | 1038 | IA32_MC3_ADDR | ||
40Fh | 1039 | IA32_MC3_MISC | P4 | |
Branch Recording Registers | ||||
1DAh | 474 | MSR_LASTBRANCH_TOS | P4 | Last Branch Record Stack TOS. (RO) Contains an index (0, 1, 2, or 3) that points to the top of the last branch record stack (that is, that contains the index of the MSR containing the most recent branch record). See the next row. |
1DBh | 475 | MSR_LASTBRANCH_0 | The Branch Recording registers. See “Last Branch, Interrupt, and Exception Recording” on page 1365 for a detailed description of the Pentium® 4's Branch Recording facility. | |
1DCh | 476 | MSR_LASTBRANCH_1 | ||
1DDh | 477 | MSR_LASTBRANCH_2 | ||
1DEh | 478 | MSR_LASTBRANCH_3 | ||
Fast System Enter/Exit Registers | ||||
174h | 372 | IA32_SYSENTER_CS | PII | CS register target for CPL 0 code. See “Fast System Call/Return Instruction Pair” on page 708. |
175h | 373 | IA32_SYSENTER_ESP | Stack pointer for CPL 0 stack. | |
176h | 374 | IA32_SYSENTER_EIP | CPL 0 code entry point. | |
Thermal Monitor related Registers (refer to “The Thermal Monitoring Facilities” on page 1340 for a complete description of the Thermal Monitoring facility). | ||||
19Ah | 410 | IA32_THERM_CONTROL | P4 | Thermal Monitor Control. (RW) Enables and disables on-demand clock modulation and allows selection of the on-demand clock modulation duty cycle. |
19Bh | 411 | IA32_THERM_INTERRUPT | Thermal Interrupt Control. (RW) Enables and disables the generation of an interrupt on temperature transitions detected by the processor's thermal sensor and thermal monitor. | |
19Ch | 412 | IA32_THERM_STATUS | Thermal Monitor Status. (RW) Contains status info about the processor's thermal sensor and automatic thermal monitoring facilities. | |
Last Exception Recording Registers | ||||
1D7h | 471 | MSR_LER_FROM_LIP | P4 | Last Exception Record From and To Linear EIP. (RO). Contains the pointers to:
|
1D8h | 472 | MSR_LER_TO_LIP |
All MSRs whose names do not start with “IA32_” are processor design-specific and are not part of the IA32 architecture spec.
Please be aware that the author has chosen to group the MSRs by function rather than listing them in ascending address order as the Intel® documentation does.
18.226.177.125