Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электроника и микропроцессорная техника.doc
Скачиваний:
21
Добавлен:
21.11.2018
Размер:
1.24 Mб
Скачать

7. Накопители информации

Для записи данных на маг­нитный носитель необходимо сформировать код, который кроме непосредственно данных должен содержать и синхрони­зирующие сигналы. Предельно допустимую плотность измене­ния состояния намагниченности (Plux Density) определяют конст­руктивные особенности накопи­теля и физические свойства магнитного слоя. Эта плотность измеряется в количестве зон с различным состоянием намаг­ниченности на дюйм длины тре­ка (FCI — Flux Changes per Inch). В современных накопителях ве­личина FCI может достигать не­скольких тысяч.

Для записи информации на диск используются различные схемы кодирования (Data Encoding Scheme), различающи­еся по сложности реализации и эффективности работы. В пер­вых накопителях использова­лась частотная модуляция (FM — Frequency Modulation). При этом методе для каждого бита на треке отводится ячейка с ок­нами для представления бита и синхросигнала.

Модифицированная частотная модуляция (MFM — Modified Frequency Modulation) позволя­ет удвоить плотность записи при той же плотности измене­ния потока за счет того, что син­хросигнал вводится только при кодировании подряд следую­щих нулевых бит. Более эффективны схемы группового кодирования, при которых сектор предварительно разбивается на группы по не­сколько бит, которые кодируют­ся по определенным правилам.

Схема кодирования RLL (Run Length Limited) построена на ог­раничении длины неперемагничиваемых участков трека. Наи­более популярна схема RLL 2.7, в которой число таких ячеек ле­жит в диапазоне от двух до се­ми. Для накопителей с высокой плотностью используется, как правило, схема RLL 1.7, обеспе­чивающая большую надежность считывания.

Новое слово в технике запи­си и чтения информации с маг­нитных носителей привнесла технология PRML (Partial Response Maximum Likelihood), пришедшая из обла­сти телекоммуникаций. Тради­ционная технология считывания использует аналоговые пиковые детекторы сигналов воспроиз­ведения, последние декодиру­ются схемами считывания. Од­нако повышение плотности хра­нения данных приводит и к уси­лению межбитных помех, в ре­зультате чего задача считыва­ния усложняется. Технология PRML состоит из двух частей.

PR (Partial Response) — оциф­ровка аналогового сигнала с го­ловки и запись последователь­ности этих выборок в буфер. Для оцифровки больше всего подходит сигнал с магнитнорезистивной головки, поскольку его форма повторяет форму на­пряженности магнитного поля, в то время как индуктивные го­ловки имеют на выходе производную от напряженности. Следующий этап считывания предполагает цифровую фильтрацию записанного сигнала.

Вторая часть аббревиатуры— ML (Maximum Likelihood) — как раз и означает, что принятые фрагменты сигнала трактуются как группы закодированных бит по максимальной «похожести» формы отклика. Современная техника цифровой обработки позволяет выполнять высокоскоростное декодиро­вание PRML, обеспе­чивая скорость считывания да­же выше, чем при аналоговом декодировании RLL.

Структура трека — после­довательность секторов — за­дается при форматировании трека, а его на­чало определя­ется контролле­ром по сигналу индексного дат­чика. Нумерация секторов также задается контроллеру при фор­матировании и может быть дос­таточно произвольной, важен лишь тот факт, чтобы все секто­ра трека имели уникальные но­мера в пределах допустимого диапазона. При обращении к сектору он ищется по иденти­фикатору, если же после одного или нескольких оборотов диска сектор с требуемым номером не был найден, контроллер зафик­сирует ошибку Sector Not Found сектор не найден. Задача по­иска сектора по его заголовку, помещение в поле данных сек­тора записываемой информации, снабженной контрольным кодом, считывание записанной информации и ее проверка лежит на контроллере накопителя. Кроме того, конт­роллер отвечает за поиск ука­занного цилиндра и коммутаци­ей головок в процессе выбора затребованного трека.

Существует несколько способов оптимизации дисков, имеющих конечной целью повышение производительности системы за счет увеличения сред­ней скорости обмена данными. Время, затраченное на обмен данными одного сектора, скла­дывается из времени поиска ци­линдра (Seek Time), времени ожидания подхода сектора к го­ловке (Latency Time) и времени обмена данными сектора между накопителем и контроллером и между контрол­лером и памятью компьютера, ко­торая является источником и пунктом назначе­ния хранимых данных.

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

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

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

При неизменных механичес­ких параметрах накопителя на магнитных дисках и том же чис­ле секторов на треке, имеется возможность повысить скорость обмена блоками данных за счет особого расположения секто­ров.

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

1 9 17 8 16 7 15 6 14 5 13 4 12 3 11 2 10 1

