Скачиваний:
95
Добавлен:
15.04.2023
Размер:
29.36 Mб
Скачать

38. Конвейерный регистр команд микропроцессорного ядра MicroBlaze.

Инструкция = команда.

ГРУБО: у нас есть список команд, которые должен выполнить микропроцессор. Каждая из них разбивается на равное количество составляющих, которые могут выполняться одновременно. Производится счет инструкций, они обрабатываются последовательно.

Буферный (конвейерный) регистр команд позволяет повысить производительность микропроцессорного ядра за счет параллельного выполнения нескольких команд. Для этого процесс обработки команды делится на несколько фаз (уровней). В MicroBlaze можно организовать 3-х или 5-ти уровневый конвейер. Каждая фаза выполняется в течение одного машинного цикла.

Пример для 3-х фаз (уровней):

Выборка – захват инструкции из программной памяти (ОЗУ – оперативная память), производится последовательно. Декодирование – определение типа инструкции. С выходов программной памяти формируются управляющие сигналы для выполнения команды. Они подаются на все блоки микропроцессорного ядра. Исполнение – выполнение инструкции. Контролируется программным счетчиком, на выходах которого формируется адрес выборки следующей инструкции, что обеспечивает последовательность. В обычном режиме (без прерываний) счетчик увеличивается на единицу.

Машинный цикл – интервал одного обращения к памяти или устройству; составляющая часть машинной команды.

Машинная команда, за которую выполняется 1 инструкция, разбивается несколько циклов (3 или 5). Благодаря этому можно выполнять фазы одновременно, повышая производительность.

39. Прерывания микропроцессорного ядра MicroBlaze.

ГРУБО: у нас есть задача с высшим приоритетом, которую нужно выполнить. Обработка предыдущей инструкции прерывается. Адрес прерванной инструкции запоминается, а сигнал, контролирующий прерывания, принимает значение 0, пока обработка не завершится.

Прерывание (interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события, требующего немедленного внимания. MicroBlaze изначально имеет один вход прерывания. Состояния обработки прерывания:

1.Адрес прерванной инструкции записывается в регистр общего назначения R14.

2.В программный счетчик загружается адрес процедуры обработки прерывания (0x00000010)(процессор знает, что именно по этому адресу находится «срочная» инструкция).

3.Флаг регистра статуса (Interrupt Enable (IE) Flag) сбрасывается до низкого логического уровня, что не позволяет зарегистрировать новое прерывание (то есть прервать текущее прерывание).

После завершения обработки адрес прерванной инструкции восстанавливается, а флаг регистра возвращается в состояние высокого логического уровня.

Еще есть понятие исключения - нештатная ситуация (ошибка), возникающая при работе процессора. При возникновении ошибки, в целом, происходит тоже самое:

1.Адрес прерванной инструкции записывается в регистр общего назначения R17.

2.В программный счетчик загружается адрес процедуры обработки исключения (0x00000008).

40. Кэш память микропроцессорного ядра MicroBlaze.

Для повышения производительности в состав микропроцессорного ядра MicroBlaze может быть включена быстродействующая кэш-память для хранения команд и данных. Размер этой памяти может составлять 2, 4, 8, 16, 32 и 64 Кбайт.

Реализация программной памяти:

  1. Память на основе ресурсов блочной памяти кристалла Block SelectRAM (встроенная на ПЛИС). Минус: объем памяти ограничен платой.

  2. Внешняя память. Объем программной памяти может достигать максимально допустимого значения (4 Гбайта).

  3. Совмещение 1-ого и 2-ого вариантов (внутренней блочной памяти ПЛИС и внешнего ППЗУ).

Можно добавить:

Есть разные типы памяти: блочная (отдельная, выделенная, двухпортовая оперативная память) и распределенная (распределена по многим LUT-ам в ПЛИС). В данном случае речь идет о специально выделенной памяти.

Кэш – быстрая память, к которой процессор может обратиться.

Соседние файлы в предмете Основы разработки систем на кристалле