Accumulator vs. Register Computer Architecture
Accumulator vs. Register Computer Architecture
In computer architecture, the organization of the CPU (Central Processing Unit) depends on how
operands are stored and how arithmetic/logic operations are performed. One classic and simple
approach is the Accumulator-based organization, which was widely used in early computers and
microcontrollers.
An Accumulator is a special-purpose register within the CPU that holds one of the operands and the
result of arithmetic or logic operations. In this organization, most instructions implicitly use the
accumulator for one operand. Because the accumulator is the default location, many instructions only
need to specify a single explicit address.
Advantages:
• Simplicity of design
• Fewer bits per instruction
• Faster execution for small programs
• Cost-effectiveness – useful in simple embedded systems
Disadvantages:
• Limited flexibility − only one accumulator; cannot hold multiple intermediate results
simultaneously
• Frequent memory access − for every new operand, data must be fetched from memory,
increasing access time
• Difficult optimization − limited opportunity for instruction-level parallelism.
• Not scalable − inefficient for large programs and complex computations
Instructions in this architecture typically use two or three address fields, which can specify a GPR or a
memory location.
Registers from R0 to R7 − the general-purpose registers
Program Counter (PC) − holds the address of the next instruction.
Instruction Register (IR) − holds the current instruction.
Arithmetic Logic Unit (ALU) − performs arithmetic/logic operations, one input from ACC.
Memory Address Register (MAR) and Memory Data Register (MDR) (not shown in Fig.) − interface with
memory.
Control Unit (CU) − decodes and executes instructions.
Advantages:
• High speed − operands in registers, faster ALU operations
• Reduced memory access − fewer load/store cycles.
• Efficient use of CPU time − multiple registers support overlapping of operations (pipelining).
• Flexibility − any register can be used for arithmetic, logic, or address calculations.
Disadvantages:
• More complex control logic − decoder and data paths are larger.
• Larger instruction size − extra bits needed to specify register addresses.
• Hardware cost − more registers increase area and power.
• Context switching overhead − saving/restoring many registers during interrupts or task
switches.
Stack-based computer organization uses a Last-In, First-Out (LIFO) structure called a stack for memory
management, data storage, and arithmetic operations. It is managed by a stack pointer (SP) that points
to the top element. The two primary operations are PUSH (adding an item to the top) and POP
(removing the top item).
In a stack-based computer, all arithmetic, logic, and data-handling operations are performed using a
stack rather than named registers or accumulators. Operands for any operation are implicitly taken
from the top elements of the stack. Results are pushed back onto the stack.
Hence, instructions do not need to specify operands explicitly, making instruction format very compact.
The instruction mode used here is “implicit” or “implied”.
Example: Z = (A + B) × C
The sequence of operations are as follows:
1. PUSH A ; load number A to top of stack
2. PUSH B ; load number B to top of stack
3. ADD ; top of stack now contains A+B
4. PUSH C ; load number C to top of stack
5. MUL ; multiply the top two contents of stack
6. POP Z ; copy the product from stack to Z
Advantages
• Compact instructions − operands implicit; smaller program size.
• Simpler instruction decoding − no need to parse operand fields.
• Less data path hardware − no multiple registers required.
• Useful for high-level language execution − supports recursion and procedure calls easily.
Disadvantages:
• Difficult random access − operands accessible only in LIFO order.
• More data movement − frequent PUSH and POP operations cause stack overhead.
• Lower performance − compared to register machines, due to stack access latency.
• Limited parallelism − instructions highly sequential (each depends on top of stack).
Addressing Modes in Computers
Addressing modes in computer architecture are techniques that determine how the CPU finds the
operand (the data) for an instruction, offering different ways to calculate the effective memory address.
Addressing modes provide flexibility in referring to operands.
In this mode, the operand is implied by the operation itself. The instruction does not explicitly mention
any operand because the operation inherently knows where to act. Used in Single-operand instructions,
especially in accumulator- and stack-based processors.
Examples:
CLA ; Clear the accumulator
CMA ; Complement the accumulator
ADD ; Add the top two contents of stack
The operand (data) is given within the instruction itself; not stored in memory. The execution of the
instruction is faster because memory fetch is not required. The disadvantage is that the value of the data
is fixed and cannot be changed dynamically.
Examples:
MOV R1, #25 ; Move the immediate data 25 to register R1.
ADD R2, #36 ; Add 36 to the content of R2 register.
SUB R3, #10 ; Subtract 10 from the R3 register.
The operand is located in a CPU register. The instruction specifies the name of the register that holds
the operand. Advantage: very fast execution; Disadvantage: limited number of registers in CPU.
Examples:
MOV R1, R2 ; Copy the contents of register R2 into R1.
ADD R3, R1, R2 ; Add the contents of R1 & R2 and copy the sum to R3.
SUB R3, R1, R2 ; Subtract the content of R2 from R1 and copy the result into R3.
The instruction contains the absolute memory address where the operand is located. The advantage is
that we can directly specify the address in the instruction. The disadvantage is that the range of
addresses is limited.
Examples:
MOV A, 2050H ; Move data from memory location 2050H into register A.
ADD R1, 3000H ; Add the data which is present in location 3000H to R1 register.
INC 4000H ; Increment the content of location 4000H by one.
The register holds the address of the memory location where the operand is located. That is, the CPU
accesses memory indirectly through the register. Advantage: Allows access to a range of memory using
a small instruction. Disadvantage: One extra memory access is needed to fetch the operand.
Examples:
MOV AX, [SI] ; Move data from memory location pointed to by the register SI into AX register.
If SI = 2050H, then operand = contents of memory[2050H].
MOV [DI], AX ; Move the date from AX register to memory pointed by DI register
If DI = 2050H, then AX is stored in the memory with address 2050H.
The address of the operand is obtained by adding a constant which is specified in the instruction to the
content of a register. That is, Effective Address (EA) = Base Address (in register) + [Link].
Advantage: Excellent for accessing array elements. Disadvantage: Slightly more complex address
calculation
Examples:
MOV AX, [BX + 05H] ; Copy the operand from memory whose address is (BX + 5) to AX register
MOV R2, 1000[R2] ; Copy the operand from memory whose address is R2+1000 to R2 register.
After accessing the operand through a register-indirect method, the register’s value is automatically
incremented to point to the next operand. Advantage: Ideal for accessing sequential memory (like
arrays). Disadvantage: Only useful for sequential access, not random access.
Example:
MOV R2, R1+ ; Move data from memory pointed by R1 to R2, then increment R1.
The content of register is decremented first, and then the operand is accessed from memory through
register-indirect method. Advantage: Useful for stack operations (LIFO) and sequential memory.
Disadvantage: Not suitable for forward memory traversal or random access.
Example:
MOV R2, R1- ; Decrement R1, then move data from memory [R1] to R2.
Relative Addressing Mode
The effective address is obtained by adding a constant specified in the instruction to the program
counter (PC). This is used during branch or jump operations. Advantage: Enables position-
independent code; that is, physical address does not matter. Disadvantage: Limited range (127 bytes
forward or 128 bytes backward).
Example:
JMP 100 ; Jump to the instruction which is 100 bytes ahead of the current PC value.
JMP -100 ; Jump to the instruction which is 100 bytes behind the current PC value.
Every instruction in a computer’s instruction set tells the CPU what operation to perform and where to
find the operands. Depending on how many operand addresses an instruction explicitly specifies,
instruction formats are categorized into four major types:
It is used primarily in stack-based organizations. The operands are implicitly available on the top of the
stack. No need to mention operand addresses explicitly. Result is also pushed back onto the stack.
Advantages: Very compact instructions; Simpler decoding.
Disadvantages: Many PUSH/POP instructions are required; Random access is not possible (only LIFO).
Example: Z = A+B×C
PUSH A ; Copy the content of A to top-of-stack (TOS)
PUSH B ; Copy the content of B to TOS
ADD ; Add the top two contents of stack and store the sum back in TOS
PUSH C ; Copy the content of C to TOS
MUL ; Multiply the top two contents of the stack and store product in TOS
POP Z ; Copy the product from TOS to Z
It is used in accumulator-based architecture. One operand is implicitly in the accumulator (AC), whereas
the other operand’s address is explicitly specified in the instruction.
Advantage: Short instruction (opcode + one address); simpler hardware design
Disadvantage: Frequent memory access for every new operand; not efficient for executing complex
expressions.
Example: Z = A+B×C
LOAD B ; ACC ← B
MUL C ; ACC ← ACC × C
ADD A ; ACC ← ACC + A
STORE Z ; D ← ACC
This is used commonly in general purpose register architectures. Each instruction specifies two
addresses: Source operand (in register or memory) and Destination operand (in register or memory).
Advantages: Reduced memory traffic – results are kept in registers; Moderate instruction size (opcode
+ two addresses)
Disadvantages: Longer instructions (two address fields); One operand is overwritten by the result; May
require multiple instructions to complete a complex expression.
Example: Z = A+B×C
MOV R1, B ; R1 ← B
MUL R1, C ; R1 ← R1 × C
ADD R1, A ; R1 ← R1 + A
MOV Z, R1 ; Z ← R1
It is used in general purpose register architectures. Each instruction explicitly specifies two source
operands, and one destination operand.
Advantages: High flexibility – all operands are present in registers; No overwriting of registers; Ideal for
pipelining; Minimum memory access.
Disadvantages: Longer instruction length – opcode + three addresses; More complex hardware.
Example: Z = A+B×C
MUL R1, B, C ; R1 ← B × C
ADD Z, A, R1 ; Z ← A + R1
Exercises:
Write codes to execute the following instructions using 0, 1, 2 and 3 address instructions:
(i) Z = (A+B) × (C+D)
(ii) Z = (A×B) + (B×C)
(iii) Z = A×B − C
Multiplication in Computers
1. Sequential Multiplier
In small systems (such as a calculator) where high-speed operation is not necessary, two unsigned
numbers can be multiplied using an iterative approach called Sequential Multiplier.
A Q
Initial values 0000 1100
Iteration #1
Q(0) = 0. Hence no addition
Right Shift AQ 0000 0110
Iteration #2
Q(0) = 0. Hence no addition
Right Shift AQ 0000 0011
Iteration #3
Q(0) = 1. Hence A A + M 0101 0011
Right Shift AQ 0010 1001
Iteration #4
Q(0) = 1. Hence A A + M 0111 1001
Right Shift AQ 0011 1100
Product = AQ = 0011 1100 = 60. (5 ×12 = 60)
2. Booth’s Multiplier
This algorithm makes use of the string property, that is, it inspects two bits of the multiplier at a time
and decides which action to perform, either addition or subtraction. This method can be used for both
signed and unsigned multiplications.
Example: Multiplicand = M = −4 = 1100 Multiplier = Q = +7 = 0111
A Q
Initial values 0000 01110 Bit pair = 10 → subtraction
Iteration #1
AA–M 0100 01110
Right Shift AQ 0010 00111 Bit pair = 11 → no add/sub
Iteration #2
Right Shift AQ 0001 00011 Bit pair = 11 → no add/sub
Iteration #3
Right Shift AQ 0000 10001 Bit pair = 01 → addition
Iteration #4
AA+M 1100 10001
Right Shift AQ 1110 01000 Product = 1110 0100
Note: Here, while shifting, the sign bit is retained the same (this is called arithmetic right shift).
Final product = 1110 0100 = −27 + 26 + 25 + 22 = −28
Exercises:
The memory unit of a computer is a fundamental component responsible for storing data,
instructions, and intermediate results that are used during processing. It provides the necessary
space for a computer to hold programs and data both temporarily and permanently. The memory system
plays a crucial role in determining the speed, performance, and efficiency of the entire computing
system.
1. Internal Memory
Internal memory refers to the small, high-speed memory components located inside the CPU or
directly accessible by it. It provides the fastest access time and holds data or instructions currently
being executed.
1. CPU Registers
o Smallest and fastest memory units.
o Hold temporary data, instructions, and addresses during execution.
o Examples: Accumulator, Instruction Register (IR), Program Counter (PC), and general-
purpose registers.
o Access time: in nanoseconds.
2. Cache Memory
o Acts as a buffer between CPU and main memory.
o Stores copies of frequently accessed data/instructions to reduce average access time.
o Typically organized into L1, L2, and L3 levels:
▪ L1 Cache: Inside CPU core, smallest (e.g., 64 KB), fastest.
▪ L2 Cache: On-chip but shared by cores, larger (e.g., 512 KB – 2 MB).
▪ L3 Cache: Shared by multiple cores, slower but larger (e.g., 4–20 MB).
Characteristics
• Very high speed.
• Limited storage capacity.
• Volatile (data lost when power is off).
• Essential for CPU performance optimization.
2. Main Memory
Main memory is the primary working memory of the computer system where data and programs in
active use are stored temporarily. It provides a bridge between the CPU and secondary storage.
Characteristics
• Moderate speed compared to internal memory.
• Limited capacity (typically GBs in modern systems).
• Directly accessible by the CPU.
• Volatile in nature (for RAM).
3. Secondary Memory
Secondary memory (or external memory) provides permanent data storage for programs and files
that are not actively in use. It is non-volatile and used to store large volumes of data cost-effectively.
Characteristics
• Non-volatile — retains data permanently.
• Slower than main memory but much larger in capacity (TBs or PBs).
• Data must be loaded into main memory for CPU access.
• Cost per bit is much lower than primary memory.
Functions
• Long-term storage of programs, data, and backups.
• Stores files, multimedia, databases, and system images.
• Supports data archiving and retrieval.
Cache Memory
(Pronounced as Cashay)
The cache memory is a small, high-speed memory unit located between the CPU and main memory
(RAM). It stores frequently accessed instructions and data, thereby reducing the average time to
access data from the main memory.
Because CPU speed is much higher than that of main memory, a speed mismatch exists. Cache memory
acts as a buffer to minimize this mismatch and improve system performance.
• The CPU operates at nanosecond speeds, while RAM operates at tens or hundreds of
nanoseconds.
• If the CPU must always wait for data from RAM, its processing speed reduces drastically.
• Cache memory stores copies of frequently used data and instructions, allowing the CPU to
access them much faster.
• The goal is to reduce the average memory access time (AMAT).
Basic Working Principle
Cache Hit
A cache hit occurs when the CPU finds the required data in the cache memory.
• Access time is very small (a few nanoseconds).
• The CPU proceeds without accessing the main memory.
Cache Miss
A cache miss occurs when the required data is not present in the cache.
• The data is fetched from main memory, which takes longer.
• The cache is then updated with the fetched data for future use.
Hit Ratio
The hit ratio is the fraction of memory accesses found in the cache.
It measures cache performance.
Miss Ratio
Miss Ratio (m) = 1 − Hit Ratio
Access Time
The average memory access time (AMAT) or effective access time (EAT) is given by:
EAT = (Hit ratio × Cache access time) + (Miss ratio × Main memory access time after a cache miss)
This equation shows how the cache improves the effective speed of memory operations.
1. Calculate the average memory access time and efficiency of a cache memory system if access time for
cache memory is 160 ns, access time for main memory is 960 ns and cache hit ratio is 0.9.
Solution:
Average access time = 𝑇𝑒𝑓𝑓 = ℎ 𝑡𝑐 + (1 − ℎ)(𝑡𝑐 + 𝑡𝑚 )
= 0.9 × 160 + (1 − 0.9)(160 + 960) ns
= 256 ns
𝑡𝑐
Efficiency = Λ = ⁄𝑇 = 160/256 = 0.625 = 62.5%
𝑒𝑓𝑓
2. A cache memory system has 95% hit ratio, an access time of 100 ns for a cache hit and an access time
of 800 ns for a cache miss. Compute the effective access time and efficiency.
Solution:
Here consider tc = 100 ns and tc + tm = 800 ns
Teff = 0.95×100 + (1−0.95)×800 = 135 ns
Efficiency = 100 / 135 = 0.74 = 74%
Since cache memory is smaller than main memory, an efficient mapping technique is required to decide
where to store a particular block of main memory in the cache. There are three major mapping
techniques:
A. Direct Mapping
B. Fully Associative Mapping
C. Set-Associative Mapping
Levels of Cache
Modern CPUs use multi-level caching to optimize speed and capacity trade-offs:
Level Location Size Speed Function
L1 Small
Inside CPU core Fastest Immediate access
Cache (32–128 KB)
Medium
L2 On CPU chip (shared or per-
(256 KB–2 High speed Backup for L1
Cache core)
MB)
L3 Large Slower than Reduces main memory
Shared among cores
Cache (4–20 MB) L2 access
L4 Improves system-level
Optional (on motherboard) Very large Slower
Cache caching
Conclusion
Cache memory plays a crucial role in bridging the speed gap between the CPU and main memory.
By intelligently storing and managing frequently accessed data, it achieves:
In a computer system, the CPU (Central Processing Unit) performs computations, while I/O
(Input/Output) devices handle data exchange with the external world − such as keyboards, printers,
disk drives, and network cards.
Since I/O devices are typically slower than the CPU and memory, an efficient mechanism is required
to synchronize data transfer between them.
The communication between CPU and I/O devices is managed through the I/O interface (or controller),
which acts as a link between high-speed CPU/memory and low-speed peripherals.
There are three main techniques for data transfer between CPU and I/O devices:
1. Programmed I/O
2. Interrupt-driven I/O
3. Direct Memory Access (DMA)
Each technique differs in how CPU involvement and control are handled.
1. Programmed I/O
In Programmed I/O (PIO), the CPU directly controls all data transfer operations between memory
and the I/O device by executing a program or set of instructions.
The CPU continuously polls (checks) the I/O device status register to determine whether it’s ready to
send or receive data.
Working Principle
This technique is simple but inefficient, as the CPU remains busy waiting for the I/O device.
There are two ways to address I/O devices in programmed I/O systems:
(a) Isolated (or Direct) I/O and (b) Memory-mapped I/O
Example:
Features:
Disadvantages:
• I/O devices are assigned specific memory addresses in the same address space as normal
memory.
• The CPU can use standard data transfer instructions (like MOV, LD/ST) for I/O operations.
• No separate I/O instructions are needed.
Example:
Features:
• Memory and I/O share the same address and control signals.
• I/O registers are treated like memory locations.
Advantages:
Disadvantages:
2. Interrupt-Driven I/O
In Interrupt I/O, the CPU does not continuously poll the I/O device. Instead, the device notifies the
CPU via an interrupt signal when it is ready for data transfer.
This allows the CPU to perform other tasks while the I/O device completes its operation.
Working Principle
1. CPU initiates an I/O operation and continues executing other instructions.
2. When the I/O device is ready, it sends an interrupt signal to the CPU.
3. The CPU pauses the current program and saves its state.
4. CPU “jumps” to a special routine called the Interrupt Service Routine (ISR) to handle the I/O
operation.
5. After the ISR is executed, the CPU resumes the interrupted task.
Advantages
Disadvantages
Examples:
Direct Memory Access (DMA) allows peripherals to transfer data directly to or from main memory
without involving the CPU for each byte or word transfer.
A dedicated hardware unit called the DMA Controller (DMAC) manages the process.
• In large data transfers (e.g., disk or network), CPU-controlled I/O (Programmed or Interrupt) is
inefficient.
• DMA allows bulk data transfer at high speed without burdening the CPU.
Working Principle
Mode Description
DMA transfers an entire block of data in one continuous sequence. CPU is idle
Burst Mode
during the transfer.
Cycle Stealing DMA transfers one word per cycle, “stealing” bus cycles from the CPU
Mode intermittently.
Transparent
DMA transfers data only when CPU is not using the bus. (CPU has highest priority.)
Mode
Advantages of DMA
Disadvantages
• Complex hardware (requires DMAC).
• CPU and DMA may contend for memory access.
In a computer system, the CPU executes instructions that follow a sequence of steps such as fetching,
decoding, and executing.
The processor organization that determines how these steps are carried out for one or more
instructions gives rise to two major execution models:
Non-Pipelined Processor
Operation
If an instruction requires k stages (say, 5 stages), and each stage takes 1 clock cycle,
then the total time per instruction = k clock cycles.
Example
• IF (Instruction Fetch)
• ID (Instruction Decode)
• EX (Execute)
• MEM (Memory Access)
• WB (Write Back)
Instruction 1: IF → ID → EX → MEM → WB
Instruction 2: starts only after Instruction 1 completes
𝑇𝑛𝑜𝑛−𝑝𝑖𝑝𝑒 = 𝑛 × 𝑘
For example, if n = 5 and k = 5, then the CPU requires 25 clock cycles to complete.
Characteristics
Pipelined Processor
A pipelined processor divides instruction execution into multiple stages and allows overlapping of
different stages from successive instructions.
Just like an assembly line, while one instruction is being executed, the next instruction is decoded, and
another is fetched — simultaneously.
What is a Pipeline?
Each stage typically takes one clock cycle. After the pipeline is filled, one instruction completes every
clock cycle.
a) 3-Stage Pipeline
5-Stage Pipeline
Thus, the first instruction finishes after 5 cycles (pipeline filling), and each subsequent instruction
finishes every 1 cycle thereafter.
Performance Analysis:
Then:
Speedup (ideal):
𝑇𝑛𝑜𝑛 𝑛×𝑘
𝑆= =
𝑇𝑝𝑖𝑝𝑒 𝑘 + (𝑛 − 1)
As n → ∞ (many instructions),
𝑆𝑚𝑎𝑥 ≈ 𝑘
→ meaning a k-stage pipeline can ideally be k times faster than a non-pipelined processor.
Example:
Advantages of Pipelining
Disadvantages
Summary
Deep pipelines enable high clock rates but increase branch penalties and power consumption.
Pipeline Hazards (Limitations)
A pipeline hazard is any situation that prevents the next instruction in the instruction stream from
executing during its designated clock cycle.
Hazards cause pipeline stalls (bubbles), reducing overall speedup and efficiency.
1. Structural Hazards
2. Data Hazards
3. Control Hazards
1. Structural Hazards
Structural hazards occur when two or more pipeline stages need the same hardware resource at
the same time.
Since most CPU pipelines share resources like memory or registers, conflicts can occur, preventing one
instruction from proceeding.
If instruction and data share the same memory, both stages cannot access it simultaneously.
Solutions:
If register file allows only one access per cycle, and two instructions need simultaneous read/write,
structural hazard arises.
Solutions:
Data hazards occur when an instruction depends on the result of a previous instruction that has
not yet completed its passage through the pipeline.
They arise because instructions are overlapped − the result of one instruction may not be ready when
another instruction needs it.
There are three types based on the read/write dependencies between instructions:
Example:
Here:
• I2 needs the value of R1 produced by I1.
• But I1 writes to R1 only in WB stage, while I2 reads R1 in ID stage — too early!
Solutions:
Occurs when an instruction writes a register before a previous instruction has read it.
This can happen in out-of-order pipelines (not in simple in-order 5-stage pipelines).
Example:
Occurs when two instructions write to the same register, and the writes occur out of order.
Example:
Solutions:
3. Control Hazards
Control hazards (also called branch hazards) occur when the pipeline makes wrong decisions on
branch predictions or cannot determine the next instruction address in time.
They arise due to branch or jump instructions that alter the normal sequential flow.
Example:
I1: JEQ R1, R2, LABEL ; jump if equal (jump if zero flag is set)
I2: ADD R3, R4, R5
I3: SUB R6, R7, R8
LABEL: MUL R9, R10, R11
If the branch (I1) is taken, instructions I2 and I3 (already fetched) are invalid.
If not taken, execution continues sequentially.
Since the branch outcome is known only after the EX-stage, the pipeline may have already fetched the
wrong instructions.
Solutions
Branch Prediction
Delayed Branching
• Compiler schedules a useful instruction (independent of branch) into the branch delay slot.
Summary
Conclusion
In a computer system, the system bus is a shared communication pathway that connects the CPU, main
memory, and I/O devices.
It carries address, data, and control signals for transferring information among these components.
However, since multiple devices may request control of the bus simultaneously, a mechanism is
required to
decide which device gains access to the bus at a given time.
Bus arbitration is the process of selecting one bus master (e.g., CPU, DMA controller, or I/O device)
from multiple bus requesters, so that only one can control and use the shared system bus at any
moment.
The device that currently has control is called the bus master, while others must wait.
A. Centralized Arbitration
• A single bus arbiter (hardware or CPU logic) controls the entire arbitration process.
• All devices send their requests to this central arbiter.
Features
Example Methods
Example:
Advantages
• Simple and fast.
• Deterministic behavior — important for real-time systems.
Disadvantages
Advantage
Disadvantage
• Bus access is divided into time slots, and each device is pre-assigned a time slot to use the
bus.
• Each master is allowed to use the bus only during its allocated time slot, whether or not it has
data to transfer.
Advantages
Disadvantages
Bandwidth Allocation
• The bus bandwidth (data transfer capacity per unit time) is shared among devices according
to their assigned time slots. For instance, a high-speed device can be given more frequent
slots.
• Each bus master is given a number of “lottery tickets” proportional to its required share of
bandwidth.
• When multiple requests occur, the arbiter randomly picks a ticket — the corresponding master
wins bus control.
Example:
Device Tickets Probability of Winning
CPU 4 4/10
DMA 3 3/10
I/O 3 3/10
Advantages
Disadvantages
Summary
Term Description
Process of deciding which master controls the shared bus at a
Bus Arbitration
time.
Centralized Arbitration Single arbiter manages all bus requests.
Distributed Arbitration All devices coordinate among themselves to decide access.
Static Priority Protocol Fixed priority; simple but may cause starvation.
TDMA Protocol Pre-allocated time slots; ensures deterministic access.
Lottery-Based Protocol Randomized selection using weighted tickets; ensures fairness.
Bandwidth Allocation Distribution of available bus capacity among devices.