Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 39
Текст из файла (страница 39)
Требуется принять из ОЗУ числа а, и аа и, вычислив разность а, — а„поместить ее в ОЗУ на место числа ая. Адрес числа а, хранится в регистре Ка ОУ, адрес числа ах на единицу больше адреса числа пт. На рис. 5.15 приведена схема алгоритма рассматриваемого примера. В блоке (: в ОУ осуществляется пересылка адреса числа а, из регистра К, в РА, в К, формируется адрес числа ая, В блоке 2: в ОЗУ производится чтение числа а„которое принимается в подключенный к выходу ОЗУ регистр; в ОУ при этом выполняется холостая операция (например, операция типа К„- К„, не измеиякицая содержимого регистров ОУ).
В блоке 3: поступающее из регистра ОЗУ число ах принимается в АС ОУ. В блоке 4: в ОУ адрес числа аа из регистра К а пересылается в РА, содержимое К, сохраняется неизменным. В блоке Б: в ОУ содержимое АС передается в Ке, аккумулятор АС освобождается для приема следукяцего числа; в ОЗУ производится чтение числа ах.
В блоке б: в ОУ производится прием инверсии числа а, в АС. не содержат разветв- Рис. 5.15. Схема алгоритма вычисления равности чисел, храиящихся в оператив. иой памяти Наконец, рассмотрим вариант без использования конвейерного регистра и блоков СУП.
Длительность тор для этого случая (рис. 5.!4, в) определяется соотношением тор = тсе + т пер + тсе где тс, — задержка выдачи переноса из первой секции ОУ (то, ——— = 43 нс), т„,р — время передачи переносов с выхода первой секции до входа последней секции ((л(2 — 2) 14 нс1. При п = 32 тор > 43+196+27=266 нс. Следовательно, т, ) » )30 + 70 + 266 =- 366 ис. В блоке 7: вОУ содержимое АС суммируется с единицей и инвертированным значением числа а,. Блоки /! и 9 производят запись результата операции в ОЗУ. Описанным способом выполняется вычитание в тех случаях, когда участвукхцне в операции числа представлены в форме с фиксированной точкой и отрицательные числа в ОЗУ хранятся в дополнительном коде.
При этом изменение знака числа а, на обратный, необходимое перед суммированием, осуществляется инвертированием в ае всех разрядов с прибавлением затем единицы в младший разряд. Инвертирование разрядов а, выполняется в блоке б, а прибавление единицы— при суммировании в блоке 7. Пусть МПУ управляется мнкрокомандами, имеющими следующий формат: УА, .
УА, УФ,...УФ, ЗМ ВК чт/зп мк вму мк озу МК ОУ На входах микросхем БМУ и ЦПЭ устанавливаем сигналы: в БМУ РС=1, ОС=-1;вЦПЭ ВД=О,ВА=О. В табл. 5.7 приведена микропрограмма решения рассматриваемой задачи. Рассмотрим подробно построение первой микрокоманды. Пусть адресом этой МК в ПЗУ является 00001 1100, !1,12). Рассмотрим содержание хранящейся по этому адресу МК. Так как не предусматривается обращения к ОЗУ, то в разряд ВК занесена лог. 1, значение разряда Чт/Зп при этом безразлично. Операция !тв — РА; йв + + 1 — йя в ОУ выполняется микрокомандой 1.М1 прн С, = 1. Таблица б.7 Адрес МК е пз) Поля МК БМУ Поля МК ОУ Поля ОЗУ Поясиеияя р г..к К вК чт/зп Адрес строки Адрес колов ки УФе...УФе зм УАк..УА 011 110! О!1 1110 011 1!11 00 00010 011 1110 011 1101 011 1100 011 1011 1! 1! 00 1! 00 1! 00 11 11 1! 00 11 11 11 00 11 001 0011 0 110 0000 0 110 1011 0 001 0011 0 010 0100 1 111 1011 0 000 1101 1 001 0011 0 1 0 1 0 0 0 00001 00001 00001 ОООО! 00010 00010 00010 00010 00010 1100 1101 1110 11!1 1111 1110 1101 1100 )01! Блок ! Блок л Блок 8 Блок 4 Блок б Блок б Блок 7 Блок 8 Блок Э Рис.
5,!Ц Арифметический сдвиг вправо: а) принцип сдвига; б) илаюсграциа операции сдвига на арниере: а) егеиа ааго. раева операции Микрокоманда 1.М! определяется: Р-группа --- 2 (следовательно, Р, ... Р, = 010), й-группа = 1 (следовательио, регистру К а соответствует Р, ... Р, = 0011). Значение С, = 1 обеспечивается комбинацией УФ,УФ, = 11 в МК БМУ. Значение разрядов УФ, УФ, можно выбрать равным 11, что соответствует хранению признаков, содержащихся в триггерах С и Е регистра признаков. Адрес следующей МК определяем полем УА, ... УА, (следовательио, ЗМ =- О). Выберем переход в текущей строке (УА, ... УА4 — — — 011) к ячейке в соседней колонке (УАа ". УАо = ! 101). Относительно некоторых из остальных МК дадим лишь краткие пояснения.
В МК блока 3 производится обращение к ОЗУ (ВК = О) для чтения (Чт/Зп = 1). В МК блока 3 значение Чт/Зп = 0 обеспечивает сохранение в регистре ОЗУ информации, полученной из ОЗУ, в течение тактового периода, следующего за тактом чтения из ОЗУ. В МК блока 4 особенность построения поля УА, ... УА, состоит в том, что оно предусматривает переход в текущей колонке (УА,УА, =- 00) в соседнюю строку с адресом УА, ...УА, = 00010. Рассмотрим пример программирования с использованием триггера регистра признаков.
Пример 5.2. Требуется выполнить операцию арифметического сдви'га вправо над содержимым регистра тса ОУ. Особенность арифметического сдвига вправо состоит в том, что восстанавливается содержимое старшего (знакового) разряда (рис. 5.16га). :Эта операция может быть выполнена следующим образом. Так как операция сдвига может выполняться над содержимым аккумулятора (АС, то необходимо предварительно содержимое регистра Па передать ,в АС. Далее путем сдвига влево, осуществляемого удвоением содер- 223 Таблица б.б Ацаес МК в ПЗУ Поля МК ОУ Поля МК ВМУ УАа ..УАа Поясмеиия Адрес строим Адрес иолоиии УФа "УФа ра...ра оо и 00 01 !о !о и и и ооо!о ооо!о ооо!о ооого ооо!о ооо!о оооо ооо! оо!о 001! о!оо о!о! мк! МК2 мкз МК4 МК5 ои ооо! ОИ ОО1О ои оои ои окю ОИ О!О! ооо о!о! ои ио! ооо ии 000 ИИ о!о о!о! жимого АС, из АС выдвигается знаковый разряд числа (в виде переноса С„принимаемого в триггер Ф), На положительном фронте синхросигнала знаковый разряд из триггера Ф передается в один из триггеров регистра признаков (например, в триггер Е).
Затем следуют два после,довательно выполняемых сдвига вправо. При каждом сдвиге знаковый разряд из регистра признаков выдается на выход Ф„ откуда он поступает на вход СП, ОУ и вписывается в старший разряд АС. Эти процессы иллюстрируются приведенным на рис. 5.16, б примером. На рис.
5.16, а дана схема алгоритма арифметического сдвига аправо, в табл. 5.8 — соответствующая ей микропрограмма. Здесь во второй МК комбинация УФ,УФ, = 01 обеспечивает пере.дачу содержимого триггера Ф в триггер 2 регистра признаков; в третьей и четвертой МК комбинацией УФ, УФ, =- 10 производится выдача содержимого триггера Е на выход Ф, БМУ. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЕНИЙ 224 Разветвления в программах реализуются с помощью условных переходов. При этом в качестве признака, по которому выполняется условный переход, может быть использовано содержимое триггера Ф либо триггеров С и Е регистра признаков БМУ. Следует иметь в виду, что содержимое триггера Ф при низком уровне синхросигнала (когда оно используется в БМУ для выполнения условного перехода) в каждом тактовом периоде оказывается обновленным. Оно соответствует признаку, формируемому в ОУ в результате выполнения операции.
Следовательно, признаком, по которому осуществляется условный переход, может служить содержимое триггера Ф лишь в том случае, если выдача этого признака нз ОУ на вход Ф БМУ и условный переход в БМУ происходят в одном н том же тактовом периоде. Для выполнения этого условия в МПУ с конвейерным регистром, как это будет показано ниже, может потребоваться введение микрокоманды, не представленной в схеме алгоритма в виде блока.
Это происходит в тех случаях, когда в схеме алгоритма блок условного перехода непосредст- венно следует за блоком, в котором формируется признак для этого перехода. Если же указанное выше условие нарушается за счет того, что формирование признака в ОУ происходит в более ранних тактовых периодах по сравнению с периодом, в котором должен в БМУ выполняться условный переход по этому признаку, то переход по содержимому триггера Ф оказывается невозможным.
В этом случае необходимо в тактовом периоде, в котором формируется в ОУ признак, передать содержимое триггера Ф в один из триггеров регистра признаков (в триггер С либо в триггер У). Затем условный переход осуществляется по содержимому триггера С либо триггера Х. Рассмотрим эти особенности на примерах. Пример 5.3. Требуется проанализировать значение младшего разряда числа в регистре Ка ОУ. Если значение этого разряда равно Оа то содержимое регистра К„следует сложить с содержимым регйстра К„в противном случае оно должно быть просуммировано с содержимым регистра Кт На рис. 5.17 приведена схема алгоритма решения этой задачи. Признак, по которому осуществляется разветвление, формируется как перенос, возникакхций при сдвиге вправо переданного из К„в АС чис.ва.