Made easytest series


hard disk with transfer rate of 1 KBps is constantly transferring data to memory using DMA. The size of data transfer is 16 bytes. The processor runs at 400 kHz clock frequency. The DMA controller requires 10 cycles for initialization of operation and transfer takes 2 cycles to transfer one byte of data from device to the memory. Let M and N be the maximum percentage of time that the CPU is blocked in cycle stealing mode and Burst mode. Find the value of M-N?
cycle stealing mode and burst mode calculation is right? bcz in test series solution burst mode is given as cycle stealing mode…



I would suggest you not to use any such formula’s as you might forget them in exams.
Go by concept.

Cycle Stealing Mode: [Data is prepared, DMA initialized, DMA transfer]*Total Number Of Cycles Required

Burst Mode: [Data is Prepared,DMA initialized, DMA transfer*Total Number Of Cycles Required]

In simple words the basic difference is, in Burst Mode you just initialize the DMA only once and then transfer all the data without giving the control back to CPU.
But in Cycle stealing mode, you transfer data then give control back to CPU, again when your data is ready you initialize DMA again and this cycle continues.

Now Let’s solve the problem,
( Inorder to solve it easily convert everything either to cycles or to seconds. Here i am converting everything to cycles )

400 kHz clock frequency,
So 1 cycle = 400kHz = 1/(400 x 10^3) seconds --------eqn(1)

We have to transfer 16B of data.
We know,

Harddisk transfer rate is 1KBps,
This means we can prepare our data at a speed of 1KBps.

It is also given that the DMA can transfer 1B of data at a time. So we will now calculate how much time it takes to prepare 1B of data.

1KB -> 1s
1B -> (1/10^3)second

Now i am just converting (1/10^3)seconds into units of cycles.
1/(400 x 10^3) -> 1 cycle
1/10^3 -> 400 cycles.

So it takes 400 cycles to prepare 1B of data.

Now one important thing to note here is CPU will remain blocked when DMA activity (DMA initialisation, DMA transfer, DMA termination) is going on.


Total time = 16*400 + 10 + 2 = 6412
CPU Block time = 16*12 = 192

% of time CPU is blocked = (192/6412)*100 = 2.99 %

Total time = 16*400 + 10 + 16*2 = 6442
CPU block Time = 10 + 16*2 = 42

% of time CPU is blocked = (42/6442)*100 = 0.65 %


A DMA is transferring characters to processor from a device transmitting at 8000 bits per sec. Assume DMA using cycle stealing mode. If processor needs access to main memory once every micro second. The percentage processor be slow down due to DMA activity is ______ (in %).

0.1 is right ans?


The question itself is wrong. Forget about answer. Does DMA is used to transfer characters to processor? DMA means direct memory access. Do check the questions before posting and in case of CO try to solve from good authentic books. Else some problems would end of making all your correct concepts go wrong.


in cycle stealing moda… why total time is =16400+10+2 and not 16400+16*12… means why did u only considered time to prepare 16 units of date and transfer time of one unit of data where we r to tranfer 16 units of data?.. please explain…


means why 16400+10+2 … why not 16400+16*12…