ВУЗ:
Составители:
простые (от 1 до 7 байт), сложные (7-11 байт) и очень сложные команды, обеспечить данное
условие невозможно. В этом случае для повышения пропускной способности конвейера
применяют метод межстадийной буферизации. Межстадийная буферизация в процессоре Р6
используется во многих местах конвейера, но, особенно, полезна в интерфейсах памяти,
поскольку ее быстродействие относительно невелико. Буферизация также используется
между двумя основными функциями исполнения команды: выборки и выполнения. Роль
буфера на этой стадии выполняет пул команд, который позволяет реализовывать принцип
динамического исполнения команд.
Разбиение сложных команд х86 на более простые операции (микрокоманды) привело
к увеличению числа ступеней конвейера. При этом конвейер процессора Р6 выглядит
следующим образом:
1.
Выборка команд из кэша (IF0);
2.
Выравнивание по границам параграфа (IF1,IF0);
3.
Декодирование, определение формата команд (ID0);
4.
Декодирование команд (ID1 – три декодера);
5.
Определение адресов перехода (BTB0, BTB1);
6.
Переименование регистров (RAT);
7.
Загрузка микрокоманд в пул (ROB R);
8.
Загрузка микрокоманд в буфер станции RS;
9.
Диспетчирование (распределение по портам);
10.
Выполнение (работа ФИУ);
11.
Запись результатов в пул (ROB W);
12.
Переупорядочивание (RRF).
Здесь показаны основные стадии выполнения команд на процессоре Р6. Этап
выборки, в свою очередь, разбиваются на две стадии, где на первой стадии происходит
выборка двух строк кэша команд, а на второй стадии из выбранных байтов выделяются
команды. Эти команды помечаются и направляются в устройство декодирования.
Н а третьей стадии происходит определение формата команд блоком ID0 и
подготовка их передачи в блок ID1, содержащий три параллельно работающих декодера,
либо планировщику последовательности микрокоманд (MIS).
На четвертой стадии три параллельных декодера позволяют в лучшем случае
декодировать 3 команды за 1 такт с соотношением 4-1-1. Для декодирования сложных (7-11
байт) и сверхсложных команд (11-16 байт) семейства х86 требуются от 1 до 2
дополнительных машинных тактов соответственно, и используется планировщик
последовательности микрокоманд (MIS). Следовательно, эта ступень конвейера исполняется
за три такта.
На пятой стадии (после декодирования инструкций ветвлений) процессор
осуществляет вычисление адресов перехода с помощью блоков BTB0 и BTB1 и формирует
два потока микрокоманд (один поток помечается - при отрицательном исходе условия,
другой – при положительном).
На шестой стадии осуществляется процедура переименования регистров.
На седьмой стадии микрокоманды с выхода устройства декодирования записываются
в пул команд (ROB R), и в этой точке заканчивается упорядоченная часть конвейера.
На восьмой и девятой стадиях происходит загрузка микрокоманд в буфер станции RS
и диспетчирование их по исполнительным устройствам.
На десятой стадии производится выполнение микрокоманд в исполнительных
устройствах. Алгоритм планирования выполнения микрокоманд, реализованный в
процессоре Р6, может запустить до 5 микрокоманд за такт.
На 11 стадии после выполнения микрокоманд на исполнительных устройствах их
результаты возвращаются в пул команд (ROB W). На операции диспетчирования,
выполнения, сохранения результатов выполненных микрокоманд, процессор затрачивает по
одному машинному такту.
простые (от 1 до 7 байт), сложные (7-11 байт) и очень сложные команды, обеспечить данное
условие невозможно. В этом случае для повышения пропускной способности конвейера
применяют метод межстадийной буферизации. Межстадийная буферизация в процессоре Р6
используется во многих местах конвейера, но, особенно, полезна в интерфейсах памяти,
поскольку ее быстродействие относительно невелико. Буферизация также используется
между двумя основными функциями исполнения команды: выборки и выполнения. Роль
буфера на этой стадии выполняет пул команд, который позволяет реализовывать принцип
динамического исполнения команд.
Разбиение сложных команд х86 на более простые операции (микрокоманды) привело
к увеличению числа ступеней конвейера. При этом конвейер процессора Р6 выглядит
следующим образом:
1. Выборка команд из кэша (IF0);
2. Выравнивание по границам параграфа (IF1,IF0);
3. Декодирование, определение формата команд (ID0);
4. Декодирование команд (ID1 – три декодера);
5. Определение адресов перехода (BTB0, BTB1);
6. Переименование регистров (RAT);
7. Загрузка микрокоманд в пул (ROB R);
8. Загрузка микрокоманд в буфер станции RS;
9. Диспетчирование (распределение по портам);
10. Выполнение (работа ФИУ);
11. Запись результатов в пул (ROB W);
12. Переупорядочивание (RRF).
Здесь показаны основные стадии выполнения команд на процессоре Р6. Этап
выборки, в свою очередь, разбиваются на две стадии, где на первой стадии происходит
выборка двух строк кэша команд, а на второй стадии из выбранных байтов выделяются
команды. Эти команды помечаются и направляются в устройство декодирования.
Н а третьей стадии происходит определение формата команд блоком ID0 и
подготовка их передачи в блок ID1, содержащий три параллельно работающих декодера,
либо планировщику последовательности микрокоманд (MIS).
На четвертой стадии три параллельных декодера позволяют в лучшем случае
декодировать 3 команды за 1 такт с соотношением 4-1-1. Для декодирования сложных (7-11
байт) и сверхсложных команд (11-16 байт) семейства х86 требуются от 1 до 2
дополнительных машинных тактов соответственно, и используется планировщик
последовательности микрокоманд (MIS). Следовательно, эта ступень конвейера исполняется
за три такта.
На пятой стадии (после декодирования инструкций ветвлений) процессор
осуществляет вычисление адресов перехода с помощью блоков BTB0 и BTB1 и формирует
два потока микрокоманд (один поток помечается - при отрицательном исходе условия,
другой – при положительном).
На шестой стадии осуществляется процедура переименования регистров.
На седьмой стадии микрокоманды с выхода устройства декодирования записываются
в пул команд (ROB R), и в этой точке заканчивается упорядоченная часть конвейера.
На восьмой и девятой стадиях происходит загрузка микрокоманд в буфер станции RS
и диспетчирование их по исполнительным устройствам.
На десятой стадии производится выполнение микрокоманд в исполнительных
устройствах. Алгоритм планирования выполнения микрокоманд, реализованный в
процессоре Р6, может запустить до 5 микрокоманд за такт.
На 11 стадии после выполнения микрокоманд на исполнительных устройствах их
результаты возвращаются в пул команд (ROB W). На операции диспетчирования,
выполнения, сохранения результатов выполненных микрокоманд, процессор затрачивает по
одному машинному такту.
Страницы
- « первая
- ‹ предыдущая
- …
- 151
- 152
- 153
- 154
- 155
- …
- следующая ›
- последняя »
