COA Notes
Register transfer language notation, symbols, and conventions for describing digital system operations.
Introduction
How do computer engineers describe what happens inside a CPU at the hardware level? They can't just say "add two numbers" — they need precise notation that specifies which registers are involved, when data moves, and under what conditions. Register Transfer Language (RTL) is this notation. It's a symbolic language for describing the micro-operations (tiny data transfers and operations) that make up each machine instruction. Think of it as the "assembly language for hardware designers."
What is Register Transfer Language?
RTL describes the flow of data between registers and the operations performed on that data. It uses simple symbolic notation to express hardware operations concisely:
This is NOT a programming language — it describes hardware behavior. Each RTL statement corresponds to actual signal paths and clock edges in the circuit.
Basic RTL Notation
Registers
Registers are denoted by capital letters, often with numbers:
- R0, R1, R2, ... R7 (general-purpose registers)
- PC (Program Counter)
- IR (Instruction Register)
- MAR (Memory Address Register)
- MBR (Memory Buffer Register)
- AC (Accumulator)
Transfer Operation
The arrow (←) denotes data transfer:
Important: The transfer happens at a specific clock edge. R1's value at that moment is copied to R2.
Simultaneous Transfers
Comma separates operations that happen in the same clock cycle:
Conditional Transfer
A control condition (boolean function) before a colon specifies when the transfer occurs:
This means: "On the next clock edge, IF P=1, THEN R2 gets the value of R1."
RTL Symbols and Conventions
| Symbol | Meaning | Example |
|---|---|---|
| Letters (R, PC, etc.) | Register name | R1, MAR, AC |
| ← | Transfer | R1 ← R2 |
| , | Simultaneous operations | R1 ← R2, R3 ← R4 |
| : | Conditional (if-then) | P: R1 ← R2 |
| ( ) | Part of a register | R1(0-7) = lower byte |
| [ ] | Memory address | M[MAR] = memory at MAR |
| + | Addition | R3 ← R1 + R2 |
| ⊕ or XOR | Exclusive OR | R1 ← R1 ⊕ R2 |
| ∧ or AND | AND operation | R1 ← R1 ∧ R2 |
| ∨ or OR | OR operation | R1 ← R1 ∨ R2 |
| ' or NOT | Complement | R1 ← R1' |
| shl | Shift left | R1 ← shl R1 |
| shr | Shift right | R1 ← shr R1 |
Register Transfer Examples
Simple Data Movement
Arithmetic Operations
Conditional Operations
Memory Operations
Describing an Instruction Cycle in RTL
Fetch Cycle
| T0 | MAR ← PC |
| T1 | MBR ← M[MAR], PC ← PC + 1 |
| T2 | IR ← MBR |
- T0: Put current instruction address on the address bus
- T1: Read memory AND increment PC (simultaneous)
- T2: Place instruction in IR for decoding
Execute Cycle for ADD instruction (ADD R1, R2)
Execute Cycle for LOAD instruction (LOAD R1, [address])
| T3 | MAR ← IR(address field) |
| T4 | MBR ← M[MAR] |
| T5 | R1 ← MBR |
Execute Cycle for STORE instruction (STORE R1, [address])
| T3 | MAR ← IR(address field) |
| T4 | MBR ← R1 |
| T5 | M[MAR] ← MBR |
Execute Cycle for BRANCH instruction (BZ target)
Register Designation
Individual Bits
Bit Ranges
Control Functions and Timing
In hardware, RTL operations happen at clock edges, controlled by timing signals:
| Control Unit generates | T0, T1, T2, T3, ... |
| T0 AND Fetch | MAR ← PC |
| T1 AND Fetch | MBR ← M[MAR], PC ← PC + 1 |
| T2 AND Fetch | IR ← MBR |
| T3 AND (opcode = ADD) | R1 ← R1 + R2 |
| T3 AND (opcode = LOAD) | MAR ← IR(addr) |
Each combination of timing signal and control condition activates specific register transfers.
Connecting RTL to Hardware
Every RTL statement maps to physical hardware:
R1 ← R2means: enable R2's output to the bus AND enable R1's input from the busR3 ← R1 + R2means: route R1 and R2 to ALU inputs, select ADD operation, route ALU output to R3- Conditional
P:means: AND the control signal P with the clock/enable signals
Key Takeaways
- RTL is a symbolic notation for describing hardware-level data movements and operations
- The arrow (←) represents data transfer at a clock edge
- Commas indicate simultaneous operations; colons indicate conditions
- Every machine instruction can be decomposed into a sequence of RTL micro-operations
- RTL bridges the gap between architecture (instruction set) and implementation (control signals)
- Each RTL statement maps directly to multiplexer settings, register enables, and ALU operations
- Understanding RTL is essential for designing control units (both hardwired and microprogrammed)
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Register Transfer Language.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Computer Organization & Architecture topic.
Search Terms
computer-organization, computer organization & architecture, computer, organization, register, transfer, and, microoperations
Related Computer Organization & Architecture Topics