Типичный жесткий диск состоит из двух частей: платы электроники (Printed Circuit Board, PCB) и гермоблока (Head and Disk Assembly, HDA).
На рисунке 1 показана плата электроники диска середины 90х годов. Она приведена для наглядности демонстрации функциональных узлов, так как каждый узел реализован в виде отдельной микросхемы. На рисунке 2 показана современная плата, где большая часть узлов объединены в одну микросхему.
Элементы платы служат для подготовки сигнала в подходящую форму при записи, разборе и раскодировании сигнала при чтении, и оба этих процесса сопровождаются поиском и удержанием дорожки.
За подготовку сигнала отвечают микросхема интерфейса, буферное ОЗУ и канал чтения записи. Данные в виде команды записи и последующих секторов поступают из компьютера через интерфейс IDE, складываются в буферном ОЗУ. Так же, LBA преобразуется при помощи транслятора в координату, состоящую из номера головки, номера дорожки и номера сектора. Когда головка подходит к необходимому сектору, то включается схема кодирования, которая преобразует данные пользователя в набор импульсов оптимальной для магнитной записи конфигурации. Так же вычисляется CRC-код, чтобы была возможность проверить корректность считанных данных, а так же код восстановления ошибок (ECC). Когда компьютер хочет считать данные, то подается команда с указанием LBA и количества секторов на считывание. Далее, вычисляется координата расположения этой группы секторов через программу транслятора, состоящую из номера головки, номера дорожки и номера сектора. После, производится позиционирование в заданное место и начинается считывание. Микросхема канала чтения/записи преобразует считанные импульсы в цифровой код, который декодируется и складывается в буферное ОЗУ. Параллельно производится вычисление CRC- кода. По завершении чтения сектора, производится сравнение вычисленного и считанного CRC-кода. Совпадение означает успешное считывание. Несовпадение приводит к тому, что диск пытается восстановить сектор при помощи кодов восстановления ошибок и, если ошибки не удалось исправить, то диск выдает ошибку чтения «UNC».
Процессор на плате служит для инициализации адаптивных параметров механики и электронных параметров головки и схемы усиления сигнала. Еще процессор осуществляет преобразование координат из линейной последовательности номеров секторов (LBA) в номер магнитной головки, номер физического трека и сектора. Плюс еще ряд сервисных функций, вроде S.M.A.R.T.
Работу системы позиционирования, которая на входе получает координату необходимого для чтения или записи сектора, а на выходе выдает сигналы моторам шпиндельного двигателя и мотору звуковой катушки, рассмотрим после конструкции механики.
Для современной платы, на рисунке 2, микросхемы драйверов шпиндельного двигателя (ШД) и звуковой катушки (ЗК) объединены в одну. Дополнительно в этой же микросхеме реализованы функции съема информации с датчика свободного падения, а в некоторых современных дисках датчика атмосферного давления и двух датчиков компенсаций вибраций корпуса. Так же, микросхема однократной ПЗУ была заменена на последовательную флэш ПЗУ, что позволило обновлять микропрограмму не в заводских условиях. Микросхема системы на кристалле вобрала в себя контроллеры интерфейса и шпиндельного двигателя, процессор, серводемодулятор, и канал чтения/записи. Стоит отметить, что процессорное ядро во всех современных дисках — ARM.
На рисунке ниже показан гермоблок со всем его содержимым в виде сборочного чертежа для наглядности.
Внутренняя полость гермоблока заполнена очищенным от пыли воздухом, вернее сказать, специальное заполнение не производится, а просто сама сборка осуществляется в чистом цехе, где воздух специально фильтруется. В корпусе имеется отверстие, защищенное фильтром (обычно в верхней крышке или под платой электроники) для выравнивания давления внутри и снаружи гермоблока. В случае погружения накопителя в воду, она попадет внутрь именно через это отверстие. Поэтому «утопленные» жесткие диски никогда нельзя включать без предварительного разбора и осмотра. При вращении дисков создается поток воздуха, который циркулирует внутри гермоблока. Обычно сбоку от дисков, на пути потока воздуха, находится фильтр, очищающий от пыли, которая, возможно, может возникнуть в процессе работы жесткого диска.
Гермоблок включает диски с напылением тонкого магнитного слоя (были рассмотрены в прошлой статье), в которые записываются данные и сервоинформация в виде переходов между направлениями намагниченности, расположенных в виде концентрических треков. Диски установлены на вращающуюся часть шпиндельного двигателя.
Над поверхностью диска летит приподнятая потоком воздуха магнитная головка, перемещаемая приводом звуковой катушки. На магнитной головке расположен слайдер, в котором интегрирована микроскопическая сборка размером несколько микрометров. Она состоит из элемента чтения (reader), способного преобразовывать переходы намагничивания магнитного слоя в электрические импульсы и элемента записи (writer) преобразующего импульсы в переходы намагниченности магнитного слоя. За счет вращения диска под головкой проходят переходы намагниченности с частотой в районе 500МГц для современных накопителей. Информация кодируется последовательностью таких импульсов различной ширины, которая варьируется в пределах 1-2%.
Крупный план внутренней части жесткого диска, на котором показан пакет дисков и блок головок (а). Последовательность вставок (б, в, г) детально показывает расположение микроскопических элементов записи и чтения на торце слайдера.
На рисунке ниже показана схема замкнутого сервоцикла и указаны источники помех в работе жесткого диска.
Далее на рисунке продемонстрирован принцип обнаружения пиков реализованным в микросхеме канала чтения. Сигнал, помеченный черным, показывает идеальное считывание. Сигнал, помеченный красным, показывает зашумленный сигнал считывателя. Сигнал считывания сравнивается с порогом (обозначенным пунктирной линией) для определения выходного сигнала.
На рисунке изображена детализация сервосектора/сервометки, множество которых на каждом треке служат для определения позиции головки относительно трека и номера самого трека в текущий момент проходящего под магнитной головкой. Они содержат поле синхронизации и коррекции амплитуды ISG, адресную метку AM, номер трека, закодированного кодом Грэя, четыре метки детектирования отклонения положения головки и зазор между сервометкой и секторами данных. Отклонение положения определяется по сумме амплитуд четырех меток. Пример осциллограммы определения положения по меткам показан на среднем рисунке. Микросхема серводемодулятора определяет отклонение от центра трека и подает сигнал на звуковую катушку для возвращения позиции головки обратно в центр.
Для перехода между треками, контроллер подает через катушку ускоряющий импульс тока, а затем тормозящий. На рисунке ниже показан график тока через катушку в зависимости от времени перемещения позиционера.
По завершении перемещения контроллер сервосистемы определяет номер трека, куда попала головка, и если это не заданный трек, то производятся дополнительные позиционирования до тех пор, пока заданный трек не будет установлен. В случае когда головка не может по какой-либо причине прочитать сервометки, жесткий диск начинает стучать головкой, так как не может ни зафиксировать положение трека, ни тем более определить его номер. Если снять магнитный диск, а потом поставить его обратно, то возникнет смещение, и треки перестанут быть для сервосистемы идеальными окружностями. В этом случае сектора будут считываться очень медленно, а запись будет промахиваться мимо центра трека и портить данные на соседних треках. Именно поэтому после разборки/сборки жесткий диск больше непригоден для обычного использования. Подобная проблема появляется при возникновении сильных биений (слышен значительно больший шум вращения, чем у исправного диска) подшипника шпиндельного двигателя.
Статья подготовлена по материалам ACELab