Смекни!
smekni.com

Розробка алгоритму операційного автомату, синтез керуючого автомату з жорсткою логікою типу Мілі (стр. 3 из 5)

Рисунок 1 - Структурна схема операційного автомата


1.3.2 Приклад реалізації алгоритму

Приклад: Перемножити на суматорі прямого коду починаючи з старших розрядів множника А=57, В=-923 з використанням описаного у пункті 1.3.1 алгоритму.

Розв’язання.

Спочатку запишемо машинні зображення чисел А та В в прямих кодах з заданою розрядністю:

А = 0,[0] 30...[0] 6111001; В = 1,[0] 30…[0] 111110011011

Послідовність дій, що виконуються над числами, наведена у таблиці 1.

Відповідь: 1,[0] 62…[0] 1701100110011011000.

Таблиця 1 – Приклад реалізації алгоритму множення, починаючи зі старших розрядів множника

Суматор НСМ Регістр РгА Регістр РгВ Примітки
0,[0]62…[0]1700000000000000000 0,[0]30...[0]6111001 1,[0]30…[0]111110011011 НСМ:=0; РгА:=Швх1; РгВ:=Швх2; ЛІЧ:=29;
1,[0]62…[0]18000000000000000000 0,[0]30...[0]6111001 1,[0]30…[0]121110011011_ НСМ[63]:=1; РгВ[30]=0; L1.РгВ[0:30]; ЛІЧ:=28; L1.НСМ[0:62]; НСМ[0]:=0;
1,[0]62…[0]1700000000000000000 0,[0]30...[0]6111001 1,01110011011[ _ ] 19…[ _ ] 0 РгВ[30]=0; L1.РгВ[0:30]; L1.НСМ[0:62]; НСМ[0]:=0; ЛІЧ:=10;
1,[0]62…[0]1700000000000000000
1,[0]62…[0]1700000000000111001 1,[0]62…[0]1700000000001110010
0,[0]30...[0]6111001 1,1110011011[_] 20…[_] 0 РгВ[30]=1; НСМ:=НСМ+РгА; L1.РгВ[0:30]; L1.НСМ[0:62]; НСМ[0]:=0; ЛІЧ:=9;
1,[0]62…[0]1700000000001110010
1,[0]62…[0]1700000000010101011 1,[0]62…[0]1700000000101010110
0,[0]30...[0]6111001 1,110011011[_] 21…[_] 0 РгВ[30]=1; НСМ:=НСМ+РгА; L1.РгВ[0:30]; L1.НСМ[0:62]; НСМ[0]:=0; ЛІЧ:=8;
1,[0]62…[0]1700000000101010110
1,[0]62…[0]1700000000110001111
1,[0]62…[0]1700000001100011110
0,[0]30...[0]6111001 1,10011011[_] 22…[_] 0 РгВ[30]=1; НСМ:=НСМ+РгА; L1.РгВ[0:30]; L1.НСМ[0:62]; НСМ[0]:=0; ЛІЧ:=7;
1,[0]62…[0]1700000001100011110 1,[0]62…[0]1700000011000111100 0,[0]30...[0]6111001 1,0011011[_] 23…[_] 0 РгВ[30]=0; L1.РгВ[0:30]; L1.НСМ[0:62]; НСМ[0]:=0; ЛІЧ:=6;
1,[0]62…[0]1700000011000111100 1,[0]62…[0]1700000110001111000
0,[0]30...[0]6111001 1,011011[_] 24…[_] 0 РгВ[30]=0; L1.РгВ[0:30]; L1.НСМ[0:62]; НСМ[0]:=0; ЛІЧ:=5;
1,[0]62…[0]1700000110001111000
1,[0]62…[0]1700000110010110001 1,[0]62…[0]1700001100101100010
0,[0]30...[0]6111001 1,11011[_] 25…[_] 0 РгВ[30]=1; НСМ:=НСМ+РгА; L1.РгВ[0:30]; ЛІЧ:=4; L1.НСМ[0:62]; НСМ[0]:=0;
1,[0]62…[0]1700001100101100010
1,[0]62…[0]1700001100110011011 1,[0]62…[0]1700011001100110110
0,[0]30...[0]6111001 1,1011[_] 26…[_] 0 РгВ[30]=1; НСМ:=НСМ+РгА; L1.РгВ[0:30]; ЛІЧ:=3; L1.НСМ[0:62]; НСМ[0]:=0;
1,[0]62…[0]1700011001100110110 1,[0]62…[0]1700110011001101100
0,[0]30...[0]6111001 1,011[_] 27…[_] 0 РгВ[30]=0; L1.РгВ[0:30]; L1.НСМ[0:62]; НСМ[0]:=0; ЛІЧ:=2;
1,[0]62…[0]1700110011001101100
1,[0]62…[0]1700110011010100101 1,[0]62…[0]1701100110011011000
0,[0]30...[0]6111001 1,11[_] 28…[_] 0 РгВ[30]=1; НСМ:=НСМ+РгА; L1.РгВ[0:30]; ЛІЧ:=1; L1.НСМ[0:62]; НСМ[0]:=0;
1,[0]62…[0]1701100110011011000
1,[0]62…[0]1701100110110000011 1,[0]62…[0]1711001100110110000
0,[0]30...[0]6111001 1,1[_] 29…[_] 0 РгВ[30]=1; НСМ:=НСМ+РгА; L1.РгВ[0:30]; ЛІЧ:=0; L1.НСМ[0:62]; НСМ[0]:=0;
1,[0]62…[0]1711001100110110000 1,[0]62…[0]1701100110011011000
0,[0]30...[0]6111001 1,1[_] 29…[_] 0 R1.НСМ[0:62]; Швих:=НСМ[0:63]

