Volume 3A System Programming Guide_ Part 1 (794103), страница 12
Текст из файла (страница 12)
. . . . . . . . . . . . . . . . . . . . . . . . 18-618.2.6Debug Registers and Intel® 64 Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-818.3DEBUG EXCEPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 18-818.3.1Debug Exception (#DB)—Interrupt Vector 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-918.3.1.1Instruction-Breakpoint Exception Condition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-918.3.1.2Data Memory and I/O Breakpoint Exception Conditions. . . . . . . . . . . . . . .
. . . . . . . . 18-1118.3.1.3General-Detect Exception Condition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1218.3.1.4Single-Step Exception Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 18-1218.3.1.5Task-Switch Exception Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1218.3.2Breakpoint Exception (#BP)—Interrupt Vector 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1318.4LAST BRANCH RECORDING OVERVIEW . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1318.5LAST BRANCH, INTERRUPT, AND EXCEPTION RECORDING (INTEL® CORE™ 2 DUOPROCESSOR FAMILY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 18-1418.5.1IA32_DEBUGCTL MSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1418.5.2BTS and Related Facilities . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1618.5.2.1Freezing LBR and Performance Counters on PMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1718.5.2.2Debug Store (DS) Mechanism . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 18-1718.6LAST BRANCH, INTERRUPT, AND EXCEPTION RECORDING (PROCESSORSBASED ON INTEL NETBURST® MICROARCHITECTURE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1818.6.1CPL-Qualified Last Branch Recording Mechanism. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 18-1918.6.2MSR_DEBUGCTLA MSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2118.6.3LBR Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2218.6.3.1LBR Stack and Intel® 64 Processors . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2418.6.4Monitoring Branches, Exceptions, and Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2418.6.5Single-Stepping on Branches, Exceptions, and Interrupts . . . . . . . . . . . .
. . . . . . . . . . . . 18-2418.6.6Branch Trace Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2518.6.7Last Exception Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 18-2518.6.7.1Last Exception Records and Intel 64 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2518.6.8Branch Trace Store (BTS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 18-2518.6.8.1Detection of the BTS Facilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2618.6.8.2Setting Up the DS Save Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2618.6.8.3Setting Up the BTS Buffer. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2718.6.8.4Setting Up CPL-Qualified BTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2818.6.8.5Writing the DS Interrupt Service Routine . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 18-2918.7LAST BRANCH, INTERRUPT, AND EXCEPTION RECORDING (INTEL® CORE™ SOLOAND INTEL® CORE™ DUO PROCESSORS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3018.8LAST BRANCH, INTERRUPT, AND EXCEPTION RECORDING (PENTIUM MPROCESSORS) . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3218.9LAST BRANCH, INTERRUPT, AND EXCEPTIONRECORDING (P6 FAMILY PROCESSORS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 18-3418.9.1DEBUGCTLMSR Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3418.9.2Last Branch and Last Exception MSRs . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 18-3618.9.3Monitoring Branches, Exceptions, and Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3618.10 TIME-STAMP COUNTER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 18-3718.11 PERFORMANCE MONITORING OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3918.12 ARCHITECTURAL PERFORMANCE MONITORING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4018.12.1Architectural Performance Monitoring Version 1. . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 18-4018.12.1.1Architectural Performance Monitoring Version 1 Facilities. . . . . . . . . . . . . . . . . . . . 18-4118.12.2Architectural Performance Monitoring Version 2. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 18-4318.12.2.1Architectural Performance Monitoring Version 2 Facilities. . . . . . . . . . . . . . . . . . . . 18-4418.12.3Pre-defined Architectural Performance Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-48xviii Vol. 3ACONTENTSPAGE18.13®PERFORMANCE MONITORING (INTEL CORE™ SOLO ANDINTEL® CORE™ DUO PROCESSORS) .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.14 PERFORMANCE MONITORING (PROCESSORS BASED ON INTEL® CORE™MICROARCHITECTURE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .18.14.1Fixed-function Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.14.2Global Counter Control Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .18.14.3At-Retirement Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.14.4Precise Even Based Sampling (PEBS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .18.14.4.1Setting up the PEBS Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.14.4.2Writing a PEBS Interrupt Service Routine . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .18.15 PERFORMANCE MONITORING (PROCESSORSBASED ON INTEL NETBURST MICROARCHITECTURE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.1ESCR MSRs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .18.15.2Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.3CCCR MSRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .18.15.4Debug Store (DS) Mechanism. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.5DS Save Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .18.15.5.1DS Save Area and IA-32e Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6Programming the Performance Countersfor Non-Retirement Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .18.15.6.1Selecting Events to Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.2Filtering Events . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.3Starting Event Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.4Reading a Performance Counter’s Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.5Halting Event Counting . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.6Cascading Counters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.7EXTENDED CASCADING . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.8Generating an Interrupt on Overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.6.9Counter Usage Guideline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .18.15.7At-Retirement Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.15.7.1Using At-Retirement Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .