Micro-Operations in Computer Organization: Definition and the Four Common Categories
A micro-operation is a very small action carried out by the CPU on register contents. In typical register transfer language (RTL) descriptions, micro-operations are the “building blocks” used to describe the behavior of a digital system at the hardware level. They are commonly grouped into four categories: register transfer , arithmetic , logic , and shift micro-operations.2
A key intuition: register-transfer moves data; arithmetic/logic/shift change the bit-pattern (and thus the “information content”) in register(s), typically used as inputs to later steps and/or writes back to registers or memory.2
Footnotes
-
Register Transfer Language And Micro Operations - Defines micro-operations and four common categories; includes examples and shift subtypes. ↩ ↩2
-
Systems I: Computer Organization and Architecture (CS371) - Provides RTL memory read/write examples and describes the four categories plus shift behaviors (logical/arithmetic/circular). ↩ ↩2
Micro-Operations and Their Types (Register Transfer, Arithmetic, Logic, Shift)
Micro-operations and RTL (why the categories matter)
In many course treatments, micro-operations are described using RTL expressions such as:
- register transfer:
- memory transfer examples: and .2
These notations make it easier to see which hardware blocks are involved: multiplexing/buses for movement, arithmetic circuitry (add/sub/increment/decrement), logic gates (AND/OR/NOT/XOR), and shifters/rotators (logical/circular/arithmetic).
Footnotes
-
Systems I: Computer Organization and Architecture (CS371) - Provides RTL memory read/write examples and describes the four categories plus shift behaviors (logical/arithmetic/circular). ↩
-
Register Transfer Language (RTL) - Explains RTL as a notation describing data transfers and micro-operations. ↩
-
Register Transfer Language And Micro Operations - Defines micro-operations and four common categories; includes examples and shift subtypes. ↩
How to interpret RTL-style micro-operations
- 1Step 1
The left-hand side (e.g., or ) is what will receive the result.
- 2Step 2
The right-hand side will reference one or more registers (and sometimes memory, e.g., ).
- 3Step 3
Use the operation type: transfer (←), arithmetic (+, −, inc/dec), logic (AND/OR/XOR/NOT), or shift (shl/shr/ashl/ashr/cir/cil).
- 4Step 4
Register transfer mainly moves bits; arithmetic/logic/shift create a transformed value to be stored in the destination.
Four Categories of the Most Common Micro-operations
1) Register Transfer Micro-operations
Register transfer micro-operations move data between registers (and often between memory and registers). They are written in RTL using a replacement/assignment arrow. A typical symbolic example is , meaning “copy contents of into .”2
What they do
- Do not perform arithmetic or bitwise transformation—just route/transfer.
- Are essential for moving operands into an ALU (arithmetic-logic unit) and storing results.
Common RTL patterns
2) Arithmetic Micro-operations
Arithmetic micro-operations perform numeric computation over register contents—such as addition, subtraction, increment, and decrement—producing a new value to write back to a register.2
Examples (symbolic)
- Addition example: .
- Subtraction is often implemented using complement-based addition in hardware; course notes show subtracting via complement + 1 (2’s complement approach).
What they do
- Change the information content (unlike pure transfer).
- Usually feed comparisons, address calculations, indexing, and loop counters.
Where they live
- Implemented by dedicated arithmetic circuits (typically inside/around an ALU).
3) Logic Micro-operations
Logic micro-operations manipulate bit patterns for non-arithmetic transformations—commonly AND/OR/XOR/NOT types of operations.2
What they do
- Operate on bits directly (Boolean/bitwise behavior).
- Are used for masks, flag manipulation, and conditional bit manipulation before/after arithmetic.
Many instructional resources also highlight how logic micro-operations are derived from Boolean functions by substituting registers’ bit-values.
4) Shift Micro-operations
Shift micro-operations shift or rotate the bits in a register, commonly supporting serial movement of bits and integration with arithmetic/logic data processing.2
A standard split includes three shift types:
- Logical shift: shifts in zeros; described as transferring 0 through the serial input.
- Arithmetic shift: for signed values, maintains sign behavior; described as multiplying/dividing a signed number by 2.
- Circular shift (rotate): wraps bits around ends with no loss of information.
Footnotes
-
Register Transfer Language And Micro Operations - Defines micro-operations and four common categories; includes examples and shift subtypes. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9
-
Systems I: Computer Organization and Architecture (CS371) - Provides RTL memory read/write examples and describes the four categories plus shift behaviors (logical/arithmetic/circular). ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
Micro-Operation - GeeksforGeeks - States micro-operations are atomic processor operations and lists the four major types. ↩
Mapping Micro-operation Categories to Typical RTL Intent
Qualitative view of how each category tends to affect data.
Pro Tip: Use “effect on bits” to classify quickly
If the operation is just copying values (e.g., or ), it’s register transfer. If the output bit-pattern is computed (e.g., , , or shl/shr/rotate), it’s arithmetic/logic/shift respectively.2
Footnotes
-
Systems I: Computer Organization and Architecture (CS371) - Provides RTL memory read/write examples and describes the four categories plus shift behaviors (logical/arithmetic/circular). ↩
-
Register Transfer Language And Micro Operations - Defines micro-operations and four common categories; includes examples and shift subtypes. ↩
Beware: Logical vs Arithmetic shift behave differently for signed data
Logical shifts introduce zeros, while arithmetic shifts preserve sign-related behavior and are described as multiplying/dividing a signed number by 2. Using the wrong type can break signed computations (e.g., negative values).
Footnotes
-
Systems I: Computer Organization and Architecture (CS371) - Provides RTL memory read/write examples and describes the four categories plus shift behaviors (logical/arithmetic/circular). ↩
Common follow-ups
Knowledge Check
In RTL notation, which example best represents a register transfer micro-operation?