786 views

Suppose that a system uses DMA for data transfer from disk controller to main memory. Further assume that it takes $t_{1}\: nsec$ on average to acquire the bus and $t_{2}\:nsec$ to transfer one word over the bus $(t_{1} >> t_{2}).$ After the CPU has programmed the DMA controller, how long will it take to transfer 1000 words from the disk controller to main memory, if

1. word-at-a-time mode is used,
2.  burst mode is used?

Assume that commanding the disk controller requires acquiring the bus to send one word and acknowledging a transfer also requires acquiring the bus to send one word.

$\mathrm{\mathbf{(a)}: (3000)(t_1+t_2)} \;\text{nsec}$

$\mathrm{\mathbf{(b)}: 3t_1+1002t_2}$

Explanation:

(a) word-at-a-time mode:

Total time $=\mathrm{1000[\underbrace{(t_1+t_2)}_\text {X} + \underbrace{(t_1+t_2)}_\text{Y}+\underbrace{(t_1+t_2)}_\text{Z}] \\= 3000(t_1+t_2)}\;\text{nsec}$

Here,

$\text{X}:$ Time required for obtaining the bus and then dispatching the command to the disk controller.

$\text{Y}:$ Time required for fetching the word.

$\text{Z}:$ Time required for the acknowledgment.

(b) Burst Mode:

Total Time $=\mathrm{\underbrace{(t_1+t_2)}_\text{A} + \underbrace{t_1}_\text{B} + \underbrace{1000 \times t_2}_\text{C}+\underbrace{(t_1 + t_2)}_\text{D}\\ = 3t_1+1000\times2t_2\\=3t_1+1002t_2}$

$\text{A}:$ Time required for obtaining the bus and then dispatching the command to the disk controller.

$\text{B}:$ Time required by the disk controller to obtain the bus.

$\text{C}:$ Time needed for the burst transfer.

$\text{D}:$ Time required for obtaining the bus and performing the acknowledgment.

by

For part (b) Burst mode i think it should be 3*t1 + 1002*t2.

There is a mistake in your answer check it!
If you add up, you will get the same

@mahabir10

You were right, corrected!