Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 69
Текст из файла (страница 69)
Поддержка для А05Р-2!РХ и АЕ)ВР-219х семейства 05Р доступна с марта 2001 гада. Интегрированные срслы объединяют в себя мошныс средства для инженерных и научных расчетов и визуализапии полученных данных. Многие саврел~енные пакеты поддерживают визуальное программирование на основе блок-схем. 9.3.6. МаИаЬ Одним из срсдств разработки программного обеспечения для процессоров 0БР является такой инструмент, как МайаЬ (фирма Маг!злтог!гз 1пс.) [29, 311. В последней версии этого пакета возможно использование составлшошпл "Моюго!а 05Р 0ехе!арета Кд" (Комплект разработчика ЦПОС Моюго1а) и "0ете)орсгз Кй Гог Тсхах 1пгагогпспгл 05Р" соответственно для процессоров фирм Моюго!а и Т1. Ма!!аЬ включает пакеты 05Р В!ос)гзег и 511тшйп)г, позволяющие проектировать и отлаживать различные цифровые усгройства (в частности цифровые фильтры).
Пакет 0$Р В!ос!гзег с помощью интерфейса йеа!-Типе лтог1га!зар позволяет генерировать А)л[51 С-кот ва результатам моделирования 05Р в 5!шп1ш)г. Полученные коды можно использовать в прикзалных программам Пакеты 0ете!о г'з Кй ре ' ! позволяют разрабатывать и моделировать сис основанные на осабенн системы, нностях конкретных прогрессоров (семейства 05 Моюго)а 56ххх, семейства Т1 С5000 С6000) и в среде Мат!аЬ и ос ч ес й тва Е)5Р двустороннюю связь с и у и твлять с интегрированными обалочкал~и пакетов ЦПОС Срелство Оете)о ег'х Кй р ' ' дает возл~ожность реализовать алга итмы.
зуя ассемблс ы 0с " тмы. испольу .. Ры 0БР или коды С, и выполнять полученные объектные программы непасрелственно в пределах Ма[1аЬ или бпппй й ил1итато 05Р. ре . Применению Ма[!аЬ для решении залач ЦОС г цикл статей [91. ач посвящен 9.4. Рекомендуемый путь построения программы Для достижения лучшей э' Ь з ф„'ективносги нсполняслюи програмл1ы фирма Т1 рекал~ендуст разрабатывать ее в соответств ветствии с алгорппгмолй схема которого приведена на рис. 9.5.
Этот алгоритм носит ло та б " . °, с с точно о ший характер, нс использует никаких особенностей про е с Т1 и с оров и, естественна, люжст применяться и для процессоров других фирль На первом этапе аз р рабатывается программа на стандартном языкс С, этом знание каких-либо особенностей процессора згякс . при а пе является а язательным. После компилянии пол чеп :у пая исполняемая программа подвергается отладке и тости зовапию или нет и о талью которых является проверка, удовлс о тв ряет 'т лям. дним из основных р грамма заланным условиям и показателям. О показателей пппг эммы явл показател пп р.
яется время выполнения (это особенно важно лля систем, работающих в реальнол~ л~асштаб ). П выполнения может п водиться е врел~ени . Роверка времени Ро д ться с ломо~пью стандартных или специально разработанных средств профилирования. Другими важными показателями ателями могут являться объемы кодов и данных, определяющие тоебвемый о~ ел р у " обьем (и соответственно стоилюсть памяти), и потребляемая мощность, кото а , которая также связана со временем выполнения кодов и их садспжаннем.
П . Последний показатель особенно важен зля систем с батарейным питанием Если заданные условия выпал ! олняются, то на этом процесс Разработки програмллы может быть закопчен. сл ч н. Если же заданпыс условия не выполняются, то необхо.шма аальнейи~ая работа нзл п гр праграммои. На втором этапе работы подключают Р д чочаются срелства оптимизации алгоритма и компилятароа языка С лля пронсссов ЦПОС пелыа оппсиизании алгоритма мажет производиться его транс"юр,, р.
"юрмашш, направленная на использование колпбзипирагяшных циклов ов вместо послславагсльности п можпость организашш па алл . л з ности простых, ваз- ' Р' сльных вычислений и т. д. Апгоряпаы и процессоры цифровой обработки сигналов Первый тСоздание программы на языке С Компиляция прОграммы Проверка эффективности программы Конец нет 'Второй >этап Оптимизация пр:граммы нв язьве С Компимция программы Проверка эффективности программы Конец Запись «ритическик частей программы на языке ассемблера Проверка эффективности программы да Конец 'Четвертый >этап Упу«пение игм оптимизация программы на ассемблере рыс 9.5.
Путь построения выполняемой программы Удовлетворяет «э'яство прогр*ммыт Удовлетворяет ка встаю пр>граммыт Нет Есть возможность оптимизации? Определение частей программы ц:итических с точки зрения времени выполнения упсала>вамп качество прсграммыт нет удовлетворяет «а«тотал программно г —- ,третий >этап Главе 9. Гго го ое д говне программ пользователя. Языки программирования ЗВ г В некото ых р х пакетах поддержки разработки нмеютси оптимизаторы программы па языке ассемблера. В частности, такие оптимизаторы имеют пакеты фирмы Могого!а н пакеты нолдержкн разработки процессоров платгро >- мы С6000 С6000 фирмы Т1. Их можно применять иа четвертом этапе работы с ! программой.
При этом могут потребоваться и некоторыс "творческие усилия" по улучи>ению алгорнтл>а и программы, а также изменения в ст укт е стемы, в частности изменения в структуре н характеристиках памяти, например для размещения критичных фрагментов программы и соответствующих данных может понадобиться использование б . "б олее " ыстрой памяти. Следует отметить, что написание вручную эффективной п о> а . ссембл р Ро ро С6000 вряд ли возможно. Это определяется па аллелизмом р' от аб ты 8 опе а Р цнонных элементов н сложной структурой конвейтся парал- ходнмо обРатить внимание еше раз на следующий П, ц и с целью повышения эффективности нужно про»а ы б таюшук> пРавильно н не имеет смысла улучшать п1юграмму, неверно илн некорректно решающую поставленную задачу.
С редства оптимизации имеются во всех компиляторах Ггя. азд. Р.б). О мнза> >ня программы производится, например, путем упрощения выражений, организации и упрощенна циклов, использования регистров для хранения и передачи переменных и т. д. Опгнлтнзаторы для повышения эффективности программы учить>вают архитектуру и состав операционных устройств конкретных процессоров. Уровень оптимизации, задаваемый компилятору, способен изменяться, поэтому второй этап может выполняться неоднократно, в том числе и за счет "ручной" оптимизации.
Некоторые рекомендации но оптимизации програлтмы приводятся обычно в фирменных руководствах. Если на уровне языка С достигнуть нужной эффективности программы не удается, то выполняется третий этап. В написанной програмлте выделяются фрагменты, критичныс с точки зрения поставленных условий эффективности. В частности, в любой программе можно выделить фрагменты, время выполнения которых вообд>е не критично. (например иыиц>тализация процессора, настройка режимов и устройств периферии) и фрагменты, время выполнения кот оторых в основном и определяет общее время выполнения, (например, .многократно циклически повторяюшиеся команды обработки отсчетов входного сигнала).
По некоторым оценкам до 80% общего времени выполнения программы занимают 20% ее кодов. Вылелсииые важные фрагменты программы нужно переписать на языке ассемблера. используя'все возможные особенности архитектуры и системы команд конкретного процессора. Многие процессоры илтеют большое количество сиещталнзированных команд, направленных на решение задач цифровой обработки. например команды для реал>тзации БПФ (А()КР-2116х) КИХ- и БИХ-фильтров ( 4х н С55х).
Полученные фрагменты на ассемблере можно встав(ТМБ320С54 лять в общую программу на языке С, используя соответствующие конструкции языка. Алгррипиы и процессоры цифроаОЙ обработки сигнал ера. Оптимизатор ассемблерного кола выпошшет работу по чисту этих, а шюке некоторых других воэможностей процессора. Действия по оптимизации п)юграммы сстсствснпо требуют знания архитектуры процессоров и возможных алгоритмов решения залач ЦОС.
Оптимизация достишеэся, как правило, па пути компромисса между различпымп показателями системы и используемой пргпраммы. 9.5. Размещение программ в памяти 9.5.1. Секции программы и блоки памяти Структура программ систем обработки сигналов достаточно сложна. В программах используются колы и данные, отличаюшисся по назначению, воэможности модификации в процессе работы, частоте и кратности выполнения. Например, в любой программе сушествуют команлы инициализации процессора, которые выполняются один раэ (пли достаточно редко), команды обработки входного сигнала, способные выполняться многократно, константы (например, коэффишзенты фильтров). которые считываются многок атно.