Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_сем2_А4(19-04-10).DOC
Скачиваний:
1
Добавлен:
03.05.2019
Размер:
1.34 Mб
Скачать

Розробка керуючого автомата з жорсткою логікою як автомата Мілі

Для складання закодованого мікроалгоритму замінимо в змістовному мікроалгоритмі логічні умови на їх позначення, а мікрооперації замінимо на мікрокоманди (з урахуванням їх тривалості), які забезпечують виконання цих мікрооперацій (згідно табл.10.1). Особливістю закодованого мікроалгоритму є те, що в одну операторну вершину записуються мікрокоманди, які повинні формуватись керуючим автоматом на протязі одного такту синхронізуючої частоти одночасно, тобто одна операторна вершина в часі відповідає одному такту частоти. Побудований відповідним чином мікроалгоритм наведено на рис. 10.2.

Примітка 10.2. Як зазначалося в попередній лабораторній роботі, отримання активного значення сигналу р1, який свідчить про досягнення значення в лічильнику циклів ST до нуля і є ознакою закінчення виконання циклів множення, одночасно є ознакою готовності результату і використовується для оповіщення зовнішніх пристроїв про завершення робочого циклу процесора. Проаналізуємо особливості формування сигналу р1=1 за алгоритмом (рис. 10.2), що забезпечують можливість використання цього сигналу в якості ознаки готовності результату для оповіщення зовнішніх пристроїв. На рисунку 10.2 стан сигналу р1 перевіряється в вершині 5 (умова х2) і, за умови х2=1 (по суті, р1=1), з вершини 5 виконується перехід на вершину 6 алгоритму з подальшим зациклюванням до виконання умови х1=0 (до онулення сигналу “Пуск”). Весь цей час сигнал р1 утримується активним, що надає змогу зовнішнім схемам опрацювати зазначений сигнал незалежно від їх швидкодії і лише після цього виконати онулення сигналу “Пуск”. Зчитування результату, як вже також зазначалося, в даному прикладі може виконуватись як при активному значенні сигналу “Пуск” (за умови р1=1), так і після його онулення.

В більшості завдань лабораторних робіт відсутня можливість використання основних сигналів в якості ознаки готовності результату, що зумовило потребу введення при розробці АЛП додаткового керуючого сигналу. Відповідно, виникає відмінність і в організації закодованих алгоритмів функціонування керуючих автоматів, що мають реалізовувати формування сигналів керування. Як правило, для формування сигналу готовності результату в циклі очікування онулення сигналу “Пуск” в алгоритм вводиться додаткова операторна вершина, в якій і відбувається генерація активного рівня зазначеного сигналу.

Як видно із закодованого мікроалгоритму, сигнали керування y3 та y4 дублюються в двох послідовно розміщених операторних вершинах (блок 3 та блок 4). Це зумовлюється вимогою тривалості цих сигналів, яка дорівнює двом періодам синхронізуючої частоти. Сигнал y6 (декремент лічильника ST) занесено до операторної вершини 3, оскільки при виході з вершини 4 операція декременту лічильника ST в поточному циклі повинна бути завершеною - після цього виконується перевірка значення в лічильнику на рівність нулю (в іншому випадку можлива реалізація надлишкового циклу з вершини 5 в 3, а при наведеній організації алгоритму і загальне зациклювання роботи процессора). Принциповість знаходження сигналу керування y5 (запис даних з виходів суматора SM в регістр RG2) в операторній вершині 4 зумовлена його залежністю від результатів використання сигналів керування y3 та y4 – керовані цими сигналами мультиплексори МХ1 і МХ2 (дивись рис.9.1) повинні встигнути скомутувати дані з своїх входів на виходи у відповідності до значень сигналів y3 та y4.

Тепер пояснимо, чому тривалість сигналів керування y3-y4 обрано рівною двом періодам синхронізуючої частоти. Як видно з закодованого мікроалгоритму функціонування автомата Мілі, сигнали y3 та y4 залишаються активними в двох вершинах мікроалгоритму (вершини 3 і 4, кожна з яких відповідає одному періоду синхронізуючої частоти).

У вершині 3 забезпечується переключення мультиплексорів МХ1 і МХ2 під дією сигналів y3 та y4 для забезпечення потрібного способу комутації даних з входів на виходи, дані передаються відповідним чином і надходять на суматор SM для додавання, а отримуваний результат з виходів суматора подається для запису в регістр Рг2.

У вершині 4 відбувається запис отриманого в попередній операції результату з виходів суматора SM в регістр Рг2. Сигнали y3 та y4 при цьому залишаються активними для забезпечення стабільності реалізації операції запису, адже перехід зазначених сигналів в неактивний стан зумовить перекомутацію мультиплексорів МХ1 і МХ2 і внаслідок цього значення на виходах суматора SM може змінитись до того, як завершиться процес його запису в регістр Рг2.

