Принципы работы
Зміст
Магнитные дисковые накопители (логическое устройство и принципы работы)
Принцип работы магнитных запоминающих устройств основаны на способах хранения информации с использованием магнитных свойств материалов. Как правило, магнитные запоминающие устройства состоят из собственно устройств чтения/записи информации и магнитного носителя, на который, непосредственно, осуществляется запись и с которого считывается информация. Магнитные запоминающие устройства принято делить на виды в связи с исполнением, физико-техническими характеристиками носителя информации и т.д. Наиболее часто различают: дисковые и ленточные устройства. Общая технология магнитных запоминающих устройств состоит в намагничивании переменным магнитным полем участков носителя и считывания информации, закодированной как области переменной намагниченности. Дисковые носители, как правило, намагничиваются вдоль концентрических полей – дорожек, расположенных по всей плоскости дискоидального вращающегося носителя. Запись производится в цифровом коде. Намагничивание достигается за счет создания переменного магнитного поля при помощи головок чтения/записи. Головки представляют собой два или более магнитных управляемых контура с сердечниками, на обмотки которых подается переменное напряжение. Изменение полярности напряжения вызывает изменение направления линий магнитной индукции магнитного поля и, при намагничивании носителя, означает смену значения бита информации с 1 на 0 или с 0 на 1.
Дисковые устройства делят на гибкие (Floppy Disk) и жесткие (Hard Disk) накопители и носители. Основным свойством дисковых магнитных устройств является запись информации на носитель на концентрические замкнутые дорожки с использованием физического и логического цифрового кодирования информации. Плоский дисковый носитель вращается в процессе чтения/записи, чем и обеспечивается обслуживание всей концентрической дорожки, чтение и запись осуществляется при помощи магнитных головок чтения/записи, которые позиционируют по радиусу носителя с одной дорожки на другую. Дисковые устройства, как правило, используют метод записи называемый методом без возвращения к нулю с инверсией (Not Return Zero – NRZ). Запись по методу NRZ осуществляется путем изменения направления тока подмагничивания в обмотках головок чтения/записи, вызывающее обратное изменение полярности намагниченности сердечников магнитных головок и соответственно попеременное намагничивание участков носителя вдоль концентрических дорожек с течением времени и продвижением по окружности носителя. При этом, совершенно неважно, происходит ли перемена магнитного потока от положительного направления к отрицательному или обратно, важен только сам факт перемены полярности.
Для записи информации, как правило, используют различные методы кодирования информации, но все они предполагают использование в качестве информационного источника не само направление линий магнитной индукции элементарной намагниченной точки носителя, а изменение направления индукции в процессе продвижения по носителю вдоль концентрической дорожки с течением времени. Такой принцип требует жесткой синхронизации потока бит, что и достигается методами кодирования. Методы кодирования данных не влияют на перемены направления потока, а лишь задают последовательность их распределения во времени (способ синхронизации потока данных), так, чтобы, при считывании, эта последовательность могла быть преобразована к исходным данным.
Жесткие диски (винчестеры), физическое устройство
Накопители на жестких дисках объединяют в одном корпусе носитель (носители) и устройство чтения/записи, а также, нередко, и интерфейсную часть, называемую собственно контроллером жесткого диска. Типичной конструкцией жесткого диска является исполнение в виде одного устройства - камеры, внутри которой находится один или более дисковых носителей насаженных на один шпиндель и блок головок чтения/записи с их общим приводящим механизмом. Обычно, рядом с камерой носителей и головок располагаются схемы управления головками, дисками и, часто, интерфейсная часть и/или контроллер. На интерфейсной карте устройства располагается собственно интерфейс дискового устройства, а контроллер с его интерфейсом располагается на самом устройстве. С интерфейсным адаптером схемы накопителя соединяются при помощи комплекта шлейфов.
Информация заносится на концентрические дорожки, равномерно распределенные по всему носителю. В случае большего, чем один диск, числа носителей все дорожки, находящиеся одна под другой, называются цилиндром. Операции чтения/записи производятся подряд над всеми дорожками цилиндра, после чего головки перемещаются на новую позицию.
Герметичная камера предохраняет носители не только от проникновения механических частиц пыли, но и от воздействия электромагнитных полей. Необходимо заметить, что камера не является абсолютно герметичной т.к. соединяется с окружающей атмосферой при помощи специального фильтра, уравнивающего давление внутри и снаружи камеры. Однако, воздух внутри камеры максимально очищен от пыли, т.к. малейшие частички могут привести к порче магнитного покрытия дисков и потере данных и работоспособности устройства.
Диски вращаются постоянно, а скорость вращения носителей довольно высокая (от 4500 до 10000 об/мин), что обеспечивает высокую скорость чтения/записи. По величине диаметра носителя чаще других производятся 5.25, 3.14, 2.3 дюймовые диски. На диаметр носителей несменных жестких дисков не накладывается никакого ограничения со стороны совместимости и переносимости носителя, за исключением форм-факторов корпуса ПК, поэтому, производители выбирают его согласно собственным соображениям.
В настоящее время, для позиционирования головок чтения/записи, наиболее часто, применяются шаговые и линейные двигатели механизмов позиционирования и механизмы перемещения головок в целом.
В системах с шаговым механизмом и двигателем головки перемещаются на определенную величину, соответствующую расстоянию между дорожками. Дискретность шагов зависит либо от характеристик шагового двигателя, либо задается серво-метками на диске, которые могут иметь магнитную или оптическую природу. Для считывания магнитных меток используется дополнительная серво-головка, а для считывания оптических - специальные оптические датчики.
В системах с линейным приводом головки перемещаются электромагнитом, а для определения необходимого положения служат специальные сервисные сигналы, записанные на носитель при его производстве и считываемые при позиционировании головок. Во многих устройствах для серво-сигналов используется целая поверхность и специальная головка или оптический датчик. Такой способ организации серво-данных носит название выделенная запись серво-сигналов. Если серво-сигналы записываются на те же дорожки, что и данные и для них выделяется специальный серво-сектор, а чтение производится теми же головками, что и чтение данных, то такой механизм называется встроенная запись серво-сигналов. Выделенная запись обеспечивает более высокое быстродействие, а встроенная - повышает емкость устройства.
Линейные приводы перемещают головки значительно быстрее, чем шаговые, кроме того, они позволяют производить небольшие радиальные перемещения "внутри" дорожки, давая возможность отследить центр окружности серводорожки. Этим достигается положение головки, наилучшее для считывания с каждой дорожки, что значительно повышает достоверность считываемых данных и исключает необходимость временных затрат на процедуры коррекции. Как правило, все устройства с линейным приводом имеют автоматический механизм парковки головок чтения/записи при отключении питания устройства.
Парковкой головок называют процесс их перемещения в безопасное положение. Это - так называемое "парковочное" положение головок в той области дисков, где ложатся головки. Там, обычно, не записано никакой информации, кроме серво-данных, это специальная "посадочная зона" (Landing Zone). Для фиксации привода головок в этом положении в большинстве ЖД используется маленький постоянный магнит, когда головки принимают парковочное положение - этот магнит соприкасается с основанием корпуса и удерживает позиционер головок от ненужных колебаний. При запуске накопителя схема управления линейным двигателем "отрывает" фиксатор, подавая на двигатель, позиционирующий головки, усиленный импульс тока. В ряде накопителей используются и другие способы фиксации - основанные, например, на воздушном потоке, создаваемом вращением дисков. В запаркованном состоянии накопитель можно транспортировать при достаточно плохих физических условиях (вибрация, удары, сотрясения), т.к. нет опасности повреждения поверхности носителя головками. В настоящее время на всех современных устройствах парковка головок накопителей производится автоматически внутренними схемами контроллера при отключении питания и не требует для этого никаких дополнительных программных операций, как это было с первыми моделями.
Во время работы все механические части накопителя подвергаются тепловому расширению, и расстояния между дорожками, осями шпинделя и позиционером головок чтения/записи меняется. В общем случае это никак не влияет на работу накопителя, поскольку для стабилизации используются обратные связи, однако некоторые модели время от времени выполняют рекалибровку привода головок, сопровождаемую характерным звуком, напоминающим звук при первичном старте, подстраивая систему к изменившимся расстояниям.
Плата электроники современного накопителя на жестких магнитных дисках представляет собой самостоятельный микрокомпьютер с собственным процессором, памятью, устройствами ввода/вывода и прочими традиционными атрибутами присущими компьютеру. На плате могут располагаться множество переключателей и перемычек, однако не все из них предназначены для использования пользователем. Как правило, руководства пользователя описывают назначение только перемычек, связанных с выбором логического адреса устройства и режима его работы, а для накопителей с интерфейсом SCSI - и перемычки, отвечающие за управление резисторной сборкой (стабилизирующей нагрузкой в цепи).
Контроллеры жестких дисков
Собственно контроллер накопителя физически расположен на плате электроники и предназначен для обеспечения операций преобразования и пересылке информации от головок чтения/записи к интерфейсу накопителя. Часто, контроллером называют интерфейс накопителя или интерфейс ПК с накопителем, что в общем не верно. Контроллер жестких дисков представляет собой сложнейшее устройство - микрокомпьютер, со своим процессором, ОЗУ и ПЗУ, схемами и системой ввода/вывода и т.п. Однако, в большинстве случаев, производители размещают их в одном или двух микрочипах.
Контроллер занимается множеством операций преобразования потока данных. Так как длинна дорожек неравна, данные на различные дорожки необходимо записывать неравномерно. Это становится проблемой, по сравнению с гибкими дисками, для носителей с высокой плотностью записи (число дорожек более 1000). Простые контроллеры, как правило, записывают одно и тоже количество информации на каждую дорожку, независимо от ее длинны. Для этого контроллер упаковывает данные более плотно, начиная с определенной по счету дорожки. Цилиндр, с которого начинается более плотная упаковка данных, называется цилиндром начальной прекомпенсации (Starting Cylinder for Precompensation - SCP). Для компенсации искажения информации при чтении, запись данных производится с предварительным смещением битов, которое учитывает искажения.
Многие производители создают устройства, которые записывают различный объем информации на внутренние и внешние дорожки за счет размещения на них разного числа секторов. Это возможно, благодаря аппаратному скрытию от программ и пользователя физических характеристик устройства на уровне его контроллера и/или интерфейса (устройства с IDE, EIDE и SCSI интерфейсами). Поэтому, накопители, как правило, имеют различное физическое и логическое число цилиндров.
Также, в силу исторических причин, многие операционные системы, работающие с накопителями на ЖМД через BIOS, разработаны таким образом, что не могут оперировать числом цилиндров более 1024. Поскольку в настоящее время, накопители больших объемов (более 1Мб) имеют более 1024 физических цилиндра, то применяется программный пересчет, при котором, накопитель определяется его контроллером и процедурами BIOS как имеющий не более 1024 цилиндра, но имеющий некоторое нереальное число головок, поверхностей и секторов. Функция же пересчета для отыскания нужного сектора ложится либо на BIOS ПК, либо на BIOS контроллера, либо на интерфейс.
Данные, записываемые в сектора, защищаются от некоторых ошибок чтения/записи при помощи расчета и записи вместе с ними контрольной суммы - кода контроля ошибок (Error Correction Code - ECC). Записывая байты на диск, адаптер производит накопление циклическим делением входных данных на специальный полином, остатка от деления, который представляет уникальную комбинацию бит и записывается контроллером вместе с данными. Число байт ECC для каждого устройства определяется видом используемого полинома. При считывании данных производится аналогичное накопление и расчет контрольной суммы. В случае несовпадения результатов рассчитываемого и хранимого с данными ECC, производится попытка восстановления - коррекции данных при помощи полинома, имеющихся данных и контрольной суммы. Число байт данных, которое может быть скорректировано, определяется порядком используемого полинома. Чем она выше, тем большее количество байт подряд может быть скорректировано, но тем длиннее и сам код ECC. Используются разные полиномы, и число байт ECC может быть от 4 до 8 и более. Число же бит информации, требуемое для записи одного байта, зависит от используемого метода кодирования. Необходимо отметить, что восстановление данных при помощи полинома и кода ECC происходит на уровне контроллера и прозрачно для программ и пользователя, однако, на основе процедур BIOS программным путем можно получить информацию о том, была ли произведена процедура коррекции.
Большинство современных накопителей поддерживают режимы работы контроллеров Ultra DMA, DMA2, и PIO. DMA - Direct Memory Access - прямой доступ к памяти - режим взаимодействия контроллера накопителя и интерфейса ПК, при котором обмен данными по интерфейсу осуществляется без участия центрального процессора ПК. Режим DMA позволяет заметно разгрузить процессор по сравнению с режимом PIO (Programmed Input/Output - программный ввод/вывод), при котором все пересылки выполняет непосредственно центральный процессор ПК. Это достигается за счет использования специального контроллера и канала прямого доступа к оперативной памяти ПК, без участи центрального процессора. Все современные накопители могут работать в режиме DMA2, если это поддерживается операционной системой, а скорость обмена при этом может достигать, в зависимости от модели, 16.6 Мб/с. А накопители и системы с поддержкой режима Ultra DMA, при использовании соответствующего драйвера, могут передавать и принимать информацию со скоростью 33.3 Мб/с. Однако, это лишь предельно возможные скорости обмена данными контроллера с буфером накопителя. Реальная же скорость чтения/записи даже в лучших моделях с интерфейсом ATA в настоящее время не превышает 10-11 Мб/с. Основная нагрузка при работе ложится именно на чтение/запись, передача данных в буфер и из буфера занимает лишь малую часть этого времени, и сам факт перехода на Ultra DMA, как правило, дает прирост лишь в единицы процентов. Но накопители с Ultra DMA, обычно, имеют высокую скорость вращения шпинделя, а, следовательно - и более высокую скорость чтения/записи.
Работа накопителя
Теперь рассмотрим процесс работы накопителя от запуска до остановки. При подаче питающих напряжений начинает работать микропроцессор контроллера. Вначале он, как и компьютер, выполняет самотестирование и в случае его успеха запускает схему управления двигателем вращения шпинделя. Диски начинают раскручиваться, увлекая за собой прилегающие к поверхностям слои воздуха, и при достижении некоторой скорости давление набегающего на головки потока воздуха преодолевает силу пружин, прижимающих их к дискам, и головки "всплывают", поднимаясь над дисками на доли микрона. С этого момента, вплоть до остановки дисков, головки не касаются дисков и "парят" над поверхностями, поэтому ни диски, ни сами головки практически не изнашиваются. Тем временем, двигатель шпинделя продолжает раскручивать поверхности. Его скорость постепенно приближается к номинальной (тысячи оборотов в минуту). В это время накопитель потребляет максимум питающего напряжения и создает предельную нагрузку на блок питания компьютера по напряжению 12 Вольт. Поскольку в любой зоне дисков присутствует серворазметка, то сервоимпульсы начинают поступать с головок сразу же после начала вращения, и по их частоте контроллер судит о скорости вращения дисков. Система стабилизации вращения следит за потоком сервоимпульсов, и при достижении номинальной скорости происходит так называемый "захват", при котором любое отклонение скорости вращения сразу же корректируется изменением тока в обмотках двигателя. После достижения шпинделем номинальной скорости вращения освобождается фиксатор позиционера головок чтения/записи, и система его управления проверяет способность поворачиваться и удерживаться на выбранной дорожке путем выборочного произвольного позиционирования. При этом делается серия быстрых поворотов в разные стороны, что на слух выглядит как характерное "тарахтение", слышимое через несколько секунд после старта. Во время перемещения позиционера головок происходит слежение за поступающими с головок серво-импульсами, и система управления всегда "знает", над сколькими дорожками прошли головки. Аналогично происходит и удержание головок над выбранной дорожкой - при отклонении от центра дорожки изменяется во времени величина и форма серво-импульсов. Система управления может ликвидировать отклонение, изменяя ток в обмотках двигателя позиционера головок. Во время тестирования привода головок заодно делается и его калибровка - подбор параметров управляющих сигналов для наиболее быстрого и точного перемещения позиционера при минимальном количестве "промахов". Здесь нужно сказать, что микрокомпьютер ЖД, как и компьютер, имеет ПЗУ, в котором записана BIOS накопителя - набор программ для начального запуска и управления во время работы, и ОЗУ, в которое после раскрутки механической системы загружаются остальные части управляющих программ. Кроме всего прочего, в ОЗУ загружается так называемая карта переназначения дефектных секторов, в которой отмечены дефектные секторы, выявленные при заводской разметке дисков. Эти секторы исключаются из работы и иногда подменяются резервными, которые имеются на каждой дорожке и в специальных резервных зонах каждого диска. Таким образом, даже если диски и имеют дефекты (а при современной плотности записи и массовом производстве поверхностей носителей они имеют их всегда), для пользователя создается впечатление "чистого" диска, свободного от сбойных секторов. Более того – на каждом диске накопителя имеется некоторый запас резервных секторов, которыми можно подменить и появляющиеся впоследствии дефекты. Для одних накопителей это, возможно сделать под управлением специальных программ, для других - автоматически в процессе работы. Хранение подобной служебной информации на дисках, кроме очевидной выгоды, имеет и свои недостатки - при ее порче микрокомпьютер не сможет правильно запуститься, и, даже, если все информационные секторы не повреждены, восстановить их можно будет только на специальном заводском стенде.
После начальной настройки электроники и механики микрокомпьютер ЖД переходит в режим ожидания команд контроллера, расположенного на системной плате или интерфейсной карте, который в свою очередь программируется процедурами собственной BIOS или BIOS компьютера под управлением ОС. Получив команду, он позиционирует на нужный цилиндр, по сервоимпульсам отыскивает нужную дорожку, дожидается, пока до головки дойдет нужный сектор, и выполняет считывание или запись информации. Если контроллер запросил чтение/запись не одного сектора, а нескольких - накопитель может работать в блочном режиме, используя ОЗУ в качестве буфера и совмещая чтение/запись нескольких секторов с передачей информации к контроллеру или от него.
Современные накопители (как ATA, так и SCSI) поддерживают развитую систему команд управления устройством, среди которых имеются и такие, которые позволяют остановить вращение шпинделя и перевести накопитель в ждущий режим. Данный режим используется ПО ОС и BIOS’ов ПК для обеспечения стандартов сохранения энергии и работы процедур системы сохранения энергии, отключающих накопитель через некоторое время после ожидания его использования. Необходимо отметить, что не следует злоупотреблять частой остановкой и включением накопителя, т.к. именно во время разгона накопитель работает в форсированном режиме и изнашивается сильнее, нежели при нормальной эксплуатации в полностью рабочем активном состоянии. Использовать возможности сохранения энергии процедур BIOS и ОС следует лишь на машинах-серверах, работающих круглосуточно, дисковые операции, на которых могут не выполняться по нескольку часов, в то время как, вся система должна находиться в состоянии полной готовности.
При выключении питания двигатель шпинделя работает в режиме генератора, обеспечивая питание плат электроники на время, необходимое для корректного завершения работы. Прежде всего, блокируется подача тока записи в магнитные головки, чтобы они не испортили информацию на поверхностях, а остаток энергии подается в обмотки привода головок, толкая их к центру дисков (в этом движении головкам помогает и естественная скатывающая сила, возникающая при вращении дисков). Как правило, для того чтобы запарковать головки достаточно одной скатывающей силы. Дойдя до посадочной зоны, привод головок защелкивается магнитным или механическим фиксатором еще до того, как головки успеют коснуться поверхности в результате падения скорости вращения дисков. В этом и состоит суть "автопарковки" - любой исправный накопитель всегда запаркует головки, как бы внезапно не было выключено питание, однако, если в этот момент происходила запись информации, то для пользователя последствия могут быть весьма печальными из-за недописанных или необновленных, как областей данных, так и управляющих структур файловой системы ПК, независимо от типа и вида установленной ОС.