Лекция №18 (17.11.06)
Конвейерная обработка информации
РИС.1.
Выборка (ВК), дешифрация команды (ДК) , выработка адресов операндов (ВАО), выборка операндов (ВО), исполнение команды (ИК), ветвление, прерывание (Пр), изменение программного счетчика (Изм РС), очищение конвейера (Оч.К).
|
Ком1 |
ВК |
ДК |
ВАО |
ВО |
ИК |
|
|
|
|
|
|
|
|
|
Ком2 |
|
ВК |
ДК |
ВАО |
* |
ВО |
ИК |
|
|
|
|
|
|
|
Ком3 |
|
|
ВК |
ДК |
ВАО |
* |
* |
ВО |
ИК |
|
|
|
|
|
Ком4 |
|
|
|
|
|
|
|
|
ВК |
ДК |
ВАО |
ВО |
ИК |
|
|
|
|
|
|
|
|
|
|
** |
|
|
|
|
* - данный пропуск обусловлен тем, что в этот момент в команде №1 происходит размещение результата операции, а так как не представляется возможным выполнить одновременно размещение результата команды №1 и выборку операндов команды №2, то в команде №2 происходит пропуск одного такта.
** - данное совмещение возможно, если результат команды №3 размещается в регистрах общего назначения, а выборка команды производится из памяти.
Достоинства: повышение производительности.
Недостатки: повышение производительности сдерживается наличием режима прерывания и команд условного перехода; различная длительность выполнения конкретных операций.
Каждый этап операций должен быть ориентирован на самую длинную операцию, поэтому неизбежна потеря времени.
Способы:
-
Использование нескольких потоков.
Конвейер предусматривает возможность одновременного выполнения после команды условного перехода команды, которая следует непосредственно за командой условного перехода и команды, которая бы выбралась при условии перехода. Основной недостаток: конвейер должен обладать интеллектом.
-
Предварительная выборка операций ветвления.
Программистом определяется команда, которая имеет максимальную вероятность быть выбранной после команды ветвления.
-
Отложенное ветвление.
|
Ком1 |
ВК |
ДК |
ВАО |
ВО |
ИК |
|
|
|
|
|
|
Ком2 |
|
|
|
NOP |
|
|
|
|
|
|
|
Ком3 |
|
|
|
|
NOP |
|
|
|
|
|
|
Ком4 |
|
|
|
|
NOP |
|
|
|
|
|
|
Ком5 |
|
|
|
|
|
NOP |
|
|
|
|
|
Ком6 |
|
|
|
|
|
ВК |
ДК |
ВАО |
ВО |
ИК |
Реализация данного режима осуществляется в процессе преобразования языка высокого уровня в машинные коды. Компилятор заранее знает сколько ступеней существует в конвейере, и с помощью включения в программу команд NOP осуществляет синхронизацию работы конвейера при выполнении команды условного перехода. В современных процессорах встречается двухступенчатые, трехступенчатые, четырехступенчатые конвейеры.
-
Двухступенчатые. I – выборка команды, Е – исполнение команды.
-
Трехступенчатый. I – выборка команды, Е – исполнение команды, D – обращение к памяти.
-
Четырехступенчатый. I – выборка команды, Е1 – выборка операндов, Е2 – исполнение команды, D – обращение к памяти, размещение результата.
Разработаны две риск архитектуры: риск1 (RISC-I) и риск2 (RISC-II). На них строятся все остальные процессоры.
RISC-I. Команды: сложение с переносом и без, вычитание с заемом и без, поразрядное и, или, не; сдвиг влево и вправо.
RISC-II. Команды: все вышеперечисленное, умножение, деление.
Формируются 4 флага: результат равен 0, результат отрицательный, выполнение, перенос. Структура команды характерна тем, что все поля имеют строго заранее определенную длину и всегда находятся в строго определенном месте команды, это позволило значительно упростить устройство управления. В RISC-I 138 регистров, которые разбиты на 8 зон и 9 глобальных регистров. Данные регистры доступны из каждой команды. В RISC-II имеется 256 регистров и 24 глобальных.
Архитектура машин, управляемых потоками данных
В классических вычислительных машинах является основой:
-
последовательное выполнение команд,
-
пассивная память хранения данных и программ.
В вычислительных машинах с управляемыми потоками данных память является активной, отсутствует последовательность в выполнении команд.
Принцип действия. Автор программного обеспечения Dennis. Это специфический язык, который включает в себя следующее: вводятся обозначения (РИС.2.),
-
набор команд, которые не готовы к выполнению, о – TOKEN - это признак наличия информации. Считается, что команда готова к выполнению, если данные присутствуют в каждом из входных портов и отсутствуют в выходном. Программа представляет собой направленный граф, образованный соединенными между собой командами. Выходной порт одной команды соединен с входным портом другой команды. Таким образом, порядок выполнения команд определяется не программным счетчиком, как в обычных машинах, а движением данных от команды к команде.
Программа решения квадратного уравнения. РИС.3.
В терминологии языка программирования присутствуют следующие понятия:
-
исполнительный элемент (это операция, не готовая к выполнению: или отсутствует код операции, или необходима информация),
-
информация (представляется в виде TOKENов, которые передаются по линиям связи. Разделяется на два вида: данные или управляющие сигналы),
-
линия связи (однонаправленный тракт. Существуют две разновидности видов связи: линии связи данных, линии управления).
