Концептуальная блок-схема CPU. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Концептуальная блок-схема CPU.



 

 

На схеме представлены::

· 32-разрядная шина считываемых команд. На нее считываются команды из памяти программ.

· 22-разряднаяадресная шина команд.

· 32-разрядная адресная шина считываемых данных.

· 32-разрядная шина считываемых данных. На нее считываются данные из памяти данных.

· Буфер считываемых данных. Это регистр для хранения считанных данных. Его выход передается на шину операндов, либо на генератор адреса памяти программ, если данные - это адрес стека. Это первый операнд при выполнении команды.

· Шина операндов. На ней находится первый операнд при выполнении команды.

· Шина результата операции в исполнительном устройстве.

· Буфер записываемых данных. Это регистр данных, записываемых в память данных. Он загружается с шины результатов операции Result Bus.

· Логика управления командами. Декодирует считанную команду и передает данные исполнительным устройствам.

· Логика генерации адресов команд.

· Арифметический модуль адресного регистра ARAU. Вычисляет адреса для регистрового файла и адресной шины считываемых данных.

· Регистровый файл, который содержит набор регистров (системные и общего назначения).

· Исполняющее устройство, включает - умножитель, параллельный сдвигатель, АЛУ. Умножитель реализован аппаратно, выполняет умножение 32х32 или два умножения 16х16.

Исполнительное устройство.

Основные регистры. Определен комплект регистров. Основные регистры:

Регистр Размер бит Описание
ACC   Аккумулятор
AH   Старшая часть ACC
AL   Младшая часть ACC
XAR0   Дополнительный регистр 0
XAR1   Дополнительный регистр 1
XAR2   Дополнительный регистр 2
XAR3   Дополнительный регистр 3
XAR4   Дополнительный регистр 4
XAR5   Дополнительный регистр 5
XAR6   Дополнительный регистр 6
XAR7   Дополнительный регистр 7
AR0   Младшая часть XAR0
AR1   Младшая часть XAR1
AR2   Младшая часть XAR2
AR3   Младшая часть XAR3
AR4   Младшая часть XAR4
AR5   Младшая часть XAR5
AR6   Младшая часть XAR6
AR7   Младшая часть XAR7
DP   Указатель на страницу памяти данных
IFR   Регистр флагов прерывания
IER   Регистр разрешения прерывания
DBGIER   Регистр разрешения прерывания при отладке
P   Регистр произведения
PH   Старшая часть P
PL   Младшая часть P
PC   Программный счетчик
RPC   Возврат значения программного счетчика
SP   Указатель стека
ST0   Статусный регистр ST0
ST1   Статусный регистр ST1
XT   Регистр сомножителя
T   Старшая часть XT
TL   Младшая часть XT

Аккумулятор (ACC). Главный регистр – аккумулятор (ACC). Он хранит результаты операций в АЛУ. Он поддерживает одноцикловые операции перемещения, сложения, вычитания и сравнения с данными из 32-разрядной памяти данных. Он также принимает 32-разрядный результат от умножителя.

Для ACC возможен доступ и к части его содержимого: AH – старшая часть, AL – младшая часть. Для каждого из них можно получать младший LSB или старший MSB байты.

Статусный регистр ST0. В нем запоминаются флаги состояния ACC

Флаги (по умолчанию все сброшены):

· Расширение знака (Sign-extension mode - SXM), бит 0. Если SXM=1, то при загрузке 16-разрядного числа со знаком в 32-разрядный ACC оно перед загрузкой расширяется по знаку (пустые биты заполняются битом знака) до 32-разрядного представления.

· Переполнение (Overflow mode -OVM), бит 1. Если OVM = 0 (режим переполнения выключен), то переполнения считаются в поле OVC в ACC. Если OVM = 1 (режим переполнения включен), то переполнения не подсчитываются, в ACC заносятся значения насыщения.

· Флаг теста/контроля (Test/control - TC), бит 2.

· Перенос (Carry - C), бит 3.

· Флаг нуля (Zero flag - Z), бит 4. Если результат операции равен 0, то Z=1.

· Флаг отрицательного значения (Negative - N), бит 5. Если результат операции отрицательное число, то N=1.

· Флаг запрета переполнения (Latched overflow flag - V), бит 6. Если результат операции вызывает переполнения в регистре хранения результата, то V=1 и защелкивается. Если нового переполнения нет, то V не меняется, остается защелкнутым от предыдущего переполнения.

