- •Физические основы магнитной записи и стирания информации
- •Часть 2: Пути повышения плотности записи
- •1. Эффект размагничивания.
- •2. Тепловая энергия частицы.
- •Устройство магнитных головок записи/чтения и магнитных дисков
- •Элементы механической системы жесткого диска
- •1.3.Суперпарамагнетизм
- •1.4.Перпендикулярная запись
1.4.Перпендикулярная запись
Рис.1. Схема технологии перпендикулярной записи
Впервые метод перпендикулярной записи на магнитный носитель был применен еще в конце 19 века датским ученым Вольдемаром Поульсеном для магнитной записи звука. Однако в дальнейшем исследования на эту тему носили больше теоретический характер из-за недостаточного развития технологий, не позволявших использовать разработки. Отцом технологии перпендикулярной записи считается доктор Shun-ichi Iwasaki – президент и директор престижного японского Tohoku Institute of Technology [3,4]. Именно этот ученый в 1976 году теоретически обосновал преимущества нового типа записи, исследователей всего мира к углубленным разработкам.
При перпендикулярной записи на диск магнитные частицы располагаются под углом 90° к плоскости магнитного диска. Благодаря этому домены, хранящие разные значения, не отталкиваются друг от друга, потому что намагниченные частицы повернуты друг к другу разными полюсами. Увеличение плотности, означающее уменьшение размера частиц, при этом не будет требовать уменьшения толщины слоя, что обеспечит стабильность магнитного материала.
При перпендикулярной записи используется намного более сложный состав магнитного слоя. Под тонким защитным слоем расположен записывающий слой состоящий из окисленного сплава кобальта, платины и хрома. Подложка состоит из двух слоев сложного химического состава, называемых антиферромагнитносвязанными слоями. Именно они позволяют снять внутренние напряженности магнитного поля.
Рис.2. Состав магнитного слоя при перпендикулярной записи
Для перпендикулярной записи на магнитный слой используется головка новой конструкции. Если при продольной записи магнитное поле генерируется в металлическом кольце с помощью индукции, то при перпендикулярной используется поле, генерируемое между срезом полюса головки записи и магнитомягким подслоем на диске. Поэтому частицы записывающего слоя намагничиваются вертикально, а частицы магнитного подслоя – горизонтально. Это обеспечивает дополнительную стабильность частиц относительно друг друга.
Рис.3. Процесс перпендикулярной записи на диск
Важное отличие перпендикулярной записи от продольной заключается в характере и расположении сигнала чтения. Продольный магнитный слой без подслоя испускает магнитный сигнал только с границы перехода бит (с границы между одной магнитной частицы и другой) под прямым углом к плоскости диска. Перпендикулярный магнитный слой испускает сигнал по всей площади частицы, а благодаря подслою вектор этого сигнала направлен параллельно плоскости диска. Для считывания требуются принципиально новые головки чтения, которые позволяют значительно увеличить соотношение сигнал/шум и мощность самого сигнала. Поэтому некоторые компании уже начинают применять новое поколение головок, использующее туннельный магниторезистивный эффект (TMR Heads). Следует отметить, что в этом (2007) году Нобелевскую премию по физике получили Albert Fert и Peter Gruenberg именно за открытие гигантского магниторезистивного эффекта на основе которого и создаются головки для современных винчестеров.
Среди всех других систем магнитной записи накопители на жестких магнитных дисках (НЖМД) являются доминирующими устройствами хранения данных. Благодаря большой емкости (сотни гигабайт), низкой удельной стоимости хранения (порядка 10 центов за ГБ), сравнительно небольшому времени доступа (порядка 10 мс) и зрелой инфраструктуре производства, они широко применяются в качестве основных носителей информации во всех современных компьютерах – от ноутбуков до серверов. В 2008 г. объем мирового рынка жестких дисков составил более 540 миллионов устройств. По оценкам экспертов, этот рынок растет даже во время экономического кризиса.
УСТРОЙСТВО ЖЕСТКИХ ДИСКОВ
Конструкция современных жестких дисков представляет собой сложнейшую систему, содержащую как электронные, так и механические компоненты. Структурная блок-схема типичного НЖМД представлена на рис. 1.
Рис. 1. Структурная схема жесткого диска
Конструктивно он состоит из герметичной камеры и платы контроллера. К основным функциональным подсистемам жестких дисков относятся:
МАГНИТНЫЙ ДИСК
Этот элемент в конструкции жесткого диска является той самой «ахиллесовой пятой», повреждение которой неминуемо приводит к потере информации. Под повреждением здесь необходимо понимать не только механические царапины и запилы (см. Рис.4), но и отпечатки пальцев, после неквалифицированного вскрытия гермозоны жесткого диска, гарь от сгорания предусилителя-коммутатора, появление сбойных секторов и т.д. Сохранение целостности поверхности магнитного диска необходимое условия для проведения работ по восстановлению данных.
Магнитный диск представляет собой алюминиевую пластину (иногда стеклянную, как у винчестеров фирмы IBM) круглой формы размером примерно как компакт-диск.
Рис.8 Магнитный диск
На поверхности диска находиться магнитный слой, который и служит основой для записи информации. Изначально поверхность «блина» абсолютно «лысая», то есть магнитные домены ни как не ориентированны.
Рис.9 Поверхность чистого (слева) и записанного (справа) магнитного диска
Для ориентирования блока магнитных головок на магнитный диск наносятся специальные метки - серво-метки. Это осуществляется «родным» блоком магнитных головок, который управляется в свою очередь внешним устройством, называемым серво-врайтером. После того как поверхность размечена, винчестер уже может сам писать и читать поверхность. Тот момент, что серво-метки записаны «родными» головками после сборки, делает конструкцию достаточно уникальной, в том смысле, что если требуется замена головок, то новые головки необходимо подбирать от аналогичного винчестера, но при этом они могут немного не подходить и не попадать по старым серво-меткам. Поэтому иногда для восстановления данных приходиться менять блок магнитных головок несколько раз. И еще. При больших объемах винчестера в него устанавливается несколько магнитных дисков, которые закрепляются на шпиндельном двигателе, и образуют пакет «блинов». Соответственно и роспись серво-меток происходит по всем «блинам» одновременно, и смещение их (магнитных дисков) относительно друг друга после этого недопустимо. А если приходиться переставлять диски из-за заклинивания шпиндельного двигателя, то только целым пакетом.
На сегодняшний день наиболее распространенные операционные системы являются дисковыми, т.е. запускаются с жесткого диска компьютера. Результаты работы любых прикладных программ, будь то бухгалтерия или дизайн, также сохраняются на диске. Поэтому надежность, быстродействие и информационная емкость накопителей на жестких магнитных дисках (НЖМД) являются определяющими параметрами качества любого компьютера.
УСТРОЙСТВО НАКОПИТЕЛЕЙ
Конструктивно НЖМД (или «винчестер») состоит из механической части — герметизированного блока (HDA) и платы электроники (РСВ). В гермоблоке размещена вся механика винчестера, а также микросхема предварительного усилителя/коммутатора. На плате электроники установлены микросхемы, управляющие механическими узлами, кодированием/декодированием данных с магнитного носителя и приемом/передачей информации через внешний интерфейс. Плата электроники размещается за пределами гермоблока, - как правило, в нижней его части. В некоторых моделях винчестеров, например известной серии Barracuda фирмы Seagate, контроллер закрыт металлической крышкой, защищающей электронику от наводок и повреждений.
Механическая часть
Основу всей конструкции составляет литой металлический корпус, предохраняющий точную механику от воздействия окружающей среды. Внутренний объем корпуса заполнен очищенным от пыли воздухом. Сборка механики осуществляется в цехе, где на один кубический метр воздуха приходится менее ста пылинок (т.н. чистой зоне класса 100).
В гермоблоке размещается пакет магнитных дисков, насаженный на шпиндель двигателя, магнитные головки с системой позиционирования и предуси-литель/коммутатор, обеспечивающий усиление сигнала с головок и переключение между ними.
В корпусе гермоблока имеется отверстие, закрытое плотным фильтром, обеспечивающее выравнивание внутреннего давления воздуха с атмосферным давлением. (Именно через это отверстие внутрь накопителя может попасть вода.) При вращении дисков создается поток воздуха, который циркулирует внутри корпуса и, постоянно проходя через еще один фильтр, дополнительно очищается от пыли.
Магнитный диск представляет собой круглую пластину из алюминия (в редких случаях из керамики или специального стекла), поверхность которой обработана по максимально возможному классу точности, за исключением зоны парковки (если таковая имеется). Из-за экстремальной чистоты обработки поверхностей дисков и магнитных головок, они могут прилипать друг к другу вследствие сил молекулярного притяжения. Для предотвращения этого явления зона контакта головок и диска имеет искусственную шероховатость - специальную лазерную насечку.
Чтобы придать поверхности диска магнитные свойства, ее покрывают ферросплавом на основе оксида хрома или вакуумным напылением наносят слой кобальта. Такое покрытие имеет высокую твердость и существенно большую износостойкость, чем у ранних моделей винчестеров, в которых пластины покрывались слоем не очень стойкого магнитного лака на основе окиси железа.
Вращение дисков осуществляет специальный 3-фазный электродвигатель. Статор двигателя содержит три обмотки, включенные звездой с отводом посередине, а ротор — постоянный секционный магнит из редкоземельных металлов. Для обеспечения малого биения на высоких оборотах в двигателе используются специальные подшипники, которые могут быть как шариковыми, так и более совершенными — жидкостными (вместо шариков в них используется специальное масло, поглощающее ударные нагрузки, что увеличивает долговечность двигателя). Жидкостные подшипники имеют более низкий уровень шума и почти не выделяют тепло во время работы. Скорость вращения двигателя в современных накопителях с интерфейсом IDE составляет 5400 или 7200 об./мин, с интерфейсом SCSI - 10 000 или 15 000 об./мин.
Магнитная головка представляет собой сложную конструкцию, состоящую из множества деталей. Эти детали настолько малы, что изготавливаются методом фотолитографии (как микросхемы). Рабочая поверхность керамического корпуса головки отполирована с такой же высокой степенью точности, что и диск. Привод головок представляет собой плоскую катушку, помещенную между полюсами постоянного магнита и закрепленную на конце рычага, вращающегося на подшипнике. На другом конце рычага находится подвес с магнитными головками. Сам подвес подпружинен с определенным усилием, что позволяет головкам «лететь» на высоте в десятые доли микрометра над поверхностью диска.
Привод, перемещающий блок головок, получил название Voice Coil («звуковая катушка») — из-за прямой аналогии с устройством электродинамического громкоговорителя. Обмотку позиционера окружает постоянный магнит. При подаче на катушку тока определенной величины и полярности рычаг поворачивается в соответствующую сторону с определенным ускорением. Изменяя ток в обмотке, можно устанавливать головки в любое положение на траектории в плоскости диска.
Для фиксации головок в нерабочем состоянии (в зоне парковки) используются специальные защелки. Наибольшее распространение получили два типа защелок - магнитные и воздушные. Магнитная защелка представляет собой маленький постоянный магнит, который в положении парковки головок притягивает железную пластинку — флажок, установленный на корпусе обмотки. Воздушная защелка (или воздушный замок) также фиксирует позиционер в парковочной зоне, не давая ему перемещаться. С началом вращения дисков создаваемый ими воздушный поток отклоняет «парус» воздушной защелки и освобождает систему позиционирования.
В гермоблоке находится предусилитель/коммутатор сигналов с магнитных головок. Это необходимо, чтобы уменьшить наводки на гибкий шлейф (плоский кабель), идущий от головок к основной плате. К этому же шлейфу подключена «звуковая катушка», а иногда и шпиндельный двигатель. Однако в большинстве накопителей питание на двигатель подается через отдельный шлейф, поэтому подключение гермоблока к плате управления, как правило, осуществляется двумя разъемами.
Плата электроники
Схемотехника современных накопителей отличается применением небольшого числа микросхем разной степени интеграции. Структурная схема электронной части приведена на рис. 1.
Электрическая схема современных накопителей, как правило, реализована на 6 интегральных микросхемах. Однако в последних моделях появились БИС контроллеров системы, совмещающие канал чтения/ записи, микроконтроллер на основе RISC-процессора и контроллер ввода/вывода. Таким образом, количество ИМС на плате электроники НЖМД сократилось до четырех:
контроллер системы, включающий канал чтения/записи, контроллер ввода/вывода и микроконтроллер;
микросхема ЭППЗУ, содержащая микропрограмму;
микросхема управления двигателем и приводом головок;
микросхема ОЗУ.
Дальнейшее увеличение степени интеграции микросхем накопителя затрудняется принципиально разными энергетическими режимами работы его функциональных узлов.
Первым совмещенным контроллером системы, использованным в накопителях, была БИС, разработанная фирмой Cirrus Logic. К сожалению, недостаточно отработанная методика применения этой БИС привела к частым отказам накопителей серий MPF3xxxAT и MPG фирмы Fujitsu.
Микроконтроллер содержит процессорное ядро, реализованное на основе RISC-архитектуры. После подачи питающего напряжения или активизации сигналом внешнего интерфейса, схема сброса подает сигнал RESET на микроконтроллер, который, отрабатывая микропрограмму, записанную в ПЗУ, выполняет самодиагностику, очищает рабочую область памяти данных, программирует дисковый контроллер и другие микросхемы, находящиеся на внутренней шине НЖМД.
После этого микроконтроллер опрашивает устройства накопителя и, если нет сигналов об аварийных ситуациях, выдает сигнал запуска двигателя. Следующий этап работы микропрограммы — проведение внутреннего теста ОЗУ буфера данных и команд, контроллера диска и состояния входных сигналов со стороны внешнего интерфейса. Далее микроконтроллер, измеряя период следования импульсов фазных обмоток, ожидает, пока двигатель не наберет номинальную скорость вращения. После этого он выдает команду на перемещение магнитных головок в зону, где записана служебная информация, и пересылает считанные данные в буферное ОЗУ. Теперь микроконтроллер готов к приему сигналов с внешнего интерфейса. В этом режиме команда, пришедшая от центрального процессора компьютера, порождает цепочку действий, в которой участвуют все элементы НЖМД.
Канал чтения/записи состоит из предусилителя/ коммутатора (расположенного в гермоблоке), схемы чтения, схемы записи и генератора опорных временных последовательностей.
Предусилитель имеет несколько каналов, каждый из которых соединен со своей головкой. Переключение осуществляется по сигналам микроконтроллера. Предусилитель содержит переключатель тока записи и сенсор ошибок, который формирует соответствующий сигнал, если в головке произошло короткое замыкание или обрыв.
Интегрированный канал записи/чтения в режиме записи осуществляет прием данных с дискового контроллера синхронно с тактовой частотой записи, производит их кодирование, осуществляет предкор-рекцию и передает в усилитель записи. В режиме чтения сигнал с выхода предусилителя/коммутатора поступает на схему АРУ, затем, проходя через программируемый фильтр, схему адаптивной компенсации и импульсный детектор, преобразовывается в последовательность данных, которые поступают на контроллер диска для дальнейшей обработки и передачи через внешний интерфейс.
Контроллер диска — наиболее сложный элемент накопителя - определяет скорость обмена данными между накопителем и центральным процессором компьютера.
Контроллер диска имеет четыре порта, с помощью которых он подключается к ЦП, микроконтроллеру, буферному ОЗУ и каналу ввода/вывода (интерфейсу). Дисковый контроллер представляет собой автомат, управляемый микроконтроллером. Со стороны ЦП доступны только стандартные регистры контроллера. Программирование дискового контроллера производится на этапе инициализации при помощи микроконтроллера, при этом выполняется настройка методов кодирования данных, выбирается полином исправления ошибок чтения, устанавливается режим гибкого или жесткого разбиения на сектора и т.д.
Менеджер буфера данных является функциональной частью дискового контроллера и управляет буферным ОЗУ, объем которого в современных накопителях составляет от 512 Кбайт до 8 Мбайт. Менеджер разбивает все пространство буферного ОЗУ на секторы. Специальные регистры, доступные со стороны микроконтроллера, содержат начальные адреса этих секторов. Когда ЦП осуществляет обмен данными с одним из них, со стороны канала чтения/записи возможен обмен данными с другим сектором буферного ОЗУ. Таким образом распараллеливаются процессы чтения/записи данных и обмена с ЦП.
Контроллер двигателя управляет 3-фазным двигателем, его программирование осуществляется при помощи микроконтроллера. Существуют три режима управления двигателем: запуск, ускорение и стабильное вращение. Рассмотрим режим запуска. При включении питания подается сигнал сброса на микроконтроллер, который, выполняя инициализацию, записывает в регистр контроллера двигателя команду на запуск. Контроллер формирует сигналы переключения фаз, при этом шпиндельный двигатель вращается с небольшой скоростью и генерирует э.д.с. самоиндукции при переключении обмоток. Контроллер двигателя обнаруживает этот сигнал и передает микроконтроллеру, который использует его для измерения частоты вращения шпинделя. В режиме ускорения микроконтроллер увеличивает частоту переключения фазных обмоток, постоянно измеряя скорость вращения двигателя. Когда номинальная скорость достигнута, контроллер переводит двигатель в режим стабильного вращения.
В этом режиме микропроцессор вычисляет время одного оборота двигателя, основанное на сигнале разности фаз, и подстраивает скорость вращения. После вывода магнитных головок из зоны парковки скорость вращения управляется сигналом серворазметки.
Контроллер привода головок формирует управляющий ток перемещения и стабилизации позиционера на заданном треке. Значение тока вычисляется микроконтроллером на основе оцифрованного сигнала рассогласования положения головки относительно трека (Position Error Signal, PES). Значение тока в цифровом виде подается на ЦАП. Аналоговый сигнал с выхода ЦАП усиливается и подается на «звуковую катушку» позиционера головок.
Служебная информация
Служебная информация необходима для функционирования самого НЖМД и, как правило, скрыта от пользователя. Служебную информацию можно разделить на четыре основных типа:
серво-информацию, или серворазметку;
• формат нижнего уровня;
резидентные микропрограммы (рабочие программы);
таблицы конфигурации и настройки.
Серворазметка необходима для работы сервосистемы привода магнитных головок НЖМД. Именно по серворазметке осуществляется их позиционирование и удержание на дорожке. Сервисная разметка записывается на диск в процессе производства через специальные технологические окна в корпусе собранного гермоблока. Затем окна заклеиваются шильдиками, на которых написано «DO NOT OPEN». Запись осуществляется собственными головками накопителя при помощи специального высокоточного прибора - серворайтера. Перемещение позиционера головок осуществляется специальным толкателем серворайтера по калиброванным шагам, которые намного меньше межтрековых интервалов.
Рабочие программы (микрокод) управляющего микроконтроллера представляют собой набор программ, необходимых для работы НЖМД. К ним относятся программы первоначальной диагностики, управления вращением двигателя, позиционирования головок, обмена информацией с дисковым контроллером, буферным ОЗУ и т.д. В большинстве моделей накопителей рабочие программы размещаются во внутреннем ПЗУ («прошивке») микроконтроллера, в других моделях используется внешнее ЭППЗУ. В некоторых моделях НЖМД часть рабочих программ хранится в служебной зоне магнитного диска, а в ПЗУ микроконтроллера записаны программы инициализации, позиционирования и начальный загрузчик для считывания рабочих программ с магнитного диска в ОЗУ. Вследствие того, что программные модули перегружаются в ОЗУ при запуске накопителя, они получили название «резидентных».
Производители жестких дисков размещают часть микропрограмм на магнитном носителе не только для экономии объема ПЗУ, но и для возможной оперативной коррекции кода, если в процессе производства или эксплуатации обнаруживаются ошибки. На Интернет-сайтах почти всех производителей НЖМД можно найти утилиты, выполняющие такую модернизацию. Переписать микропрограмму на диске значительно проще, чем перепаивать «прошитые» микроконтроллеры. (По этой причине фирма Western Digital несколько лет назад отозвала большую партию накопителей.)
Формат нижнего уровня. Начало дорожки определяется индексным импульсом. Каждая дорожка разделена на секторы данных и сервометки. Формат каждого сектора содержит поле идентификации, поле данных, синхрозоны и пробелы. В начале каждого сектора расположена синхрозона, которая служит для фазирования и синхронизации строб-импульса выделения данных. Поле идентификации содержит адресный маркер, физический адрес сектора, байт флагов и байты циклического контрольного кода.
В последнее время получил распространение формат без использования идентификаторов. При таком способе расположения информации на дорожке поля идентификации вообще отсутствуют, что увеличивает полезную емкость дисков. Вместо них используется система сервоуправления, располагающая физические секторы на дорожке. Чтение/ запись всех секторов производится за один оборот диска, при этом в ОЗУ хранятся образы считанной и записываемой дорожек. Таким образом, для чтения одного сектора в ОЗУ «помещается» вся дорожка целиком, и чтение последующих секторов выполняется не с диска, а из ОЗУ накопителя. Для записи одного сектора происходит чтение дорожки, ее модификация в ОЗУ и запись целой дорожки на диск.
Таблицы конфигурации и настройки накопителей содержат информацию о логической и физической организации дискового пространства. Они необходимы для самонастройки электронной части диска, которая одинакова для всех моделей семейства. Например, в процессе «проектирования» модели с емкостью 80 Гбайт на четырех поверхностях двух пластин автоматически получается «половинная» модель (40 Гбайт на одной пластине или двух поверхностях) или «четвертинка» (20 Гбайт на одной поверхности).
Таким образом, производитель может выпускать фактически одинаковые НЖМД разной емкости и стоимости. Кроме того, в «младших» моделях можно использовать детали, которые не могут быть использованы в «старших» моделях. Например, в моделях НЖМД «половинной» емкости используются диски, имеющие дефекты на одной из поверхностей.
Таблицы дефектов. Современная технология изготовления магнитных дисков не позволяет изготовить диски без дефектов. Неоднородность материала носителя, огрехи шлифовки, посторонние примеси при нанесении магнитного слоя и т.д. порождают области поверхности диска, на которых невозможна безошибочная запись и чтение данных.
В накопителях 15-летней давности, например типа ST506/412, таблица дефектных дорожек была напечатана на наклейке, размещенной на корпусе гермо-блока, а сам «винчестер» имел запас по емкости. Например, НЖМД типа ST225 (20 Мбайт) на самом деле имел емкость 21,5 Мбайт, т.е. 1,5 Мбайта отводилось под сбойные сектора и дорожки. В современных НЖМД также имеется избыточность, но она доступна только микроконтроллеру. Одна часть избыточной емкости отводится под рабочие программы, таблицы конфигурации, счетчики S.M.A.R.T., заводскую информацию, таблицы дефектов и т.п. Другая часть резервируется для замены сбойных секторов, возникающих в процессе работы «винчестера».
Заполнение таблиц дефектов производится во время внутризаводских испытаний. Номера сбойных блоков помещаются в таблицу. Такая процедура называется скрытием или подгрузкой дефектов (UPDATE DEFECT). Если при работе НЖМД произойдет обращение к скрытому дефектному сектору, оно будет переадресовано резервному сектору. Поэтому все современные накопители, вышедшие с завода-изготовителя, не имеют ни одного дефектного сектора.
Большинство моделей НЖМД имеют две таблицы дефектов: начальную (Primary, или P-List) и растущую (Grown, или G—List]. Начальная таблица заполняется на заводе-изготовителе при выполнении внутризаводского тестирования — SELFSCAN (intelligent burn-in). Вторая таблица предназначена для размещения дефектов, возникающих во время эксплуатации. Для этого в списке пользовательских команд практически всех НЖМД существует команда «assign», по которой происходит переназначение сбойного сектора на резервный. Эту команду используют многие тестовые программы, в том числе рекомендованные фирмой-производителем для «лечения» накопителей.
В накопителях фирмы Western Digital реализована система Data Lifeguard, выполняющая переназначение сбойных секторов автоматически, когда к накопителю нет обращений со стороны ЦП. Для этого накопитель тестирует свои поверхности и переносит данные пользователя в резервный сектор, а дефектный сектор помечается соответствующим образом. Такой механизм скрытия дефектов по сути аналогичен процедуре «assign».
В накопителях Fujitsu, Quantum, Maxtor, IBM реализован механизм автоматического скрытия дефектов во время операции записи. Так, если запись данных производится в дефектный сектор, накопитель самостоятельно переадресует обращение в резервную зону, а дефектный сектор помечается как сбойный и его номер заносится в таблицу (G-List). Из специализированных программ, служащих для скрытия дефектных секторов, можно отметить FUJFMT.EXE для накопителей Fujitsu, WDDIAG.EXE для накопителей Western Digital, ShDiag.exe от Samsung и т.п.
Два механизма скрытия дефектов
При использовании механизма переназначения (assign) накопитель прописывает в поле идентификации дефектного сектора флаг перемещенного сектора и далее в поле данных этого сектора - номер резервного сектора, к которому необходимо обратиться для записи или чтения данных. Как правило, резервным сектором является первый сектор после рабочей области данных пользователя (см. рис. 2).
При обращении к сбойному сектору во время операции чтения/записи данных контроллер читает флаг и адрес переназначения и производит позиционирование в резервную зону, чтобы осуществить чтение/ запись данных в хорошем секторе. Дефектные сектора в этом случае «пропадают», но накопитель каждый раз, наткнувшись на сбойный сектор, позиционирует головки в резервную область. Этот процесс сопровождается щелчками и некоторым замедлением работы.
При помощи процедуры «assign» можно скрыть только дефекты, находящиеся в полях данных. Если ошибки связаны с разрушением полей идентификации или поврежденной сервометкой, такие дефекты методом переназначения скрыть нельзя.
Второй механизм скрытия дефектных секторов, реализуемый на заводе-изготовителе, заключается в пропуске дефектного сектора. При использовании такого метода дефектный сектор игнорируется, а следующему за резервным сектором присваивается номер дефектного (и так далее, по цепочке); самый последний сектор сдвигается в резервную зону (см. рис. 3).
Такой метод скрытия нарушает целостность последовательности форматирования нижнего уровня, т.е. система трансляции логической структуры диска LBA (logical block addressing - логическая адресация блоков) в физическую структуру PCHS (physical cylinder, head, sector — физические цилиндр, головка, сектор) должна учитывать дефектные сектора, чтобы избежать обращения к ним. Метод пропуска требует пересчета таблиц транслятора и выполнения команды низкоуровневого форматирования, что делает невозможным его использование без потери данных пользователя. Именно по этой причине данный метод скрытия дефектов выполняется только в специальном (технологическом) режиме работы накопителя при помощи упомянутой выше утилиты FUJFMT.EXE, которая предназначена для скрытия дефектов в накопителях фирмы Fujitsu.
Логическая организация дискового пространства
В современных накопителях значительная часть дискового пространства скрыта от пользователя. Она содержит служебную информацию и резервную область для замены сбойных секторов НЖМД. В нормальном режиме работы скрытая часть доступна только микроконтроллеру. Пользователю отведена рабочая область, называемая логическим дисковым пространством. Именно ее объем указан в характеристиках НЖМД. Обращение к рабочей области, представляющей собой неразрывную цепочку логических секторов, происходит с номера О по N (в структуре LBA). Связь между логическим дисковым пространством и физическим форматом осуществляется посредством специальной программы-транслятора, которая учитывает физический формат, зонное распределение и исключенные дефектные сектора и треки. Доступ к служебной зоне возможен только в технологическом режиме работы накопителя. Для входа в этот режим подается команда-ключ, после чего открывается доступ к дополнительному, технологическому набору команд. При помощи этих команд осуществляются такие операции, как запись/чтение сектора служебной зоны, получение карты расположения модулей и таблиц в служебной зоне, получение таблицы зонного распределения, перевод LBA в PCHS и обратно, запуск формата нижнего уровня, запись/чтение ЭППЗУ и др.
В процессе проектирования НЖМД разработчик определяет необходимую для функционирования накопителя служебную информацию и отводит под нее соответствующее количество цилиндров. Поэтому логическим нулевым цилиндром является первый свободный цилиндр, следующий за последним цилиндром служебной информации (см. рис. 4). Структура дискового пространства может отличаться у различных моделей НЖМД.
2. Устройство жесткого диска
Жесткий диск (НDD - Hard Disk Drive) устроен следующим образом: на шпинделе, соединенным с электромотором, расположен блок из нескольких дисков (блинов), над поверхностью которых находятся головки для чтения/записи информации. Форма головкам придается в виде крыла и крепятся они на серпообразный поводок. При работе они "летят" над поверхностью дисков в воздушном потоке, который создается при вращении этих же дисков. Очевидно, что подъемная сила зависит от давления воздуха на головки. Оно же, в свою очередь, зависит от внешнего атмосферного давления. Поэтому некоторые производители указывают в спецификации на свои устройства предельный потолок эксплуатации (например, 3000 м). Ну чем не самолет? Диск разбит на дорожки (или треки), которые в свою очередь поделены на сектора. Две дорожки, равноудаленные от центра, но расположенные по разные стороны диска, называются цилиндрами.
3. Хранение информации
Жесткий диск, как и всякое другое блочное устройство, хранит информацию фиксированными порциями, которые называются блоками. Блок является наименьшей порцией данных, имеющей уникальный адрес на жестком диске. Для того чтобы прочесть или записать нужную информацию в нужное место, необходимо представить адрес блока в качестве параметра команды, выдаваемой контроллеру жесткого диска. Размер блока уже довольно с давних пор является стандартным для всех жестких дисков - 512 байт.
К сожалению, достаточно часто происходит путаница между такими понятиями как "сектор", "кластер" и "блок". Фактически, между "блоком" и "сектором" разницы нет. Правда, одно понятие логическое, а второе топологическое. "Кластер" - это несколько секторов, рассматриваемых операционной системой как одно целое. Почему не отказались от простой работы с секторами? Отвечу. Переход к кластерам произошел потому, что размер таблицы FAT был ограничен, а размер диска увеличивался. В случае FAT16 для диска объемом 512 Мб кластер будет составлять 8 Кб, до 1 Гб - 16 Кб, до 2 Гб - 32 Кб и так далее.
Для того чтобы однозначно адресовать блок данных, необходимо указать все три числа (номер цилиндра, номер сектора на дорожке, номер головки). Такой способ адресации диска был широко распространен и получил впоследствии обозначение аббревиатурой CHS (cylinder, head, sector). Именно этот способ был первоначально реализован в BIOS, поэтому впоследствии возникли ограничения, связанные с ним. Дело в том, что BIOS определил разрядную сетку адресов на 63 сектора, 1024 цилиндра и 255 головок. Однако развитие жестких дисков в то время ограничилось использованием лишь 16 головок в связи со сложностью изготовления. Отсюда появилось первое ограничение на максимально допустимую для адресации емкость жесткого диска: 1024*16*63*512 = 504Mb.
Со временем, производители стали делать HDD большего размера. Соответственно число цилиндров на них превысило 1024, максимально допустимое число цилиндров (с точки зрения старых BIOS). Однако, адресуемая часть диска продолжала равняться 504 Мбайтам, при условии, что обращение к диску велось средствами BIOS. Это ограничение со временем было снято введением так называемого механизма трансляции адресов, о котором чуть ниже.
Проблемы, возникшие с ограниченностью BIOS по части физической геометрии дисков, привели в конце концов к появлению нового способа адресации блоков на диске. Этот способ довольно прост. Блоки на диске описываются одним параметром - линейным адресом блока. Адресация диска линейно получила аббревиатуру LBA (logical block addressing). Линейный адрес блока однозначно связан с его CHS адресом:
lba = (cyl*HEADS + head)*SECTORS + (sector-1);
Введение поддержки линейной адресации в контроллеры жестких дисков дало возможность BIOS'aм заняться трансляцией адресов. Суть этого метода состоит в том, что если в приведенной выше формуле увеличить параметр HEADS, то потребуется меньше цилиндров, чтобы адресовать то же самое количество блоков диска. Но зато потребуется больше головок. Однако головок-то как раз использовалось всего 16 из 255. Поэтому BIOS'ы стали переводить избыточные цилиндры в головки, уменьшая число одних и увеличивая число других. Это позволило им использовать разрядную сетку головок целиком. Это отодвинуло границу адресуемого BIOS'ом дискового пространства до 8Gb.
Нельзя не сказать несколько слов и о Large Mode. Этот режим работы предназначен для работы жестких дисков объемом до 1 Гб. В Large Mode количество логических головок увеличивается до 32, а количество логических цилиндров уменьшается вдвое. При этом обращения к логическим головкам 0..F транслируются в четные физические цилиндры, а обращения к головкам 10..1F - в нечетные. Винчестер, размеченный в режиме LBA, несовместим с режимом Large, и наоборот.
Дальнейшее увеличение адресуемых объемов диска с использованием прежних сервисов BIOS стало принципиально невозможным. Действительно, все параметры задействованы по максимальной "планке" (63 сектора, 1024 цилиндра и 255 головок). Тогда был разработан новый расширенный интерфейс BIOS, учитывающий возможность очень больших адресов блоков. Однако этот интерфейс уже не совместим с прежним, вследствие чего старые операционные системы, такие как DOS, которые пользуются старыми интерфейсами BIOS, не смогли и не смогут переступить границы в 8GB. Практически все современные системы уже не пользуются BIOS'ом, а используют собственные драйвера для работы с дисками. Поэтому данное ограничение на них не распространяется. Но следует понимать, что прежде чем система сможет использовать собственный драйвер, она должна как минимум его загрузить. Поэтому на этапе начальной загрузки любая система вынуждена пользоваться BIOS'ом. Это и вызывает ограничения на размещение многих систем за пределами 8GB, они не могут оттуда загружаться, но могут читать и писать информацию (например, DOS который работает с диском через BIOS).
4. Разделы, или Partitions
Обратимся теперь к размещению операционных систем на жестких дисках. Для организации систем дисковое адресное пространство блоков разделяется на части, называемые разделами (partitions). Разделы полностью подобны целому диску в том, что они состоят из смежных блоков. Благодаря такой организации для описания раздела достаточно указания начала раздела и его длины в блоках. Жесткий диск может содержать четыре первичных раздела.
Во время загрузки компьютера, BIOS загружает первый сектор головного раздела (загрузочный сектор) по адресу 0000h:7C00h и передает ему управление. В начале этого сектора расположен загрузчик (загрузочный код), который прочитывает таблицу разделов и определяет загружаемый раздел (активный). А дальше все повторяется. То есть он загружает загрузочный сектор этого раздела на этот же адрес и снова передает ему управление.
Разделы являются контейнерами всего своего содержимого. Этим содержимым является, как правило, файловая система. Под файловой системой с точки зрения диска понимается система разметки блоков для хранения файлов. После того, как на разделе создана файловая система и в ней размещены файлы операционной системы, раздел может стать загружаемым. Загружаемый раздел имеет в своем первом блоке небольшую программу, которая производит загрузку операционной системы. Однако для загрузки определенной системы нужно явно запустить ее загрузочную программу из первого блока. О том, как это происходит, будет рассказано чуть ниже.
Разделы с файловыми системами не должны пересекаться. Это связано с тем, что две разные файловые системы имеют каждая свое представление о размещении файлов, но когда это размещение приходится на одно и то же физическое место на диске, между файловыми системами возникает конфликт. Этот конфликт возникает не сразу, а лишь по мере того, как файлы начинают размещаться в том месте диска, где разделы пересекаются. Поэтому следует внимательно относиться к разделению диска на разделы.
Само по себе пересечение разделов не опасно. Опасно именно размещение нескольких файловых систем на пересекающихся разделах. Разметка диска на разделы еще не означает создания файловых систем. Однако, уже сама попытка создания пустой файловой системы (то есть форматирование), на одном из пересекающихся разделов может привести к возникновению ошибок в файловой системе другого раздела. Все сказанное относится в одинаковой степени ко всем операционным системам, а не только самым популярным.
Диск разбивается на разделы программным путем. То есть, Вы можете создать произвольную конфигурацию разделов. Информация о разбиении диска хранится в самом первом блоке жесткого диска, называемым главной загрузочной записью (Master Boot Record (MBR)).
5. MBR
MBR является основным средством загрузки с жесткого диска, поддерживаемым BIOS. Для наглядности представим содержимое загрузочной области в виде схемы:
Все то что находится по смещению 01BEh-01FDh называется таблицей разделов. Вы видите, что в ней четыре раздела. Только один из четырех разделов имеет право быть помеченным как активный, что будет означать, что программа загрузки должна загрузить в память первый сектор именно этого раздела и передать туда управление. Последние два байта MBR должны содержать число 0xAA55. По наличию этой сигнатуры BIOS проверяет, что первый блок был загружен успешно. Сигнатура эта выбрана не случайно. Ее успешная проверка позволяет установить, что все линии данных могут передавать и нули, и единицы.
Программа загрузки просматривает таблицу разделов, выбирает из них активный, загружает первый блок этого раздела и передает туда управление.
Давайте посмотрим как устроен дескриптор раздела:
Смещение Описание
0000h маркер начальной загрузки
0001h головка
0002h cектор и цилиндр
0003h цилиндр
0004h системное описание
0005h головка
0006h cектор и цилиндр
0007h цилиндр
0008h-000Bh смещение секторов
000Ch-000Fh количество секторов в разделе
* 0001h-0003h начало раздела
** 0005h-0007h конец раздела
С точки зрения разделов диска наиболее популярной до недавнего времени была и остается MS-DOS. Она забирает в свое пользование два из четырех разделов: Primary DOS partition, Extended DOS partition. Первый из них, (primary) это обычный досовый диск C:. Второй - это контейнер логических дисков. Они все болтаются там в виде цепочки подразделов, которые так и именуются: D:, E:, ... Логические диски могут иметь и инородные файловые системы, отличные от файловой системы DOS. Однако, как правило, инородность файловой системы связана присутствием еще одной операционной системы, которую, вообще говоря, следовало бы поместить в свой собственный раздел (не extended DOS), но для таких выходок часто оказывается слишком маленькой таблица разделов.
Отметим еще одно важное обстоятельство. Когда на чистый жесткий диск устанавливается DOS, то при загрузке нет никаких альтернатив в выборе операционных систем. Поэтому загрузчик выглядит весьма примитивно, ему не надо спрашивать у пользователя, какую систему тот хочет загрузить. С желанием иметь сразу несколько систем возникает необходимость заводить программу, позволяющую выбирать систему для загрузки.