Бесплатная программа для диагностики жестких дисков R.tester

Бесплатная программа для восстановления файлов R.saver

Неофициальный блог R.LAB, заходите!

Восстановление данных
восстановление данных
Звоните нам в Москве: +7(495) 230−1000

Треки и зоны жёсткого диска

Основная цель данной статьи — показать, как происходят процессы чтения и записи данных на современных жёстких дисках. Из статьи вы узнаете о таких вещах, как: зоны, треки, сектора, сервосистема, про изменяющуюся плотность и о других вещах.

Как вы, наверное, знаете, информация хранится на пластинах, и она записывается посредством магнитных головок пока пластины вращаются. Как любое устройство, которое способно хранить и получать информацию, жёсткий диск должен записывать данные по заданным алгоритмам, чтобы потом суметь прочитать их. Накопитель пишет определенные куски информации в определенные временные рамки, поэтому для прочтения этих данных он рассчитывает и синхронизирует время, читает куски информации в конкретные временные интервалы и декодирует их.

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

Вот, как это выглядит на поверхности пластин:


surface

Чёрные точки показывают начало записи с каждым импульсом генератора. Красный круг представляет путь (точнее, один из путей), который проходит головка во время записи данных. Чёрные круги представляют внутренний и внешний диаметры пластин (ID и IO соответственно).

Как вы можете видеть, частота записи одинакова для всей поверхности пластин, но плотность записи не будет одинаковой из-за того, что чем дальше головки отходят от центра, тем выше линейная скорость пластины в этой точке (даже если радиальная скорость движения пластин одинакова). Плотность, которая лежит на пути движения головки, измеряется в битах на дюйм, или BPI. Путь, который делает головка во время полета над поверхностью, называется треком.

Появляется первая проблема.


problem

Как вы можете видеть на этом графике, с одинаковой частотой записи диск теряет примерно половину поверхности пластины.

Давайте посмотрим, что будет, если мы виртуально разделим пластину на два кольца, и внешнее кольцо будет иметь вдвое большую частоту записи, чем внутреннее.


helps

Виртуальные кольца помечены разными цветами. Частота на внешнем кольце в два раза выше, чем была раньше, что помогает поместить больше данных на нем.

Вот, как это будет выглядеть на графике:


2zone

Воображаемые кольца с различными частотами записи называются Зонами. Зона 0 означает внешнее кольцо, а зона 1 означает внутреннее кольцо (нумерация идёт с внешнего кольца ко внутреннему, начиная с нулевой зоны). Использование зонного распределения позволяет хранить большее количество данных на поверхностях пластин и делает использование пластин более эффективным.

Современные жёсткие диски имеют от 15 зон и более, что позволяет использовать диски очень эффективно. Однако если вы посмотрите на зонное распределение у реального диска, вы увидите довольно странную форму графика, например:


13zone

BPI будет неравномерным на разных зонах. Существует несколько причин, по которым BPI сильно уменьшается ближе к внешнему радиусу.

Во-первых, для того чтобы поддерживать высокий BPI, диску приходится увеличивать частоту записи ближе к внешнему радиусу. Высокая частота осложняет работу канала чтения, когда необходимо получить данные. Выше определенной частоты канал чтения попросту не может различать куски данных и при чтении появляется слишком много ошибок. Параметр для обозначения процента ошибок называется BER (Bits Error Rate — коэффициент ошибок чтения). Для производителей дисков именно BER является главной сложностью. Производителям необходимо удерживать этот коэффициент на одном уровне независимо от радиуса диска. Это приводит к уменьшению частот ближе к внешнему радиусу.

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

Хотя её ширина и постоянна, угол к трекам изменяется и зависит от радиуса диска.


2thing

Трек малой ширины может передать меньше магнитной энергии считывающей головке, что приводит к ухудшению качества чтения. Чтобы сделать процесс чтения более стабильным, необходимо понижать частоту записи на более тонких треках.

Давайте рассмотрим другую плотность, которая называется Tracks Per Inch (Количество треков на дюйм — TPI). TPI показывает, как много треков может быть помещено на каждый дюйм радиуса диска. TPI также является нелинейной величиной и также сильно уменьшается ближе к внешнему радиусу. Это происходит из-за того, что треки по форме отличаются от идеальных колец из-за различной ширины и могут быть не идеально центрированы, что приводит ко множеству проблем.


track

