Глинченко А.С. Принципы организации и программирования сигнальных процессоров ADSP-21xx (2000), страница 6
Описание файла
PDF-файл из архива "Глинченко А.С. Принципы организации и программирования сигнальных процессоров ADSP-21xx (2000)", который расположен в категории "". Всё это находится в предмете "компьютерные методы и технологии автоматизации и управления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
Затемустройство, пославшее запрос на прерывание, должно снять его, чтобыпрерывание не обработалось повторно.Бит 4 в регистре ICNTL определяет, разрешено (1) или запрещено (0)использование вложенных прерываний. Когда вложение запрещено,прерывания всех уровней автоматически маскируются при входе вподпрограмму обработки прерывания. При разрешении вложениямаскируются только прерывания с приоритетом ниже обслуживаемого.При изменении значения регистра ICNTL конфигурация прерыванияизменяется с задержкой в один цикл.Спомощью16-разрядногорегистраIFCосуществляетсяпринудительный сброс (биты 7−0) и установка (биты 15−8) чувствительных к31фронту прерываний соответственно IRQ2, Передача SPORT0, …, таймер (поубыванию приоритета согласно табл.1).Глобальное разрешение/блокирование прерыванийВ процессоре ADSP-2181 предусмотрены глобальные командыразрешения и блокирования прерываний:ENA INTS; DIS INTS;После перезапуска процессора прерывания разрешены по умолчанию.
Покоманде DIS INTS маскируются все прерывания (включая понижениепотребляемой мощности) независимо от содержимого регистра IMASK. Покоманде ENA INTS все немаскируемые прерывания могут быть сноваобслужены.Регистры IMASK и ICNTL могут записываться с шины DMD исчитываться на нее, а регистр IFC − только записываться.4.7. РЕГИСТРЫ СОСТОЯНИЙ И СТЕК СОСТОЯНИЙБиты состояния и режима процессора находятся в соответствующихрегистрах программного автомата и могут записываться и считываться сшины DMD. Это регистры:арифметических состояний ASTAT;состояния стеков SSTAT (может только считываться);состояния режима MSTAT.Регистр состояния арифметических устройствРегистр ASTAT имеет разрядность 8 бит и содержит информацию осостоянии вычислительных устройств процессора.
Биты состояния (0–7) (впорядке возрастания) имеют следующий смысл:AZ – содержимое АЛУ равно нулю;AN – содержимое АЛУ отрицательно;AV – переполнение АЛУ;AC – перенос бита в АЛУ;AS – знак ввода порта X в АЛУ;AQ – частное АЛУ;MV – переполнение умножителя;SS – знак ввода в устройство сдвига.Биты состояния обновляются: AZ, AN, AV, AC − любой операцией АЛУ,кроме деления; AS – операцией нахождения абсолютного значения ABS; AQ– операциями деления; MV – любой операцией умножителя, кроменасыщения; SS – операцией нахождения порядка (EXP) устройства сдвига.Состояние фиксируется в регистре ASTAT в конце цикла, в котором онобыло сгенерировано.32Регистр состояния стеков8-разрядный регистр SSTAT содержит информацию о четырех стекахпроцессора. Его биты состояния (0–7) (в порядке возрастания) имеютследующий смысл:0 – стек счетчика команд пуст;1 – стек счетчика команд переполнен;2 – стек счетчика пуст;3 – стек счетчика переполнен;4 – стек состояний пуст;5 – стек состояний переполнен;6 – стек циклов пуст;7 – стек циклов переполнен.Состояние “стек счетчика пуст” означает, что число операций поизвлечению данных из стека превышает или равно числу операций попомещению информации в стек.
Состояние “стек счетчика переполнен”означает превышение числа помещений над числом извлечений данных изстека, что ведет к потере информации.Регистр состояния режимаРегистр MSTAT определяет операционный режим процессора. Его битыописываются следующим образом.0 – выбор ряда регистров данных (0 – главный, 1 – теневой) – SEG_REG;1 – разрешение режима перестановки бит (DAG1) – BIT_REV;2 – разрешение режима фиксации переполнения АЛУ – AV_LATCH;3 − разрешение режима насыщения регистра AR – AR_SAT;4 − тип результата в MAC 0 – дробный, 1– целый – M_MODE;5 − разблокирование таймера – TIMER;6 − разрешение режима GO – G_MODE.Содержимое регистра MSTAT модифицируется при записи в него новогозначения при помощи команды пересылки.
В отличие от других регистровсостояний, содержимое этого регистра может также изменяться командойуправления режимом (ENA, DIS), например:ENA SEG_REG; DIS SEG_REG; ENA M_MODE (режим умноженияцелых чисел); DIS M_MODE (режим умножения дробных чисел) и т.д.При разрешении режима GO процессор может продолжить выполнениекоманд из внутренней памяти программы во время предоставления шины.Процессор может приостановить работу, ожидая, когда освободятся шины,только в случае, когда требуется доступ к внешней памяти. При запрещениирежима GO процессор всегда будет останавливать работу во времяпредоставления шины.Рассмотренные регистры: CNTR, ASTAT, MSTAT, SSTAT, IMASK,ICNTL, IFC и стеки: COUNT STACK, PC STACK, LOOP STACK, STATUSSTACK представляют программный автомат (устройство управления33программой или многофункциональный счетчик команд или устройствогенерации адреса инструкций) на программной регистровой моделипроцессора (рис.
11).КОНТРОЛЬНЫЕ ВОПРОСЫ1. Каковы основные компоненты структурной схемы программного автомата и ихфункциональное назначение?2. Какова программная модель программного автомата?3. Что может быть источником адреса следующей команды?4. На данных каких устройств основывается выбор источника адреса следующейкоманды?5. В каком случае адрес следующей инструкции определяется инкременторомпрограммного счетчика (счетчика команд)?6. В каком случае в качестве источника адреса следующей инструкции используетсястек счетчика команд?7. В каком случае адрес следующей инструкции определяется регистром команд?8.
В каком случае адрес следующей инструкции определяется контроллеромпрерываний?9. В каком случае источником адреса следующей инструкции являются индексныерегистры I4–7?10. Куда загружается адрес следующей инструкции?11. Каково назначение и глубина стека счетчика команд PC STACK?12. Каково назначение счетчика циклов и стека счетчика циклов COUNT STACK?13. Каково назначение компаратора циклов и стека циклов?14. Каковы функции контроллера прерываний?15. Какие прерывания имеет процессор ADSP-2181?16. По каким адресам памяти программ размещаются вектора прерываний?17. Сколько ячеек памяти занимает вектор одного прерывания?18. Какова последовательность обслуживания прерывания?19. Как организуется вложение прерываний и какова их возможная глубина?20.
Как осуществляется конфигурирование прерываний с помощью регистровIMASK, ICNTL, IFC?21. Что такое глобальное разрешение/блокирование прерываний и как оноосуществляется?22. Какую информацию содержат регистры состояний (ASTAT, SSTAT, MSTAT) истек состояний?345. УСТРОЙСТВО ГЕНЕРАЦИИ АДРЕСА ДАННЫХ5.1. БЛОК-СХЕМА ГЕНЕРАТОРА АДРЕСА ДАННЫХУстройство генерации адреса данных содержит два независимыхгенератора адреса данных DAG1, DAG2, позволяющих одновременноработать с данными в памяти программ и памяти данных. Генераторыобеспечивают косвенную адресацию данных с автоматической постмодификацией следующего адреса, а также модульную адресацию кольцевыхбуферов, создаваемых в памяти. DAG1 может генерировать только адресапамяти данных, а DAG2 как памяти данных, так и памяти программ. DAG2также может быть источником адреса следующей инструкции в командахусловного и безусловного перехода и вызова подпрограмм.Блок-схема одного генератора приведена на рис.
7. Генератор имеет трирегистровых файла: файл индексных регистров I, файл регистровмодификации М и файл регистров длины буфера L. Каждый изрегистровых файлов состоит из четырех регистров разрядностью 14 бит,считывание и запись данных с которых осуществляется с младших 14 битшины DMD.
При считывании беззнаковых значений регистров I и L двастарших бита шины DMD заполняются нулями. При считывании знаковыхзначений регистра М старшие два бита шины DMD заполняются знаковымрасширением.Индексные регистры (I0–I3 в DAG1, I4–I7 в DAG2) содержат реальныеадреса, по которым осуществляется доступ к памяти. Биты адреса на выходеDAG1 могут быть также переставлены в обратном порядке (битреверснаяадресация), если установлен соответствующий бит в регистре режимаMSTAT или с помощью инструкции ENA BIT_REV. Этот режим ускоряетадресацию данных в алгоритмах БПФ.С помощью регистров модификации М (М0–M3 в DAG1, М4–M7 вDAG2) после каждого доступа к данным обеспечивается автоматическоеобновление или пост-модификация адреса данных.
При этом значение,записанное в заданном регистре модификации M, добавляется с учетом егознака к содержимому заданного индексного регистра I. Новое значение этогорегистра, соответствующее следующему адресу данных, может быть какбольше, так и меньше предыдущего. Выбор регистров М и I произволен впределах одного генератора DAG.Содержимое регистров L определяет режим линейной или циклическойадресации данных и длину циклического буфера.35Шина DMDИзКоманды 142MUX141414Регистры4x4Логика поМодулюРегистры4x414ПерестановкаБитовИзКоманды2Регистры4x4СумматорТолько для DAQ1АдресРис. 7. Блок-схема генератора адреса данных5.2. РЕЖИМЫ ЛИНЕЙНОЙ И ЦИКЛИЧЕСКОЙ АДРЕСАЦИИ ДАННЫХОба генератора поддерживают режимы линейной и циклическойадресации соответственно линейного и циклического буферов, аппаратносоздаваемых в памяти.
Циклическую адресацию называют также модульной,а циклический буфер − кольцевым. Режим адресации линейного илициклического буферов для используемого индексного регистра I задаетсярегистром длины буфера L, имеющим с регистром I одинаковый номер, т.е. I0−L0, I1−L1 и т. д.При инициализации регистра L отличным от нуля значениемактивизируется устройство адресации по модулю, обеспечивающееавтоматическую адресацию циклического буфера длиной, определяемойзначением регистра L.Линейная адресация обеспечивается при записи в регистр L нулевогозначения длины кольцевого буфера, блокирующего устройство модульнойадресации.36После перезапуска процессора в регистрах I, M и L содержатсяслучайные значения. Поэтому программа должна обязательнопредусматривать инициализацию регистров L, соответствующих всемиспользуемым регистрам I.Ниже приводимая последовательность инструкций является простымпримером задания и использования линейной косвенной адресации:I3=0x3800; M2=1; L3=0;I7=0x0100; M4=1; L7=0;МX0=DM (I3, M2); МX1=PM (I7, M4); MR=MX0*MX1;В случае циклической или модульной адресации следующий адресциклического (кольцевого) буфера вычисляется в соответствии свыражением:Следующий адрес = (I+M - B) по модулю (L) + B,где I − это текущий адрес; M − модифицирующее значение (со знаком);В − базовый адрес; L − длина буфера, отвечающая условию: L>|M|.Вычисленный адрес записывается в индексный регистр I и становитсятекущим адресом ячейки памяти.Базовый адрес циклического буфера длины L равен 2n или кратен 2n , гдеn удовлетворяет условию: 2n-1 < L ≤ 2n.