Найти в Дзене
Разумный мир

Внешняя память ЭВМ. Магнитные ленты. Просто о сложном

Идея написать статью появилась довольно неожиданно, по мотивам небольшой дискуссии в комментариях к статье "Ферритовая память. Как это работало? Просто о сложном". Сегодня пойдет разговор об использовании магнитных лент в качестве внешней памяти вычислительных машин.Накопители на магнитной ленте, или сокращенно НМЛ, использовались практически во всех машинах. До недавнего времени. Но и сегодня они не ушли окончательно в прошлое. В современных машинных залах, дата-центрах, они все еще используются для ведения архивных копий. Но теперь это не отдельные накопители, а роботизированные ленточные библиотеки самых разных размеров. Например, довольно малогабаритная библиотека Qualstar RLS-8500, монтируемая в стойку. Давайте посмотрим, как устроены и как работают НМЛ. И чем они отличаются от других устройств магнитной записи на лентах. Это довольно интересно, хоть и несколько потеряло сегодня актуальность. Я отношу эту статью не к серии "история ЭВМ", а к серии "Как устроены и работают ЭВМ". И
Оглавление

Идея написать статью появилась довольно неожиданно, по мотивам небольшой дискуссии в комментариях к статье "Ферритовая память. Как это работало? Просто о сложном".

Сегодня пойдет разговор об использовании магнитных лент в качестве внешней памяти вычислительных машин.Накопители на магнитной ленте, или сокращенно НМЛ, использовались практически во всех машинах. До недавнего времени. Но и сегодня они не ушли окончательно в прошлое. В современных машинных залах, дата-центрах, они все еще используются для ведения архивных копий.

Но теперь это не отдельные накопители, а роботизированные ленточные библиотеки самых разных размеров. Например, довольно малогабаритная библиотека Qualstar RLS-8500, монтируемая в стойку.

Роботизированная ленточная библиотека Qualstar RLS-8500. Фото с сайта https://adview.ru
Роботизированная ленточная библиотека Qualstar RLS-8500. Фото с сайта https://adview.ru

Давайте посмотрим, как устроены и как работают НМЛ. И чем они отличаются от других устройств магнитной записи на лентах. Это довольно интересно, хоть и несколько потеряло сегодня актуальность.

Я отношу эту статью не к серии "история ЭВМ", а к серии "Как устроены и работают ЭВМ". И речь пойдет на конкретных ЭВМ или моделях накопителей, а о принципах их работы. Хотя многие моменты, пожалуй, имеют уже больше исторический интерес.
В статье будут рассматриваться общие принципы работы накопителей на магнитной ленте, более подробно 9-дорожечная лента (основной тип ленты в ЕС и СМ ЭВМ), и немного однодорожечные ленты.
И да, статья написана по памяти, на основе личного опыта работы с НМЛ. Таблицу группового кодирования уточнил в стандарте, поскольку "по памяти" вспомнить уже не получилось... Склероз...

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

Я постараюсь, максимально простым языком, рассказать как устроены и работают накопители на магнитной ленте (НМЛ), какие этапы обработки проходит информация между процессором и лентой, какие хитрости и тонкости, не видные невооруженным глазом, здесь есть.

Ссылка на статью, комментарии к которой и стали причиной данного рассказа

Ферритовая память. Как это работало? Просто о сложном.

Аналоговый магнитофон, цифровой магнитофон, НМЛ

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

Аналоговый магнитофон

Аналоговые магнитофоны больше всего известны как устройства звукозаписи. Они были и катушечными, и кассетными, и бытовыми, и профессиональными. Да и в качестве носителя не всегда использовалась лента, применялась и стальная проволока.

Общие требования к таким магнитофонам, вне зависимости от деталей реализации, таковы:

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

Скорость движения ленты относительно магнитных головок могла быть разной. И сами головки могли быть подвижными, например, в видеомагнитофонах.

Цифровой магнитофон

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

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

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

НМЛ

Это цифровой магнитофон, но требования к его функциональности существенно иные.

  • Записываемый сигнал является цифровым. Это совершенно естественное в данном случае требование
  • Запись информации выполняется блоками, которые могут иметь фиксированную или переменную длину. Переменная длина означает, что разные блоки могут иметь разную длину. По сути, запись отдельными блоками означает наличие структуры информации.
  • Лента движется в режиме старт/стоп. Это очень важный момент. ЭВМ может выполнить запись/считывание одного блока. И после окончания операции лента должна остановиться. Время старта и стопа должно быть малым, а во время выполнения записи/чтения блока лента должна двигаться с постоянной скоростью.
  • Основные режимы работы: запись блока, чтение блока, пропуск блока вперед, пропуск блока назад, перезапись блока, перемотка вперед до конца ленты, перемотка назад до конца ленты. Дополнительно могут быть реализованы другие операции, например, поиск блока вперед, поиск блока назад.