Звісно, якщо враховувати, що обраний тип регістра Рг2 у відповідності до схеми пристрою фіксує дані за спадом керуючого сигналу, можливою стає реалізація всіх перелічених операцій підготовки і запису даних протягом одного періоду синхронізуючої частоти, але обґрунтуванням цій гіпотезі може бути лише якісне моделювання проходження відповідних процесів в часі.

Примітка 10.3. Наведений опис принципів визначення тривалості сигналів керування є досить поверхневим, оскільки для реального розрахунку часових співвідношень сигналів необхідно будувати часові діаграми високої точності з урахуванням реальних часових затримок всіх елементів, характеру спрацьовування елементів пам’яті (за певним потенційним рівнем або фронтом чи спадом керуючого сигналу) та інших часових характеристик складових АЛП і проектованого пристрою керування.

Повернемось до питання побудови алгоритмів функціонування автомата Мілі. На основі закодованого мікроалгоритма функціонування автомата Мілі (рис. 10.2) ведеться визначення і розмітка станів проектованого автомата.

Розмітка станів автомату Мілі виконується за наступними правилами:

  • символом а1 позначається вхід вершини (логічної або операторної), наступної за початковою, а також вхід кінцевої вершини;

  • входи всіх вершин, що слідують за операторними, відзначаються символами аi (!!! тільки входи вершин, що слідують за операторними !!!).

Примітка 10.4. В певних випадках виникає необхідність введення додаткових станів автомату, що визначається моделюванням роботи пристрою.

Розмічений мікроалгоритм для побудови автомату Мілі наведено на рис.10.3.

На рис.10.4 наведено граф автомата, побудований відповідно до розробленого закодованого мікроалгоритму функціонування автомата Мілі.

Кількість вершин графа дорівнює кількості можливих станів автомата. Кожному переходу автомата з одного стану в інший відповідає дуга на графі. Дузі ставиться у відповідність набір логічних умов, за яких відбувається перехід автомата з одного стану в інший, а також набір керуючих сигналів, що відповідають зазначеному переходу (повинні бути активними при виконанні відповідного переходу).

Розглянуті мікроалгоритми та граф переходів є класичними базовими вихідними даними для побудови керуючого автомата Мілі. На них відображуються лише активні значення сигналів, а інші сигнали не аналізуються. Фактично, вважається, що всі сигнали, які не включені до переліку активних сигналів, автоматично можна розглядати як неактивні. З іншої сторони, якщо провести більш детальний аналіз умов формування сигналів то серед переліку ”неактивних” сигналів можна виділити такі, значення яких на певному етапі не впливає на хід виконання операції. Цілком імовірно, що урахування таких сигналів при побудові схем керуючого автомата дозволить отримати при мінімізації функцій кращі результати і, як наслідок, зменшити апаратну складність проектованого автомата.

З цього можна зробити висновок, що для отримання мінімальної за апаратною складністю схеми керуючого автомата Мілі доцільним є проведення більш детального аналізу вимог щодо можливих значень керуючих сигналів при переходах зі стану в стан. В ході цього аналізу для кожного наявного в графі переходу необхідно розділити всі керуючі сигнали на три категорії:

  • сигнали, що мають бути активними для виконання мікрооперацій за умовами заданого переходу (вони внесені в операторні вершини мікроалгоритму);

  • сигнали, що мають бути неактивними для забезпечення умов виконання відповідних мікрооперацій;

  • сигнали, стан яких жодним чином не впливає на хід виконання відповідних мікрооперацій заданого переходу (їх значення будемо позначати “*”).

Проведемо аналіз вимог щодо можливих значень керуючих сигналів при переходах керуючого автомата зі стану в стан і сформуємо на його основі розширений мікроалгоритм функціонування проектованого автомата Мілі (рисунок 10.5).

а1→а1: y1=y2=y5=y6=0; y3=y4=*

а1→а2: y1=y2=1; y3=y4=y6=*; y5=0

а2→а3: y1=y2=0; y3=y4=y6=1; y5=*

а3→а4: y1=y2=y6=0; y3=y4=y5=1

а4→а2: y1=y2=y5=y6=0; y3=y4=*

а4→а4: y2=y5=y6=0; y1=y3=y4=*

а4→а1: y2=y5=0; y1=y3=y4=y6=*

Рисунок 10.5 Розширений мікроалгоритм функціонування автомата Мілі з відміченими станами автомата

