Накопители на жестких дисках – HDD являются сложнейшими устройствами, включающими в себя множество различных компонентов. Здесь мы найдем схемы обработки цифровых сигналов, схемы обработки и формирования аналоговых сигналов, схемы управления двигателем и звуковой катушкой, множество схем фазовой автоматической подстройки частоты (ФАПЧ), множество генераторов различных частот и т. д. И все это работает под управлением сложнейшей программы, выполняемой микропроцессором накопителя. Таким образом, на плате HDD должно находится множество микросхем различного назначения, но в реальных устройствах мы видим всего несколько больших чипов, причем центральное место среди них занимает, так называемый, микроконтроллер HDD. О том, что представляет собой этот микроконтроллер, мы постараемся рассказать на примере одного из них.
Структурную схему накопителя HDD можно представить так, как это показано на рис. 1. Основными компонентами накопителя являются:
1) Контролер интерфейса – является одним из сложнейших элементов накопителя. Он определяет скорость обмена данными между HDD и хостом (системной платой). Зачастую его называют HDC-контроллером. К основным функциям HDC-контроллера можно отнести:
— чтение сектора;
— запись сектора;
— поиск адресного маркера;
— запись идентификатора;
— форматирование сектора и дорожки;
— обработка и обслуживание команд от хоста;
— формирование сигналов интерфейса IDE;
— обслуживание буферной памяти.
Рис. 1
2) Сепаратор данных предназначен, в основном, для очистки цифрового сигнала от шумов при чтении, для выделения сигналов синхронизации чтения (RCLK) и записи (WCLK) и для формирования потока данных, предназначенных для записи, с учетом необходимых временных задержек.
3) Канал чтения/записи формирует сигналы управления магнитными головками, осуществляя при этом преобразование параллельного кода в последовательный при записи, и последовательного кода в параллельный при чтении. При чтении этим модулем также осуществляется проверка кода CRC (контрольно-циклический код) и при необходимости проводится исправление ошибок.
4) Управляющий микропроцессор обеспечивает выполнение микропрограммы накопителя, осуществляя считывание команд из ПЗУ. В соответствии с микропрограммой микропроцессор управляет всеми компонентами HDD.
5) VCM (звуковая катушка) обеспечивает перемещение и позиционирование блока магнитных головок.
6) Шпиндельный двигатель обеспечивает вращение магнитных дисков.
7) Драйвер двигателя и VCM формирует сигналы для управления двигателем, поддерживая его скорость постоянной. Кроме того, драйвером формируется ток в катушке VCM, что позволяет осуществлять ее перемещение на заданную величину.
В накопителях HDD, выпускавшихся 5–7 лет назад, всем рассмотренным компонентам соответствовали отдельные микросхемы. Но постепенно, с развитием технологий производства чипов и с увеличением плотности размещение компонентов на кристаллах, большую часть элементов HDD стали выполнять в виде одной интегральной микросхемы, которую так и стали называть – контролер HDD (HDC – Hard Disk Controller). Такой контроллер HDD стал включать в себя управляющий микропроцессор, контролер интерфейса, сепаратор данных и канал чтения/записи. В качестве примера такого контроллера можно привести микросхему CL-SH8665, выпускаемую одним из лидеров в производстве чипов HDD-микроконтроллеров – фирмой Cirrus Logic.
Блок-схема HDD-контроллера CL-SH8665 и вариант построения накопителя на его основе представлены на рис. 2. Для создания полноценной схемы управления накопителем кроме CL-SH8665 должны быть использованы еще:
— микросхема драйвера двигателя и VCM;
— микросхема EDO DRAM (ОЗУ динамического типа) для организации буферной памяти;
— микросхема ПЗУ или FLASH-памяти, обеспечивающей хранение управляющей программы и различных служебных данных;
— микросхема усилителей для блока магнитных головок.
Рис. 2
В качестве микропроцессорного ядра HDD-контроллера CL-SH8665 используется широко применяемый и очень популярный 32-разрядный RISC процессор ARM7, в частности, его модификация ARM7TDMI. Использование ARM7 позволяет иметь высокопроизводительное микропроцессорное ядро с малым энергопотреблением и малым размером на чипе. Комбинация ядра на основе ARM7 и цифрового сигнального процессора (DSP) дает возможность создать эффективную схему управления шпиндельным двигателем и обеспечить выполнение других функций. Процессоры семейства ARM, поддерживающие технологию Thumb «TM», имеют возможность выполнять 16-разрядные команды на 32-разрядном процессорном ядре, что позволяет сократить размер управляющей программы без потери ее функциональности и производительности. Для критичных приложений, например для управления двигателем и для обработки прерываний могут применяться и 32-разрядные команды.
Внешняя высокоскоростная 16-разрядная шина данных (MD[0:15]) используется для передачи команд из внешней микросхемы ПЗУ (или из микросхемы FLASH-памяти с параллельным доступом). Разрядность шины адреса (MA[0:22]), обеспечивающей доступ к ПЗУ и FLASH, может достигать 23 бит, что позволяет адресовать память объемом до 8 Мбайт. К этой же внешней шине может дополнительно подключаться и статическая оперативная память (SRAM), обеспечивая дополнительные функции.
Процессор ARM7 также имеет прямой доступ к данным, хранящимся во внутренней статической памяти, емкостью 1Кбайт, кроме того, для него предусмотрена возможность доступа к буферной памяти (EDO DRAM) через ядро НDC. В состав контроллера также входит и ПЗУ масочного типа, в котором хранятся управляющие коды микропроцессора. Емкость ПЗУ составляет 16 Кбайт. Связь микропроцессора с контроллером интерфейса и другими элементами чипа осуществляется посредством внутренней периферийной шины, разрядностью 16 бит. Обслуживание внутренней периферийной шины и внешней шины для доступа к памяти осуществляет контроллер шины и памяти, входящий в состав микропроцессорного блока чипа.
Одним из важнейших элементов HDD-контроллера CL-SH8665 является контролер HDC (в качестве его ядра используется CL-SH7656). HDC-контроллер обеспечивает полную аппаратную поддержку функций доступа к дисковому пространству. Контроллером HDC обеспечиваются такие функции, как автоматическая генерация импульсов доступа к сектору, формирование карты логических секторов и исправление дефектов при чтении трека. Логика обработки и исправления ошибок (ECC) обеспечивает «5-байтную» коррекцию ошибок, а также исправлять «на лету» одиночные ошибки в цепочке из 113 битов и двойные ошибки в цепочке из 49 битов. Кроме того, повысить эффективность системы коррекции ошибок можно за счет программного обеспечения – так называемой off-line-коррекции ошибок. HDC контроллер, кроме рассмотренных функций, обеспечивает еще и доступ к буферной памяти, для чего формирует сигналы управления динамической памятью (RAS, CAS, WE, OE). Разрядность шины адреса для доступа к EDO DRAM составляет 9 бит, а разрядность шины данных – 16 бит. НDC обеспечивает обмен данными с памятью на скорости до 64 Мбайт/сек., что позволяет поддерживать скорость обмена на интерфейсе ATA до 33.3 Мбайт/сек. в режиме UltraDMA (mode 2), и позволяет иметь доступ к дисковым накопителям со скоростью 260 Мбит/сек. (для дисков с методом записи NRZ).
Канал чтения/записи (ядром которого является контроллер CL-SH3360) является цифровым каналом, осуществляющим выборку амплитуды сигнала. Большая гибкость управления каналом позволяет использовать его в режиме синхронного чтения магнитных дисков высокой плотности. Канал чтения/записи имеет программируемую архитектуру, что позволяет настроить и откалибровать его параметры на работу с любой головкой, любым диском и любой зоной диска. Канал чтения/записи обеспечивает достаточно высокую скорость обмена данными с дисками – до 245 Мбит/сек. В состав канала чтения/записи входят такие основные элементы, как:
— усилитель с переменным коэффициентом усиления (VGA – variable gain amplifier), управляемый цифровым методом;
— десяти-полосный корректирующий фильтр с цифровым управлением конечной импульсной характеристикой;
— узкополосный аналоговый фильтр четвертого порядка;
— 6-разрядный аналого-цифровой преобразователь АЦП (ADC);
— RLL-кодер/декодер;
— блок определения «термических всплесков» на магнитной головке;
— схема коррекции мощности для магнитной головки.
HDD – контроллер имеет встроенный генератор, частота которого задается внешним кварцевым резонатором. Этот генератор формирует все необходимые сигналы синхронизации, необходимые для функционирования контроллера.
Контроллер питания чипа CL-SH8665 обеспечивает необходимыми питающими напряжениями все его компоненты и поддерживает три режима работы:
— Run (рабочий режим);
— Idle (режим ожидания);
— Sleep (спящий режим).
Напряжение питания HDD-контроллера CL-SH8665 составляет 3.3 В.
Использование однокристального контроллера для управления дисковым накопителем, конечно же, чрезвычайно удобно для разработчиков и производителей накопителей. Это снижает стоимость изделия и повышает технологичность его производства. Однако в случае неисправности этого контролера, ремонт всего дискового накопителя может оказаться нецелесообразным по причине невозможности (или очень большой сложности) приобретения данного чипа.
В то же самое время, зная структуру и состав такого HDD-контроллера можно попытаться произвести его диагностику. Диагностика HDD-контроллера разбивается на несколько основных этапов, диагностирующих разные элементы и подсистемы чипа. Поэтапную диагностику HDD-контроллера можно представить, например, следующим образом.
1 этап — диагностика базовых функций. На этом этапе контролируются:
— наличие напряжения питания 3.3 В на соответствующих контактах чипа;
— наличие синусоидального сигнала высокой частоты на контактах резонатора;
— наличие сигнала RESET высокого уровня на соответствующем контакте чипа.
2 этап – диагностика внешней шины доступа к памяти и работоспособности внешнего ПЗУ. На этом этапе контролируется:
— наличие (активность) сигналов адреса на соответствующих контактах микросхемы ПЗУ или FLASH;
— наличие напряжения 3.3 В на микросхеме ПЗУ;
— наличие сигналов #RD и #CE на соответствующих контактах ПЗУ;
— активность сигналов шины данных на соответствующих контактах ПЗУ.
3 этап – диагностика сигналов управления драйвером двигателя. На этом этапе контролируется:
— раскручивание дисков в момент включения накопителя;
— формирование сигналов управления микросхемой драйвера двигателя (контролируемые сигналы определяются типом микросхемы драйвера двигателя).
— проверяется перемещение позиционера с магнитными головками;
— контролируется формирование сигналов управления звуковой катушкой (с учетом применяемой микросхемы драйвера).
4 этап – диагностика тракта чтения/записи. На этом этапе контролируются:
— сигналы, поступающие от магнитных головок.
5 этап – диагностика HOST-шины. На этом этапе контролируются сигналы интерфейса IDE.
6 этап – диагностика буферной памяти. На этом этапе контролируется:
— наличие (активность) сигналов адреса на соответствующих контактах микросхемы EDO DRAM;
— наличие сигналов #RAS, #CAS, #WE, #OE на выходах контроллера на соответствующих контактах микросхемы EDO DRAM.
— активность сигналов шины данных на соответствующих контактах EDO DRAM.
Проведение диагностических работ на каждом из этапов требует от специалиста определенного набора знаний и навыков работы с измерительной аппаратурой. И, наверное, каждому специалисту теперь стоит задуматься над тем, каких знаний ему не хватает для полной и профессиональной диагностики HDD-микроконтроллера, и попытаться этот пробел в знаниях устранить, благо, что соответствующей информации сейчас в достаточном количестве.
Проведя диагностику отдельных компонентов контроллера, можно с достаточно высокой степенью вероятности говорить о его исправности, или, наоборот, неисправности.