Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦОС 2.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2.92 Mб
Скачать

39. Генератор адресов команд (программный автомат). Функциональная схема.

Функциональная схема генератора адресов команд приведена на рисунке 6.5.

Генератор адресов команд (программный автомат) Program Sequencer генерирует поток адресов команд.

Рисунок 6.5 – Функциональная схема генератора адресов команд

Он обеспечивает

  1. последовательное исполнение команд,

  2. исполнение циклов,

  3. обработку прерываний,

  4. условную и безусловную передачу управления,

  5. вызов подпрограмм.

Во время выполнения команды процессором программный автомат загружает из памяти следующую команду. Источником следующего адреса может быть:

  1. счетчик команд, состоящий из регистра счетчика команд и блока «Инкремент»

  2. стек счетчика команд,

  3. регистр команд,

  4. контроллер прерываний.

Счетчик команд используется как источник следующего адреса при последовательном исполнении команд программы. Он состоит из регистра счётчика команд и блока «инкремент», который увеличивает адрес команды на единицу.

Стек счетчика команд используется в качестве источника следующего адреса при возврате из подпрограммы и в случае возврата к началу цикла.

Регистр команд обеспечивает следующий адрес в случае безусловного перехода. Адрес перехода кодируется в команде.

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

Блок выбора источника следующего адреса устанавливает, какой из четырех источников использовать на основании данных, извлекаемых из регистра команд, компаратора циклов, блока логики и контроллера прерываний.

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

Счетчик цикла и его стек обеспечивают процессор механизмом исполнения циклов. Счетчик является 14-битным регистром с возможностью автоматического уменьшения записанного в него числа на единицу. Перед входом в цикл счетчик загружается желаемым числом повторений из 14 младших бит шины данных памяти данных DMD. Логика CE (counter expired - число повторений истекло) проверяет условие окончания цикла.

Стек счетчика цикла хранит четыре 14-битных значения, что позволяет использовать вложенные циклы.

При выполнении команды цикла 14-битный адрес последней команды и 4-битное условие окончания цикла, содержащиеся в команде, помещаются в стек циклового компаратора. Компаратор цикла сравнивает адрес, находящийся на вершине стека циклового компаратора с адресом следующей команды. Когда эти два адреса равны, компаратор цикла уведомляет блок выбора источника адреса следующей команды, что в следующем процессорном цикле будет исполнена последняя команда цикла.

40. Функциональная схема процессора tms320c64xx

Укрупненная функциональная схема процессора приведена на рисунке 6.6.

Рисунок 6.6- Укрупнённая функциональная схема процессора TMS320C64xx

В состав процессора входят: ядро, обеспечивающее обработку данных, память программ (L1P – кэш), память данных (L2D – кэш), память данных и программ L2, контроллер прямого доступа к памяти, к которому подключаются периферийные устройства (устройства ввода/вывода данных, таймеры, интерфейсы внешней памяти и т.д.). Процессор снабжён системой управления энергопотреблением.

Ядро процессора содержит два канала обработки данных. В каждом канале обработки данных имеется по 32 регистра общего назначения: А0 – А31 и В0 – В31. Каждый регистр содержит 32 двоичных разряда.

Для хранения 40- или 64 – разрядных операндов используются пары соседних регистров, например, А1:А0, А3:А2, В31:В30. Младшие разряды числа записываются в регистр с четным номером, старшие разряды – в регистр с нечетным номером. Регистры могут использоваться не только в своем канале, но и в соседнем. Для этого предусмотрены перекрестные связи между каналами.

В каждом канале имеется по 4 функциональных блока: один умножитель (M1, M2) и три АЛУ (L1, S1, D1, L2, S2, D2). Каждый блок АЛУ имеет свои особенности. Например, блоки D1 и D2 используются для адресации данных, в блоках S наряду с арифметическими и логическими операциями предусмотрены операции сдвига и ветвления программ и т.д.

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

