1,149 views
3 votes
3 votes

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.

1 Answer

6 votes
6 votes

Answer:

$\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.

edited by

Related questions

4 votes
4 votes
2 answers
1
admin asked Oct 28, 2019
2,156 views
A DMA controller has five channels. The controller is capable of requesting a $32$-bit word every $40\: nsec.$ A response takes equally long. How fast does the bus have t...
0 votes
0 votes
0 answers
3