Глинченко А.С. Принципы организации и программирования сигнальных процессоров ADSP-21xx (2000) (1264223), страница 9
Текст из файла (страница 9)
На обращение к соответствующей области внешнейпамяти указывают сигналы PMS, DMS, BMS и IOMS (рис.10, линия сверхуозначает низкий активный уровень сигнала). В одном внешнем ЗУ можетбыть создана также составная память, включающая несколко областей. Онизадаются разрядами CMSSEL регистра выбора составной памятиDM(0x3FE6). На обращение к такой памяти указывает сигнал на выводеCMS. Внутренняя память программ и данных связаны с внутреннимираздельными для каждой памяти шинами адресов и данных PMA, DMA,PMD, DMD, а внешняя память − с внешними общими для них шинами адресаADDR13−0 и данных DATA23−0. Старшие 8 бит 24−разрядной шины данныхD23−16 используются в качестве дополнительных линий адреса байтовойпамяти объемом до 4 Mбайт.При обращении к внешней памяти генерируются циклы ожидания, числокоторых задается программно.
На направление передачи указывают сигналыRD − чтения памяти и WR − записи в память. Обычно линии PMS, DMS,BMS, IOMS CMS или обобщенно xMS соединяются с выводом CE ИЛИ CSкристалла памяти (кристалл доступен), линия RD − с выводом OE(разрешение выхода памяти), а линия WR − с выводом WE (запись в памятьразрешена). При обращении к внутренней памяти все внешние сигналыуправления памятью имеют высокий уровень.Особенность интерфейса памяти процессора ADSP-2181 заключается вналичии внешней оверлейной памяти программ и данных, памяти с байтовойорганизацией, управляемой через порт прямого побайтового доступа к ней(BDMA), порта прямого доступа к внутренней памяти IDMA,поддерживающего интерфейс с хост−машиной, а также специальной(отдельной) области памяти ввода/вывода.Интерфейс памяти программПроцессор ADSP-2181 имеет доступ к 16К внутренней памяти программи к двум сегментам по 8К внешней оверлейной памяти разрядностью 24 бита.Число состояний ожидания при обращении к внешней памяти программ50задается разрядами PWAIT регистра управления системой (DM(0x3FFF)).Вывод MMAP позволяет выбирать одну из двух возможных конфигурацийпамяти программ.
Состояние этого вывода влияет также на необходимостьповторной загрузки внутренней памяти после снятия сигнала RESET.Регистр выбора оверлейной памяти программ PMOVLAI определяет выбор иположение сегментов этой памяти в карте памяти программ процессора. Этотрегистр может быть записан и считан программно по его имени, например:PMOVLAI = 2; PMOVLAI = DM(0x1234); и т. д.При значении MMAP = 0 и различных значениях PMOVLAI адресноепространство памяти программ распределяется следующим образом:адреса 0х0000−0х1FFF − 8К слов внутренней памяти;адреса 0х2000−0х3FFF − 8К слов внутренней памяти при PMOVLAI=0,или 8К слов внешней памяти, сегмент 1 при PMOVLAI=1,или 8К слов внешней памяти, сегмент 2 при PMOVLAI=2.Вторая конфигурация памяти программ соответствует значениямMMAP=1 и PMOVLAI=0:адреса 0х0000−0х1FFF − 8К слов внешней памяти, сегмент 1;адреса 0х2000−0х3FFF − 8К слов внутренней памяти.Первый сегмент оверлейной памяти выбирается при нулевом значениибита А13 шины адреса, второй − при значении А13 = 1.Интерфейс памяти данныхПроцессор ADSP-2181 имеет доступ к 16К внутренней памяти данных идвум сегментам по 8К внешней оверлейной памяти разрядностью 16 бит.Число состояний ожидания при обращении к внешней памяти данныхуказывается в разрядах DWAIT регистра управления состояниями ожиданияDM(0x3FFE).
C помощью регистра DMOVLAI могут быть заданыследующие конфигурации памяти данных процессора:адреса 0х0000−0х1FFF − 8К слов внутренней памяти при DMOVLAI=0,или 8К слов внешней памяти, сегмент 1 при DMOVLAI=1, A13=0,или 8К слов внешней памяти, сегмент 2 при DMOVLAI=2, A13=1;адреса 0х2000−0х3FDF − 8160 слов внутренней памяти;адреса 0х2000−0х3FDF − 32 регистра управления, отображенные в картепамяти.Регистр DMOVLAI может быть записан и считан по его имени.Интерфейс области памяти ввода/выводаОтдельная область памяти ввода/вывода состоит из 2048 ячеек,разделенных на 4 фрагмента с программируемыми состояниями ожидания(четыре группы разрядов IOWAIT0−3 регистра управления DM(0x3FFE).Адресация этой области осуществляется линиями шины адреса А10−0,данные передаются по линиям шины данных D23−8 (16 бит).
Через эту51область памяти можно подключать к процессору различные параллельныевнешние устройства, например, АЦП и ЦАП.Область памяти ввода/вывода можно использовать также какдополнительный канал связи с хост−машиной.Интерфейс памяти с байтовой организациейОбласть байтовой памяти позволяет хранить и адресовать до 4 Мбайткода программы или данных. Она разбита на 256 страниц (выбираемыхлиниями шины данных D23−16), содержащих каждая по 16К 8−разрядныхслов, адресуемых по линиям А13−0 шины адреса. Для чтения и записи вданную область памяти используются 4 формата данных: разрядностью 24бита, 16 бит и 8 бит с выравниванием по самому старшему или самомумладшему биту.
Данные в байтовую память передаются по линиям шиныданных D15−8. В качестве байтовой памяти может быть использовано ППЗУс зашитым в нем с помощью PROM сплиттера (программатора ППЗУ) кодомпрограммы.В отличие от памяти начальной загрузки других процессоров доступ кбайтовой памяти осуществляется через двунаправленный порт прямогопобайтового доступа к памяти BDMA.Порт прямого побайтового доступа к памяти BDMAПорт BDMA позволяет передавать коды программ и данные междувнутренней памятью программ и данных и памятью с байтовой организациейв фоновом режиме, т. е.
одновременно с выполнением процессором командпрограммы с потерей (“кражей”) только одного цикла процессора запереданное слово.Порт BDMA имеет ряд программно доступных регистров.Регистры BIAD (DM(0x3FE1)) и BEAD (DM(0x3FE2)) указывают14−разрядный начальный адрес соответственно внутренней памяти ивнешней памяти для передачи через порт BDMA.Регистр (DM(0x3FE3), управляющий портом, содержит поля: BTYPE −формат передаваемых данных (24, 16 и два 8−битных формата); BDIR −направление передачи (чтение/запись); BCR − разрешение выполненияпрограммы во время работы порта (1) или запрет с перезапуском позавершении передачи (0); ВMPAGE − считываемая/записываемая через портстраница (одна из 256).Регистр−счетчик BWCOUNT позволяет начать передачу через портBDMA путем записи в него числа передаваемых слов.
По мере передачикаждого слова его содержимое декрементируется. Когда оно становитсяравным нулю (предача завершена), процессор выдает прерывание портаBDMA. Путем чтения/записи регистра BWCOUNT можно управлять портомBDMA в процессе передачи.52Группа разрядов BMWAIT регистра DM(0x3FE6) задает число состоянийожидания байтовой памяти.Загрузка памяти через порт BDMA после перезапуска процессораосуществляется при уровнях на выводах MMAP=0 и BMODE=0.
При этом врегистр BWCOUNT автоматически загружается значение 32 (десятичное),указывающее процессору загрузить первые 32 слова (ячейки) внутреннейпамяти программ из области байтовой памяти и начать выполнениепрограммы с нулевого адреса. Эти первые 32 слова представляют собойподпрограмму − загрузчик. Под управлением ее процессор продолжитзагрузку исполняемой программы через порт BDMA, пока она не будетзагружена полностью.Порт прямого доступа к внутренней памяти IDMAПорт IDMA – это параллельный порт ввода/вывода, позволяющий хостмашине осуществлять запись/считывание внутренней памяти без участияпроцессора с непроизводительной потерей одного цикла процессора накаждое передаваемое слово. Порт может быть использован и для начальнойзагрузки памяти при перезапуске процессора, также как и порт BDMA ивнешняя оверлейная память программ.Порт IDMA имеет выводы IS – выбора порта, IRD – чтения, IWR –записи и IAL – фиксации адреса, передаваемого по совмещенной шинеадреса/данных IAD15–0.
Этот адрес (IDMAA) записывается в регистрDM(0X3FE0). Бит 14 этого регистра указывает на тип адресуемой памяти −PM или DM.По сигналам IS и IRD процессор выводит содержимое адресуемой ячейкивнутренней памяти на шину данных порта.По сигналам IS и IWR входное слово с шины данных порта записываетсяв адресуемую ячейку внутренней памяти.При чтении/записи 24–разрядной памяти программ вначале по шинеданных порта передаются старшие 16 бит 24–разрядного слова, а затем полиниям AD7–0 – младшие 8 бит. Старшие 8 бит шины при этом обнуляютсяпри чтении или игнорируются при записи.Линия подтверждения прямого доступа к внутренней памяти IACK,управляемая процессором, указывает устройству (хост-машине), что портIDMA готов к передаче очередного слова (IACK=0) в асинхронном режиме.Передача через порт IDMA начинается с проверки хост-машиной состоянияэтой линии. При IACK=0 хост-машина выставляет сигналы IS, IAL иначальный адрес памяти.
Затем под управлением сигналов IS, IRD или IS,IWR следуют циклы чтения/записи внутренней памяти с автоматическимприращением ее адреса и преключением сигнала IACK из нуля в единицу иобратно. В каждом цикле передачи осуществляется проверка состояниясигнала IACK. Переход IACK в нулевое состояние означает, что возможнапередача следующего слова через порт IDMA. Такой цикл чтения/записи53через порт IDMA называется долгим. Возможен также короткий циклчтения/записи, завершающийся по единичному уровню сигнала IACK споследующим переключением его в нуль после завершения цикла.Сигнальный процессор также может сам установить начальный адрес ивид памяти назначения.Для начальной загрузки памяти через порт IDMA необходимопрезапустить процессор, выставив сигнал RESET, установить значенияMMAP=0, BMODE=1, снять сигнал RESET, загрузить внутреннюю памятьпрограмм, как описано выше (кроме ячейки PM(0x0000)), записать код вячейку памяти PM(0x0000), после чего последует автоматическоевыполнение программы.Запрос/предоставление шиныПроцессор может отказаться от управления интерфейсом внешнейпамяти, предоставив внешнему устройству возможность обращения к этойпамяти путем использования сигналов запроса и предоставления шины BR,BG.
По сигналу запроса BR процессор переводит шины данных и адреса, атакже выходы xMS, WR, RD в третье состояние, выставляет сигналпредоставления шины BG и приостанавливает выполнение программы, еслион не находится в режиме GO. Внутреннее состояние процессора не зависитот предоставления шины. Последовательные порты и порт IDMA при этомтакже остаются активными. При разрешенном режиме GO процессорпродолжает выполнение программы, пока не встретит команду обращения квнешней памяти или устройству. После снятия запроса внешнимустройством процессор снимает сигнал BG, берет назад управление шиной ивозобновляет выполнение программы с того места, где она былаприостановлена.У процессора ADSP-2181 имеется дополнительный вывод поддержания(зависания)предоставленияшиныBGH,используемыйвмультипроцессорных системах.КОНТРОЛЬНЫЕ ВОПРОСЫ1.