Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема: Типова архітектура ЕОМ




Лабораторна робота №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 підсумовані відомості про інтерпретацію нуль-, одно-, двох- і трьохадресних команд.

Таблиця 2.1. Інтерпретація команд перетворення з різною кількістю адрес в адресній частині

Кількість адрес Символічне представлення Інтерпретація
  ОР А,В,С А В ОР С
  ОР А,В А А ОР В
  ОР А А АС ОР А
  ОР Т Т ОР (Т-1)

Умовні позначки:

АС — акумулятор; Т — верхня комірка стека; А, У, З — комірка оперативної пам'яті або регістри процесора.

Визначення формату адресної частини команди — це одне з головних питань при проектуванні системи команд нового процесора. Чим менше кількість адресних полів у коді команди, тим простіше набір команд і тим простіше процесор, яки повинен реалізувати виконання цих команд. Крім того, коди команд будуть коротшими. Але, з іншого боку, для програмування алгоритму прийдеться використовувати більше коротких команд, що в остаточному підсумку приведе до збільшення часу обчислень і довжини програми. Крім того, існує визначена якісна відмінність між одноадресними і багатоадресними (тобто двох- чи трьохадресними) командами. У першому випадку програмісту доступний єдиний регістр процесора — акумулятор. При роботі з багатоадресними командами у програміста з'являється можливість звертатися в програмі до декількох регістрів. Оскільки операції з операндами, що зберігаються в регістрах процесора, виконуються швидше, ніж з операндами, що витягаються з комірок пам'яті, продуктивність системи при цьому зростає. Тому більшість сучасних комп'ютерів проектується з орієнтацією на набір багатоадресных команд — як правило, використовується суміш із трьох- і двохадресних команд.

 

Проектування набору машинних команд

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

Найбільш важливими, фундаментальними питаннями проектування набору команд є наступні:

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

•типи даних, над якими виконуються операції на рівні машинних команд;

•формат команд — довжина коду команди, кількість адресних полів, розміри окремих полів і т.д.;

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

•режими адресації — способи (чи спосіб) інтерпретації вмісту полів адресної частини команд набору.

Ці питання взаємозалежні, і вирішувати їх необхідно в сукупності.

 

Контрольні питання:

1. Базові функції комп’ютера.

2. Основні типи операцій, які виконує комп’ютер.

3. Основні компоненти комп’ютера, характеристика їх функцій.

4. Структура центрального процесора, його компоненти.

5. Структура машинної команди.

6. Категорії машинних команд.

7. Одно-, дво-, трьох адресні команди, їх символічне представлення.

8. Поняття стека.

9. Питання, які вирішуються при проектуванні набору команд.




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 463; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.032 сек.