· Поле режима сдвига произведения (Product shift mode bits - PM). Поле в битах 7…9. 3-разрядное значение определяет режим сдвига для значения, получаемого из регистра произведения P. Возможные режимы:.

PM Результат
PM=000 Сдвиг влево на 1, в младший бит заносится 0. Режим по умолчанию.
PM=001 Нет сдвига.
PM=010, 011, 100, 101, 110, 111 Сдвиг вправо на PM-1 бит, младший бит теряется, в старших битах расширение знака.

· Счетчик переполнения операций с числами со знаком (Overflow counter - OVC). Для чисел без знака OVCU. Поле в битах 10…15. Счетчик 6-разрядный со значениями от -32 до 31. При OVC=0 содержимое ACC не меняется. При OVC>0 содержимое ACC = насыщение по максимуму ($7FFFFFFF), OVC = 0. При OVC<0 содержимое ACC = насыщение по минимуму ($8000000), OVC = 0.

· Статусный регистр ST1

В нем запоминаются флаги состояния разных узлов.

Флаги (по умолчанию все сброшены):

· Флаг глобальной маски прерывания (Inerrupt global mask - INTM), бит 0. Если INTM=1, то маскированное прерывание запрещено.

· Флаг массирования отладки (Debag enable maskt -DBGM), бит 1. Если DBGM = 1, то отладка запрещена.

· Флаг режима адресации (PAGE0). Размещен в бите 2. При PAGE0=0 – адресация через стек, при PAGE0=1 – прямая.

· Флаг размещения вектора прерываний (VMAP), бит 3. При VMAP=0 вектор внизу памяти программ (адреса $000000…$000003F), при VMAP=1 вектор вверху памяти программ (адреса $3FFFC0…$3FFFFF).

· Флаг размещения указателя стека (Stack pointer alignment - SPA), бит 4. При SPA=0 указатель стека SP не может занимать четные адреса.

· Статус инструкции цикла (LOOP), бит 5. При LOOP=1 то под операцию LOOP отводится два этапа конвейера.

· Флаг разрешения эмуляции (EALLOW), бит 6. При EALLOW=1 разрешены эмуляция и доступ к защищенным регистрам.

· Флаг режима только чтение (IDLESTAT), бит 7. Устанавливается IDLESTAT=1 при выполнении инструкции IDLE. Флаг сбрасывается командами, отменяющими этот режим.

· Флаг режима адресации (AMODE), бит 8.

· Флаг совместимости режима (OBJMODE), бит 9. При OBJMODE=0 режим C27x, при OBJMODE=1 режим C28x.

· Флаг размещения M0, M1 (M0M1MAP), бит 11. Для C28x.обязательно M0M1MAP=1.

· Статус выходного сигнала XFS (XF), бит 12. При XF=1 совместимость с C2xLP.

· Указатель на дополнительные регистры (Auxiliary register pointer.- ARP). Поле размещено в битах 13-15. В него заносится 3-разрядный номер регистра (0-7).

· Умножитель

C28x содержит встроенный аппаратный умножитель, выполняющий умножение за 1 такт. Возможны:

· умножение16х16

· умножение16х16 с накоплением MAC

· умножение 32х32

· умножение 32х32 с накоплением DMAC

Концептуальная блок-схема умножителя в режиме 16x16. Умножитель получает 16-разрядные сомножители. Первый заносится в регистр T (старшая часть XT)из памяти данных или регистра. Второй извлекается из мультиплексора MUX, который получает значение из памяти данных или регистра, либо из кода инструкции.

32-разрядное произведение через MUX заносится в регистр произведения P (и может использоваться как операнд) и в аккумулятор ACC (для выполнения операций MAC).

Концептуальная блок-схема умножителя в режиме 32x32. Умножитель получает 32-разрядные сомножители. Первый заносится прямо из памяти данных или регистра Второй извлекается из MUX, который получает значение из памяти программ или регистра XT, который загружается из памяти данных или регистра.

64-разрядное произведение содержит 32-разрядные части (старшую и младшую). Одна из них через MUX и заносится в регистр произведения P.

 

Сдвигатель. Сдвигатель имеет 64 разряда и поддерживает операции сдвига влево и вправо. Входные операнды могут иметь длину 16, 32 или 64 разряда. Возможные сдвиги:

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

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

· Арифметический вправо. Младшие биты теряются, последний выдвигаемый бит заносится в бит переноса С. В старших расширение бита знака Sign.