2. СИНТЕЗ КЕРУЮЧОГО АВТОМАТУ

2.1 Основи теорії керуючих автоматів

Керуючий автомат (КА) генерує послідовність керуючих сигналів, яка передбачена мікропрограмою і відповідає значенням логічних умов. Інакше кажучи, керуючий автомат задає порядок виконання дій в операційному автоматі, який виходить з алгоритму виконання операцій. Найменування операції, яку необхідно виконувати у пристрої, визначається кодом операції. По відношенню до керуючого автомату сигнали коду операції, за допомогою яких кодується найменування операції, і повідомлювальні сигнали х1,...,хi, які формуються в операційному автоматі, грають однакову роль: вони впливають на порядок генерування керуючих сигналів y. Тому сигнали коду операції і умовні сигнали відносяться до одного класу – до класу повідомлювальних сигналів, які поступають на вхід керуючого автомату.

В основі опису керуючих автоматів лежить принцип мікропрограмного керування. Він полягає в тому що будь-яка операція розглядається як складна що містить більш прості операції які називаються мікроопераціями тобто кожна операція – це визначена послідовність мікрооперацій.

Існують два основні типи керуючих автоматів

1. Керуючий автомат з жорсткою чи схемною логікою. Для кожної операції будується набір комбінаційних схем які в потрібних тактах збуджують відповідні керуючі сигнали. Іншими словами будується скінчений автомат в якому необхідна множина станів представляється станами k запам’ятовуючих елементів

q = {q1 q2, …, qk}

2. Керуючий автомат з збереженою в пам’яті логікою (програмованою логікою). Кожній операції що виконується в операційному пристрої ставиться у відповідність сукупність збережених в пам’яті слів-мікрокоманд кожна з яких містить інформацію про мікрооперації що підлягають виконанню на протязі одного машинного такту та вказівку (яка в загальному випадку залежить від значень вхідних сигналів) яке повинно бути вибране з пам’яті наступне слово (наступна мікрокоманда). Таким чином в цьому випадку функції переходів та виходів А та В керуючого автомату реалізуються збереженою в пам’яті сукупністю мікрокоманд.

Послідовність мікрокоманд що виконують одну машинну команду чи окрему процедуру створює мікропрограму. Звичайно мікропрограми зберігаються в спеціальній пам’яті мікропрограм (керуючій пам’яті).

В керуючих автоматах з збереженоюю в пам’яті програмою мікропрограми використовуються в явній формі вони програмуються в кодах мікрокоманд і в такому вигляді заносяться в пам’ять. Тому такий метод управління цифровим пристроєм називається мікропрограмуванням а керуючі блоки що використовують цей метод - мікропрограмними керуючими пристроями.

В залежності від прийнятого способу кодування мікрооперацій розрізняють три варіанти організації мікропрограмного керування горизонтальне вертикальне та комбіноване мікропрограмування. При горизонтальному мікропрограмуванні для кожної мікрооперації виділяється один розряд у мікрокоманді. При такому кодуванні всі операції що виконуються одночасно визначаються одиницями у відповідних розрядах однієї мікрокоманди. Код операції задає адресу першої мікрокоманди в мікропрограмі. Адреси наступних мікрокоманд визначаються за принципом примусової адресації згідно цього мікрокоманда складається з двох частин-мікроопераційної та адресної. Основною перевагою горизонтального мікропрограмування є висока швидкодія як за рахунок простоти та можливості одночасної генерації довільного числа сигналів мікрооперацій так і за рахунок швидкого формування адреси наступної мікрокоманди. Однак при горизонтальному мікропрограмуванні довжина поля мікрооперації повинна бути не менша за максимальну кількість несумісних мікрооперацій тобто вимагаються довгі формати мікрокоманд та комірки запам’ятовуючого пристрою що призводить до значних витрат обладнання. Крім того лише невелике число розрядів в полі мікрооперації буде містити одиниці тобто запам’ятовуючий пристрій буде використовуватись неефективно.

Скоротити довжину мікрокоманд дозволяє застосування вертикального мікропрограмування при якому кожна мікрооперація кодується ]log2 n[ - розрядним кодом де n – загальна кількість мікрооперацій. Таке кодування накладає обмеження на методи виконання операцій а саме не повинно бути операцій що потребують одночасного виконання ряда мікрооперацій. В тих випадках коли це обмеження виконати неможливо треба використовувати складні мікрооперації що складаються з сукупності простих.

2.2 Опис керуючого автомату Мілі

За способом формування функції виходів виділяють три типи абстрактних автоматів: автомат Мілі, автомат Мура та С-автомат.