An ISYNC instruction does not cause a flush of speculatively dispatched or
fetched instructions (instructions that are dispatched or fetched after
the ISYNC instruction) unconditionally. The present invention detects the
occurrence of any instruction that changes the state of the machine and
requires a context synchronizing complete; these instructions are called
context-synchronizing-required instructions. When a
context-synchronizing-required instruction completes, the present
invention sets a flag to note the occurrence of that condition. When an
ISYNC instruction completes, the present invention causes a flush and
refetches the instruction after the ISYNC if the
context-synchronizing-required flag is active. The present invention then
resets the context-synchronizing-required flag. If the
context-synchronizing-required flag is not active, then the present
invention does not generate a flush operation.
Een instructie ISYNC veroorzaakt onvoorwaardelijk geen vloed van speculatief verzonden of gehaalde instructies (instructies die worden verzonden of na de instructie ISYNC) gehaald. De onderhavige uitvinding ontdekt het voorkomen van om het even welke instructie die de staat van de machine verandert en context volledig synchroniseren vereist; deze instructies worden genoemd context-synchroniseren-vereiste instructies. Wanneer een context-synchroniseren-vereiste instructie voltooit, plaatst de onderhavige uitvinding een vlag om van het voorkomen van die voorwaarde nota te nemen. Wanneer een instructie ISYNC voltooit, veroorzaakt de onderhavige uitvinding een vloed en refetches de instructie na ISYNC als de context-synchroniseren-vereiste vlag actief is. De onderhavige uitvinding stelt dan de context-synchroniseren-vereiste vlag terug. Als de context-synchroniseren-vereiste vlag niet actief is, dan produceert de onderhavige uitvinding geen gelijke verrichting.