Алгоритм - Учебный центр
Заполните форму ниже! Мы вам перезвоним!

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


Технологии скрытия дефектных секторов HDD.

Технологии скрытия дефектных секторов HDD.

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

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

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

                Один из широко используемых способов скрытия дефектов заключается в перенумерации всех секторов трека с соответствующим  перемещением данных.  После замены дефектного сектора резервным, восстанавливается оптимальная для данного устройства последовательность номеров. Когда на треке слишком много дефектных секторов и местного резерва уже не хватает, то выполняется переназначение всего трека на резервную область. Резервная область, как правило, выделяется на внутренних цилиндрах, которые пользователю не показывают (в паспорте диска указывается объем диска без учета резервных цилиндров). Это переназначение делается на основе ведения таблиц переназначения треков, при этом уже потребуется дополнительное время на изменение позиционирования головок. Когда все резервные блоки будут использованы, тогда и появятся видимые дефектные блоки. Это является серьезным поводом для замены накопителя или к попытке его «исправления» за счет уменьшения его емкости. Возможны два основных метода скрытия дефектных участков. При использовании механизма переназначения (assign) накопитель прописывает в поле идентифи­кации дефектного сектора флаг перемещенного сек­тора и далее в поле данных этого сектора - номер резервного сектора, к которому необходимо обра­титься для записи или чтения данных. Как правило, резервным сектором является  первый сектор после рабочей области данных пользователя. При обращении к сбойному сектору во время опе­рации чтения-записи данных контроллер читает флаг и адрес переназначения и производит позициониро­вание в резервную зону, чтобы осуществить чтение-запись данных в хорошем секторе. Дефектные секто­ра в этом случае «пропадают», но накопитель каждый раз, наткнувшись на сбойный сектор, позиционирует головки в резервную область. Этот процесс сопровож­дается щелчками и некоторым замедлением работы. При помощи процедуры «assign» можно скрыть только дефекты, находящиеся  в полях данных. Если ошибки связаны с разрушением полей идентифика­ции или поврежденной сервометкой, то такие дефекты методом переназначения скрыть нельзя.

                Второй механизм скрытия дефектных секторов, ре­ализуемый на заводе-изготовителе, заключается в пропуске дефектного сектора. При использовании та­кого метода,  дефектный сектор игнорируется, а следующему за резервным сектором присваивается номер дефектного (и так далее, по цепочке), а  самый последний сектор сдвигается в резервную зону.   Естественно, такой метод скрытия,  нарушает целостность по­следовательности форматирования нижнего уровня, т.е. система трансляции логической структуры диска LBA (logical block addressing - логическая адреса­ция блоков) в физическую структуру CHS (cylinder, head, sector - физические цилиндр, голов­ка, сектор) должна учитывать дефектные сектора, чтобы избежать обращения к ним. Метод пропуска требует пересчета таблиц транслятора и выполнения команды низкоуровневого форматирования, что де­лает невозможным его использование без потери данных пользователя. Именно по этой причине дан­ный метод скрытия дефектов выполняется только в специальном (технологическом) режиме работы на­копителя, например, утилитой FUJFMT.EXE, которая была предназначена для скрытия дефектов в накопителях фирмы Fujitsu.

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

                Списки дефектных блоков (треков) хранятся, как правило, в двух таблицах. Одна из них (P-list) считается постоянной и формируется при выпуске винчестера. Другая, растущая (G-list), формируется во время эксплуатации автоматически. У нового винчестера она пустая. Пользователю эти таблицы могут быть доступны лишь при использовании специальных низкоуровневых утилит обслуживания дисков. Когда штатные резервные треки тоже будут исчерпаны, диску можно продлить жизнь, выполнив его низкоуровневое переформатирование на меньшую емкость и изменив паспорт диска с помощью специальных утилит, работающих с внутренними таблицами дефектов и конфигурации. У диска можно исключить плохие поверхности  -  либо чисто пpoграммным путем, либо путем физической перекоммутации головок. Все эти действия должны быть отражены в паспорте диска.

 


Лицензия