Методичка для курсового проектирования по ПТЦА (прикладная теория цифровых автоматов)

Сдавался/использовался1998г.
Загрузить архив:
Файл: hai-0652.zip (51kb [zip], Скачиваний: 69) скачать

Антик М.И.                                    11_03_91 МИРЭА

     АЛГОРИТМЫ ПРОЦЕДУРНОГО ТИПА. ОПЕРАЦИОННЫЕ УСТРОЙСТВА

     Алгоритмы этого типа являются следующим этапом обобщения

описаний вычислительных процессов. Теперь, по сравнению с ал-

горитмами автоматного типа, на каждом шаге, помимомодифика-

ции памяти, идентифицирующей шаг алгоритма, разрешается изме-

нять любую другую память устройства локально (по частям)или

глобально (всю сразу).

     Устройство-исполнитель алгоритма этого типа будемназы-

вать операционным устройством (ОУ).

     ОУ можно рассматривать как одинсинхронныйавтомат  со

сложно структурированной памятью - состоянием:часть  памяти

используется для идентификации шага алгоритма, остальнаяпа-

мять используется для запоминания промежуточныхданных,  вы-

числяемых в процессе последовательного, по шагам,выполнения

алгоритма. Такая модель вычислителя особенно удобна длярас-

чета продолжительности одного такта работы устройства.

     Другой удобноймодельювычислителя  являетсясовокуп-

ность взаимодействующих синхронных автоматов, один из которых

называется управляющим автоматом (УА), а объединение всех ос-

тальных автоматов называется операционным автоматом (ОА).

     УА является исполнителем алгоритма автоматного типа, ко-

торый входит составной частью в любойалгоритм  процедурного

типа. Кроме того, УА инициирует действия отдельных шаговал-

горитма и участвует в их выполнении.

     ОА выполняет все вычисления на отдельных шагах алгоритма

под управлением УА; кроме того, к ОА удобно отнестивсе  вы-

числения предикатных функций, оставив УА только анализ вычис-

ленных предикатных значений.

     Прежде чем переходить к точным терминам, рассмотрим сле-

дующиe примеры алгоритмов процедурного типа.

     Например, каноническоеописаниесинхронного  конечного

автомата может быть интерпретировано (истолковано) какодно-

шаговый алгоритм процедурного типа.

                              █

                    ┌──────┐│

                    │   ┌──V──V─────┐

                   │   │ B=FO(S,A) │

                    │   │           │

                    │   │ S:=FS(S,A)│

                    │   └─────┬─────┘

                    └─────────┘

     Исполнитель этого алгоритма состоиттолькоиз  ОА.На

каждом шаге этого алгоритма изменяется вся память устройства,

поэтому управление памятью не требуется, идентифицировать ша-

ги этого алгоритма не надо.

     Например, инкрементор с одноразрядным входом и  однораз-

рядным выходом может быть реализацией следующихпреобразова-

ний:

                              █

                          █ p:=1 █

                              █

                   ┌────────┐ │

                   │  ┌─────V─V───────┐

                   ││ (p:, b) = a+p │

                   │  └───────┬───────┘

                   └──────────┘


ОА, реализующий инкрементор в целом, будет следующим:

                         ┌──┬─┐

     a ──────────────────┤HS│S├────b

                  ┌─┬─┐p ││ │

начальное значен.─┤S│T├──┤│P├──┐

                  ├─┤ │  └──┴─┘│

    SYN ─────────/C│ │          │

                 ┌┤D│ │          │

                 │└─┴─┘          │

                 └───────────────┘

Конечно, эта реализация совпадает с реализацией алгоритма ав-

томатного типа, если состояние р1 кодируется 1,а  состояние

р0 - 0.

     Этот пример показывает,что доначалавычислений  может

потребоваться начальная установка памяти. На самомделе  это

необходимо было уже в алгоритмах автоматноготипа,  таккак

код начального  состояниятребуетпредварительнойустанов-

ки. Ограничимся здесь обозначением этой проблемы,а  решение

ее, связанное прежде всего скорректной  синхронизациейус-

тройства в первом такте его работы, рассмотрим ниже.

     При рассмотрении процедуры построения автомата Мура  эк-

вивалентного автомату Мили , не обсуждаласьпростая  возмож-

ность ее реализации и на структурном уровне. Например, только

что рассмотренный автомат Мили может быть преобразованв эк-

вивалентный автомат Мура по одному из следующих вариантов:

     ┌┬─┬┐t┌──┬─┐                            ┌──┬─┐┌┬─┬┐

a ──┤│T│├┤HS│S├─b                 a ─────┤HS│S├─┤│T│├─b

   ─/┴┴─┴┘ ││ │                            ││ │─/┴┴─┴┘

    C      │  │ │                     C      ││ │ C

   ─/┬┬─┬┐p││ │                    ─/┬┬─┬┐p││ │

   ┌┤│T│├┤│P├┐                   ┌┤│T│├┤│P├┐

   │ └┴─┴┘ └──┴─┘│                   │ └┴─┴┘ └──┴─┘│

   └─────────────┘                   └─────────────┘

     При таких структурных преобразованияхпрощеистолковы-

вать алгоритмы как процедурные.

               █                                 █

        █ p:=1; t:=0 █                       █ p:=1 █

               █                                 █

    ┌────────┐ │                      ┌────────┐ │

    │  ┌─────V─V───────┐              │┌─────V─V───────┐

    ││t:=a;(p:,b)=t+p│              ││ (p , b):= a+p │

    │  └───────┬───────┘              │  └───────┬───────┘

    └──────────┘                      └──────────┘

     БЛОК-ТЕКСТ. Способ описания автоматного алгоритма  после

некоторых дополнений может быть использовани  дляописания

алгоритмов в процедурной форме:

     Блок-текст состоит из трех частей:

1)- Описание переменных и начальных значений памяти.

2)- Описания функций и связей. Записываются любые функции  и

функциональные связи (в том числе предикатные), неиспользу-

ющие запоминания. Переменные из левой части операцииприсва-

ивания таких функциональных описанийиспользуются  вблоках

процедуры.

3)- Процедура, состоящая из блоков (микроблоков) операторных

и блоков переходов:

- операторные - в скобках вида{.....},

- перехода    - в скобках вида<<...>>;

и те, и другие блоки могут снабжаться метками, стоящими перед

блоком. В блоках перехода используетсяоператор  GOв одной


из двух форм:

        GO m                 - безусловный переход,

        GO (P; m0,m1,m2,...) - условный переход.

здесь m0,m1,... - метки блоков,

      P - предикатное значение,интерпретируемое оператором GO

как неотрицательное целое число, являющееся порядковымноме-

ром метки в списке меток оператора GO. Сэтой  меткидолжно

быть продолжено выполнение алгоритма. Блоки условныхперехо-

дов эквивалентны предикатным вершинам блок-схемы алгоритма.

     На следующем более сложном примере демонстрируется  пос-

ледовательность синтеза операционного устройства.

     Пример. Вычислитель наибольшегообщегоделителя  (НОД)

двух натуральных чисел (8-разрядных).

     1) Разработаем интерфейс вычислителя:

                 8  ┌──┬─────┬──┐

              ═══╪═>╡I1│ НОД ││

                    ││     │  │8

                 8││     │D ╞══╪══>

              ═══╪═>╡I2│     │  │

                    ├──┤     ├──┤

              ─────>┤rI│     │rO├─────>

                    ├──┤     ││

              ─────>┤ C│     │  │

                    └──┴─────┴──┘

I1[7..0], I2[7..0] -входные информационные шины.

rI -входной сигнал готовности: если rI=1, то навходахI1,

I2 готовы операнды.

D[7..0] -выходная информационная шина .

rO -выходной сигнал готовности: если rO=1, то готов  резуль-

тат на шине D, который сохраняется до появления новых операн-

дов.

     2) Математическое обоснование алгоритма вычислений:

     Идея алгоритма, следуя Евклиду (IIIв. до р.Х.), заключа-

ется в том, что НОД двух натуральных чисел А и В в случае ра-

венства этих чисел совпадает с любым из них, ав  случаеих

неравенства совпадает с НОД двухдругих  чисел:меньшегои

разности между большим и меньшим.Последовательно,уменьшая

числа, получим два равных числа -значение одного из них и бу-

дет НОД исходных чисел.

     3) Блок-схема алгоритма (микропрограмма в содержательном

виде):


                              █

                              │

                       ┌──────V──────┐

                     m1│rO: = 0    │

                       └──────┬──────┘

                              │┌──────────────────┐

                              ││┌─────┐           │

                             ─VVV─    │           │

                             / 0    │           │

                            < rI>─────┘           │

                             _/                  │

                              │1                  │

                       ┌──────V──────┐│

                       │rO: = 0    ││

                       │             ││

                     m2│   А: = I1   ││

                       │             ││

                       │   B: = I2   ││

                       └──────┬──────┘│

         ┌───────────────────┐│                   │

       │             ┌─────VV──────┐│

         │           m3│ (p,S)=A - B ││

         │             └──────┬──────┘│

         │                   ─V─         m6       │

         │                   / =0  ┌──────────┐│

         │                z ───>┤ rO:=1;D=A├┘

         │                   __/     └──────────┘

         │                    │╪0

         │                    V

         │                 0 / 1

         │          ┌───────< p >────────┐

         │  ┌───────V──────┐ _/ ┌───────V──────┐

         │m4│(x,B:)=-A+B │   m5│ (x,A:)=A - B │

         │  └───────┬──────┘     └───────┬──────┘

         └──────────┴────────────────────┘

     Или в виде блок-текста:

I1[7..0], I2[7..0] --входные шины

D[7..0]            --выходная шина

rI, rO             --сигналы готовности

A[7..0]:, B[7..0]: --память текущих значений

S[7..0]            --разность

z, p               --предикатные переменные

z=┐(!/S) --сжатие(свертка) S[7..0] по ИЛИ-НЕ

         --можно записать иначе z=(S==0)