То есть, для НМЛ уже важна структура записи - отдельные блоки. А режимы работы, выполняемые операции или команды, стали нетривиальными. Операций записи теперь две, как минимум. Перезапись отличается от записи тем, что перезаписываемый блок должен расположиться в точно отведенном ему месте не затронув ни предшествующий, ни последующий блоки.

Использование аналогового магнитофона в качестве цифрового или НМЛ

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

Для сохранения/загрузки программ в первых бытовых ЭВМ этой функциональности хватало. Можно было сохранять/загружать и данные, но только в ручном режиме. Полноценной, да даже упрощенной, заменой НМЛ это назвать было нельзя. Зато это было дешево и доступно обычным людям. И использование видеомагнитофона, которое позволяло увеличить скорость передачи информации и ее объем, ситуацию не меняло.

Лентопротяжный механизм

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

Устройство лентопротяжного механизма аналоговых и цифровых магнитофонов. Общий вид. Иллюстрация моя
Устройство лентопротяжного механизма аналоговых и цифровых магнитофонов. Общий вид. Иллюстрация моя

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

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

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

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

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

Почему же этот, всем привычный, механизм не подходит для НМЛ? Прежде всего, из-за старт-стопного режима движения ленты. Теперь мы не можем использовать ведущий вал с маховиком, так как это не позволит быстро приводить ленту в движение и останавливать ее. А значит, вместо простого и дешевого асинхронного двигателя, или коллекторного двигателя постоянного тока, нам нужен специальный двигатель.

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

В результате, лентопротяжный механизм НМЛ получается примерно таким

Лентопротяжный механизм НМЛ. Общий вид. Иллюстрация моя
Лентопротяжный механизм НМЛ. Общий вид. Иллюстрация моя

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

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

Демпферы не являются пассивными подпружиненными подвижными роликами. Их положение контролируется датчиками и используется для управления двигателями привода катушек. Лентопротяжный механизм НМЛ имеет раздельные двигатели привода каждой катушки и ведущего ролика. В некоторых накопителях, например, для машин серии ЕС, болгарского предприятия ИЗОТ (еще той Болгарии, когда существовал СССР) имели демпферы в виде вакуумных колонок. А более компактные модели для машин СМ имели демпферы в виде качающихся рычагов.

В некоторых НМЛ с низким быстродействием и низкой скоростью движения ленты, например, использующих кассеты бытового формата (да, были и такие), лентопротяжный механизм мог не иметь демпферов. Зато имел два ведущих вала и два прижимных ролика. Но и момент инерции бобышки с лентой в кассете гораздо меньше момента инерции большой и тяжелой катушки с 9-дорожечной лентой. Я не буду приводить схему такого лентопротяжного механизма.

Принцип записи цифровой информации на магнитную ленту

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

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

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

Во время считывания, переменное магнитное поле, создаваемое движущейся лентой, наводит в обмотке головки чтения ЭДС, которая после усиления и будет считанным сигналом.

Этот принцип един и для аналоговой, и для цифровой записи на магнитную ленту.

Однако, при записи цифровой информации возникает одна сложность. Если записываемая информация не изменяется, например,записывается цепочки нулей или единиц, остаточная намагниченность ленты тоже будет неизменной. А значит, на обмотке головки чтения не будет наводиться ЭДС, ведь магнитное поле не изменяется.

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

Итак, поскольку у нас сигнал цифровой, нас не интересует его точный уровень, нас интересуют только два пороговых уровня - "0" и "1". Как мы можем записывать их на ленту? Есть несколько вариантов, например, такие

Различные способы кодирования записываемой на ленту информации. Иллюстрация мо
Различные способы кодирования записываемой на ленту информации. Иллюстрация мо

Метод кодирования "без возврата к 0" имеет сокращенное название NRZ. Хорошо видно, что "0" и "1" при этом методе соответствует отсутствие или наличие тока в обмотке головки записи. И сразу становится видна проблема.

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

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

В результате, на выходе усилителя чтения у нас будут импульсы соответствующие только моментам изменения значения бит. А это нас не устраивает.

Спасением будет метод кодирования исключающий постоянную составляющую. Это может быть метод тонального кодирования, когда "0" и "1" соответствует разная частота записываемого сигнала переменного тока. Но это не самый лучший метод. Наиболее популярным методом кодирования будет, пожалуй, Манчестерский код (Manchester-II).

