MMIX LOGO

MMIX Instruction Set

Table of Content

Content

SYNC

Name:

SYNC XYZ

Timing:

Description:

Needed to synchronize processes. XYZ has a value from 0 to 7, where values greater 3 are reserved for the operating system.

Of course no SYNC is necessary between a command that loads from or stores into memory and a subsequent command that loads from or stores into exactly the same location. However, SYNC might be necessary in certain cases even on a one-processor system, because input/output processes take place in parallel with ordinary computation.
The cases XYZ > 3 are privileged, in the sense that only the operating system can use them. More precisely, if a SYNC command is encountered with XYZ = 4 or XYZ = 5 or XYZ = 6 or XYZ = 7, a "privileged instruction interrupt" occurs unless that interrupt is currently disabled. Only the operating system can disable interrupts

SYNC: "Synchronize"
XYZ = 0the machine drains its pipeline (that is, it stalls until all preceding instructions have completed their activity).
XYZ = 1tthe machine controls its actions less drastically, in such a way that all store instructions preceding this SYNC will be completed before all store instructions after it.
XYZ = 2the machine controls its actions in such a way that all load instructions preceding this SYNC will be completed before all load instructions after it.
XYZ = 3the machine controls its actions in such a way that all load or store instructions preceding this SYNC will be completed before all load or store instructions after it.
XYZ = 4the machine goes into a power-saver mode, in which instructions may be executed more slowly (or not at all) until some kind of "wake-up" signal is received.
XYZ = 5the machine empties its write buffer and cleans its data caches, if any (including a possible secondary cache); the caches retain their data, but the cache contents also appear in memory.
XYZ = 6the machine clears its virtual address translation caches
XYZ = 7the machine clears its instruction and data caches, discarding any information in the data caches that wasn't previously in memory. ("Clearing" is stronger than "cleaning"; a clear cache remembers nothing. Clearing is also faster, because it simply obliterates everything.)
XYZ > 7an illegal instruction interrupt occurs.

Please help to keep this site up to date! If you want to point out important material or projects that are not listed here, if you find errors or want to suggest improvements, please send email to email