21.1 Функції та методи побудови пристрою керування

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

Пристрій керування є одним з вузлів процесора. Як приклад на рис. 21.1 показана взаємодія в процесорі між пристроєм керування та арифметико-логічним пристроєм і регістровою пам’яттю.

Рисунок 21.1 – Взаємодія пристрою керування з іншими вузлами процесора


 

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

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

Другий метод, який дістав назву принципу мікропрограмного керування, передбачає формування керуючих сигналів за вмістом регістра мікрокоманд, в який мікрокоманди записуються із пам’яті мікрокоманд. Шляхом послідовного зчитування мікрокоманд із пам’яті в цей регістр організується потрібна послідовність керуючих сигналів.

Крім пристрою керування процесора в комп’ютері можуть використовуватись пристрої керування вузлами комп’ютера, наприклад, пристрої керування операційними пристроями АЛП, пристрій керування процесора введення-виведення і т. д. Принципи побудови вказаних пристроїв є ідентичними.

  21.2 Пристрій керування з жорсткою логікою

Типова структурна схема пристрою керування з жорсткою логікою (в англійській термінології hardwired control) представлена на рис. 21.2.

Рисунок 21.2 – Типова структурна схема пристрою керування з жорсткою логікою


 

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

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

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

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

- Перший метод - це стандартний алгоритмічний підхід до проектування послідовнісних схем. Його називають методом таблиць станів, оскільки передбачає побудову таблиць станів пристрою керування.

- Другий метод є евристичним і ґрунтується на використанні тактованих елементів часової затримки для побудови часової діаграми керуючих сигналів.

- Спорідненим з другим є третій метод, який передбачає використання лічильників для побудови часової діаграми керуючих сигналів.

Перший метод є найбільш формалізованим і дозволяє застосувати методи мінімізації кількості вентилів та елементів пам’яті. Два інші методи є менш формалізовані і передбачають синтез пристрою керування з часової діаграми сигналів керування.

 21.3 Пристрій мікропрограмного керування

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

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

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

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

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

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

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

Рисунок 21.3 – Пам’ять мікрокоманд з регістром адреси мікрокоманди на вході та регістром мікрокоманди на виході


 

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

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

Рисунок 21.4 – Структура пристрою мікропрограмного керування


 

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

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

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

1. Керування процесом формування адреси мікрокоманди. 

Ця адреса одержується шляхом:

запису в мікропрограхмний лічильник МКПЛ адреси першої мікрокоманди мікропрограми виконання відповідної команди з пам’яті адрес перших мікрокоманд мікрокодів;

запису в мікропрограмний лічильник МКПЛ адреси наступної мікрокоманди мікропрограми виконання відповідної кохманди після виконання в суматорі-мульти- плексорі СМ-МП операції приросту вмісту МКПЛ на 1;

- запису в мікропрограмний лічильник МКПЛ адреси наступної мікрокоманди АНМК з адресного поля РгМК, з врахуванням коду умови КУ з поля умовного переходу РгМК, та коду стану програми з регістра слова стану програми, що здійснюється в комбінаційній схемі КС формування переходу.

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

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

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

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

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

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

Розглянемо цей тип організації мікропрограм в пам’яті мікрокоманд. Після того, як пристрій керування вибирає машинну команду з основної пам’яті і розміщує її в регістрі команди РгК, він повинен генерувати так звану адресу точки входу для коду операції команди КОП, яка є адресою першої мікрокоманди мікропрограми. Наприклад, якщо пристрій керування вибирає мікрокоманду для коду операції КОПІ, він повинен генерувати адресу АІ, як показано на рис. 21.5. Формування адреси точки входу є задачею пам’яті адрес перших мікрокоманд мікрокодів блоку обчислення адреси (рис. 21.4). Після того, як пристрій керування формує адресу точки входу, контролер послідовності мікрокоманд збільшує вміст мікропрограмного лічильника МКПЛ, щоб одержати адресу кожної наступної мікрокоманди.

Рисунок 21.5 – Розміщення мікрокоманд послідовно в пам’яті


 

Після виконання останньої мікрокоманди в мікропрограмі (тобто, після завершення виконання однієї машинної команди), контролер послідовності мікрокоманд повинен ще раз виконувати мікропрограму вибірки наступної команди з основної пам’яті. На рис. 21.5 це є перехід до комірки Авк пам’яті мікрокоманд. Постає питання - як може контролер послідовності мікрокоманд керувати розгалуженнями в межах мікропрограм пам’яті мікрокоманд? На рис. 21.4 показано один з варіантів вирішення цього завдання. До цих пір ми розглядали мікропрограми без розгалужень. Однак існують мікрокоманди переходу, які містять адресу переходу та мікронакази для схеми формування адреси СФА додатково до мікронаказів для інших вузлів комп’ютера. Контролер послідовності мікрокоманд разом з схемою формування адреси СФА, використовує адресу наступної мікрокоманди (АНМК) та код умови переходу (КУ) для визначення адреси наступної мікрокоманди.

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

 21.4 Порівняння пристроїв керування з жорсткою логікою та пристроїв мікропрограмного керування

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

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

- Шляхом заміни мікропрограми в пам’яті мікрокоманд комп’ютер можна модифікувати з метою покращання технічних характеристик чи розширення функцій, і, тим самим, продовжити термін його використання.

- Можуть бути використані наробки мікропрограм в наступних поколіннях комп’ютерів однієї сім’ї.

- Мікропрограмування є простішим, ніж керування з жорсткою логікою, що спрощує розробку пристрою керування.

- Простішим є обслуговування мікропрограмованих комп’ютерів та їх відлагодження завдяки простішій заміні мікрокоманд та мікропрограм.

В швидкодії мікропрограмне керування програє керуванню з “жорсткою” логікою. Тому, завдяки створенню мов опису апаратних засобів комп’ютера та потужних програмних засобів високорівневого проектування, пристрої керування з жорсткою логікою знайшли ширше застосування в сучасних комп’ютерах.

ОТЖЕ, пристрій керування є одним з вузлів процесора. Відомі два основних методи побудови пристроїв керування: пристрої керування з жорсткою логікою та пристрої мікропрограмного керування. В комп’ютері, крім пристрою керування центрального процесора, можуть використовуватись пристрої керування вузлами комп’ютера, наприклад, пристрої керування операційними пристроями АЛП, пристрій керування процесора введення-виведення і т. д. Принципи побудови вказаних пристроїв є ідентичними.