in CO and Architecture retagged by
5,274 views
27 votes
27 votes
The average seek time and rotational delay in a disk system are 6ms and 3ms, respectively.  The rate of data transfer to or from the disk is 30 Mbytes/sec and all disk accesses are for 8 Kbytes of data. Disk DMA controller, the processor and the main memory are all attached to a single bus. The bus data width is 32 bits and a bus transfer to or from the main memory takes 10 nano seconds.
a) what is the maximum number of disk units that can be simultaneously transferring data to or from the main memory?
b) what percentage of main memory cycles are stolen by a disk unit, on average over a long period of time during which a sequence of independent 8K-byte transfers takes place?
in CO and Architecture retagged by
by
5.3k views

4 Comments

But 1st one asks about disk units,i.e simultaneous disk accesses done .
0
0
@-Kapil I think its not asking about how much disk units are simultaneously being accessed because it will depend upon the hardware architecture( e.g. no of heads etc.) but what amount of data can be transferrred to memory in one go.
1
1

@Arjun

sir why here we have considered rotational latency and seek latency and not in this https://gateoverflow.in/3694/gate2004-it-51 ?

please check it

1
1

2 Answers

29 votes
29 votes
Best answer

Average seek time = 6ms

Average rotational delay = 3ms

Data transfer rate = 30MB/sec

All disk accesses are 8KB of data. Here, they are assuming that whenever disk is accessed, it either reads or writes 8KB of data.

Data bus width is given to be 32 bits and a bus transfer to / from MM takes 10 ns.


A). Memory Bandwidth is the rate at which data can be read or stored into the memory. Also, known as MM transfer rate.

Transfer rate according to the question for a disk = 30MB/sec.

It is also given that 32 bits can be carried by the bus to the main memory in 10 ns, hence, what is the MM transfer rate then ?

MM tramsfer rate => 32 bits / 10 ns = 400 MB/sec

  • Now, a disk can transfer 30 MB in a sec whereas, MM can attain upto 400 MB/sec, hence, maximum disks that can transfer simultaneously = 400 / 30 = 13.333.
  • If I take it as 14 (approx) , then total rate will be 420 MB/sec, which is out of scope for MM .
  • So, at the best, 13 disks are capable of transferring simultaneously .

B). Question asks about using burst mode approach to be used to transfer 8KB of data.

So, for accessing 8KB of data, how much time is needed :

=> Time to find the specific track (seek time) + Time to reach the specific sector on the track + Time to transfer 8KB of data (Here, Average seek time and Average rotational delay are given, so will assume directly these times)

=> 6 + 3 + (8KB / 30MB/sec)

=> 9.26666

=> 9.27 ms

This says, that in a time period of 9.27 ms, 8KB of data can be accessed on the disk.

But, we need to access the given data using cycle stealing. DMA controllers operate in a cycle stealing mode here particularly in which they take over the bus for each byte (word) of data to be transferred and then return the control to the CPU.

How this mechanism works ?

  • CPU provides the start address and the word count to DMA controller, and the word count specifies the data to be transferred in one cycle stolen .
  • And each time the disk is ready to transfer a byte, it asserts its DMA request line to the DMA controller .
  • The DMA controller then, asserts the CPU through HOLD request.
  • When the CPU suspends the execution of the current program, it asserts the hold acknowledge HLDA signal to the DMA controller.
  • DMA controller then puts the MM address on the address bus, asserts either MEMR + IOW or MEMW + IOR on the control bus . (MEMR = Memory read, MEMW = Memory write and same for I/O )
  • Disk then responds to the DMA ack. signal by reading or writing, its data to the data bus.
  • And, atlast the same time, the MM responds to the control signal which causes the data to be read/written directly from/to memory.

Hence, we found that 8KB of data can be transferred in 9.27 ms.

Now, the data transfer is done by the DMA controller, which will operate at memory cycle time, so in 10 ns, 32 bits can be send.

=> 10 ns = 32 bits 

=> 1 sec = 32 * 10bits can be send.

But, data on the disk can be accessed in 

=> 9.27 ms = 8KB

=> 1 sec = 6.9039 * 10bits

Hence, percentage of memory cycles stolen by a single disk unit :

=> 6.9039 * 10/ 32 * 10

=> 0.002157 * 100

=> 0.2157 = approx 0.216 % 

edited by
by

4 Comments

@Kapil .

1. But still in your answer ,Question asks about using burst mode approach to be used to transfer 8KB of data."

and then it says that "But, we need to access the given data using cycle stealing. "

I didn't understand that part.

2.Also, second part asks how many memory cycles stolen,but in burst mode cycles will not be stolen?Am i missing something here?

3.And if it is a burst mode,then DMA will hold the bus for the complete duration of transfer,then why are we saying it is .02% stolen?
0
0
What does bus transfer mean?
0
0

https://itconnect2011.files.wordpress.com/2012/03/computer-organization-hamacher-instructor-manual-solution-chapter-51.pdf

Check the solution of the problem 5.27.Above is the link of the solution manual of the book.

0
0
1 vote
1 vote
for part b)

It is like when the buffer accumulated 8KB data it will ask the CPU for the buses. So in one cycle CPU will be held up for the bus cycle time needed to transfer 8KB data.

Disk transfer time for 8KB data= 800/3 microsec+ seek time+ Rotational latency=6000+3000 microsec+ 800/3 microsec=9286666.66 microsec

cycle time= 8000/4 * 10=2000 microsec

% of cpu cycles stolen= 2000/9286666.66=0.22%

Related questions