![Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3 Manual Download Page 755](http://html.mh-extra.com/html/intel/itanium-architecture-software-developers-volume-3-rev-2-3/itanium-architecture-software-developers-volume-3-rev-2-3_manual_2073404755.webp)
Volume 2, Part 2: MP Coherence and Synchronization
2:507
MP Coherence and Synchronization
2
This chapter describes how to enforce an ordering of memory operations, how to
update code images, and presents examples of several simple multiprocessor
synchronization primitives on a processor based on the Itanium architecture. These
topics are relevant to anyone who writes either user- or system-level software for
multiprocessor systems based on the Itanium architecture.
The chapter begins with a brief overview of Itanium memory access instructions
intended to summarize the behaviors that are relevant to later discussions in the
chapter. Next, this chapter presents the Itanium memory ordering model and compares
it to a sequentially-consistent ordering model. It then explores versions of several
common synchronization primitives. This chapter closes by describing how to correctly
update code images to implement self-modifying code, cross-modifying code, and
paging of code using programmed I/O.
2.1
An Overview of Intel
®
Itanium
®
Memory Access
Instructions
The Itanium architecture provides load, store, and semaphore instructions to access
memory. In addition, it also provides a memory fence instruction to enforce further
ordering relationships between memory accesses. As
describes, memory operations in the Itanium architecture
come with one of four semantics: unordered, acquire, release, or fence.
on
describes how the memory ordering model uses these semantics to
indicate how memory operations can be ordered with respect to each other.
defines the four memory operation semantics.
,
present brief outlines of load and store, semaphore, and memory fence
instructions in the Itanium architecture. Refer to
Chapter 2, “Instruction Reference”
for
more information on the behavior and capabilities of these instructions.
2.1.1
Memory Ordering of Cacheable Memory References
The Itanium architecture has a relaxed memory ordering model which provides
unordered memory opcodes, explicitly ordered memory opcodes, and a fencing
operation that software can use to implement stronger ordering. Each memory
operation establishes an ordering relationship with other operations through one of four
semantics:
•
Unordered
semantics imply that the instruction is made visible in any order with
respect to other orderable instructions.
•
Acquire
semantics imply that the instruction is made visible prior to all subsequent
orderable instructions.
•
Release
semantics imply that the instruction is made visible after all prior orderable
instructions.
Summary of Contents for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Page 1: ......
Page 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Page 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Page 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Page 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Page 230: ......
Page 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Page 380: ...2 132 Volume 2 Part 1 Interruptions ...
Page 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Page 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Page 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Page 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Page 808: ...2 560 Volume 2 Part 2 Context Management ...
Page 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Page 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Page 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Page 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Page 891: ......
Page 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Page 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Page 1296: ......
Page 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Page 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Page 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Page 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Page 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...