Консалтинговая компания Консалтер.Ру
Главная Новости Библиотека Исследования Законодательство Консалтинг Бизнес-форумы Контакты

Реклама

Рекомендуем



Консалтер.Ру > Библиотека > Информационные технологии

В.А. Авдеев, В.Ф. Гузик
Компьютеры: шины, контроллеры, периферийные устройства

Учебное пособие. Таганрог: ТРТУ, 2001. - 536 с.

Предыдущая

11. Внешние ЗУ на Магнитных и оптических носителях

11.7. Контроллер НГМД

Контроллер НГМД (КНГМД) является сложным устройством, для реализации которого была разработана БИС i8272. КНГМД предназначен для выполнения многосекторных, многодорожечных и многоканальных передач данных между НГМД и ОП. КНГМД выполняет преобразование параллельного кода в последовательный при передаче данных в НГМД и обратное преобразование последовательного кода в параллельный при чтении данных из НГМД. Кроме того, КНГМД обеспечивает выполнение следующих команд: запись и чтение данных, поиск, форматирование и т.д., управляющих работой НГМД.

            Через КНГМД осуществляется передача данных между НГМД и ОП под управлением КПДП или между НГМД и быстродействующим П (рис. 11.10).

Рис. 11.10. Схема связи КНГМД с НГМД и ОП под управлением КПДП (П)

Структурная схема КНГМД изображена на рис. 11.11.

Рис. 11.11. Структурная схема КНГМД

КНГМД содержит 3 основных блока: буфер шины данных (БШД) и логику интерфейса (ЛИ), блок управления накопителем (БУН) и блок управления контроллером (БУК). В состав БУК входят 2 порта: регистр входных/выходных данных (RI/O) и регистр основного состояния (RS). Если младший разряд адреса А0=1, то выполняется доступ к RI/O, а если А0=0, то - выбор RS. Регистр RI/O доступен по записи и чтению со стороны П и его адрес - 3F5h, а регистр RS доступен только по чтению и имеет адрес , равный 3F4h. Передача данных в НГМД осуществляется по следующей схеме: DB0-DB7->БШД->ВШД->RI/O->R0->WRDATA, где ВШД - внутренняя шина данных, R0- выходной регистр сдвига и WRDATA - линия выходных данных. Регистр R0 выполняет преобразование параллельного кода в последовательный с дальнейшей выдачей его по линии WRDATA в НГМД. Обратная передача данных из НГМД по линии RDDATA осуществляется с помощью входного регистра сдвига RI по схеме RDDATA->RI->RI/O->ВШД->БШД->DB0-DB7. Кроме того, регистр RI/O используется для вывода из П байтов команды (параметров) в блок регистров (БР) таких, как байт команды, байт модификатор, байты с номерами дорожки, поверхности, сектора и т.д. После окончания передачи данных через RI/O выполняется передача байтов состояния КНГМД и НГМД из регистров состояния ST0-ST2. Регистр ST3 хранит состояние НГМД и может быть прочитан по команде “Считать состояние накопителя” с помощью регистра RI/O и регистра RS. В регистре RS бит D7=1 указывает на готовность RI/O к приему или передаче данных (для вывода RI/O пуст, а для ввода RI/O полон). Бит D6 RS определяет направление передачи данных: 1- в П, а 0 - из П. Остальные биты RS отмечают состояние КНГМД при выполнении операций поиска, чтения-записи и прерывания. В состав БУК входят также дешифратор адресных меток (ДшАМ), считываемых с дорожки, и сепаратор данных (СД), осуществляющий выделение битов данных по сигналам «Окно данных» DW, формируемых внешней схемой ФАЧ.

БУК вырабатывает синхросигналы VCO, необходимые для работы ФАЧ, и устанавливает сигнал «Разрешение записи» WE, поступающий в НЖМД. Для координации работы БУК вводятся синхросигналы записи WRCLK. В связи с тем, что на внутренние дорожки информация записывается более плотно, то для реализации этого режима используется внешняя схема предкомпенсации (СПК), на которую поступают сигналы PS0 и PS1, компенсирующие фазовый сдвиг информации. На рис. 11.12 показана схема сопряжения КПДП, КНГМД и НГМД.

Рис. 11.12. Схема сопряжения КПДП, КНГМД и НГМД

