
- •1. Введение
- •Декодирование
- •1 2 3 4 5
- •1 2 3
- •1 2 3 4
- •2. Функциональное разбиение и разбиение на ступени
- •3.Конвейеризация в сравнении с перекрытием
- •E f
- •4. Классификация конвейеров
- •5. Временные диаграммы
- •6. Помехи
- •7. Исторический обзор
- •8. Сравнение с параллелизмом
- •Подфункция
- •1.Введение………………………………………………………………………………………………………………………………….1
3.Конвейеризация в сравнении с перекрытием
В обычном употреблении термины конвейеризация и перекрытие имеют сходный, но не идентичный смысл. Оба они основаны на идее разбиения на подфункции, но в несколько различных аспектах. Конвейеризация имеет место, когда верны все следующие положения:
• каждое вычисление базовой функции относительно независимо от предыдущего;
• каждое вычисление требует примерно одной и той же цепочки подфункций;
• подфункции тесно связаны между собой;
• времена вычисления различных подфункций приблизительно равны. С другой стороны, термин перекрытие используется, когда имеет место хотя бы одно из следующих положений:
• между отдельными вычислениями могут иметься некоторые зависимости;
• для каждого вычисления может потребоваться отличная от других цепочка подфункций;
• по своему назначению подфункции достаточно различны;
• время, необходимое для одной ступени, не обязательно постоянно;
оно может быть функцией как самой ступени, так и данных, проходящих через нее.
На практике различия между конвейерной, параллельной обработкой и обработкой с перекрытием часто оказываются весьма расплывчатыми. Время от времени мы будем говорить о конвейеризации, указанной выше, как о синхронной или статической. Аналогично об обработке с перекрытием можно говорить как об асинхронной или динамической конвейеризации.
Классическим примером статической конвейеризации является конвейерный блок, построенный для повторяющегося независимого сложения чисел с плавающей запятой, вырабатываемых другим блоком. Здесь базовая функция — сложение с плавающей запятой — относительно проста. В той мере, в какой это касается сумматора, результат одного сложения никак не зависит от предыдущего, последующего или какого-либо еще. Кроме того, имеется много способов разбиения функции сложения на ступени, от двух (в машине IBM 360/91 ) до шести (в машине ASC фирмы Texas Instruments) и более ступеней, однако, если разбиение уже выполнено, все сложения идут по одному пути. Например, на рис. 2. показан результат разбиения функции сложения с плавающей запятой на следующие подфункции:
• вычитание порядков;
• сдвиг вправо мантиссы числа, имеющего меньший порядок, на величину, равную разности порядков;
• прибавление другой мантиссы к сдвинутой;
• подсчет числа нулей в старших разрядах суммы;
• сдвиг влево суммы на число нулей в старших разрядах и соответствующая корректировка порядка.
Конвейер на рис. 2. имеет отдельные логические схемы для каждой из этих подфункций с фиксаторами ступеней, расположенными между этими схемами и сохраняющими выходные данные ступени для их обработки на следующей ступени. Каждое сложение проходит один и тот же путь по этим ступеням. Кроме того, времена, нужные каждой ступени для выполнения ее подфункции, примерно равны, а переходы от ступени к ступени жестко управляются внешним источником синхроимпульсов, общим для всех ступеней. Аналогия с физическим конвейером является здесь прямой.
Простейшим примером процесса перекрытия, или динамической конвейеризации, может служить вычислительная система, в которой операции ввода—вывода выполняются одним процессором, все вычисления —другим, а связь осуществляется в основном через общий модуль памяти (рис. 3.). В такой системе типичная задача будет попеременно занимать вычислительный процессор и процессор ввода—вывода, в то время как решение некоторой другой задачи перекрывается с решением первой путем использования незанятого ею процессора. В соответствии с нашей терминологией имеется две ступени, каждая из которых - процессор, они состыкованы через фиксатор ступеней, которым фактически является система памяти. Здесь операции гораздо менее синхронизированы, чем в сумматоре с плавающей запятой, разбиение базовой функции (задачи) динамически изменяется, и даже время, необходимое для прохождения ступени, заранее непредсказуемо.
Вход А Вход В