Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Хранение информации на магнитных носителях




Как понятно из вышеприведенного описания общих принципов работы накопителей, записать и потом достоверно считать информацию с диска не так-то просто. Для записи данных необходимо сформировать последовательный код, который, кроме собственно записываемых данных, должен включать и синхронизирующие сигналы. Кроме того, напомним, что индуктивные считывающие головки воспринимают только факты изменения состояния намагниченности участков трека. Также учтем, что физическое исполнение — магнитные свойства носителя, конструкция головок, скорость движения, высота полета головок и т. п. — задает предельно достижимую плотность изменения состояния намагниченности (Flux Density), которую хотелось бы использовать максимально эффективно. Эта плотность измеряется в количестве зон с различным состоянием намагниченности на дюйм длины трека — FCI (Flux Changes per Inch — изменений потока на дюйм) и в современных накопителях достигает десятков тысяч. Для записи на диск используются различные схемы кодирования (Data Encoding Scheme), отличающиеся по сложности реализации и эффективности работы. В первых моделях накопителей использовалась частотная модуляция FM (Frequency Modulation). Здесь для каждого бита данных на треке отводится ячейка с окнами для представления бита и синхросигнала, что весьма неэффективно. Более эффективна модифицированная частотная модуляция MFM (Modified Frequency Modulation), в которой синхросигнал вводится только при кодировании подряд следующих нулевых бит, что позволяет удвоить плотность записи при той же плотности изменения потока. И FM и MFM являются схемами с побитным кодированием. Более эффективны схемы группового кодирования, при которых цепочка байт данных (сектор) предварительно разбивается на группы по несколько бит, которые кодируются по определенным правилам.

Как уже говорилось, информация на дисках записывается и считывается посекторно, и каждый сектор имеет определенную структуру (формат). В начале каждого сектора имеется заголовок, за которым следует поле данных и поле контрольного кода. В заголовке имеется поле идентификатора, включающее номер цилиндра, головки и собственно сектора. В этом же идентификаторе может содержаться и пометка о дефектности сектора, служащая указанием на невозможность его использования для хранения данных. Достоверность поля идентификатора проверяется с помощью контрольного кода заголовка. Заголовки секторов записываются только во время операции низкоуровневого форматирования, причем для всего трека сразу. При обращении к сектору по чтению или записи заголовок только считывается. Поле данных сектора отделено от заголовка небольшой зоной, необходимой для того, чтобы при операции записи головка (точнее, обслуживающая ее схема) могла успеть переключиться с режима чтения (заголовка) в режим записи (данных). Завершает сектор контрольный код поля данных — CRC (Cyclic Redundancy Check — циклический избыточный контроль) или ЕСС (Error Checking and Correcting — обнаружение и коррекция ошибок). CRC-код позволяет только обнаруживать ошибки, а ЕСС-код позволяет и исправлять ошибки небольшой кратности. В межсекторных промежутках, как уже говорилось выше, может размещаться и сервоинформация.

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

Теперь рассмотрим пути оптимизации дисков, направленной на повышение производительности — в конечном счете средней скорости обмена данными. Время, затрачиваемое на обмен данными одного сектора, складывается из времени поиска цилиндра (Seek Time), времени ожидания подхода сектора к головке (Latency Time), времени обмена данными сектора между накопителем и контроллером и между контроллером и памятью компьютера, являющейся источником и пунктом назначения хранимых данных. Конечно, основными факторами, определяющими эти затраты времени, являются механические: достижимая скорость позиционирования и скорость вращения диска. Последний параметр определяет и ожидание сектора (в среднем это половина периода оборота диска), и время собственно передачи данных сектора (оно примерно равно времени оборота, деленному на количество секторов на треке). Однако одиночная передача сектора встречается редко, поскольку его размер невелик. Интерес представляет оптимизация передачи блока данных, расположенных в соседних секторах. Вполне естественно, что если блок данных не умещается в одном секторе, его продолжение будет храниться на том же треке в секторе со следующим номером, поскольку для доступа к нему нужно только дождаться его подхода к головке. Когда емкость трека будет исчерпана, логично перейти на следующую поверх­ность того же цилиндра, для чего достаточно только переключить головки, что выполняется электронным путем довольно быстро. Использовав все секторы цилиндра, переходят к следующему цилиндру, для чего уже необходимо переместить головки — то есть затратить заметное время на операцию поиска. Дефрагментирующие программы как раз и занимаются тем, что размещают все блоки файлов в последовательных кластерах, а следовательно, и секторах, упорядоченных по данному способу счета. Они справедливо рассчитывают на то, что для дискового накопителя оптимален именно такой порядок запроса секторов.

Теперь слово за накопителем.

Оказывается, что при неизменных механических параметрах накопителя и том же числе секторов на треке можно повысить скорость обмена длинными блоками данных за счет особого расположения секторов. Рассмотрим случай, когда необходимо считать длинный блок данных, расположенный в вышеописанном естественном порядке на нескольких цилиндрах диска (процесс записи будет выполняться похожим образом).

Первым делом рассмотрим пути оптимизации трека. В простейшем случае секторы на треке нумеруются последовательно. После того как требуемый сектор прошел под головкой и его данные из накопителя попали в контроллер, который проверил их достоверность по контрольному коду, данные из контроллера передаются в память компьютера (передача может быть и сквозной, без буферирования в контроллере). После анализа состояния выполнения операции контроллер получает указание на считывание следующего сектора, но он к этому времени уже может пролететь под головкой. Тогда контроллеру придется ждать почти полный оборот диска, пока сектор не подойдет снова. Выходом в такой ситуации является применение чередования секторов (Interleaving), при котором нумерация секторов выглядит иначе (рис. 6.3). Здесь изображена нумерация секторов в случае применения фактора чередования 2.1 (Interleave factor). Секторы с соседними номерами располагаются не рядом, а через один (в нашем случае) или более секторов За время реакции системы на прием одного сектора под головкой проходят эти «вставки», а к моменту, когда контроллер будет готов принять следующий сектор, он как раз и подойдет к головке. Конечно, если контроллер способен принять цепочку секторов быстро, чередование секторов принесет только дополнительную задержку. На старых компьютерах XT и АТ-286 с медленными контроллерами правильный выбор фактора чередования позволял повысить скорость обмена данными в несколько раз. В современных накопителях со встроенными быстродействующими контроллерами, способными благодаря наличию буферной памяти значительного объема за одну операцию записать или считать все секторы трека, чередование секторов не применяют (это можно рассматривать и как применение фактора чередования 1:1).

Рис. 6.3. Чередование секторов с фактором 2:1

После того как будет считан последний сектор одного трека, потребуется переход на следующий трек. При переходе в пределах одного цилиндра потребуется только переключение головок, на что уйдет порядка десятка микросекунд, но дополнительную задержку может вносить и контроллер. За это время первый сектор следующего трека может успеть уйти, и опять придется пропускать почти целый оборот. Чтобы этого не случилось, вводят послойное смещение секторов, при котором начало следующего трека цилиндра чуть отстает от предыдущего. Однако более существенную задержку — единицы миллисекунд — вносит перемещение головок на соседний цилиндр. Для учета этой задержки вводят радиальное смещение секторов (Radial Skew) соседних цилиндров.

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




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 826; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.