
- •Архітектура та програмне забезпечення комп’ютера Програмування як наукова дисципліна і професійна діяльність
- •Архітектурні особливості комп'ютерів Класична структура комп’ютера
- •Поняття архітектури комп’ютера
- •Технологія виконання команд мікропроцесором
- •Арифметичні основи комп’ютера
- •Загальні відомості про системи числення
- •Системи числення, застосовувані в комп’ютерах
- •Переведення чисел із однієї позиційної системи числення в іншу
- •Подання даних в комп’ютері Структура внутрішньої пам’яті комп’ютера
- •Подання числових даних
- •Кодування чисел
- •Двійкова арифметика в комп'ютерах
- •Кодування текстових даних
- •Кодування графічних даних
- •Кодування звукової інформації
- •Види програмного забезпечення комп'ютерів Класифікація програмного забезпечення
- •Основи роботи операційних систем
Технологія виконання команд мікропроцесором
Як зазначалося раніше, для виконання програми необхідно, щоб її команди і дані знаходилися в ОП. Функціональну схему взаємодії мікропроцесора і ОП при виконанні програми можна представити наступним чином (рис. 5):
Рис. 5. Схема взаємодії мікропроцесора і ОП
При цьому послідовність виконання дій є наступною:
комп'ютер за допомогою пристроїв введення приймає інформацію у вигляді програм та даних і записує її в ОП;
дані, що зберігається в ОП, у відповідності із командами програми під керуванням КП пересилаються в АЛП для подальшої обробки;
результати, отримані після виконання відповідних команд, розміщуються в ОП і при потребі спрямовуються на пристрої виведення.
Команда комп'ютера фон-нейманівської архітектури представляє собоюпослідовність двійкових розрядів, розділену на групи, наприклад,
01 |
101 |
000 |
000 |
Її формат складається з двох частин - командної і адресної. В командній частині вказується код операції (КОП), що зумовлює певну дію. Адресна частина містить адреси операндів (величин), що беруть участь у операції.
Залежно від вказаних у команді адрес розрізняють одноадресні, двоадресні, триадресні та чотириадресні команди. Одноадресна команда - зручна інструкція для таких дій, як передача значення змінної з пристрою вводу в елемент пам'яті з заданою адресою, передача вмісту комірки із заданою адресою в АЛП, складання вмісту АЛП з вмістом заданої комірки і т.п. Длявиконання операції додавання використовується триадресна команда (рис. 6). У чотирьохадресних командах четверта адреса, зазвичай, використовується для вказання місця, де розташована наступна виконувана інструкція.
КОП |
адреса 1 (першого доданка) |
адреса 2 (другого доданка) |
адреса 3 (суми) |
Рис. 6. Структура команди додавання
Для представлення команд у вигляді чисел необхідно мати дві кодуючі таблиці.
Перша таблиця (табл. 1) дозволяє поставити у відповідність операціям деякікоди. Такого типу таблиця є приналежністю конкретного типу ЕОМ, тобто "закладена" в неї при проектуванні.
Таблиця1. Фрагмент системикомандабстрактноїЕОМ
Дії, що виконуються командою |
Код команди |
Введення (запис) числа ізпристрою введення-виведенняв А1 |
01 |
Виведення А1 на ПВВ |
02 |
Скласти А1 з А2 і результат помістити в А3 |
03 |
Відняти A2 із А1 і результат помістити в A3 |
04 |
Помножити А1 на А2 і результат помістити в А3 |
05 |
Розділити А1 на А2 і результат помістити в А3 |
06 |
. . . |
. . . |
Закінчити виконання програми |
00 |
Кількість рядків у таблиці відповідає потужності множини команд, що складають систему командцієї ЕОМ.Коди операцій, як і структура команди, визначаються при проектуванні ЕОМ.
Друга таблиця зв'язує адреси пам'яті (номери комірок) з іменами змінних, що використовуються при вирішенні конкретної задачі. Зрозуміло, що така таблиця не може бути задана так само, як таблиця кодів операцій, оскільки кількість задач необмежена. Вона повинна складатися для кожної задачі окремо і процес її складання називаєтьсярозподілом пам'яті.
Нехай необхідно виконати обчислення величини а, яка задана виразома = (b+c)dза умови, що вільною є пам'ять ЕОМ, починаючи з 100-ї комірки. Тоді під змінні можна "розподілити пам'ять", наприклад, таким чином (вибір в загальному випадку довільний): зміннійапоставити у відповідність комірку з адресою 100, зміннійb- комірку з адресою 101 і т.д. (табл. 2), зміннаrбуде призначена для зберігання проміжних результатів.
Таблиця 2. Розподіл пам'яті
-
Ідентифікатор змінної
Адреса комірки ОП
a
100
b
101
c
102
d
103
r
106
При запису кодів команд, які забезпечують обчислення величини а, застосовується спеціальна форма запису (табл. 3).
Таблиця 3. Форма запису кодів команд
КОП |
А1 |
А2 |
А3 |
Примітка |
01 |
101 |
000 |
000 |
Увести значення змінної b до комірки з адресою 101 |
01 |
102 |
000 |
000 |
Увести значення змінної c до комірки з адресою 102 |
01 |
103 |
000 |
000 |
Увести значення змінної d до комірки з адресою 103 |
03 |
101 |
102 |
106 |
Додати значення змінних b і c, результат помістити в комірку з адресою 106, яка відповідає змінній r |
05 |
106 |
103 |
100 |
Помножити значення змінних r і d, помістити результат у комірку з адресою 100 (у змінну а) |
02 |
100 |
000 |
000 |
Вивести значення змінної а з комірки з адресою 100 |
00 |
000 |
000 |
000 |
Кінець обчислень (адреси не потрібні) |
Правила складання такої таблиці очевидні за умови, що А1є адресою першогооперанда,А2- адресою другого операнда іА3- адресою результату.
Записана таким чином послідовність команд (програма) являє собою послідовність чисел, які можна розмістити в пам'яті ЕОМ. Команди програми виконуються послідовно, починаючи з першої. Для виконання команди мікропроцесор переписує з ОП до своїх регістрів необхіднідані (операнди) і виконує вказану дію (операцію).
Основні регістри мікропроцесора:
Регістр команд(РК) -служитьдля тимчасового зберігання команди в процесі її виконання; забезпечує поділ коду команди на код операції та коди адрес на фізичному (схемному) рівні;
Регістри даних(РД);
Регістр результату(РР);
Регістр стану програми(РСП) - служить для виявлення признаку результату (4 біти):
-
3
2
1
0
= 0
< 0
> 0
переповнення
Наприклад, 1000 = 0
1100 <=0
Значення ознаки результату може аналізуватися комп'ютером для прийняття рішення стосовно подальшої послідовності виконання програм.
Лічильник команд(ЛК) -формуєта тимчасово зберігає адресу виконуваної команди.
Нехай програма розміщена у вільній зоні пам'яті починаючи, наприклад, з комірки 501 (таке розміщення, зазвичай, здійснюється за допомогою складання номера команди з константою або так званим зміщенням, яке в даному випадку дорівнює 500). Тоді для автоматичного виконання програми досить занести в ЛК число 501 (так звану пускову адресу) і включити режим автоматичного виконання програми. При цьому завжди буде проводиться один і той самий набір дій - цикл виконання команди:
Мікропроцесор звертається до ОП за адресою із ЛК і переписує команду в РК.
АЛП дешифрує код операції.
Якщо код операції команди не наказує припинення обчислень, то виконується пункт 4, інакше пункт 9.
За допомогою дешифрованого коду операції АЛП налаштовується на виконання заданої операції.
Завказанимиу команді адресамиоперандівздійснюєтьсяїх пошук і передача в РД.
Виконання команди у відповідності з кодом операції і запис результату у РР.Якщо необхідно, результат заноситься в елемент пам'яті з адресою, зазначеною в команді.
У РСП формується ознака результату.
Вміст ЛК модифікується (у найпростішому випадку - збільшується на довжину поточної команди, тобто,у нього записується адреса наступної команди) і відбувається повернення в початок циклу (до п.1).
Автоматичне виконання програми припиняється.
Слід зауважити, що вимога саме послідовного, в порядку зміни адрес в ЛК, виконання команд є принциповою. Архітектури, які не додержуються такого принципу, взагалі не вважаються фон-нейманівськими.