On a non-pipelined sequential processor, a program segment, which is the part of the interrupt service routine, is given to transfer bytes from an I/O device to memory.
Initialize the address register
Initialize the count to 500
LOOP: Load a byte from device
Store in memory at address given by address register
Increment the address register
Decrement the count
If count !=0 go to LOOP
Assume that each statement in this program is equivalent to a machine instruction which takes one clock cycle to execute if it is a non-load/store instruction. The load-store instructions take two clock cycles to execute.
The designer of the system also has an alternate approach of using the DMA controller to implement the same transfer. The DMA controller requires clock cycles for initialization and other overheads. Each DMA transfer cycle takes two clock cycles to transfer one byte of data from the device to the memory.
What is the approximate speed up when the DMA controller based design is used in a place of the interrupt driven program based input-output?
View worked solution
Answer: A
To find the speedup of the DMA controller approach over the interrupt-driven program approach, we calculate the total clock cycles required by both methods to transfer bytes of data.
1. Interrupt-Driven Program Approach
Let's analyze the cycle requirements for each instruction based on the given rules:
- Non-load/store instructions: Take clock cycle.
- Load/store instructions: Take clock cycles.
Initialization (executed once):
Initialize the address register(Non-load/store): cycleInitialize the count to 500(Non-load/store): cycle- Total initialization cycles = cycles
Loop Body (executed times):
Load a byte from device(Load): cyclesStore in memory...(Store): cyclesIncrement the address register(Non-load/store): cycleDecrement the count(Non-load/store): cycleIf count != 0 go to LOOP(Non-load/store): cycle- Total cycles per iteration = cycles
Total Interrupt-Driven Cycles ():
2. DMA Controller Approach
- Initialization and overheads: clock cycles
- Data transfer: clock cycles per byte for bytes
Total DMA Cycles ():
3. Speedup Calculation
The approximate speedup is .
Free practice · Your answers on this page are not saved.