На підставі наведеного розширеного мікроалгоритму функціонування автомата Мілі може бути сформований розширений граф переходів автомата Мілі. Для спрощення читання на графі достатньо відобразити для кожного переходу лише сигнали з визначеним значенням (yі=1 показувати як yі без інверсії, yі=0 показувати з інверсією), а інші сигнали автоматично будуть розглядатися як сигнали з довільними значеннями.

Розглянемо порядок логічних міркувань, за якими визначались значення керуючих сигналів в пропонованому прикладі:

  • при переході а1→а1 (початковий стан – очікування сигналу “Пуск”) важливим є збереження початкових даних для виконання операції, що повинні знаходитись в регістрах RG1 і RG2, а також в лічильнику ST, тому сигнали, які можуть впливати на записані до цих вузлів значення зроблені неактивними: y1=y2=y5=y6=0. В той же час характер комутації сигналів мультиплексорами MX1 і MX2 на цьому етапі є несуттєвим, оскільки операцій запису зазначених даних не передбачено – сигнали керування роботою мультиплексорів можуть приймати довільне значення: y3=y4=*;

  • при переході а1→а2 (реалізація ділення на 2 та множення на 2 шляхом зсуву значень в регістрах на 1 розряд) сигнали y1=y2=1 забезпечують виконання передбачених на цьому етапі мікрооперацій зсуву даних в регістрах на 1 розряд в заданому напрямку. В цей час важливим є збереження неактивним сигналу паралельного завантаження даних зі входів в регістр RG2, тому сигнал y5 зроблений неактивним: y5=0. Як і в попередньому переході а1→а1, характер комутації сигналів мультиплексорами MX1 і MX2 на цьому етапі є несуттєвим: y3=y4=*. Звернемо увагу на сигнал y6, який реалізує операцію декременту лічильника. За логікою роботи пристрою, заданою досліджуваним мікроалгоритмом, при переході а1→а2 операції декременту лічильника не передбачено. З іншої сторони, одразу після переходу а1→а2 йде перехід а2→а3, в якому і передбачений декремент лічильника (для переходу а2→а3 за алгоритмом y6=1). Інших варіантів переходів зі стану а2 за алгоритмом немає. Якщо відбудеться встановлення сигналу y6=1 при переході а1→а2 і далі він утримається за алгоритмом у відповідному стані протягом переходу а2→а3, то єдиним наслідком буде збільшення тривалості перебування цього сигналу в активному стані вдвічі. Оскільки протягом переходів а1→а2 і а2→а3 в описаній ситуації не буде формуватись значення y6=0, декремент лічильника відбудеться однократно, що відповідає вимогам реалізації операції пристроєм. Більш того, за наведеною схемою лічильник спрацьовує за спадом імпульсу, тому в обох ситуаціях операція декременту буде завершуватись за алгоритмом в один момент – при переключенні y6 з рівня “лог.1” в рівень “лог.0”, що відповідає позиції стану а3 в алгоритмі. Таким чином, оскільки будь яке значення y6 при переході а1→а2 забезпечує вірне функціонування пристрою, фіксуємо для цього переходу y6=*;

  • при переході а2→а3 виконується операція декременту лічильника ST, що зумовлює потребу в активному рівні керуючого сигналу відповідної мікрооперації: y6=1. Крім того, при переході а2→а3 відбувається підготовка даних для запису до регістра RG2: мультиплексори МХ1 і МХ2 комутують потрібні значення операндів на входи суматора SM, а суматор SM реалізує їх додавання і видає отриманий результат на входи регістра RG2. Для реалізації відповідних дій зазначеними комбінаційними схемами пристрою необхідно реалізувати відповідний спосіб комутації даних мультиплексорами МХ1 і МХ2, тому керуючі сигнали y3 і y4 приймають потрібне для цього активне значення: y3=y4=1. Оскільки для отримання правильного результату зсув даних в регістрах на цьому етапі недопустимий, сигнали y1і y2 повинні бути неактивними: y1=y2=0. З сигналом y5 при переході а2→а3 ситуація схожа на описану для сигналу y6 при переході а1→а2 – хоча активний рівень сигналу y5 не передбачений при переході а2→а3, формування y5=1 в поточному переході і утримання його в подальшому протягом переходу а3→а4 призведе лише до збільшення тривалості зазначеного сигналу вдвічі. При цьому, в будь-якому з двох варіантів подання сигналу y5, запис даних до регістра RG2 відбудеться лише при його переключенні з рівня “лог.1” в рівень “лог.0”, що відповідає позиції стану а4 в алгоритмі. Тому для зазначеного переходу y5=*;

  • при переході а3→а4 виконується операція запису суми з виходів суматора SM, до регістра RG2, що зумовлює активний рівень сигналу керування паралельним завантаженням даних до регістра RG2: y5=1. Для реалізації запису даних до регістра RG2 важливим є стабільне збереження значень записуваних даних на входа регістра, що можливе лише за умови утримання попереднього способу комутації мультиплексорів МХ1 і МХ2 і зумовлює потребу в активності значень сигналів y3 і y4: y3=y4=1 (нагадаємо, що перехід зазначених сигналів в неактивний стан зумовить перекомутацію мультиплексорів МХ1 і МХ2 і внаслідок цього значення на виходах суматора SM може змінитись до того, як завершиться процес його запису в регістр Рг2). Як і в попередньому переході, зсув даних в регістрах на цьому етапі недопустимий, тому сигнали y1 і y2 повинні бути неактивними: y1=y2=0. Оскільки в наступній вершині алгоритму (вершина 5) виконується перевірка значення в лічильнику на рівність нулю, під час переходу а3→а4 необхідно завершити операцію декременту лічильника ST шляхом переведення керуючого сигналу цієї мікрооперації в неактивний стан: y6=0;

  • при переході а4→а2 виконується перевірка значення в лічильнику ST на рівність нулю, тому важливо забезпечити збереження даних в лічильнику без змін – блокуємо можливість виконання операції декременту лічильника ST формуванням неактивного значення керуючого сигналу y6: y6=0. Для проведення подальших обчислень суттєво забезпечити збереження значень в регістрах RG1 і RG2, тому сигнали, які можуть впливати на записані до цих регістрів значення, зроблені неактивними: y1=y2=y5=0. Характер комутації сигналів мультиплексорами MX1 і MX2 є несуттєвим, оскільки операцій запису або підготовки до запису даних в регістри на цьому етапі не передбачено – сигнали керування роботою мультиплексорів можуть приймати довільне значення: y3=y4=*;

  • при переході а4→а4 (очікування зняття сигналу “Пуск”) також важливо забезпечити збереження даних в лічильнику без змін, інакше з циклічного переходу а4→а4 може відбутися перехід а4→а2 (якщо значення в лічильнику перестане бути рівним нулю) з подальшим зациклюванням роботи проектованого процесора і втратою отриманого результату, тому продовжуємо блокування можливості виконання операції декременту лічильника ST формуванням неактивного значення керуючого сигналу y6: y6=0. Оскільки результат на цьому етапі вже сформований і знаходиться в регістрі RG2, подальше зберігання значення 0.5А в регістрі RG1 немає сенсу, тому допускаємо його втрату і приймаємо можливість формування довільного значення керуючого сигналу y1: y1=*. З іншої сторони, для збереження значення отриманого результату в регістрі RG2 запобігаємо можливості втрати результату утриманням сигналів керування цим регістром в неактивному стані: y2=y5=0. Характер комутації сигналів мультиплесорами залишається несуттєвим: y3=y4=*;

  • при переході а4→а1 (завершення робочого циклу процесора) єдиною умовою залишається збереження можливості зчитування результату операції, тому продовжуємо запобігати можливості втрати результату утриманням сигналів керування регістром RG2 в неактивному стані: y2=y5=0. Всі інші сигнали не впливають на роботу регістра RG2, тому вони можуть приймати довільне значення: y1=y3=y4=y6=*.

