Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gmail / Лекция1.Дубль2..doc
Скачиваний:
41
Добавлен:
12.05.2015
Размер:
1.1 Mб
Скачать

Технологія виконання команд мікропроцесором

Як зазначалося раніше, для виконання програми необхідно, щоб її команди і дані знаходилися в ОП. Функціональну схему взаємодії мікропроцесора і ОП при виконанні програми можна представити наступним чином (рис. 5):

Рис.5 Схема взаємодії мікропроцесора і ОП

При цьому послідовність виконання дій є наступною:

  1. ПК за допомогою пристроїв введення приймає інформацію у вигляді програм та даних і записує її в ОП;

  2. дані, що зберігається в ОП, у відповідності із командами програми під керуванням ПУ пересилаються в АЛП для подальшої обробки;

  3. результати, отримані після виконання відповідних команд, розміщуються в ОП і при потребі спрямовуються на пристрої виведення.

Команда ПК фоннейманівської архітектури представляє собоюпослідовність двійкових розрядів, розділену на групи, наприклад,

01

101

000

000

Її формат складається з двох частин - командної і адресної. В командній частині вказується код операції (КОП), що зумовлює певну дію. Адресна частина містить адреси операндів (величин), що беруть участь у операції. Наприклад,команда, що виконує операцію додавання (рис. 6):

КОП

адреса 1

(першого доданка)

адреса 2

(другого доданка)

адреса 3

(суми)

Рис.6 Структура команди додавання

Залежно від вказаних у команді адрес розрізняють одноадресні, двоадресні, триадресні та чотириадресні команди. Одноадресна команда - зручна інструкція для таких дій, як передача значення змінної з пристрою вводу в елемент пам'яті з заданою адресою, передача вмісту комірки із заданою адресою в АЛП, складання вмісту АЛУ з вмістом заданої комірки і т.п. Длявиконання операції додавання використовується триадресна команда (рис. 6). У чотирьохадресних командах четверта адреса, зазвичай, використовується для вказання місця, де розташована наступна виконувана інструкція.

Для представлення команд у вигляді чисел необхідно мати дві кодуючі таблиці.

Перша таблиця (табл. 1) дозволяє поставити у відповідність операціями деякікоди. Такого типу таблиця є приналежністю конкретного типу ЕОМ, тобто "закладена" в неї при проектуванні.

Таблиця1. Фрагмент системикоманд абстрактноїЕОМ.

Дії,що виконуютьсякомандою

Код команди

Введення (запис) числаізПВВ в [А1]

01

Виведення[А1] наПВВ

02

Скласти[А1]з[А2]ірезультат поміститив [А3]

03

Віднятиіз [А1] [A2]ірезультат поміститив [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).

КОП

А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

Кінець обчислень (адреси не потрібні)

Форма таблиці відповідає бланкам, які використовували програмісти на початку-середині 50-их років ХХ століття. Правила складання такої таблиці очевидні за умови, що А1 є адресою першого операнда, А2 - адресою другого операнда і А3 - адресою результату.

Записана таким чином послідовність команд (програма) являє собою послідовність чисел, які можна розмістити в пам'яті ЕОМ.

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

Основні регістри мікропроцесора:

  • регістр команд(РК) -служитьдля тимчасового зберігання команди в процесі її виконання; забезпечує поділ коду команди на код операції та коди адрес на фізичному (схемному) рівні;

  • регістри даних(РД);

  • регістр результату(РР);

  • регістр стану програми(РСП) - служить для виявлення признаку результату (4 біти):

3

2

1

0

= 0

< 0

> 0

переповнення

Наприклад, 1000 = 0

1100  <=0

Значення ознаки результату може аналізуватися ПК для прийняття рішення стосовно подальшої послідовності виконання програм.

  • лічильник команд(ЛК) -формуєта тимчасово зберігає адресу виконуваної команди.

Нехай програма розміщена у вільній зоні пам'яті починаючи, наприклад, з комірки 501 (таке розміщення, зазвичай, здійснюється за допомогою складання номера команди з константою або так званим зміщенням, яке в даному випадку дорівнює 500). Тоді для автоматичного виконання програми досить занести в ЛК число 501 (так звану пускову адресу) і включити режим автоматичного виконання програми.

При цьому завжди буде проводиться один і той самий набір дій - цикл виконання команди:

  1. Мікропроцесор звертається до ОП за адресою із ЛК і переписує команду в РК.

  2. АЛП дешифрує код операції.

  3. Якщо код операції команди не наказує припинення обчислень, то виконується пункт 4, інакше пункт 9.

  4. За допомогою дешифрованого коду операції АЛПУ налаштовується на виконання заданої операції.

  5. Завказанимиу команді адресамиоперандівздійснюєтьсяїх пошук і передача в РД.

  6. Виконання команди у відповідності з кодом операції і запис результату у РР.Якщо необхідно, результат заноситься в елемент пам'яті з адресою, зазначеною в команді.

  7. У РСП формується ознака результату.

  8. Вміст ЛК модифікується (у найпростішому випадку - збільшується на довжину поточної команди, тобто,у нього записується адреса наступної команди) і відбувається повернення в початок циклу (до п.1).

  9. Автоматичне виконання програми припиняється.

Слід зауважити, що вимога саме послідовного, в порядку зміни адрес в ЛК, виконання команд є принциповою. Архітектури, які не додержуються такого принципу, взагалі не вважаються фон-нейманівськими.

Соседние файлы в папке Gmail