4. Классификация конвейеров

Конвейеры можно классифицировать по их возможностям и фактичес­кому применению. Одно-функциональный конвейер это конвейер, спо­собный к вычислению базовой функции только одного типа. Такой кон­вейер выполняет без изменений одни и те же операции над каждым набором входных данных. Описанный ранее сумматор с плавающей запятой являет­ся по своей природе однофункциональным. Многофункциональный конвей­ер это конвейер, способный к вычислению функций различных типов. В нем в дополнение к входам для данных имеется и некоторый управля­ющий вход, регулирующий действия конвейера. Примером служат машины IBM 360/91, в которых выбор пути вычисляется по самим вводимым коман­дам, машина Tl ASC, 8-ступенчатое арифметическое устройство , ко­торое может перестраиваться для выполнения различных операций, и матрич­ный процессор 3838 фирмы IBM, у которого соединения между раз­личными конвейерными умножителями и сумматорами управляются микро­программно.

Многофункциональные конвейеры можно классифицировать по частоте, с которой изменяется исполняемая функция. Если конвейерная система способна лишь относительно редко изменять тип исполняемой функции, то говорят, что конвейер имеет статическую конфигурацию. В промежут­ках между изменениями функций конвейер действует, как если бы он был однофункциональным, и просто повторяет тот же самый набор опера­ций над вводимыми данными. Очень часто это изменение конфигурации осуществляется непосредственно под управлением программы пользова­теля, в особенности для класса архитектур, называемого архитектурой векторного процессора. Здесь одна отдельно взятая команда определяет как функцию, подлежащую исполнению, так и длинную строку элементов данных (вектор), к которым эта функция должна применяться. Конфигу­рация конвейера затем настраивается на исполнение соответствующей опе­рации, и поток данных проходит через него. После того, как выполнение одной такой векторной команды завершается, может быть запущена ко­манда того же или другого типа. К примерам машин с такими возможнос­тями относятся матричный процессор 2938 фирмы IBM, машина STAR-100 фирмы Control Data Corp., машина Tl ASC, матрич­ный процессор 3838 фирмы IBM и машина CRAY-1.

В других многофункциональных конвейерах допускаются более частые изменения исполняемых ими функций, вплоть до новой функции при каж­дом новом исполнении. Такие конвейеры называются конвейерами с дина­мической конфигурацией. Как и в случае машины IBM 360/91, этот тип конвейера чаще всего используется при исполнении машинных команд, когда каждая команда отличается от других форматом или типом. На са­мом деле в большинстве современных проектов архитектур высокопроиз­водительных ЭВМ применяется некоторый тип динамического перекрытия. В отличие от векторных процессоров, фактически реализованная конвейери­зация очень редко видна программисту, а еще реже находится под его управ­лением. Иначе говоря, внутренние сигналы, необходимые для управления перекрытием, слишком сложны.

5. Временные диаграммы

Для описания и анализа работы конвейера используется некоторое двумерное представление. Вертикальная ось делится на целое число позиций, каждая из которых соответствует одной ступени конвей­ера. Горизонтальная ось представляет время (слева направо) и может быть разбита на целое число отрезков или оставлена непрерывной в зависимости от того, управляется конвейер дискретным датчиком синхроимпульсов или же является по своей природе асинхронным. Метка в некотором месте этого двумерного представления указывает, что соответствующая ступень используется в данный период времени. На рис. 1. проиллюстриро­ваны типичные представления такого рода.

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

Таблицы занятости широко применяются для построения теории оптимизации использования конвейера.