ВУЗ:
Составители:
команда с одним операндом помещается в исполнительное устройство второго конвейера,
где дожидается готовности второго операнда, выходящего с первого конвейера. В этом
случае второй операнд сразу передается на второй конвейер, что позволяет избежать
операции чтения из регистра или ячейки памяти, и вынужденное простаивание второго
конвейера сводится к минимуму.
При параллельном выполнении двух команд на двух конвейерах возникает ситуация,
где одна команда выполняется быстрее другой. Эта команда заканчивается раньше и
нарушается очередность выполнения команд. Исполнение с изменением последовательности
команд, свойственное RISС-архитектуре, теперь реализовано и в процессорах Pentium. При
этом изменяется порядок внутренних манипуляций данных, а внешние (шинные) операции
ввода-вывода и записи в память выполняются в порядке предписанным программным кодом.
Это достигается за счет введения специального буфера; куда результаты выполнения
операций заносятся в произвольном порядке, а данные выходят в порядке очередности.
Другой проблемой, связанной с введением второго конвейера, является проблема
сдваивания команд. Параллельное выполнение двух команд называется сдваиванием. При
этом одновременное исполнение команд на U и V конвейерах определяется специальными
правилами сдваивания, которые удовлетворяют следующим условиям:
-
обе команды должны быть простыми;
-
между ними не должно быть регистровых зависимостей на WAR и RAW;
-
ни одна из команд не может содержать одновременно смещение и
непосредственный операнд;
-
команды с префиксами могут появляться только в U – конвейере (кроме OF в
командах JCC).
Простыми являются следующие целочисленные команды:
1 MOV reg, reg/mem/imm Команды
2 MOV mem, reg/imm пересылки
3 ALU reg, reg/mem/imm Арифметические и
4 ALU mem, reg/imm логические операции
5 INC reg/mem Увеличение и
6 DEC reg/mem уменьшение на 1
7 PUSH reg/mem Операции
8 POP reg над стеком
9 LEA reg, mem Загрузка
10 JMP/CALL/JCC near команды передачи
управления
11 NOP Пустая команда
Простые команды выполняются аппаратным способом и исполняются за один такт, за
исключением команд ALU mem, reg и ALU reg, mem, которые требуют для выполнения два и
три такта соответственно, и их выполнение обеспечивается специальными компонентами
процессора.
Условные и безусловные переходы могут выступать только как вторая команда в
паре. SHIFT на 1, ROT на 1, SHIFT imm могут быть лишь первой командой в паре.
Регистровые зависимости WAR, RAW, которые запрещают сдваивание, включают
неявные зависимости через регистры и флаги. Например, ALU команда в U – конвейере
(устанавливает флаги) не может быть в паре с использующимися флагами команд в V –
конвейере. Два исключения из этого правила – это последовательность «сравнение –
переход» и пары из команд PUSH и POP. Во втором случае для исключения неявной
зависимости от указателя стека добавлены специальные аппаратные компоненты, чтобы эти
частые операции могли параллельно выполняться. Все команды подчиняющиеся правилам
сдваивания выполняются параллельно и независимо, кроме команд имеющих зависимости
команда с одним операндом помещается в исполнительное устройство второго конвейера, где дожидается готовности второго операнда, выходящего с первого конвейера. В этом случае второй операнд сразу передается на второй конвейер, что позволяет избежать операции чтения из регистра или ячейки памяти, и вынужденное простаивание второго конвейера сводится к минимуму. При параллельном выполнении двух команд на двух конвейерах возникает ситуация, где одна команда выполняется быстрее другой. Эта команда заканчивается раньше и нарушается очередность выполнения команд. Исполнение с изменением последовательности команд, свойственное RISС-архитектуре, теперь реализовано и в процессорах Pentium. При этом изменяется порядок внутренних манипуляций данных, а внешние (шинные) операции ввода-вывода и записи в память выполняются в порядке предписанным программным кодом. Это достигается за счет введения специального буфера; куда результаты выполнения операций заносятся в произвольном порядке, а данные выходят в порядке очередности. Другой проблемой, связанной с введением второго конвейера, является проблема сдваивания команд. Параллельное выполнение двух команд называется сдваиванием. При этом одновременное исполнение команд на U и V конвейерах определяется специальными правилами сдваивания, которые удовлетворяют следующим условиям: - обе команды должны быть простыми; - между ними не должно быть регистровых зависимостей на WAR и RAW; - ни одна из команд не может содержать одновременно смещение и непосредственный операнд; - команды с префиксами могут появляться только в U – конвейере (кроме OF в командах JCC). Простыми являются следующие целочисленные команды: 1 MOV reg, reg/mem/imm Команды 2 MOV mem, reg/imm пересылки 3 ALU reg, reg/mem/imm Арифметические и 4 ALU mem, reg/imm логические операции 5 INC reg/mem Увеличение и 6 DEC reg/mem уменьшение на 1 7 PUSH reg/mem Операции 8 POP reg над стеком 9 LEA reg, mem Загрузка 10 JMP/CALL/JCC near команды передачи управления 11 NOP Пустая команда Простые команды выполняются аппаратным способом и исполняются за один такт, за исключением команд ALU mem, reg и ALU reg, mem, которые требуют для выполнения два и три такта соответственно, и их выполнение обеспечивается специальными компонентами процессора. Условные и безусловные переходы могут выступать только как вторая команда в паре. SHIFT на 1, ROT на 1, SHIFT imm могут быть лишь первой командой в паре. Регистровые зависимости WAR, RAW, которые запрещают сдваивание, включают неявные зависимости через регистры и флаги. Например, ALU команда в U – конвейере (устанавливает флаги) не может быть в паре с использующимися флагами команд в V – конвейере. Два исключения из этого правила – это последовательность «сравнение – переход» и пары из команд PUSH и POP. Во втором случае для исключения неявной зависимости от указателя стека добавлены специальные аппаратные компоненты, чтобы эти частые операции могли параллельно выполняться. Все команды подчиняющиеся правилам сдваивания выполняются параллельно и независимо, кроме команд имеющих зависимости
Страницы
- « первая
- ‹ предыдущая
- …
- 136
- 137
- 138
- 139
- 140
- …
- следующая ›
- последняя »