1.4k views
Consider a system in which DMA technique is used to transfer 16 MB of data from an I/O device into memory. The bandwidth of I/O device is 128 KB/s. What percentage of time is the CPU in busy mode (approximately)?
| 1.4k views
0
processor clock frequency is also required...

The complete question goes like this...

by (117 points)
0

This question is incomplete and the complete question is given in one of the answers.

For the transfer to begin I/O device first need to fill the interface buffer

So the time required = 16MB / 128KB/s = 128s. (In this period of time CPU remains busy doing its own work as it has its own control over the bus).

Now that our interface buffer is full DMA controller takes over the bus and transfer it to the main memory in 28 secs.(Here CPU remains idle as bus is in control of DMA controller).

So % of time CPU is busy = 100*(time period when CPU is busy) / (Total time)

= 100*(128) / (128 + 28)

= 82.05%

by (217 points)
edited
0
(100*128)/(128+28) = 82.05%
0
What's the difference between two?

128 kb ----------------1 sec

so in 1---------------1/128kb
16 MB-------------- (1/128kb)*16MB
=(16*106) /(128*103 )
=125 sec

by Boss (20.1k points)
+1
But the Question is asking for percentage of time the CPU is busy.
cpu will be busy only when the cpu bus will be taken by the dma, i think this is totally dependent on you in which mode you run dma or use the time. so answer can't be specific it is a wrongly framed question ( i think so )
by Boss (16.1k points)
Explanation:
Time taken by I/O device = 16 MB128 kB=128 sec
Percentage time CPU is busy = 128128+28×100=82.05
by Boss (10.2k points)
0
1. Can you tell me when will the CPU be in busy mode i.e. is it busy at the overhead time or when the actual data transfer is happening. ?
2. How did you get 28 sec time ?
–1 vote
here the time for i/o transfer is not given.
by (25 points)