Microarchitecture
In
computer science and
computer engineering, a
microarchitecture is the design and layout of a
microprocessor, microcontroller, or
digital signal processor. Microarchitecture considerations include overall block design. Examples of this include the number of execution units, the type of execution units (such as floating point, integer, branch prediction,
SIMD), the nature of the
pipelining (which might include such stages as instruction fetch, decode, assign, execution, completion in a very simple pipeline),
instruction set,
cache memory design (level 1, level 2 interfaces), and peripheral support. Increasingly important is design for manufacturing, design for low-power consumption, and design for very high performance.
Examples of microarchitecture "schools of thought" include
CISC (complex instruction set computing),
RISC (reduced instruction set computing),
VLIW (very long instruction word), and variants thereof. Increasingly, the design of the
compiler for high level language programmability is viewed as part of the microarchitecture design decision locus.