Скачиваний:
30
Добавлен:
01.05.2014
Размер:
1.67 Mб
Скачать

3.4.2. Внутриконвейерное управление

После того, как инициация осуществлена, связанные с ней данные должны продвигаться в конвейере по пути, описываемому связанной с данной инициацией матрицей столкновений. Механизм, который планировал инициацию и привел ее в действие, уже не связан с дальнейшими действиями над данными. Однако во всех конвейерах, за исключением самых тривиальных, требуется еще и большой объем работы системы управления для проведения инициации доведения ее до конца. Эта работа связана с прямым управлением операциями конвейера и состоит в следующем: генерирование сигнала "Инициация завершена"; активизация логики внутри ступени; управление маршрутом; выбор функции внутри ступени.

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

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

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

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

Существует много способов реализации всех режимов управления. Простая реализация первых двух - "инициация завершена" и "данные подлинные" — состоит в добавлении одного дополнительного разряда на фиксатор ступени, который управляется синхроимпульсами так же, как и остальные разряды в его группе, но соединяется с соответствующим дополнительным разрядом следующей ступени с помощью холостой логики, которая просто повторяет его значение (ср. с [20]). Такая реализация показана на рис. 3.23.

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

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

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

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

При управлении с привязкой к данным сигналы управления "сопровождают" данные по конвейеру, обеспечивая по мере необходимости управление на каждой ступени. Централизованного источника управления нет. Вместо этого всякий раз, когда осуществляется инициация, сигналы управления для соответствующей таблицы занятости поступают в конвейер наряду с данными. Пока устройство инициации гарантирует, что столкновений не будет, нет опасности, что два управляющих сигнала попытаются одновременно использовать одну ступень. На рис. 3.25 показан один из возможных контроллеров с привязкой к данным, построенный по образцу временной цепочки на рис. 3.23. Здесь дополнительный разряд активизации ступени заменен группой разрядов, содержащей некоторый код (в начале, например номер таблицы занятости).

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

Соседние файлы в папке Архитектура конвейерных ЭВМ