Question: My professor posted a slide on how to calculate the data retrieval from hard disk using the block model. The specs were:

  • 7200 RPM
  • 5ms SEEK
  • 80MB/s TRANSFER RATE
  • BLOCK MODEL : Block size 4KB

I don’t understand how he did the following calculation or where did some of the numbers came from:

5ms + 1000/240 ms + 0.05ms = 9.216ms to read block.

Can anyone tell me where did 1000/240 ms and 0.05ms come from?

EDIT: IF the numbers happened to be completely wrong, how would you do this then?

Answer: The disk in question has a transfer rate of 80 MiB/s, or 81920 kiB/s, or 20480 blocks/s. ?Here, we will round off to 20,000 blocks/second, since this appears to be what your professor did. ?This equates to 0.05 ms to transfer a block, explaining the last term in the equation.

Finally, in addition to seek time (time to move the drive head to the track), there is also the rotational latency of the disk itself to deal with. ?At 7200 RPM, in the worst case, we have to wait 1 full revolution, but on average we have to wait a half-revolution – or 4.166ms (7200 RPM = 120 rev/sec = 8.333ms/rev).

Thus, to transfer one block to the computer, we must wait the equivalent Seek Time + Rotational Latency + Transfer Time:

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

Note that for solid-state drives, while there is no rotational latency to take into account, there certainly still is a measurable seek time (to actually address the contents of the sectors in the flash memory) and transfer time (largely limited by the bus being used to transfer the data itself, e.g. SATA).

Thus, in general, the total access time to read a single sector for a drive is (neglecting software):

Rotational/Hard Drive: ?Seek Time + Rotational Latency + Transfer TimeSolid-State Drive: ?Seek Time + Transfer Time