Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 41
Текст из файла (страница 41)
5.20 (сравните с рис. 5.14, 5.17). 15 О АХО ~0х2327 ] Регистрыутд 15 О )2 ~Кх1006~ 15 0 Рып. 5.20. Пример выполнения команды дХΠ— ОМ)12, М2) 24. После выполнения команды сложения в процессоре ТМ5320С54хх фирмы Техов !пмтоптеп)$ содержимое АК2 декрементируется; (АК2) — (АКО) = (АК2) — 3 АК2 (сравните с примером 18). Пример выполнения команды приведен на рис. 5.21 (сравните с рис. 5.15, 5.18).
Алгоритмы и процессоры цифровой обРаботки сигналов рава 5, Адресация 219 косвенной алресации). Испшншемый адрес вычисляется как (АКл) + 00 Со- держимое АКп после выполнения команды не меняется. Существуют модификации адреса, когда после его индексации выполняется постинкремент/декреметп на величину смещения. Например, в процессорах Тм5320с54хх фирмы техаз !пзггипзеп13 после индексации содержимое реги- етра адреса АКП может не меняться или инкрементироваться на ! в зависи- мости от состояния 4-х битов людификации МОР в слове команды (табл.
5.4). В других процессорах подобная модификация адреса должна ъггь организована программно. Команда АОО .Аяг-е, я Перед вьахатненмм После вмтолнвнил Таблица 5.4. Индексация адреса оаоги ~ххххь 010дт [ ХХХХП ~ 15 0 15 0 ВК [ ООООП ] вк ~ооооп ~ Яккумулятор А Аккумул ало р А 39 КтманДа МОЧВ Ят, Х:!Яа+ИО) Пород выполненном Яккумулятор А Паола вылолнвнмт РМС. 5.2!. ПРИМЕР ВЫПОЛНЕНИЯ КОМаНДЫ АОО *Ааг-От Д Аккумулятор А 0 55 48 47 24 23 55 ае ау 24 23 Индексация адреса Икдексрцкя (указание) алреса означает автоматическое изменение исполняемого адреса без изменения содержимого регистра адреса„исполняемый адрес вычисляется как сумма содержимого регистра адреса и смещения Гтт.
Синтаксис косвенного указания адреса при индексации приведен 8 табл. 5.4. А2 А1 АО Аг Ят АО Х вЂ” память данных 23 0 Х вЂ” память данных гз 0 $4735 $ХХХххХ $4735 зхххххх В процессорах Р5Р5600х фирмы Могого!а при индексации исполняемый адрес вычисляется как (Кл) + (!л171). После выполнения команды содержимое регистров )т)я и Кя не меняется. В процессорах АКР-218х фирмы Апа)оя Ренсез индексация адреса лолжпз быть организована програлоино; смещение Л' (где Аг — целое со знаком) записывается в регистр Мя; исполняемый адрес, равный (11) + (М73, сохраня. ется в новом регистре адреса (1, (!73 + (МВ 1/(т',,1 = О, 1, 2, ..., 7; 1 му). В процессорах ТМБ320С54хх фирмы Техал 1пзлгигпспге прн ИНдЕксацИИ адреса смещение йт (где йг — целое со знаком) разлтещается в слове расширения колганды (это исключение — слово расширения обычно не используется прп Рис.
5.22. Пример выполнения команДы МОЧЕ А1, Х: (ЯО+НО1 те о Аиг [ ОЗ 05111 !5 0 Ано [ л~Д память даннык 15 0 0105Л ! 2515Л ) 15 0 Аи2 1 0102п ) 15 0 япо [~сей Памят~ данньи 15 0 0105л ! 2515пД $4738 $ХХХХХХ рагнотры угд 15 0 НО ! $11735 15 0 НО ~ Заооэ) ьз о мо [ звуку $4738 $234587 т*вп о рм 1'ГЯ 15 0 НО ! $4732 15 0 но ~ эмоз~ те о 1ЛО ~ ж-.кг Д улана 5. Адресация Память данныи А«реса ячеек буФере Границы буфера ые Рис 5 24 Циклический буфер ««-т е! регистр адреса «1 база Не ххх ноо ... оао е! стнсситеяьный «-реитвдный адрес оно Например: О прн М = 5, й = 3 (2» < М < 2з); О при М 32 й — 5 (24 < М вЂ” 25). О при М=90,/с= 7(2«< М<2т) и т, д. Алгоритмы и процессоры цифровой обработки сигнал«с Числа А и В считаются равными !сравнимыми! между собой по птоб М.
еслл а га Ь, гле символ "и"„назынаектый сравнением, имеет тот же смысл, что н символ равенства н линейной арифметике. Например, числа 373 и 693 по щи 20 равны (сравнимы) между собой 373 га 693 ге !3 юос! 20. По атос) 2 равны межлу собой все четные числа (О тпог! 2) и нечетные числа (1 гпос! 2) и т. л.
6.2.3. Циклическая адресация Многие алгоритмы ЦОС, н частности, вычисление разпостпых уравнений, сверток и т. п., прелстанляют собой циклическую обработку блока ланных фиксированной длины. Для хранения таких данных н памяти выделяешься область заданного обьема, которую называют буферг«и. Данные могут поступать в буфер извне или вычисляться в цикле. Организация последовательной записи данных н буфер или считывания из буфера представляет собой циклический буфер (см. также главу 27. При обращении к ячейкам буфера исполняемые адреса вычисляются по правилам лгадуутьний ариф»и«клики, что позволяет автоматически выполнять операцию пронерки достижения конца буфера и возврата в его начало, тем самым обеспечивая циркуляцию данных внутри буфера. Адресацию операнда называют г!игстггческигг, если исполняемый адрес вычисляется по правилам модульной арифметики.
Рассмотрим организацию циклического буфера. Укажем его размер — М ячеек памнти данных (рис. 5.24). Это значение (либо на 1 меньшее, М вЂ” 1, как в процессорах фирмы Мотого!а) записывается в регистр типа арифметики, который н процессорах различных фирм имеет собственные имена и обозначения (табл. 5. 1). Рассмотрим вычисление исполняелюго адреса прн циклической адресации, для чего авелем понятие отногггтеаьниго адреса н циклическом буфере.
Булеьт называть олв«ситетыгыми адреса ячеек буфера, не учитывающие его месторасположение в пространстве памяти ланных (рис. 5.24). Все относительные адреса начинаются с 0 (нижнлл относительная граница буфера) и заканчиваются (М вЂ” 1)-м (верхгигл относительная граница буфера). Оченилно. что абсолютные алреса отличаются от соответствующих относительных алрссов на некоторую целую положительную константу, равную абсолютной нижней границе буфера.
Она называется бтпигг буфера и обозначается»п (Вазе). Содержимое !6-разрядного регистра нлреса (исполняемый адрес) при циклической адресации показано на рис. 5.25, а. Оно равно сумме двух !6- разрядных чисел: базы Вл (рис. 5.25, б) и относительного адреса (рис. 5.25, «). причем база Вл солержит» нулевых младших разрялон, а относительный алрсс солержнт (16 — /с) нулевых старших разрялов. Рис. 5.25.
Регистр адреса прн циклической адресации Количество гг млалших разрядов в регистре алреса, отволимое лля храпения относительного адреса, определяется по заданному размеру М циклического буФера из условия 2» ! < М < 2». глаза 5. Адресация 225 224 Таблица 5. В (окончание) Содержимое регистров при модульной арифметике в процессоре фирмы Условное название регистра Апзгсй Оеъпызз АОВР-218х Техаз! пзиипгзпгз ТМ8320С54хх Могото1а ОВР5500х (АДО) = посгиикрз- меит/постдекремзнт (Мл) = псстиикремент/ гюстдзкрзмзиг (гчл) = пссгинкре- мент/постдекремзит Регистр смещения Содержимое регистров при модульной арифметике в процессоре фирмы Условное название регистра Мо1ото1з ОВР5500х Техзз 1пз1пзпеп1з ТМ8320С54хх Апа1сп Оемсез АОВР-213х (Мл) = М-1 (ВК) = М Регистр типа арифметики О.л) = /И (Дл) = абсолютный начальный адрес (Айл) = абсолютный начальный адрес Ол) = абсолютный начальный адрес Регистр адреса и т.
д. Алгоритмы и процессоры цифровой обработки сигналов Полученное значение /г обеспечивает алресацию солержимого ячеек циклического буфера с относительнылги адресами с 0-го по (2" — 1)-й, что соответствует абсолютныы алресам с базового Вз ио (Вз+ (2" — !))-й. Адрес (2 — 1) называется /гределыгой относительной границей буфера; абсолютная ь предельная граница равна Вз+ (2" — 1). П)хгстранство памяти буфера с относительными адресами с М-го по (2~ — !)-й включительно свободно и мо жег использоваться лля лругих целей. Вшачение базы Вз должно быть кратным 24 Вз = рх2ь, гле р = 1, 2,, Выбор р оирелеляется своболной областью в памяти данных, тле может размещаться циклический буфер.
Начпльньш исполняемый адрес может быть: (3 равен нижней границе буфера — /г млалших разрядов содержат 0; С) равен верхней границе буфера — /г младших разряиов содержат 1; (з произвольным в границах буфера — в // младглих разрядах хранится соответствующий относительный исполняемый адрес. Тогда слелуюшпй исполняемый адрес ЕА при постинкремснте/постдскрсменте на Л/(~ Л/) < М) согласно и!хгвнлаы модульной арифметики вычисляется по форлгуле (ЕА — Вз + Л/) гпог) М+ Вк если (ЕА — Вз+ Л/) > 0 или по формуле (ЕА — Вз + Лг) гпск1 М+ Вз + М, если (ЕА — Вз + Лг) < О.
Солержимое триплета: регистров адреса, смешения и типа арифметики прп организации циклического буфера размером М приведено в табл. 5.6, Д/гя процессоров фирм Могого!а и Агга)ой !3сч!сев при циклической адресации номер и в зриплсге лолжен быть одинаковым, например, МО, КО. )чО и т. и. Таблица 5.5. Содержимое регистров при циклической адресации Приведем примеры циклической адресации в процессорах 05Р5600х фирм Могого!а и АЕ/8Р-2!8х фирмы Апа108 (Зез!сез. Все адреса указаны в лесятичиой системе. 27. В команде пересылки из х-памяти данных в регистр аккумулятора А! И01/а Ат, Х: 1ВО)чНО процессора О5Р5600х фирмы Могого!а после выполнения команды следугоший исполняемый адрес опрелеляется как ((КО) — Вз + ()чО)) пюд М+ Вз > КО (сравггите с примером 16).
Пример организации циклического буфера привелен па рис. 5.26. Размер циклического буфера М = 90; значение (М вЂ” 1) хранится в регггстре МО. Количество 2 младших разрядов, определенное из условия 2/г-1 < М 5 2» (2ь < 90 < 21) рамю 7. База Вз (нижняя граница буфера), кратная 21, выбрана равной 128. Верхняя граница равна 217 (Вз + М вЂ” 1), а предельная граница — 255 (Вз + (21 — 1)).
Ячейки с 2! 8-й по 255-ю свободны и люгут быть использованы для других целей. Начальный !6-разрялный исполняемый алрсс равен 165 и хранится в регистре адреса КО. Отнес!стельный исполняемый 7-разрялный начальный адрес равен 37 = 0100!О!О!. После первого выполнения команды следующий исполняемый адрес вычисляется как ((КО) — Вз + (1чО)) пю/1 90 + Вз = (165 — 128 + 15) гиок 90 + 128 = 180- После второго и третьего выполнения команды исполцяемыс адреса последовательно становятся равными (180 — 128 + 15) пюг) 90 + 128 = 195; (!95 — 128+ 15) пюд 90+ 128 = 210.