ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 445
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
297
• интеграция - в дополнение к трем независимым операционным устройствам DSP имеет шесть видов памяти на кристалле, три перифе- рийных устройства (последовательный коммуникационный интерфейс
(SCI), синхронный последовательный интерфейс (SSI), host-интерфейс, генератор тактовой частоты и семь шин (три адресных и четыре шины данных), при этом система является компактной и достаточно дешевой, а также обладает низким энергопотреблением;
• конвейер команд — трехступенчатый конвейер инструкций прозрачен для программиста;
• система команд - 62 инструкции, мнемоники которых совпадают с инструкциями микроконтроллеров и упрощают трансляцию программ для DSP. Дополнительные инструкции DSP служат для управления па- раллельными операционными устройствами;
• совместимость программного кода для всех представителей се- мейства;
• низкое энергопотребление - за счет использования КМОП- технологии, а также следующих дополнительных возможностей управ- ления энергопотреблением: инструкция WAIT; инструкция STOP, оста- навливающая внутренний генератор тактовой частоты; уменьшение по- требления энергии за счет уменьшения частоты.
Приведенные характеристики отражают специализацию архитек- туры DSP для приложений цифровой обработки сигналов.
Структура DSP56002, который является базовым для семейства, представлена на рисунке 8.7.
Основные компоненты DSP:
• шины данных;
• шины адреса;
• арифметико-логическое устройство данных;
• устройство генерации адреса;
• память данных X;
• память данных Y;
• контроллер программ;
• память программ;
• устройства ввода/вывода: расширение памяти (порт А); порты ввода/вывода (В и С); host-интерфейс; последовательные интерфейсы; таймеры.
1 ... 13 14 15 16 17 18 19 20 21
Шины
данных. DSP организован на регистрах центрального про- цессора, составляющих три независимых операционных устройства.
Передача данных на кристалле осуществляется по четырем двунаправ-
298
ленным 24-разрядным шинам: шине данных X (XDB), шине данных Y
(YDB), шине данных программ (PDB), глобальной шине данных (GDB).
Шины данных X и Y могут объединяться в 48-разрядную шину для пе- редачи инструкций. Шины XDB и YDB сделаны локальными для уве- личения скорости и уменьшения потребления мощности. Все другие передачи данных происходят по шине GDB. Структура шин поддержи- вает передачу данных типов «регистр - регистр», «регистр - память»,
«память - регистр». Размер передаваемых данных изменяется от 24- до
56-битных слов в одном командном цикле. Переходы между шинами осуществляются с помощью специального переключателя.
Рисунок 8.7 - Структура DSP56002
Шины
адреса. Адреса внутренней памяти данных X и Y переда- ются по двум однонаправленным 16-битным шинам - адресной шине X
(ХАВ) и адресной шине Y (YAB). Адреса памяти программ передаются по двунаправленной шине адресов программ (РАВ).
Пространство внешней памяти адресуется с помощью однона- правленной 16-битной шины с тремя состояниями выходов, которую
299
можно переключить на ХАВ, YAB или РАВ. В одном командном цикле может быть произведен только один доступ к внешней памяти.
Переход между шинами осуществляется с помощью переключателя внутренних шин. Он представляет собой программируемую матрицу ключей, позволяющую соединять две любые внутренние шины без за- держек.
В блоке переключателя шин расположено устройство манипуля- ций с битами за счет которого переключатель обеспечивает доступ к любому адресному пространству. Устройство манипуляций с битами выполняет битовые операции (установку, сброс, сравнение и т.п.) в па- мяти, адресных регистрах, регистрах управления и регистрах данных через шины XDB, YDB и GDB.
Арифметико
-логическое устройство данных. АЛУ данных (ри- сунок 8.8) разработано для улучшения возможности обработки сигна- лов широкого динамического диапазона. Специальные схемы обеспе- чивают простой контроль ошибок округления и переполнения обраба- тываемых данных. АЛУ содержит четыре 24-битных входных регистра, два 48-битных аккумулятора, два 8-битных регистра расширения акку- мулятора, аккумулятор сдвига, две шины данных и параллельное не- конвейеризованное устройство умножения с аккумулированием (MAC).
Операции АЛУ используют арифметику дополнения до двух, в которой для представления отрицательных чисел используется дополнительный машинный код. В регистры АЛУ могут быть записаны 24- или 48- разрядные операнды. АЛУ позволяет выполнять в одном командном цикле инструкции умножения, сложения, вычитания, итерационного деления, нормализации, сдвигов, логических операций. Регистры АЛУ данных могут быть прочитаны или записаны 24-битными или 48- битными операндами по шинам XDB, YDB. Операнды источника могут иметь длину 24,48 и 56 бит и всегда находятся в регистрах АЛУ дан- ных. Результат любой операции в АЛУ данных сохраняется в аккуму- ляторе. Формат чисел с фиксированной запятой в виде правильных дробей с представлением отрицательных чисел в дополнительном коде.
24-битные данные обеспечивают динамический диапазон в 144дБ.
Такого диапазона достаточно для большинства приложений, в которых используются параметры разрядностью не больше 24 бит. 56-битный аккумулятор АЛУ данных обеспечивает 336 дБ внутреннего динамиче- ского диапазона.
АЛУ данных имеет следующие компоненты:
• четыре 24-битных входных регистра;
300
• параллельный умножитель - аккумулятор (MAC);
• два 48-битных регистра аккумулятора;
• два 8-битных регистра расширения аккумулятора;
• аккумулятор сдвига;
• два устройства сдвига/ограничения по шине данных.
Рисунок 8.8 - АЛУ данных
Входные регистры АЛУ данных (Х1, Х0, Y1, Y0). Это 24-битные регистры данных общего назначения. Они могут использоваться как не- зависимые 24-битные регистры или как два 48-битных регистра X и Y, образованные объединением Х1 :Х0 и Y1 :Y0 соответственно. Х1 - старшее слово X, Y1 -старшее слово Y. Регистры служат входными бу- ферами между XDB или YDB и устройством MAC. Они используются как операнды источника АЛУ данных. Содержимое регистров может быть выдано на соответствующую шину данных для процедур обработ- ки прерываний.
Аккумуляторы АЛУ данных. Шесть регистров АЛУ данных (А2,
А1, А0, В2, В1 и В0) формируют два 56-битных аккумулятора общего
301
назначения. Каждый из аккумуляторов содержит по три объединенных регистра (А2:А1:А0 и В2:В1:В0). 24-битная MSP хранится в А1 или В1,
24-битная LSP - в А0 или В0. 8-битное расширение - в А2 или В2.
8-битные регистры расширения предназначены для защиты от пе- реполнения. В DSP56000/DSP56001 диапазон значений операндов со- ставляет от -1 до +0,9999998. Если сумма двух чисел меньше -1 или больше +0,9999998, то возникает потеря значимого разряда или пере- полнение. 8-битный регистр расширения формирует результат в случае
8 переносов.
При использовании регистра расширения аккумулятора бит пере- полнения в регистре кодов условий всегда установлен в единицу.
Расширение знака обеспечивается автоматически при записи в 56- битный аккумулятор А или В 48-битного или 24-битного операнда. Ес- ли записывается 24-битный операнд, ISP автоматически заполняется нулями для представления операнда в 56-битной форме,
Если аккумуляторы А и В прочитаны, можно с помощью опера- ций масштабировать их содержимое на один бит влево или вправо для блока арифметики с плавающей точкой.
MAC и логическое устройство. MAC и логическое устройство входят в главное арифметическое устройство DSP и выполняют все вы- числения с операндами данных. В случае арифметической команды устройство обрабатывает до трех операндов и выдает 56-битный ре- зультат в следующем формате: расширение: старшая значащая часть: младшая значащая часть (EXT: MSP: LSP).
Операция MAC выполняется независимо и параллельно с опера- циями на шинах данных, что облегчает буферизацию входных и выход- ных данных АЛУ. Арифметическое устройство МАС содержит умно- житель и два аккумулятора. На вход умножителя могут поступать дан- ные только из регистров X и Y. Умножитель выполняет умножение 24 х
24 с дополнением до двух. 48-битный результат выравнивается и сум- мируется с 56-битным содержимым аккумулятора А или В. 56-битная сумма сохраняется в аккумуляторе (рисунок 8.9).
8-битное расширение аккумулятора фиксирует переполнение до
256 и позволяет складывать или вычитать содержимое 56-битных акку- муляторов. Операция MAC (умножение/ сложение) - неконвейеризо- ванная одноцикловая операция. Если инструкция предусматривает ум- ножение без сложения, то устройство MAC очищает аккумулятор и складывает его содержимое с произведением. Таким образом, результат всех арифметических инструкций представляется в формате
302
EXT:MSP:LSP (A2:A1:А0 или В2:В1.В0). Если результат сохраняется в
24-битном операнде, LSP просто отсекается или округляется до MSP.
Рисунок 8.9 - Устройство__сдвига_аккумулятора.'>Устройство MAC
Округление до ближайшего целого применяется при сложении произведения с содержимым аккумулятора в специальной команде DSP
- MACR. Бит, до которого идет округление в аккумуляторе, определя- ется битом режима масштабирования в регистре статуса.
Логическое устройство выполняет операции логического умноже- ния AND, логического сложения OR, исключающее ИЛИ EOR, инвер- сии NOT над регистрами АЛУ. Это устройство имеет разрядность 24 бита и оперирует старшей значащей частью операнда в аккумуляторе.
Устройство
сдвига аккумулятора. Асинхронное параллельное устройство сдвига с 56-битным входом и 56-битным выходом подклю- чено непосредственно к выходам MAC. Выполняет операции: нет сдви- га; сдвиг на один бит влево: ASL, LSL, ROL; сдвиг на один бит вправо:
ASR, ASL, ROR; обнуление.
Устройство
сдвига/ограничения. Обеспечивает специальную обработку данных при выдаче из регистров аккумулятора на шины данных. Для каждой шины данных имеется отдельное устройство сдви- га/ограничения. Операция ограничения в случае переполнения разряд- ной сетки выполняется посредством замены результата вычислений
303
максимально возможной величиной. Знак данных устанавливается со- ответственно операнду источника: $7FFFFF - для 24-битного или
$7FFFFF FFFFFF - для 48-битного положительного числа, $800000 - для
24-битного, $800000 000000 -для 48-битного отрицательного числа.
MAC использует округление содержимого аккумулятора с оди- нарной точностью. Данный метод округления называется округлением до ближайшего целого или конвергентным округлением.
Пространство
памяти
DSP56002.
Пространство памяти
DSP56002 представлено на рисунке 8.10. Регистр OMR расширен бита- ми YD (3 бит), МС (4 бит) SD (6 бит). Биты DE и YD задают режимы памяти (таблица 8.1).
Таблица 8.1 - Режимы работы памяти
DE
YD
Память данных
0 0
Внутренние ПЗУ запрещены и их адреса являются частью внешней памяти
0 1
Внутреннее ПЗУ данных X запрещено и является частью внешней памяти. Внутренние ОЗУ и ПЗУ данных Y запрещены и являются ча- стью внешней памяти
1 0
ПЗУ данных X и Y разрешены
1 1
Внутренние ОЗУ и ПЗУ данных Y запрещены и являются частью внешней памяти. Внутреннее ПЗУ данных X разрешено
Однокристальный режим. В однокристальном режиме разрешены все внутренние памяти данных и программ. Программный сброс вызы- вает переход по адресу $0000 и выполнение соответствующей процеду- ры.
Карты памяти для режима 0 и режима 2 идентичны, но в режиме 2 вектор сброса находится по адресу $Е000.
Режим загрузки из EEPROM. Загрузочные режимы предназначены для загрузки программ из байтового ПЗУ во внутреннюю память про- грамм в течение сброса по питанию. После включения питания генера- тор состояний ожидания добавляет 15 состояний ожидания ко всем об- ращениям к внешней памяти, что позволяет использовать медленную память.
Программа загрузки использует байты в трех последовательно расположенных ячейках внешнего ПЗУ для образования слова внут- ренней памяти программ. В загрузочном режиме разрешены загрузоч- ное ПЗУ на кристалле и выполнение программы загрузки.
304
Нормальный расширенный режим. В этом режиме разрешено внутреннее ОЗУ программ и вектор аппаратного сброса по адресу
$Е000.
Режим разработки. В этом режиме внутреннее ОЗУ программ за- прещено, а вектор аппаратного сброса находится по адресу $0000. Все ссылки на пространство памяти программ переадресуются прямо во внешнюю память.
Режим загрузки по Host. В этом режиме разрешены загрузочное
ПЗУ и выполнение программы загрузки. Режим аналогичен режиму 1, за исключением того, что программа загружается из внешней памяти программ по host-интерфейсу.
Режим загрузки по SCI. В этом режиме разрешены загрузочное
ПЗУ и выполнение программы загрузки. Внутреннее и/или внешнее
ОЗУ программ загружается по интерфейсу SCI Количество слов про- граммы и стартовый адрес должны быть определены.
Программа загрузки по SCI ожидает приема трех байтов, опреде- ляющих количество слов программы, трех байтов, определяющих ад- рес, с которого будут загружаться слова программы, и трех байтов для загрузки каждого слова программы. Режимы DSP56002 и управляющие сигналы приведены в таблице 8.2.
Данные принимаются в SCI, начиная с младших битов. После окончания приема слов программы начинается выполнение загружен- ной программы. SCI запрограммирован на работу в асинхронном режи- ме с длиной данных - 8 бит, 1 стоп-бит, проверка на четность отсутст- вует.
Таблица 8.2 -Операционные режимы работы DSP56002
Опер. режим
МС
MB
MA
Описание
0 0
0 0
Однокристальный режим - ОЗУ программ разрешено
1 0
0 1
Режим загрузки с EPROM, выход в режим 0 2
0 1
0
Нормальный расширенный режим - ОЗУ программ разрешено
3 0
1 1
Режим разработки - ОЗУ программ запрещено
4 1
0 0
Резерв
5 1
0 1
Загрузка по Host, выход в режим 0 6
1 1
0
Загрузка по SCI (внешняя синхронизация), выход в режим 0 7
1 1
1
Резерв
305
Рисунок 8.10 – Пространство памяти DSP56002
306
Устройство
генерации адресов (address generate unit - AGU) и
режимы
адресации.
Структура AGU. AGU выполняет вычисление истинных (физиче- ских) адресов данных в памяти. Это устройство использует три типа адресной арифметики: линейную модификацию адреса, модульную мо- дификацию адреса, адресацию с реверсивным переносом - и работает параллельно с остальными устройствами на кристалле, что сокращает время на генерацию адресов. Структура AGU показана на рисунке 8.11.
Все регистры AGU являются 24-разрядными, в которых 16 младших разрядов являются значащими. Старшие 8 разрядов недоступны для за- писи и при чтении заполняются нулями.
Блок регистров адреса (R0-R3 и R4-R7). Каждый из двух подбло- ков регистров адреса содержит четыре 16-битных регистра, которые содержат адреса для обращения к памяти. Каждый регистр может быть прочитан или записан с использованием глобальной шины данных. При выдаче содержимого регистров на шину данных 16-битные регистры записываются в два младших значащих байта шины данных, а старший значащий байт заполняется нулями.
При записи в регистры старший значащий байт шины данных отсекает- ся. Каждый адресный регистр может использоваться как вход АЛУ ад- ресов для модификации регистров. Регистр из АЛУ нижних адресов и регистр из АЛУ верхних адресов доступны в одной инструкции.
Если параллельно осуществляется пересылка данных из памяти X и из памяти Y, адресные регистры разделяются на два блока: R0 - R3,
R4 - R7. Содержимое регистров адреса может модифицироваться соот- ветственно режиму адресации. Тип модификации определяется содер- жимым регистров модификации (Мn). Регистры смещения (Nn) исполь- зуются для режима адресации «модификация со смещением».
Большинство режимов адресации модифицируют регистры адреса в цикле «чтение - модификация - запись».
Блок регистров смещения (N0-N3 и N4-N7). Каждый из двух под- блоков регистров смещения содержит четыре 16-битных регистра, ко- торые содержат величину смещения, используемую для модификации адресных указателей или данных. Каждый регистр может быть прочи- тан или записан с использованием глобальной шины данных. При вы- даче содержимого регистров на шину данных 16-битные регистры за- писываются в два младших значащих байта шины данных, а старший значащий байт заполняется нулями. При записи в регистры старший значащий байт шины данных отсекается.