135850 (722689), страница 3
Текст из файла (страница 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).
- 12 -
Запишем этот фрагмент алгоритма иначе так, чтобы нужный
бит извлекался за счет сдвига в регистре D. Тогда получим:
───┬── A D
│ ┌┬──┬┐ ┌┬──┬─┐ 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], тогда алгоритм и его ре- ализация имеют вид: - 13 - ───┬── │ 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 - входная и выходная информационные шины. - 14 - Р - предикатные сигналы (флажки). 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- время установления соответствующего компонента цепи. Чтобы сократить длину этой цепи, применяют другой вари- ант взаимодействия автоматов - конвейерный: - 15 - ╔══════════════════════════╗ ║┌────┐ ┌┬──┬┐ ┌────┐ ║ ╚╡ 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(...)} <>, выполняемый в последовательной схеме за один такт, в кон- вейерном варианте за один такт выполнен быть не может и дол- жен быть модифицирован следующим образом: mS{...,pA=f(...)} mS'{нет операции} <> Таким образом, время выполнения этого фрагмента не только не уменьшилось, но даже возросло несмотря на уменьшение продол- жительности каждого из тактов. Зато во всех остальных случа- ях (при безусловных переходах, при переходах по значению РВ) время выполнения микропрограммы уменьшается. _НАЧАЛЬНАЯ ИНИЦИАЛИЗАЦИЯ СИНХРОННОЙ СХЕМЫ Пусть устройство, кроме сигнала синхронизации SYN, имеет еще один сигнал Н, обозначающий начало и конец синхронной ра- боты устройства. При Н=0 - нерабочее состояние - можно выпол- нять начальную установку значений памяти устройства. Измене- ние значения Н с 0 на 1 происходит в случайный момент времени (асинхронно), но при этом начальный такт работы устройства должен быть полным. "Затягивание" асинхронного сигнала Н в синхронный режим происходит с помощью простейшего синхронного автомата с диаграммой: ┌──────────┐ ┌────────┐ V 0H/CONST│ V 1H/SYN│ █▀▀▀█────────┘ █▀▀▀█──────┘ >▌ 0 ▐──────────────>▌ 1 ▐──────┐ █▄▄▄█ 1H/CONST █▄▄▄█ 0H/X │ л │ └────────────────────────────┘ У этого автомата простейшей является функция переходов, так как диаграмма автомата совпадает с диаграммой переходов - 16 - D-триггера. Схема автомата вместе с цепями условной синхронизации выглядит следующим образом (для синхронизации по фронтам): а)-по переднему фронту, б)- по заднему фронту: ┌──┐ ┌──┐ SYN ──┬──────────┤ 1├── CC SYN ──┬──────────┤ &├── CC │ ┌─┬─┐ ┌─┤ │ │ ┌─┬─┐ ┌─┤ │ └─/C│T│ │ └──┘ └─\C│T│ │ └──┘ │ │ ├ │ │ │ ├──┘ ┌─┤D│ │ │ ┌─┤D│ │ │ ├─┤ o──┘ │ ├─┤ o─ ├─oR│ │ ├─oR│ │ H │ └─┴─┘уст. нач. зн. H │ └─┴─┘уст. нач. зн. ──┴─────────────────── ──┴─────────────────── Такая разница в цепях условной синхронизации, как уже объяс- нялось выше, определяется тем, что первый перепад сигнала СС не должен быть рабочим.