Основные особенности МК. Понятие микроконтроллера. Классификация микропроцессоров. 8-разрядные МК, страница 17

Основным же отличием свободного порядка запуска команд от прямого является значительное расширение числа команд, из которых производится выбор на выполнение, за счет чего уменьшаются простои конвейера и, следовательно, увеличивается его производительность.

При использовании стратегии свободного порядка запуска команд возникает необходимость анализировать еще один вид зависимости по данным, который принято называть обратной зависимостью (antidependence), в отличие от рассмотренной ранее прямой зависимости.

Если прямая зависимость относится к виду RAW – Read After Write, то обратная зависимость относится к виду WAR – Write After Read. Кроме того, необходимо учитывать и зависимость вида WAW – Write After Write. Последовательность RAR – Read After Read никогда не вызывает конфликтов.

Пример зависимостей из Столлингса:

                                                                                                                                                                                                                                                                                               Команды:

оp – произвольная операция над двумя регистровыми операндами.

Для устранения обратных зависимостей (WAR и WAW) наиболее эффективным методом является переименование регистров (RenamingRegisters).

3) По сути, метод переименования регистров можно считать расширением метода дублирования ресурсов в отношении регистровой памяти процессора. Суть метода состоит в динамическом отображении логических регистров, имена (адреса) которых формируются компилятором на физические регистры. Распределение физических регистров и их отождествление с логическими реализуется на аппаратном уровне. При этом, как правило, с одним логическим регистром может быть связано несколько физических регистров, содержимое каждого из которых соответствует значению некоторой программной переменной в один из моментов выполнения программы.

Рассмотренный выше фрагмент после переименования регистров принимает вид:

Из примера видно, что после переименования  регистров  появляется  возможность выполнения команды  i3 раньше, чем i2 и даже i1, с которыми команда i3 имела зависимость по данным.

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

Принципы организации суперскалярной архитектуры в процессоре Pentium Pro (Р6)

Процесс выполнения программы выглядит следующим образом:

1. процессор извлекает команды из памяти в прямом порядке;

2. каждая команда преобразуется  в последовательность микрокоманд фиксированной длины (подобие RISC-команд);

3. микрокоманды выполняются в свободном порядке;

4. процессор фиксирует результаты выполнения микрокоманд в регистрах и памяти в том порядке, который соответствует исходному потоку команд.

В соответствии с описанным порядком в ядре процессора Pentium Pro выделяются 3 отдельных независимых блока (устройства), связанные с конвейером команд.

·  Первый блок (Fetch/Decode Unit) выборки и декодирования реализует начальные ступени конвейера команд, обрабатывая команды в прямом порядке (In-Order Front End).

·  Средний блок (Dispatch/Execute Unit) диспетчирования и выполнения образует ядро исполнения с изменением последовательности (Out-of-Order Core). Этот блок является основным для фазы собственно исполнения команд.

·  Последний блок (Retire Unit), называемый блоком отката, производит выдачу результатов выполнения команд в произвольном порядке в соответствии с прямым порядком их следования в программе.

Блок выборки-декодирования