Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 49
Текст из файла (страница 49)
3.7. Количество повторений в колшнде циюш может указываться непосредственно константой (статический цикл), адресом ячейки памяти данных илп именем регистра, в котором оно хранится (диналщческий цика). Приведелг примеры команд цикла лля процессоров ПБР56ххх фирмы Магога)а: .В системе команд процесса!юв фирмы Могого1а имеется также аппаратно реа. лизованная команда принудительного выхода из цикла до его завершения КЮ000 Количество повторений цикла в процессорах фирмы Апа!08 Реу)сез предва- рительно загружается в спецггальиый регистр С1л)ТК вЂ” счетчик цикла.
Рассмотрим пример команды цикча для процессоров Ал)БР-21хх фирмы Апа!08 Осу!саге 00 МКт омттЬ Муг Условие му определяет выход нз цикла — при переполнении регистра, хра- нящего результат операции устройства МАС. Количество вложенных циклов определяется архитектурой конкретного процессора. Команды повторения Кол!анды повторения позволяют организовать повторение: лз одной команлы'„ Е) глгака команд. Системы команд, включающие аппаратно реализованную команду цикта 00, как правило, не имеют дублирующей ее кол!анды повторения блоюг.
Повторение одной команды также можно выполнить с помощью 00, как это лелается в процессорах фирмы Апа1од Веу!сез, которые не имеют колганд повторения. Процессоры фирмы Ма!ого!а, поддерживающие аппаратно команду цикга 00, имеют дополнительно команду ккк повторения олной, слелуюшей за ккк команды. Количества повторений, подобно команде по, может быть фиксированнылг и указываться непосредственно константой (статический цикл), либо переменным и указываться адресом ячейки памяти данных или нменелг регистра, в котором оно хранится (динамический цикл).
Систелш команд процессоров ТМЬЗ20С2ххх/5ххх фирмы Техаз 1плггцтепгз це содержит аппаратно реализованной колшпды 00, но включает раз гичпые колганды, поддерживающие цикл повторения одной команды и блока команд. Количество повторений блока команд предварительно загружается в специальный регистр — счетчик ггикза. Синтаксис команд повторения приведен в разд.
Б.З.!. Рассмотрилг примеры команд повторения. Е) Повторение одной команлы в процессорах фирмы Магога!а: ° стати е ий цик повтарени и. гщы лоо: ккр «3 Алгоритмы и процессоры цифровой обработки сигналов лоо хо,л команда лоо повторяется 3 раза; динамический цикл повторения ком.пщы лоо; количество повторений предварительно загружено в регистр 11. нсые лз,т1 вер тз лоо хо,л П Повторение блока команд в процессоре ТМ5320С54хх: зт лзч,ввс ЛР 'В еол Ь1оск — 1 лво *лаз,л нрт *лв2, "ллл,в нес в ео55 15!ось Выпо55нение блока из трех команд повторяется 55 раз: количество циклов минус 1 предварительно по команле зт загружается в специальный регистр-счетчик ввс. Команды обращения к подпрограммам Кол!анды обращения к подпрограммам сльь, в том числе полпрограл555ал5 обслуживания прсрывания, полобно кол!видал! персхолов, изменяют последовательный порядок выполнения команд в программе, олпако, в отличие от них, при выполнении команд сльь в стеке сохраняется адрес слечу5ошсй команды для возврага к пей после вьшолнснпя подпрограммы.
Кома5шы сльь также могут быть безусловными пгп5 условными: синтаксис команд сльь и типы возможных условий такие же, как в командах перехода. Команды возврата После выполнения подпрограммы, в том числе полпрограмл5ы обслуживания прерывания, как правило, слелует продолжить выпачнеиие прерванной программы. Длл! этого прелуслютрсны команды возврата, которые восстанавливают солержил5ое программного счетчика, сохранившееся в стеке. и передают управление команде, следу!ошей за командой вызова подпрограммы сльь. Команды возврата не содержат операндов, но люгут быть безусювлылш плп УСЛОВИЫЛ5и.
Приведем прил5сры безусловных команд возврага в процессорах Р5Р5бххх: Г3 втз — возврат из подпрограмл5ы; П рт! — возврат из подпро! раммы обс55уж55ва555555 прерывания, Глава 6. Система комаНЛ Условный возврат из подпрограммы означает, что возл5ожно разветвлсннс; возврат к прололжепию прерванной программы, если выполняезся условие, указанное в команле возврата, или выполнение кол5анлы, следующей за командой возврата. Приведем примеры условных команд возврата: (3 в процессорах ТМ8320С5ххх фирин Техаз !пз!пппепгв вс лот возврат к прололжснию прерванной прог)тел!л!ы происход5п, если содержимое аккумулятора А > 0 (условие тат); в этой команде возможно очповрел5снное указание до трек условий; ь3 в процессорах АРБР-21хх фирмы Апа!ов Ретюез 11 не втз: возврат к полпраграмме происходит, если рсзультаг выполнения операции АЛУ тл 0 (условие пе); 1г не вт1; возврат из подпрограммы обслуживания прерывания происходит прн том же условии.
Команды общего управления Система команд всех процессоров солержит набор колшнд общего управления, предназначенных для программного управления работой процессора; этот набор обычно включает слелующис основные разновидности комапл: С! каманлы перехола процессора в различные состояния, например: ° втор — останов работы генератора тактовых импульсов в процессорах фирмы Мо!ого(а; ° 1оье — переход в режим ожидания в процессорах фирм Телах 1пягщпеп!з и Апа!оя Рот(сез; ° ватт — иерехол в режим ожидания в процессорах фирмы Мо!ото!а„ ° лезет — программный сброс в процессорах фирмы Мо!ого!а и Тсхча !па!5 ц шеи!5; ° зн*, 111 — команды программпога прерывания в процессорах ф55рмы Мо1ого1а; ° гнтя, тялр — команды про5раммного прерывания в процессорах фирмы Техаз 1пмпцпеппд ь) команлы операций со стеком: загрузки вершины стека (верхней ячейки) илн сохранения ее содержимого: С) нор — пустая операция и др Глава 7 Прерывания ; Зецзузка е стек: : информации о; состоянии процессора текнцая т$3сс на рыеание Изъятие из стека: информации о состомми процессора Рис.
7.! . Прерывание процессора Алгоритмы н процессоры цифровой обРаботки сигнаяое 6.5.7. Особенности команд с плавающей точкой Арифметические команды над данными с ПТ имеют следуюшие основные особенности: (.') выполнение всех команд включает автоматическую проверку на особые случаи; О наличие команд преобразования формы представления данных из ФТ в ПТ и наоборот; (") использование в командах (кроме команд пересылок) только прямой адресации операндов с указанием имев источников и приемника — регистров регистрового файла; 0 наличие специальных команд обработки данных с ПТ (си. главу 3). При использовании процессоров в реальных системах ПОС часто вознтткает ситуация„когда необходимо прервать выполнение текушей программы по сигналу, поступившелту от некоторого источника.
В этом случае (рис. 7.1) выполнение текушей програлтлты приостанавливается, запоминается состояние на момент прерывания, выполняется другая, специальттая, заранее загружеттттая программа, после чего восстанавливается сохраненное до прерывания состояние процессора, и продолжается выполнение прерванной программы (или не прололжается, в зависимости от характера прерывания илп условия возврата, указанного пользователем). Описанная процедура называется лрврывалиси процессора: сиптал, вызвавцтий прерывание, — залрвсаи ва ттрврывантте; источник данного сигт~ала— ислточвпкотт ттщтываисся; последовательность действий, выполняемая по за- Глава 7.
Прерывания Алгоритмы и процессоры цифровой обработки сигналов 272 273 просу на прерывание, — пбгяузкнвпннеи прерыппння, а выполняемая цо пре- рыванию прогрел~ма — ппдпрпгрпи вой пбгяузкнаання прерывания. Прерывания поддерживаются всеми процессорами; по существу, это способ организации '"диалога" процессора с другими обьектал~и — нсн~пчннкатт пре- рывания.
В настоящей главе рассл~ат1>иввотся общие принципы организации обслуживания прерывания, единые ьчя всех сцпильных процессоров. 7.1. Источники прерывания Различают два типа источников прерывания: (:3 аппаратные; С) программные. Источникалш анлпрптзгпгп прерыаанпя служат внешние и внутренние периферийные устройства.
Опигл пие типовых внутренних и внешних периферийных устройств дается в гюяе 8. Особенности обслуживания прсрывягнщ от внешних устройств рассл1атриваются в этой главе. Занрпсои на прерывпнпе от внешнего аппаратного источника является активный сигнал на соответствующем выводе: источник ттдеттнянг>аннруетлся цо выводу, на котором появляется такой сигнал. К источникам внешнего прерывания также относится анааратнттый сорос процессора (установка в начальное состояние), выполняемый по сигналу па выводе КЕВЕТ, когорый имеется во всех процессорах.
К нсточцикам прпгразишпгп нрерыяпння относятся: л3 специальные кознанды для увраатяезтпго программного прерывания процессора: эти команды предусматриваются пользователем в одной или нескольких точках программы (например, команда гнтц в процессорал ТМБ320С54хх фирмы Техаа 1пагщпзецм или эи- в процессорах ПВР5600х Фирмы Могого1а); (3 особые усювия (схссргюпэ — исключения) — яеуяраетяезные программные прерывания, которые представляют собой реакцию процессора ца исключительную ситуащцо, возникшую прц выполнении какой-либо команды (перецолненис, деление ца поль, ошибка стека, недопустима» операция и т.
д.); прерывания по особым условиям могут обслуживаться: ° автоматически, например, в процессорах фарлафы Мо1ого1а автоматцче ски обсдужцяаются прерывания цо ашцбкс стека, когда адрес в >каззтсле стека становится "выше" илц "ниже" доц>стимаго; ° по команде прерывания, црелусмагрепной цальзователел> в тех тачкял программы, гле существует вероятность возникновения особых усла- вци' пРеРывание обслуживается прн возникновении этггх чсчовцц (например, па команде твм' в процессорах ТМ5320С54хх цли по юз маиде *тг в процессорах ПЯР5600х); (3 команда п1ю~ряммного сброса КЕВЕТ (сслн она предусмотрена в процессоре.