Организация магистрали в цифровой вычислительной машине, страница 2

Подобный пакетный цикл впервые был реализован в канале процессора i486, с целью ускорить процесс передачи кэш-строки между ОЗУ и кэш-памятью. Канал процессора 486 имеет 32-разрядные шины адреса и данных. Строка кэш-памяти первого уровня в i486 находится на кристалле и имеет длину 16 байтов (4 длинных слова). Таким образом, для передачи содержимого кэш-строки требуется четыре канальных цикла.

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

Представленная далее временная диаграмма пакетного цикла заимствована из документа фирмы Intel Pentium® Processor Family Developer’s Manual Volume 1: Pentium® Processors.

В разделе 6.3.2. Burst Cycles (стр. 6-14 по нумерации документа, стр. 177 по порядку от начала) подробно описаны разные виды пакетных циклов.

A1

 
A1+4
 

A1+8

 

A1+12

 

A1

 

A1

 

Рис.  Пакетный цикл на магистрали процессоров 486+

Канальный цикл обработки запроса прерывания

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

(Извините, подраздел в процессе…..)


Прямой доступ к памяти

          Сущность ПДП состоит в том, что в микропроцессорной системе имеются кроме процессора другие устройства: способные быть активными (bus masters).

Рис.6. Структура системы с несколькими задатчиками магистрали

Такими свойствами могут обладать контроллеры дисков, видеобластеры (устройства ввода изображения) и др. Обычный режим их работы состоит в том: что они записывают или считывают большие обьемы данных, непостредственно взаимодействуя через канал с памятью (отсюда и название -ПДП). Собственно передача данных из/в память происходит с использованием канальных циклов передачи данных, с той разницей, что управление каналом (формирование адресов и управляющих сигналов) осуществляет не процессор а ПДП-устройство. Однако для перехода в такой режим (т.е. для передачи управления каналом от одного задатчика к другому) на канале предусматривается специальная процедура и имеются в составе шины управления специальные управляющие сигналы.

          Простейший случай, когда в системе имеется только два задатчика шины, иллюстрирует рис.7.

Рис. 7 Типовая временная диаграмма предоставления прямого доступа

Процедура передачи данных в режиме ПДП состоит в следующем.

    Запрос DREQ (Dma REQuest) на начало передачи поступает в контроллер ПДП в виде электрического сигнала из внешнего устройства.

    КПДП посылает в процессор запрос канала HOLD

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

    КПДП генерирует канальные циклы (т.е. нужные адреса и последовательности управляющих сигналов), в которых между памятью и внешним устройством происходит обмен байтами (или словами).

Перед началом обмена программа должна указать контроллеру ПДП:
- начальный адрес массива в памяти, куда (или откуда) будет передача
- направление передачи (в память или из нее)
- количество байтов (или слов), которые надо передать
- как реагировать на сигнал запроса......
и некоторые другие условия (см. далее описание КПДП для PC-совместимых компьютеров).

Начало передачи может происходить не только по внешнему сигналу, но и по команде (устанавливающей нужный бит в нужном порте) - по аналогии с прерыванием.

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

Типовая схемотехника для подключения устройства к каналу.

Необходимость специальной схемотехники

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

 . На рис.8  изображена структура, обеспечивающая двунаправленную связь по линии канала.

Рис. 8 Структура двунаправленной связи по линии канала

При передаче от Устройства1 к Устройству2 работают выход Э1 и вход Э3. При обратной передаче работают выход Э4 и вход Э2. При этом оказывается, что два выхода: Э1 и Э4 соединены вместе. Это может привести к электрическому конфликту, если они оба попытаются одновременно передавать разные значения логической переменной.

Логические элементы с тремя состояниями

          Это комплементарные (биполярные или МОП) сложные инверторы, в которых сущестует третье (отключенное) Z-состояние, когда оба выходных транзистора сложного инвертора нахоятся в непроводящем состоянии. У таких элементов есть дополнительный управляющий вход включения Z-состояния, часто обозначаемый как OE (Output Enable). При нормальном функционировании в каждый момент времени только один выход должен передавать (т.е. находиться не в Z-состоянии) - и это должен обеспечить разработчик устройства правильным формированием сигналов на входах OE разных микросхем, подключенных к одной и той же линии канала.

Логические элементы с открытым коллектором (стоком)

          Это элементы, выходные каскады которых не содержат в выходном каскаде "верхнего" (pull-up) транзистора. Такие выходы можно соединять к одной линии, не опасаясь электрического конфликта, при этом происходит обьединение выходных сигналов в соответствии с фугкцией "логического ИЛИ" для сигналов низкого уровня. Поэтому подобное соединение на схемотехническом жаргоне называют "монтажным ИЛИ" (wired OR).
          Достоинство - отсутствие электрического конфликта сопровождается недостатком: для обеспечения на такой линии сигнала "логической единицы" (high) необходимо между такой линией и источником питания включать внешний резистор. Иногда такой резистор выполняется непосредственно на микросхеме. При малой величине проводимости этого резистора увеличивается время перезаряда паразитной емкости линии (т.е. уменьшается быстродействие), а при повышении проводимости - растет потребляемая мощность.
          В некоторых микросхемах применяют комбинированный вариант, когда верхний резистор комплементарного инвертора присутствует, но открывается импульсно, лишь на короткое время при переключении линии из Low в High, обеспечивая быстрый перезаряд емкости линии и в то же время отсутствие электрического конфликта в статическом состоянии. Так сделано например в выходных каскадах портов контроллера i8051.