4. Обзор архитектуры HDD Maxtor
4.1. Микропрограмма управления
Микропрограмма управления накопителям Maxtor выполняется в ОЗУ и может загружаться из трех источников.
Первый — масочное ПЗУ внутри микросхемы процессора или внутренний boot-ROM, второй- Flash ПЗУ на плате или внешний boot-ROM (если оно установлено), третий — служебная зона. Чтобы накопитель корректно определялся и стал работать по логическим секторам (LBA), необходимо, чтобы выполнился код, находящийся в плате электроники, а затем считался и корректно прошел процедуру инициализации код из служебной зоны.
На плате существует два места, откуда может производиться загрузка микропрограммы: масочное ПЗУ в процессоре и внешняя параллельная или последовательная Flash ПЗУ. Такая схема, скорее всего, реализована потому, что в масочное ПЗУ в процессоре нельзя внести изменения без его замены. Старт процессора происходит из внешнего ПЗУ, но если оно отсутствует или повреждено, то программа запускается из ПЗУ внутри процессора. Возможна также ситуация, что код внутри процессора может относиться к другому семейству. Например, с отключенным внешним ПЗУ накопитель CALYPSO может определяться как N40P.
Для накопителей Maxtor служебная зона доступна через специально предусмотренные для этого логические сектора, называемые «UBA» (Util Block Addressing, чем-то схожие с LBA), которые микропрограммой автоматически преобразуются в физическое расположение на поверхности, при этом учитываются дефекты служебной зоны. Физически служебная зона у «полуразмерных» HDD находится на внешних цилиндрах (край диска), а у «полноразмерных» на внутренних (ближних к зоне парковки).
Накопители Maxtor имеют перемычку «safe mode«. Если она установлена, то производится запуск только микропрограммы, записанной в плате электроники с пропуском запуска двигателей и инициализации части программы из служебной зоны. Также перемычка «safe mode» имеет значение для выполнения процедуры первоначальной инициализации накопителя в случае загрузки LDR-файла (или лоадер). Часть шагов инициализации пропускается. Именно поэтому существует разница между запуском LDR-файла с установленной перемычкой «safe mode» и без нее (см. рис. 1). Версию микропрограммы, расположенной на плате, можно точно определить. Для этого устанавливаем перемычку «safe mode» и запускаем утилиту. В строке «Firmware» утилиты будет отображена версия ПЗУ. При этом, если по включению питания замкнуть пятый и шестой вывод последовательной Flash, то версия изменится, так как теперь код запущен из процессора. Альтернативная служебная зона или ALT-SA описана в разделе 4.5.