Методы минимизации числа конвейерных конфликтов

Конвейерные конфликты по данным: одним из технических решений по устранению конфликтов по данным является «быстрая пересылка»
(fast forwarding) результирующего значения с выхода ALU на один из его входов.

Минимизация конвейерных конфликтов: рассмотрим пример программной реорганизации кода с целью минимизации конвейерных конфликтов по данным:

Минимизация конвейерных конфликтов: диаграмма конвейера для оптимизированного кода.

Число инструкций увеличилось, число конвейерных стадий уменьшилось.


14. Архитектура МК PIC16F84.

Конвейеризация в PIC16F84: этот МК построен по Гарвардской архитектуре
(две независимые памяти для данных и кода) и имеет двухступенчатый конвейер. Это RISC-машина с 35 инструкциями, большинство из которых выполняются за один машинный цикл.

Основные особенности архитектуры микроконтроллеров PICmicro:

• Гарвардская архитектура;

• Длинное слово команды;

• Команда состоит из единственного слова;

• Конвейерная обработка команд;

• Команды выполняются за один машинный цикл;

• Небольшое число команд;

• Файловая структура данных;

• Все команды ортогональны (симметричны).
Машинный цикл PIC16F84 выполняется за 4 физических такта системного генератора.

Q1 cycle: инструкция извлекается из памяти и записывается в регистр IR.

Q2 cycle: декодирование инструкции, чтение операндов.

Q3 cycle: исполнение инструкции (АЛУ).

Q4 cycle: запись результата.


Конвейер PIC16F84 использует только две стадии:

· FETCH (Q1+Q2)

· EXECUTE (Q3+Q4).

Конвейерная обработка инструкций в PIC16F84:

C0: извлечение MOVLW из памяти инструкций.
C1: исполнение MOVLW и извлечение следующей инструкции MOVWF.
C2: исполнение MOVWF и извлечение инструкции CALL.
C3: вызов процедуры F1, чтение инструкции MOVLW.
C4: инструкция CALL изменила значение счетчика PC, вместо исполнения MOVLW будет прочитана первая инструкция процедуры F1.
C5: исполнение первой инструкции в F1 и чтение следующей инструкции и т.д.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: