Функциональные схемы блоков коммутационного устройства
Детализация разработанной структурной схемы ПКП КУ (рис. 4.1) с учетом требований, сформулированных в подразделе 4.2, позволяет синтезировать функциональные схемы всех выделенных блоков устройства.
При этом разрядность шин и узлов КУ определяется исходя из разработанного формата флитов (см. рис. 4.3). Поскольку коммутационное устройство осуществляет независимую обработку флитов, их количество в составе одного пакета на аппаратном уровне неизвестно и не имеет значения. Таким образом, не нарушая общности изложения,можно считать, что пакет состоит из единственного флита. Это позволяет условно отождествить понятия пакета и флита, существенно упростив описание работы КУ в силу использования более распространенного термина «пакет». Итак, далее в данном подразделе считаем, что «флит = пакет».
Рассмотрение функциональных схем КУ начнем с блока синхронизации, поскольку данный блок координирует работу всех остальных узлов устройства.
Функциональная схема БС изображена на рис. 4.4. Она представляет собой типовую схему распределителя импульсов на счетчике и используется в ряде проектов аналогичных устройств [26-28, 30-32]. Схема БС включает генератор импульсов 1, кольцевой счетчик 2 на три состояния и элементы И 3, 4, 5. Выход EN необходим для подачи внешнего сигнала включения генератора импульсов. Выходы CLK1, CLK2 и CLK3 служат для выдачи синхроимпульсов на другие узлы КУ.
Рисунок 4.4. Функциональная схема блока синхронизации
Функционирование БС описывается временными диаграммами, приведенными на рис. 4.5. Из диаграмм видно, что формируемые в БС последовательности импульсов Θ1, Θ2, Θ3 оказываются сдвинутыми друг относительно друга на треть периода их следования (этот период, в свою очередь, равен трем периодам следования исходной последовательности импульсов θ, вырабатываемой генератором 1).
Границы тактов ретрансляции КУ и микротактов определяются согласно рис. 4.5 по спадам синхроимпульсов. Микротакт 1 соответствует фазе загрузкипакетов из буферного слоя в МР (фаза Load, см. рис. 3.3), микротакт 2 - фазе анализа способа размещения пакетов в матрице (фаза Analyze, см. рис. 3.4), микротакт 3 - фазе выдачи множества пакетов на выходы КУ (фаза Issue, см. рис. 3.5).
Рисунок 4.5. Временные диаграммы работы блока синхронизации
Обработка пакетов в ПКП КУ начинается с момента их поступления в буферный слой, поэтому рассмотрим подробнее функциональную организацию буферных блоков.
Функциональная схема буферного блокапоказана на рис. 4.6. В
ее состав входят следующие узлы и элементы: регистры 10.1, 10.2, ..., 10.L(где L - предельная длина очереди пакетов в ББ), дешифратор 11, коммутаторы 12.1,
12.2, ..., 12.L, триггер 13, элементы ИЛИ-НЕ 14.1, 14.2, ..., 14.L, элементы И 15.1,
15.2, ..., 15.L, элементы ИЛИ 16.1, 16.2, ..., 16.L, элемент ИЛИ 17, 18, элементы И 19, 20, 21, 22, элемент ИЛИ 23, одновибратор, образованный линией задержки 24 из 2r +1 инверторов и элемента И 25, а также элемент ИЛИ-НЕ 26 и элемент И 27.
Рисунок 4.6. Функциональная схема буферного блока ББ/
о -J
Назначение элементов буферного блока (рис. 4.6) заключается в следующем.
Регистры 10.1, 10.2, ..., 10.Lпредназначены для организации очереди пакетов, поступивших на соответствующий вход устройства.
Дешифратор 11 необходим для выбора регистра, в который будет записан очередной поступающий пакет.
Коммутаторы 12.1, 12.2, ..., 12.Lтребуются для управления подключением информационных входов регистров 10.1, 10.2, ..., 10.Lв режимах приема пакетов и сдвига очереди пакетов.
Триггер 13, вместе с элементами И 20, 21, 22, элементом ИЛИ 23, а также одновибратором на линии задержки 24 из 2r +1 инверторов и элемента И 25, служат для организации задержки импульса сдвига очереди пакетов на время приема пакета от соседнего КУ в том случае, когда указанные процессы пересекаются во времени.
Элементы ИЛИ-НЕ 14.1, 14.2, ..., 14.Lпредназначены для индикации текущего состояния регистров 10.1, 10.2, 10.Lсоответственно.
Элементы И 15.1, 15.2, ..., 15.Lвместе с элементами ИЛИ 16.1, 16.2, 16.Lнеобходимы для управления прохождением импульсов записи регистров 10.1, 10.2, ..., 10.Lсоответственно.
Элемент ИЛИ 17 введен для формирования объединенного сигнала разрешения сдвига очереди пакетов в данном ББ (SENz) на основе множества сигналов, поступающих из матрицы регистров.
Элемент ИЛИ 18 служит для формирования сигнала, индицирующего начало передачи пакета соседним КУ.
Элементы И 19 предназначен для блокировки/разрешения прохождения импульса Θ3 от соседнего КУ, синхронизирующего прием пакета в данном ББ.
Элемент ИЛИ-НЕ 26 и элемент И 27 введены для формирования сигнала, индицирующего переполнение данного буферного блока.
Рассмотрим процесс функционирования буферного блока ББ/ (рис. 4.6).
В исходном состоянии все элементы памяти ББ/ установлены в ноль, что обеспечивается подачей импульса системного сброса достаточной длительности на вход RST. Нулевое состояние регистров 10.1, 10.2, ..., 10.Lприводит к формированию единичного уровня сигнала на выходах всех элементов ИЛИ-НЕ 14.1,
14.2, ..., 14.L. В результате на выходах дешифратора 11 образуется унитарный код «00...01», что приводит к открытию элемента И 15.1 и одновременно блокирует элементы И 15.2, 15.3, ..., 15.L. Таким образом, буферный блок настраивается на прием пакета в регистр 10.1. Описанное начальное состояние сохраняется до тех пор, пока от соседнего КУ не поступит пакет.
Как только на входе PCT/блока появляется очередной пакет, элемент ИЛИ 18 формирует единичный сигнал разрешения приема пакета.
Этот сигнал открывает элементы И 19, 21, блокируя при этом элемент И 22. Одновременно этот же сигнал поступает на все коммутаторы 12.1, 12.2, ..., 12.Lи обеспечивает их настройку на прием пакета с входа PCT/. В результате поступивший пакет проходит на информационные входы регистров 10.1, 10.2, ..., 10.L. Спустя некоторое время на входе PCT/появляется импульс Θ3 от соседнего КУ. Данный импульс проходит через элемент И 19 на элементы И 15.1, 15.2, .., 15.L. Поскольку из указанных элементов открытым является только элемент 15.1, импульс Θ3 проходит только через этот элемент. Далее он через элемент ИЛИ 16.1 поступает на синхровход регистра 10.1 и поступивший пакет фиксируется в данном регистре. Запись пакета в другие регистры не происходит из-за блокировки элементов И И15.2, 15.3, ..., 15.L.
После записи пакета в регистр 10.1 уровень сигнала на выходе элемента ИЛИ-НЕ 14.1 меняется с единичного на нулевой. В результате на выходах дешифратора 11 появляется унитарный код «00.010», что подготавливает запись следующего пакета в регистр 10.2. Процесс записи при этом будет происходить аналогично описанному выше. После записи пакета в регистр 10.2 на выходе элемента ИЛИ-НЕ 14.2 появится нулевой уровень сигнала, что приведет к формированию дешифратором 11 кода «00.0100» и следующий пакет будет уже записываться в регистр 10.3 и т.д.
Отметим, что, если все регистры 10.1, 10.2, ..., 10.Lокажутся заполнены пакетами, буферный блок не сможет принять новый пакет, так как все элементы И 15.1, 15.2, ..., 15.Lбудут закрыты нулевым уровнем сигнала с дешифратора 11. В результате поступивший пакет будет потерян и потребуется его повторная отправка источником. Индикация потери пакета обеспечивается элементом ИЛИНЕ 26 и элементом И 27. Нули с выходов элементов ИЛИ-НЕ 14.1, 14.2, ..., 14.L вызывают формирование единицы на выходе элемента ИЛИ-НЕ 26, что открывает элемент И 27. В результате импульс Θ3, сопровождающий очередной пакет, проходит через элемент И 27 с выхода элемента И 19 и затем передается на выход индикации потери пакета LSTi.
Проанализируем работу ББ1 в режиме сдвига очереди пакетов.
Предположим, что в регистрах 10.1, 10.2, ..., 10.lсодержатся пакеты, а ре- 10. l +1. Если на одном из выходов SENjiбуферного блока имеется единичный сигнал, разрешающий сдвиг очереди пакетов (подробности его формирования см. ниже, где описывается работа регистровых ячеек МР), то элемент ИЛИ 17 также формирует единичный сигнал, который открывает элемент И 20.
Процесс сдвига очереди пакетов в ББ1 начинается с приходом импульса Θ1 из БС (рис. 4.4) на вход CLK1 . Этот импульс проходит через элемент И 20 (рис. 4.6) и инициирует сдвиг. Далее возможны два случая: 1) отсутствие нового пакета на входе pCTiот соседнего КУ; 2) поступление нового пакета на вход pCTi от соседнего КУ. В первом случае сдвиг очереди пакетов происходит незамедлительно, а во втором он смещается во времени до момента записи нового пакета, чтобы обеспечить корректность состояния регистров ББ1.
Предположим, что имеет место случай 1 и нового пакета на входе PCTiнет. В этом случае на выходе элемента ИЛИ 18 присутствует нулевой уровень сигнала, обеспечивающий блокировку элемента И 21 и одновременно открывающий элемент И 22. Этот же нулевой сигнал настраивает коммутаторы 12.1, 12.2, 12.Lтаким образом, что содержимое следующего регистра (10.к) передается на информационный вход предыдущего (10. к -1). Импульс θ1 с выхода элемента И 20 проходит через элемент И 22 и далее через элемент ИЛИ 23, а затем параллельно через элементы ИЛИ 16.1, 16.2, ..., 16.Lпоступает на синхровходы всех регистров 10.1, 10.2, ..., 10.L. В результате пакеты, находящиеся в регистрах 10.2,
10.3, 10./, синхронно переписываются соответственно в регистры 10.1, 10.2,
..., 10. / -1, а в регистр 10./ заносятся нули из регистра 10. /+1. Заметим, что, если в момент сдвига очереди были заняты все регистры 10.1, 10.2, ..., 10.L, то запись нулей в последний регистр 10.Lобеспечивается за счет фиксированного соединения первого (верхнего по схеме) информационного входа коммутатора 12.Lс шиной нуля.
Теперь рассмотрим случай 2, когда одновременно со сдвигом очереди пакетов в буферный блок поступает новый пакет. В этом случае на выходе элемента ИЛИ 18 формируется единичный уровень сигнала, который блокирует элемент И 22, не разрешая выполнить сдвиг очереди пакетов. Одновременно этот сигнал открывает элемент И 21 и в результате импульс сдвига θ1 проходит на S-вход триггера 13. Триггер 13 переключается в единичное состояние и на его инверсном выходе образуется нулевой уровень сигнала, который блокирует элемент И 25. Таким образом, блок «запоминает», что после окончания приема очередного пакета следует сдвинуть очередь пакетов в регистрах 10.1, 10.2, ..., 10.L. Процесс приема пакета протекает так же, как описано выше, при этом часть схемы, включающая элементы 20-25 и триггер 13, не меняет своего состояния до окончания приема. По завершении приема пакета на входе PCTiблока появляется нулевой код (что обеспечивается алгоритмом работы строк МР, см. описание ниже), сигнал на выходе элемента ИЛИ 18 меняется с единичного на нулевой и триггер 13 возвращается в нулевое состояние. Появление единичного сигнала на инверсном выходе
триггера 13 привозит к формированию импульса на выходе элемента И 25, который через элемент ИЛИ 23 и элементы ИЛИ 16.1, 16.2, ..., 16.Lпоступает на синхровходы всех регистров 10.1, 10.2, ..., 10.Lи осуществляет сдвиг очереди пакетов. Дальнейшие действия происходят так же, как и в случае 1. Таким образом, обеспечивается устойчивое функционирование буферного блока при любых соотношениях моментов сдвига очереди пакетов и прихода новых пакетов. Временные диаграммы работы ББ/, приведенные на рис. 4.7, подтверждают этот вывод.
После прохождения пакетов через буферный слой КУ осуществляется выбор направлений их выдачи согласно реализуемому алгоритму маршрутизации (в нашем случае - XY-маршрутизации). Эта задача решается слоем маршрутизации, включающим множество блоков маршрутизации БМ1, БМ2, ..., БМи (см. рис. 4.1).
Рассмотрим особенности функциональной организации блока маршрутизации на примере двумерной организации мультипроцессора.
Функциональная схема блока маршрутизации представлена на рис. 4.8. Отметим, что данная схема является типовой и используется в ряде известных устройств аналогичного назначения [27, 28, 30, 31].
В схему БМ/ (рис. 4.8) входят компараторы 30.1 и 30.2, а также преобразователь кода 31 на основе программируемой логической матрицы. Назначение указанных узлов сводится к следующему. Компаратор 30.1 служит для сравнения компоненты X адреса текущего КУ (процессора), поступающего из ГА через вход А, с компонентой X/ адреса обрабатываемого пакета, поступающей из ББ/ через вход DA/. Компаратор 30.1 выдает результат в виде «100» (при Xi >X), «010» (Xi = X) либо «001» (Xi Y), «010» (Yi = Y) либо «001» (Yi
Еще по теме Функциональные схемы блоков коммутационного устройства:
- СТРУКТУРНО-ФУНКЦИОНАЛЬНАЯ ОРГАНИЗАЦИЯ КОММУТАЦИОННОГО УСТРОЙСТВА С ПАРАЛЛЕЛЬНОКОНВЕЙЕРНОЙ ДИСПЕТЧЕРИЗАЦИЕЙ ПАКЕТОВ
- Требования к функциональным блокам коммутационного устройства
- Структурная организация коммутационного устройства
- Оценка аппаратной сложности коммутационного устройства
- Построение имитационной модели коммутационного устройства
- ИССЛЕДОВАНИЕ ХАРАКТЕРИСТИК КОММУТАЦИОННОГО УСТРОЙСТВА С ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНОЙ ДИСПЕТЧЕРИЗАЦИЕЙ ПАКЕТОВ
- Методика исследования характеристик коммутационного устройства
- Исследование быстродействия коммутационного устройства
- МЕТОД И АЛГОРИТМ КОММУТАЦИИ С ПАРАЛЛЕЛЬНОКОНВЕЙЕРНОЙ ДИСПЕТЧЕРИЗАЦИЕЙ ПАКЕТОВ. СТРУКТУРНАЯ МОДЕЛЬ КОММУТАЦИОННОГО УСТРОЙСТВА
- Исследование пропускной способности коммутационного устройства
- Особенности программной реализации имитационного моделирования коммутационного устройства