ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6826
Скачиваний: 22
298
На рис. 8.17 показано і формат самої мікрокоманди, до складу якої входять наступні поля: код мікрооперації, за яким формуються мікронакази, що виконуються в одному такті роботи комп'ютера, код умов, котрий вказує, при яких умовах може бути змінено послідовність читання мікрокоманд з пам'яті, а також адреса наступної мікрокоманди.
Структура пристрою мікропрограмного керування представлена на рис. 8.18.
В регістрі команди РгК зберігається команда, яка підлягає виконанню в комп'ютері. За її кодом операції КОП з пам'яті адрес перших мікрокоманд мікрокодів зчитується адреса пам'яті мікрокоманд, в якій знаходиться перша мікрокоманда із послідовності мікрокоманд (мікропрограми, або як її іще називають, мікрокоду) її виконання. Пам'ять мікрокоманд в більшості випадків реалізується на основі постійного запам'ятовуючого пристрою ПЗП, хоча може бути реалізована і на основі оперативного запам'ятовуючого пристрою ОЗП, особливо на етапах відлагодження комп'ютера. В цій пам'яті зберігаються мікрокоманди для всіх команд комп'ютера, а також для початку роботи комп'ютера
299
та для обробки переривань. В схемі формування адреси СФА, до складу якої входять пам'ять адрес перших мікрокоманд мікрокодів, суматор-мультиплексор СМ-МП, мікро-програмний лічильник МКПЛ та комбінаційна схема КС формування переходу, визначається адреса комірки пам'яті мікрокоманд, в якій знаходиться наступна мікрокоман-да. Ця адреса формується з врахуванням полів адреси наступної мікрокоманди АНМК та коду умови з регістра мікрокоманди, а також сигналів стану, які поступають з регістра слова стану програми. Мікрокоманда зчитується із пам'яті в регістр мікрокоманди РгМК, в якому вона зберігається протягом одного такту роботи комп'ютера. На основі коду мікрооперації КМКО з регістра мікрооперації на виході дешифратора ДШМКО формуються сигнали керування.
Робота компонента пристрою керування синхронізується з контролера послідовності мікрокоманд, який отримує ззовні тактові імпульси з генератора тактових імпульсів, а також код режиму роботи комп'ютера. Контролер послідовності мікрокоманд є ядром пристрою керування. Він має два окремих режими роботи: звичайний режим та режим запуску комп'ютера.
В звичайному режимі контролер послідовності мікрокоманд генерує сигнали керування роботою пристрою керування. Тактові імпульси на його вході забезпечують його часову синхронізацію, що дозволяє генерувати наступні послідовності сигналів:
1. Керування процесом формування адреси мікрокоманди. Ця адреса одержується шляхом:
-
запису в мікропрограмний лічильник МКПЛ адреси першої мікрокоманди мі-кропрограми виконання відповідної команди з пам'яті адрес перших мікрокоманд мікрокодів;
-
запису в мікропрограмний лічильник МКПЛ адреси наступної мікрокоманди мікропрограми виконання відповідної команди після виконання в суматорі-мульти-плексорі СМ-МП операції приросту вмісту МКПЛ на 1;
-
запису в мікропрограмний лічильник МКПЛ адреси наступної мікрокоманди АНМК з адресного поля РгМК, з врахуванням коду умови КУ з поля умовного переходу РгМК, та коду стану програми з регістра слова стану програми, що здійснюється в комбінаційній схемі КС формування переходу.
Керування зчитуванням мікрокоманд з пам'яті мікрокоманд за адресами з мікро-програмного лічильника МКПЛ та їх записом до регістра мікрокоманд РгК.
Стимулювання дешифратора мікрооперацій ДШМКО, який здійснює дешифрування коду мікрооперації КМКО з відповідного поля РгМК, та видає сигнали керування (мікронакази).
Кожна команда процесора ініціює виконання відповідної мікропрограми. Коли пристрій керування закінчує виконання мікропрограми однієї команди комп'ютера, про що його контролер послідовності мікрокоманд інформується сигналом з виходу дешифратора мікрооперацій ДШМКО, він вибирає з основної пам'яті наступну команду, та записує її в регістр команди РгК сигналом з виходу дешифратора мікрооперацій ДШМКО, після чого приступає до її виконання шляхом зчитування з пам'яті мікрокоманд наступної мікропрограми.
В ході виконання різних команд можуть використовуватися загальні ділянки мікро-програм, які називаються мікропідпрограмами.
300
В режимі запуску комп'ютера пристрій керування встановлює вміст різних регістрів комп'ютера в початковий стан шляхом їх скиду, або запису до них деяких конкретних значень. Після цього він записує апаратно генеровану адресу до програмного лічильника ПЛ (не мікропрограмного лічильника МКПЛ), та починає виконання програми. Для деяких комп'ютерів апаратно генерована адреса - це вектор скиду, який є адресою першої команди комп'ютера, яка виконується після старту. Для інших комп'ютерів апаратно генерована адреса - це адреса вектора скиду, який є адресою першої команди комп'ютера, яка виконується після старту. В цьому випадку пристрій керування спочатку повинен вибрати з основної пам'яті вектор скиду, та записати його до програмного лічильника ПЛ.
8.3.2. Організація мікропрограм в пам'яті мікрокоманд
Є багато шляхів можливої організації мікропрограм в пам'яті мікрокоманд. Один з них, ілюстрований на рис. 8.23, передбачає розміщення мікрокоманд в пам'яті послідовно. Кожна машинна команда має свою власну послідовність мікрокоманд в пам'яті мікрокоманд. Додатково пам'ять мікрокоманд містить мікрокоманди для проведення вибірки команд з основної пам'яті, запуску переривання, та деяких інших дій керування.
Розглянемо цей тип організації мікропрограм в пам'яті мікрокоманд. Після того, як пристрій керування вибирає машинну команду з основної пам'яті і розміщує її в регістрі команди РгК, він повинен генерувати так звану адресу точки входу для коду операції команди КОП, яка є адресою першої мікрокоманди мікропрограми. Наприклад, якщо пристрій керування вибирає мікрокоманду для коду операції КОП 1, він повинен генерувати адресу АІ, як показано на рис. 8.19. Формування адреси точки входу є задачею пам'яті адрес перших мікрокоманд мікрокодів блоку обчислення адреси (рис. 8.18). Після того, як пристрій керування формує адресу точки входу, контролер послідовності мікрокоманд збільшує вміст мікропрограмного лічильника МКПЛ, щоб одержати адресу кожної наступної мікрокоманди.
301
Після виконання останньої мікрокоманди в мікропрограмі (тобто, після завершення виконання однієї машинної команди), контролер послідовності мікрокоманд повинен ще раз виконувати мікропрограму вибірки наступної команди з основної пам'яті. На рис. 8.19 це є перехід до комірки Авк пам'яті мікрокоманд. Постає питання - як може контролер послідовності мікрокоманд керувати розгалуженнями в межах мікропрограм пам'яті мікрокоманд? На рис. 8.18 показано один з варіантів вирішення цього завдання. До цих пір ми розглядали мікропрограми без розгалужень. Однак існують мікрокоманди переходу, які містять адресу переходу та мікронакази для схеми формування адреси СФА додатково до мікронаказів для інших вузлів комп'ютера. Контролер послідовності мікрокоманд разом з схемою формування адреси СФА, використовує адресу наступної мікрокоманди (АНМК) та код умови переходу (КУ) для визначення адреси наступної мікрокоманди.
Для керування переходом в коді мікрооперації КМКО кожної мікрокоманди наявна інформація про належність цієї мікрокоманди до мікрокоманд переходу. Тому в кожному такті на виході дешифратора мікрокоманд ДШМКО генерується мікронаказ, який інформує контролер послідовності мікрокоманд про належність, або неналежність, даної мікрокоманди до мікрокоманд переходу. Якщо це мікрокоманда переходу, то контролер послідовності мікрокоманд повідомляє схему формування адрес про необхідність формування адреси переходу, а не приріст на одиницю вмісту мікропрограмного лічильника МКПЛ. При цьому, якщо це безумовний перехід, то перехід відбувається за адресою з адресного поля мікрокоманди. Якщо ж це умовний перехід, то адреса наступної мікрокоманди формується з врахуванням коду умов переходу та коду стану програми, який поступає з регістра стану програми регістрової пам'яті процесора.
8.3.3. Горизонтальне та вертикальне мікропрограмування
Завдання вибору формату мікрокоманди є досить складним. З одного боку, мікрокоманда повинна вміщувати коди керування вузлами комп'ютера, забезпечувати організацію послідовності мікрокоманд в мікропрограму та можливість зміни порядку мікрокоманд в мікропрограмі. З іншого боку, ці функції повинні виконуватись з мінімальною кількістю бітів в мікрокоманді, з мінімальною кількістю слів з пам'яті мікрокоманд, та з мінімальним часом на виконання мікропрограми. Розглянемо деякі питання вибору ефективного формату мікрокоманди.
За способом формування керуючих сигналів розрізняють горизонтальне і вертикальне мікропрограмування.
При використанні горизонтального мікропрограмування кожний розряд поля коду мікрооперації мікрокоманди формує один керуючий сигнал (мікронаказ) для відповідного входу керування функціонального вузла комп'ютера (рис. 8.20). Кількість розрядів мікрокоманди визначається з виразу М = n+k+m, де n - розрядність адреси мікрокоманди, яка рівна n = log2N, де N - кількість мікрокоманд в пам'яті, k - кількість мікронаказів, необхідних для керування вузлами пристрою керування, m - кількість мікронаказів, необхідних для керування вузлами комп'ютера. В цьому випадку відпадає потреба в дешифраторі мікрокоманд.