Треки имеют подобную форму из-за множества факторов. В основном эти факторы разделены на две группы. Первая группа называется Repeatable Runout (Повторяемый уход или RRO), и примерами этой группы являются: сдвиг пластин и нерегулярность геометрии пластин. Вторая группа называется Non-Repeatable Runout (Неповторяемый уход или NRRO), примеры: вертикальные и горизонтальные вибрации пластин, колебания воздуха. Так как RRO и NRRO ближе к внешнему радиусу, производителям дисков приходится увеличивать расстояние между треками ближе к внешнему радиусу, что приводит к падению TPI. Также мы уже знаем, что внешние треки более тонкие, что также уменьшает TPI.

Так как реальные треки не идеально круглые, головкам приходится постоянно корректировать свое положение для того, чтобы оставаться в центре трека, когда это необходимо. Для этого диск создает сигнал об ошибках позиционирования или Position Error Signal (PES), который показывает, насколько сильно головки отошли от трека в данный момент.

Для того, чтобы генерировать PES сигнал, перемещаться между треками, искать треки или подстраивать скорость вращения двигателя, диск использует специальную систему координат, которая называется сервосистема. Современные диски используют встроенную сервосистему, что означает, что информация сервосистемы хранится на каждой поверхности дисков. Сервосистема может быть записана только на заводе и не может быть исправлена или перезаписана диском во время обычной работы. Если сервосистема серьезно повредится, диск можно считать «мертвым», что не очень хорошо, но именно так работают современные жёсткие диски.

Обычно существует три пути для записи сервометок на пластины:

  1. С помощью серворайтера. Серворайтер (или STW) — это специальное устройство, которое ведётся лазерами и имеет специальную пишущую головку на специальном креплении. Преимущества этого метода: пишущая головка STW обычно тоньше, чем пишущая головка диска, и из-за этого диск может поместить больше серво-треков и большее количество этих треков упрощает диску поиск нужных треков; с помощью STW возможно создать все сервотреки одной ширины, так как крепление головок STW может вращаться, что приводит к равномерному BER на всех треках. Минусы этого метода: STW требуется записывать серво-треки на все поверхности дисков, что занимает много времени. Для производителей дисков это невыгодно. Также серво информация пишется на пластины перед сборкой диска и требуется специальная микропрограмма для подобной работы.
  2. С помощью оригинального блока магнитных головок, ведомых специальным устройством (похожим на STW). Вы наверняка видели диски, у которых имеется специальное «смотровое окошко» в нижней части гермоблока. Эти отверстия сделаны специально для управления блока магнитных головок во время процесса записи сервотрека. Современные предусилители имеют специальный режим, при котором они включают запись сразу по всем головкам, и пишется вся поступающая информация сразу на все поверхности пластин. Преимущество этого метода в том, что он быстрее и дешевле первого способа; также микропрограмма накопителя может быть менее сложной из-за того, что диск пишет сервометки после того, как он уже собран. Минусы метода: диску все равно требуется специальное устройство для записи сервометок и подобное устройство очень дорогое; диск с сервометками, записанными после сборки, имеет меньшие способности по уменьшению проблем из-за геометрических неравномеростей, микропрограмма попросту не может справиться с ними.
  3. Используя оригинальные головки, управляемые специальным шаблоном, который записан на одной из поверхностей. Этот метод также называется Self Servo Writing или SSW. Идея этого метода заключается в том, что записывается специальный шаблон на одну из поверхностей диска с помощью STW (перед или после сборки), после чего диск собирается (если необходимо), и диск самостоятельно пишет сервометки, используя специальный режим предусилителя. Плюсы метода заключаются в том, что это самый дешёвый способ (запись одного шаблона намного быстрее и не требует специальных дорогостоящих STW) и, т.к. диск пишет сервотреки после сборки, микропрограмма может быть менее сложной. Минусы метода: диск после сборки намного менее устойчив к геометрическим неравномерностям, которые могут возникнуть после сборки (микропрограмма попросту не справится с ними).

На следующей картинке показан пример сервосистемы:


servo

Чёрные точки означают сервосектора, красная линия показывает сервотрек, а зеленая означает сервосекторы одинакового номера на всех треках. Такая линия называется «Клин» (Wedge). Слово «сектор» означает логически завершенную часть данных. Сектора одного типа обычно имеют одинаковую логическую длину. Сервосектора также называются сервограницами или сервометками.

