Влияет ли размер буфера на производительность жестких дисков?

20 Авг 2013

Влияет ли размер буфера на производительность жестких дисков

Современные жесткие диски напоминают компьютер в компьютере. Они используют мощные автономные процессоры. Размер локального ПЗУ, расположенного на плате электроники диска, исчисляется сотнями ки­ло­байт, локального ОЗУ — десятками мегабайт. Используемые интер­фей­сы абстрагированы от электромеханической природы накопителя и по на­бо­ру сигналов напоминают системные шины вычислительных плат­форм различных поколений.

Так, интерфейс IDE, использующий раздельные линии адреса, данных и управления функционально сходен с шиной ISA, а интерфейс SATA, ис­поль­зующий две дифференциальные пары Rx+, Rx-, Tx+, Tx- для приема и передачи информации, подобен линку PCI Express x1. Разумеется, такое сравнение допустимо, если не принимать во внимание существенные различия в протоколах взаимодействия устройств, а смотреть исключительно на набор сигналов.

История развития интерфейсов жестких дисков

Во времена жестких дисков с MFM-интерфейсом, подключаемых к контроллерам MFM XT или MFM AT, основной интеллект дисковой подсистемы сосредотачивался в контроллере, устанавливаемом на системную шину, а на плате электроники жесткого диска располагались сравнительно простые схемы управления исполнительными механизмами диска. Набор сигналов интерфейса MFM ориентирован на непосредственное управление такими схемами. Например, позиционирование блока магнитных головок выполнялось сигналами STEP (шаг) и DIRECTION (направление). По каждому импульсу на линии STEP, головки перемещаются на один цилиндр. Направление пе­ре­ме­ще­ния определяется уровнем сигнала DIRECTION. Справедливости ради отметим, что некоторые жесткие диски и в те времена использовали автономные микроконтроллеры.

Компьютерная помощь
Рис 1. Внутреннее устройство жесткого магнитного диска фирмы Fujitsu

Долгое время дисковые контроллеры использовали буфер, размером только один сектор (512 байт). Причем, по­яв­ле­ние относительно доступных микросхем статических ОЗУ большего размера далеко не сразу изменило эту тен­ден­цию, поскольку для обеспечения буферизации нескольких секторов требуется существенная модернизация ло­ги­ки работы контроллера.

Интерлив, как фактор производительности

Очевидно, буфер размером один сектор требуется освобождать после чтения каждого сектора или заполнять пе­ред записью каждого сектора. Это приводит к существенным потерям времени при выполнении операций с бло­ка­ми секторов, поскольку диск вращается непрерывно и за время передачи данных между буферным ОЗУ и сис­те­мой, следующий сектор уедет из-под магнитной головки и его придется ждать в течение целого оборота диска.

Головки магнитного диска производства Western Digital
Рис 2.  Головки магнитного диска производства Western Digital

Задача решалась низкоуровневым переформатированием диска с заданием оптимального интерлив-фактора, то есть такого порядка чередования секторов, при котором после обслуживания буферного ОЗУ к магнитной головке с максимальной вероятностью должен подъехать следующий по порядку сектор. Так как время обслуживания бу­фер­ного ОЗУ зависит не только от контроллера диска, но и от производительности платформы, низкоуровневое пере­фор­ма­ти­ро­ва­ние с изменением интерлив-фактора иногда было оправдано даже после установки более про­из­во­дительного центрального процессора.

Современные тенденции

Встроенное программное обеспечение современных жестких дисков по праву можно считать небольшой опера­ци­он­ной системой. Обмен данными с хост-контроллером, управление сервоприводом и механизмом позициониро­ва­ния, обработка и протоколирование ошибок, мониторинг напряжений и температур, операции SMART, об­слу­жи­ва­ют­ся, как правило, не одним, а системой автономных процессоров, функционирование которых невозможно без оперативной памяти размером десятки-сотни мегабайт. Это стало мотивацией для применения ОЗУ ди­на­ми­че­ского типа (DRAM).

Несмотря на более сложное управление, по сравнению со статическим ОЗУ, в частности необходимость реге­не­ра­ции содержимого памяти и мультиплексирования адреса, устройство остается компактным, поскольку пере­чис­лен­ные функции реализованы в составе центральной (интерфейсной) микросхемы жесткого диска. Кратко пе­ре­чи­с­лим основные функции ОЗУ накопителя:

  1. Рабочая память встроенной операционной системы.
  2. Обеспечение буферизации, кэширования и отложенной записи.
  3. Хранение таблиц, определяющих соответствие между логическими и физическими секторами.
  4. Создание быстрой копии содержимого постоянного запоминающего устройства накопителя, с целью уско­ре­ния доступа. Здесь уместна аналогия с теневой памятью или Shadow RAM, применяемой на системных платах. ПЗУ жестких дисков, в типовом случае реализованное на микросхемах с последовательным до­сту­пом (SPI ROM), значительно медленнее, чем DRAM.

Таким образом, буфер пользовательских данных занимает только часть оперативной памяти накопителя, поэтому указание в качестве размера такого буфера полного объема установленных микросхем ОЗУ, практикуемое в до­ку­мен­та­ции некоторых устройств, не совсем корректно. Зависимость производительности от размера встроенного ОЗУ для современных mass storage устройств, подчиняется правилам, имеющим много общего с аналогичными закономерностями «больших» ОС. Ответ на вопрос, поставленный в названии статьи, определяется интеллектом встроенного программного обеспечения конкретной модели накопителя, в частности, — способностью оп­ти­маль­но распорядится ресурсами оперативной памяти.