Архитектура микропроцессора TMS320C40
Исследование центрального устройства обработки. Определение регистров устройства обработки. Анализ векторов аппаратных прерываний. Изучение внутренней и внешней памяти. Архитектура внутренней кэш-памяти команд. Характеристика методов адресации операндов.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 30.12.2020 |
Размер файла | 486,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Воронежский государственный лесотехнический университет имени Г.Ф. Морозова»
Кафедра вычислительной техники и информационных систем
Курсовая работа
По дисциплине «Инструментальные средства ИС»
На тему «Архитектура микропроцессора TMS320C40»
Студент ИС2-141 ОБ группы
Быханов Н.А.
Руководитель, к.т.н, доцент
Зольников К.В.
Воронеж 2017
Оглавление
Введение
1. Теоретическая часть
1.1 Архитектура процессора TMS320C4x
1.2 Центральное устройство обработки
1.3 Регистры устройства обработки
1.4 Внутренняя и внешняя память
1.5 Командный кэш
1.6 Встроенная периферия
1.7 Методы адресации операндов
Заключение
Список литературы
Введение
Процессорами цифровой обработки сигналов или сигнальными процессорами называют процессоры, архитектура и система команд которых ориентирована на быстрое выполнение программ, реализующих определенный класс алгоритмов, а именно алгоритмов цифровой обработки сигналов (ЦОС) (цифровая фильтрация, свертка, корреляция, преобразование Фурье, адаптивная фильтрация, обработка радиолокационной и гидроакустической информации, обработка изображений, анализ и синтез речи и т.д. и т.п.).
Несмотря на разнообразие архитектур, можно выделить следующие ключевые особенности сигнальных процессоров:
характерная для ЦОС операция умножения с накоплением, выполняемая за один процессорный цикл;
конвейерное выполнение команды;
раздельные память программ и память данных (или память с множественным доступом), что позволяет процессору извлекать команду и операнд в одном машинном цикле;
основной операционный блок, осуществляющий любую операцию за один машинный цикл;
вспомогательные арифметические блоки для вычисления адресов операндов за один машинный цикл.
Применение сигнальных процессоров разнообразно - от встроенных микроконтроллеров в приборы бытового назначения до больших (до нескольких тысяч микропроцессоров) мультипроцессорных систем общего назначения. Мы ограничимся рассмотрением мультипроцессорных систем для решения специфической задачи - обработки радиолокационной информации. Как правило, такая система содержит несколько десятков процессоров и работает в условиях жестких временных ограничений.
Одним из подходов к программированию таких систем является программирование на ассемблере. Программа имеет максимальную эффективность по быстродействию и используемой памяти, но большую трудоемкость в разработке. Другой подход предполагает использование языка высокого уровня.
Вначале создается прототип программы на языке высокого уровня (например С), получается ассемблерный текст каждого модуля программы и проводится вручную оптимизация ассемблерного кода для получения заданных временных характеристик программы или ее отдельных участков. Программирование (или оптимизация) на уровне ассемблерного кода позволяет максимально эффективно использовать особенности архитектуры и системы команд применяемого процессора.
К семейству сигнальных микропроцессоров относится TMS320C40.
1. Теоретическая часть
1.1 Архитектура процессора TMS320C4x
Процессор TMS320C4x - высокопроизводительный процессор фирмы Texas Instruments, предназначенный для применения в системах цифровой обработки сигналов.
Основные характеристики:
цикл команды 50нс для тактовой частоты 40 МГц;
разрядность операндов 32 бита;
производительность до 275 MOPS (миллионов операций в секунду);
одноцикловые операции с плавающей точкой 40/32 бита;
скорость обмена данными через встроенные порты ввода/вывода до 100 Мб/с;
максимальный адресуемый объем памяти 16 Gb (4GЧ32);
встроенные коммуникационные порты до 20 Мб/с;
встроенный сопроцессор прямого доступа к памяти (ПДП) до 75 MOPS;
внутренний кэш команд на 512 байт;
внутреннее ОЗУ 8 Кбайт.
Общая структурная схема процессора TMS320C4x показана на рис. 1. Внутренняя структура процессора базируется на семи 32-разрядных шинах, что позволило достичь высокой степени параллелизма при выполнении команды. В одном машинном цикле выполняется 11 операций. В центральном устройстве обработки выполняется:
два доступа к данным;
одно умножение с плавающей точкой;
одна операция АЛУ;
две модификации адресных регистров;
одно изменение счетчика повторов;
одна выборка команды.
В сопроцессоре ПДП выполняется:
одна передача данных;
одна модификация адресного регистра;
одна модификация счетчика передаваемых слов.
В процессоре можно выделить три группы шин:
1.PADDR,
PDATA- шины адреса команды и кода команды, используемые устройством управления при выборке команд;
2.DADDR1,DADDR2,DDATA- шины, используемые для адресации и передачи операндов;
3.DMA ADDR,DMA DATA- шины адреса и данных, используемые сопроцессором ПДП при обмене данными.
Рис.1 Архитектура процессора TMS320C4x
PDATA - шина команд (32);
PADDR - шина адреса команд (32);
DDATA - шина операндов (32);
DADDR1 - шина адреса 1-го операнда (32);
DADDR2 - шина адреса 2-го операнда (32);
DMA DATA - шина данных для операций ПДП (32);
DMA ADDR - шина адреса для операций ПДП (32);
Cache - кэш команд ;
RAM Block0 - блок 0 внутренней оперативной памяти (1К Ч 32);
RAM Block1 - блок 1 внутренней оперативной памяти (1К Ч 32);
ROM - ПЗУ начальной загрузки;
MUX - мультиплексоры внешних шин;
Controller - блок управления процессора;
CPU - центральное устройство обработки;
DMA,COM,Timers - интегрированная периферия (сопроцессор ПДП, коммуникационные порты, таймеры);
PC - программный счетчик;
IR - регистр команды;
В процессоре можно выделить основные устройства:
внутреннюю память, включающую кэш команд (Cache), два блока оперативной памяти (RAM Block0 и RAM Block1) и блок постоянной памяти (ROM), содержащий программу начальной загрузки (Boot Loader);
устройство управления и блок выполнения команд (Controller);
центральное устройство обработки (CPU), осуществляющее основные операции по обработке операндов и вычислению их адресов;
блок встроенных периферийных устройств, включающий шесть коммуникационных восьмиразрядных параллельных портов, шестиканальный сопроцессор ПДП и два программируемых таймера.
1.2 Центральное устройство обработки
Центральное устройство обработки процессора TMS320C4x показано на рис. 2. Устройство связано с внутренними шинами процессора DADDR1, DADDR2 и DDATA. Через мультиплексор MUX шина DDATA может соединяться с любой из локальных шин устройства: CPU1, CPU2, REG1 или REG2. Аппаратный умножитель MUL выполняет умножение 32-разрядных целочисленных операндов или 40-разрядных операндов с плавающей точкой за один машинный цикл. регистр кэш память аппаратный
Арифметико-логическое устройство (АЛУ) ALU выполняет операции над целочисленными 32-разрядными целыми или 40-разрядными операндами с ПТ. Результат операции представлен в том же формате, что и входные операнды.
Рис.2 Архитектура центрального устройства обработки
ШИНЫ:
DADDR1 - шина адреса 1-го операнда;
DADDR2 - шина адреса 2-го операнда;
DDATA - шина операнда;
CPU1,CPU2,REG1,REG2 - внутренние локальные шины устройства обработки;
УСТРОЙСТВА:
MUX - мультиплексор шин;
MUL - аппаратный умножитель;
Shifter - устройство аппаратного сдвига;
ALU - центральное арифметико- логическое устройство;
EPR - регистры расширенной точности;
Disp,IR0,IR1,BK - индексные регистры;
ARAU0,ARAU1 - арифметические устройства вспомогательных регистров;
AR - вспомогательные регистры;
REG - дополнительные регистры
Блок регистров расширенной точности используется для кратковременного хранения операндов и результатов выполнения операций в умножителе и АЛУ. Индексные и вспомогательные регистры используются в формировании адреса при различных методах адресации памяти, хотя не исключается их применение и для хранения промежуточных целочисленных операндов. Для вычисления адресов операндов предназначены два АЛУ (ARAU0, ARAU1) блока вспомогательных регистров, что позволяет в одиночном машинном цикле сформировать адреса сразу двух операндов на внутренних шинах процессора DADDR1 и DADDR2.
Локальные шины устройства обработки обеспечивают передачу двух операндов из памяти и двух операндов из блока регистров в одиночном машинном цикле. За счет этого умножение и операция АЛУ выполняются параллельно во времени.
1.3 Регистры устройства обработки
Основной набор регистров (или регистровый файл) центрального устройства обработки (CPU) содержит 32 регистра (табл.1).
Таблица 1 Основной набор регистров процессора TMS320C4x
Имя регистра |
Функциональное назначение регистра |
|
R0 - R11 |
Регистры повышенной точности 0 - 11 |
|
AR0 - AR7 |
Вспомогательные регистры 0 - 7 |
|
DP IR0 IR1 BK SP |
Указатель страницы памяти данных Индексный регистр 0 Индексный регистр 1 Регистр размера блока Системный указатель стека |
|
ST |
Регистр состояния центрального устройства обработки |
|
DIE IIE IIF |
Разрешение прерываний сопроцессора ПДП Разрешение внутренних прерываний Регистр управления контактами IIOF |
|
RS RE RC |
Начальный адрес блока повторений Конечный адрес блока повторений Счетчик блока повторений |
Регистры повышенной точности R0-R11 могут хранить 32-разрядные целые операнды или 40-разрядные операнды с ПТ.
Вспомогательные регистры AR0-AR7 доступны из CPU и модифицируются двумя АЛУ вспомогательных регистров ARAU0 и ARAU1. Их основное назначение- формирование 32-разрядных адресов операндов в методах косвенной адресации. Могут быть использованы как счетчики цикла или регистры временного хранения промежуточных 32-разрядных результатов операций множителя или центрального АЛУ.
Указатель страницы памяти данных DP- 32-разрядный регистр, в котором 16 младших бит используются для указания адреса страницы в режиме прямой адресации.
Индексные регистры IR0, IR1 используются арифметическими устройствами вспомогательных регистров ARAU при вычислении адреса в косвенных методах адресации.
Регистр размера блока BK используется арифметическими устройствами вспомогательных регистров ARAU при вычислении адреса в циклической адресации.
Системный указатель стека SP- 32-разрядный адрес верхушки стека. Всегда содержит адрес последнего элемента, записанного в стек. Автоматически увеличивается на единицу при записи и уменьшается при считывании.
Регистр состояния процессора ST- 32-разрядный регистр, содержащий флаги операций CPU, биты управления кэш-памятью команд, прерываниями и некоторые другие биты управления и состояния.
Регистр разрешения прерываний сопроцессора ПДП DIE разделен на шесть полей, которые определяют, какие прерывания могут быть использованы для управления синхронизацией ПДП передач для каждого из каналов сопроцессора ПДП
Регистр разрешения внутренних прерываний IIE определяет разрешение/запрет внутренних прерываний для CPU. К внутренним относятся прерывания: от внутренних таймеров, от коммуникационных портов, от сопроцессора ПДП. Бит регистра, установленный в единицу разрешает соответствующее прерывание, сброшенный в нуль - запрещает. Сигналом RESET регистр обнуляется.
Регистр управления контактами IIOF - регистр IIF определяет использование внешних контактов процессора IIOF0-IIOF3, дополнительно содержит флаги прерываний таймеров TINT, сопроцессора ПДП DMAINT и немаскируемого прерывания NMI
Флаги прерываний TINT1, TINT0, DMAINT5 - DMAINT0, NMI устанавливаются в единицу, если фиксируется прерывание по соответствующему каналу. Каждый из четырех контактов IIOF3-IIOF0 управляется четырьмя битами:
FUNC - режим работы контакта:
FUNC=0 - входной/выходной контакт
FUNC=1 - входной контакт прерывания;
TYPE - тип функции контакта:
FUNC=0 и TYPE=0 - контакт входной,
FUNC=0 и TYPE=1 - контакт выходной,
FUNC=1 и TYPE=0 - запрос прерывания фронтом,
FUNC=1 и TYPE=1 - запрос прерывания уровнем;
FLAG - флаг контакта:
если FUNC=0 и TYPE=0 - значение сигнала на контакте (только чтение),
если FUNC=0 и TYPE=1 - значение сигнала на контакте (чтение-запись),
если FUNC=1, флаг определяет наличие прерывания, программная запись в этот бит позволяет имитировать программно-внешнее прерывание;
EIIOF - разрешение прерывания:
EIIOF=0 - прерывание запрещено,
EIIOF=1 - разрешено.
Регистр начального адреса блока повторений RS содержит начальный адрес памяти программ при работе CPU в режиме повтора блока.
Регистр конечного адреса блока повторений RE хранит конечный адрес памяти программ при работе CPU в режиме повтора блока.
Счетчик повторений RC определяет число повторов блока или одиночной команды. Число повторов блока или команды определяется как N+1, где N - константа, загруженная в регистр RC.
Регистры, не входящие в основной регистровый файл:
Программный счетчик PC содержит адрес следующей команды, которая должна выбираться из программной памяти. Поскольку он не является частью основного регистрового файла, может быть модифицирован любой командой, управляющей выполнением программы, независимо от текущей операции в CPU.
Указатель таблицы векторов аппаратных прерываний IVTP и указатель таблицы векторов программных прерываний TVTP содержат базовые адреса таблицы векторов аппаратных и программных прерываний соответственно. Таблицы векторов могут перекрываться, но должны выравниваться на границу 512 слов , т.е. младшие девять разрядов в регистрах IVTP и TVTP должны всегда записываться нулями. По сигналу сброса в эти регистры записываются нулевые значения.
Таблица 2 Таблица векторов программных прерываний (команда TRAP N)
Таблица 3 Таблица векторов аппаратных прерываний
1.4 Внутренняя и внешняя память
Процессор TMS320C4x имеет адресное пространство в 4G слов (4G Ч 32), которое является общим для памяти программ, памяти данных и портов ввода/вывода. Карта памяти управляется уровнем на входном контакте ROMEN и для различных значений этого сигнала показана на рис.1.3. Как видно из рисунка, сигналом ROMEN управляется только начальная зона адресного пространства величиной в 1М слов. В случае ROMEN=0 - это внешняя память, доступная процессору через локальную шину, в случае ROMEN=1 - это внутреннее ПЗУ, содержащее начальный загрузчик (адреса 00000000h - 00000FFFh), который используется при загрузке программ из внешнего ПЗУ или с одного из коммуникационных портов.
Следующие 1М слов используются для адресации внутренних периферийных устройств: таймеров, коммуникационных портов, регистров сопроцессора ПДП и регистров управления внешними шинами.
Следующие 1М слов используются внутренней сверхоперативной памятью, состоящей из двух блоков по 1К слов: блок 0 с адресами 002FF800h - 002FFBFFh и блок 1 с адресами 002FFC00h - 002FFFFFh. Каждый из блоков способен поддерживать два обращения в одном машинном цикле.
Адресное пространство 00300000h - 7FFFFFFFh принадлежит внешней локальной шине, а 80000000h-FFFFFFFFh - внешней глобальной шине. К шинам могут подключаться память или устройства ввода/вывода с различным быстродействием. При обращении в зону адресов 00000000h - 00300000h операций на локальной шине не производится (не вырабатывается строб шины), если ROMEN = 1. Если входной сигнал ROMEN = 0, на локальной шине производится передача данных при обращении по адресам 00000000h - 000FFFFFh. Каждая шина содержит два набора сигналов, управляющих передачей данных по шине (называемых STRB0 и STRB1), и набор сигналов, управляющих доступом (в случае разделяемой памяти в МП системах).
Рис. 3 Карта памяти процессора TMS320C4x
Логика работы каждой шины определяется собственным регистром управления, в котором программируется адресное пространство, размер страницы памяти, режим формирования сигнала готовности и количество тактов ожидания (0-7) для каждого из стробов STRB0 и STRB1. Адреса регистров управления внешними шинами: 0010 0000h - регистр управления глобальной шиной (GMICR);
1.5 Командный кэш
Процессор TMS320C4x имеет встроенную кэш-память команд размерностью 128х32, разделенную на четыре сегмента по 32 слова. Архитектура кэша команд показана на рис. 4.
С каждым сегментом кэша связан 27-разрядный регистр начального адреса сегмента (SSA) и каждому слову внутри сегмента ставится в соответствие специальный флаг (P флаг), определяющий достоверность слова (Р=1 - слово достоверно, Р=0 - нет). При выборке команды старшие 27 бит адреса команды определяют начальный адрес сегмента, младшие 5 бит - адрес слова в сегменте.
Если требуемое слово команды находится в кэше, то имеет место кэш- попадание, если слово в кэше отсутствует - кэш-промах. Замена сегментов в кэше производится по LRU алгоритму (дольше всех неиспользуемый). Для этого имеется четырехуровневый стек (LRU стек), верхушка которого содержит номер последнего использованного сегмента.
Рис. 4 Архитектура внутренней кэш-памяти команд
Алгоритм работы кэш-памяти команд:
старшие 27 бит адреса команды сравниваются с содержимым регистров начального адреса сегмента (SSA);
если ни один из регистров SSA не содержит адреса, совпадающего с требуемым, имеет место кэш-промах сегмента;
если один из регистров содержит требуемый адрес, проверяется состояние флага Р для слова внутри найденного сегмента, и, если флаг Р=1, происходит считывание слова команды из кэша (кэш-попадание);
если флаг Р=0, имеет место кэш-промах субсегмента.
Кэш-попадание:
слово команды считывается из кэш-памяти;
номер сегмента, из которого произведено считывание, извлекается из LRU стека и помещается в его верхушку.
Кэш-промах субсегмента:
слово команды считывается из памяти и копируется в кэш;
номер сегмента извлекается из LRU стека и помещается в его верхушку;
флаг Р для скопированного слова устанавливается в 1.
Кэш-промах сегмента:
из дна LRU стека выбирается номер дольше всех неиспользуемого сегмента и для этого сегмента все флаги Р устанавливаются в 0;
регистр начального адреса SSA загружается новым значением (старшие 27
бит из адреса команды, хранящегося в программном счетчике PC);
слово команды считывается из памяти и копируется в кэш;
номер сегмента извлекается из LRU стека и помещается в его верхушку;
флаг Р для скопированного слова устанавливается в 1.
Кэш-память управляется четырьмя битами регистра состояния ST из основного набора регистров центрального устройства обработки. Состояния кэш- памяти команд в зависимости от комбинаций битов регистра состояния процессора ST показаны в табл. 4.
Таблица 4 Состояния кэш-памяти команд
Бит CE |
Бит CF |
Состояние |
|
0 |
0 |
Кэш запрещен (запрещены выборка команд и модификация кэша) |
|
0 |
1 |
Кэш запрещен (запрещены выборка команд и модификация кэша) |
|
1 |
0 |
Кэш разрешен и не заморожен (разрешены выборка команд и модификация кэша) |
|
1 |
1 |
Кэш разрешен, но заморожен (разрешена выборка команд и запрещена модификация кэша) |
1.6 Встроенная периферия
Процессор TMS320C4x имеет встроенные периферийные устройства:
шесть коммуникационных параллельных портов для связи с другими процессорами или внешними устройствами ( Com Port );
два 32-разрядных таймера ( Timer );
сопроцессор прямого доступа к памяти ( DMA Coprocessor ).
Структурная схема интегрированной периферии приведена на рис.5. Внутренние периферийные устройства процессора TMS320C4x связаны с двумя специальными шинами: периферийной шиной данных (PDB) и периферийной шиной адреса (PAB), которые через мультиплексор MUX доступны из основного набора шин процессора. Сопроцессор ПДП имеет доступ и к основному набору шин (DMA DATA, DMA ADDR) и к шинам периферии. Регистры всех встроенных периферийных устройств адресуются как ячейки памяти (см. п.1.4).
Рис. 5 Интегрированная периферия
Процессор TMS320C4x содержит шесть идентичных высокоскоростных коммуникационных портов, каждый из которых обеспечивает двунаправленный параллельный полудуплексный интерфейс с другими процесcорами или внешней периферией. Внутренняя архитектура одного порта показана на рис. 6. Каждый коммуникационный порт содержит следующие компоненты:
Входной канал - восьмиуровневый 32-разрядный буфер FIFO (первым пришел - первым вышел) со схемами управления и состояния для приема данных, поступающих с внешней шины порта;
Выходной канал - восьмиуровневый 32-разрядный буфер FIFO для временного хранения данных, передаваемых на внешнюю шину порта;
Арбитр порта - устройство, определяющее использование внешней шины порта (направление передачи данных);
Регистр управления коммуникационным портом
Коммуникационный порт взаимодействует с внешним устройством или коммуникационным портом другого процессора с использованием 8-разрядной шины данных CxD(0-7) и двунаправленных сигналов управления CREQx, CACKx, CSTRBx, CRDYx.
Рис. 6. Архитектура коммуникационного порта
Встроенный сопроцессор прямого доступа к памяти ПДП (DMA) поддерживает шесть каналов, обеспечивающих передачу данных без захвата основного процессора.
Сопроцессор имеет собственные шины адреса и данных (DMA ADDR и DMA DATA на рис. 1), доступ к которым любого из шести каналов определяется собственным арбитром сопроцессора.
Процессор TMS320C4x имеет два 32-разрядных внутренних таймера/счетчика событий. С каждым таймером связаны три регистра, адреса которых представлены в таблице 5. Таймер работает в одном из двух режимов - генератор импульса или генератор меандра. Режим работы таймера задается битом C/P в регистре управления.
Таблица 5 Адреса регистров таймеров
Регистры |
Адреса |
||
Таймер 0 |
Таймер 1 |
||
Управления |
0010 0020 h |
0010 0030 h |
|
Счетчика |
0010 0024 h |
0010 0034 h |
|
Периода |
0010 0028 h |
0010 0038 h |
1.7 Методы адресации операндов
В процессоре TMS320C4x используются пять типов адресации операндов:
*регистровая;
*непосредственная;
*прямая;
*относительная (относительно программного счетчика PC) .
*косвенная;
При регистровой адресации операнды содержатся в регистрах процессора. Мнемонические имена регистров, используемые в командах ассемблера, приведены в табл. 1.
Прямая адресация процессора TMS320C4x использует при формировании адреса операнда две компоненты: содержимое указателя страницы памяти данных (регистра DP) и 16-разрядное поле прямого адреса из слова команды (expr). Синтаксис прямой адресации: @expr.
Косвенная адресация. Для формирования адреса операнда используются содержимое вспомогательных регистров AR0-AR7, смещение, указанное в слове команды и содержимое индексных регистров IR0,IR1 в различных сочетаниях. Синтаксис косвенной адресации: *expr.
Непосредственная адресация. Операнд располагается в восьми или шестнадцати младших битах слова команды. В зависимости от типа данных, принятых для конкретной команды, поле операнда может интерпретироваться как беззнаковое целое, целое со знаком или число в коротком формате с ПТ. Синтаксис адресации: expr.
Относительная адресация. Используется в командах переходов. Выполнение команды перехода заключается в изменении программного счетчика PC на величину константы (смещения перехода), содержащейся в 16 или 24 младших битах слова команды. Смещение перехода является целым числом со знаком. Оно вычисляется:
для стандартных переходов
СМЕЩЕНИЕ = АДРЕС ПЕРЕХОДА - (АДРЕС КОМАНДЫ ПЕРЕХОДА + 1);
для задержанных переходов
СМЕЩЕНИЕ = АДРЕС ПЕРЕХОДА - (АДРЕС КОМАНДЫ ПЕРЕХОДА + 3).
Система команд процессора TMS320C4x содержит 145 команд. Она может быть разделена на следующие группы команд:
передачи данных;
арифметические;
логических операций;
управления программой;
передачи данных с блокировкой шины;
преобразования форматов;
трехоперандные;
параллельные.
Высокая производительность процессора TMS320C4x обеспечивается конвейерным выполнением команд и совмещением операций АЛУ и ввода/вывода. В системе управления процессора имеется пять функциональных устройств (четырехуровневый конвейер команд и сопроцессор ПДП):
устройство выборки (F) выбирает слово инструкции из памяти и изменяет программный счетчик PC;
устройство декодирования (D) декодирует инструкцию и выполняет гене рацию адреса операндов, управляет модификацией вспомогательных регистров ARn в косвенных методах адресации и модификацией указателя стека SP в операциях PUSH/POP;
устройство чтения (R) считывает операнды из памяти, если этого требует команда;
устройство выполнения (E), если требуется, считывает операнды из регистрового файла, выполняет операцию и записывает результат в регистровый файл, при необходимости, результат предыдущей операции записывается в память;
сопроцессор ПДП (DMA) выполняет операции считывания/записи памяти (операции ввода/вывода).
Практическая часть
Negisti.asm
****************************************************************
* Test Name
* negisti.asm
****************************************************************
* Test Intent
* Тестирование инструкции NEGI || STI с различной адресацией
****************************************************************
* Test Notes
* Адрес вектора reset - 80000000h
* Адрес вектора ошибок - 80000050h
****************************************************************
* Test Results
* В случае правильного прохождения теста по адресу 80000050h
* записывается 1.
* При возникновении ошибки по адресу 80000050h записывается 2
****************************************************************
* Выполнил:
* студент гр. ИС2-141-ОБ Быханов Н.А.
****************************************************************
.version 40
.global _c_int00
_myvect:.sect "vectors"
RESET.word _c_int00
_stack .usect "MyStack", 50 ; stack
.sect "var"
ERROR:.space 1
.text
stacka.word _stack ; stack adr
ivta .word _myvect ; int table adr
data0.word 111h ; test data
data1.word 222h
data3.word 333h
data4.word 444h
data5.word 555h
data6.word 666h
data7.word 777h
data8.word 888h
data9.word 999h
dataA .word 0aaah
dataB .word 0bbbh
dataC.word 0ccch
dataD.word 0dddh
dataE.word 0eeeh
dataF.word 0fffh
****************************************************************
************************* Init Prog ****************************
_c_int00:
LDPK 8000h
LDI @stacka, SP
LDI 0h, R2
LDI 0h, R1 ; Clear Registers
LDI 0h, R0
LDI 0h, AR0
LDI 0h, IR0
LDI 0h, IR1
STI R0, @50h ; Reset result
****************************************************************
*src2: indirect (disp = 0, 1, IR0, IR1)
*dst1: register (R0 - R7)
*src3: register (R0 - R7)
*dst2: indirect (disp = 0, 1, IR0, IR1)
****************************************************************
;scr2, dst2 - Indirect Adresing With Displasment 0
ldhi 8000h, AR0
or 107h, AR0
negi *+AR0(0), R0
|| sti R1, *+AR1(0)
addi 666h, R0 ; test
bnz ERR
negi *-AR0(0), R0
|| sti R1, *-AR1(0)
addi 666h, R0 ; test
bnz ERR
negi *++AR0(0), R0
|| sti R1, *++AR1(0)
addi 666h, R0 ; test
bnz ERR
negi *--AR0(0), R0
|| sti R1, *--AR1(0)
addi 666h, R0 ; test
bnz ERR
negi *AR0++(0), R0
|| sti R1, *AR1++(0)
addi 666h, R0 ; test
bnz ERR
negi *AR0--(0), R0
|| sti R1, *AR1--(0)
addi 666h, R0 ; test
bnz ERR
negi *AR0++(0)%, R0
|| sti R1, *AR1++(0)%
addi 666h, R0 ; test
bnz ERR
negi *AR0--(0)%, R0
|| sti R1, *AR1--(0)%
addi 666h, R0 ; test
bnz ERR
;scr2, dst2 - Indirect Adresing With Displasment 1
negi *+AR0(1), R0
|| sti R1, *+AR1(1)
addi 777h, R0 ; test
bnz ERR
negi *-AR0(1), R0
|| sti R1, *-AR1(1)
addi 555h, R0 ; test
bnz ERR
negi *++AR0(1), R0
|| sti R1, *++AR1(1)
addi 777h, R0 ; test
bnz ERR
negi *--AR0(1), R0
|| sti R1, *--AR1(1)
addi 666h, R0 ; test
bnz ERR
negi *AR0++(1), R0
|| sti R1, *AR1++(1)
addi 666h, R0 ; test
bnz ERR
negi *AR0--(1), R0
|| sti R1, *AR1--(1)
addi 777h, R0 ; test
bnz ERR
negi *AR0++(1)%, R0
|| sti R1, *AR1++(1)%
addi 666h, R0 ; test
bnz ERR
negi *AR0--(1)%, R0
|| sti R1, *AR1--(1)%
addi 777h, R0 ; test
bnz ERR
; Indirect Adresing With Index Register IR0
ldi 3h, IR0
negi *+AR0(IR0), R0
|| sti R1, *+AR1(IR0)
addi 999h, R0 ; test
bnz ERR
negi *-AR0(IR0), R0
|| sti R1, *-AR1(IR0)
addi 333h, R0 ; test
bnz ERR
negi *++AR0(IR0), R0
|| sti R1, *++AR1(IR0)
addi 999h, R0 ; test
bnz ERR
negi *--AR0(IR0), R0
|| sti R1, *--AR1(IR0)
addi 666h, R0 ; test
bnz ERR
negi *AR0++(IR0), R0
|| sti R1, *AR1++(IR0)
addi 666h, R0 ; test
bnz ERR
negi *AR0--(IR0), R0
|| sti R1, *AR1--(IR0)
addi 999h, R0 ; test
bnz ERR
negi *AR0++(IR0)%, R0
|| sti R1, *AR1++(IR0)%
addi 666h, R0 ; test
bnz ERR
negi *AR0--(IR0)%, R0
|| sti R1, *AR1--(IR0)%
addi 999h, R0 ; test
bnz ERR
;scr - Indirect Adresing With Index Register IR1
ldi 2h, IR1
negi *+AR0(IR1), R0
|| sti R1, *+AR1(IR1)
addi 888h, R0 ; test
bnz ERR
negi *-AR0(IR1), R0
|| sti R1, *-AR1(IR1)
addi 444h, R0 ; test
bnz ERR
negi *++AR0(IR1), R0
|| sti R1, *++AR1(IR1)
addi 888h, R0 ; test
bnz ERR
negi *--AR0(IR1), R0
|| sti R1, *--AR1(IR1)
addi 666h, R0 ; test
bnz ERR
negi *AR0++(IR1), R0
|| sti R1, *AR1++(IR1)
addi 666h, R0 ; test
bnz ERR
negi *AR0--(IR1), R0
|| sti R1, *AR1--(IR1)
addi 888h, R0 ; test
bnz ERR
negi *AR0++(IR1)%, R0
|| sti R1, *AR1++(IR1)%
addi 666h, R0 ; test
bnz ERR
negi *AR0--(IR1)%, R0
|| sti R1, *AR1--(IR1)%
addi 888h, R0 ; test
bnz ERR
ldi 1h, R0
STI R0, @50h ; store result test PASS
BR STOP
************************************************************
ERR:
ldi 2h, R0
STI R0, @50h ; store result test FALL
STOP:
BR $
nop
nop
nop
.end
linkC40.cmd
/***************************************************************** */
/* ********************* TMS320C40 *************************** *//* *************************************************************** */
negisti.obj
-o negisti.out
-m negisti.map
MEMORY
{
ROM: origin = 0hlength = 01000h
LOCAL: origin = 0300000hlength = 0700000h
MY_VARorigin = 080000000h length = 040h
ERRORorigin = 080000050h length = 040h
GLOBAL: origin = 080000100h length = 050000000h
BLK0:origin = 02FF800h length = 0400h /* internal 1k RAM*/
BLK1:origin = 02FFC00hlength = 0400h /* internal 1k RAM*/
}
SECTIONS
{
vectors :> MY_VAR
var :> ERROR
.text : > GLOBAL
MyStack : > GLOBAL
}
Заключение
В ходе выполнения курсовой работы была рассмотрена архитектура сигнального микропроцессора TMS320C40, а также протестирована команда NEGI || STI с различными методами адресации. Тестирование завершилось без ошибок, в ходе выполнения программы использовались регистры повышенной точности и вспомогательные регистры.
Список литературы
1. Кузин А.А. Процессор TMS320c4x. Архитектура. Программирование.
2. Texas Instruments Incorporated. TMS320C40 User Guide. 1999.
3. Марков С. Цифровые сигнальные процессоры. 1996. - 144 с.
4. Гумеров Р.И. Цифровые сигнальные процессоры: сигналы, архитектура, основные элементы. Учебно-методическое пособие. Казань. 2009.- 83 с.
Размещено на Allbest.ru
Подобные документы
Изучение функциональных возможностей программы ISIS Proteus, системы команд и способов адресации данных в микро ЭВМ семейства МК51. Определение состояния регистров и внутренней памяти данных после выполнения программы. Сохранение содержимого в стеке.
лабораторная работа [89,7 K], добавлен 16.04.2014Описание форматов команд и обрабатываемых данных. Содержательная ГСА функционирования центрального обрабатывающего устройства, его структурная схема. Архитектура внешних выводов процессорного блока. Синтез управляющего автомата. Кодирование операций.
курсовая работа [1,4 M], добавлен 17.12.2013Сигналы памяти и приемники изображения, устройства их обработки. Основные параметры элементов ПЗС: рабочая амплитуда напряжений, максимальная величина зарядного пакета, предельные тактовые частоты, мощность. Эффективность работы устройств обработки.
реферат [46,4 K], добавлен 13.01.2009Изучение принципа работы, основных переключательных характеристик и методов определения функциональных параметров элемента памяти. Устройство элемента памяти, построенного на биполярных двухэмиттерных транзисторах, используемого в интегральных схемах.
лабораторная работа [65,6 K], добавлен 08.11.2011Использование аппаратных и программных средств в устройствах обработки информации. Организация взаимодействия устройств, входящих в систему, при помощи микропроцессора. Описание микроконтроллера, процессорного блока, адаптера параллельного интерфейса.
курсовая работа [515,2 K], добавлен 18.09.2010Разработка модулей памяти микропроцессорной системы, в частности оперативного и постоянного запоминающих устройств. Расчет необходимого объема памяти и количества микросхем для реализации данного объема. Исследование структуры каждого из блоков памяти.
контрольная работа [1,3 M], добавлен 07.07.2013Использование микроконтроллеров AVR фирмы Atmel в проектируемой аппаратуре. Архитектура и общие характеристики прибора, предназначение арифметики логического устройства и понятие флэш-памяти. Формат пакета данных, алгоритм их передачи и система команд.
контрольная работа [427,3 K], добавлен 12.11.2010Характеристика проектирования устройства вычислительной техники. Расчёт количества микросхем памяти, распределение адресного пространства, построение структурной и принципиальной электрической схемы управления оперативного запоминающего устройства.
контрольная работа [848,1 K], добавлен 23.11.2010Алгоритм работы схемы микропроцессорного устройства и протокол обмена информацией между ним и объектом управления. Составление карты памяти для микропроцессора. Разработка программы на языке Ассемблера для выбранного микропроцессора и микроконтроллера.
контрольная работа [207,8 K], добавлен 29.06.2015Выбор методов проектирования устройства обработки и передачи информации. Разработка алгоритма операций для обработки информации, структурной схемы устройства. Временная диаграмма управляющих сигналов. Элементная база для разработки принципиальной схемы.
курсовая работа [1,8 M], добавлен 16.08.2012