8

Мой профессор опубликовал слайд о том, как рассчитать получение данных с жесткого диска, используя блочную модель. Спецификации были:

  • 7200 об / мин
  • 5 мсек
  • Скорость передачи 80 МБ / с
  • МОДЕЛЬ БЛОКА: Размер блока 4KB

Я не понимаю, как он сделал следующий расчет или откуда взялись некоторые цифры:

5 мс + 1000/240 мс + 0,05 мс = 9,216 мс для чтения блока.

Кто-нибудь может сказать мне, откуда взялись 1000/240 мс и 0,05 мс?

РЕДАКТИРОВАТЬ: Если цифры оказались совершенно неверными, как бы вы сделали это тогда?

2 ответа2

11

Данный диск имеет скорость передачи 80 МБ / с, или 81920 КБ / с, или 20480 блоков / с. Здесь мы округлим до 20000 блоков в секунду, поскольку, похоже, это сделал ваш профессор. Это равняется 0,05 мс для передачи блока, объясняя последний член в уравнении.

Наконец, в дополнение к поиску времени (времени для перемещения головки привода на дорожку) существует также задержка вращения самого диска, с которой приходится иметь дело. При 7200 об / мин, в худшем случае, мы должны ждать 1 полный оборот, но в среднем нам приходится ждать пол оборота - или 4,166 мс (7200 об / мин = 120 об / сек = 8,333 мс / об).

Таким образом, чтобы перенести один блок на компьютер, мы должны дождаться эквивалентного Seek Time + Rotational Latency + Transfer Time:

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

Обратите внимание, что для твердотельных накопителей, хотя нет необходимости учитывать задержку вращения, определенно все же есть измеримое время поиска (для фактического обращения к содержимому секторов во флэш-памяти) и время передачи (в значительной степени ограниченное шиной). используется для передачи самих данных, например SATA).

Таким образом, в общем случае общее время доступа для чтения одного сектора диска равно (пренебрегая программным обеспечением):

Rotational/Hard Drive:  Seek Time + Rotational Latency + Transfer Time

Solid-State Drive:      Seek Time + Transfer Time
5

Время поиска 5 мс - это время, когда жесткий диск перемещает свою головку на правильную дорожку (и выбирает правую головку, что также требует времени, но которое ваш проф. Проигнорировал).


Как только головка над правильной дорожкой, она должна ждать, пока правый сектор пройдет под головкой R/W. Нам говорят, что это 7200 оборотов в минуту. Это означает:

  • В худшем случае данные только что прошли и они должны ждать полного оборота.
  • В лучшем случае сектор данных только что прибыл. Все счастливы.
  • В среднем случае привод должен ждать пол оборота.

Чтобы узнать время полного вращения на 7200 об / мин:

  • 7200 оборотов в минуту (7200 об / мин)
  • Или 7200/60 раз в секунду.
  • Или 120 раз в секунду.
  • Или один поворот занимает 1/120 - й секунды.
  • Что составляет 8,3 мс

Таким образом , половина вращения должна будет взять половину того времени, 1/240 - й секунды.

1 секунда - 1000 мс

Это ваши 1000/240 мс.


Все это время, когда накопитель может начать чтение данных. Это все еще должно будет прочитать это и передать с хозяином.

Чтение с диска обычно намного быстрее, чем прохождение, поэтому я сосредоточусь на более медленной части:

Даны:

1) 80 МБ / с.
2) МОДЕЛЬ БЛОКА: Размер блока 4 КБ

  • 80 МБ / с или 80 * 1024 КБ / с, или 4 * 20 * 1024 КБ / с.
  • Разделите на 20480.
  • 4 КБ на 1/20480 - й секунды.
  • Или 0,488281 мс, что является вашим последним 0,05 мс.


Обратите внимание, что этот ответ игнорирует, что:

  1. накопитель должен прочитать данные, прежде чем он сможет их передать, это сделает его немного медленнее.
  2. Но нет информации о том, как быстро данные читаются с диска. (который зависит от скорости вращения, длины данных, которые нужно прочитать, длины данных контрольной суммы и межсекторных промежутков. (4KiB может быть 8 чтений «Заголовок | данные | контрольная сумма | пробел» или одно чтение.
  3. Он также игнорирует, что данные могут уже присутствовать в кеше дисков.
  4. И это предполагает, что вычисление контрольной суммы не занимает много времени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .