Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Микропрограмма жесткого диска (Firmware).

 

Микропрограмма жесткого диска (Firmware).

             Небольшая часть микропрограммы (firmware) контроллера жесткого диска хранится в микросхеме, а оставшаяся часть хранится на магнитных дисках в специально отведенной для этого служебной области, недоступной для пользователя. После подачи рабочего напряжения или активизации сигнала «Сброс» на информационной шине микропроцессор жесткого диска перезапускает программу, записанную в микросхеме, выполняет самодиагностику, тестирует оперативную память, программирует микросхемы, находящиеся на внутренней шине жесткого диска, и при отсутствии аварийной ситуации запускает двигатель. Затем, измеряя период следования импульсов фазных обмоток, ожидает, пока двигатель не наберет номинальную скорость вращения. После этого он выдает команду на перемещение магнитных головок на дорожку, содержащую микропрограмму, и начинает считывать серворазметку, окончательно стабилизируя скорость вращения. После считывания микропрограммы и ее последующего выполнения жесткий диск готов к приему сигналов с внешнего интерфейса компьютера.

                Производительность и надежность жесткого диска зависит от эффективности и качества внутреннего программного обеспечения, выполняющегося на микропроцессоре накопителя. Многие производители все время корректируют микропрограмму, улучшая её функциональные параметры в течение всего времени, пока выпускается определенная модель накопителя. Практически все жесткие диски позволяют пользователям, при наличии специального программного обеспечения, обновить свой микрокод, но, как правило, такой необходимости нет, т.к. серьезных ошибок, способных помешать нормальной работе в микропрограммах современных жестких дисках, не бывает. К тому же любой сбой при обновлении может привести к полной неработоспособности накопителя. После обновления не стоит ожидать каких-либо серьезных изменений и улучшений в работе жесткого диска и уж тем более не стоит надеяться на появление дополнительных функций или заметное увеличение производительности, т.к. обычно обновления предназначены только для увеличения надежности работы жестких дисков.

                Часть дискового пространства жесткого диска недоступна для адресации данных посредством команд накопителя. В ней хранятся рабочие программы контроллера (firmware), адаптивы, транслятор и другие данные,  необходимые для работы электронных компонентов жесткого диска.

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

                Создать магнитную поверхность без дефектов практически невозможно, поэтому при сборке жесткого диска на заводе после нанесения сервометок производится технологическая операция поиска секторов, неспособных надежно хранить информацию. При поиске дефектов чувствительность магнитных головок искусственно понижается, что позволяет выявить нестабильные сектора, которые со временем могут перерасти в дефекты. Список адресов дефектных секторов используется для создания структуры данных, называемой транслятором. Данные транслятора связывают логический номер сектора с его физическим расположением на магнитном диске и находятся в недоступной для пользователя области данных используемой только электроникой накопителя. При создании транслятора найденные дефектные сектора не используются, следовательно, логическая последовательность стабильных секторов линейна. Транслятор жестких дисков скрывает физический формат накопителей, вследствие чего написанное на корпусе жесткого диска число цилиндров, секторов и магнитных головок не соответствует своим истинным значениям. Этот способ скрытия дефектов получил название "метод пропуска сектора" или "низкоуровневое форматирование" жесткого диска. После заводского тестирования и создания транслятора жесткий диск поступает в продажу без единого сбойного сектора.

                Жесткий диск хранит информацию фиксированными порциями, которые называются секторами (блок данных сектора). Сектор является наименьшей порцией данных, имеющей уникальный адрес и расположение на магнитном диске. Обмен информацией с жестким диском предполагает указание адреса в качестве параметра команды. Используемая в жестких дисках линейная адресация получила название LBA (Logical Block Addressing) - логическая линейная адресация. При получении команды жесткий диск транслирует адрес LBA в физический адрес сектора, т.е. номер цилиндра, головки и сектора (CHS - Cylinder Head Sector).

В современных накопителях на жестких магнитных дисках значительная часть поверхности диска является служебной, эта зона скрыта и недоступна для пользователя. В этой части диска расположена служебная информация и резервная область для замены дефектных участков поверхности. Пользователь имеет доступ только к рабочей области диска, объем которой указан в технических характеристиках диска. Доступ в служебную зону возможен только в специальном технологическом режиме, который активизируется с помощью подачи специальной команды. В этом режиме возможно использование специального технологического набора команд (команды записи-чтения секторов служебной зоны, чтение карты расположения модулей и таблиц в служебной зоне, чтение таблицы зонного распределения, команды перевода из LBA в CHS и обратно, команда запуска форматирования  низкого  уровня, команды записи-чтения перезаписываемого ПЗУ и др.).

Прошивка, индивидуальные настройки и адаптивы. Электронные микропроцессорные схемы HDD без управляющих микропрограмм работать естественно не будут. «Старые» модели винчестеров хранили микропрограммы в ПЗУ, что вызывало естественные неудобства и накладывало определенные ограничения. Теперь же для хранения микропрограмм используется сам жесткий диск. Разработчик резервирует некоторый объем и размещает в нем весь необходимый микрокод управляющей, диагностической программ и данные. Информация организована в виде модулей и управляется специализированной операционной системой. Теперь в ПЗУ остается лишь базовый код, своеобразный «фундамент» винчестера (некоторые производители убирают из ПЗУ все, кроме первичного загрузчика).

