Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_Арх.doc
Скачиваний:
44
Добавлен:
20.02.2016
Размер:
1.27 Mб
Скачать

Лабораторна робота №2 Тема: Типова архітектура еом.

Ієрархічний принцип побудови ЕОМ

Будь-який комп'ютер, навіть найпростіший, являє собою систему, що складається із сотень, тисяч, мільйонів найпростіших електронних компонентів. Єдиний спосіб описати функціонування і структуру подібного роду складних систем — виконати їхню ієрархічну декомпозицію. Ієрархічну систему можна представити у вигляді обмеженої множини взаємодіючих підсистем, кожна з яких несе визначене функціональне навантаження та, у свою чергу, може мати ієрархічну структуру.

При проектуванні підсистеми будь-якого рівня для розробника найбільший інтерес представляють структура підсистеми і розподіл функцій між компонентами. Структураце спосіб об'єднання компонентів підсистеми в єдине ціле, а функціїоперації, які виконуються кожним компонентом у процесі реалізації функції, призначеній усій підсистемі.

При рішенні проблеми аналізу складної системи можна застосувати один із двох альтернативних підходів: почати з опису функцій елементів найнижчого рівня і далі підніматися по рівнях ієрархії усе вище і вище (підхід "знизу нагору") чи розглянути систему в цілому і спробувати відшукати в ній підсистеми, відносно незалежні в змісті виконуваних функцій (підхід "зверху вниз"). Далі такого ж роду декомпозиція застосовується до виділених підсистем і т.д. Практика аналізу різного роду великих систем показала, що підхід “зверху вниз” має безсумнівні переваги в змісті ясності й ефективності аналізу.

Функції

На мал. 2.1 представлені базові функції, що виконує комп'ютер. У самому загальному змісті таких функцій всього чотири:

• обробка даних;

• збереження даних;

• переміщення даних;

• керування.

На цьому рівні безліч операцій, які виконуються в комп'ютерній системі, можна розділити на обмежене число видів. На мал. 2.2 схематично показані чотири основні види операцій. Комп'ютер може працювати як пристрій переміщення даних від одного абонента до іншого (мал. 2.2,а), причому дані передаються без зміни змісту інформації, що міститься в них. Другий варіант — комп'ютер функціонує як пристрій збереження даних (мал. 2.2,6), забезпечуючи циркуляцію інформації в обидва боки між периферійними пристроями і засобами виконання функції збереження (тобто дані записуються в комп'ютер або зчитуються з комп'ютера). Останні два варіанти включають обробку (перетворення) даних — переутворені дані або витягаються зі сховища, і туди ж відправляються результати (мал. 2.2,в), або дані надходять з операційного середовища, а результати відправляються в сховище (мал. 2.2,г).

Можливості підстроювання конфігурації комп'ютерної системи під перелік виконуваних функцій дуже обмежені. Основна тому причина — комп'ютер по самій своїй природі орієнтований на виконання найрізноманітніших задач, а тому практично вся його спеціалізація виявляється на стадії програмування, а не на стадії проектування.

Структура

Комп'ютер є об'єктом, здатним деяким чином взаємодіяти із зовнішнім стосовно нього середовищем через зв'язки, які можна розділити на дві групи — зв'язки з локальним периферійним устаткуванням і зв'язки для передачі даних на велику відстань.

Чотири основних компоненти комп'ютера:

Центральний процесор (ЦП) керує функціонуванням усієї системи і виконує функції обробки інформації. (Дуже часто в найменуванні цього компонента прикметник "центральний" опускається.)

Оперативна пам'ять зберігає вихідні дані і всю інформацію, необхідну для їхньої обробки.

Пристрої вводу-виводу переміщають дані між комп'ютером і навколишнім середовищем в обидва боки.

Системні внутрішні зв'язки являють собою деякий механізм, що забезпечує обмін інформацією між іншими компонентами — ЦП, оперативною пам'яттю і пристроями вводу-виводу.

До складу конкретного комп'ютера можуть входити один чи кілька компонентів кожного типу. Як правило, у комп'ютері мається один ЦП, але в останні роки просліджується тенденція включати до складу єдиної комп'ютерної системи кілька процесорів.

До складу ЦП входять:

пристрій керування, на який покладаються функції керування іншими компонентами ЦП і, отже, усім комп'ютером;

арифметичний і логічний пристрій (АЛП), що виконує всі операції, пов'язані зі змістовною обробкою інформації;

регістри, що зберігають оперативну інформацію під час виконання процесором поточної операції;

внутрішні зв'язки ЦП деякий механізм, що забезпечує спільну роботу трьох інших компонентів ЦП.

Існує кілька підходів до структурної організації пристрою керування, з яких найбільше поширення одержав принцип мікропрограмної реалізації керування.

Системи та класифікація команд

Кожна машинна команда повинна містити інформацію, необхідну для однозначної її інтерпретації і виконання процесором. На мал. 2.3 показані основні етапи виконання машинної команди, що неявно визначають і склад інформації в ній. Компонентами машинної команди є:

•код операції — визначає, які саме перетворення повинен виконати процесор з переданими йому елементами даних;

• посилання на операнд-джерело — у процесі виконання машинної команди одні дані перетворяться в інші; ті дані, що перетворяться, — операнды (може бути один операнд чи два) — повинні бути якимсь чином специфіковані;

