Branch logic

Схема

Схема логики условных переходов состоит из двух частей : первая определяет - производить переход или нет, а вторая определяет направление перехода (вперёд или назад).

Схемы имеют 2 контрольных выхода : BRFW (BRFW=1, если переход вперед) и /BRTAKEN (/BRTAKEN=0, если нужно сделать переход).

Решение о том сделать переход или нет осуществляется на основе 5,6 и 7 разряда инструкции (IR) и флагов процессора Z, N, V и C.

Решение о направлении перехода зависит от 7го разряда смещения перехода. Если 7й разряд равен 1, то это значит что переход назад (PC = PC - offset)

Логическая схема

Логика BRANCH FORWARD:

По сигналу BR2 производится загрузка триггера новым значением /DB7. Защелки внутри триггера нужны чтобы его значение не затиралось, после изменения DB7 на следующий полутакт и команда BRFW не менялась начиная с такта BR3. Короче говоря значение BRFW каждый раз обновляется на BR3.

Логика BRANCH TAKEN:

Комбинаторная логика выбирает вначале по IR6/IR7 к какой группе принадлежит инструкция перехода (то есть какой флаг она проверяет), а последующий XOR выбирает каким образом инструкция перехода срабатывает (флаг установлен/сброшен).
Выход /BRTAKEN в инверсной логике, то есть если переход сработал, то /BRTAKEN = 0.

Примечание : логика BRANCH TAKEN работает постоянно и значение контрольной линии /BRTAKEN обновляется каждый такт, причем в не зависимости от того, какая инструкция обрабатывается процессором в данный момент.



Назад...