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

Буфер ROB можно считать аналогом Instruction Window (окно команд). В каждом регистре буфера хранится следующая информация о микрокоманде:

1. состояние микрокоманды;

2. адрес микрокоманды программы, «породившей» данную микрокоманду;

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

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

5.     результат (пересылается в ROB только после завершения исполнения микрокоманды).

Микрокоманды, находящиеся в ROB, могут идентифицироваться одним из семи возможных состояний:

1.

RS –

Ready for Scheduling;

2.

SD –

Scheduling;

3.

DP –

Dispatching;

4.

EX –

Executing;

5.

WB –

Writing Back to ROB;

6.

RR –

Ready to Retire;

7.

RT –

Retining.

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

Определением порядка запуска команд на исполнение занимается блок RS (ReservationStation – блок распределения). RS выбирает микрокоманды, готовые к исполнению, из буфера ROB, распределяет их между исполнительными устройствами и записывает результаты исполнения обратно в регистры ROB.

За один такт RS может обеспечить анализ и распределение до пяти микрокоманд. Число 5 определяется наличием пяти портов, которые связывают RS с исполнительными блоками.

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

порты 0 и 1 используются для микрокоманд обработки данных и обеспечивают связь с блоками ALU и FPU;

порты 2, 3 и 4 обеспечивают обращение к памяти.

После завершения микрокоманды соответствующий элемент ROB обновляется, а освободившийся исполнительный блок становится доступным для обработки ожидающих микрокоманд.

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

В связи с тем, что ROB является буфером FIFO, то и удаляются микрокоманды всегда в том порядке, в каком они поступали в буфер и, следовательно, в каком они расположены в программе.



*  пересылка результата из регистра с плавающей точкой в память с преобразованием в десятичную форму

* По мнению Павла Семеновича то, что называется RISC-ядром – это обычный микрокомандный уровень, без которого не обойтись в CISC-процессорах при реализации сколь-нибудь сложных машинных команд.