• посилання на результат — визначають, що зробити з результатом перетворення операндів (найчастіше, куди його помістити);

Типи команд

Розглянемо оператор мови високого рівня, наприклад BASIC чи FORTRAN, якому потрібно буде представити у вигляді послідовності машинних команд:

X = X + Y

Цей оператор вимагає, щоб значення, яке зберігається по символічній адресі Y, було додано до значення, яке зберігається по символічній адресі X, а результат поміщений за адресою X. Яка послідовність машинних команд задасть таку ж операцію? Припустимо, що символічним адресам X і Y відповідають комірки пам'яті 513 і 514; тоді дану операцію можна виконати за допомогою послідовності з трьох команд:

1. Завантажити в регістр процесора вміст комірки пам'яті 513.

2. Додати до вмісту регістра вміст комірки пам'яті 514.

3. Зберегти результат — вміст регістра — у комірці пам'яті 513.

Одже, для реалізації одного нескладного оператора мови BASIC потрібно три машинні команди. Це типове співвідношення між кількістю операторів мови високого рівня і кількістю машинних команд, необхідних для їхньої реалізації. На мовах високого рівня операції виражаються у формі, близької до звичної алгебраїчної, причому широко використовуються символічні перемінні. На мовах рівня машинних команд ці ж операції виражаються у формі елементарних інструкцій, що включають також пересилання даних з пам'яті в регістри процесора і назад.

Можна розділити машинні команди на наступні категорії:

команди перетворення даних — виконання арифметичних і логічних операцій над операндами;

команди збереження даних — керування пам'яттю;

команди переміщення — виконання операцій вводу-виводу;

команди керування — перевірка результатів і керування черговістю виконання команд програми.

Адресна частина команди

Ще на ранньому етапі розвитку обчислювальної техніки з'явилася класифікація обчислювальних машин в залежності від кількості адресних компонентів у форматі машинної команди — машини поділялися на одноадресні, двохадресні і трьохадресні. Яка максимальна кількість адрес, що може знадобитися в складі однієї машинної команди? Зовсім очевидно, що в арифметичних і логічних командах потрібно специфіцировати якимось чином адреси операндів. Арифметичні і логічні операції поділяються на унарні (операції над одним операндом) і бінарні (над двома операндами). Таким чином, для специфікації операндів нам буде потрібно не більше двох адрес. Результат операції потрібно десь зберегти —третя адреса. І нарешті, після завершення виконання поточної команди буде потрібно звідкись витягти наступну команду — це буде четверта адреса.

На практиці, однак, чотирьохадресних машин не існує. У більшості існуючих комп'ютерів використовуються одна, дві або три адреси в одній команді набору, причому майже завжди "зайвою" є адреса наступної команди, що формується процесором неявно за допомогою лічильника команд.

На мал. 2.4 представлені послідовності команд трьох видів (одно-, двох- і трьохадресні), необхідні для виконання обчислень у наступному прикладі:

Y = (A-B)/(C+D*E)

У трьохадресній команді специфіцирується розміщення в пам'яті обох операндів і результат виконання команди. Оскільки небажано в процесі обчислень змінювати значення вихідних даних, для збереження проміжних результатів використовується комірка за адресою Т. Зверніть увагу на те, що у вихідному виразі присутні п'ять операндів, а для його реалізації потрібна була послідовність з чотирьох трьохадресних команд.

Оскільки трьохадресний формат вимагає, щоб у кожній команді вистачало місця для трьох полів адреси, довжина такої команди виявляється досить великою. Тому такий формат використовується рідко. У двохадресних командах бінарних арифметичних і логічних операцій одне поле адреси має подвійне призначення — воно специфіцирує адресу одного з операндів і адресу результату. Так, команда SUB Y,У задає обчислення значення Y-B і зберігає результат за адресою У. Довжина двохадресної команди менше трьохадресної, але в цього формату є інший недолік — іноді, щоб не "зіпсувати" значення операндів, приходиться переписувати їх за допомогою команди MOVE у вільні комірки пам'яті (програмісти називають їх тимчасовими) і в цих комірках зберігати проміжні результати. У підсумку кількість команд, необхідних для реалізації тих же обчислень, збільшується. У нашому випадку програма обчислення В = (У) / (C+D*E) буде включати шість двохадресних команд.

Ще більш короткий формат мають одноадресні команди. Адреса другого операнда для бінарних операцій задається неявно. Такий формат часто застосовувався в обчислювальних машинах першого покоління, у яких для неявно заданого сховища другого операнда і результату використовувався спеціальний регістр процесора — акумулятор (АС). У нашому прикладі програма обчислення тестового вираження за допомогою набору одноадресних команд включає вісім команд.

Можна реалізувати деякі обчислювальні операції навіть за допомогою нулъадресных команд, у яких поле адреси взагалі відсутнє. Але для того щоб такі команди можна було виконувати, потрібна спеціальна форма організації пам'яті — стековая організація. Стек являє собою список, що працює за принципом "останнім увійшов — першим вийшов" (LIFO — Last-In-First-Out). Положення вершини стека завжди відомо, і, як правило, у комп'ютерах зі стековой організацією пам'яті верхні дві комірки стека являють собою регістри процесора. Таким чином, нульадресні команди неявно звертаються за операндами до двох верхніх комірок стека.

У табл. 2.1 підсумовані відомості про інтерпретацію нуль-, одно-, двох- і трьохадресних команд.