IFT212 – Computer Architecture and Organization
Module 7
7 RTL, microprogramming and hardwired control
Module outline
7.1 Definition and characteristics of registers
Introduction
In the ever-evolving landscape of digital system design, a comprehensive understanding of
fundamental concepts is paramount. In this course, we embark on a journey through the
intricacies of "Register Transfer Level (RTL), Microprogramming, and Hardwired Control."
We commence by delving into the very foundation with an exploration of the definition and
characteristics of registers, demystifying their role in digital systems. Building upon this, we
investigate the nuanced landscape of data transfer operations at the register level,
unraveling the key mechanisms governing the flow of information within a system.
Transitioning to the Register Transfer Level Notation, we unveil the symbolic language that
serves as our guide in deciphering and designing complex digital architectures. Moving
forward, we illuminate the sequential steps integral to developing a digital system at the
register transfer level, ensuring a holistic comprehension of the design process.
Subsequently, our focus shifts to microprogramming, where we unravel the significance of
microinstructions and their pivotal role in orchestrating the control aspects of digital systems.
Finally, we explore the contrasting realms of hardwired control, dissecting its definition,
characteristics, and conducting a comparative analysis with microprogramming. Through this
structured exploration, our aim is to equip you with a profound understanding of these
interconnected topics, fostering the skills necessary for proficient digital system design.
Module learning outcomes
Upon completing this module, you should be able to:
MLO 1. Analyze the definition and characteristics of registers, demonstrating a proficient
understanding of their role in digital systems and their impact on data transfer operations at
the register level.
MLO 2. Apply Register Transfer Level Notation to interpret and create representations of
digital systems, showcasing the ability to navigate and communicate complex design
structures.
MLO 3. Synthesize knowledge acquired throughout the module to articulate and execute the
sequential steps involved in developing a digital system at the register transfer level,
emphasizing a comprehensive grasp of the design process.
MLO 4. Evaluate the significance of microinstructions in controlling digital systems,
illustrating a nuanced understanding of their role and impact on system behaviour.
MLO 5. Compare and contrast the definition and characteristics of hardwired control with
microprogramming, showcasing a discerning analysis of the advantages and disadvantages
of each approach in digital system design.
Module 7: RTL, microprogramming and hardwired control 1
IFT212 – Computer Architecture and Organization
7.1 Definition and characteristics of registers
In computer science, a register is an important component of digital devices that stores data
and instructions for quick processing. It serves as a temporary storage area where
information can be accessed and manipulated quickly in order to carry out complex tasks.
Registers are the most basic type of memory in computers and they play a critical role in
helping machines process data efficiently. Registers are a type of computer memory built
directly into the processor or CPU (Central Processing Unit) that is used to store and
manipulate data during the execution of instructions. A register may hold an instruction, a
storage address, or any kind of data (such as a bit sequence or individual characters).
A register is composed of multiple flip-flops, which are electronic circuits capable of storing
a single bit of information, which is represented through binary data – either a 0 or a 1. By
combining multiple flip-flops, registers can store larger binary values, such as bytes or
words. Registers also contain control logic circuitry, which allows it to coordinate the flow of
data and instructions within the CPU. This can include operations such as decoding control
signals, performing data manipulation like data loading, storing, or arithmetic operations, and
using mulitplexers to route data to a specific location within the register. Together, flip-flops
and control logic work in partnership within registers. Flip-flops provide the storage capacity,
while control logic facilitates the coordination of data transfer, manipulation, and
synchronization with other components of the CPU. This enables registers to store and
process data efficiently during the execution of instructions.
The number and size of registers in a CPU are determined by the processor design and can
have a significant impact on its performance and capabilities. Most modern computer
processers include:
i. 8-bit registers: These registers can store 8 bits of data (1 byte). They are often
used for basic arithmetic operations and data manipulation.
ii. 16-bit registers: These registers can store 16 bits of data (2 bytes). They are
commonly found in older processors or in specific architectures that require 16-bit
operations.
iii. 32-bit registers: These registers can store 32 bits of data (4 bytes). They are
widely used in many processors and are capable of handling larger data sizes
and more complex calculations.
iv. 64-bit registers: These registers can store 64 bits of data (8 bytes). They are
prevalent in modern processors and offer increased computational power and
memory addressing capabilities.
Modern PCs today most often have 32-bit or 64-bit registers and are referred to as the
32-bit processors and 64-bit processors we often hear about. This indicates the size or
width of the processor's registers and the amount of data the processor can handle in a
single operation.
7.1.1 Types of CPU Registers
Depending on the CPUs architecture and design, the type and number of registers can vary.
Common types of registers found in a CPU may include:
2 Module 7: RTL, microprogramming and hardwired control
IFT212 – Computer Architecture and Organization
i. Program Counter (PC): The Program Counter keeps track of the memory
address of the next instruction to be fetched and executed.
ii. Instruction Register (IR): The Instruction Register holds the currently fetched
instruction being executed.
iii. Accumulator (ACC): The Accumulator is a general-purpose register used for
arithmetic and logical operations. It stores intermediate results during
calculations.
iv. General-Purpose Registers (R0, R1, R2…): These registers are used to store
data during calculations and data manipulation. They can be accessed and
utilized by the programmer for various purposes.
v. Address Registers (AR): Address Registers store memory addresses for data
access or for transferring data between different memory locations.
vi. Stack Pointer (SP): The Stack Pointer points to the top of the stack, which is a
region of memory used for temporary storage during function calls and other
operations.
vii. Data Registers (DR): These registers store data fetched from memory or
obtained from input/output operations.
viii. Status Register/Flags Register (SR): The Status Register or Flags Register
contains individual bits that indicate the outcome of operations, such as carry,
overflow, zero result, and others. These flags help in making decisions and
controlling program flow based on the results of previous operations.
ix. Control Registers (CR): Control Registers manage various control settings and
parameters related to the CPU's operation, such as interrupt handling, memory
management, and system configuration.
x. Special-purpose registers (SPRs) hold some elements of the program state; they
usually include the program counter, also called the instruction pointer, and the
status register; the program counter and status register might be combined in a
program status word (PSW) register. The aforementioned stack pointer is
sometimes also included in this group. Embedded microprocessors can also
have registers corresponding to specialized hardware elements.
xi. In some architectures, model-specific registers (also called machine-specific
registers) store data and settings related to the processor itself. Because their
meanings are attached to the design of a specific processor, they cannot be
expected to remain standard between processor generations.
7.1.2 Characteristics of register
Registers in computer architecture possess several key characteristics that contribute to
their crucial role in the functioning of a processor. Understanding these characteristics is
essential for computer architects, hardware designers, and programmers as it influences the
overall performance and efficiency of a computer system. The judicious use of registers is
Module 7: RTL, microprogramming and hardwired control 3
IFT212 – Computer Architecture and Organization
crucial for optimizing the execution of instructions and maximizing the speed of
computational tasks. Some of these characteristics are:
i. Speed: Registers are the fastest storage elements in a computer system. They
provide rapid access to data and instructions for the CPU, facilitating efficient
execution of instructions. Due to their proximity to the processor, data transfer to
and from registers occurs at high speeds.
ii. Limited Capacity: Registers have a limited storage capacity. A computer typically
has a small set of registers, each capable of holding a fixed number of bits. This
limitation is a trade-off between speed and the cost associated with
manufacturing larger and faster registers.
iii. Data Storage: Registers serve as temporary storage for both data and
instructions. Data registers hold operands and intermediate results during
arithmetic and logic operations, while instruction registers store the current
instruction being executed.
iv. Operand Storage: Registers are used to store operands for arithmetic and logic
operations. The CPU fetches data from registers, processes it, and stores the
results back in registers. This process is fundamental to arithmetic and logical
computations.
v. Processor Control: Certain registers play a crucial role in controlling the
processor's operations. For example, the program counter (PC) keeps track of
the memory address of the next instruction to be fetched, while status registers
(flags) hold information about the current state of the processor, such as zero or
carry flags.
vi. Temporary Storage: Registers offer temporary storage for data that requires
quick access and manipulation by the CPU. This temporary storage is vital for
storing variables, intermediate results, and addresses during program execution.
vii. Register Hierarchy: Registers are often organized into a hierarchy based on their
functions and proximity to the CPU. General-purpose registers can be used for
various purposes, while special-purpose registers are dedicated to specific
functions like addressing and control.
viii. Cache Utilization: In modern processors, registers are closely tied to cache
memory. Registers are used as a staging area for data transfers between the
cache and the processor, optimizing data access times.
7.1.3 Register Transfer Level (RTL) Notation
Register Transfer Level (RTL) notation is a symbolic way to describe the operations and
data flow within a digital system, particularly within a CPU. It focuses on how data is
transferred between registers, memory, and other functional units. RTL is a level of
abstraction between digital logic and assembly language.
4 Module 7: RTL, microprogramming and hardwired control
IFT212 – Computer Architecture and Organization
Purpose of RTL
Describe Hardware Operations: RTL provides a concise and precise way to
represent the sequence of operations that occur within a digital system during the
execution of an instruction.
Design and Analysis: It's used in the design and analysis of digital systems,
including CPUs, microcontrollers, and other hardware components.
Simulation and Verification: RTL descriptions can be used to simulate and verify
the behavior of digital circuits before they are physically implemented.
Hardware Description Languages (HDLs): RTL concepts are fundamental to
hardware description languages like Verilog and VHDL.
Basic Components of RTL Notation
RTL uses a set of symbols and expressions to represent:
Registers: Denoted by their names (e.g., PC, MAR, MDR, R1, ACC).
Memory: Represented by M[address], where address can be a specific address or a
register containing the address.
Data Transfer: The assignment operator ← is used to indicate data transfer.
Arithmetic and Logic Operations: Standard symbols are used for operations (e.g.,
+, -, *, /, AND, OR, NOT).
Control Signals: May be indicated to show when a transfer or operation occurs
(e.g., using a conditional statement).
RTL Statements
RTL statements describe how data is transferred and manipulated during a clock cycle.
The general form of an RTL statement is:
Destination ← Source
This statement indicates that the data from the Source is transferred to the Destination.
Examples of RTL Statements
MAR ← PC: The contents of the Program Counter (PC) are transferred to the
Memory Address Register (MAR).
Module 7: RTL, microprogramming and hardwired control 5
IFT212 – Computer Architecture and Organization
MDR ← M[MAR]: The data from the memory location addressed by the MAR is
transferred to the Memory Data Register (MDR). (Memory Read)
ACC ← ACC + R1: The contents of register R1 are added to the contents of the
Accumulator (ACC), and the result is stored in the ACC.
PC ← PC + 1: The Program Counter is incremented by 1.
IF (Ready = 1) THEN MDR ← Input_Data: If the signal Ready is 1, then the data
from Input_Data is transferred to the MDR.
Example: RTL Description of a Fetch Cycle
Here's an example of how RTL can describe the fetch cycle of a basic instruction:
1. MAR ← PC: Transfer the address from the PC to the MAR.
2. MDR ← M[MAR]: Read the instruction from memory into the MDR.
3. IR ← MDR: Transfer the instruction from the MDR to the Instruction Register (IR).
4. PC ← PC + 1: Increment the PC to point to the next instruction.
Benefits of RTL
Abstraction: RTL simplifies the representation of complex digital systems by
focusing on data flow rather than low-level circuit details.
Clarity: It provides a clear and concise way to describe hardware operations.
Formalism: RTL provides a formal basis for hardware design, enabling more
rigorous analysis and verification.
6 Module 7: RTL, microprogramming and hardwired control