From WikiChip
Macro-Operation (MOP)
Revision as of 19:00, 23 April 2017 by Inject (talk | contribs) (Nomenclature)

Macro-Operation (Macro-Ops or MOP) is a more complex version of a micro-operation as handled by the microprocessor. Macro-Operations have a number of slightly different meanings, depending on the microarchitecture and designers that's being discussed.

Nomenclature

MOPs have a number of common meanings among chip designers:

  • Intel refers to the variable-length x86 instructions as macro-ops. In their context, macro-operations are variable length and can be quite complex capable of performing multiple memory and arithmetic operations at once. In AMD's context, those are refered to as actual "AMD64 instructions".
  • AMD refers to the a more simplified fixed-length operation as macro-ops (sometimes also Complex-Op or COPs). In their context, macro-operations are a fixed-length operation that may be composed of a memory operation and an arithmetic operation. For example, a single MOP can perform a read, modify, and write operation. Another way of describing MOPs is x86 instructions that have undergone a number of transformations to make them fit into a more strict, but still complex, format. In Intel's context, no such concept exist.
  • ARM refers to complex instructions that get decomposed into a number of µOPs that required a number of iterations through the pipeline multi-cycle instructions. Some other complex instructions that get cracked into smaller µOPs can also considered macro-ops, however ARM doesn't explicitly use that term.