Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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 - кількість мікронаказів, необхідних для керування вузлами комп'ютера. В цьому випадку відпадає потреба в де­шифраторі мікрокоманд.