edited by
2,715 views
2 votes
2 votes

DMA is transferring characters to the processor, from a device transmitting at 16000 bits per second. Assume DMA is using cycle stealing, If the Processor needs access to main memory once every microsecond, find how much percentage will the processor be slowed down due to DMA activity?

a. 0.20

b 0.25

c.0.30

d.0.35

edited by

2 Answers

Best answer
7 votes
7 votes

Answer is A).

DMA transmits 16000 bits per sec .

we take it as 2000 characters per sec by assuming data bus width = 1 byte  and runs for every cycle for every byte .

1 byte character is transmitted in ---> 1/2000 = 500 microsec.

Hence , a byte is transferred , one in every 500 microsec .

If the Processor needs access to main memory once every microsecond , so 1 access in 1 micro second , means 10 accesses in 1 sec .

This means DMA steals the bus in every 500th cycle , if processor performs 10 accesses in 1 sec .

So , percentage the processor be slowed down due to DMA activity

= 1/500 * 100 

= 0.20 

edited by
3 votes
3 votes
Now, I require 500 micro sec for 1 byte transfer which corresponds to 1 steal cycle.
So, in 1 sec , how many steal cycles ? = 1000000/500
Now, processor needs to access Main memory every 1 micro sec i.e. 1 cycle/ 1us
So, total cycles =  1000000 cycles in 1 sec.
Out of these total cycles, I am stealing or using additional cycles = 1000000/500
SO, percentage = (1000000/500) / 1000000  * 100 = 0.20

No related questions found