Intel SL3VS Specification Update - Page 42

C20., Memory Type Undefined for Nonmemory Operations, Bus Protocol Conflict With Optimized Chipsets

Page 42 highlights

INTEL® CELERON® PROCESSOR SPECIFICATION UPDATE 3. The unmasked floating-point exception case only occurs if the store is the first MMX technology instruction in an MMX technology routine and the previous floating-point routine exited with an unmasked floatingpoint exception pending. Again, for a store to be executed as the first MMX instruction in an MMX technology routine following a floating-point routine, the software would be implementing instruction level intermixing of floating-point and MMX instructions. Intel does not recommend this practice. Device Not Available (DNA) exceptions occur naturally when a task switch is made between two tasks that use either floating-point instructions and/or MMX instructions. For this erratum, in the event of the DNA exception, data from the prior task may be temporarily stored to the present task's program state. Workaround: Do not use MMX instructions to manipulate semaphores for multiprocessor synchronization. Do not use MOVD/MOVQ instructions to write directly to I/O devices if doing so triggers user visible side effects. An OS can prevent old data from being stored to a new task's program state by cleansing the FPU explicitly after every task switch. Follow Intel's recommended programming paradigms in the Intel Architecture Developer's Optimization Manual for writing MMX technology programs. Specifically, do not mix floating-point and MMX instructions. When transitioning to new a MMX technology routine, begin with an instruction that does not depend on the prior state of either the MMX technology registers or the floating-point registers, such as a load or PXOR mm0, mm0. Be sure that the FP TOS is clear before using MMX instructions. Status: For the steppings affected see the Summary of Changes at the beginning of this section. C20. Memory Type Undefined for Nonmemory Operations Problem: The Memory Type field for nonmemory transactions such as I/O and Special Cycles are undefined. Although the Memory Type attribute for nonmemory operations logically should (and usually does) manifest itself as UC, this feature is not designed into the implementation and is therefore inconsistent. Implication: Bus agents may decode a non-UC memory type for nonmemory bus transactions. Workaround: Bus agents must consider transaction type to determine the validity of the Memory Type field for a transaction. Status: For the steppings affected see the Summary of Changes at the beginning of this section. C21. Bus Protocol Conflict With Optimized Chipsets Problem: A "dead" turnaround cycle with no agent driving the address, address parity, request command, or request parity signals must occur between the processor driving these signals and the chipset driving them after asserting BPRI#. The Celeron processor does not follow this protocol. Thus, if a system uses a chipset or third party agent which optimizes its arbitration latency (reducing it to 2 clocks when it observes an active (low) ADS# signal and an inactive (high) LOCK# signal on the same clock that BPRI# is asserted (driven low)), the Celeron processor may cause bus contention during an unlocked bus exchange. Implication: This violation of the bus exchange protocol when using a reduced arbitration latency may cause a system-level setup timing violation on the address, address parity, request command, or request parity signals on the system bus. This may result in a system hang or assertion of the AERR# signal, causing an attempted corrective action or shutdown of the system, as the system hardware and software dictate. The possibility of failure due to the contention caused by this erratum may be increased due to the processor's internal active pull-up of these signals on the clock after the signals are no longer being driven by the processor. 34

  • 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
34
3.
The unmasked floating-point exception case only occurs if the store is the first MMX technology instruction
in an MMX technology routine and the previous floating-point routine exited with an unmasked floating-
point exception pending. Again, for a store to be executed as the first MMX instruction in an MMX
technology routine following a floating-point routine, the software would be implementing instruction level
intermixing of floating-point and MMX instructions. Intel does not recommend this practice.
Device Not Available (DNA) exceptions occur naturally when a task switch is made between two tasks that
use either floating-point instructions and/or MMX instructions. For this erratum, in the event of the DNA
exception, data from the prior task may be temporarily stored to the present task’s program state.
Workaround:
Do not use MMX instructions to manipulate semaphores for multiprocessor synchronization.
Do not use MOVD/MOVQ instructions to write directly to I/O devices if doing so triggers user visible side
effects. An OS can prevent old data from being stored to a new task’s program state by cleansing the FPU
explicitly after every task switch. Follow Intel’s recommended programming paradigms in the
Intel Architecture
Developer’s Optimization Manual
for writing MMX technology programs. Specifically, do not mix floating-point
and MMX instructions. When transitioning to new a MMX technology routine, begin with an instruction that
does not depend on the prior state of either the MMX technology registers or the floating-point registers, such
as a load or PXOR mm0, mm0. Be sure that the FP TOS is clear before using MMX instructions.
Status:
For the steppings affected see the
Summary of Changes
at the beginning of this section.
C20.
Memory Type Undefined for Nonmemory Operations
Problem:
The Memory Type field for nonmemory transactions such as I/O and Special Cycles are
undefined. Although the Memory Type attribute for nonmemory operations logically should (and usually does)
manifest itself as UC, this feature is not designed into the implementation and is therefore inconsistent.
Implication:
Bus agents may decode a non-UC memory type for nonmemory bus transactions.
Workaround:
Bus agents must consider transaction type to determine the validity of the Memory Type field
for a transaction.
Status:
For the steppings affected see the
Summary of Changes
at the beginning of this section.
C21.
Bus Protocol Conflict With Optimized Chipsets
Problem:
A “dead” turnaround cycle with no agent driving the address, address parity, request command, or
request parity signals must occur between the processor driving these signals and the chipset driving them
after asserting BPRI#. The Celeron processor does not follow this protocol. Thus, if a system uses a chipset
or third party agent which optimizes its arbitration latency (reducing it to 2 clocks when it observes an active
(low) ADS# signal and an inactive (high) LOCK# signal on the same clock that BPRI# is asserted (driven
low)), the Celeron processor may cause bus contention during an unlocked bus exchange.
Implication:
This violation of the bus exchange protocol when using a reduced arbitration latency may
cause a system-level setup timing violation on the address, address parity, request command, or request
parity signals on the system bus. This may result in a system hang or assertion of the AERR# signal, causing
an attempted corrective action or shutdown of the system, as the system hardware and software dictate. The
possibility of failure due to the contention caused by this erratum may be increased due to the processor’s
internal active pull-up of these signals on the clock after the signals are no longer being driven by the
processor.