Как вы можете видеть, сервосектора обычно пишутся с одной заданной частотой, и это основное правило сервосистемы. Используя это знание диск может подстраивать скорость вращения двигателя и также синхронизировать внутренние счетчики с частотой записи данных в каждой зоне. На современных дисках частота записи сервосекторов обычно около 100 КГц. Обычно на один сервотрек приходится 200-300 сервосекторов. Однако, как видно на рисунках, на конкретном диске (точнее на всех дисках одной модели) все сервотреки имеют одинаковое количество сервосекторов, а также все сектора в одном «Клине» (Wedge) имеют одинаковых номер сектора. Это знание помогает диску определять текущую позицию.

В реальной жизни клины выглядят не совсем как прямые линии, а больше похожи на арки, так как когда блок магнитных головок или STW двигается для создания следующего трека, пластины также поворачиваются на определенный градус. Это видно на картинке:


wedges

Так выглядят реальные клины на дисках.

Из чего состоит сервосектор:


sector

Это обычный сервосектор. Формат сектора может отличаться на разных моделях.

Преамбула автоматического контроля усиления (AGC preamble) — это сигнал, записанный с одинаковой частотой и амплитудой. Он используется для подготовки диска для получения информации из сервосектора.

AM&Index используется для обозначения начала поля с кодом Грея. Сигнал Index расположен только в сервосекторах нулевого клина (остальные сектора имеют только сигнал AM), так что подобный сигнал генерируется лишь раз за оборот. С помощью этого сигнала диск может легко подстроить скорость вращения, или же прочитать целый трек во внутренний буфер.

Номер сервотрека закодирован кодом Грея с избыточностью (специальный код, защищенный от помех). Диску требуется подобное кодирование для очень быстрого и точного чтения номера сервотрека.

Сигналы A, B, C, D также известны как сигналы позиции. Это специальный тип сигналов, записанных на постоянной частоте и с постоянной амплитудой, но некоторые из сигналов записаны вне трека (см. картинку ниже). Диск использует эти сигналы для того, чтобы генерировать PES.

Сигналом Padding помечается конец сервосектора.


positioning

Картинка показывает три сектора одного клина.

Сервотреки на этой картинке показаны без места между ними, но на самом деле все треки имеют свободное пространство между собой.

Как вы видите, некоторые сигналы A-B-C-D записаны вне треков. Чтобы это сделать, STW или диску приходится записывать каждый трек в несколько проходов.

Допустим, диску необходимо оставаться в центре сервотрека с номером N. Сигнал «А» должен быть прочитан с половиной амплитуды, при этом увеличение амплитуды будет означать уход головок с нужного трека в правую сторону. Аналогично обстоят дела с сигналом «B», только увеличение амплитуды будет говорить уже об уходе головок в левую сторону. Сигнал «C» должен быть прочитан с полной амплитудой, а сигнал «D» — с амплитудой близкой к нулю. Таким образом диск определяет положение головок.

Теперь давайте поговорим об информации. Как диск её сохраняет? Пользовательская информация хранится в секторах данных, а те, в свою очередь, хранятся в треках данных.

Изображение ниже показывает, как выглядит сектор с данными на современном диске:


data

AGC preamble используется для автоматического контроля усиления. Sync Mark — это специальное поле с постоянной цифровой информацией. Так как это заранее определённое поле с постоянной информацией во всех секторах с данными, диск может использовать это для настройки детектора PRML (современные диски используют PRML кодирование для сохранения данных на пластинах), также диск знает, что данные идут сразу после этого поля и использует это для синхронизации декодирования. За пользовательскими данными могут следовать несколько полей. В данном секторе за пользовательскими данными идут: DIF — поле целостности данных, IOEDC — код коррекции ошибок ввода-вывода и ECC — код коррекции ошибок.

ECC позволяет находить и корректировать «на лету», если возможно, ошибки, которые могут возникать при чтении секторов данных с поверхности пластин.

Поле IOEDC проверяет данные, которые поступают с форматтера диска (система чтения-записи) в дешифратор, пока они не достигнут кэш память, а затем кадровый буфер интерфейса диска.

Поле DIF проверяет данные, которые поступают из кадрового буфера и затем идут через интерфейсный кабель к управляющему устройству (проверка DIF возможна только на некоторых интерфейсах, таких как SAS или FC). Также для защиты данных диск генерирует CRC (контрольную сумму), когда данные выходят из кадрового буфера по кабелю. Все современные интерфейсы поддерживают проверку контрольной суммы. CRC не записывается в сектор данных, а считается «на лету».

Как вы видите, проверок не может быть слишком много, если вопрос идет о целостности данных.

