Дефекты винчестера и методы их скрытия
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
себе BIOS, ОС и прикладные программы. А чтобы пользователь случайно не затер транслятор во время работы, он был помещен в специальную область диска, недоступную обычным программам. Только контроллер мог получить доступ к ней. Это событие произвело настоящий переворот в винчестеростроении, и ознаменовало появление нового поколения накопителей - со служебной зоной.
Для того, чтобы все диски одной модели, но с разным количеством дефектов, имели одинаковую емкость, на каждом из них стали оставлять запасные дорожки - резерв, специально предусмотренный для выравнивания емкости однотипных накопителей до стандартной заявленной величины. Его стали располагать в конце диска, возле его центра, и он тоже был недоступен пользователю. Такие винчестеры при выходе с завода не имели не одного видимого bad-сектора. Если в процессе эксплуатации появлялись новые дефекты, пользователь мог сделать низкоуровневое форматирование универсальной утилитой из BIOS материнской платы, и попытаться их скрыть. Иногда, как и на дискетах, это удавалось. Но если повреждения были физическими, то это не помогало: добавить новые дефекты в таблицу и переписать транслятор без специальных программ было невозможно. Поэтому bad-блоки на многих старых дисках (до 1995 года), приходилось скрывать все тем же, устаревшим способом - через FAT. И лишь фирмы Seagate, Maxtor и Western Digital выпустили утилиты для скрытия дефектов с замещением их из резерва.
Прошло время, и винчестеры еще больше изменились. Стремясь увеличить плотность записи, разработчики стали применять различные нестандартные ухищрения: на пластины стали наносить сервометки, предназначенные для более точного попадания головок на дорожки. Появилась технология зонно-секционной записи (ZBR), смысл которой заключался в разном количестве секторов на внешних и внутренних дорожках. Изменился привод головок - вместо шагового двигателя стали применять позиционер в виде подвижной катушки. Да и сами головки и диски изменились настолько, что каждая фирма разработала свою структуру формата нижнего уровня, пригодную только под их технологии. Это сделало невозможным применение универсальных утилит низкоуровневого форматирования из-за того, что транслятор таких винчестеров научился скрывать физический формат накопителей, переводя его в виртуальный.
Написанное на корпусе винчестера число цилиндров, секторов и головок, перестало соответствовать своим истинным значениям, и попытки отформатировать такой винт старыми утилитами, как правило, заканчивались неудачно: его контроллер отвергал стандартную ATA-команду 50h, или просто имитировал форматирование, заполняя винт нулями. Это было специально оставлено для совместимости со старыми программами. По этой же причине процедура Low-Level Format была исключена из BIOS современных материнских плат. А чтобы сделать таким жестким дискам настоящее низкоуровневое форматирование, нужно было обойти транслятор, получив прямой доступ к физическим дорожкам и головкам. Для этого стали использовать технологическую утилиту, запускающую специальный микрокод, записанный в ПЗУ накопителя. Команда вызова этого микрокода - уникальна для каждой модели, и относится к технологическим командам, которые фирмой не разглашаются. Часто такое форматирование нельзя было сделать через стандартный IDE-интерфейс: многие модели HDD выпуска 90-х годов - Conner, Teac и др., а также все современные Seagate, требуют подключения отдельного разъема к терминалу через COM-порт.
Что касается технологических утилит, то они никогда широко не распространялись и обычному пользователю были недоступны. Для широкого применения были написаны "программы-дурилки", осуществляющие псевдо-форматирование через интерфейс: заполнение диска нулями для очистки его от информации. Это видно даже из названий этих утилит, которые можно найти на сайтах производителей жестких дисков: wdclear, fjerase, zerofill и т.д. Естественно, никаких технологических команд в этих программах нет, и поэтому их можно применять к любым винчестерам. Такие утилиты часто оказываются полезны, помогая избавиться от некоторых видов BADов.
Подготовка винчестера на заводе.
Перед скрытием bad-секторов на заводе очень важно выявить все, даже очень маленькие дефекты, а также нестабильные участки, которые могут со временем перерасти в bad-блоки. Ведь если такое случится в процессе эксплуатации, пользователь может лишиться важного файла, да и репутация фирмы, выпустившей такой "недоделанный" накопитель, будет испорчена. Поэтому тестирование винчестеров перед скрытием дефектов занимает очень много времени, как минимум несколько часов, и выполняется в технологическом режиме. Это сделано для исключения временных задержек, неизбежно возникающих при работе транслятора, пересылке данных через кэш и интерфейсную логику. Поэтому на заводе поверхность сканируют только по физическим параметрам. Обычно этим занимается не внешняя программа, а специальный модуль в ПЗУ жесткого диска, работающий без участия интерфейса. Конечным результатом такого тестирование становится получение дефект-листа - электронного списка негодных областей дискового пространства. Он заносится в служебную зону диска и храниться там на протяжении всего срока эксплуатации.
Современные винчестеры имеют два основных дефект-листа: один заполняется на заводе при изготовлении накопителя и называется P-list (-первичный), а второй называется G-list (от слова - растущий), и пополняется в процессе эксплуатации диска, при появлении новых дефектов. Кроме того, ?/p>