D=A

-------------------------------------------

     m1{rO:=0}

     g1<>

     m2{rO:=0; A:=I1; B:=I2}

     m3{(p,S)=A-B}

       <>

     g2<>

     m4{(x,B:)=-A+B}

       <>

     m5{(x,A:)= A-B}

       <>

     m6{rO:=1}

       <>

     4) Разработка функциональной схемы операционного автома-

та.


     В ОА должны быть реализованы все переменные с памятью  и

без,а также вычислительные операции,используемые в алгоритме.

                      A     ╔══════════════════════════════>D

                  ─/┬┬──┬┐║    ┌────────────┐

                   C││RG││  ║    │   f1=(A-B) │

                    ││  ││║   A│            │

I1═════>         ══>╡││╞══╝═>╡   f2=(-A+B)│      ┌─┐

                    ││││       ││S    S│1│

                    ││  ││       │╞>   ═>┤ o───>z

                    ┴┴──┴┘       ││      │ │

                      B          ││      └─┘

                  ─/┬┬──┬┐       ││

                   C││RG││       │            ├────────────>p

                    ││  ││B     B││

I2═════>          ═>╡││╞>    ═>╡│    ─/┬┬─┬┐

                    ││  ││       ││     C││ │├>rO

                    ││││       ││      ││ ││

rI─────>            ┴┴──┴┘       └────────────┘      └┴─┴┘

     Кроме того, в ОА необходимо реализовать все информацион-

ные связи, соответствующие микрооперации коммутации, атакже

микрооперации запоминания (загрузки, записи) и обнуления.

    ╔══════════════════════════════════════════════╗

    ║                 A     ╔══════════════════════║═══════>D

    ║  ┌────┐     ─/┬┬──┬┐║   ┌────┐    ┌──────┐ ║

    ║│ MUX│      C││RG││║   │M2*8│ 1─>┤cr  SM│ ║

    ╠═>┤0   │       ││││║   │    │    ├─     │ ║

I1══║═>┤1   ╞══════>╡│  │╞══╩══>╡    ╞═══>╡I1    │ ║ ┌─┐

    ║├    │       ││││A   │    │    │      │ ║ │1│

    ║│А   │      W││││      ├─   │    │     S╞═╩>╡ o───>z

    ║└A───┘     ─A┴┴──┴┘      └A───┘    │      │   │ │

    ║   │          │             │        │      │   └─┘

    ║umA         uA           uiA       │      │

    ║                  B                  │      │

    ║  ┌────┐     ─/┬┬──┬┐      ┌────┐    │      │

    ║│ MUX│      C││RG││      │M2*8│    │     p├─────────>p

    ╚═>╡0   │       ││││ B    │    │    │      │

I2════>╡1   ╞══════>╡│  │╞═════>╡    ╞═══>╡I2    │  C

       ├    │       ││││      │    │    │      │ ─/┬┬─┬┐

       │А   │      W││││      ├─   │    │      │1─>┤│T│├>rO

       └A───┘     ─A┴┴──┴┘      └A───┘    └──────┘R W││ ││

        │          │             │               ─A─A┴┴─┴┘

      uMB          uB           uiB             urO uwO

     5) Формулировка требований к управляющему автомату.

   При формировании управляющих сигналовследует  обратить

внимание не только на операции, которые необходимовыполнить

на данном шаге, но и на те оперции, которые нельзявыполнять

на этом шаге, это - как правило, операции изменения памяти.

     Будем считать, что операция активна, еслизначениеуп-

равляющего сигнала равно 1.

     Для управления вычисленияминакаждом  шагеалгоритма


потребуются следующие управляющие сигналы:

             ║umA│umB│uwA│uwB│uiA│uiB│urO│uwO│

           ══╬═══╪═══╪═══╪═══╪═══╪═══╪═══╪═══╡

           m1║   │   │   │   │   │   │ 1 │ 0 │

           ──╫───┼───┼───┼───┼───┼───┼───┼───┤

           m2║ 1 │ 1 │ 1 │ 1 │   │   │ 1 │ 0 │

           ──╫───┼───┼───┼───┼───┼───┼───┼───┤

           m3║   │   │ 0 │ 0 │ 0 │ 1 │   │ 0 │

           ──╫───┼───┼───┼───┼───┼───┼───┼───┤

           m4║   │ 0 │ 0 │ 1 │ 1 │ 0 │   │ 0 │

           ──╫───┼───┼───┼───┼───┼───┼───┼───┤

           m5║ 0 │   │ 1 │ 0 │ 0 │ 1 │   │ 0 │

           ──╫───┼───┼───┼───┼───┼───┼───┼───┤

           m6║   │   │ 0 │   │   │   │ 0 │ 1 │

           ──╨───┴───┴───┴───┴───┴───┴───┴───┘

     В незаполненных клеткахсигналыбезразличны.

     Заметив, что umA = umB , uiB = ┐uiA , окончательно полу-

чаем:

    ╔══════════════════════════════════════════════╗

    ║                 A     ╔══════════════════════║═══════>D

    ║  ┌────┐     ─/┬┬──┬┐║   ┌────┐    ┌──────┐ ║

    ║│ MUX│      C││RG││║   │M2*8│ 1─>┤cr  SM│ ║

    ╠═>╡0   │       ││││║   │    │    ├─     │ ║

I1══║═>╡1   ╞══════>╡│  │╞══╩══>╡    ╞═══>╡I1    │ ║ ┌─┐

    ║├    │       ││││      │    │    │      │ ║ │1│

    ║│А   │      W││││      ├─   │    │     S╞═╩>╡ o───>z

    ║└A───┘     ─A┴┴──┴┘      └A───┘    │      │   │ │

    ║   └────┐   ┌─┘B     ┌────┘        ├─     │   └─┘

    ║┌────┐│   │─/┬┬──┬┐│   ┌────┐    │      │

    ║│ MUX││   │ C││RG│││   │M2*8│    │     p├─────────>p

    ╚═>╡0   ││   ││││││   │    │    │      │

I2════>╡1   ╞│═══│═>┤│  │╞══│══>┤    ╞═══>╡I2    │

       ├    ││   │  │││││   │    │    │     │

       │А   ││   │ W│││││   ├─   │    │      │   C

       └A───┘│   │─A┴┴──┴┘│   └A───┘    └──────┘─/┬┬─┬┐

        │    │   │ └─┐      │ ┌─┐│                 1─>┤│T│├>rO

        │    │   │   │      ├>┤ o┘                 R W││ ││

        ├────┘   │   │      │ └─┘                 ─A─A┴┴─┴┘

       umB      uwA  uwB   uiA                   urO uwO

     ---│--------│----│-----│----------------------│-│-----

       y1       y2   y3    y4                     y5 y6

                      ║y1│y2│y3│y4│y5│y6│

                    ══╬══╪══╪══╪══╪══╪══╡

                    m1║││  ││ 1│ 0│

                    ──╫──┼──┼──┼──┼──┼──┤

                    m2║ 1│ 1│ 1│  │ 1│ 0│

                    ──╫──┼──┼──┼──┼──┼──┤

                    m3║│ 0│ 0│ 0││ 0│

                    ──╫──┼──┼──┼──┼──┼──┤

                    m4║ 0│ 0│ 1│ 1││ 0│

                    ──╫──┼──┼──┼──┼──┼──┤

                    m5║ 0│ 1│ 0│ 0││ 0│

                    ──╫──┼──┼──┼──┼──┼──┤

                    m6║│ 0││  │ 0│ 1│

                  ──╨──┴──┴──┴──┴──┴──┘


     Структура вычислителя:

                     ┌────────────────────────────────┐

                  ══>╡I1                              │

                     │                                │

                  ══>╡I2         ОА                  D╞══>

                     │                                │

                  ┌──/C                             rO├──>

                  ││                                │

                  ││zp umB uwA uwB uiA urO uwO    │

                  │  └┬──┬──A───A───A───A───A───A─────┘

                  │   ││  │   │   │   │   │   │

                  │   ││  │   │   │   │   │   │

                  │  ┌V──V──┴───┴───┴───┴───┴───┴─────┐

                  ││zp  y1y2y3  y4y5y6    │

                  ││                                │

                  ┴──/C                               │

                     │           УА                   │

                  ──>┤rI                              │

                     └────────────────────────────────┘

     УА должен выполнять следующий алгоритм автоматного типа,

представленный в виде блок-текста:

     m1{xxxx10}

     g1<>

     m2{111x10}

     m3{x000x0}

       <>

     g2<>

     m4{0011x0}

       <>

     m5{0100x0}

       <>

     m6{x0xx01}

       <>

             МИКРОПРОГРАММИРОВАНИЕ. ОПРЕДЕЛЕНИЯ.

     МИКРООПЕРАЦИЯ - базисное (элементарное) действие,  необ-

ходимое для получения (вычисления) значения однойили  более

переменных.

     Микрооперация присваивания В=А означает, что  переменные

левой части получают  значениявыраженияиз  правойчасти.

Всегда разрядность левой части равна разрядности правойчас-

ти. При этом биты, расположенные на одной и той же позициив

левой и правой частях, равны.

     Неиспользуемые разряды в левой части и произвольные зна-

чения в правой части микрооперации присваиванияобозначаются

(х). Например:

     (В[7],x,B[6..0]) = (A[7..0],x)

означает арифметический сдвиг влево на один разряд8-разряд-

ного числа с присваиваниемпроизвольного  значениямладшему

разряду и с потерей старшего после знака разряда.А,  напри-

мер, микрооперация

     (B[7..0],d) = (A[7],A[7..0])

означает арифметический сдвиг вправо на один разряд.

Микрооперация

     (p,S[3..0]) = A[3..0] + B[3..0] + q

описывает действие, выполняемое стандартным 4-разряднымсум-

матором, если ( А,В,q ) являются его непосредственными входа-

ми, а ( р,S ) - выходами.

     Микрооперация ( : ) - двоеточие -означаетзапоминание

(изменение значения) в памяти устройства. Переменная типа па-

мять сохраняет свое значение между двумяочередными  присва-


иваниями.

     Микрооперации всегда входят в состав микрооператоров.

     МИКРООПЕРАТОР - набор взаимосвязанных микроопераций (или

одна микрооперация ), выполняемых одновременно инеобходимых

для получения одного или болеезначений. Например:

     ( e,D:) = R1 + R2 + c

Фрагмент аппаратуры, реализующей этот микрооператор,могбы

быть, например, таким:

          ┌───┐

   c      │MUX│

┌┬──┬┐    │   │                ┌───┐

││T │├───>┤0  │    ┌────┐      │MUX│       D

└┴──┴┘ ──>┤1│    │  SM│      │   │    ┌┬──┬┐

       ──>┤А  ├───>┤cr│  ═══>╡0  ╞═══>╡│RG│╞══>

          ├───┤    │   S╞═════>╡1│    └┴──┴┘

R1      │MUX│    │    │  ═══>╡А  │

┌┬──┬┐    │   │    │    │      └───┘

││RG│╞═══>╡0  ╞═══>╡I1│      ┌───┐

└┴──┴┘ ══>╡1│    │    │      │MUX│

       ══>╡А  │    │    │      │   ├────────────>e

          ├───┤    │   p├─────>┤0│

R2      │MUX╞═══>╡I2 │  ───>┤1  │

┌┬──┬┐    │   │    └────┘───>┤А│

││RG│╞═══>╡0│                └───┘

└┴──┴┘ ══>╡1│

       ══>╡А  │

          └───┘

Имена всех переменных, используемыхв  этоммикрооператоре,

означают выполнение микроопераций коммутации ( транспортиров-

ки ). Значения переменных  коммутируются на входы суммматора,

а результат суммирования - в места расположения переменных.

     МИКРОБЛОК - набор микрооператоров, выполняемых  одновре-

менно ( в одном такте ) и синхронно. В одном микроблоке любо-

му из битов присваивается только одно значение.

     Синхронность означает, что во всех микрооператорах одно-

го микроблока используется только "старое" значение памяти.

Например:

     { (p,A):= A + B

       (C,r):= A + D }

- и в том, и в другом микрооператоре используется однои  то

жестароезначение А.

     В то же время в микроблоке:

     { (C,x):= A + D

       (x,A)= C + B }

в первом микрооператоре используетсяновое значение А , а во

втором - старое значение С. Разумеется, эти два действиявы-

полняются одновременнo на двух разных сумматорах.

     При реализации микроблока { A:= B ; B:= 0 }обязательна

синхронная реализация В:=0 ( хотя обычно такое действие проще

реализовать асинхронно, но это приводит кошибке  ).Другой

правильный вариант: можно выполнитьВ:=0  асинхронно,нов

следющем такте.

     Всегда предполагается, что предикат  вычисляетсявместе

(в одном такте) с тем микроблоком, за которым непосредственно

следует его использование.Таким образом, здесь, также как и в

микроблоке, используется старое значение памяти, существовав-

шее перед входом в микроблок.Это  связаносособенностями

взаимодействия ОА и УА. Например:


        █                                            █

   █ CT:=(╪0)█                                  █ CT:=(╪0)█

        █                                            █

        │                                            │

   ┌────V───┐                                   ┌────V───┐

m1│ CT:=3│m1│ CT:=3│

   └────┬───┘                                   └────┬───┘

┌──────>│                                    ┌──────>│

│      ─V─                                   │      ─V─

│     /   =0                               │     /   =0

│    ─>                               │    ─>

│     ___/                                  │     ___/

│       │╪0                                  │       │╪0

│  ┌────V───┐                                │┌────V───┐

│m2│........│                                │m2│........│

│  │        │                                ││        │

│  │CT:=CT-1│                                ││CT:=CT-1│

│  └────┬───┘                                │└────┬───┘

└───────┘                                    │  ┌────V───┐

                                             │m3│........│

                                             │  └────┬───┘

                                             └───────┘

В первом случае цикл будет выполнен 4 раза; во втором -если

в микроблоке m3 нет операций,модифицирующихСТ,  -3ра-

за. ( Обратите внимание на начальное значение СТ!)

     МИКРОКОМАНДА - набор сигналов, поступающий из УА в ОАи

интерпретируемый как управляющий,т.е. необходимый длявыпол-

нения всех микроопераций одного микроблока. Сигналы, входящие

в микрокоманду, могут принимать участие в микрооперациях ив

качестве информационных.

     Микрокомандой также иногданазываютслово  управляющей

памяти (обычно ПЗУ), являющеесячастью  УА.Дляразличения

этих понятий слово управляющей памяти будемназывать  МИКРО-

ИНСТРУКЦИЕЙ.

     МИКРОПРОГРАММА СОДЕРЖАТЕЛЬНАЯ - алгоритм, представленный

в виде микроблоков и предикатных блоков водной из  принятых

форм, например, в виде блок-схемы или блок-текста.

     МИКРОПРОГРАММА КОДИРОВАННАЯ - аппаратная формасодержа-

тельной микропрограммы в виде кодов, заполняющихуправляющую

память.

      КАНОНИЧЕСКАЯСТРУКТУРАОПЕРАЦИОННОГО  АВТОМАТА

     В общем случае каноническаяструктура операционного ав-

томата имеет вид:

███████████████████████████████████████████████████████████

█                                                         █

█  ┌──────────┐    ┌┬──────┬┐   ┌──────────┐   ┌───────┐█

██>╡коммутация│    ││память││   │коммутация│   │функции▐███

   │          ▐███>╡│      │▐██>╡          ▐██>╡       │

██>╡          │    ││      ││   │          │   │       ▐███>

   └─A────────┘ ─/─┴┴───A──┴┘   └──A───────┘   └──A────┘

     █        ┌─┐│CC    █          █              █

     █   SYN─>┤&├┘      █          █              █

     █       ┌┤ │       █          █  █

     █     yC│└─┘       █          █              █

   └────────────────────────────────────────────────┘

                     сигналыуправления

Столь четкого разграничения операций на зоны (память,комму-

тация, функции) может и не быть. Например, такиешироко  ис-

пользуемые функции  как сдвиги   либохорошо  совмещаютсяс

коммутацией, либо интегрируются срегистрами  хранения.Также


часто  интегрируютсясхранением   функции   инкремента   и

декремента (счетчики обычные и реверсивные).

     Особо выделим сигнал yС, управляющий доступом синхросиг-

налов в ОА. Такой  вариантуправления,называемый  условной

синхронизацией, позволяет запретить любые изменения памяти ОА

в каком-либо такте. Причем, если рабочим является срез(зад-

ний фронт) сигнала синхронизации, то используется элементИ,

как и показано на рисунке.Если же рабочим является фронт (пе-

редний фронт) сигнала, то используется элементИЛИ.  (Первый

перепад сигнала синхронизации в новом тактене  долженбыть

рабочим.)

             ОПТИМИЗАЦИЯ ОПЕРАЦИОННОГО АВТОМАТА

     При проектировании вычислительного устройства  основными

являются ограничения на:

1)- время вычисления;

2)- объем аппаратуры, реализующей вычисления;

3)- тип применяемых базовых функций.

ОПТИМИЗАЦИЯ АПППАРАТУРЫ ПРИ СОХРАНЕНИИ МИНИМАЛЬНОГО ВРЕМЕНИ

     Алгоритм функционального типа обладает максимальным  по-

тенциальным параллелизмом (врамках  даннойалгоритмической

идеи), и,следовательно, его реализацияв  видеКСобладает

максимальным быстродействием по сравнениюс  любымидругими

вычислителями. Невозможность реализации вычислителя в виде КС

может быть обусловлена следующими причинами:

- слишком велик объем аппаратуры КС;

- функциональное представлениеиего  реализацияявляются

статическим отображением входных объектовна  выходные:это

исключает возможность работы с объектами, которые "ведутсе-

бя" более сложно во  времени;невозможнотакже  реализовать

принципиально рекуррентныеалгоритмы  (см.,например,алгоритм

Евклида для нахождения НОД).

     Тем не менее, еслиформальноалгоритм  функционального

типа может быть записан, топроектированиеустройства  надо

начинать с записи именно такого алгоритма.

     Минимизация аппаратуры "сложной" КС с переходом напро-

цедурный вариант реализации связан с "экономией" числа опера-

ционных элементов, т.е. со слиянием некоторых из нихводин

функциональный модуль, выполняющий эти операциипо  очереди.

Такое решение потребует запоминания всех переменных(входных

и выходных),связанных с выполнением этих операций.Требуется

также управление памятью, связанной с этим функциональным мо-

дулем, а также - может быть - управление самим функциональным

модулем, если он объединил существенно различные функции.

     Переход к процедурнойреализациии,следовательно,к

дискретизации времени неизбежно увеличит время вычисления од-

ного результата - даже при реализации структуры подобной КС.

При этом, как ни странно, может уменьшитьсявремя  следующих

друг за другом вычислений именно за счет дискретизации време-

ни и применения так называемых "конвейерных" вычислений -но

об этом речь пойдет в другом курсе.

     Рассмотрим возможность сокращения аппаратуры без  увели-

чения времени решения, достигнутого в алгоритмефункциональ-

ного типа. Сопоставим схеме устройства, реализующего алгоритм

функционального типа, простуюмодель  ввиденаправленного

графа. Вершины графа будут соответствовать операциям, адуги

- переменным алгоритма. Назовем такой граф сигнальным (графом

потоков данных). Заметим, что сигнальныйграф  всегдабудет

ациклическим.

     Минимальность времени вычислений сохранится, если совме-

щать в один функциональный модуль операции, которыерасполо-

жены на одном и том же пути в сигнальном графе, либо нааль-

тернативных путях решения.


                    МИНИМИЗАЦИЯ АППАРАТУРЫ

     Может оказаться, что на одном путивсигнальном  графе

расположены операции, плохо или вовсе не совмещаемыедругс

другом (т.е. совмещение не дает экономии в аппаратуре функци-

онального модуля). Возможно также, что проведеннаяминимиза-

ция, сохраняющая минимальное время,не  позволяетвыполнить

ограничение на объем аппаратуры. Втаком  случаенеобходима

более глубокая  минимизация,охватывающая  параллельныеветви

сигнального графа. Минимизация должна быть взаимосвязанной по

всем компонентам ОА: по памяти, функциональным модулям и ком-

мутации.

     В настоящее время процедуры минимизации не формализованы

и сводятся к перебору "правдоподобных" вариантов.

     Можно предложить следующую последовательность  действий:

1)- все "похожие" функции  (операции)реализоватьна одном

функциональном модуле, например, всесуммирования  выполнять

на одном сумматоре;

2)-скорректировать алгоритм так, чтобы в одном микроблоке не

выполнялось более одной операции на одном итом  жефункци-

ональном модуле;

3)- минимизировать память автомата, т.е.число запоминаемых

промежуточных переменных;

     Выполнение этих этапов может привести к усложнению  ком-

мутации, а значит, и к увеличению этой компоненты в аппарату-

ре ОА. Если ограничение по объему аппаратуры все ещенаруше-

но, то повторить этапы 1 - 3 с другимвариантом  объединения

функциональных модулей и памяти.

     При реализации ОА - во избежание ошибок -необходимо бук-

вально следовать описанию алгоритма, но в тоже  время,при

проектировании самого алгоритма надо представлять себе реали-

зацию микроблоков. Реализация одних и тех же вычислений может

быть существенно различной пообъему  аппаратуры.

     Например, вычисления в цикле потребуют реализации:

         ─┬─

          │

  ┌───────V───────┐          A       ┌────┐

│     J:=0      │       ┌┬──┬─┐    │ MUX│     ┌────┐

  └───────┬───────┘       ││RG│0├───>┤0   │     │ f│

┌──────┐│               │││.│ .│.   │A[J] │    │

│ ┌────V──V───────┐       │││.│ .│.   ├────>┤    │

│ │     .....     │       │││.│ .│.   │     │    │ B

│ │               │       │││ │    │    │     │    ╞══>

│ │ B= f(...,A[J])│       ││  │K├───>┤K   │     │    │

│ │               │       │││.│    │.   │══>╡    │

│ │    J:=J+1     │       │││.│    │.   │     │    │

│ └───────┬───────┘       │││.│    │.   │     │    │

│        ─V─              └┴──┴─┘    ├─   │     └────┘

│    ╡А   │

└───────────>                  └────┘

        __/

(реализация счетчика J не показанa).

     Запишем этот фрагмент алгоритма иначе так, чтобы  нужный

бит извлекался за счет сдвига в регистре D. Тогда получим:


       ───┬──               AD

          │              ┌┬──┬┐      ┌┬──┬─┐ A[J] ┌─────┐

  ┌───────V───────┐      ││RG││       ││RG│0├─────>┤f  │

│     J:=0      │      ││││       │││.│      │     │

│               │      ││││       ││->│.│      │     │  B

│     D:=A      │      │││╞══════>╡││.│      │     ╞══>

  └───────┬───────┘      ││││       │││ │      │     │

┌──────┐│              ││││       │││K├      │     │

│ ┌────V──V───────┐      ││││x ──>┤Dn │.│      │     │

│ │     .....     │      ││││       │││.│   ══>╡     │

│ │               │      ││││    S W│││.│      │     │

│ │ B= f(...,D[0])│      └┴──┴┘   ─v─v┴┴──┴─┘      └─────┘

│ │               │

│ │ (D,x):=(x,D)│

│ │               │

│ │    J:=J+1     │

│ └───────┬───────┘

│        ─V─

│   

└───────────>

       __/

Промежуточный регистр A введен для общности, если потребуется

сохранить слово А (чаще всего он и не нужен).

     Другой пример: фрагмент алгоритма, реализующийрегуляр-

ную запись отдельных бит слова и его реализация имеют вид:

       ───┬──                                      ┌┬─┬┐B[0]

          │                   a ────────────┬─────>┤│T│├────>

  ┌───────V───────┐                         │     W││ ││

│     J:=0      │                ┌───┐    │    ─A┴┴─┴┘

  └───────┬───────┘                │DC │ ┌──┼─────┘|   |

┌──────┐│                        │0├─┘│      |   |

│ ┌────V──V───────┐                │.│.   │      ┌┬─┬┐B[K]

│ │     .....     │                │.│.   └─────>┤│T│├────>

│ │               │                │.│.         W││ ││

│ │   a=f(...)    │           J ══>╡   │         ─A┴┴─┴┘

│ │               │                │  K├──────────┘

│ │   B[J]:=a     │                │.│

│ │               │                │.│

│ │    J:=J+1     │                │.│

│ └───────┬───────┘                └───┘

│        ─V─

│   

└───────────>

        __/

Слово В нельзя реализовать в виде регистра, а тольковвиде

отдельных триггеров.

     Можно формировать слово с использованием операции  сдви-

га при обязательном условии D[K..0], тогда алгоритм и его ре-

ализация имеют вид:


       ───┬──

          │                                  D          B

  ┌───────V───────┐                     ┌──┬──┬┐      ┌┬──┬┐

│     J:=0      │                     ││RG││      ││RG││

└───────┬───────┘                     ││->││      ││││

┌──────┐│                          a│  │  │╞═════>╡│││

│ ┌────V──V───────┐                  ──>┤Dk│  ││      ││││

│ │     .....     │                    S││  ││     W││││

│ │               │                   ─v┴──┴──┴┘    ─v┴┴──┴┘

│ │   a=f(...)    │

│ │               │

│ │ (D,x):=(a,D)│

│ │               │

│ │    J:=J+1     │

│ └───────┬───────┘

│        ─V─

│   

└────────>┤B:=D├>

        __/    └────┘

В этом случае, так же, как и в предыдущем, чаще всего нену-

жен промежуточный регистр (В).

                      УНИВЕРСАЛЬНЫЙОА

     Использование при проектировании универсальных ОА с  за-

ранее фиксированной и минимизированнойструктурой  оправдано

тем, что такие универсальныеОА  изготавливаютсяпромышлен-

ностью в виде БИС большим тиражом и поэтому онисравнительно

дешевы. Такие универсальные ОА входят в микропроцессорные на-

боры 582, 583, 584, 588, 589, 1800, 1804 и т.д., которыена-

зываются микропрограммируемыми, секционными, разрядно-модуль-

ными.

     В основе перечисленных универсальных ОА лежит  следующая

структура:

     ╔══════════════════╦═══════════════════════════╗

     ║                  ║                           ║

     ║                  ║ SYN┐ACC                 ║

     ║    ┌─┬─────┬┐    ║   ─/┬┬──┬┐      ┌─────┐   ║

     ║    │ │ RGF ││    ║    C││RG││      │ ALU │   ║

     ║    │ │     ││    ║     ││  ││      │     │   ║

     ║    │ │     ││    ╚════>╡│  │╞═════>╡     │   ║

     ║    │ │     ││          ││││      │     ╞═══╩═>DO

     ╚═══>╡D│     ││          └┴──┴┘      │     │

          │ │     ││             T        │     │

          │ │     ││          ┌┬──┬┐      │     ╞═════>P

          │ │     ││          ││RG││      │    │

          │ │     │╞═════════>╡││╞═════>╡     │

          │ │     ││          ││││      │     │

       C W│А│     ││         C││││   ╔═>╡     │

      ─o─A┴A┴─────┴┘        ─┬┴┴──┴┘   ║  └──A──┘

    SYN┘ │ ║              SYN┘         ║     ║

         │ ║                           ║     ║

       yW   YA                  DI═════╝      YF

     ALU - арифметико-логическое устройство -  комбинационная

схема с небольшим, но универсальным набором арифметическихи

логических операций.

     RGF - регистровый файл - адресуемая память RAM со стати-

ческой синхронизацией при записи.

     RG'T' - регистр-фиксатор со статической синхронизацией.

     RG'АCC' - регистр-аккумулятор с динамической синхрониза-

цией.


     DI,DO - входная и выходная информационные шины.

     Р - предикатные сигналы (флажки).

     YF - сигналы управления выбором функции.

     YA - адрес чтения и/или записи RGF.

     yW - разрешение записи в RGF.

     Память сравнительно большого объема, какой является RGF,

дешевле реализовать со статическойсинхронизацией.Для  то-

го,чтобы такая память могла работать в замкнутом информацион-

ном кольце и при этом не возникали бы гонки, добавляетсяеше

один промежуточный регистр RG'T' состатической  синхрониза-

цией. Если передний фронт является рабочим для регистровуп-

равляющего автомата и RG'ACC', то на первой фазесинхрониза-

ции при SYN=1 информация читаетсяиз  RGF;приэтом  RG'T'

прозрачен. На следующей фазе синхронизации при SYN=0 информа-

ция фиксируется в RG'T', т.е. он закрыт для записи, азапись

(если она разрешена) производится в RGF. Фиксируется информа-

ция в RGF и RG'ACC' с началом следующего такта, т.е.напе-

реднем фронте сигнала.

                  ВЗАИМОДЕЙСТВИЕОАиУА

     Для исключения гонок при взаимодействии ОАи  УАбудем

проектировать УА как автомат Мура.Схема  ихвзаимодействия

может быть представлена в виде:

           ╔══════════════════════════╗

           ║┌────┐    ┌┬──┬┐   ┌────┐ ║

           ╚╡ CS │    ││RG││   │CS╞<╝

            │    ╞<═╦═╡││╞<══╡    │

        ┌───┤  b │║ ││││   │ c  ├<────┐

        │   └────┘║ └┴──┴┴A─ └────┘     │

        │   ┌────┐║       └───────────┐ │

        │   │CS╞<═╝                   │ │

        │┌──┤ a  ├<───────────────────┐ │ │

    ОА││  └────┘                    │ │ │

    ----││----------------------------│-│-│--

    УА  ││РА┌────┐     ┌┬──┬┐  ┌─────┐│ │ │┐

        │└─>┤  CS│     ││RG││  │ CS├┘ │ ││

        └──>┤    ╞════>╡││╞═>╡     ├──┘ ││Y

         РВ │    │     │││││     ├────┘│

          ╔>╡p │     │││││  y╞═╗   ┘

          ║ └────┘     └┴──┴┘└─────┘ ║

          ╚════════════════════════════╝

Отметим, что РА(t)=f(Y(t))   зависит без сдвигаот  сигналов

                             управления,

             PB(t+1)=F(Y(t)) зависит со сдвигом  отсигналов

                             управления,

где РА и РВ - предикатные перемнные.

     Продолжительность такта работы схемы определяется наибо-

лее длинными цепями между регистрами. Для данной схемы, кото-

рую будем называть  последовательнойсхемойвзаимодействия,

зададимся (так чаще  всегобывает),что  такойкритической

цепью является цепь  (CSy,CSa,CSp,RG).Поэтомудлительность

такта определяется:

     Т > ty + ta + tp + trg,

где tj- время установления соответствующего компонента цепи.

     Чтобы сократить длину этой цепи, применяют другой  вари-

ант взаимодействия автоматов - конвейерный:


                 ╔══════════════════════════╗

                 ║┌────┐    ┌┬──┬┐   ┌────┐ ║

                 ╚╡ CS │    ││RG││   │CS╞<╝

                  │    ╞<═╦═╡││╞<══╡    │

      ┌───────────┤b │  ║ ││  ││   │ c  ├<────┐

      │    FF     └────┘║ └┴──┴┴A─ └────┘     │

      │  ┌┬──┬┐   ┌────┐║       └───────────┐ │

      │┌─┤│RG│╞<══╡ CS ╞<═╝                   │ │

      ││ ││  ││   │a ├<───────────────────┐ │ │

      ││ └┴──┴┴A─ └────┘                    │ │ │

   ОА ││       └──────────────────────────┐ │ │ │

   ---││----------------------------------│-│-│-│--

   УА ││                              MK│ │ │ │

      ││PA ┌────┬────┐┌┬──┬┐│ │ │ │┐

      │└────>┤CS│ CS │            ││RG│├┘ │ │ ││

      │   РВ │    │    ││││├──┘ │ ││Y

      └─────>┤    │    ╞═══════════>╡│  │├────┘ ││

             │    │    │││  │├──────┘│

           ╔>╡p │y ││││╞═╗     ┘

           ║ └────┴────┘            └┴──┴┘ ║

           ╚═══════════════════════════════╝

     При этом варианте взаимодействия такой длинной цепи, как

в предыдущем случае, не возникает.Эта цепьразделена  регис-

трами RG'FF' (регистр флажков) и RG'MK' (регистрмикрокоман-

ды) на две цепи. Продолжительность такта становится меньшеи

ее можно определить следующим образом:

     T > max( ta,(tp + ty) )+ trg ,

     При конвейерном варианте взаимодействия

     PA(t+1)=f(Y(t)), т.е. и эти значения стализависить  со

сдвигом от сигналов управления. Тогда фрагмент микропрограммы

     mS{...;pA=f(...)}

       << GO(pA;mi,mj)>>,

выполняемый в последовательной схеме заодин  такт,вкон-

вейерном варианте за один такт выполнен быть не может идол-

жен быть модифицирован следующим образом:

     mS{...,pA=f(...)}

     mS'{нет операции}

        << GO(pA;mi,mj)>>

Таким образом, время выполнения этого фрагмента не тольконе

уменьшилось, но даже возросло несмотря на уменьшениепродол-

жительности каждого из тактов. Зато во всех остальныхслуча-

ях (при безусловных переходах, при переходах по значениюРВ)

время выполнения микропрограммы уменьшается.

          НАЧАЛЬНАЯ ИНИЦИАЛИЗАЦИЯ СИНХРОННОЙ СХЕМЫ

     Пусть устройство, кроме сигнала синхронизации SYN, имеет

еще один сигнал Н, обозначающий начало и конец синхронной ра-

боты устройства. При Н=0 - нерабочее состояние - можно выпол-

нять начальную установку значений памяти устройства. Измене-

ние значения Н с 0 на 1 происходит в случайный момент времени

(асинхронно), но при этом начальныйтакт  работыустройства

должен быть полным. "Затягивание" асинхронногосигналаНв

синхронный режим происходит с помощью простейшего синхронного

автомата с диаграммой:

                ┌──────────┐        ┌────────┐

                V0H/CONST│        V  1H/SYN│

              █▀▀▀█────────┘      █▀▀▀█──────┘

             >▌ 0 ▐──────────────>▌ 1 ▐──────┐

              █▄▄▄█ 1H/CONST      █▄▄▄█ 0H/X │

                л                            │

                └────────────────────────────┘

У этого автомата простейшей является функцияпереходов,  так


какдиаграммаавтомата  совпадаетсдиаграммой  переходов

D-триггера.

     Схема автомата вместе сцепямиусловной  синхронизации

выглядит следующим образом (для синхронизации по фронтам):

а)-по переднему фронту,б)- по заднему фронту:

                 ┌──┐                               ┌──┐

SYN ──┬──────────┤ 1├── CC         SYN ──┬──────────┤ &├── CC

      │ ┌─┬─┐  ┌─┤  │                    │ ┌─┬─┐  ┌─┤│

      └─/C│T│  │ └──┘                    └─C│T│  │ └──┘

        │ │ ├│                           │ │ ├──┘

      ┌─┤D│ │  │                         ┌─┤D│ │

      │ ├─┤ o──┘                         │ ├─┤ o─

      ├─oR│ │                            ├─oR│ │

   H│ └─┴─┘уст. нач. зн.H  │ └─┴─┘уст. нач. зн.

    ──┴───────────────────             ──┴───────────────────

Такая разница в цепях условной синхронизации, как ужеобъяс-

нялось выше, определяется тем, что первый перепад сигналаСС

не должен быть рабочим.


Антик М.И.                                    11_03_91 МИРЭА

                    УПРАВЛЯЮЩИЕ АВТОМАТЫ.

           ОСНОВНЫЕ СПОСОБЫ АДРЕСАЦИИ МИКРОКОМАНД

   Начнем с рассмотрения простейшего варианта управления, в

котором не участвуют предикатные функции (переменные), т.е. в

микропрограмме переходы только безусловные. В таком случае УА

является автономным синхронным автоматом.

     В более общем случае функцияпереходовУА  зависитот

предикатных переменных, но УА должен быть автоматом Мура.

     Условимся о некоторых ограничениях,позволяющихупрос-

тить схему на начальных  этапахпроектирования(от  которых

легко впоследствии и отказаться):

- на каждом шаге процесса вычисленийветвлениеможет  осу-

ществляться только по одной двузначнойпредикатной  перемен-

ной(т.е. разветвление возможно лишь на два направления);

- начальные значения всех регистровУАявляются  нулевыми.

Впредь на схемах УА не будем показывать цепейустановки  на-

чальных значений.

     Для реализации в самом общем случае микропрограмм произ-

вольной структуры будем строить УА так, чтобы основныммате-

риальным носителем управляющей (автоматной)компоненты  мик-

ропрограммы являлась бы  управляющаяпамять(реализованная,

например, в виде ПЗУ). В этом случае структура слова управля-

ющей памяти - МИКРОИНСТРУКЦИЯ -состоит  издвухсоставных

частей: микрокоманды и адресной части.

     Адресная часть микроинструкции содержит информацию, поз-

воляющую в следующем такте работы выбрать ( указать)  новый

адрес управляющей памяти. Реализация именно этого момента яв-

ляется основным предметом дальнейшего рассмотрения иопреде-

ляет, в основном, структуру, объемаппаратуры  ибыстродей-

ствие УА. При этом подлежит рассмотрению реализация следующих

типов  переходовкакмежду  шагамиалгоритма,так,  соот-

ветственно, и между микроинструкциями:

- безусловный переход,

- условный переход,

- функциональный переход,

- переход к микроподпрограмме с возвратом.

     Будем изучатьработууправляющих  автоматовразличной

структуры, демонстрирующие основные применяемые вариантыад-

ресации микроинструкций, на следующем алгоритме:


      ███

  ┌───┐│

│┌VV─┐

n1│  │m1 │                      n1 { m1 }

│└─┬─┘

│┌─V─┐                      n2 { m2 }

n2│  │m2 │

│└─┬─┘                      g1 <>

│    │<──┐

│   ┌V┐ 0│                    n3 { m3 }

g1│< a >─┘

│   └┬┘                       n4 { m4 }

│   1│<────┐

│    │┌───┐│                  g2 <>

│┌─VV┐││

n3│  │m3 │  ││                  n5 { m5 }

│└─┬─┘││

│┌─V─┐││                  g3 <>

n4│  │m4 │││

│└─┬─┘││

│10 ┌V┐ 01││

g2└──< ab>──┘│

   11 └┬┘    │

     00│┌───┐│

     ┌─VV┐  ││

n5   │m5 │││

     └─┬─┘  ││

      ┌V┐ 0 ││

g3   < a >──┘│

      └┬┘ 1│

       └─────┘

     Укажем на некоторые особенности этого алгоритма:  Опера-

тор перехода  (предикатная вершина),  помеченныйметкойg1,

называют ждущим. Оператор, помеченныйметкой  g2, использует

для перехода 4-значный предикат, что неудовлeтворяет  выше-

указанному  ограничению.Поэтомупотребуются  эквивалентные

преобразования алгоритма для того, чтобы удовлетворитьэтому

ограничению.

     Алогоритмы эквмвалентны, еслионипреобразуют информа-

цию одинаковым образом. Наиболее распространенным приемом эк-

вивалентного преобразования алгоритмов и микропрограммявля-

ется включение микроблоков и, соответственно, тактов, в кото-

рых не выполняется  модификация памяти ОА -  "нетоперации".

Но и это преобразование может быть не эквивалентным - см.при-

мер при определении понятия "микроблок"; кроме того,следует

учесть различное поведение во времени предикатныхпеременных

типа "РА" и "РВ" - см. раздел "Взаимодействие ОА и УА".

     ( Запретить модификациюпамятиможно,  вводяусловную

синхронизацию ОА, но для этого должна быть измененамикроко-

манда, предшествующая добавляемому такту.)

                    СХЕМА С АДРЕСНЫМ ПЗУ

     Начнем рассмотрение с управляющего  автомата,структура

которого совпадает с канонической структурой автомата Мура.

            ┌───┐   ┌───┐    ┌┬──┬┐   ┌───┐

            │MUX│ q │ROM│    ││RG││   │ROM│

         a─>┤0  ├──>┤   │ S' ││││ S │   │Y

         b─>┤1│   │   ╞═══>╡││╞═╦>╡   ╞══>

            │   │ ╔>╡   │    ││││ ║ │   ├─┐

            │А│ ║ │ 2 │   C││││ ║ │ 1 │ │

            └A──┘ ║ └───┘  ─/┴┴──┴┘ ║ └───┘ │

             │ H  ╚═════════════════╝       │

             └──────────────────────────────┘


     Функцию перехода и функцию выхода реализуем в виде  ПЗУ.

В литературе, рассматривающей микропрограммные устройства уп-

равления, УА с такой структурой называют микропрограммным ав-

томатом Уилкса.

     В ПЗУ (ROM_1), реализующем функцию выхода, следуетраз-

местить микрокоманды; при этом их распределение по определен-

ным адресам совершенно произвольно, за исключениемначальной

микрокоманды, которая в силу вышеуказанного ограничениядол-

жна располагаться по нулевому адресу.

     ПЗУ (ROM_2),реализующеефункцию  переходовавтомата,

можно трактовать как адресное ПЗУ. Ячеек в адресном ПЗУ в два

раза больше, чем в ПЗУ микрокоманд. Каждой ячейке ПЗУмикро-

команд соответствуют две ячейки в адресном ПЗУ, в которых за-

писываются два альтернативных адреса.

n1 { m1 }                               S│ Y H│       S q│S'│

                                        ─┼────┤       ───┼──┤

n2 { m2 }                               0│m1 x│       0 0│ 1│

                                         │    │       0 1│ 1│

   <>                       │    │          ││

                                        1│m2 0│       1 0│ 2│

d1 { m0 }                                │    │       1 1│ 3│

                                         │    │          ││

   <>                      2│m0 0│       2 0│ 2│

                                         │    │       2 1│ 3│

n3 { m3 }                                │    │          ││

                                        3│m3 x│       3 0│ 4│

n4 { m4 }                                │    │       3 1│ 4│

                                         │    │          ││

   <>                      4│m4 0│       4 0│ 5│

                                         │    │       4 1│ 0│

d2 { m0 }                                │    │          ││

                                        5│m0 1│       5 0│ 6│

   <>                       │    │       5 1│ 4│

                                         │    │          ││

n5 { m5 }                               6│m6 0│       6 0│ 6│

                                         │    │       6 1│ 4│

   <>                      ─┴────┘       ───┴──┘

     Конвейерный вариант схемы с таким же способом  адресации

должен программироваться с учетом замечаний, сделанных в раз-

деле "Взаимодействие ОА и УА".Кроме  того,ограниченияна

расположение микрокоманд в ROM_1 выглядят несколько иначе: по

0-адресу в ROM_1 можно расположить микрокоманду, послекото-

рой безусловно выполняется начальная микрокоманда.

         ┌───┐        q  ┌───┐   ┌───┐   ┌┬──┬┐

         │MUX├──────────>┤ROM│   │ROM│Y││RG││Y'

      a─>┤0│C        │   │ S │   ╞══>╡││╞══>

      b─>┤1│ ─/┬┬──┬┐│   ╞═╦>╡   │H││││

         │   │ ╔>╡│RG│╞═>╡│ ║ │   ├──>┤││├┐

         │А│ ║ ││││S'│ 2 │ ║ │ 1 │  C││  │││

         └A──┘ ║ └┴──┴┘  └───┘ ║ └───┘ ─/┴┴──┴┘│

          │H'  ╚═══════════════╝               │

          └────────────────────────────────────┘


       СХЕМА С ЯВНЫМ УКАЗАНИЕМАЛЬТЕРНАТИВНЫХ АДРЕСОВ

              ╔═══════════════════════════╗

              ║╔═════════════════════════╗║

              ║║ ┌───┐    ┌┬──┬┐┌───┐A0║║

              ║║ │MUX│    ││RG││  │ROM╞══╝║

              ║╚>╡0  │    ││││A │   │A1 ║

         ┌───┐╚═>╡1  ╞═══>╡││╞═>╡   ╞═══╝

         │MUX│   │   │    ││  │││   ╞══>Y

      a─>┤0│   │А  │   C│││││   ├┐

      b─>┤1│   └A──┘─/┴┴──┴┘└───┘│H

         │А  ├────┘                    │

         └A──┘                         │

          └────────────────────────────┘

     Конвейерный вариант

             ╔════════════════════════════╗

             ║╔══════════════════════════╗║

             ║║ ┌───┐┌────┐A0 ┌┬──┬┐A0'║║

             ║║ │MUX│  │ROM ╞══>╡│RG│╞═══╝║

             ║║ │   ││    │A1 ││││A1' ║

             ║╚>╡0  │A │    ╞══>╡│  │╞════╝

        ┌───┐╚═>╡1╞═>╡    │ Y ││││Y'

        │MUX│   │   │  │    ╞══>╡││╞══>

        │   │   │   ││    │ H ││││

     a─>┤0│   │А  ││    ├──>┤│  │├┐H'

     b─>┤1│   └A──┘└────┘ ─/┴┴──┴┘│

        │А  ├────┘             C      │

        └A──┘                         │

         └────────────────────────────┘

     Эта схема отличается от предыдущей тем, что,  посущес-

тву, тот же способ адресации выполнен с использованием только

одного ПЗУ. В этом варианте альтернативные адреса записывают-

ся в той же микроинструкции, что и микрокоманда.

n1 { m1 }                               A│ Y H A0 A1│

                                        ─┼──────────┤

n2 { m2 }                               0│m1 x1  1│

                                         │          │

   <>                      1│m2 02  3│

                                         │          │

d1 { m0 }                               2│m0 023│

                                         │          │

   <>                      3│m3 x4  4│

                                         │          │

n3 { m3 }                               4│m4 050│

                                         │          │

n4 { m4 }                               5│m0 16  4│

                                         │          │

   <>                      6│m5 06  4│

                                        ─┴──────────┘

d2 { m0 }

   <>

n5 { m5 }

   <>


              СХЕМА С ЧАСТИЧНОЙ ЗАПИСЬЮ АДРЕСА

Последовательный вариант          Конвейерный вариант

┌────────────────────────┐      ┌─────────────────────────┐

│ ┌───┐     ┌┬──┬┐┌───┐│e     │ ┌───┐   ┌───┐ e   ┌┬──┬┐│

│ │MUX│q││RG││q'│ROM├┘      │ │MUX│ q'│ROM├────>┤│RG│├┘

└>┤0  ├────>┤││├─>┤   │  Y    └>┤0├──>┤   │ Y   ││││Y'

a─>┤1  │S││││S'│   ╞══>   a─>┤1│ S'│   ╞════>╡││╞═>

b─>┤2  │ ╔══>╡││╞═>╡   ╞══╗   b─>┤2│ ╔>╡   │ H   ││││

   │А│ ║C│││││   ╞╗ ║      │   │ ║ │   ├────>┤││╞═╗

   └A──┘ ║ ─/┴┴──┴┘└───┘║ ║      │   │ ║ │   │ S   ││││ ║

    ║ H  ╚════════════════╝ ║      │А│ ║ │   ╞════>╡││╞╗║

    ╚═══════════════════════╝      └A──┘ ║ └───┘   ─/┴┴──┴┘║║

                                    ║ H' ║          C      ║║

                                    ║    ╚═════════════════╝║

                                    ╚═══════════════════════╝

     При этом способе адресации альтернативные адреса отлича-

ются только одним разрядом ( в данном варианте -младшим  ),

формируемым входным сигналом. Остальные разряды адреса указы-

ваются вместе с микрокомандой в одной и той жемикроинструк-

ции. При безусловном переходе в данном варианте схемы младший

разряд также указывается  вмикроинструкции.Приадресации

одного и того же микроблока различными операторамиусловного

перехода может возникнуть КОНФЛИКТ АДРЕСАЦИИ. Вэтом  случае

одну и ту же микроинструкцию приходится располагать в различ-

ных ячейках управляющей памяти. Если различные операторыус-

ловного перехода одними и  темижепредикатными  значениями

указывают на одни и те же микроблоки, то нет и конфликтаад-

ресации.

                     Адрес

n1 { m1 }         --(0,0),(2,1)                S'q'│ Y H S e│

                                               ────┼────────┤

n2 { m2 }         --(4,0)                      0 0 │m1 0 4 0│

                                                   │        │

   <>--   1,x                     0 1 │m4 1 2 x│

                                                   │        │

d1 { m0 }         --(1,0)                      1 0 │m0 1 1 x│

                                                   │        │

   <>--   1,x                     1 1 │m3 0 0 1│

                                                   │        │

n3 { m3 }         --(1,1),(3,1)                2 0 │m0 2 3 x│

                                                   │        │

