Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 40
Текст из файла (страница 40)
Так как условный переход выполняется непосредственно после формирования признака разветвления, переход можно осуществлять по содержимому триггера Ф БМУ. Пусть МПУ построено с использованием последовательного принципа чтения и исполнения микрокоманд 1т. е. без конвейерного регист- Рис. 5.17, Схема алгоритма разветвляющегося процесса в микропроцессоре оез роивейериого регистра за». 430 225 ! ! ! ! г~/фм~ю!Вмнеанеяие !ардеог ! д ди !снег)-О! и-и вгя ! мн ! в ! ! Ййи7~ !ййаесн ! чтение и пэг !н-и мя л-й рани ! мк Рис. 538, Временная диаграмма процессов в микропроцессоре без конвейерного регистра 225 ра).
Соответствующая этому режиму временная диаграмма представлена на рис. 5.18. В табл. 5.9 представлены действия, выполняемые в отдельные тактовые периоды в блоках ОУ, БМУ и ПЗУ. В конце (л + 1)-го тактового периода формируется адрес МК1. В (и+ 2)-м тактовом периоде из ПЗУ считывается МК! и затем в этом же тактовом периоде исполняется в ОУ, в конце этого тактового периода в БМУ формируется адрес МК2. В (и + 3)-м тактово!н периоде считывается из ПЗУ и исполняется в ОУ МК2.
К моменту отрицательного фронта синхросигнала в ОУ завершается формирование признака (при сдвиге вправо выдвигается младший разряд содержимого АС), по которому в этом же тактовом периоде (при низком уровне синхросигнала) в БМУ выполняется условный переход по содержимому триггера Ф. В (и + 4)-м тактовом периоде, в зависимости от значения признака, будет считываться и исполняться МКЗ либо МК4, и в БМУ формируется адрес МК5.
В (и + 5)-м тактовом периоде происходит считывание и выполнение МК5. В табл. 5.!О показана последовательность обращений к ячейкам ПЗУ в процессе исполнения рассматриваемого фрагмента микропрограммы. В табл. 5.1! приведена микропрограмма, осуществляющая решение задачи. Для МК1 выделена ячейка ПЗУ с адресом (2,1!). Следующую МК предусматривается поместить в ячейку с адресом (2,4). Пропуск двух очередных ячеек с адресами (2,2) и (2,3) связан с тем, что в соответствии с табл.
5.4 при условных переходах адрес колонки следующей МК имеет структуру М, 01 П, где П вЂ” значение признака (т, е, содержимого триггеров Ф, С или Х), по которому осуществляется условный переход. Пропускаемые ячейки имеют в двух средних разрядах двоичного адреса колонки кодовую комбинацию 01 и предназначаются для выполнения условного перехода. Рассмотрим последовательность действий при реализации данного алгоритма в МПУ с конвейерным принципом чтения и исполнения микрокоманд. В табл. 5.!2 показаны действия, выполняемые в отдельных тактовых периодах в БМУ, ПЗУ и ОУ. Функционирование блоков в этом случае имеет особенность, состоящую в том, что если в (и + 1)-м тактовом периоде в БМУ формируется адрес МК1, то эта микрокоманда считывается из ПЗУ в (и + 2)-м тактовом периоде, а выполняется в ОУ в (п + 3)-м тактовом периоде.
Таблица 5.9 Номер тактового периода Формирование в БМУ адреса МК Чтение МК из ПЗУ Исполнение МКвОУ МК1 МК2 УсП по Ф МК5 МК! МК2 А1КЗ нлн МК4 МК5 МК1 МК2 МКЗ нлн МК4 МК5 Таблица К Ар Адрес Мл Е ОЗП оброс Адрес сирени лололои Оесоииооое лредсаидооаие адреса Милрелммлдо (7,!) (7,7! Ф-О~ (г,д! Ф-! (2 о) (2,Х! (2'О! МЦ! мид мио АП(7 МРО Ородолиолие ООО! Од(д Оос! О(дд О(д! Ос!О Таблица б !! Адрес МК в ПЗУ Поля МК БМУ Поля МК ОУ Пояснения Адрес колонки Адрес строкм УА ..Уде УФ, УФ ВМ р„..е, 00 11 00 11 00 11 00 11 00 !1 011 0100 01! 0101 01 1 0101 100 00!О 01! 0110 000 ОООО 000 0001 000 0010 000 1111 000 0000 Таблица б.!2 Номер тактовсео периоде Формирование в БМУ адреса МК Исполнение МК е ОУ Чтение МК иэ ПЗУ МК1 МК2 УсП по Ф МК5 МК1 МК2 МКЗ нлн МК4 МК5 МК1 МК2 МКЗ нлн МК4 МК5 227 и+1 л+2 л+3 л+4 л+5 00010 00010 00010 00010 00010 ООО!О л+1 и+2 л+3 л+4 л+5 л+6 л+7 0001 0010 0011 0100 О!О! 01!О Одд! О ддд(е Одд(д ООО(д ПОП(Р Одд(д МК! МКЗ МК4 МК2 МК5 Продолже- ние Рис.
5.19. Схема алгоритма раааеталяюпгегося процесса а микропроцессоре с коивейеримм регистром Поле УА, ... УА, МК, считанной из ПЗУ в некотором тактовом периоде, в том же тактовом периоде поступает в БМУ и управляет формированием адреса следующей МК. Следовательно, это поле в МК1 должно определить способ формирования адреса МК2 и т. д, Как видно из табл.
5.12, операция МК2 исполняется в ОУ в (и + 4)-м тактовом периоде; в этом тактовом периоде формируется признак, по которому в БМУ выполняется условный переход. Таким образом, в последовательности считываемых МК образуется разрыв, отмеченный в таблице звездочкой. геиктуа Дтг херес мк е лги ЛРрес кирее Дескюнчкее Сегрски кеккккс Лреискгаилекае пиреса Иекреконакде 228 0 0 О У О О О 1 Р О П 1 П О О 1 Р 0 Р 1 О 0 0 1 ~'» О 0 Р У Р ОРОУ и РПУО и питт О 010 О 0 0101 0 О!10 о оттт Гг,1) Гг,г) Гг',г) -, ! Ггд) Гг,и) Гз, 1) мку мкг мке мкг мка КОГО Орегттккчелпе Таблица бп4 Пои» МК ОУ Адрес МК в ПЗУ Поп» МК БМУ Пояс»сипя Адаес свао»и Адрес »о»оияи УА»...УА УФ,...УФ, ЗМ 00010 00010 000 ГО 00010 00010 000!О 00 11 00 11 00 11 00 11 00 11 00 11 0001 0010 0011 0100 0101 0110 000 0000 000 0001 000 0010 000 1111 110 0000 000 ОООО МК1 МКЗ МК4 мКз мк.
МКО 011 0100 011 0110 011 О!10 011 0101 100 0010 О!1 0111 299 Так как в каждом тактовом периоде БМУ должен формировать адрес некоторой МК, которая в следующем тактовом периоде считывается из ПЗУ, необходимо на месте, отмеченном в таблице звездочкой, указать некоторую МК, предусматривающую выполнение в ОУ холостой операции (операцин, не изменяющей содержимого регистров, например, операции вида й„- й»). В поле УА„... УАо этой МК заносится код условного перехода по содержимому триггера Ф.
На рис. 5.19 показана схема алгоритма, в табл. 5.13 и 5.14 приведены последовательность выборки ячеек ПЗУ в процессе исполнения микропрограммы МПУ с конвейерным регистром и сама микропрограмма. Из сравнения приведенных в табл. 5.11 и 5.14 микропрограмм вид- но, что применение конвейерного принципа чтения и исполнения мик'ропрограмм привело к необходимости использования дополнительной микрокоманды МК*, содержащей в поле МК ОУ кодовую комбинацию холостой операции пересылки вида Ко - Ко.
Следует заметить, что можно избежать введения холостой операции, если в микрокоманде условного перехода окажется возможность предусмотреть выполнение в ОУ одной из тех операций, которые должны следовать после МК5. Перейдем к рассмотрению программы с более сложным видом раз- ветвления по содержимому триггера Ф 'и одного из триггеров регистра при.знаков. Пример 5.4. Рассмотрим реализа- лса 'цию алгоритма Евклида для нахожде"ния наибольшего об!цего делителя а б )двух положительных чисел а и Ь (схе- ма ма алгоритма показана на рнс. 5.20).
а мьа а.а-б Алгоритм в микрокомандах приве- ен на рнс. 5.21. Пусть исходные чила а и Ь хранятся соответственно в рнс 090. Схема алгоритма Ки- илида для нахождения общего егистрах )с! и йя ОУ. Микрокоманды наибольшего делителя дауд поло- К1 и МК2 производят дублирование жительных чисел содержимого регистра 1(, в регистре К, (необходимость этого действия будет поясиена ниже). МКЗ и МК4 формируют в АС обратный код содержимого регистра )с„что необходимо для выполнения операции вычитания а — Ь в МК5. Необходимость дублирования содержимого ((, в )то о чем говорилось выше, вызвана тем, чтобы при выполнении операции МК5 не нарушать содержимого регистра й,. МК5 передает в триггер С значение возникающего в результате выполнения МК5 переноса; МК6 производит проверку на нуль содержимого АС. Результат такой проверки в виде дизъюнкции всех разрядов АС выдается в цепь С, и принимается в триггер Ф БМУ.
Разветвление по содержимому триггера Ф (МК7) соответствует разветвлению по результату проверки условия а = Ь. Если а Ь, то при выполнении операции МК5 формируется Св = О, в противном случае С, = 1. Убедимся в этом на примере. Пусть а = 0101, (5,„), Ь = 0111в (7,„). Рис. 5.2( Схеме алгоритма Евклида в микрокомиидвх 230 Определяемая МК5 сумма: а ~- 1+ Ь,„=+О!01 1000 + 1!10 Перенос С„ равен О, что соответствует случаю и ~ Ь, а полученный результат есть дополнительный код разности чисел (а — Ь)„,„. ПереносСо в конце выполнения операции МК5 принимается в триггер Ф и передается затем из этого триггера в триггер С. В рассмотренном случае С = 0 и выполняются операции МК9 ... МК11; здесь формируется прямой код модуля разности )а — Ь1 = (а — Ь) „„+ 1 = 0010, который передается в регистр йо.
Рассмотрим случай, когда условие а Ь не выполняется. Например, пусть а = 01!1, (7,ч), Ь = 010!о (5„). При этом и+ Ь,~„+ 1-+01!1 1010 1 1 и-0010 Перенос С, = 1. В этом случае будет выполняться операция МК12. Составляя микропрограмму, реализующую рассматриваемый алгоритм Евклида, будем иметь в виду микропроцессорное устройство с конвейерным принципом чтения и исполнения микрокоманд. В табл. 5.15 показано размещение микрокоманд в ячейках ПЗУ и последовательность, в которой происходит обращение к этим ячей- Годна/(а д 10 Адрес МК' П Адрес Адрес серано колонке Макрокоманда 23! ~ о Р 0 Р о и 0 и С'Р 0010 00/0 0010 РП/0 ПО/0 0010 По/ П 0010 0010 001 О Р 01 0 0010 ОО/ О 0010 РРРР Ппо / Оо/0 00// 0100 01 0/ п//и 0111 /ППП 1001 1010 1011 11 00 11 01 ПРК Дсслмочное лредсмадленое а /реса (г, и) (2, /) (г,г) (г,г) (г, о) (г, и) (2, 6) (г, /) (г, 0) (2.
О) (г,/и) (2,//) (2,/7) (7, /1) МК/ Мк2 пропел/нонне мн' мнп мко мкд Мк/ мкп Мнд М//О Мкгг мк/о мкп Титеяица 5.М Алрос МК в ПЗУ Паля МК БМУ Поля МК ОУ Пояснеяня Адрес серокн Адрес каланкн зм УА УА УФ,,.УФ„ Ее. р 00010 00010 00010 0000 000! 00! 0 011 000! 01! 0100 00 $$ !! 11 000 0001 010 0100 кам в процессе исполнения микропрограммы; в табл. 5.16 приведена микропрограмма, реализующая рассматриваемый алгоритм. Необходимость в МКя связана со следующим. Из ячейки (2,3), в которой размещена эта микрокоманда, требуемое микрокомандой МК8 разветвление по содержимому регистра С в данной строке можно произвести лишь в пару ячеек с адресами (2,2) и (2,3); однако в эту пару ячеек уже производилось разветвление микрокомандой МК7. Поэтому возможны два приема: либо осуществление разветвления в подобную пару ячеек, но расположенную в какой-либо другой строке, либо переход в какую-либо другую ячейку данной строки, из которой возможно разветвление в пару ячеек с адресами (2, !О) и (2, ! 1).