Конвейерная обработка в вычислителях
В RISC процессорах большинство команд представляет собой RG®RC и их машинный цикл состоит из двух фаз: I – фазы выборки; Е – фазы выполнения.
В этом случае конвейер получается двухфазным и операции не равны по своей длине. Поэтому фазу исполнения подразделяют как бы на 2 фазы: именно фаза исполнения (Е) и фаза обращения к памяти (D). D – подразумевает чтение информации или размещение информации в памяти, т.е. конвейер приобретает в этом случае следующий вид.
М®А Загрузка |
I |
E |
D |
|||||||
М®В Загрузка |
I |
E |
D |
|||||||
А+В=С Сложить |
I |
E |
||||||||
С®М Запомнить |
I |
E |
D |
|||||||
Х Ветвление |
I |
E |
||||||||
NOP |
I |
E |
I – выборка команды
E – исполнение команды
D – обращение к памяти
На этом рисунке совмещаются 2 операции – это исполнение и выборка. Вычисление результата в двух различных командах выполняется одновременно, однако размещение результата не может быть совмещено во времени в двух командах, т.к. обращение…
Снижение быстродействия вызвано следующим:
- использование однопортовых ОЗУ;
- использование команды NOP после ветвления для того, чтобы синхронизировать работу ВС.
В некоторых структурах используются двухпортовые ОЗУ, тогда
М®А Загрузка |
I |
E |
D |
|||||||
М®В Загрузка |
I |
E |
D |
|||||||
А+В=С Сложить |
I |
E |
||||||||
С®М Запомнить |
I |
E |
D |
|||||||
Х Ветвление |
I |
E |
||||||||
NOP |
I |
E |
Отсутствуют провалы (дыры) за счёт команды NOP
В этом случае используется трёхступенчатый конвейер и для того, чтобы обеспечить синхронизацию, т.е. выполнять операцию сложения в тот момент времени, когда готовы все операнды для её выполнения, вводится пустая операция NOP. Эта структура позволяет повысить быстродействие почти в 3 раза. Однако максимального быстродействия не достигается из-за того, что в командах ветвления необходимо введение дополнительной команды MOP для обеспечения синхронизации.
Конвейерный режим функционирует в системах оптимально только тогда, когда все фазы имеют одинаковую длину. Обычно фаза Е длиннее фазы I. Поэтому её разбивают на две Е1 и Е2. Е1 – это считывание информации из регистрового файла; Е2 – выполнение операции в АЛУ и запись результата в регистровый файл.
Эти две операции практически одинаковы по своей длине.
М®А Загрузка |
I |
E1 |
Е2 |
D |
||||||
М®В Загрузка |
I |
E1 |
Е2 |
D |
||||||
А+В=С Сложить |
I |
E1 |
Е2 |
|||||||
С®М Запомнить |
I |
E1 |
Е2 |
D |
||||||
Х Ветвление |
I |
E1 |
Е2 |
|||||||
NOP |
I |
E1 |
Е2 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.