n4 { m4 }         --(0,1)                      2 1 │m1 0 4 0│

                                                   │        │

   <>--   2,x                     3 0 │m5 1 3 x│

                                                   │        │

d2 { m0 }         --(2,0)                      3 1 │m3 0 0 1│

                                                   │        │

<>--   3,x                     4 0 │m2 1 1 x│

                                                   │        │

n5 { m5 }         --(3,0)                      ────┴────────┘

   <>--   3,x

     Распределятьмикроинструкциипо  ячейкампамятиудобно

в следующем порядке:

- связать с различными операторами условного перехода,  кон-

фликтующими между собой по адресации, различающиеся между со-

бой старшие разряды адреса;


- распределить микроблоки по ячейкам памяти с учетом назнач-

енных старших разрядов адреса и входных значений;

- оставшимся нераспределенным микроблокам  назначитьпроиз-

вольные свободные адреса.

                 СХЕМА С СОКРАЩЕННЫМ ТАКТОМ

     Использование этой схемы позволяет присохранениипре-

имуществ последовательного варианта взаимодействиясократить

наиболее длинные цепи, общие для ОА и УА, до длины цепей кон-

вейерного варианта.

┌──────────────────────────────────┐           ──┬──────────┬

│      ╔══════════════════════════╗│    ROM_0  A'│ YHA e│

│      ║ ┌────┐                   ║│           ──┼──────────┼

│      ║ │ROM ╞═╬A                ║│           0 │m104 0│

│      ║ │    ├─╫e                ║│           1 │m011 x│

│      ╠>╡    ╞═╬Y  ┌───┐   ┌┬──┬┐║│           2 │m023 x│

│      ║ │    ╞═╬H│MUX│   ││RG│╞╝│           3 │m513 x│

│      ║ │ 0│ ╚══>╡0  │   │││├─┘e'         4 │m211 x│

│    A'║ ├────┤     │   │   ││││             ──┴──────────┘

│      ║ │ROM ╞═╬A│   ╞══>╡│  │╞══>Y'        ──┬──────────┬

│ ┌───┐║ │    │ ╠══>╡1  │   ││││      ROM_1  A'│ YHA e│

│ │MUX│╚>╡    ├─╫e│А  │C│││╞╗H'          ──┼──────────┼

└>┤0  ││    ╞═╬Y└A──┘ ─/┴┴──┴┘║0 │m412 x│

a>┤1  ││ 1╞═╬H   │            ║1 │m300 1│

b>┤2  │  └────┘      │            ║2 │m104 0│

│А  ├──────────────┘║3 │m300 1│

  └A──┘                           ║            ──┴──────────┴

   ╚══════════════════════════════╝

     Способ адресации, по существу, такой же, как и в  преды-

дущей схеме. Только в рассматриваемойсхеме  входнойсигнал

управляет выбором одного из двух блоков ПЗУ (можноинтерпре-

тировать этот сигнал как старший разряд адреса).

                СХЕМА С РЕГУЛЯРНОЙ АДРЕСАЦИЕЙ

             ┌───┐  ┌──┐    0W- +1

             │MUX├─>┤M2├──┐ 1W- загрузка

          0─>┤0  │┌>┤│ ─V┬┬──┬┐┌───┐ Y

          a─>┤1  ││ └──┘W││CT│││ROM╞══>

          b─>┤2  ││        │││││   │H

             │   ││        ││││A │   ╞════╗

             │А││    ╔══>╡│  │╞═>╡   │e   ║

             └A──┘│    ║   │││││   ├──┐ ║

              ║   │    ║  C│││││   ╞═╗│ ║

              ║   │    ║ ─/┴┴──┴┘└───┘S║│ ║

              ║   │    ╚═════════════════╝│ ║

              ║   └───────────────────────┘ ║

              ╚═════════════════════════════╝

     В этой схеме при разветвлении процесса  вычисленийпара

альтернативных адресов получается следующим образом: один ад-

рес всегда на единицу больше, чем текущий (т.е.  изменяется

"регулярным" образом ), второй адрес - произвольный исодер-

жится вместе с микрокомандой в микроинструкции.

     Элементом, "вычисляющим" адрес, является счетчмк, управ-

ляемый сигналом, являющимся входнымдля  УА.Приразличных


значениях входного сигнала счетчик выполняет две функции: ли-

бо прибавляет единицу к значению, которое хранилось в счетчи-

ке и являлось текущим адресом, либо загружается значением ад-

реса из управляющей памяти.

      В схему введен элементМ2,позволяющий  инвертировать

значение входного сигнала, что облегчает распределение микро-

инструкций по ячейкам управляющей памяти.

                     Адрес

n1 { m1 }         -- 0                        A │ YHe  S│

                                              ──┼───────────┤

n2 { m2 }         -- 1                        0 │m1x  x1│

                                                │           │

   <>                            1 │m2103│

                                                │           │

d1 { m0 }         -- 2                        2 │m01  12│

                                                │           │

   <>                            3 │m3xx4│

                                                │           │

n3 { m3 }         -- 3                        4 │m41  00│

                                                │           │

n4 { m4 }         -- 4                        5 │m02  03│

                                                │           │

   <>                            6 │m5116│

                                                │           │

d2 { m0 }         -- 5                        7 │m00  13│

                                              ──┴───────────┘

   <>

n5 { m5 }         -- 6

   <>

     В схеме для конвейерного варианта  взаимодействиярегу-

лярное изменение адреса приходится организовывать так,чтобы

не увеличивать число мест конвейера.

        ╔══════════════════════════════╗

        ║╔═════════════════════╗       ║

        ║║        ┌┬──┬┐ ┌───┐║ ┌───┐S║

        ║║  ┌───┐  ││RG││ │MUX│║ │ROM╞═╝

        ║╚═>╡INC╞═>╡││╞>╡0│║ │   │Y  ┌┬──┬┐Y'

        ║   └───┘ C││││ │   │║ │   ╞══>╡│RG│╞══>

        ║        ─/┴┴──┴┘ │   ╞╩>╡   │   ││││

        ║        ─/┬┬──┬┐ │   │A │   │H  ││││H'

        ║         C││RG││ │   ││   ╞══>╡││╞══╗

        ╚═════════>╡││╞>╡1│  │   │e││││e'║

                   ││││ │А││   ├──>┤│  │├┐ ║

            ┌───┐  └┴──┴┘ └A──┘  └───┘ ─/┴┴──┴┘│ ║

            │MUX│  ┌──┐    │C      │ ║

         0─>┤0  ├─>┤M2├────┘                   │ ║

         a─>┤1  │┌>┤  │                        │ ║

         b─>┤2  ││ └──┘                        │ ║

            │А││                             │ ║

            └A──┘└─────────────────────────────┘ ║

             ╚═══════════════════════════════════╝


              СХЕМА С ЕСТЕСТВЕННОЙ АДРЕСАЦИЕЙ И

         СОВМЕЩЕННЫМ НАЗНАЧЕНИЕМ РАЗРЯДОВ ЯЧЕЙКИ ПЗУ

╔════════════════════════════╗    C

║╔═══════════════════╗       ║   ─/┬┬──┬┐H'

║║       ┌┬──┬┐ ┌───┐║ ┌───┐ ║ ╔══>╡│RG│╞══╗

║║ ┌───┐ ││RG││ │MUX│║ │ROM│ ║ ║ ┌>┤│  │├─┐║

║╚>╡INC╞>╡││╞>╡0│║ │   │S║H║e│ └┴──┴┘ │║

║  └───┘C││││ │   │║ │   │ ║ ║ │ ┌┬──┬┐Y│║для RG"Y"

║      ─/┴┴──┴┘ │   ╞╩>╡   ▐██████>╡│RG│╞>│║

║      ─/┬┬──┬┐ │   │A │   │    w c││││ │║0w-загрузка

║       C││RG││ │   ││   │   ─A─/┴┴──┴┘ │║

╚═══════>╡││╞>╡1│  │   │k   │  ┌┬─┬┐k'│║1w-нет загрузки

         ││││ │ А ││   ├────┴─>┤│T│├┐ │║

  ┌───┐  └┴──┴┘ └─A─┘  └───┘     ─/┴┴─┴┘│ │║k    ┌───┐

  │MUX│  ┌──┐  ┌─┐│              C      │ │║  └────┤ 1 ├─ CC

0>┤0  ├─>┤M2├─>┤&├┘                     │ │║┌────┤   │

a>┤1  │┌>┤  │┌>┤ │                      │ │║SYN  └───┘

b>┤2  ││ └──┘│ └─┘                      │ │║

│А││e'   └──────────────────────────┘ │║где CC -

  └A──┘└──────────────────────────────────┘║ синхронизация ОА

   ╚═══════════════════════════════════════╝

     Эта схема используетсятольков  конвейерномварианте

взаимодействия. Метод вычисления адреса для следующеготакта

такой же, как и в схеме с регулярной адресацией. (Другой тер-

мин -"естественный" - употреблен только ради различения самих

схем.) Но в этой схеме, по сравнениюс  ужерассмотренными,

разряд управляющей памяти с одним и тем же номером (разрядный

срез) в различных  микроинструкцияхможетбыть  использован

различным образом. Будем различать микроинструкциидвух  ти-

пов:

- операционные,

- алресации (выбора).

     В лданном варианте схемы тип микроинструкции  устанавли-

вается разрядом с именем  "k".Приk=0  выполняетсямикро-

инструкция операционного типа. Все остальныеразряды  ячейки

загружаются в регистр  микрокомандыиуправляют выполнением

микроопераций в ОА. Следующий адрес всегда на единицу больше.

     Приk=1  выполняетсямикроинструкцияадресации.   Все

разряды микроинструкции могут быть использованы длявычисле-

ния следующего адреса. В данном варианте схемы, так же каки

в схеме с регулярной адресацией, один из адресов явно записы-

вается в микроинструкцию, другой альтернативный адрес на еди-

ницу больше текущего.

                     Адрес                     A ▌k│   Y    │

