ВУЗ:
Составители:
53
Instruction Pool (Reorder Buffer). Основное назначение этого модуля —
предоставить возможность исполнения микроопераций в произвольном
порядке; в том числе, отличном от порядка их генерации.
В тот момент, когда микрооперации попадают в пул инструкций, порядок
их следования в потоке соответствует тому порядку, в котором они были
сгенерированы в результате декодирования IA-инструкций, поступивших на
вход модуля Fetch/Decode Unit, — никакого
изменения порядка следования
пока не произошло. Пул инструкций представляет собой последовательный
массив инструкций; при этом любая из этих инструкций может быть в любой
момент времени обработана модулем Dispatch/Execute Unit или Retire Unit — то
есть порядок обработки инструкций может быть произвольным и не зависит от
первоначального порядка, в котором инструкции поступили в пул. Именно
поэтому
пул инструкций иногда называют еще буфером переупорядочивания
инструкций (Reorder Buffer).
Dispatch/Execute Unit. Этот модуль проверяет состояние микроопераций,
содержащихся в пуле инструкций, исполняет их, если есть такая возможность,
и записывает полученные результаты обратно в пул инструкций (рис. 4.12).
Reservation Station — основной управляющий блок модуля
Dispatch/Execute Unit. Именно он планирует порядок исполнения и занимается
диспетчеризацией (распределением между вычислительными ресурсами)
микроопераций
. Этот блок последовательно просматривает пул инструкций в
поисках микроопераций, которые готовы к исполнению — таковыми считаются
микрооперации, у которых готовы (т.е. вычислены/загружены) исходные
операнды, — и передает (распределяет, диспетчеризует) их на исполнение
свободным вычислительными ресурсам, которые могут исполнить
микрооперацию. Результаты исполнения микрооперации записываются в пул
инструкций и хранятся там вместе
с самой микрооперацией до тех пор, пока
последняя не будет завершена — этим занимается уже модуль Retire Unit.
Следует подчеркнуть, что жесткого, заранее предопределенного порядка
исполнения микроопераций не существует — они исполняются сразу же, как
только бывают готовы их операнды и свободен соответствующий
вычислительный ресурс. В том случае, если одному и тому же ресурсу может
быть одновременно передано на исполнение более одной микрооперации,
последние исполняются по принципу псевдо-FIFO (First In First Out) — первой
исполняется та микрооперация, которая раньше попала в пул инструкций.
Reservation Station имеет пять портов, через которые организуется обмен
данными с пятью вычислительными ресурсами. Поэтому Dispatch/Execute Unit
может за один такт исполнить максимум пять микроопераций. Однако при
реальной работе с постоянной
равномерной нагрузкой на процессор наиболее
типична ситуация, когда за один такт исполняется три микрооперации.
Instruction Pool (Reorder Buffer). Основное назначение этого модуля —
предоставить возможность исполнения микроопераций в произвольном
порядке; в том числе, отличном от порядка их генерации.
В тот момент, когда микрооперации попадают в пул инструкций, порядок
их следования в потоке соответствует тому порядку, в котором они были
сгенерированы в результате декодирования IA-инструкций, поступивших на
вход модуля Fetch/Decode Unit, — никакого изменения порядка следования
пока не произошло. Пул инструкций представляет собой последовательный
массив инструкций; при этом любая из этих инструкций может быть в любой
момент времени обработана модулем Dispatch/Execute Unit или Retire Unit — то
есть порядок обработки инструкций может быть произвольным и не зависит от
первоначального порядка, в котором инструкции поступили в пул. Именно
поэтому пул инструкций иногда называют еще буфером переупорядочивания
инструкций (Reorder Buffer).
Dispatch/Execute Unit. Этот модуль проверяет состояние микроопераций,
содержащихся в пуле инструкций, исполняет их, если есть такая возможность,
и записывает полученные результаты обратно в пул инструкций (рис. 4.12).
Reservation Station — основной управляющий блок модуля
Dispatch/Execute Unit. Именно он планирует порядок исполнения и занимается
диспетчеризацией (распределением между вычислительными ресурсами)
микроопераций. Этот блок последовательно просматривает пул инструкций в
поисках микроопераций, которые готовы к исполнению — таковыми считаются
микрооперации, у которых готовы (т.е. вычислены/загружены) исходные
операнды, — и передает (распределяет, диспетчеризует) их на исполнение
свободным вычислительными ресурсам, которые могут исполнить
микрооперацию. Результаты исполнения микрооперации записываются в пул
инструкций и хранятся там вместе с самой микрооперацией до тех пор, пока
последняя не будет завершена — этим занимается уже модуль Retire Unit.
Следует подчеркнуть, что жесткого, заранее предопределенного порядка
исполнения микроопераций не существует — они исполняются сразу же, как
только бывают готовы их операнды и свободен соответствующий
вычислительный ресурс. В том случае, если одному и тому же ресурсу может
быть одновременно передано на исполнение более одной микрооперации,
последние исполняются по принципу псевдо-FIFO (First In First Out) — первой
исполняется та микрооперация, которая раньше попала в пул инструкций.
Reservation Station имеет пять портов, через которые организуется обмен
данными с пятью вычислительными ресурсами. Поэтому Dispatch/Execute Unit
может за один такт исполнить максимум пять микроопераций. Однако при
реальной работе с постоянной равномерной нагрузкой на процессор наиболее
типична ситуация, когда за один такт исполняется три микрооперации.
53
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »
