Конвейерная обработка информации, страница 3

Реализация данного режима осуществляется в процессе преобразования языка высокого уровня в машинные коды. Компилятор заранее знает сколько ступеней существует в конвейере, и с помощью включения в программу команд NOP осуществляет синхронизацию работы конвейера при выполнении команды условного перехода. В современных процессорах встречается двухступенчатые, трехступенчатые, четырехступенчатые конвейеры.

1.  Двухступенчатые. I – выборка команды, Е – исполнение команды.

2.  Трехступенчатый. I – выборка команды, Е – исполнение команды, D – обращение к памяти.

3.  Четырехступенчатый. 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 глобальных.

Архитектура машин, управляемых потоками данных

В классических вычислительных машинах является основой:

1.  последовательное выполнение команд,

2.  пассивная память хранения данных и программ.

В вычислительных машинах с управляемыми потоками данных память является активной, отсутствует последовательность в выполнении команд.

Принцип действия. Автор программного обеспечения Dennis. Это специфический язык, который включает в себя следующее: вводятся обозначения (РИС.2.),

1.  набор команд, которые не готовы к выполнению, о – TOKEN - это признак наличия информации. Считается, что команда готова к выполнению, если данные присутствуют в каждом из входных портов и отсутствуют в выходном. Программа представляет собой направленный граф, образованный соединенными между собой командами. Выходной порт одной команды соединен с входным портом другой команды. Таким образом, порядок выполнения команд определяется не программным счетчиком, как в обычных машинах, а движением данных от команды к команде.