Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 46
Текст из файла (страница 46)
Таким образом, при каждой передаче адреса оперативной памяти из регистра Кр в регистр РА подготовка в )се адреса очередной ячейки памяти, к которой далее производится обращение, сведется к увеличению на единицу содержимого этого регистра. Рассмотрим порядок действий в приведенной на рис, 5.37 схеме алгоритма подпрограммы умножения. В основной микропрограмме микрокоманда обращения к подпрограмме осуществляет прием в АС увеличенного на единицу адреса этой микрокоманды в управляющей памяти и переход к микрокоманде МК"„ подпрограммы.
Микрокоманда МК", передает содержимое АС в регистр Й,, где этот адрес возврата в основную микропрограмму хранится до окончания действий в' подпрограмме. Мнкрокоманды МК"„МК"„МК", осуществляют выдачу горница о.з4 адреса, чтение из опе- Содержи м ое ячейки памяти Адрес ячейки оператна. иой памяти Содержимое ячейии памяти або адрес ячейки оператна.
ной памяти ративнои памяти и прием и в АС;микро- команды МК",, ..., МК", — выдачу следующего адреса, чтение из оперативной памяти, передачу содержащегося в АС числа п АС+яв Я,,АС Смяв г П, -АС 75 4С ° яе lб О АС в Биуг явреыв К АС; пмпГмерамме умнвмения 77 АС.~-47.
гб АСА, 4„,4С 7О Яв "»Р4 7 АС 7 гб АСм яе,' ОП:тменов О Биу: переква к ИИ- АС; порпрверомме уммгмения 27 И -4С; СП: юпение Я АС Я, А,,АС гг АС Я, Яв,яс н АС.ь 7 гг БИУ: перекор к и+7 Ас; порпроерамме умномения Рис. 5.38. Схема алгорит- ма осиовиой миироирог- раммы цифрового фильт- ра 28! в регистр 1с а, прием в АС участвующего в операции умножения коэффициента (множимого) и передачу его в регистр Кг; микрокоманды МК", и МК"„формируют в регистре Йа значение коэффициента с обратным знаком; блок 11 реализует алгоритм Вута; микрокоманды МК"„, МК"„осуществляют возврат в основную микропрограмму. . Йа рис. 5.38 приведена схема алгоритма основной микропрограммы.
Здесь пары МК2 и МКЗ, МК6 и МК7, МК10 и МК11 осуществляют перед обращением к подпрограмме умножения передачу множителя в регистр Т; МК16 выполняет прием через вход В от внешнего устройства ввода очередного значения х; МК14 и.МК15, МК17, МК20 осуществляют сдвиг информации, необходимый для подготовки к действиям в следующем повторении цикла; микрокомандами МК19 и МК21 производится чтение из оперативной памяти числа — 6 и прием его в АС. Прибавлением этого числа к содержимому регистра йа макрокоманда .МК22 восстанавливает в этом регистре начальный адрес массива данных, считываемых из оперативной памяти.
Рис. 5.39, Структурная схема микропроцессорного устройства На рис. 5.39 показана структурная схема микропроцессорного устройства. Так как на один и тот же вход М ОУ поступает информация с адресного выхода БМУ и выхода данных оперативной памяти, возникла необходимость включения в зги цепи управляемых буферных регистров (БР) с тремя состояниями. Из двух этих буферных регистров в выведенном из 3-го состояния (выключенного) может быть не более чем один регистр. Для управления буферными регистрами необходимо предусмотреть соответствующее поле в микрокомандах. Учтем следующую особенность работы устройства. В разрядах, участвующих в операции умножения, множитель может содержать различное число единиц и нулей.
Такимобразом, операция умножения Рис. 5.40. Схема управлении сиихроснгиалом выполняется в различное число тактовых периодов и различным оказывается общее число тактовых периодов, в которое происходит выполнение действий, связанных с однократным повторением цикла. Между тем прием очередного значения х должен происходить вопределенные моменты времени, следующие с периодом выдачи их из устройства ввода. Необходимое согласование в работе ОУ и устройства ввода можно выполнить следующим образом. Предусмотрим в формате микрокоманд одноразрядное поле управления цепью синхронизации.Микрокоманда МК15, предшествукхцая МК16, осуществляющей прием х, в поле управления цепью синхронизации содержит лог.
1. После завершения выполнения МК15 эта информация, действуя на входе 3 триггера (рис. 5.40), в момент положительного фронта сигнала генератора тактовых импульсов устанавливает триггер в состояние лог 1. С этого момента триггер подает лог. 1 на вход логического элемента ИЛИ и на выходе этого элемента устанавливается постоянный уровень лог. 1. Постоянный уровень лог. 1 действует в цепи синхронизации устройства.
Отсутствие спадов уровня в синхросигнале приведет к тому, что будет оставаться неизменным содержимое регистров в БМУ и ОУ. Следовательно. на адресном выходе БМУ будет действовать один и тот же адрес, одна и та же микромкоманда МК16 будет считываться из управляющей памяти, но действующая на входе В ОУ информация не будет приниматься в АС. В микропроцессорном устройстве устанавливается режим ожидания. Такое состояние продолжается до тех пор, пока устройство ввода не подаст сигнал Готов.
Этот сигнал поступает на вход К триггера н в момент очередного положительного фронта сигнала генератора импульсов переводит триггер в состояние лог. О. С этого момента устройство выходит из режима ожидания, осуществляется прием числа со входа В в ОУ и продолжается выполнение действий по алгоритму, приведенному на рис.
5.38. Итак, в рассматриваемом микропроцессорном устройстве микро- команды должны иметь формат, представленный на рис. 5.41. В заключение отметим, что использование подпрограмм приводит к снижению быстродействия микропроцессорного устройства. Это свя- рязряряр раярерар рал мЖ разряда рязряя Рне. 5.4!. Формат макрокоманды (поле БМУ вЂ” 14 разрядов; в поле ЦПЭ— Ра .: Ео); в поле БМУ вЂ” УАа -, УАа вано с тем, что прн использовании подпрограмм затрачивается допол- нительное время на исполнение микрокоманд, связанных с обращением к подпрограммам и возвратом из подпрограмм в основную микропро- грамму.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ КОМАНД В случае сложных алгоритмов описание их на языке микрокоманд приводит к тому, что образуется весьма громоздкая микропрограмма (содержащая, например, многие сотни и тысячи микрокоманд). Это вызывает трудности как в составлении микропрограммы, так н в проверке ее правильности, Использование подпрограмм может не разрешить возникающих трудностей. Они преодолеваются при переходе к программированию на языка команд. Рассмотрим этот способ программирования. Изучив алгоритм задачи, определяют минимальный перечень операций, используя который можно описать данный алгоритм. На каждую включенную в список операцию строится микропрограмма операции н команда, которой эта микропрограмма может быть вызвана. Команды хранятся в оперативной памяти, микропрограммы — в управляющей памяти. Для того чтобы по вызванной нз оперативной памяти команде можно было бы в управляющей памяти отыскать соответствующую команде микропрограмму, достаточно в команде указать адрес ячейки управляющей памяти, в которой хранится первая микрокоманда этой микропрограммы.
Итак, образуется список команд. Пользуясь таким перечнем команд, с гораздо меньшими трудностями можно описать сложный алгоритм. Назовем описание алгоритма на языке команд программой (в отличие от микропрограммы, дающей это описание на языке микрокоманд). Хранение программы производится в оперативной памяти. Работа микропроцессорного устройства в этом случае происходит в следующем порядке. Пусть программа не требует привлечения безусловных н условных переходов. Работа с такой программой сводится к последовательной выборке команд из оперативной памяти и их исполнению путем обращения к соответствующим этим командам микропрограммам, хранящимся в управляющей па мяти.
Для хранения адреса очередной команды необходимо в ОУ выделить регистр. Пусть таким регистром будет регистр й,. Микропрограмма текущей команды завершается микрокомандами чтения из оперативной памяти очередной команды и выдачи из БМУ адреса управляющей памяти, взятого из принятой на входы К,... К, БМУ очередной команды (рис. 5.42). Таким образом осуществляется переход к микропрограмме, реализующей очередную команду. Программирование на языке команд не только упрощает процесс программирования, но может привести к существенному сокращению емкости управляющей и оперативной памяти, требуемой для хранения программы и микропрограмм операций.
Однако следует иметь в виду, что быстродействие микропроцессорного устройства при этом существенно снижается. Последнее нетрудно понять хотя бы потому, что в каждой микропрограмме выполняются микрокоманды, связанные с выборкой команды из Рис. 5.42, переход к мвкрокомаиоперативной памяти.
При описании ае очерелиой комаикы алгоритма на языке микрокоманд необходимость в таких микрокомандах обращения к оперативной памяти отпадает. Очевидно, чем меньше средний размер микропрограмм, соответствующих отдельным операциям, тем выше в этих микропрограммах удельный вес микрокоманд обращения к оперативной памяти и тем ниже быстродействие микропроцессорного устройства. Покажем программирование на языке команд в рассмотренном выше примере построения цифрового фильтра 2-го порядка. Пусть значения входящих в разностное уравнение цифрового фильтра величин у(пТ вЂ” Т), у (пТ вЂ” 27), хгпТ вЂ” Т) хранятся воператив- Рис. 5.43. Программа цифрового фнльтра 265 Таблице зла Условное обоаначанна «оманхы Опараннн, аыполннемыо номанааа Подготовка операции умножекив; а) засылка в й, числа л из регистра йа, б) засылка миожимого из ОП в регистр йь в) формирование в йа отрицательного множимого, г) засылка множители нз ОП в регистр Т ПУ ПС ~ Пересылка 'содержимого й, в регистр йа УМ ~ Умножение с получением старших разрядов произведения в АС СМ ~ Суммирование содержимого регистров йа н АС ЗП! ~ Запись содержимого йа в ОП по адресу йа ЗП2 ~ Запись содержимого АС в ОП по адресу йа ПР ~ Прием данных от внешнего устройства в йа ВС Уменьшение иа единицу содержимого регистров йг я йа для вос- становлении в иих исходного значения УО Установка нули в регистре й, 266 ной памяти в ячейках с адресами, соответственно равными гса + 1, Ка + 2, кн + 3; коэффициенты й,, Ах )га имеют в оперативной памяти адреса, соответственно равные К„кт + 1, Кт + 2.
Для хранения числа разрядов сомножителей используем один из регистров ОУ, например ца. Из анализа алгоритма функционирования фильтра следует, что входящие в алгоритм действия могут быть представлены системой операций, представленной в табл. 5.35. В табл. 5.36 приведены микропрограммы этих операций. Пользуясь сформулированной системой команд, нетрудно описать алгоритм цифрового фильтра.
Программа, реализующая данный алгоритм, приведена на рис. 5.43. Она реализует следующую последовательность действий. Команда К1 очищает регистр Ка, подготавливая его к накоплению суммы членов разностного уравнения. Команда К2 производит подготовку к первому умножению А, у (цТ вЂ” Т). Команда КЗ осуществляет пересылку у (пТ вЂ” Т) из регистра и, в регистр Ка. Здесь это значение хранится до момента, когда из ячейки ОП с адресом )ха + 2 командой Кб будет осуществлено считывание у (цТ вЂ” 2 Т) и окажется возможным командой К7 записать у (пТ вЂ” Т) из регистра ка в ячейку ОП, где Таблица б.зб Ко- манда ко- манда Мннропрограмма Мннропрограмма ПУ ПС УМ 267 ранее хранилось у (пТ вЂ” 2Т).