В процессоре предусмотрена пакетная выборка инструкций. Пакет выборки состоит из восьми 32 – битовых инструкций. Все 8 инструкций пакета проходят четыре фазы конвейера:

1.Генерация адреса программы - PG (Program address generate),

2.Передача адреса программы в память - PS (Program address send),

3.Ожидание доступа к памяти программ - PW (Program access ready wait),

4.Прием пакета выборки - PR (Program fetch packet receive).

На рисунке 6.7 показано четыре разных пакета выборки. Если k – ый пакет находится в фазе PG, то k-3 - в завершающей фазе выборки PR

Фазе PG соответствует генерация адреса памяти программ в центральном процессоре. В фазе PS адрес пересылается в память программ, в фазе PW осуществляется чтение памяти программ. На завершающей фазе PR центральный процессор принимает пакет выборки.

Рисунок 6.7 - Четыре фазы программной выборки

Диспетчер инструкций разбивает пакет выборки на исполняемые пакеты, каждый из которых может содержать или одну инструкцию, или от двух до восьми параллельно исполняемых инструкций. На рисунке 6.8 показано два исполняемых пакета: первый содержит две одновременно исполняемые (затемненные) инструкции, второй - шесть.

Инструкции исполняемого пакета присваиваются соответствующим функциональным блокам и декодируются.

Рисунок 6.8 - Диспетчеризация и декодирование

После декодирования начинается процесс исполнения инструкции. Время выполнения инструкции может занимать от одного до 5 рабочих тактов процессора. Поэтому за описанными выше фазами выборки, диспетчеризации и декодирования следует 5 фаз конвейера выполнения E1, E2, E3, E4, E5.

Одним из способов обмена ядра процессора с внутренней и внешней периферией является обмен по прерываниям. Обмен по прерыванию осуществляется следующим образом. Процессор выполняет основную (фоновую) программу. Если внешнее устройство готово к обмену, оно формирует сигнал прерывания, который является причиной приостановки выполнения фоновой программы и перехода к выполнению специальной подпрограммы обработки прерываний. Эта операция представлена схематически рисунком 6.9.

Рисунок 6.9 – Прерывание фоновой программы

Прерывания подразделяются на

  1. Немаскируемые прерывания.

  2. Маскируемые прерывания.

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

Подпрограммы обслуживания прерываний могут быть «вложенными». Это означает, что любое периферийное устройство может прерывать уже выполняющуюся подпрограмму обслуживания прерывания, запрос на которое поступил от другого устройства. Подпрограмма обслуживания прерываний, как правило, может быть прервана устройством с более высоким приоритетом.

Процессоры С64xx обслуживает три типа прерываний, отличающихся друг от друга приоритетом.

К первому типу относится прерывание Reset, источником которого является сигнал активного низкого уровня на входе .

Второй тип – немаскируемое прерывание NMI, которое занимает по приоритету второе место после Reset и обычно используется, чтобы предупредить процессор об аппаратных проблемах, например, неисправностях источника питания. Для разрешения немаскируемого прерывания в регистре IER (interrupt enable register – регистр разрешения прерываний) устанавливается бит NMIE (nonmaskable interrupt enable) =1.

Третий тип – маскируемые прерывания INT4-INT15. Источником этих прерываний могут быть внешние устройства, внутренняя периферия процессора и команды программы. С64xx

Блок регистров управления обеспечивает управление работой ядра процессора и периферийных устройств.

Например, регистр режима адресации данных AMR (Addressing Mode Register) позволяет устанавливать режимы линейной или циклической адресации данных для восьми регистров, используемых при косвенной адресации, A4-A7, B4-B7.

В регистре управления и статуса CSR (Control Status Register) указывается код идентификации процессора (0x0801 для C64xx), задаются режимы управления энергопотреблением, памятью программ и памятью данных, разрешаются или запрещаются прерывания, устанавливается бит насыщения, если оно произошло при выполнении арифметической операции.

В состав блока регистров входят также регистры, обслуживающие прерывания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]