Организация микропроцессорных систем. Учебное пособие. Могнонов П.Б. - 153 стр.

UptoLike

Составители: 

простые (от 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). На операции диспетчирования,
выполнения, сохранения результатов выполненных микрокоманд, процессор затрачивает по
одному машинному такту.