ALU and Data Path in Computer Organization
ALU and Data Path in Computer Organization
Organization
Earlier, representing and storing numbers were the basic operation
of computers. But when computers came with computation,
manipulating numbers like adding, multiplying operations, then
these operations are handled by the computer's ALU or arithmetic
logic unit.
The central processing unit (CPU) can be divided into two sections:
Data Path
Suppose any data processing operation should be performed in the
CPU like transferring the content of register from one place to
another, from one register to another register, performing the
addition of two numbers in ALU, copying something in memory and
copying to register. So, any data processing operation happens in
the CPU, and then for that data operation, data follows a specific
path, called "data path".
A data path is a collection of functional units such as arithmetic
logic units or multipliers that perform data processing
operations, registers, and buses. Along with the control unit, it
composes the central processing unit (CPU). A larger data path can
be made by joining more than one data path using multiplexers.
ADVERTISEMENT
A data path is the ALU, the set of registers, and the CPU's internal
buses that allow data to flow between them.
The simplest design for CPU uses one common internal bus, and
efficient addition requires a slightly more complicated three-
internal-bus structure. Many relatively simple CPUs have a 2-read, 1-
write register file connected to the 2 inputs and 1 output of the ALU.
2. Registers
Registers are like gates here through which signals are further sent
to components to do the micro-operation. Registers are controlled,
and signals of registers are directed by the control- unit. Here are
five registers used to store in-out signal data:
i. Program Counter
The program counter (PC) is a CPU register in the computer
processor which has the address of the next instruction to be
executed from memory. As each instruction gets fetched, the
program counter increases its stored value by 1. It is a digital
counter needed for faster execution of tasks and tracking the
current execution point.
ii. Instruction Register
In computing, an instruction register (IR) is the part of a CPU's
control unit that holds the instruction currently being executed
or decoded. An instruction register is the part of a CPU's
control unit that holds the instruction currently being executed
or decoded. The instruction register specifically holds the
instruction and provides it to the instruction decoder circuit.
iii. Memory Address Register
The Memory Address Register (MAR) is the CPU register that
either store the memory address from which data will fetch
from the CPU or the address to which data will be sent and
stored. It is a temporary storage component in the CPU (central
processing unit) that temporarily stores the address (location)
of the data sent by the memory unit until the instruction for
the particular data is executed.
iv. Memory Data Register
The memory data register (MDR) is the register in a computer's
processor, or central processing unit, CPU, that stores the data
being transferred to and from the immediate access storage.
Memory data register (MDR) is also known as memory buffer
register (MBR).
v. General Purpose Register
General-purpose registers are used to store temporary data
within the microprocessor, and it is a multipurpose register.
They can be used either by a programmer or by a user.
3. BUS
In early computers, the bus was parallel electrical wires with
multiple hardware connections. Therefore a bus is a communication
system that transfers data between components inside a computer
or between computers. It includes hardware components like wires,
optical fibers, etc. and software, including communication protocols.
At the same time, there is a disadvantage that it has only one bus.
This "one bus" is accessed by all general-purpose registers, program
counter, instruction register, MAR, and MDR, making every
operation sequential. No one recommends this architecture
nowadays.
ADVERTISEMENT
One bus fetch operand for ALU and another bus fetch for register.
The situation arises when both buses are busy fetching operands,
the output can be stored in a temporary register. When the buses
are free, then the particular output can be dropped on the buses.
There are two versions of two bus organizations, i.e., in-bus and out-
bus. From in-bus, the general-purpose register can read data, and to
the out bus, the general-purpose registers can write data. Here
buses get dedicated.