ВСТУП
Принцип мікропрограмного керування припускає, що цифровий пристрій складається з двох частин: операційний автомат (ОА) і керуючий автомат (КА). ОА виконує найпростіші операції (мікрооперації) типу зсув, алгебраїчне додавання, кон’юнкція, диз’юнкція і т.п. КА формує послідовність керуючих символів в ОА, під впливом яких ОА реалізує більш складні алгоритми. Такі послідовності операцій називаються мікропрограмами та, звичайно, записуються у вигляді граф-схеми алгоритму.
КА розділяються на дві великі групи: автомати з жорсткою логікою та автомати з програмованою логікою. У свою чергу автомати з жорсткою логікою підрозділяються на автомати, виконані за схемою Мілі (КА Мілі) і за схемою Мура (КА Мура), автомати з програмованою логікою – на автомати з примусовою адресацією та з природною адресацією.
В автоматах з жорсткою логікою схема автомата однозначно інтерпретує граф-схему мікропрограми. В автоматах із програмованою логікою граф-схема інтерпретується у вигляді програми, що зберігається в пам’яті автомата.
1. СИНТЕЗ ОПЕРАЦІЙНОГО АВТОМАТА
1.1 Аналіз вхідних даних
Загальна формула для обчислювання результату S має такий вигляд:
Формулі
, та згідно з варіантом завдання:Загальний алгоритм для обчислювання формули S приведений на рисунку 1.1.
Для обчислювання формули S використовується ІМp-модель (IndividualMutualwithParallelpart - IMp).
Рис. 1.1 – Загальний алгоритм для обчислювання формули S
Схему взаємодії операційного та керуючої частин у цифровому просторі зображено на рисунку 1.2.
Рис. 1.2 – Структура цифрового пристрою
Структурна схема ІМp - моделі зображена на рисунку 1.3
Рис. 1.3 – Структура операційного пристрою
Пам’ять автомата складається з регістрів загального призначення R1, ... , Rn.
Локальні шини А1, А2, A3 призначені для прийому інформації з пам’яті та передачі її на комбінаційні схеми (КС).
В даному випадку використовуються КС двох типів: одномісні та двомісні.
Рис. 1.4 – Приклад комбінаційних схем
Однак, у даному ОА використовуються лише деякі з них.
1.2 Розробка функціонального алгоритму
Функціональна і структурна організація операційних пристроїв (ОУ) базується на принципі мікро програмного керування, сформульованому в 1951 році М. Уилксом. Відповідно до цього принципу будь-яка машинна операція розділяється на послідовність елементарних дій по обробці інформації – мікро операцій (МО). Порядок проходження мікро операцій визначається спеціальними логічними умовами (ЛУ), що у залежності від значень оброблюваної інформації приймають значення "істина" (1) або "неправда" (0). Алгоритм операцій в ОУ, записаний у термінах мікро операцій і логічних умов, що відбиває порядок проходження мікро операцій у часі, називається мікропрограмою.
Функція УА – це оперативна схема алгоритму, операторами якої є символи
, що ототожнюються з МО, виконуваними ОА, як логічні умови використовуються булеві перемінні . Найбільше часто операторна схема алгоритму представляється у виді граф-схеми алгоритму (ГСА).Граф-схема алгоритму. Орієнтований зв'язаний граф – граф, що містить одну початкову вершину, одну кінцеву вершину, довільну безліч умовних і операторних вершин.
Будова ІМр автомата дозволяє паралельно виконувати одномісну та двумісну операції, тобто можливо виконувати за одне завантаження автомату завантаження двох операнд. Наприклад, у п’ятій вершині зроблено саме так.
Кожній дії, завантаженню автомата, відповідає Y[і].
Ідентичні дії відповідають однаковим командам, Y[і].
Логічні умови позначаються – XL, однаковим умовам відповідають однакові XL.
Функціональний алгоритм приведений на рисунку 1.5.
Рис. 1.5 – Функціональний алгоритм
1.3 Розробка структурної схеми автомата
1.3.1. Визначення набору регістрів пам’яті:
Rg:{RA,RB,RC,RS1,RS2, RS3}
1.3.2. Набір комбінаційних схем:
Одномісні: КС1 : {L1, L2, L3, R1, R2, R3}
На шину C повинні поступати всі аргументи одномісних операцій.
Двомісні: КС2: {Sum, Sub}
Припустимо, що операція відіймання виконується наступним чином:
Sub:=B - A, тому від’ємне завжди повинно знаходитись на шині B, а від’ємник на шині А. В іншій двомісній операції Sumпорядок операндів значення не має.
Рис. 1.6 – Структурна схема автомата
1.3.3. Зв'язки між регістрами та локальними шинами
Наша схема має три шини: А та B – двомісні, та шина C – одномісна.
A {RA, RB, RC, RS1, RS2,RS3}
B {RA, RB, RC, RS1, RS2,RS3}
C {RA, RB, RC, RS1, RS2,RS3}
1.3.4. Зворотні зв'язки шин Z1 та Z2 з регістрами пам’яті
Шини, що є результативними:
Z1 – результати одномісних операцій, а Z2 – двомісних операцій.
Z1 {RA, RB, RC, RS1, RS2,RS3}
Z2 {RA, RB, RC, RS1, RS2,RS3}
Кожний елемент, котрий діє у схемі може виконуватись тільки при наявності відповідного керуючого сигналу y[n].
у1, у2, у3 – завантаження початкових даних на шини.
у4–у15 – завантаження даних у регістри пам'яті.
у16–у33 – завантаження з пам'яті на локальні шини А, B, C.
у34, у39 – завантаження результатів одномісних операцій на шину Z1.
y40–у41 – завантаження результатів двомісних операцій на шину Z2.
Отримані таким чином дані заносимо до таблиці 1.1
Табл. 1.1 –Таблиця мікрооперацій
Мікрооперація | A | B | C | Z1 | Z2 | Result | |||||||
Y | формула | регістр | y | регістр | y | регістр | y | форм. | y | форм. | y | регістр | y |
1 | RA := <A>RB := <B> | <B> | y2 | <A> | y1 | RA:=Z2RB:=Z1 | y4y7 | ||||||
2 | RC := <C> | <C> | y3 | RC:=Z2 | y8 | ||||||||
3 | RS3 := RA + RB | RA | y17 | RB | y21 | RA+RB | y40 | RS3:=Z2 | y14 | ||||
4 | RS2 := RA – RB | RB | y20 | RA | y18 | RA-RB | y41 | RS2:=Z2 | y12 | ||||
5 | RS1 := L3(RS2) | RS2 | y28 | L3(RS2) | y36 | RS1:=Z1 | y11 | ||||||
6 | RS1 := RS1 – RS2 | RS2 | y29 | RS1 | y27 | RS1-RS2 | y41 | RS1:=Z2 | y10 | ||||
7 | RS2 := L2(RA) | RA | y16 | L2(RA) | y35 | RS2:=Z1 | y13 | ||||||
8 | RS3 := L1(RB) | RB | y19 | L1(RB) | y34 | RS3:=Z1 | y15 | ||||||
9 | RS1 := RS2 – RS3 | RS3 | y32 | RS2 | y30 | RS2-RS3 | y41 | RS1:=Z2 | y10 | ||||
10 | RS1 := L2(RA) | RA | y16 | L2(RA) | y35 | RS1:=Z1 | y11 | ||||||
11 | RS1 := RS1 – RA | RA | y17 | RS1 | y27 | RS1-RA | y41 | RS1:=Z2 | y10 | ||||
12 | RS1 := R1(RS1) | RS1 | y25 | R1(RS1) | y37 | RS1:=Z1 | y11 | ||||||
13 | RS1 := RS1 – RB | RB | y20 | RS1 | y27 | RS1-RB | y41 | RS1:=Z2 | y10 | ||||
14 | RS3 := RB – RA | RA | y17 | RB | y21 | RB-RA | y41 | RS3:=Z2 | y14 | ||||
15 | RS3 := R1(RB) | RB | y19 | R1(RB) | y37 | RS3:=Z1 | y15 | ||||||
16 | RS2 := RA – RS3 | RS3 | y32 | RA | y18 | RA-RS3 | y41 | RS2:=Z2 | y12 | ||||
17 | RS2 := RA + RBRS3 := L1(RC) | RA | y17 | RB | y21 | RC | y22 | L1(RC) | y34 | RA+RB | y40 | RS2:=Z2RS3:=Z1 | y12 y15 |
18 | RS2 := RS2 – RS3 | RS3 | y32 | RS2 | y30 | RS2-RS3 | y41 | RS2:=Z2 | y12 | ||||
19 | RS2 := RS2 – RC | RC | y23 | RS2 | y30 | RS2-RC | y41 | RS2:=Z2 | y12 | ||||
20 | RS3 := L1(RB) | RB | y19 | L1(RB) | y34 | RS3:=Z1 | y15 | ||||||
21 | RS3 := RA – RS3 | RS3 | y32 | RA | y18 | RA-RS3 | y41 | RS3:=Z2 | y14 | ||||
22 | RS2 := L3(RS3) | RS3 | y31 | L3(RS3) | y36 | RS2:=Z1 | y13 | ||||||
23 | RS2 := RS2 – RS3 | RS3 | y32 | RS2 | y30 | RS2-RS3 | y41 | RS2:=Z2 | y12 | ||||
24 | RS2 := R3(RS2) | RS2 | y28 | R3(RS2) | y39 | RS2:=Z1 | y13 | ||||||
25 | RS3 := RC + RB | RB | y20 | RC | y24 | RB+RC | y40 | RS3:=Z2 | y14 | ||||
26 | RS3 := L1(RS3) | RS3 | y31 | L1(RS3) | y34 | RS3:=Z1 | y15 | ||||||
27 | RS3 := RS3 + RC | RS3 | y32 | RC | y24 | RS3+RC | y40 | RS3:=Z2 | y14 | ||||
28 | RC := L2(RB)RS3 := RA – RB | RB | y20 | RA | y18 | RB | y19 | L2(RB) | y35 | RA-RB | y41 | RC:=Z1RS3:=Z2 | y9 y14 |
29 | RS3 := RS3 – RC | RC | y23 | RS3 | y33 | RS3-RC | y41 | RS3:=Z2 | y14 | ||||
30 | RS3 := RC – RA | RA | y17 | RC | y24 | RC-RA | y41 | RS3:=Z2 | y14 | ||||
31 | RS3 := R2(RS3) | RS3 | y31 | R2(RS3) | y38 | RS3:=Z1 | y15 | ||||||
32 | RS1 := L1(RS1) | RS1 | y25 | L1(RS1) | y34 | RS1:=Z1 | y11 | ||||||
33 | RS1 := RS2 + RS1 | RS1 | y26 | RS2 | y30 | RS1+RS2 | y40 | RS1:=Z2 | y10 | ||||
34 | RS1 := RS2 – RS1 | RS1 | y26 | RS2 | y30 | RS2-RS1 | y41 | RS1:=Z2 | y10 | ||||
35 | RS1 := L2(RS3) | RS3 | y31 | L2(RS3) | y35 | RS1:=Z1 | y11 | ||||||
36 | RS1 := RS2 + RS1 | RS1 | y26 | RS2 | y30 | RS1+RS2 | y40 | RS1:=Z2 | y10 |