Примітка 10.5 Для переходів а4→а2 і а4→а4 прийнято y6=0. Якщо враховувати, що операція декременту задіяного в схемі лічильника ST відбувається по спаду керуючого сигналу, то для зазначених переходів можна допустити формування активного високого рівня сигналу y6 (тобто, позначити в алгоритмі y6=*), оскільки в обох випадках протягом відповідного переходу операція декременту зазначеного лічильника не буде завершеною: при переході а4→а2 операція декременту завершиться лише після наступного переходу а2→а3; при переході а4→а4 завершення операції взагалі не передбачено і воно може відбутись в переходах а4→а1 або а1→а1, коли поточне значення лічильника ST втратить актуальність. Недоліком такого підходу є можливість обчислення хибного результату або його втрати у випадку виникнення збоїв утримання рівня y6=1 через виконання невірної кількості циклів а2→а3→а4→а2. Оскільки переходи а4→а2 і а4→а4, відповідно до наведеного мікроалгориму виконання операції, виконуються багатократно, то постає питання доцільності спроб зменшення апаратної складності керуючого автомата за рахунок ризику зменшення надійності роботи проектованого процесора в цілому.

Примітка 10.6 Якщо домовитись, що зчитування результату виконується в циклі а4→а4, як це передбачено завданнями лабораторних робіт , то при переході а4→а1 можна прийняти y2=y5=* (за умови, що довільні комбінації вхідних сигналів не є забороненими для обраного в якості RG2 типу регістрів)

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