• retagged by
1,423 views
1 1 vote

Question → Consider a system in which bus cycles take 500 ns. Transfer of bus control in either direction, from processor to I/O device or vice-versa, takes 250 ns. One of the I/O devices has a data transfer rate of 50 KB/s and employs DMA. Data are transferred one byte at a time.
 

a) Suppose we employ DMA at a burst mode. That is, the DMA interface gains bus mastership prior to the start of a
block transfer and maintains control of the bus until the whole block is transferred. For how long would the device tie up the bus when transferring a block of 128 bytes?
 

b)Repeat the calculation for cycle-stealing mode

2 Answers

1 1 vote
$data\ transfer\ rate=50KB/sec$

$\mathit{bus \ cycle\ =500ns}$

$trasfer\ of\ bus\ control=250ns$

$data\ transfer\ 1\ Byte\ at\ a\ time$

$block\ size=128\ Byte$

 

$\mathit{Burst\ Mode)}$

$ transfer\ time=\frac{block\ size}{data\ transfer\ rate}$

                                      $\frac{128*8}{50*10^{3}*8}=2.56ms$

$actual\ transfer\ time=time\ to\ transfer\ bus\ control\ at\ beginning\ and\ end+transfer\ time$

$=250ns+2.56ms+250ns$

$=2.56ms+500ns$$=2.56ms+500ns(500ns \ is \ negligible)$

$\cong 2.56ms$

 

$\mathit{Cycle\ stealing\ mode)}$

$where\ only\ 1Byte\ is\ transfer\ not\ the\ entire\ data$

$time\ to\ transfer\ 1Byte=250+500+250=1000ns$

$= 1microsec$

$total\ transfer\ time=128*1microsec$

$=128microsec$
0 0 votes

For Burst Mode :-.

For how long would the device tie up the bus when transferring a block of 128 bytes

Bus has requested and release only one time for whole block of data transfer

Bus is tie up with DMA during data transfer to the memory

So total time =Bus request+release+n*cycle time

250+250 +128*500=64500 ns

____________________________________________________________________________________________________________________

For Cycle Stealing Mode:-

DMA returns the bus after a word is transfer. The DMA effectively steals cycles
from the processor in order to transfer the byte, so single byte transfer is also known as cycle stealing.

Bus is requested  and release for every Byte of transfer So,

total Time= 128*(250+250+500) ==>128000 ns

_______________________________________________________________________________________________________________________

Can anyone please check this solution

Position:
Show:

Related questions

15 15 votes
3 answers 3 answers
10.6k
10.6k views
Akriti sood asked Nov 2, 2016
10,561 views
Consider a system in which bus cycle takes 100 ns. Transfer of bus control from processor to device or device to processor, takes 250 ns. One of the IO device has data tr...
75 75 votes
4 answers 4 answers
24.4k
24.4k views
go_editor asked Sep 29, 2014
24,443 views
On a non-pipelined sequential processor, a program segment, which is the part of the interrupt service routine, is given to transfer $500$ bytes from an I/O device to mem...
0 0 votes
0 0 answers
1.7k
1.7k views
Utkarsh Joshi asked Jan 24, 2019
1,711 views
A DMA controller transfers 32-bit words from an input device to memory in one clock cycle using cycle stealing. The input device transmits data at a rate of 9600 bytes pe...
0 0 votes
1 1 answer
96
96 views
Shubham Sharma 2 asked Apr 19
96 views
USB stands for $\_\_\_\_$ .Uniform Service BusUniversal Serial BusUniform Sector BufferUniverse Service Bus