RISC под CISC ISA

77
4

Я изучаю архитектуру процессора, и это немного запутанно.

Правильно ли, что старые микропрограммированные процессоры CISC переведут инструкцию ISA в серии простых (1 цикл) микроинструкций? (И что по философии RISC команда ISA в основном такая же, как и микроинструкция и занимает 1 цикл)

Согласно Wiki:

Однако современные процессоры x86 также (обычно) декодируют и разделяют инструкции на динамические последовательности внутренних буферизированных микроопераций...

Как отличается от старой модели?

КСТАТИ. Существует ли разница между микроинструкцией и микрооперацией, или это синонимы?

спросил(а) 2021-01-25T13:52:29+03:00 6 месяцев назад
1
Решение
77

Старые процессоры CISC не переводились. Они выполняли ISA напрямую или через микрокод. Все процессоры выполняют декодирование команд (даже если это довольно тривиально в некоторых архитектурах RISC). В прошлом декодирование преобразует машинные команды 1-к-1 во внутренний микрооператор. Или инструкция машинного языка начнет выполнение последовательности микрокодов, которая выполнит все этапы.

Сегодня, чтобы получить хорошие результаты от CISA ISA, инструкции, которые выполняют несколько действий (например, объединение ссылки на память с операцией ALU), должны быть "взломаны" во множество внутренних микроопераций, каждая из которых выполняет более простые операции. Это не концептуально много, в отличие от использования микрокода, за исключением того, что он конвейер в специализированном оборудовании, а микрооперации отслеживаются независимо и не соответствуют порядку в отношении других инструкций. Кроме того, вы можете думать об этом взломе как о более сложном расширении команды.

ответил(а) 2021-01-25T13:52:29+03:00 6 месяцев назад
63

В самый старый день.

Горизонтальный микрокод

обычно содержится в довольно широком хранилище управления; для каждого слова не редкость составляет 108 бит или более. На каждом тике таймера секвенсора слово микрокода считывается, декодируется и используется для управления функциональными элементами, составляющими центральный процессор.

Так что для некоторых архитектур это правда.

Более новый микрокод обычно используется в суперскалярных процессорах, поэтому микрокод использует ширину проблемы для параллельного параллелирования своего кода, используя выдачу своих инструкций вне очереди, буфер переупорядочения, а затем гарантирует, что микрокод будет удален в порядке. Старые машины делали все по порядку, некоторые с немного конвейерной обработкой.

Я думаю, микроинструкция начнет микрооперации.

ответил(а) 2021-01-25T13:52:29+03:00 6 месяцев назад
45

Как отметил Тимоти, сегодня машины CISC по-прежнему преобразуют инструкции CISC в микрооперации, за исключением того, что это делается более эффективным способом для более агрессивного исполнения вне порядка (более быстрая тактовая частота... и т.д.).

Теперь, какая разница между всеми терминами, которые обычно возникают в ходе таких разговоров о инструкциях, микрооперациях, микро-инструкциях, макрооперациях, макро/микро-fusion,... и т.д.? Ну, это зависит от того, кто говорит:

В мире AMD макро-op является эквивалентом микрооперации (или uop) в мире Intel. Оба относятся к одной из микроопераций, которые команда X86 нарушает или декодируется. Оба являются RISC-подобными инструкциями с наиболее вероятными фиксированными длинами. Fusion относится к тому, когда две операции (обычно зависящие друг от друга) объединены в одну операцию (для сохранения в основном ширины декодирования). Если это делается с помощью настоящих инструкций x86, он называется M acro-Fusion, если это делается с микрооперациями, он называется Micro-Fusion. Наконец, я думаю, что микроинструкция может использоваться в контексте, чтобы ссылаться на одну инструкцию микрокода в старые времена, или в эти дни я не понимаю, почему он не будет использоваться для ссылки на микрооперацию (или макро-оп). Однако я лично его не слышал много; Я обычно чаще слышу термин "микро-op" или "макро-op".

Ну, я надеюсь, что это поможет

ответил(а) 2021-01-25T13:52:29+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема