ВУЗ:
Составители:
простые (от 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
- …
- следующая ›
- последняя »