Я изучаю процесс работы программы на gem5. И почитайте несколько книг. Но я все еще не понимаю, в каких частях выполнения программы. Правильно ли мое понимание ниже?
- Сначала компьютерная инструкция помещается в ICache, а ЦП компьютера контролирует выборку инструкций и помещает полученные инструкции в очередь инструкций. Затем возьмите инструкцию из очереди инструкций и декодируйте инструкцию в микрооперации. Эти микрооперации будут отправлены в буфер переупорядочения. Если микрооперация в буфере переупорядочения является загрузкой / сохранением, она будет отправлена в очередь загрузки / сохранения. Если это такая операция, как сложение и вычитание, она будет отправлена непосредственно в исполнительный модуль. В этом процессе каждый исполнительный блок имеет зарезервированную станцию для переименования регистров. Когда микрооперация будет завершена, она вернется в буфер переупорядочения. Когда микрооперация достигает заголовка буфера переупорядочения, она может быть записана обратно в кэш или память вне ЦП.
- Очередь загрузки будет извлекать данные из кеша. Кэш обычно представляет собой индекс виртуального адреса и тег физического адреса. Операция загрузки будет происходить из кэша параллельно и выполнять преобразование виртуальных адресов. Если кэш отсутствует, операция загрузки будет отправлена в MSHR. MSHR отправляет полученные данные в память. Если данные находятся в памяти, данные сначала загружаются в кэш, а затем полученные данные возвращаются в MSHR, а затем возвращаются в очередь загрузки. Если данных нет в памяти, операционная система выдаст ошибку страницы, а затем данные будут извлечены с жесткого диска в память, извлечены из кэша, а затем возвращены в MSHR, а затем возвращены в очередь загрузки.
вопросов:
- Относится ли микрооперация к таким операциям, как mov и add при декодировании?
- Относится ли проблема с инструкциями к микрооперациям, отправленным в буфер переупорядочения или отправленным из буфера переупорядочения в исполнительный блок? После того, как инструкция декодирована, отправляется ли она непосредственно в буфер переупорядочения?
- Относятся ли отправка и выдача к одному и тому же процессу?
- Я также видел некоторые очереди, такие как очереди чисел с плавающей запятой или другие очереди. Относится ли это к месту, где инструкции временно хранятся из-за недостаточного количества исполнительных блоков, когда инструкции отправляются из буфера переупорядочения в исполнительный блок? Эти очереди относятся к тому же самому объекту, что и станция бронирования в алгоритме Томасуло?
nop
илиxor eax,eax
, которые не нуждаются в каких-либо внутренних операциях. В этом случае запись ROB может быть помечена как уже выполненная, готовая к удалению изначально, без необходимости ждать сигнала завершения для соответствующей записи RS. Я всегда находил диаграммы, показывающие, что исполнительные блоки ROB - ›RS -› вводят в заблуждение, потому что я не думаю, что оборудование работает именно так, и упы должны оставаться в ROB от проблемы до выхода на пенсию. - person Peter Cordes   schedule 17.10.2020nop
и исключенные uops (без исполнительного модуля) переходят в ROB без записей RS, потому что на самом деле ничего не нужно выполнять. Все входит в ROB, что позволяет избавиться от неверных предположений (например, ветвей или исключений). См. Может ли MOV для x86 действительно быть бесплатным? Почему я вообще не могу воспроизвести это? и Как лучше всего обнулить регистр в сборке x86: xor, mov или и?. Упс, которым действительно нужна проблема с исполнительным блоком, в ROB и RS. Интерфейс не может выдать их, если они заполнены - person Peter Cordes   schedule 17.10.2020