Производительность жестких дисков
Скорость работы дискового накопителя определяется рядом параметров. Во-первых, любой обмен данными с таким устройством предваряется двумя обязательными задержками: позиционированием блока головок и ротационной задержкой (rotational delay), когда контроллер ждет, пока требуемый сектор подъедет к головке. Кроме того, само чтение сектора происходит не мгновенно, и, наконец, необходимо принимать во внимание скорость передачи данных по шине, к которой подключен диск, и возможные коллицизии на этой шине.
Задержку позиционирования головки можно в определенных пределах сокращать облегчением блока головок и совершенствованием механики. Единственный способ сокращения ротационной задержки – это увеличение скорости вращения диска. У современных дисков эта скорость достигает 15000 об/мин. Скорость вращения повышает также и скорость чтения отдельного сектора. Кроме того, увеличение плотности записи (как за счет улучшения физических характеристик магнитного слоя, так и за счет совершенствования способов модуляции) и обусловленное этим увеличение количества секторов на дорожке также ускоряет считывание каждого отдельного сектора.
Любопытный прием сокращения ротационной задержки при чтении последовательных секторов – это форматирование дисков с чередованием (interleave), когда номера секторов на дорожке не совпадают с их физической последовательностью (рис. 9.38). Количество физических секторов, размещенных между логически последовательными секторами, называется коэффициентом чередования.
Рис. 9.38. Дорожка диска, отформатированного с чередованием
Благодаря чередованию, если ЦПУ сформирует команду чтения следующего сектора немгновенно после завершения передачи предыдущего (на практике, это всегда происходит немгновенно), не придется ждать следующего оборота диска. Впрочем, если коэффициент чередования окажется слишком большим, ждать подхода следующего сектора все-таки придется. В годы молодости автора подбор оптимальных параметров чередования для жестких дисков был почти столь же популярным развлечением, каким ныне является "разгон" (подбор частот процессора и системной и периферийной шин, которые выше паспортных, но обеспечивают более или менее устойчивую работу системы).
Ряд файловых систем, разработанных в 80-е годы, реализовали свои собственные схемы чередования, размещая последовательные блоки файлов в чередующиеся физические секторы. Современные дисковые контроллеры предоставляют логику опережающего считывания и отложенной записи, которые снижают потребность в таких приемах. Кроме того, фабричное форматирование жестких дисков обычно сразу осуществляется с оптимальным чередованием.
Для сокращения времени подачи головки нередко используют сортировку запросов по номеру дорожки. В [Дейтел 1987] приводится анализ нескольких алгоритмов такой сортировки. В наше время шире всего используется элеваторная сортировка (в [Дейтел 1987] она называется SCAN). При отсортированных в соответствии с этим алгоритмом запросах, блок головок начинает от внутренней дорожки (или, точнее, от запроса, ближайшего к этой дорожке) и движется к наружной, исполняя последовательные запросы так, чтобы направление движения головки не изменялось (рис. 9.39). Запросы, поступающие на уже пройденные дорожки, откладываются на обратный проход. Достигнув внешней дорожки (или, точнее, самой внешней из дорожек, на которую есть запрос), блок головок меняет направление движения.
Рис. 9.39. Элеваторная сортировка
Сортировке подвергаются только запросы на чтение. По причинам, которые мы в полной мере поймем в Главе 11, запросы на запись практически никогда не переупорядочиваются.