n1 { m1 }         -- 0                           ▌ │ H│ e│ S│

                                               ──▌─┼──┴──┴──┤

n2 { m2 }         -- 1                         0 ▌0│m1    │

                                               1 ▌0│m2    │

g1 <>-- 2                         ──▌─┼──┬──┬──┤

                                               2 ▌1│ 1│ 1│ 2│

n3 { m3 }         -- 3                         ──▌─┼──┴──┴──┤

                                   3 ▌0│m3    │

n4 { m4 }         -- 4                         4 ▌0│m4    │

                                               ──▌─┼──┬──┬──┤

g2 <>-- 5                         5 ▌1│ 1│ 0│ 0│

                                               6 ▌1│ 2│ 0│ 3│

g3 <>-- 6                         ──▌─┼──┴──┴──┤

                                               7 ▌0│m5    │

n5 { m5 }         -- 7                         ──▌─┼──┬──┬──┤

                                               8 ▌1│ 1│ 1│ 7│

g4 <>-- 8                         9 ▌1│ 0│ 1│ 3│


     Вместе с этой схемой обычно используетсяусловнаясин-

хронизация, которая позволяет удлинить такт выполнения микро-

команды в ОА на время выполнения микроинструкций адресации.

SYN ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────

  └─┘          └─┘          └─┘          └─┘          └─┘

    |||||

k   0 ▄▄▄▄▄▄▄▄   0 ▄▄▄▄▄▄▄▄─────▄▄▄▄▄▄▄▄─────▄▄▄▄▄▄▄▄   0 ▄▄▄

──────▀▀▀▀▀▀▀▀─────▀▀▀▀▀▀▀▀   1 ▀▀▀▀▀▀▀▀   1 ▀▀▀▀▀▀▀▀─────▀▀▀

    |||||

CC┐ ┌──────────┐ ┌────────────────────────────────────┐ ┌────

  └─┘          └─┘                                    └─┘

    |||||

Y────▄────────────▄──────────────────────────────────────▄───

─────▀────────────▀──────────────────────────────────────▀───

                   ФУНКЦИОНАЛЬНЫЙ ПЕРЕХОД.

          ПЕРЕХОД НА МИКРОПОДПРОГРАММУ С ВОЗВРАТОМ

     Функциональный переход

     При необходимости выполнения нескольких  вычислительныых

функций, управление которыми представляется в виденезависи-

мых микропрограмм, необходимо организовать независимыйвызов

этих микропрограмм.

     Начальные адреса микропрограмм, управляющих вычислениями

различных функций, обычно существуют вне управляющейпамяти.

В УА достаточно предусмотреть механизмкоммутации,  позволя-

ющий сделать начальный адрес текущим. Это можно осуществить в

любой из рассмотренных схем. (К механизму коммутации относят-

ся, кроме аппаратуры, специальные разряды управляющейпамяти

и специальные микроинструкции.)

          ╔══════════════════════╗   C

   ╔══════║══════════════╗       ║  ─/ ┬┬──┬┐H'

   ║      ║         ┌───┐║ ┌───┐ ║ ╔══>╡│RG│╞══╗

   ║      ║         │MUX│║ │ROM│ ║ ║ ┌>┤││├─┐║

F ═║══════║════════>╡0│║ │   │ ║ ║ │ └┴──┴┘ │║

   ║      ║ ┌┬──┬┐  │   │║ │   │ ║ ║ │        │║

   ║      ║ ││RG││  │   │║ │   │ ║ ║ │        │║

   ║      ╚>╡││╞═>╡1│║ │   │S║H║e│        │║

   ║       C│││││   │║ │   │ ║ ║ │ ┌┬──┬┐Y│║ для RG"Y"

   ║      ─/┴┴──┴┘│   ╞╩>╡   ▐██████>╡│RG│╞>│║

   ║        ┌┬──┬┐│   │A │   │       ││││ │║ 0w-загрузка

   ║ ┌───┐  ││RG││  │   ││   │    w c││││ │║

   ╚>╡INC╞═>╡││╞╦>╡2│ │   │   ─A─/┴┴──┴┘ │║ 1w-нет загр.

     └───┘ C││││║ │   │  │   │    │         │║

          ─/┴┴──┴┘║ │   │  │   │    │         │║

       ╔══════════╝ │   ││   │    │         │║

       ║ ┌┬─────┬┐│   ││   │   ┌┘k        │║

       ╚>╡│STACK│╞═>╡3│  │   │K│ ┌┬──┬┐K' │║

         └┴────A┴┘│   ││   ╞═══╧>╡│RG│╞╗│║

               ║    │ А ││   │     ││││║│║

               ║    └─A─┘  └───┘   ─/┴┴──┴┘║│║

  ┌───┐        ║      ║             C      ║  │║

  │MUX│  ┌──┐ ┌╨──────╨┐                   ║  │║

0>┤0  ├─>┤M2├>┤CS    ╞<══════════════════╝│║

a>┤1  │┌>┤│ │        │                      │║

b>┤2  ││ └──┘ └────────┘                      │║   k ┌───┐

│А││e'                                    │║   └─┤ 1 ├─CC

  └A──┘└──────────────────────────────────────┘║   ──┤   │

   ╚═══════════════════════════════════════════╝ SYN └───┘


     Переход к микроподпрограмме с возвратом

     При реализации достаточно сложных вычислений удобно вос-

пользоваться механизмом микроподпрограмм.

     Одна и та же микроподпрограммаможетбыть  вызванаиз

разных точек вызывающих  микропрограмм.Поэтомупри  вызове

микроподпрограммы необходимо запомнить адрес,с  тем,чтобы

восстановить его при возвращении из микроподпрограммы.Чтобы

запомнить и восстановить адреса возврата отвложенных  вызо-

вов, используется безадресная память - стек (stack).

     Принцип (дисциплина) работы стека описывается условием

"последний вошел - первым вышел" (Last In - First Out, LIFO).

чтобы описать этот принцип будем считать, что слова, хранящи-

еся в стеке, перенумерованы с помощью первых натуральныхчи-

сел 1,2,...,N. Слово с наибольшим номеромназывают  вершиной

стека.

     Стек может выполнять следующие действия:

-"чтение" слова с наибольшим номером,

-"выталкивание" (стирание) из памяти слова с наибольшимно-

   мером,

-"запись" нового слова с присваиванием ему наибольшего номе-

   ра.

     При вызове микроподпрограммы выполняется операция "запи-

си" адреса возврата в стек. При возвращении измикроподпрог-

раммы выполняется операция "чтения" адреса возврата, затем-

"выталкивания" его же из стека.

     Операция "чтения" без "выталкивания" выполняется при ис-

пользовании стека для организации циклов.

     Разряды с именем "К" определяют тип  выполняемоймикро-

инструкции. В связи с тем, что теперь всхеме  существует4

источника адреса для управляющей памяти, возможны 4 типабе-

зусловных переходов, кроме того, возможны различныеусловные

переходы в различных сочетаниях комбинирующиеэти  источники

адреса и входные переменные.

    С помощью комбинационной схемы CS разряды микроинструкции

"К" преобразуются в сигналы управления стеком и мультиплексо-

ром.

                 УПРАВЛЕНИЕ С ПРЕДВОСХИЩЕНИЕМ

     В конвейерном варианте для команд переходов по предикат-

ным переменным, зависящих без сдвига от сигналовуправления,

приходится добавлять еще один такт для того, чтобы"увидеть"

значение переменной, по которой выполняется ветвление, и выб-

рать нужную МКИ.

     Можно построить управляющий автомат, в котором для уско-

рения выполнения программывыполняются  следующиедействия:

Предварительно выбирается из ПЗУ одна из двухальтернативных

МКИ, соответствующая наиболее вероятному значениюпеременной

ветвления. Это значение должно храниться в той МКИ, после ко-

торой выполняется ветвление. В конце тактавыработанное  ре-

альное значение переменной сравнивается с предсказанным, если

они совпадают, то выбранная из ПЗУ МКИ записывается ввыход-

ной регистр, если нет, то предыдущий такт продлевается,т.е.

не синхронизируются ОА и RG'МКИ. Микропрограммабудет  такой

же как и для последовательного варианта взаимодействияОАи

УА, но в МКИ добавляются два разряда:

F = { 1, если используется предвосхищение; 0, если нет },

P - наиболее вероятное значение переменной ветвления.

     Фрагмент схемы УА, обеспечивающийпредвосхищениеможет

быть таким:


    ──────────────┐│          │W

           ┌┬──┬┐ │ ─V┬───┐ q  ┌A───┐  f

      t    ││RG││ └──>┤MUX├───>┤ SS ├<──────────────────────┐

    ──┬───>┤│  │├────>┤   │┌──>┤    ├<─────────────────────┐│

      │    ││││     │   ││t│    │  p                   ││

      │  ─┴┴──┴┘     └───┘│ ─┴┬───┘                      ││

      │   │                ││ │j                         ││

      └───┼────────────────┘│─V┬───┐   ┌─────┐ P  ┌┬──┬┐p││

          │                   ││MUX│   │ ROM ├───>┤│RG│├─┘│

          │                   ││   │   │     │ F││││f │

          │                   │          │     ├───>┤││├──┘

          │                   │          │     │    ││││

          │                   │          │     ▐███>│││▐██>

          │                   │          │     │    ││││

      C   │                   │          └─────┘ ─A┴┴──┴┘

      ────┴───────────────────┴───────────────────┘└────── W

    Пусть c=1 в конце такта.

     Схема SS это автомат, который может находитьсяводном

из двух состояний s0 и s1,

еслиs0, 0f,то  w=1, j=q

еслиs0, 1f, 0c,        то  w=0, j=p

еслиs0, 1f, 1c, p==t,то  w=1, j=p

еслиs0, 1f, 1c, p=/=t, тоw=0, j=x, переход вs1

еслиs1,                тоw=1, j=q, переход вs0