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

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

При перекрытии снимаются некоторые жесткие требования:

·  между отдельными вычислениями подфункций могут быть некоторые зависимости;

·  каждому вычисления может потребоваться своя цепочка подфункций;

·  по назначению подфункции достаточно различны;

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

Обработку с перекрытием называют часто (но не вполне корректно) асинхронной или динамической конвейеризацией. Классический пример – вычислительная система с совмещениями вычислений и операций ввода-вывода.

Классический пример обычной (синхронной или статической) конвейеризации показан на следующей странице.

(4.1.1.1) О классификации конвейеров вычислений.

Классифицируются по возможностям и применению.

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

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

В многофункциональных конвейерах выделяют:

а)  конвейеры со статической конфигурацией (редко перестраивают)

б)  векторные процессоры (конфигурация задается программно)

в)  динамическая конфигурация (меняется для различных типов и форматов команд)

Функция сложения с плавающей запятой разбита на следующие подфункции:

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

(4.1.1.2) Помехи в конвейерах

Определялась помеха на странице 2.

Существуют две общие категории помех:

1)  структурные

2)  зависящие от данных

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

Во всех остальных случаях это очень сложная проблема. Решение в каждом случае уникально.

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

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

Такие помехи всегда зависят от режима работы системы и не поддаются аналитическому исследованию.

Разработано множество методов устранения помех.

4.1.2 Сравнение с параллелизмом

Напоминаю: оба метода направлены на увеличение производительности за счет увеличения числа аппаратных модулей, работающих одновременно.

Основные различия показаны на рисунке и в таблице.

4.1.3. Некоторые особенности организации памяти в конвейерных вычислителях.

Роль памяти в базовой структуре конвейерной вычислительной системы (КВС) в простейшем случае выполняют фиксаторы.