Этому кодированию будет посвящена отдельная статья, а сегодня нам будет достаточно лишь краткого знакомства с ним. Итак, при таком кодировании "0" и "1" различаются направлением изменения сигнала в середине интервала, равному длительности передачи одного бита. На иллюстрации я изобразил вариант кодирования, когда "0" соответствует изменение с низкого уровня на высокий в середине битового интервала, а "1" изменение с высокого уровня на низкий.

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

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

Нет потери при считывании последовательности одинаковых бит. Импульсы ЭДС положительной полярности в середине битового интервала соответствуют чтению "0", а отрицательной полярности "1". Импульсы на границах битовых интервалов не оказывают влияния. Иллюстрация моя
Нет потери при считывании последовательности одинаковых бит. Импульсы ЭДС положительной полярности в середине битового интервала соответствуют чтению "0", а отрицательной полярности "1". Импульсы на границах битовых интервалов не оказывают влияния. Иллюстрация моя

Такое кодирование используется при записи цифровой информации на одной дорожке магнитной ленты, в последовательном виде. Но ведь в "больших" ЭВМ использовались многодорожечные ленты. Стандартом в ЕС и СМ ЭВМ были 9-дорожечные.

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

При этом байт записывался не в последовательном коде, а в параллельном. А девятый разряд был разрядом четности и позволял обнаруживать искажение информации в записанном байте. Причем бит четности был равен "1" если количество единичных бит в записываемом байте было четным, и "0" если нечетным. То есть, это дополнение до нечетности.

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

Запись информации на ленту в параллельном коде с добавленным битом четности. Общий вид. Иллюстрация моя
Запись информации на ленту в параллельном коде с добавленным битом четности. Общий вид. Иллюстрация моя

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

Однако, теперь вместо проблемы с записью последовательности одинаковых бит в байте мы получили другую проблему. Я пометил прямоугольниками синего цвета совпадающие значения одноименных бит в соседних байтах. Это та же самая проблема постоянной составляющей. А ведь мы теперь используем NRZ. Как же так?

Все очень просто. Точнее, очень сложно, но все равно просто.

Групповое кодирование

Если помните, я говорил. что запись в НМЛ выполняется отдельными блоками. Мы скоро дойдем до рассмотрения этого вопроса. Но на самом деле, различных агрегатов данных гораздо больше. На самом деле, информация на ленту записывается не байтами, а группами байт.

То есть, каждые 4 последовательно записываемые на ленту байта информации превращаются в 5. Но откуда берется этот дополнительный байт? Тоже четность? Нет!

Одноименные биты четырех информационных байт формируют тетраду. И именно на основании значения тетрады формируются 5 бит записываемого блока. Вот пример

Формирование записываемого блока из 4 информационных байт. Иллюстрация моя
Формирование записываемого блока из 4 информационных байт. Иллюстрация моя

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

Вот это и называется групповым кодированием. Правила кодирования определяются таблицей, которая является частью стандарта. А в накопителях это кодирование выполняется обычно с помощью ПЗУ 16х5.

Вот в пределах такого записываемого блока синхронизация времени соответствующего очередному байту выполняется исходя из условия постоянства средней скорости движения ленты. Отклонение допускается не более +-2%.

А собственно биты записываемых байт располагаются на ленте не подряд, а вперемежку. Причем бит четности располагается в середине, на дорожке номер 4.

Группы информации

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

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

Причем полиномы для вычисления ECC и CRC разные. И бит четности в вычислении ЕСС не участвует. Если позволите, я не буду подробно описывать правила и полиномы для вычисления символов и контрольных сумм.

Всего может быть три разных группы. Основная группа называется информационной группой. Она содержит ровно 7 байт информации. Остаточная группа отличается от информационной только тем, что в ней может быть менее 7 полезных байт. В конечном итоге, количество переданных процессором для записи байт не обязательно кратно 7. Но поскольку информационных байт в группе все равно должно быть 7, недостающие позиции заполняются нулями. Нулевые байты дополняются установленным битом четности (0 - число четное!). Группа CRC содержит контрольную сумму, причем вычисляется она не только по порождающему полиному, есть и дополнительные специальные правила.

Вот именно каждая такая группа из 8 байт разбивается на две половины, по 4 байта в каждой половине, с помощью группового кодирования превращается в 10 байт, и после этого записывается на ленту.

И сразу встает вопрос, а контрольная сумма чего именно хранится в группе CRC? Сейчас узнаем и это.

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

Запоминаемый блок

Обратите внимание, не записываемый, а именно запоминаемый. Это официальный термин. Кстати, каждый записываемый на ленту байт называется запоминаемой строкой.

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

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

Итак, запоминаемый блок содержит от 18 до 8192 информационных байт. Стандарты допускают использование блоков и большего размера, однако на основе дополнительных соглашений, если лентами предполагается обмениваться.

