Chapter 6
Chapter 6
FUNCTIONAL ORGANIZATION
Implementation of Simple Data Paths
Data path is a collection of functional units, such
as registers, ALUs (Arithmetic Logic Units), and
multiplexers, interconnected to facilitate the
movement and manipulation of data within a
computer system.
The implementation of simple data paths
involves designing and organizing these
components to perform basic operations.
Components of Simple Data Paths
1. Registers:
Registers are small, fast storage locations within the CPU used for temporary
data storage.
They store operands, intermediate results, and control information during
program execution.
Common registers include the program counter (PC), instruction register (IR),
and general-purpose registers.
2. ALU (Arithmetic Logic Unit):
The ALU performs arithmetic and logic operations on data.
Arithmetic operations include addition, subtraction, multiplication, and division.
Logic operations involve bitwise operations like AND, OR, and NOT.
Components of Simple Data Paths
3. Multiplexers:
Multiplexers (mux) are used to select one of several input data
sources and direct it to the output.
They are crucial for controlling the flow of data within the data path.
4. Data Paths:
Data paths connect various components, allowing data to flow from
one part of the CPU to another.
They include buses (data buses, address buses) that transfer data
between components.
Data Path Operations
1. Instruction Fetch:
Involves retrieving an instruction from memory and placing it in the
instruction register (IR).
The program counter (PC) is updated to point to the next
instruction.
2. Data Transfer:
Movement of data between registers and memory.
Involves loading data into registers or storing data from registers
into memory.
Data Path Operations
3. Arithmetic Operations:
ALU performs arithmetic calculations on data stored in
registers.
Results are stored back in registers.
4. Logic Operations:
ALU executes logical operations on binary data.
Useful for decision-making and data manipulation.
Design Considerations
1. Clocking Mechanism:
Synchronization of operations through a clock signal to ensure proper sequencing.
The clock signal determines when each operation should occur.
2. Control Signals:
Control signals generated by the control unit dictate the operation of various
components.
Signals activate specific functions like reading from or writing to registers.
3. Bus Structure:
The organization of data buses (e.g., data bus, address bus) influences data
transfer speed and efficiency.
Control Unit
The control unit is a crucial component in a computer's
architecture responsible for generating control signals that
coordinate the activities of other hardware components within
the CPU.
There are two primary approaches to implement the control
unit:
1. hardwired realization
2. microprogrammed realization.
Hardwired Realization
In hardwired control units, the control signals
are generated using combinational logic circuits.
The design is fixed, and the control signals are
directly derived from the instruction opcode or
other inputs.
It involves a direct mapping of the instruction set
to the control signals without an intermediate step.
Microprogrammed Realization
Microprogrammed control units use a
control memory that stores microinstructions.
Microinstructions are sets of control signals
that dictate the operations of the CPU.
It provides a more flexible and modular
approach to control unit design.
Comparison
1. Adaptability:
Hardwired control units are less adaptable to changes in instruction
sets, requiring significant hardware modifications.
Microprogrammed control units are more adaptable, allowing for
easier updates and modifications.
2. Complexity vs. Flexibility:
Hardwired units may become complex for larger instruction sets.
Microprogrammed units trade some simplicity for flexibility,
enabling easier management of complex instruction sets.
Comparison
3. Speed:
Hardwired control units are generally faster due to the direct
implementation of control signals.
Microprogrammed units may introduce additional cycles for
accessing the control memory, potentially slowing down the
execution.
Instruction Pipelining
Instruction pipelining is a technique used in computer
architecture to improve the overall performance of a
processor by allowing the simultaneous execution of
multiple instructions.
The idea is to break down the instruction execution into a
series of stages, with each stage handled by a separate
segment of the processor.
This way, multiple instructions can be in different stages
of execution concurrently.
Introduction to Instruction-Level Parallelism (ILP)
Instruction-Level Parallelism (ILP) is a concept in
computer architecture that involves executing multiple
instructions in parallel to improve overall processor
performance.
It aims to exploit parallelism within a single stream of
instructions to enhance throughput and reduce the overall
execution time of a program.
ILP is crucial for achieving high performance in modern
processors.
The End!!!
Thank You!!!