Доки (Жёсткие диски изнутри) Накопители на жестких магнитных дисках (НЖМД) — таково полное название устройств хранения данных, без которых сегодня немыслим ни один компьютер. Вероятно, вам знакомо и неофициальное прозвище упомянутых устройств — винчестер. Что общего может быть у названия ружья и накопителя данных? Почему именно винчестер? Одна из версий происхождения этого названия такова: первый накопитель, изготовленный фирмой IBM, состоял из двух дисков по 30 Мбайт каждый, а запись «30-30» у кого-то из сотрудников фирмы вызвала ассоциацию с калибром ружья «винчестер». Так или иначе, но название «винчестер» прижилось, и теперь его можно часто услышать в фразах типа «винчестер ST51080 объемом 1 Гигабайт». В дальнейшем я тоже буду использовать слово «винчестер» в качестве синонима жесткого диска. Как компонент персональных компьютеров IBM (PC), жесткие диски начали использоваться в начале 80х годов. Первые винчестеры компоновались дисками диаметром 5.25 дюйма (в настоящее время большинство винчестеров для PC использует диски 3 дюйма) и имели объем 5 Мбайт. Сегодня такие цифры выглядят весьма странно, но в 1980 году первый винчестер от фирмы Seagate Technology был чудом техники: емкостью 5 Мбайт при скорости передачи данных 5 Мбит в секунду (с тех пор этот показатель увеличился более чем в 20 раз). Динамично развиваясь, технология производства жестких дисков позволила к 1983 году создать винчестеры емкостью 10 Мбайт, которыми комплектовались PC IBM PC/XT, затем в 1984 году были созданы модели емкостью 20 Мбайт. К настоящему времени емкость жестких дисков стандартных моделей для PC лежит в пределах от 1 до 8 Гбайт. По ходу дальнейшего изложения я буду иногда ссылаться на программный комплекс HDD UTILity, поэтому немного расскажу о нем. Этот программный комплекс является бесплатно распространяемым самостоятельным программным продуктом, предназначенным для выполнения следующих задач:
На сегодняшний день HDD UTILity версии 2.3 является одним из самых мощных комплексов своего класса, однако следует заметить, что комплекс разрабатывался в расчете на его применение специалистами в области обслуживания винчестеров, и неподготовленному пользователю может показаться сложным и запутанным. Если вас не пугают трудности, можете посетить Webстраницу, посвященную комплексу HDD UTILity, по адресу Что же представляет собой современный винчестер? Он состоит из двух компонентов: печатная плата и герметичный корпус (гермоблок), внутри которого и находятся магнитные диски. Вся электроника, за исключением предусилителей, располагается на печатной плате (Printed Circuit Board), а вся механика внутри гермоблока.
Магнитные диски и |
Бытует ошибочное мнение, что магниторезистивные головки работают на чтение и на запись. Это не так: для записи по-прежнему используются индуктивные головки. |
В реальной работе винчестеру приходится читать данные с поверхности. Для этого он должен знать, где в настоящий момент находятся головки и куда ему необходимо их переместить. С этой целью на поверхности дисков записана сервоинформация, уникальная для каждой дорожки и каждого сектора с данными, представляющая собой «адрес» сектора. В современных винчестерах сервоинформация хранится на той же поверхности, на которой хранятся данные (embedded servo). В качестве примера реализации современных методов позиционирования приведем систему, используемую компанией Quantum Corporation в моделях Fireball ST (Stratus).
Сервоинформация расположена на каждой дорожке каждой поверхности. В этом случае отпадает необходимость использования специальной головки для ее чтения, так как эту роль играют считывающие головки. Участки с записанной сервоинформацией (wedges — клин) расположены равномерно по всей поверхности, как спицы колеса. На каждую дорожку приходится по 84 участка с этой информацией. Таким образом, на несколько подряд идущих секторов приходится один «клин», состоящий из четырех полей: синхронизации, сервометки адреса, номера дорожки и поля Burst. Для разделения полей используется временная синхронизация. Винчестер использует безиндентификационный формат записи секторов, т. е. каждому сектору ставится в соответствие его дескриптор. Дескриптор содержит, в частности, следующие поля: поле четности, номер «клина» (после которого располагается сектор и время, за которое сектор должен подойти под головку после того, как был обнаружен нужный «клин»), а также два поля для «счетчика разрыва». Достаточно в общих чертах представить себе схему поиска нужного сектора: контроллер выясняет «клин», после которого находится нужный сектор, затем его значение сравнивается с внутренним счетчиком форматтера, который отслеживает текущую сервоинформацию. При совпадении контроллер отсчитывает промежуток времени, указанный в поле времени дескриптора, и начинает читать данные с поверхности.
Единственным еще не рассмотренным нами элементом, находящимся внутри гермозоны, является предусилитель. Такое, на первый взгляд странное, его расположение (внутри гермоблока, а не на печатной плате, рядом со всей остальной электроникой) объясняется очень просто: предусилитель должен располагаться как можно ближе к считывающей и записывающей головкам для сокращения тракта головка—предусилитель и уменьшения наводящихся на него помех. С предусилителей сигнал идет по ленточному шлейфу на печатную плату, где и преобразуется в тот вид, в котором он представляется компьютеру.
Типовая для современных винчестеров блок-схема в упрощенном виде показана на рис. 3.
Функции показанных на рисунке основных узлов электроники винчестера:
mконтроллер управляет ресурсами всех остальных узлов, а также отвечает за механизм выбора головки;
контроллер диска и интерфейса состоит из нескольких элементов и работает под управлением mконтроллера.
Входящие в состав mконтроллера основные элементы, не показанные на рисунке:
Аналого-цифровой преобразователь декодирует информацию о местоположении головки в цифровой вид и передает ее сервоконтроллеру.
Рис. 3
Сервоконтроллер содержит цифро-аналоговый преобразователь. Управляет широтно-импульсной модуляцией сигнала, тем самым отвечая за управление позиционированием головок относительно магнитных дисков.
Блок коррекции ошибок служит для коррекции возникающих ошибок. Как правило, использует код Рида—Соломона.
Форматтер управляет частью процесса чтения/записи, контролируя сигналы Read и Write Gate. Передает данные предкомпенсатору.
Контроллер интерфейса — самая «близкая» к компьютеру часть электроники винчестера, отвечающая за обмен данными с компьютером и управление шиной.
Микросхема чтения/записи состоит из нескольких элементов и работает под управлением контроллера диска и интерфейса; обеспечивает предкомпенсацию записываемых данных и работу канала чтения. Входящие в его состав основные элементы, не показанные на рисунке:
Операционный усилитель принимает сигнал с предусилителя чтения, усиливает его и передает на фильтр Баттерворта.
Предкомпенсатор осуществляет конечное преобразование данных перед записью их на магнитный диск. Преобразованные данные поступают на предусилитель записи и затем на записывающую головку.
Аналого-цифровой преобразователь (АЦП) осуществляет быстрое преобразование отфильтрованного сигнала при операции чтения в цифровую последовательность.
Детектор Виттерби преобразует данные с ЦАП (цифро-аналогового преобразователя) в поток двоичной информации.
В случае использования PRML микросхема чтения/записи также включает в себя узел, выполняющий преобразование PRML-кода в NRZ-код. В реальной работе винчестер обменивается данными с компьютером блоками длиной в один сектор, что составляет 512 байт. При запросе на чтение сектора винчестер читает его с поверхности магнитного диска и передает в кэш-память, которая представляет собой оперативную память с малым временем доступа.
Как правило, под кэш отводится только часть памяти, установленной на печатной плате. Оставшуюся часть обычно занимает микропрограмма (firmware) — программа, управляющая общим функционированием винчестера. Версию микропрограммы вашего винчестера, а также размер кэш-памяти можно определить с помощью комплекса HDD UTILity.
Одна из задач, решаемая микропрограммой,— увеличение общей скорости работы винчестера с использованием доступной кэшпамяти. Рассмотрим несколько основных методов подобного увеличения.
Допустим, компьютеру понадобилось прочитать сектор с номером 1. Передав винчестеру запрос на прочтение этого сектора, компьютер ожидает, пока винчестер найдет и прочитает его с магнитной поверхности и передаст в кэшпамять. После этого компьютер начнет забирать данные из кэшпамяти. Пока идет этот процесс, микропрограмма заставляет винчестер прочитать в свободную кэшпамять сектор с номером 2. Компьютер, получив сектор 1, с высокой степенью вероятности (в силу принципов размещения данных на диске) затребует сектор 2, который к тому времени уже тоже находится в кэшпамяти. Теперь винчестер может не тратить время на поиск и прочтение сектора, а сразу приступить к передаче его компьютеру.
Предположим, компьютеру необходимо что-либо записать на винчестер. Для этого он сначала передает запрос на запись, а затем и сами данные, которые необходимо записать. Жесткий диск без кэширования операций записи принимает эти данные в память, ищет нужный сектор и записывает в него данные. Винчестер с кэшированием операций записи примет данные в кэш и немедленно сообщит компьютеру о завершении операции записи, тем самым позволяя ему заниматься другими задачами, и лишь после этого проведет фактическую запись данных на диск.
В приведенных выше примерах говорилось о том, что принимаемые или передаваемые данные хранятся в кэш-памяти. При статической сегментации кэш-память разделяется на фиксированное число независимых частей — сегментов. Предположим, что таких частей две. Теперь винчестеру необходимо прочитать данные из сектора 1, затем записать другие данные в сектор 155. При чтении будет применен метод 1, т. е. в первый сегмент попадет сектор 1 и следующий за ним сектор 2. После этого винчестеру будет необходимо записать данные в сектор 155. Эти данные займут второй сегмент кэшпамяти, и теперь любая операция чтения или записи вызовет вытеснение из сегмента хранящихся там данных. Чтобы этого не происходило, в большинстве современных винчестеров реализован алгоритм адаптивной сегментации, т. е. число сегментов и их размер под управлением микропрограммы становятся динамически изменяемыми, позволяя эффективнее использовать кэш-память.
Алгоритм взаимодействия программы и жёсткого диска |
Компьютер с винчестером работают под управлением специальных программ. Это может быть программа, содержащаяся в базовой системе вводавывода (BIOS) компьютера, внешний драйвер, тестовая или иная программа. Винчестер и управляющая программа должны работать по одному протоколу, чтобы понимать друг друга (как бы разговаривая на одном языке). Протокол, в частности, определяет набор команд для общения программы и винчестера. Существует несколько протоколов, но наибольшее распространение в персональных компьютерах получили протоколы серии ATA (AT Attachment) и его разновидность ATAPI (ATA Packet Interface). Далее будем опираться на протокол ATA как на основной. Доступ к винчестеру осуществляется через служащие этим целям порты (регистры контроллера), которых целых девять:
Регистр обмена данными 16-разрядный, остальные — 8-разрядные.
Во врезке представлен упрощенный алгоритм действий программы и винчестера при возникновении ситуации, когда «компьютер передает запрос на чтение сектора 1, находящегося по адресу: 2-й цилиндр, 3-я головка, 4-й сектор от начала дорожки».
Быстродействие винчестера является очень важной характеристикой, однако его невозможно определить только одной цифрой, поэтому для описания скорости работы винчестера принято использовать несколько параметров:
Скорость вращения магнитных дисков. Чем выше скорость вращения дисков, тем быстрее с него можно считывать информацию и тем меньшее время необходимо ждать винчестеру, пока нужный сектор попадет под считывающую головку. Подавляющее большинство современных винчестеров использует скорости 4500, 5400, 7200 оборотов в минуту.
Среднее время запаздывания — время, которое напрямую связано со скоростью вращения дисков и представляет собой среднее время ожидания подхода сектора под головку при условии нахождения головки над нужной дорожкой.
Скорость чтения с магнитных дисков зависит от скорости вращения дисков, методов записи и ряда других параметров.
ВНИМАНИЕ!
|
Скорость передачи данных из кэшпамяти винчестера в оперативную память компьютера. В идеальном случае эта скорость должна быть выше, чем скорость чтения с магнитных дисков. Зависит от тактовой частоты, на которой работает шина, по которой передаются все данные, и от режима обмена (кэшпамять винчестера <-> память компьютера). На сегодняшний день приняты следующие основные режимы обмена: PIO (Programmed Input/Output) и DMA (Direct Memory Access). Иллюстрацией режима PIO служит приведенный выше пример. В случае использования DMA (непосредственного доступа в память) контроллер винчестера самостоятельно обменивается данными с памятью компьютера, освобождая ресурсы процессора. На сегодняшний день большинство винчестеров использует следующие режимы обмена: PIO4 (максимальная теоретическая скорость обмена 16.6 Мбайт/с), MultiWord DMA2 (максимальная теоретическая скорость обмена 16.6 Мбайт/с) и UltraDMA33 (максимальная теоретическая скорость обмена 33 Мбайт/с).
Компания Quantum Corporation решила не останавливаться на достигнутом и уже предложила к использованию режим UltraDMA66.
Среднее время доступа к сектору. Обычно этот параметр трактуется как среднее время, которое затрачивает винчестер на поиск и чтение в кэш-память требуемого сектора. Чем быстрее винчестер прочитает сектор в свою память, тем быстрее он сможет передать его компьютеру.
Среднее время поиска дорожки — среднее время, которое затрачивает винчестер на поиск дорожки, содержащей нужный сектор.
Среднее время перехода с последнего сектора одной дорожки на первый сектор следующей. Для уменьшения этого времени (Track Skew Time) первый сектор каждой следующей дорожки располагают «со смещением» относительно последнего сектора предыдущей дорожки. Это смещение выбирается исходя из расчета худшего (максимального) времени, необходимого на переключение головки и прохождение первой сервометки (wedge) под этой головкой при минимальной допустимой скорости вращения дисков. Для реализации этого принципа в контроллере диска существует так называемый Wedge Skew Register. При переходе на новую дорожку контроллер рассчитывает необходимое временное смещение и добавляет его в поле 2 дескриптора сектора, «сдвигая» тем самым первый сектор. Аналогичный параметр существует и для случая перехода с цилиндра на цилиндр.
Кроме быстродействия, очень важна надежность работы винчестера в целом и его компонентов. Для определения надежности используют такие параметры, как теоретическое MTBF (Mean Time Between Failures — среднее время между сбоями) и практическое MTBF.
Теоретическое MTBF измеряется в часах и означает среднее время, за которое он может выйти из строя. Изначально теоретическое MTBF моделируется с помощью математических моделей, а затем, по мере поступления данных о выходе винчестеров из строя, модели подстраиваются более точно. Практическое значение MTBF рассчитывается позже, когда определенное, достаточно большое количество винчестеров возвращено на ремонт, при этом учитываются все случаи возврата. Очевидно, что теоретическое MTBF оказывается выше практического, и, помимо MTBF, производители винчестеров часто указывают минимальное гарантируемое количество остановов/разгонов шпинделя (Start/Stop cycles). На сегодняшний день приемлемым для обычных винчестеров считается более 40 тыс. циклов.
ВНИМАНИЕ!
Не все винчестеры поддерживают SMART. |
Для дополнительного контроля за состоянием винчестера группой фирмразработчиков была предложена технология самослежения винчестера за своими основными характеристиками, получившая название S.M.A.R.T (Self Monitoring, Analysis and Reporting Technology — технология самослежения, анализа и отчета), которая работает следующим образом. Для каждой модели существуют до 30 параметров (атрибутов), характеризующих текущее состояние накопителя. Каждый атрибут имеет свой номер (идентификатор) и хранится в энергонезависимой памяти винчестера. Там же хранятся граничные значения для атрибутов (thresholds). При изготовлении накопителя или по специальному набору команд атрибуты устанавливаются в исходные значения. Для простоты понимания функционирования SMART приведем пример. Предположим, атрибут 3 соответствует количеству контактных старт/стопциклов двигателя, а соответствующий ему порог — 10. Исходное значение атрибута — 100. За каждые 2 цикла старт/стопзначение атрибута уменьшается на единицу, т. е. после двух включений винчестера значение атрибута упадет на единицу и станет равным 99. Атрибут, который превышает соответствующий ему порог, означает нормальное функционирование винчестера и характеризует опасное или предаварийное состояние накопителя.
Типовые значения атрибутов SMART | |
Идентификатор атрибута | Назначение атрибута |
1 | количество нескорректированных ошибок чтения |
2 | пропускная способность |
3 | усредненное время раскрутки шпинделя |
4 | количество выполненных циклов старт/стоп шпинделя |
5 | количество переназначенных секторов |
7 | количество ошибок поиска |
8 | скорость выполнения операций поиска |
9 | количество наработанных часов |
10 | количество повторных попыток разгона шпинделя |
11 | количество повторных попыток рекалибровки |
12 | количество включений/выключений винчестера |
13 | количество скорректированных ошибок чтения |
199 | количество ошибок CRC при работе в режиме UDMA (если поддерживается режим UDMA и контроль CRC) |
200 | количество ошибок записи |
Как вы могли заметить, атрибут с идентификатором 5 соответствует количеству переназначенных секторов. Система переназначения дефектных секторов в общих чертах работает следующим образом. При изготовлении винчестера определенная часть рабочей магнитной поверхности почти всегда содержит «некондиционные» участки. Качество напыления на этих участках поверхности не обеспечивает надежного хранения записанной на ней информации, поэтому на поверхности отводятся специальные резервные области для замены дефектных участков. После изготовления поверхность винчестера проверяют на наличие дефектных участков и найденные плохие сектора «переназначают» на сектора из резервной области. Для хранения информации о таких переназначенных секторах в винчестере имеются так называемые дефект-листы, в которых хранится информация о том, какие сектора были дефектными и куда они переназначены. Дефект-листов, как правило, два: master-дефект-лист, содержащий записи о переназначенных секторах, найденных при изготовлении винчестера, и grown-дефект-лист, в который записи заносятся самим винчестером в процессе его жизненного цикла. Предположим, при работе винчестеру необходимо прочитать сектор 1. Участок магнитной поверхности, содержащий этот сектор, разрушился или потерял свои свойства, и попытка его прочтения привела к ошибке. Повторные попытки, предпринятые винчестером, также не увенчались успехом. В этом случае винчестер внесет в grown-дефект-лист запись о том, что сектор 1 теперь располагается не на месте дефектного участка, а на резервном месте.
Современные технологии, используемые в винчестерах, постепенно приближаются к пику своего совершенства, однако они еще не исчерпали себя, и в недалеком будущем мы станем свидетелями новых передовых достижений в этой области.