Основы вычислительных конвейеров, страница 4

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

Регистровые файлы.

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

Особый случай – применение двухпортовой памяти с произвольным доступом на крайне малое число слов. Это и есть регистровый файл.

Регистровый файл выполняет не менее трех функций, отсутствующих у простых фиксаторов ступени:

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

2)  локальная перегруппировка данных; если часть конвейера способна выдать промежуточные результаты в одном порядке, а другой части они требуются в другом, то специальное управление адресными шинами позволяет осуществить необходимое переупорядочение;

3)  осуществление переменной задержки данных для синхронизации потоков данных в сложных конвейерах и для защиты от «гонок» даже в самых простых конвейерах.

4.1.4 Соединение конвейерных ступеней.

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

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

                   

Первый вариант очевиден и всем известен. Второй же случай используется для ускорения сложения в многоразрядном параллельном сумматоре.

А такое соединение превращает устройство в ступень в последовательном двоичном сумматоре.

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

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

В схемах полно нюансов и их можно долго пояснять, но приходится экономить время.

Конвейерные сумматоры

Среди традиционных многоразрядных параллельных сумматоров, построенных на основе одноразрядных комбинационных сумматоров, наиболее простым и наименее быстродействующим является сумматор с последовательным переносом, в котором значение старшего разряда выхода одноразрядного сумматора (выход М) подается на один из входов следующего одноразрядного сумматора. Время для сложения двух N-разрядных чисел, грубо говоря, в N раз превышает время работы одного одноразрядного сумматора, поскольку перенос от младшего разряда числа последовательно проходит через одноразрядные сумматоры к старшему разряду. Более быстродействующие схемы требуют добавления схем с опережающим оперированием с переносами, но и для таких сумматоров время сложения не меньше времени, пропорционального log2 N. Для сравнения на рис. 2.26, в показан конвейерный сумматор с последовательным переносом, который может складывать числа по одному за период синхронизации, независимо от числа разрядов N. Каждое сложение, разумеется, по-прежнему требует N синхроимпульсов, но как только содержимое каждого разряда вычислено, связанные с ним устройства освобождаются для использования их следующим набором чисел. Точно так же ни один их одноразрядных сумматоров не начинает работу до тех пор, пока не готовы данные для всех входов. Дополнительные фиксаторы ступени на входе с холостой логикой находятся здесь просто для того, чтобы гарантировать поступление входных данных. Аналогично, дополнительные фиксаторы на выходах осуществляют задержку передачи содержимого соответствующих разрядов до тех пор, пока не готова вся сумма. Для N-разрядного конвейерного сумматора с последовательным переносом необходимое число устройств задержки имеет порядок N в степени 2. Это может быть достаточно дорогостоящим даже при не очень больших N, если каждая задержка реализуется с помощью фиксаторов и холостой логики. Использование регистровых файлов, рассмотренных в одном из предыдущих разделов, позволяет уменьшить число устройств задержки, но не устранить их совсем.