(en.wikichip.org) WikiChip
ROAM_REFS: https://en.wikichip.org/wiki/WikiChip https://wikichip.org/
WikiChip is the preeminent resource for computer architectures and semiconductor logic engineering, covering historical and contemporary electronic systems, technologies, and related topics.
(en.wikichip.org) Macro-Operation (MOP) - WikiChip
ROAM_REFS: https://en.wikichip.org/wiki/macro-operation
Macro-Operation (MOP)
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.
** Overview
Although the definition varies by designer, MOPs almost always refer to operations that are considered more complex than the basic operations that are executed by the execution units. In general, they refer to more complex operations that are often decomposed into one or more very simple micro-operations further down the pipeline.
** 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 relatively more complex instructions that get decomposed into one or more µOPs. Those MOPS get cracked into smaller µOPs later on in the pipeline. Note that in legacy ARM cores, MOPs used to refer to complex instructions that required a number of iterations through the pipeline (multi-cycle instructions).
(en.wikichip.org) Micro-Operation (µOP) - WikiChip
ROAM_REFS: https://en.wikichip.org/wiki/micro-operation
Micro-Operation (µOP)
Micro-Operation (Micro-Ops or µOP) is a simple internal representation of an architectural instruction as handled by the microprocessor. While exact definition of µOPs varies across implementations, the idea is to greatly simplify the internal representations of operations. It is generally associated with designs that transform more complex (e.g. variable length or multiple operations) instructions with simple single-operation commands however µOPs are also used in many other cases even when instructions are fairly uniform. Additionally, Micro-Operations can also be a result of cracking Macro-Operations. It's a common misconception that micro-operations are exclusively a CISC concept. While more often associated with CISC ISAs such as x86 and z/Architecture, micro-ops are also used in various RISC designs such as ARM and POWER.
** Nomenclature
- Intel refers to the internal operations of fixed length, regular format, and encoding a micro-operation. Those are a result of decoded macro-operations.
- AMD refers to the simple, single-operation (e.g. a single arithmetic or memory operation) a micro-operation. Those µOPs makes up a potentially more complex macro-operation.
- ARM refers to the internal representation of instructions as micro-operation. Those are a result of decoded instructions or may be part of a group of µOPs as macro-operation.
(en.wikichip.org) Macro-Operation Fusion (MOP Fusion) - WikiChip
ROAM_REFS: https://en.wikichip.org/wiki/macro-operation_fusion
Macro-Operation Fusion (MOP Fusion)
Not to be confused with micro-operation fusion.
Macro-Operation Fusion (also Macro-Op Fusion, MOP Fusion, or Macrofusion) is a hardware optimization technique found in many modern microarchitectures whereby a series of adjacent macro-operations are merged into a single macro-operation prior or during decoding. Those instructions are later decoded into fused-µOPs.
** Contents
** Overview & Motivation
One of the three performance knobs of a microprocessor is the instruction count. By reducing the number of instructions that must be executed, more work can be done with fewer resources. The idea behind macro-operation fusion is to combine multiple adjacent instructions into a single instruction. A fused instruction typically remains fused throughout its lifetime. Therefore fused instructions can represent more work with fewer bits, free up execution units, tracking information (e.g. in the rename unit), save pipeline bandwidth in all stages from decode to retire, and consequently save power.
A unique aspect of macro-op fusion is that it also helps workloads that are not compiled such as in the case of many interpreted programming languages (e.g. PHP, the software running WikiChip).