Когда управляющее устройство посылает данные на диск для записи, данные не записываются «как есть», а изменяются специальным образом. Обычно это означает, что данные пройдут через рандомайзер и RLL кодировщик. Но зачем? Давайте представим, что вы хотите записать один сектор, заполненный нулями, и диск запишет эти данные «как есть», а затем попытается их считать. Возникает проблема: диск может потерять синхронизацию, если во время чтения сигнал не изменятся довольно долгое время, диск становится слепым и не сможет читать данные. Для исправления подобной проблемы диск использует RLL кодировщик, который смешивает данные с избыточной информацией и даёт уверенность, что критическое количество бит одинаковой информации для сбоя синхронизации не произойдет. Рандомайзер перед RLL упрощает жизнь диску, который может использовать менее сложный RLL энкодер.

Поле ECC — жизненная необходимость для НЖМД, так как данные пишутся на высокой частоте (вплоть до ГГц) почти на границе возможностей диска. Когда диск читает данные, довольно высока вероятность, что данные в секторе прочитаются с ошибками, а ECC избавит от них, скорректировав данные на лету. Подобная технология помогает уместить так много данных, как только возможно. Однако головки в дисках не могут быть абсолютно одинаковыми; каждая головка обладает своими уникальными электрическими, магнитными и геометрическими характеристиками. Отсюда вытекает следующая проблема: давайте представим диск с 4мя головками внутри него, и нулевая головка может уместить 1000 секторов на трек данных, первая головка может уместить 950 секторов, вторая — 900, третья — 1050. Для того чтобы скорость записи была постоянна по всем головкам, необходимо, чтобы у всех головок была минимальная плотность 900 секторов на трек (SPT). При этом не будут использоваться все возможности диска. Подобная схема применялась в более старых дисках, а современные диски могут выбирать свою собственную частоту записи для каждой головки отдельно в каждой зоне, и подобный метод называется VBPI (Variable Bits Per Inch) — изменяемое количество бит на дюйм. Таблицы зонного распределения содержат SPT для каждой головки в каждой зоне.

Еще одна особенность современных дисков: некоторые головки могут работать с большим TPI (количество треков на дюйм), а некоторые не могут. Поэтому современные НЖМД могут использовать различный TPI для различных головок и различных зон. Подобная функция называется VTPI (изменяемое количество треков на дюйм). Если у диска есть поддержка VTPI, то свободное пространство между треками будет отличаться на разных головках и на разных зонах, что приводит к логическому выводу: центры сервотреков и треков данных будут отличаться.

Взглянем на картинку:


conclusion

Сервотреки и треки данных на этой картинке включают в себя расстояния между треками.

Так как расстояние между треками данных будет больше, чем между сервотреками, треки с данными выглядят толще. Как мы знаем, диск может позиционироваться только на сервотреке, так как только на сервосекторах записаны поля позиционирования A-B-C-D. Однако как диск может читать и писать данные, как он может знать, где находится нужный трек? Все просто: диск просчитывает положения нужного трека. VCM контроллер позволяет отступать от центра трека, добавляя необходимый ток в цепь актуатора. Этот «шаг» называется DAC (цифро-аналоговый преобразователь). Каждый сервотрек может быть виртуально разделен на определенное количество DAC (например, 64, 128 или 256 DAC). Когда диску требуется считать данные, сначала диск считает ближайший сервотрек к данным, чтобы прыжок от центра сервотрека до центра трека данных был меньше или равен половине ширины сервотрека. Затем диск находит необходимый сервотрек, позиционирует головки на его центре и после этого сдвигает головки на рассчитанное количество DAC для того, чтобы попасть на центр нужного трека данных. Красные линии на картинке показывают путь головок к трекам с данными.

Жёсткие диски — точные устройства, и все их устройство работает, как швейцарские часы. Диск читает каждый сервосектор сервотрека, даже когда читает или пишет данные. Диск знает, когда будет следующий клин, потому что он рассчитывает это время. Чтение каждого сервосектора позволяет диску корректировать положение головок. Для того, чтобы сделать настолько сложную работу, диск разделяет процессы чтения данных и чтения сервометок. За чтение сервосекторов отвечает сервопроцессор, а специальный сигнал, Servo Gate, говорит ему, когда читать следующий сервосектор, а также когда стоит прекратить чтение. Форматтер может генерировать два сигнала: Read Gate и Write Gate, для чтения и для записи данных соответственно. Сигналы Gate относятся к «железной» части диска, и это позволяет начинать и прекращать работу канала записи-чтения и предусилителя, когда это необходимо. Например, пока поступает сигнал Gate, диск не может физически писать, так как предусилитель не позволит это сделать. Как вы можете заметить, так как Servo Gate останавливает форматтер, сервосектора не могут быть перезаписаны, если диск исправен.