Упрощенный формат запоминаемого блока для 9-дорожечной магнитной ленты. Иллюстрация моя
Упрощенный формат запоминаемого блока для 9-дорожечной магнитной ленты. Иллюстрация моя

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

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

Специальная группа END MARK отмечает конец групп хранения. После нее следует остаточная группа и группа CRC. И теперь нам понятно, что группа CRC охватывает всю полезную информацию в блоке. То есть, все группы хранения и остаточную группу. Причем, в отличии от ЕСС, уже с учетом бит четности. А вот служебные группы в контрольную сумму не включаются.

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

Формат 9-дорожечной ленты

Сложно? Дальше будет немного попроще. Нам осталось посмотреть, что представляет из себя, с логической точки зрения, 9-дорожечная лента. Та самая, на которую наши запоминаемые блоки и записываются.

Наиболее заметными, даже невооруженным взглядом, являются метки начала и конца ленты. Это две светоотражающие метки наклеенные на нерабочую сторону ленты. Маркер качала ленты определяет ее начальное положение, в которое лента устанавливается после "загрузки", установки ленты в накопитель. А маркер конца ленты не позволяет накопителю выйти за пределы доступной длины ленты.

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

Теоретически немного раньше маркера начала ленты может находиться зона идентификатора плотности записи ленты.

Наши запоминаемые блоки располагаются на ленте последовательно, друг за другом. И разделяются межблочными промежутками. Причем межблочные промежутки являются важным элементом структуры ленты. И связано это с старт-стопными временами

Запоминаемые блоки разделяются межблочными промежутками. Эти промежутки позволяют двигателю приводного ролика разогнаться и остановиться при чтении/записи блока. Иллюстрация моя
Запоминаемые блоки разделяются межблочными промежутками. Эти промежутки позволяют двигателю приводного ролика разогнаться и остановиться при чтении/записи блока. Иллюстрация моя

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

Но сначала...

А что можно сказать о других форматах лент?

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

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

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

Выполнение основных операций НМЛ

Эти операции не всегда просты. И мы их рассмотрим довольно упрощенно. Но без потери важнейших деталей.

Загрузка

Это всегда самая первая операция. Причем выполняется она вручную. Оператор устанавливает катушку (кассету) с лентой в накопитель, заправляет ленту в лентопротяжный механизм, если это требуется, и нажимает кнопку "Загрузка" на НМЛ.

С этого момента НМЛ работает самостоятельно. Запускается движение ленты вперед, пока под фотодатчиком не окажется не окажется маркер начала ленты. Лента останавливается. Накопитель готов к работе.

Разгрузка

Это всегда самая последняя операция. Выполняться она может вручную или по команде процессора. НМЛ запускает перемотку ленты назад, причем сигнал с фотодатчика начала/конца ленты не учитывается. Когда лента полностью выйдет из лентопротяжного механизма, оба демпфера окажутся в разгруженном состоянии. Это и является признаком окончания разгрузки. Приводы катушек останавливаются.

Теперь оператору остается снять катушку с лентой и убрать на хранение. Естественно, это ручная операция.

Перемотка назад

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

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

Перемотка вперед

Аналогично перемотке назад, но лента перематывается на приемную катушку, а отслеживается сигнал с фотодатчика маркера конца ленты.

Запись

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

НМЛ включает головку стирания и включает двигатель ведущего ролика. С этого момента начинается отсчет времени старта. Когда время старта истекло, скорость движения ленты постоянна. Начинается запись заранее сформированного запоминаемого блока. После окончания записи двигатель ведущего ролика останавливается. С этого момента начинается отсчет времени стопа. Когда время стопа истечет, двигатель полностью остановился. Головка стирания отключается. Операция завершена.

Перезапись

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

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

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

Чтение

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

Группы хранения считываются в память контроллера НМЛ, при этом выполняется контроль четности. После прохождения END MARK в ту же память считывается остаточная группа. Отдельно считывается группа CRC. После окончания постамбулы двигатель ведущего ролика останавливается. Извлеченная из групп информация передается в процессор. Операция завершена.

Пропуск блок вперед и пропуск блока назад

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

Поиск блока

Эта операция встречается гораздо реже. Процессор передает в контроллер НМЛ блок информации для поиска. НМЛ выполняет чтение ленты и сравнивает считанные данные с переданными процессором. Когда данные совпадут, операция считается выполненной. Лента остановлена после найденного блока.

Заключение

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

Не смотря на то, что основной упор сделан на стандартные 9-дорожечные ленты, сами принципы, лежащие в основе построения и работы таких устройств, схожи и для других типов лент, других типов накопителей.

Если что то остается непонятным, вызывает вопросы, спрашивайте в комментариях. Как всегда, вопросы без ответа не останутся.

До новых встреч!