Intel SL3VS Specification Update - Page 74

C83., Under Some Complex Conditions - drivers

Page 74 highlights

INTEL® CELERON® PROCESSOR SPECIFICATION UPDATE C83. Under Some Complex Conditions, the Instructions in the shadow of a JMP FAR may be Unintentionally Executed and Retired Problem: If all of the following events happen in sequence it is possible for the system or application to hang or to execute with incorrect data. 1. The execution of an instruction, with an OPCODE that requires the processor to stall the issue of microinstructions in the flow from the microcode sequence logic block to the instruction decode block (a StallMS condition). 2. Less than 63 (39 for Pre-CPUID 0x6BX) micro-instructions later, the execution of a mispredictable branch instruction (Jcc, LOOPcc, RET Near, CALL Near Indirect, JMP ECX=0, or JMP Near Indirect). 3. The conditional branch in event (2) is mispredicted, and furthermore the mispredicted path of execution must result in either an ITLB miss, or an Instruction Cache miss. This needs to briefly stall the issue of microinstructions again immediately after the conditional branch until that branch prediction is corrected by the jump execution block (a 2nd StallMS condition). 4. Along the correct path of execution, the next instruction must contain a 3rd StallMS condition at a precisely aligned point in the execution of the instruction (CLTS, POPSS, LSS, or MOV to SS). 5. A JMP FAR instruction must execute within the next 63 micro-instructions (39 Pre-CPUID 0x6BX). The intervening micro-instructions must not have any events or faults. When the instruction from event (2) retires, the StallMS condition within the event (5) instruction fails to operate correctly, and instructions in the shadow of the JMP FAR instruction could be unintentionally executed. Implication: Occurrence of this erratum could lead to erroneous software behavior. Intel has not identified any commercial software which may encounter this condition; this erratum was discovered in a focused test environment. One of the four instructions that are required to trigger this erratum, CLTS, is a privileged instruction that is only executed by an operating system or driver code.The remaining three instructions, POPSS, LSS, and MOV to SS, are executed infrequently in modern 32-bit application code. Workaround: None identified at this time. Status: For the stepping affected see the Summary of Changes at the beginning of this section. C84. Processor Does not Flag #GP on Non-zero Write to Certain MSRs Problem: When a non-zero write occurs to the upper 32 bits of SYSENTER_EIP_MSR or SYSENTER_ESP_MSR, the processor should indicate a general protection fault by flagging #GP. Due to this erratum, the processor does not flag #GP. . Implication: The processor unexpectedly does not flag #GP on a non-zero write to the upper 32 bits of SYSENTER_EIP_MSR or SYSENTER_ESP_MSR. No known commercially available operating system has been identified to be affected by this erratum. . Workaround: None identified. Status: For the steppings affected see the Summary of Changes at the beginning of this section. 66

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108

INTEL
®
CELERON® PROCESSOR SPECIFICATION UPDATE
66
C83.
Under Some Complex Conditions, the Instructions in the
shadow of a JMP FAR may be Unintentionally Executed and
Retired
Problem:
If all
of the following events happen in sequence it is possible for the system or application to hang
or to execute with incorrect data.
1. The execution of an instruction, with an OPCODE that requires the processor to stall the issue of micro-
instructions in the flow from the microcode sequence logic block to the instruction decode block (a StallMS
condition).
2. Less than 63 (39 for Pre-CPUID 0x6BX) micro-instructions later, the execution of a mispredictable branch
instruction (Jcc, LOOPcc, RET Near, CALL Near Indirect,
JMP ECX=0, or JMP Near Indirect).
3. The conditional branch in event (2) is mispredicted, and furthermore the mispredicted path of execution
must result in either an ITLB miss, or an Instruction Cache miss. This needs to briefly stall the issue of micro-
instructions again immediately after the conditional branch until that branch prediction is corrected by the jump
execution block (a 2nd StallMS condition).
4. Along the correct path of execution, the next instruction must contain a 3rd StallMS condition at a precisely
aligned point in the execution of the instruction (CLTS, POPSS, LSS, or MOV to SS).
5. A JMP FAR instruction must execute within the next 63 micro-instructions (39 Pre-CPUID 0x6BX). The
intervening micro-instructions must not have any events or faults.
When the instruction from event (2) retires, the StallMS condition within the event (5) instruction fails to
operate correctly, and instructions in the shadow of the JMP FAR instruction could be unintentionally
executed.
Implication:
Occurrence of this erratum could lead to erroneous software behavior. Intel has not identified
any commercial software which may encounter this condition; this erratum was discovered in a focused test
environment.
One of the four instructions that are required to trigger this erratum, CLTS, is a privileged
instruction that is only executed by an operating system or driver code.The remaining three instructions,
POPSS, LSS, and MOV to SS, are executed infrequently in modern 32-bit application code.
Workaround:
None identified at this time.
Status:
For the stepping affected see the
Summary of Changes
at the beginning of this section.
C84.
Processor Does not Flag #GP on Non-zero Write to Certain
MSRs
Problem:
When a non-zero write occurs to the upper 32 bits of SYSENTER_EIP_MSR or
SYSENTER_ESP_MSR, the processor should indicate a general protection fault by flagging #GP. Due to this
erratum, the processor does not flag #GP.
.
Implication:
The processor unexpectedly does not flag #GP on a non-zero write to the upper 32 bits of
SYSENTER_EIP_MSR or SYSENTER_ESP_MSR. No known commercially available operating system has
been identified to be affected by this erratum.
.
Workaround:
None identified.
Status:
For the steppings affected see the
Summary of Changes
at the beginning of this section.