Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

Регистр Размер бит Описание
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 работать на высокой скорости, не прибегая к использованию дорогой высокоскоростной памяти. Специальное устройство предсказания переходов минимизирует задержку на условных переходах. Специальным образом организованные переходы еще больше увеличивают производительность.




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 383; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.