Register Transfer Language (RTL) and Micro-operations
To understand how a computer works internally, we look at the elementary operations performed on data stored in registers. These are called micro-operations. Register Transfer Language (RTL) is a symbolic notation used to describe these operations.
What are Micro-operations?
A micro-operation is an elementary operation executed on data stored in one or more registers during a single clock pulse. Complex machine instructions are actually a sequence of several micro-operations.
- **Register Transfer:** Moving data from one register to another.
- **Arithmetic:** Performing addition, subtraction, increment, or decrement.
- **Logic:** Performing AND, OR, XOR, or complement operations.
- **Shift:** Shifting bits left or right for multiplication or division.
RTL Notation Basics
RTL uses simple symbols to represent the flow of data within the processor architecture.
| Symbol | Meaning | Example |
|---|---|---|
| <- | Replacement (Transfer) | R2 <- R1 (Move R1 to R2) |
| () | Part of a register | R2(0-7) (Lower byte of R2) |
| , | Simultaneous operations | R1 <- R2, R3 <- R4 |
| : | Control condition | P: R2 <- R1 (If P=1, then move) |
| M[addr] | Memory location | DR <- M[AR] (Read from memory) |
Common Micro-operation Types
1. Arithmetic Micro-operations
These include basic math. Note that subtraction is usually implemented using 2's complement logic: $R3 \leftarrow R1 + \bar{R2} + 1$.
2. Logic Micro-operations
These are useful for manipulating individual bits or a string of bits stored in registers (e.g., clearing, setting, or complementing bits).
Bus and Memory Transfers
In a system with many registers, it is inefficient to have wires connecting every register to every other. Instead, a Common Bus System is used. RTL represents this as:
BUS <- R1, R2 <- BUS ; Effectively R2 <- R1 using a bus
Common Mistakes to Avoid
- Thinking RTL is a programming language like C (it is a hardware description notation).
- Forgetting that all operations separated by a comma happen in the exact same clock cycle.
- Confusing the register name with its contents.
- Misinterpreting the control condition (if the condition is 0, the operation simply does not occur).
Advanced Concepts
- Three-state bus buffers
- Memory Read (DR <- M[AR]) and Memory Write (M[AR] <- R1)
- Hardware implementation of binary adders
- Arithmetic Logic Shift Unit (ALSU) design
- Selective Set, Clear, and Mask operations
Practice Exercises
- Write the RTL for swapping the contents of two registers R1 and R2 using a temporary register T1.
- Represent the 2's complement subtraction R1 - R2 using RTL symbols.
- Draw a block diagram for the control condition T: R2 <- R1.
- How many multiplexers are needed for a common bus connecting 4 registers of 4 bits each?
Conclusion
Register Transfer Language provides the necessary bridge between high-level logic and physical hardware. By defining every CPU action as a set of micro-operations, engineers can design the precise control logic required for any instruction set.
Codecrown