Само ПЗУ может быть расположено как внутри микроконтроллера, так и на отдельной микросхеме. Практически все винчестеры имеют FLASH-ROM, но не на всех моделях она распаяна. Если FLASH-ROM установлена, то микроконтроллер считывает прошивку из нее, если нет, то обращается к своему внутреннему ПЗУ. Часть модулей (и информации, находящейся в ПЗУ) одинакова для всей серии винчестеров. К ней в первую очередь относится совокупность управляющих микропрограмм. Эти модули полностью взаимозаменяемы, и один диск свободно может работать с модулем другого без каких-либо последствий.

Часть модулей (реже – информации из ПЗУ) готовится отдельно для каждой партии (например, паспорт диска, описывающий его конфигурацию, указывает количество головок, физических секторов и цилиндров). В процессе инициализации микропроцессор опрашивает коммутатор и перечисляет головки. Если их количество не совпадает с указанным в паспорте, винчестер не сможет войти в состояние готовности. Кроме того, достаточно часто производители отключают некоторые головки из-за дефектов поверхности, неисправностей самих головок или по маркетинговым соображениям. Из-за этого образуются внешне очень похожие модели-близнецы, но непосредственная перестановка плат невозможна, и паспорт приходится корректировать, для чего опять-таки понадобится PC-3000. Но в принципе подобрать донора с идентичным паспортом вполне возможно и без коррекции.

Все проблемы такого типа возникают от модулей (или информации, прошитой в ПЗУ), уникальных для каждого экземпляра винчестера и настраиваемых строго индивидуально. Например, как уже отмечалось ранее,  каждый жесткий диск имеет как минимум два списка дефектов – P-list (от Primary – первичный) и G-list (от Grown – растущий). В P-list заносятся номера дефективных секторов, обнаруженные еще на стадии заводского тестирования, а  G-list формируется самим жестким диском в процессе его эксплуатации. Если запись в сектор происходит с ошибкой, сбойный сектор переназначается другим сектором, взятым из резервной области. Некоторые жесткие диски поддерживают список «подозрительных секторов»: если сектор начинает читаться не с первого раза, он замещается, а информация о замещении сохраняется либо в отдельном списке, либо в G-list. Все эти процессы протекают скрыто от  пользователя. Специальный модуль (называемый транслятором), переводит физические адреса в номера логических блоков или виртуальные цилиндры-головки-сектора, и внешне нумерация секторов не нарушается. Все работает нормально до тех пор, пока P/G-list не оказываются разрушенными, или на гермоблок устанавливается плата с чужими настройками. Если P/G-list хранятся во FLASH-ROM (а часто так и бывает), файловая система оказывается полностью неработоспособной, так как трансляция адресов нарушена. И хотя на сектором уровне все читается нормально, совершенно непонятно, какой сектор какому файлу принадлежит.

К сожалению, PC-3000 и другие аналогичные комплексы не умеют восстанавливать адаптивы. Применение адаптивов началось сравнительно недавно. До этого индивидуальные настройки диска сводились к высокоуровневым наслоениям, никак не препятствующим чтению информации на физическом уровне. Перестановка плат могла привести к невозможности работы с диском средствами операционной системы, но данные всегда было можно прочитать посекторно стандартными ATA-командами или на худой конец на уровне физических адресов в технологическом режиме. Но плотность информации неуклонно росла и нормативы допусков ужесточались, а, значит, усложнялся и удорожался технологический цикл. В промышленных условиях невозможно изготовить два абсолютно одинаковых жестких диска. В характеристиках аналоговых элементов (катушек, резисторов, конденсаторов) неизбежно возникает разброс, следствием которого становится рассогласование коммутатора-предусилителя (но с этим еще как-то можно бороться).

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

Состав и формат адаптивов меняется от модели к модели (обычно сюда входят: ток записи, усиление канала, профиль эквалайзера, напряжение смещения для каждой головки, таблица коррекции параметров каждой головки для каждой зоны и т. д.). Без своих адаптивов жесткий диск просто не сможет работать. Даже если чужие адаптивы все-таки подойдут, то информация будет считываться очень медленно и с большим количеством ошибок. Подобрать адаптивы практически нереально, и рассчитать их в «домашних» условиях тоже нереально. Теоретически, для заполнения таблицы адаптивов не нужно ничего, кроме самого винчестера, и некоторые модели жестких дисков даже содержат в прошивке специальную программу Self-Scan, как раз и предназначенную для этих целей. Да, она действительно рассчитывает адаптивы с «нуля», но при этом уничтожает всю содержащуюся на жестком диске информацию.

Сейчас практически диски без адаптивов встречаются очень редко.  Адаптивы могут храниться как на самом диске в служебной зоне (и тогда смена плат возможна, но не работает Hot Swap), либо в микросхеме FLASH-ROM, которую перед заменой плат следует перепаять.

 


Лицензия