Сигналы PS0 и PS1 задают раннюю, нормальную и позднюю синхронизацию при записи данных на дорожку. БУН с помощью сигналов DS0 и DS1 выполняет выбор НГМД и в режиме поиска осуществляет формирование сигналов: SEEK(поиск), DIR(направление) и STEP (шаг). Кроме того, БУН принимает сигналы от датчиков: WRPROT (защита записи), INDEX (сигнал от датчика индексного отверстия), TRACK (дорожка 0). Входной сигнал READY устанавливается, когда включено питание, диск вставлен в накопитель и двигатель набрал заданное число оборотов. Сигнал HDL используется для прижима (загрузки) МГ к поверхности диска. Назначение известных сигналов WR, RD, #CS и т.д. БШД и ЛИ было описано ранее. Эти сигналы в основном используются для доступа к регистрам КНГМД. Вывод байтов команды из памяти в БР выполняется строго в определенном порядке, задаваемым кодом команды (первым байтом), а БУК автоматически распределяет поступающие байты в соответствующие регистры БР. Эта фаза работы КНГМД называется фазой приказа, затем наступает фаза выполнения команды, например, передача данных, которая заканчивается формированием сигнала прерывания IRQ6. После этого выполняется ввод в П байтов состояния ST0-ST2 (фаза результата), в которых отмечается состояние НГМД: неверная команда, не подключен НГМД, ошибка НГМД, ошибка в передачи данных, отсутствует адресная метка, плохая дорожка и т.д.

КНГМД реализует 15 команд. Формат команды «Чтение данных» (INT13) состоит из 9 байтов, выводимых процессором в фазе приказа. Первый байт формата содержит код операции, второй - номер МГ и накопителя, третий - номер цилиндра (С), четвертый - номер головки (Н), пятый - номер сектора (R), шестой - длина сектора (N), седьмой - номер последнего сектора на дорожке (EOT), восьмой - размер зазора между секторами (CPL), девятый - число записываемых (считываемых) байтов (DTL). Девятый байт учитывается, если N=0.

При выполнении команды «Чтение данных», номер сектора, находящийся в соответствующем регистре БР, сравнивается с номером сектора, читаемого с дорожки. При совпадении этих номеров осуществляется считывание заданного сектора. Затем номер сектора, хранящийся в регистре БР, увеличивается на 1 и выполняется считывание следующего сектора при многосекторной операции. Если дважды поступал сигнал от датчика индексного отверстия, то в регистре ST1 устанавливается бит «Отсутствие данных». При обнаружении ошибки в поле идентификации или в поле данных устанавливаются соответствующие биты в регистрах ST1 и ST2. Команда «Чтение данных» прекращается по сигналу T/C (окончание счета).

Команда «Поиск» содержит 3 байта. В первом и во втором байтах этой команды также указывается соответственно код операции и номер МГ и накопителя, а в третьем байте - номер требуемого цилиндра. После завершения операции поиска требуемого цилиндра КНГМД формирует сигнал прерывания IRQ6.

            Рассмотрим более подробно выполнение команды «Считать состояние накопителя». П выводит 2 байта: байт команды (04h), содержащий код операции, и байт модификатор (00h), выбирающий накопитель. В первой фазе приказа содержимое битов D7 и D6 регистра RS должно быть соответственно 10, т.е. регистр RI/O - КНГМД готов принять данные (пуст) и направление передачи данных из П в КНГМД. Перед выводом каждого байта П проверяет бит D7 RS на равенство его 1. Затем КНГМД выполняет вторую фазу: автоматически читает содержимое ST3 и переводит его в RI/O. В этот момент времени бит D7=0. В третьей фазе D7=D6=1, т.е. RI/O полон и направление передачи данных из КНГМД в П. П по этой информации определяет момент ввода содержимого RI/O в свой внутренний регистр.

Предыдущая

Похожие материалы:
Контроллер PCI 9060
Контроллер ISA/ИРПР - Авдеев В.А. и др., 2001
Контролируемые сделки
Контроллер комбинированного типа
Контроллер программного обмена - Авдеев В.А. и др., 2001
Контроль за выполнением коллективного договора, соглашения



О сайте   Авторам   Реклама и услуги   Контакты
Copyright © 2007-2021, Консалтер.Ру