Skip to content

Data Movement among registers using Bus

βœ… Introduction

In a computer system, registers are small, fast memory locations used by the CPU to temporarily store and manipulate data.
To transfer data between these registers, we use a common bus system.


🧠 What is a Common Bus?

A bus is a set of shared lines (wires) that can carry data, addresses, or control signals among the different components of a computer.

The common bus allows multiple registers to connect through a single shared data path, reducing hardware complexity.


🧩 Why Use a Bus for Register Transfer?

Without a bus:

  • Each register would need direct lines to every other register
  • This would require many connections and increase circuit complexity

With a bus:

  • A single shared pathway is used
  • Data transfer is simpler and more efficient

βš™οΈ Basic Components Involved

ComponentDescription
RegistersSmall memory locations in the CPU (AC, DR, IR, etc.)
Bus (16-bit)A common 16-bit data path shared by all registers
Multiplexer (MUX)Selects one register to place data on the bus
Control SignalsDetermine which register sends or receives data

πŸ” Steps of Register-to-Register Transfer Using the Bus

Let’s consider an example:
πŸ‘‰ Transfer data from Register A (source) to Register B (destination).

πŸ”Ή Step 1: Select Source Register

  • A multiplexer (MUX) chooses Register A as the data source
  • The control signal Enable_A is activated

πŸ”Ή Step 2: Data Placed on the Bus

  • The content of Register A is placed on the common bus
  • The bus now holds A’s data temporarily

πŸ”Ή Step 3: Select Destination Register

  • The control unit activates Load_B signal
  • Register B reads data from the bus and stores it

πŸ“˜ Micro-operation Format

In micro-operations, the data transfer can be written as:

B ← A

Translated to control steps:

  • Enable output of A
  • Place data on bus
  • Enable input of B

🧠 Example: DR β†’ AC

If the Data Register (DR) has a value and we want to copy it to the Accumulator (AC):

  1. Activate Enable_DR (DR outputs to bus)
  2. Bus carries the 16-bit value
  3. Activate Load_AC (AC reads from bus)

Result:

AC ← DR

πŸ“Š Diagram (Visual Summary)

   [Register A] --┐
[Register B] --─
[Register C] --─→ [MUX] β†’ [16-bit BUS] β†’ [Input Load Control] β†’ [Register D, etc.]

Control signals determine which register sends/receives.


βœ… Advantages of Using Bus for Register Transfer

  • βœ… Reduces hardware connections
  • βœ… Easier to control data flow
  • βœ… Efficient for small-scale CPU designs
  • βœ… Enables modular system design

⚠️ Limitations

  • ❌ Only one transfer at a time (serial operation)
  • ❌ May become a bottleneck in high-performance systems

🎯 Conclusion

The common bus system is a fundamental concept in CPU design.
It allows efficient data transfer among registers using a single shared bus, controlled by multiplexers and control signals.
Understanding this helps students grasp how micro-operations work inside the CPU.