![Xilinx Virtex-II Pro PPC405 User Manual Download Page 117](http://html1.mh-extra.com/html/xilinx/virtex-ii-pro-ppc405/virtex-ii-pro-ppc405_user-manual_3410279117.webp)
March 2002 Release
425
Virtex-II Pro™ Platform FPGA Documentation
1-800-255-7778
Synchronizing Instructions
R
Implementation of
eieio
and
sync
Instructions
In the PPC405,
eieio
and
sync
are implemented identically for the following reasons:
•
The PowerPC architecture only requires the
eieio
instruction to perform storage
synchronization, but it does allow PowerPC processors to implement
eieio
as an
execution-synchronizing instruction. The PPC405 implements
eieio
in such a manner.
•
As defined by the PowerPC architecture,
sync
is used to synchronize memory
accesses across all processors in a multiprocessor environment. Because the PPC405
does not provide hardware support for multiprocessor memory coherency,
sync
does
not guarantee memory ordering across multiple PPC405 processors. This results in
the same storage-synchronization capability as the
eieio
instruction.
In implementations that provide hardware support for multiprocessor memory coherency,
sync
can take significantly longer to execute than
eieio
. PPC405 programmers should
consider whether their software is expected to run on other platforms and use the
sync
instruction in favor of
eieio
only when necessary.
Synchronization Effects of PowerPC Instructions
Additional PowerPC instructions can cause synchronizing operations to occur. All
instructions that result in some form of synchronization are listed in
Table 3-51:
Synchronizing Instructions
Mnemonic
Name
Operation
Operand
Syntax
eieio
Enforce In-Order Execution of I/O
Provides an ordering function for loads and stores.
All storage accesses that precede
eieio
complete
before storage accesses following
eieio
.
—
isync
Instruction Synchronize
Ensures all previous instructions complete before
the
isync
instruction completes.
isync
also
prevents other instructions from beginning
execution until the
isync
instruction completes.
Prefetched instructions are discarded so that
subsequent instructions are fetched and executed
in the context established by instructions preceding
the
isync
.
Memory-access ordering is
not
guaranteed
. Memory accesses caused by previous
instructions are not necessarily ordered with
respect to memory accesses by other devices.
sync
Synchronize
Ensures that all instructions preceding the
sync
instruction appear to complete before the
sync
instruction completes, and that no subsequent
instructions are executed until after the
sync
instruction completes. Memory accesses caused by
previous instructions are completed with respect to
memory accesses by other devices.