Пристрій керування Уілкса
Першим ідею мікропрограмного керування висловив у 1951 році М. Уилкс (M.V. Wilkes). Перша конструкція мікропрограмного пристрою керування зображена на мал.5.5. Основним вузлом пристрою була матриця провідників, у деяких вузлах якої упаяні діоди. Протягом машинного циклу на один з горизонтальних провідників подавався тактовий імпульс. Цей імпульс проходив на ті вертикальні провідники, що були з'єднані діодами з обраним горизонтальним провідником (на схемі діоди показані жирними крапками). У першій групі вертикальних провідників формувалися сигнали, що керують роботою процесора, а в другій — сигнали, що представляють адресу горизонтального провідника, який повинний бути обраним у наступному циклі. Таким чином, кожен рядок матриці представляв мікрокоманду, а вся матриця — те, що тепер ми називаємо керуючою пам'яттю. На початку циклу адреса обраного рядка міститься в регістрі R1. Виходи розрядів регістра підключені до дешифратора, що стробірується тактовими імпульсами. Черговий тактовий імпульс формує сигнал на одному з виходів дешифратора, що приєднаний до визначеного горизонтального провідника матриці. У залежності від керуючих сигналів у регістр R2 заноситься або код команди з регістра команд IR, або код, сформований другою групою вертикальних провідників матриці. Потім по наступному тактовому імпульсу код з R2 переноситься в R1. Використання пари регістрів забезпечує затримку установки нового коду в R1 на один такт, що необхідно, оскільки дешифратор являє собою комбінаційну схему без пам'яті. Фактично в цій схемі реалізований горизонтальний формат мікрокоманд (див. мал. 5.1,а). Особливість її полягає в тому, що в кожній мікрокоманді присутня адреса наступної мікрокоманди, незалежно від того, виконується умовний перехід чи ні. Умовний перехід у схемі Уілкса реалізується в такий спосіб: горизонтальний провідник при приєднанні до другої частини матриці роздвоюється, причому в крапці розгалуження знаходиться вентиль, на другий вхід якого подається сигнал умови (тобто вихід визначеного прапора). Запропонувавши цю схему, Уілкс також навів у своїй роботі приклад реалізації з її допомогою мікропрограм керування простим процесором. Нижче ми розглянемо даний приклад, оскільки сучасні пристрої мікропрограмного керування побудовані практично по тому ж принципу, хоча на зовсім іншій елементній базі. Процесор гіпотетичного комп'ютера має у своєму складі наступні регістри: • А — регістр множника; • В — акумулятор (молодші розряди); • С — акумулятор (старші розряди); • D — регістр зрушення.
Крім того, у складі пристрою керування мається ще три регістри і два прапори. Регістри мають наступне призначення: • Е — регістр адреси пам'яті (MAR) і регістр тимчасового збереження даних; • F — лічильник команд; • G — другий регістр тимчасового збереження даних, лічильник. У табл. 5.1 представлений набір машинних команд цього гіпотетичного процесора, а в табл. 5.2 — у символічній формі набір мікрокоманд, що реалізовані в пристрої керування. Набір включає 38 мікрокоманд, яких досить, щоб цілком описати функціонування системи.
Умовні позначки: АС — акумулятор; АС1 — старші розряди акумулятора; АС2 — молодші розряди акумулятора; n — комірка пам'яті, за адресою n; З (X) — уміст X, де X — регістр або комірка пам'яті Таблиця 15.2 Мікрокоманди пристрою керування гіпотетичного процесора Уілкса
— Зрушення вправо. Схема АЛП побудована таким чином, що при зрушенні вправо молодший розряд регістра З пересилається в старший розряд регістра В, а старший (знаковий) розряд регістра З дублюється. — Зрушення вліво. Схема АЛП побудована таким чином, що при зрушенні вліво старший розряд регістра В пересилається в молодший розряд регістра С. Умовні позначки: ПВв — пристрій вводу; ПВив — пристрій виводу При символічному представленні мікрокоманд у табл. 5.2 запис С->D означає, що виходи регістра С підключаються до входів регістра D; запис (D+A)—>С означає, що виходи регістра D підключаються до одним входів суматора, виходи регістра А — до інших входів суматора, а вихід суматора — до входів регістра С; число в парних лапках (наприклад, '18') — константа, що підключається до входів молодших розрядів зазначеного регістра. У першому стовпчику таблиці представлені адреси мікрокоманд (номера рядків у матриці). Деякі адреси відповідають машинним командам, зазначеним ліворуч від адреси. Так, якщо поле коду операції в регістрі IR відповідає команді додавання (команді А), то виконується мікрокоманда за адресою 5. У наступних двох колонках представлені мікрооперації, виконувані в АЛП й у пристрої керування. Кожному символьному вираженню відповідає свій набір керуючих сигналів — розрядів мікрокоманди. Четвертий і п'ятий стовпчики мають відношення до установки й опитування двох прапорів. Наприклад, символічний запис (2)Es у четвертому стовпчику означає, що прапор 2 встановлюється у відповідності до значення знакового розряду регістра Е. Якщо в п'ятому стовпчику зазначений номер прапора, то в шостому і сьомому стовпчиках вказуються адреси двох альтернативних мікрокоманд, що повинні виконуватися наступними. Перша виконується, якщо прапор не встановлений, а друга — якщо встановлений. Якщо в п'ятому стовпчику прапор не зазначений, то в шостому представлена єдина адреса наступної мікрокоманди. Мікрокоманди з 0-й по 4-у реалізують фазу витягу машинної команди. Мікрокоманда 4 підключає виходи коду команди до входів дешифратора, що формує адресу першої мікрокоманди відповідної мікропрограми.
|