· Циклический влево. Старшие биты по цепочке переносятся в младшие (в цепочку входит бит переноса С)аполняются нулями.ряда.га влево и вправо..

· Циклический вправо. Младшие биты по цепочке переносятся в старшие (в цепочку входит бит переноса С)аполняются нулями.ряда.га влево и вправо..

Прерывания и приоритеты. Прерывание это сигнал, генерируемый аппаратно или программно, по которому ЦП останавливает текущую программу и переходит к выполнению подпрограммы обработки прерывания. Обычно прерывания генерируются периферийными или аппаратными блоками, для того чтобы получить данные от ЦП.

Различаются прерывания:

· Маскируемые. Они могут быть блокированы или отменены другими устройствами. Каждому маскируемому прерыванию присваивается приоритетный номер (номер ниже – приоритет выше). Маскируемое прерывание выполняется, если нет запросов прерывания с более высокими приоритетами.

· Немасккируемые. Они не могут быть блокированы или отменены другими устройствами.

Обработка прерывания включает 4 фазы:

· Прием запроса прерывания.

· Обработка запроса. Если прерывание маскируемое, то нужно проверить условия разрешения прерывания. Немаскируемое прерывание должно выполняться немедленно.

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

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

C28x поддерживает 32 вектора прерывания: 19 приоритетных прерываний с приоритетами 1…19 (19 – нижний), 12 неприоритетных прерывания пользователя, 1 прерывание при неправильной инструкции. Каждый вектор включает стартовый адрес процедуры обработки прерывания (Interrupt Service Routine - ISR). Он накапливается в двух соседних словах памяти.

Конвейер. Для повышения производительности C28x использует защищенный 8-уровневый конвейер. На каждом уровне конвейера может быть команда для аппаратного блока ЦП (F1, F2, D1, D2, R1, R2, X, W). Конвейер работает независимо от действий программиста. Он управляется командами, заложенными в ЦП.

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

На рисунке выделен интервал времени, когда одновременно работают 8 блоков ЦП. За счет распараллеливания конвейер позволяет C28x работать на высокой скорости, не прибегая к использованию дорогой высокоскоростной памяти. Специальное устройство предсказания переходов минимизирует задержку на условных переходах. Специальным образом организованные переходы еще больше увеличивают производительность.

Архитектура F28x

В нем поддерживаются операции с плавающей точкой.

F28x = C28x + Flash.

Имеются дополнительные регистры:

Регистры R0H – R7H используются для хранения результатов операции с плавающей точкой, 32 бита.

Регистр FPU Status Register (STF) - регистр статуса блока с плавающей точкой, 32 бита. Его структура:

  30 -10   8 - 7              
SDWS резерв RND32 резерв TF ZI NI ZF NF LUF LVF
    бит округления   Флаг теста Флаг 0 целого числа Флаг <0 целого числа Флаг 0 числа c ПТ Флаг <0 числа ПТ Флаг переполнения Флаг переполнения

Регистр блока повторов (Repeat Block - RB), 32 бита. Его структура:

    29 - 23 22 - 16 15 - 0
RAS – бит прерывания RA – бит активности блока (0 или 1) RSize – размер блока повторения RE – адрес конца RC – счетчик повторов

Блок-схема.

Ядро процессора с производительностью 300MFLOPs при частоте 150МГц включает:

· 32x32 аппаратный умножитель.

· 32-разрядные таймеры (3).

· Встроенный модуль отладки (JTAG реального времени).

· Атомарное АЛУ, выполняющее короткие RISC инструкции.

· 32-разрядный модуль умножитель с ПТ.

Подсистема памяти:

· Flash до 512 Кбайт.

· ОЗУ (RAM) 68 Кбайт.

· Загрузочное ПЗУ (ROM).

· Интерфейс EMIF.

· 6 каналов прямого доступа к памяти (DMA).

Периферийный модули:

· 18 модулей ШИМ.

· Высокоскоростной встроенный АЦП.

· 6 модулей захвата (CAP).

· 88 выводов общего назначения.

· 2 канала McBSP с возможностью конфигурирования в режим SPI.

· Порт CAN 2.0b с 32 почтовыми ящиками (mailboxes).

· Интерфейс PC со скоростью 480 кбит/с.

· 2 импульсных квадратурных декодера (QEP).

Питание:

· Ядро 1,9 В.

· 3,3 В периферия.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 186; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.140.242.165 (0.05 с.)