ZX-Ревю 1997 №1-2 1997 г.

Форум - о сокращении времени форматирования.


(С) Иван Рощин, 1996.

О СОКРАЩЕНИИ ВРЕМЕНИ

ФОРМАТИРОВАНИЯ.

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

Вспомним, что при форматировании дорожки в поле данных сектора могут быть, вообще говоря, любые байты (исключая служебные). Обычно в качестве данных применяют коды #00 или #FF, но можно записывать и непосредственно информацию, содержащуюся в соответствующем секторе на диске-оригинале. За счет этого уменьшается время копирования. Естественно, этот способ не позволяет записывать сектора, в которых встречаются служебные байты #F5, #Fб и #F7 (однако запись служебных байтов #FC и #FE возможна).

Для практического применения привожу пример алгоритма записи дорожки:

• - записать в регистр команд ВГ93 код команды форматирования;

• - выдавать на ВТ байты, соответствующие выбранному формату, до тех пор, пока не начнется поле данных сектора;

• если в этом секторе содержатся служебные байты #F5, #F6 или #F7, его запись при форматировании невозможна, и на ВТ в качестве данных

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

• - аналогичным образом поступаем и с остальными секторами;

• - после окончания форматирования дорожки записываем на нее сектора, которые не удалось записать при форматировании. При практической проверке этого метода выяснилось, что общее время записи уменьшается не так значительно, как предполагалось (не в два раза). Чтобы понять, почему это происходит, подробно разберем, на что же уходит "лишнее" время:

• форматирование автоматически начинается по приходу индексного импульса, то есть с начала дорожки. Таким образом, на ожидание индексного импульса тратится некоторое время;

• форматирование заканчивается по приходу следующего индексного импульса, т.е. когда записана вся дорожка.

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

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




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Авторы
Вступление - 13 годовщина газеты...
Железо - Югославия - полигон?
HOT GAMES - Лучшая десятка игр от Magic Soft.
COMICS - коллекцию цитат из инструкций к различным товарам.

В этот день...   20 апреля