Теперь вы понимаете, как диск вычисляет положение центра трека данных, и если он не окажется в расчетной позиции, прочитать данные будет невозможно. Именно поэтому жёсткие диски очень чувствительны к вибрациям и ударам.

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

Причина кроется в следующем:


reason

Пишущие головки защищены от магнитных волн читающих головок, а это приводит к зазору между ними.

Когда головки находятся над определенным треком в центре пластин, центры обеих головок будут над центром одного и того же трека, и диск сможет читать и писать в одно и то же время. Но если головки двинутся ближе к внешнему радиусу, центры головок будут смещены, что приведёт к тому, что одна из головок будет вне трека (до нескольких треков в сторону). Эта разница между центрами называется сдвигом MR. Этот сдвиг не является постоянной величиной и изменяется от трека к треку; он может быть как положительной величиной, так и отрицательной, для внутреннего и внешнего радиусов соответственно. Также сдвиг MR изменятся в зависимости от ширины треков и от их положения.

Ещё один параметр называется «PLO Delay» или «задержка чтения-записи». Он показывает разницу между появлением Read Gate и Write Gate. Как мы знаем, каждая головка обладает уникальными параметрами, а значит, PLO Delay и сдвиг MR будет разным для каждой из головок. Диск хранит среднее значение «MR Offset» и «PLO Delay» для каждой из зон каждой из головок в специальных таблицах адаптивов (адаптивы также включают некоторые другие важные параметры). Адаптивы могут храниться на пластинах в специальной служебной области (SA). Служебная область хранит части микропрограммы диска. Тут появляется новая проблема: диск изначально не может читать и писать данные без адаптивных параметров, но, чтобы прочитать адаптивные параметры, диску нужно прочитать служебную область диска.

Для решения проблемы производители дисков поступили так: служебная область форматируется с определенными и заранее заданными параметрами TPI и BPI в определенной области пластин, что позволяет диску прочитать служебную область без использования адаптивов. Большинство современных дисков пишут служебную область в центре пластин, так что диск сможет прочитать служебные модули без адаптивов. Но для доступа к пользовательским данным диску необходимо рассчитать DAC для операций чтения и записи отдельно, включая MR сдвиг. Если адаптивная информация будет утеряна, доступ к пользовательским данным может быть утерян навсегда. Некоторые диски включают часть адаптивной информации в ПЗУ, что делает платы от этих дисков уникальными для каждого из дисков.

В окончании статьи хотелось бы рассказать о зигзагообразности чтения/записи. Представьте диск с 4-мя магнитными головками, и вы хотите добиться линейных чтения и записи. Разумеется, диску необходимо использовать все 4 головки, и понятно, что вы хотите получить максимально возможную скорость операций. Для уменьшения движения головок диску необходимо переключаться с одной головки на другую, и логично было бы читать все треки одной головки до переключения на другую, но при этом первая головка с большой вероятностью будет наиболее загруженной, по сравнению с остальными.

Для уменьшения движения головок и для выравнивания загруженности каждой из них диски используют различные схемы чтения и записи.

Для примера взгляните на картинку:


clever

Красные линии показывают путь, по которому пройдёт блок магнитных головок во время чтения или записи. Как вы можете видеть, путь зигзагообразный. Количество треков в зигзаге может отличаться на разных дисках и на современных дисках также может быть уникальным для каждой головки каждого диска (поскольку головки имеют различные параметры TPI и изменяющиеся зигзаги помогут уменьшить движения БМГ).


Автор статьи Артём Рубцов.


Перепечатка или цитирование разрешены при условии сохранения ссылки на первоисточник: R.LAB, восстановление информации.






yuleek28.03.2019


 
Наша программа обучения в Обучение восстановлению данных в МФТИ.
Последние статьи
Треки и зоны жёсткого диска
25.03.2019 г.
Введение в восстановление данных с жёстких дисков с помощью PC-3000
13.03.2019 г.
Частые вопросы по R.saver
16.09.2016 г.
Популярные статьи
NTLDR Is Missing
1252181 просмотров
Простое восстановление данных
1062233 просмотров
Восстановление данных с DVD и CD дисков
504955 просмотров
Восстановление RAID массивов простыми методами
436082 просмотров
Программный ремонт USB flash в Linux
403225 просмотров
Яндекс.Метрика
Восстановление данных - R.LAB
Москва, Коровий Вал, д. 1А  (схема проезда). Телефон: +7 (495) 230−1000; e-mail: 
Другие города »