ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 447
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
307
Рисунок 8.11 - Структура AGU
Блок регистров модификации (М0-МЗ и М4-М7). Каждый из двух подблоков регистров модификации содержит четыре 16-битных регист- ра, которые определяют тип адресной арифметики для вычисления мо- дификаций регистров адреса или данных. Каждый регистр может быть прочитан или записан с использованием глобальной шины данных. При выдаче содержимого регистров на шину данных 16-битные регистры записываются в два младших значащих байта шины данных, а старший значащий байт заполняется нулями. При записи в регистры старший значащий байт шины данных отсекается. Каждый регистр модифика- ции устанавливается в $FFFF после сброса, что определяет линейную арифметику при вычислении модификаций адреса.
АЛУ адресов. Два идентичных АЛУ адресов содержат 16-битный полный адрес, который может быть инкрементирован, декрементирован или к которому может быть добавлено содержимое регистра смещения.
Второе полное слагаемое (называемое модулем) определяется результа- том суммирования первого полного слагаемого с величиной модуля, хранящейся в регистре модификации. Третье полное слагаемое опреде- ляется инкрементированием, декрементированием содержимого адрес- ного регистра или его суммированием с величиной смещения и перено- сом. Смещение и реверсивный перенос подаются параллельно на раз- ные входы. Тестовая логика определяет, какой из трех результатов по- дается на выход в качестве полного адреса
308
Каждое АЛУ адресов может модифицировать один регистр адреса в течение одного командного цикла. Содержимое регистра модифика- ции определяет тип арифметики для модификации адреса. Величина модификатора декодируется в АЛУ адресов.
Адресация. DSP56000/DSP56001 обеспечивают три различных ти- па адресации: прямая регистровая, косвенная регистровая и специаль- ная. При прямой регистровой адресации и специальных режимах ис- пользование AGU не является обязательным. При прямой регистровой адресации в команде указывается физический адрес регистра, в котором находится операнд. Если регистр адреса используется для указания ячейки памяти, адресация называется косвенной регистровой, т.е. со- держимое регистра указывает не на сам операнд, а на адрес операнда.
Специальная адресация определяет адрес с учетом его модификации.
Модификация заключается в увеличении или уменьшении на единицу содержимого адресного регистра до или после выполнения команды.
Программный
контроллер.
Программный контроллер обеспечи- вает предварительную выборку инструкций, декодирование инструк- ций, управление аппаратными циклами и обработку исключений Кон- троллер содержит 15-уровневый 32-разрядный системный стек и шесть непосредственно адресуемых регистров (рисунок 8.12), программный счетчик PC (Program Counter), регистр адреса цикла LA (Loop Address), счетчик петли LC(Loop Counter), регистр статуса SR (Status Register), регистр режима операций OMR (Operating Mode Register) и указатель стека SP (Stack Pointer).
Системный стек представляет собой отдельный блок внутренней памяти, используемый для хранения регистра статуса и программного счетчика при вызовах подпрограмм и длительных прерываниях. В стеке также хранятся LA и LC для организации программных циклов.
Каждая ячейка стека включает два 16-разрядных регистра: стар- шую часть (SSH) и младшую часть (SSL) стека.
Все эти регистры могут быть прочитаны или записаны для упро- щения отладки системы. Хотя ни один из регистров программного кон- троллера не является 24-битным, все они читаются и записываются че- рез 24-битную шину PDB. При чтении регистров младшая часть битов
(LSB) является значащей, а старшая значащая часть битов (MSB) за- полняется нулями. При записи регистров младшая часть битов (LSB) является значащей, а старшая значащая часть битов просто отбрасыва- ется, поскольку имеет смысл только младшая значащая часть битов
(биты 15-0).
309
Рисунок 8.12 - Регистры контроллера
Программный контроллер содержит конвейер с тремя ступенями и управляет пятью состояниями процессора: нормальным, обработкой исключений, сбросом, ожиданием и остановом.
Структура программного контроллера. Программный контроллер состоит из трех аппаратных блоков: контроллера декодирования про- грамм (PDC), генератора адресов программ (PAG) и контроллера пре- рываний (PIC).
Контроллер декодирования программ. PDC включает в себя про- граммную логику для декодирования, генератор адреса регистра, меха- низм выполнения циклов, механизм выполнения повторений, генератор кодов условий, механизм выполнения прерываний, регистр-защелку инструкций и его копию. PDC декодирует 24-битную инструкцию, за- груженную в регистр-защелку, и вырабатывает все сигналы, необходи- мые для управления конвейером. Копия регистра-защелки инструкций оптимизирует выполнение инструкций повторения и перехода.
Генератор адресов программ. PAG содержит: регистры PC, SP, SS
(системный стек), OMR (регистр операционного режима), SR, LC и LA.
Циклы, являющиеся основной конструкцией алгоритмов цифровой об- работки сигналов, поддерживаются аппаратно.
При выполнении инструкции цикла DO в регистр счетчика цикла загружается количество повторений цикла, а в регистр адреса цикла -
310
адрес последней инструкции цикла, и устанавливается флаг цикла в ре- гистре статуса. Перед выполнением инструкции DO содержимое реги- стров LA, LC и SR сохраняется в стеке. Под управлением механизма выполнения циклов адрес первой инструкции цикла помещается в стек.
Пока флаг цикла в регистре статуса не сброшен, механизм выполнения циклов сравнивает содержимое PC с содержимым LA для определения последней инструкции цикла. Когда последняя инструкция выбрана, содержимое LC сравнивается с единицей. Если равенство не выполня- ется, содержимое LC декрементируется и из SS читается адрес первой инструкции цикла. Если равенство выполняется, то значения LA, LC и флага цикла в SR восстанавливаются из стека, а выборка инструкций продолжается с адреса LA + 1.
Пересылка массива данных может быть выполнена с использова- нием механизма повторений. Инструкция REP загружает в LC количе- ство повторений следующей за ней инструкции. Так как команда, кото- рая будет повторяться, выбрана только один раз, это увеличивает про- изводительность за счет уменьшения обращений к внешней шине. Од- нако инструкция RЕР не может быть прервана, поскольку выбирается только один раз.
Контроллер прерываний. PIC принимает все запросы прерываний, осуществляет арбитраж в каждом цикле и генерирует адрес вектора прерывания. Прерывания могут вызывать четыре внешних и 16 внут- ренних источников прерываний.
Используется структура гибкого приоритета прерываний. Каждое прерывание получает свой уровень приоритета (IPL) - от 0 до 3. Уро- вень 0 - самый низкий, а уровни 1 и 2 маскируются. Уровень 3 является высшим и не маскируется. Биты маски прерываний в регистре статуса
(SR) показывают текущий уровень приоритета прерываний в процессо- ре. Прерывания, имеющие уровень приоритета меньше текущего, не учитываются при арбитраже. Уровень приоритета 3 всегда вызывает прерывание процессора. Уровни приоритета прерываний для каждого периферийного устройства на кристалле (HI, SSI, SCI) и для каждого внешнего источника прерываний (
¬
IRQA,
¬
IRQB) могут задаваться программным путем от 0 до 2. Уровни приоритета устанавливаются при записи в регистр уровней приоритета, представленный на рисунке 5.13.
В DSP56002 регистр уровней приоритета прерываний расширен: добавлены биты 16 -TIL1 и 17 - TIL0, которые задают уровень приори- тета прерываний от таймера. Источники прерываний и их уровни при- оритета указаны в таблице 8.3. Каждый источник прерываний имеет
311
свой вектор для вызова процедуры обработки прерывания, располо- женной в младших 64 словах памяти программ. При переходе к обра- ботке исключений текущая инструкция выполняется, если только вы- бранное слово не является первым словом двухсловной инструкции, иначе выполнение инструкции прерывается.
Далее выполняется две выборки адреса, во время которых PC не изменяется. PIC генерирует выборку адреса инструкции прерывания, указывающего на первое слово двухсловной инструкции подпрограммы быстрой обработки прерывания. Затем производится выборка двух слов инструкции по вектору прерывания.
Если одно из этих слов - переход к подпрограмме, то быстрая об- работка прерывания переводится в длительную. Процедура длительной обработки прерывания помещает текущий контекст процессора в стек.
Подпрограммы и прерывания могут быть вложенными. Стек может быть расширен в память за счет использования программного доступа к регистрам SSH и SSL. Контакты внешних прерываний
¬
IRQA и
¬
IRQB могут быть настроены на прерывания по переднему или задне- му фронту. Немаскируемое прерывание NMI осуществляется по уров- ню и выполняется по первому появлению на контакте
¬
IRQB 10В по- сле последнего обслуживания NMI или сброса. NMI имеет уровень приоритета 3 и не маскируется. NMI не используется как вход преры- вания общего назначения, поскольку зарезервировано для аппаратных разработок.
Вектор аппаратного сброса может указывать на внутреннюю или внешнюю (Р.$Е000) память программ. Немаскируемое прерывание, трассировка и программное прерывание используются при отладке.
Рисунок 8.13- Формат регистра уровней приоритета
Программное прерывание используется для организации точек ос- танова. При трассировке инструкции выполняются в пошаговом режи- ме.
312
Таблица 8.3 - Уровни приоритета
Стартовый адрес
IPL
Источник
Р.$0000/Р.$Е000 3
Аппаратный внешний сброс
Р.$0002 3
Ошибка стека
Р.$0004 3
Трассировка
Р.$0006 3
Программное прерывание SWI
Р.$0008 0-2
Внешнее прерывание LLJIRQA
Р.$000А
0-2
Внешнее прерывание LUIRQB
Р.$000С
0-2
SSI - Приемник данных
Р.$000Е
0-2
SSI - Приемник данных в состоянии исключения
Р.$0010 0-2
SSI - Передатчик данных
Р.$0012 0-2
SSI - Передатчик данных в состоянии исключения
Р.$0014 0-2
SCI - Приемник данных
Р.$0016 0-2
SCI - Приемник данных в состоянии исключения
Р.$0018 0-2
SCI - Передатчик данных
Р.$001А
0-2
SCI - Простой линии
Р.$001С
0-2
SCI - Таймер
Р.$001Е
3
NMI - Зарезервировано для разработок
Р.$0020 0-2
Host - Приемник данных
Р.$0022 0-2
Host - Передатчик данных
Р.$0024 0-2
Host - Команда
Р.$0028 0-2
Доступно для команд Host
Р.$002А
0-2
Доступно для команд Host
Р.$002С
0-2
Доступно для команд Host
Р.$002Е
0-2
Доступно для команд Host
Р.$0030 0-2
Доступно для команд Host
Р.$0032 0-2
Доступно для команд Host
Р.$0034 0-2
Доступно для команд Host
Р.$0036 0-2
Доступно для команд Host
Р.$0038 0-2
Доступно для команд Host
Р.$003А
0-2
Доступно для команд Host
Р.$003С
0-2
Доступно для команд Host
Р.$003Е
0-2
Неправильная инструкция
Все периферийные устройства на кристалле используют одинако- вый механизм запроса прерываний. Каждое устройство имеет одну ли- нию запроса прерывания в PIC и две входные линии: линию чтения вектора и линию ответа.
Устройство, имеющее более одного источника прерывания, про- водит собственный арбитраж прерывания в соответствии с его внут- ренним уровнем приоритета. PIC выбирает одно из периферийных уст- ройств и посылает ему адрес вектора прерывания.
Конвейер инструкций. Программный контроллер содержит трех- уровневый конвейер, выполняющий выборку, декодирование и испол-
313
нение инструкций. Устройства выборки, декодирования и исполнения расположены последовательно.
Синхронизация. DSP56000/DSP56001 использует четырехфазную синхронизацию выполнения инструкций. Синхронизация обеспечива- ется внутренним генератором, соединенным с внешним кристаллом контактами XTAL и EXTAL, или внешним генератором по линии
EXTAL.
Программная модель. Программная модель контроллера пред- ставлена на рисунке 8.14. Она содержит наряду с программным счетчи- ком, регистром статуса и системным стеком дополнительные регистры счетчика цикла и адреса цикла, предназначенные для аппаратной под- держки инструкции DO.
Рисунок 8.14 - Программная модель контроллера
(* - запрещены для изменения, читаются как нуль)
Программный счетчик (PC), 16-битный регистр, содержащий ад- рес следующей ячейки в памяти программ. PC может указывать на ин- струкции, операнды данных или адреса операндов. Ссылки на этот ре- гистр подразумеваются в большинстве инструкций. PC запоминается в стеке при выполнении программного цикла, подпрограммы или преры- вания.
Регистр статуса (SR). 16-битный регистр статуса SR состоит из регистра режима MR, занимающего 8 старших битов и регистра кодов условий CCR, занимающего 8 младших битов. Регистр статуса сохраня- ется в стеке при выполнении программного цикла, подпрограммы или прерывания. Формат регистра показан на рисунке 8.15.
314
Рисунок 8.15 - Формат регистра статуса SR
Регистр управления (MR). MR - специальный управляющий ре- гистр, определяющий текущее состояние процессора для супервизора.
На биты регистра режима MR воздействуют сброс процессора, выпол- нение цикла, возврат из прерывания, программное прерывание и инст- рукции, оперирующие непосредственно с содержимым регистра. После аппаратного сброса в регистре устанавливается маска прерывания, би- ты масштабирования, флаг цикла, бит трассировки сбрасываются в «0».
Регистр кодов условий (CCR). Регистр кодов условий (флагов) оп- ределяет текущее состояние процессора для пользователя. На регистр кодов условий воздействуют арифметические и логические операции, операции пересылки и инструкции, оперирующие непосредственно с содержимым регистра. После сброса все биты CCR устанавливаются в
«0».
Флаг переноса (С - бит 0) устанавливается в «1» при наличии пе- реноса из старшей значащей части числа в результате сложения. Пере- нос или заем генерируется из бита 55 результата. Перенос также возни- кает при манипуляциях с битами, сдвигах и циклических сдвигах.
Флаг переполнения (V-бит 1) устанавливается при арифметиче- ском переполнении 56-битного результата. Это означает, что результат не может быть представлен в аккумуляторе.
Флаг нуля (Z- бит 2) устанавливается в «1», если результат равен нулю.
Флаг отрицательного результата (N - бит 3) устанавливается в «1», если результат имеет отрицательный знак.
Флаг денормализации (U - бит 4) устанавливается, если два старших бита идентичны.
Флаг расширения (Е- бит 5) сброшен в «0», если все биты целой части 56-битного результата - нули или единицы, иначе бит установлен.
Целая часть определяется режимом масштабирования и битом Е. Если бит расширения равен нулю, то младшая часть числа содержит все зна- чащие биты, а старшая часть числа является расширением знака. В этом случае регистр расширения аккумулятора игнорируется. Если бит рас- ширения равен единице, то регистр расширения аккумулятора исполь- зуется.
315
Флаг ограничения (L - бит 6) установлен, если установлен бит пе- реполнения. Также устанавливается при выполнении операций ограни- чения устройством сдвига/ограничения данных. Бит сбрасывается толь- ко при сбросе процессора или специальной командой.
Маска прерывания (I1,I0 - биты 8 и 9). Показывает текущий уро- вень приоритета прерываний в процессоре. Уровень приоритета изме- няется программным путем. Биты маски прерываний устанавливаются в «1» при аппаратном сбросе процессора и не изменяются при про- граммном сбросе.
Режим масштабирования (S1,S0 - биты 10 и 11). Биты определяют режим масштабирования для устройства сдвига/ограничения данных
АЛУ и позиции округления для MAC. Действие режима масштабирова- ния проявляется при чтении данных из аккумуляторных регистров А и
В на шины данных и при округлении в MAC. При сбросе процессора и начале длительной обработки прерывания эти биты равны нулю.
Режим трассировки (Т- бит 13). Бит устанавливается в начале вы- полнения каждой инструкции в пошаговом режиме. Если бит равен ну- лю, трассировка запрещена и выполнение инструкций идет нормаль- ным образом. При сбросе процессора бит Т равен нулю.
Флаг цикла (LF- бит 15). Бит устанавливается при выполнении программного цикла и разрешает определение окончания цикла. По за- вершении цикла бит устанавливается в «0».
Регистр операционного режима (OMR). OMR -24-битный регистр
(рисунок 8.16), в котором определены 5 битов для DSP56000/DSP56001 и 7 битов для DSP56002. Устанавливает текущий операционный режим процессора.
Рисунок 8.16 –Формат регистра операционного режима DSP56002
На биты регистра воздействует только сброс процессора и непо- средственные операции с содержимым регистра. После сброса биты
МА и MB могут быть загружены извне через контакты А и В.
Биты операционного режима кристалла (МА, МВ - биты 0 и 1) по- казывают режим расширения шин в процессоре. После сброса эти зна- чения загружаются извне через внешние контакты выбора операцион- ного режима
¬
MODA и
¬
MODB, либо могут быть изменены про- граммным путем.
316
Бит разрешения ПЗУ данных (DE- бит 2). Установка бита разре- шает использование двух ПЗУ данных размером 256 х 24, находящихся по адресам $0100 - $01FF в пространствах памяти X и Y.
Бит запрещения внутренней памяти Y (YD - бит 3).Установка бита запрещает доступ к внутренней памяти данных Y. Если бит равен нулю, внутренняя память данных Y доступна в соответствии с состоянием управляющего бита DE. Аппаратный сброс очищает бит YD
Бит операционного режима кристалла (МС - бит 4). Бит МС наря- ду с битами МА и MB определяет карту памяти и операционный режим кристалла. После сброса процессор загружает этот бит через внешний контакт MODC После выхода процессора из состояния сброса бит МС может быть изменен программным путем.
Бит задержки останова (SD - бит 6). При выходе из состояния ос- танова (по инструкции STOP) если этот бит равен нулю, генерируется задержка в 64К циклов синхронизации (131072 Т состояний). Если бит установлен в «1», задержка составляет 16 Т состояний. Длительная за- держка используется для стабилизации синхронизации
Бит доступа к внешней памяти (ЕА - бит 7). Бит определяет функ- ции двух линий порта А, указанные в таблице 8.4.
Таблица 8.4 – Функции линий порта А
ЕА
Линия
¬
BR (Вход) Линия
¬
BG (Выход)
0 1
Запрос шины (
¬
BR)
Ожидание ( WT)
Предоставление шины (
¬
BG)
Стробирование шины (
¬
BS)
Регистр адреса цикла и регистр счетчика цикла (LA и LC). Со- держимое регистра адреса цикла LA указывает на местонахождение слова последней инструкции программного цикла LC -специальный 16- битный счетчик, определяющий число повторений цикла.
При выполнении инструкции DO содержимое регистра LA поме- щается в SSH, а регистра LC - в SSL, откуда оно извлекается только по- сле окончания цикла по инструкции ENDDO
При выборке инструкции по адресу, содержащемуся в LA, прове- ряется содержимое LC. Если содержимое LC не равно единице, оно декрементируется и следующая инструкция выбирается по адресу, на- ходящемуся в верхней ячейке стека В противном случае PC инкремен- тируется, флаг цикла сбрасывается, регистры LA и LC восстанавлива- ются из стека и продолжается нормальное выполнение программы.
Регистр LC программно доступен, и выполнение цикла может