logo
AOM / Мельник А

8.3.1. Організація роботи пристрою мікропрограмного керування

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

Основними принципами, які покладені в основу побудови пристрою мікропрограм­ного керування, є наступні:

  1. Всі мікронакази, які повинні бути виконані в одному такті роботи комп'ютера, збираються в одне керуюче слово, яке називають мікрокомандою.

  2. Кожній команді з системи команд комп'ютера ставиться у відповідність послідов­ність мікрокоманд, необхідних для її виконання, тобто мікропрограма виконання ко­манди в комп'ютері.

  3. Всі мікрокоманди зберігаються в пам'яті. Це може бути основна пам'ять комп'юте­ра, але в більшості комп'ютерів для зберігання мікрокоманд використовується окрема пам'ять, яку називають пам'яттю мікрокоманд.

  4. Для реалізації деякої команди необхідно зчитати з пам'яті мікрокоманд відповідну послідовність мікрокоманд (мікропрограму) та подати розподілену в часі послідовність керуючих сигналів на відповідні керуючі входи вузлів комп'ютера.

На рис. 8.17 показано основний елемент пристрою мікропрограмного керування -пам'ять мікрокоманд, та вузли на її входах і виходах, а саме мікропрограмний лічильник (МКПЛ) для зберігання адреси мікрокоманди та регістр мікрокоманди (РгМК).

298

На рис. 8.17 показано і формат самої мікрокоманди, до складу якої входять наступні поля: код мікрооперації, за яким формуються мікронакази, що виконуються в одному такті роботи комп'ютера, код умов, котрий вказує, при яких умовах може бути змінено послідовність читання мікрокоманд з пам'яті, а також адреса наступної мікрокоманди.

Структура пристрою мікропрограмного керування представлена на рис. 8.18.

В регістрі команди РгК зберігається команда, яка підлягає виконанню в комп'ютері. За її кодом операції КОП з пам'яті адрес перших мікрокоманд мікрокодів зчитується адреса пам'яті мікрокоманд, в якій знаходиться перша мікрокоманда із послідовності мікрокоманд (мікропрограми, або як її іще називають, мікрокоду) її виконання. Пам'ять мікрокоманд в більшості випадків реалізується на основі постійного запам'ятовуючого пристрою ПЗП, хоча може бути реалізована і на основі оперативного запам'ятовуючого пристрою ОЗП, особливо на етапах відлагодження комп'ютера. В цій пам'яті зберігають­ся мікрокоманди для всіх команд комп'ютера, а також для початку роботи комп'ютера

299

та для обробки переривань. В схемі формування адреси СФА, до складу якої входять пам'ять адрес перших мікрокоманд мікрокодів, суматор-мультиплексор СМ-МП, мікро-програмний лічильник МКПЛ та комбінаційна схема КС формування переходу, визна­чається адреса комірки пам'яті мікрокоманд, в якій знаходиться наступна мікрокоман-да. Ця адреса формується з врахуванням полів адреси наступної мікрокоманди АНМК та коду умови з регістра мікрокоманди, а також сигналів стану, які поступають з регі­стра слова стану програми. Мікрокоманда зчитується із пам'яті в регістр мікрокоманди РгМК, в якому вона зберігається протягом одного такту роботи комп'ютера. На осно­ві коду мікрооперації КМКО з регістра мікрооперації на виході дешифратора ДШМКО формуються сигнали керування.

Робота компонента пристрою керування синхронізується з контролера послідовнос­ті мікрокоманд, який отримує ззовні тактові імпульси з генератора тактових імпульсів, а також код режиму роботи комп'ютера. Контролер послідовності мікрокоманд є ядром пристрою керування. Він має два окремих режими роботи: звичайний режим та режим запуску комп'ютера.

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

1. Керування процесом формування адреси мікрокоманди. Ця адреса одержується шляхом:

Керування зчитуванням мікрокоманд з пам'яті мікрокоманд за адресами з мікро-програмного лічильника МКПЛ та їх записом до регістра мікрокоманд РгК.

Стимулювання дешифратора мікрооперацій ДШМКО, який здійснює дешифруван­ня коду мікрооперації КМКО з відповідного поля РгМК, та видає сигнали керування (мікронакази).

Кожна команда процесора ініціює виконання відповідної мікропрограми. Коли при­стрій керування закінчує виконання мікропрограми однієї команди комп'ютера, про що його контролер послідовності мікрокоманд інформується сигналом з виходу дешифра­тора мікрооперацій ДШМКО, він вибирає з основної пам'яті наступну команду, та за­писує її в регістр команди РгК сигналом з виходу дешифратора мікрооперацій ДШМКО, після чого приступає до її виконання шляхом зчитування з пам'яті мікрокоманд наступ­ної мікропрограми.

В ході виконання різних команд можуть використовуватися загальні ділянки мікро-програм, які називаються мікропідпрограмами.

300

В режимі запуску комп'ютера пристрій керування встановлює вміст різних регістрів комп'ютера в початковий стан шляхом їх скиду, або запису до них деяких конкретних значень. Після цього він записує апаратно генеровану адресу до програмного лічильни­ка ПЛ (не мікропрограмного лічильника МКПЛ), та починає виконання програми. Для деяких комп'ютерів апаратно генерована адреса - це вектор скиду, який є адресою пер­шої команди комп'ютера, яка виконується після старту. Для інших комп'ютерів апаратно генерована адреса - це адреса вектора скиду, який є адресою першої команди комп'юте­ра, яка виконується після старту. В цьому випадку пристрій керування спочатку пови­нен вибрати з основної пам'яті вектор скиду, та записати його до програмного лічиль­ника ПЛ.