Смекни!
smekni.com

Накопители на жестких дисках (стр. 3 из 8)

В ЖД последнего поколения используются технологии PRML (Partial Response, Maximum Likelihood - максимальное правдоподобие при неполном отклике) и S.M.A.R.T. (Self Monitoring Analysis and Report Technology - технология самостоятельного слежения анализа и отчетности). Первая разработана по причине того, что при существующих плотностях записи уже невозможно четко и однозначно считывать сигнал с поверхности диска - уровень помех и искажений очень велик. Вместо прямого преобразования сигнала используется его сравнение с набором образцов, и на основании максимальной похожести (правдоподобия) делается заключение о приеме того или иного машинного слова.

Накопитель, в котором реализована технология S.M.A.R.T., ведет статистику своих рабочих параметров (количество стартов/остановок и наработанных часов, время разгона шпинделя, обнаруженные/исправленные физические ошибки и т.п.), которая регулярно сохраняется в перепрограммируемом ПЗУ или служебных зонах диска. Эта информация накапливается в течение всего периода эксплуатации и может быть в любой момент затребована программами анализа. По ней можно судить о состоянии механики, условиях эксплуатации или примерной вероятности выхода из строя.

Контроллеры жестких дисков

Собственно контроллер накопителя физически расположен на плате электроники и предназначен для обеспечения операций преобразования и пересылке информации от головок чтения/записи к интерфейсу накопителя. Часто, контроллером называют интерфейс накопителя или интерфейс ПК с накопителем, что в общем не верно. Контроллер жестких дисков представляет собой сложнейшее устройство - микрокомпьютер, со своим процессором, ОЗУ и ПЗУ, схемами и системой ввода/вывода и т.п.. Однако, в большинстве случаев, производители размещают их в одном или двух микро-чипах.

Контроллер занимается множеством операций преобразования потока данных. Так как длинна дорожек неравна, данные на различные дорожки необходимо записывать неравномерно. Это становится проблемой, по сравнению с гибкими дисками, для носителей с высокой плотностью записи (число дорожек более 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, обычно, имеют высокую скорость вращения шпинделя, а следовательно - и более высокую скорость чтения/записи.

Физическое хранение, методы кодирования информации

Как уже говорилось, информация на поверхностях накопителя хранится в виде последовательности мест с переменной намагниченностью, обеспечивающих непрерывный поток данных при считывании их при помощи последовательного чтения. Вся информация и места ее хранения делятся на служебную и пользовательскую информацию. Служебная и пользовательская информация хранится в областях дорожек называемых секторами. Каждый сектор содержит область пользовательских данных - место, куда можно записать информацию, доступную в последующем для чтения и зону серво-данных, записываемых один раз при физическом форматировании и однозначно идентифицирующих сектор и его параметры (используется или нет, физический адрес сектора, ЕСС код и т.п.). Вся серво-информация не доступна обычным процедурам чтения/записи и носит абсолютно уникальный характер в зависимости от модели и производителя накопителя.

В отличие от дискет и старых накопителей на ЖД, диски современных накопителей проходят первичную, или низкоуровневую, разметку (Low Level Formatting) на специальном заводском высокоточном технологическом стенде. В ходе этого процесса на диски записываются служебные метки - серво-информация, а также формируются привычные дорожки и сектора. Таким образом, если когда-то новый накопитель нужно было "форматировать на низком уровне", то сейчас этого делать не то чтобы не нужно - это просто невозможно без специального сложнейшего оборудования, а различные "программы низкоуровневого форматирования" чаще всего просто обнуляют содержимое секторов с проверкой их читаемости, хотя порой могут и необратимо испортить служебную разметку и серво-информацию служебных секторов.

Появление различных методов кодирования данных секторов связано, прежде всего, с техническими особенностями устройств хранения и передачи информации и желанием производителей наиболее полно использовать физическое пространство носителей информации. В настоящее время используется несколько различных методов кодирования данных.

Частотная модуляция (Frequency Modulation - FM) - метод, используемый в накопителях на сменных магнитных дисках. Иначе, кодирование методом FM можно назвать кодированием с единичной плотностью. Метод предполагает запись на носитель в начале каждого битового элемента данных бита синхронизации. Битовый элемент определяется как минимальный интервал времени между битами данных, получаемый при постоянной скорости вращения диска носителя. Метод гарантирует, по меньшей мере, одну перемену направления магнитного потока за единицу времени вращения. Такой временной интервал соответствует максимальной продольной плотности магнитного потока 2330 перемен на 1 см и скорости передачи данных – 125 Кбит/сек. Простота кодирования и декодирования по методу FM определяется постоянной частотой следования синхроимпульсов. Однако, наличие этих бит синхронизации и является одним из недостатков данного метода, т.к. результирующий код малоэффективен с точки зрения компактности данных (половина пространства носителя занимается битами синхронизации). Это один из первых методов, не используемый в настоящее время в накопителях на ЖД.