User Guide
General-Purpose Programming 103
24592—Rev. 3.15—November 2009 AMD64 Technology
3.10.12 Organize Data in Memory Blocks
Organize frequently accessed constants and coefficients into cache-line-size blocks and prefetch them.
Procedures that access data arranged in memory-bus-sized blocks, or memory-burst-sized blocks, can
make optimum use of the available memory bandwidth.
3.11 Cross-Modifying Code
Software that writes into a code segment running simultaneously on another processor with the intent
that the other processor execute the written data as code is classified as cross-modifying code.
To avoid cache-coherency issues when using cross-modifying code, the processor doing the store
should provide synchronization between the processors using a semaphore. See Section 3.3.14,
“Semaphores,” on page 64. The use of cross-modifying code can result in performance degradation.
Synchronization for cross-modifying code is not required, however, when the code modification is
performed by a single store that is entirely within an aligned 8-bytes of memory.