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

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

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

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

Добавлен: 24.12.2021

Просмотров: 6806

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

114

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

3.4.5. Сторінкова адресація

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

3.4.6. Неявна адресація

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

Неявна адресація дозволяє скоротити довжину команди, тому знайшла широке ви­користання.

3.4.7. Стекова адресація

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


115

Широко використовується в мікропроцесорах і мікрокомп'ютерах. Принципи організа­ції стекової адресації ілюструє рис. 3.33.

Стек - це, набір комірок пам'яті або регістрів, в яких дані масиву розміщуються в заданому порядку, а саме відповідно до правила організації пам'яті з послідовним до­ступом типу FILO. Місце розміщення першого даного масиву називається дном стека, а останнього - вершиною стека. Для запису та читання даних передбачено дві операції: push (вштовхування даних в стек) та pop (виштовхування даних зі стеку). Операції зо­внішнього запису та читання можливі тільки з вершиною стека. На її номер вказує вміст вказівника стека. При запису всі дані в стеку зміщуються на одну позицію вниз, а при зчитуванні зміщуються на одну позицію вверх. На рисунку 3.34 показано функціону­вання стека при запису та зчитуванні даних при виконанні двомісної операції множення числа 50 на число 10 в арифметико-логічному пристрої із записом результату в стек.

3.4.8. Використання стекової адресації

Зазвичай в математиці прийнято записувати знак операції між операндами, напри­клад a+b, c:d і т. д. Такий запис називають інфіксним. При використанні такого запису для обчислення складного виразу необхідно задавати пріоритети операцій. Наприклад, в алгебраїчному виразі

а + bc/d - f

пріоритети можуть бути наступні: х, /, +, -.


116

Інший підхід, який забезпечує правильне виконання інфіксного запису - викорис­тання дужок, причому, з тим, що обчислення проводиться від внутрішніх дужок до зо­внішніх. В дужковій формі наведений вираз прийме вигляд:

(( а + ((bc)/d)) - f).

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

Для реалізації наведеного виразу в комп'ютері можна використати всі раніше описа­ні способи адресації.

Польський математик Ян Лукашевич показав, що якщо знаки арифметичних опе­рацій записувати перед операндами (префіксна форма) чи після операндів (постфіксна форма, або обернений польський запис), то для визначення порядку виконання опера­цій дужки стають непотрібними.

Так, для наведеного вище виразу префіксна форма має вигляд:

-+a/xbcdf,

а постфіксна форма має вигляд:

abcx d/ + f-.

Ця форма - обернений польський запис.

Обернений польський запис прекрасно підходить для проведення обчислень на комп'ютері зі стеком.


Розглянемо потактовий стан комірок стеку при реалізації раніше розглянутого ви­разу, записаного в постфіксній формі (рис. 3.36).


Якщо вираз складається із N символів, то алгоритм його обчислення на стеку можна представити у вигляді блок-схеми, показаної на рис. 3.35.



117


Для реалізації стека можуть бути використані регістри. В цьому випадку схема об­числень з використанням стека має вигляд, показаний на рис. 3.37.


Алгоритм функціонування такий же, як вище описано функціонування на базі основ­ної пам'яті ОП. Операція виконується над вмістом Ргі і результат розміщується в Ргі, а вміст нижніх регістрів зміщується на один крок вверх.

3.4.9. Вибір способів адресації операндів

В табл. 3.8 наведено перелік та короткий опис різних способів адресації, зроблений на основі вище наведеного розгляду. Кожний спосіб має свої переваги та сферу доціль­ного застосування.

'Таблиця 3.8




Основні способи адресації

Спосіб адресації

Місце розміщення операнда

Безпосередня

Значення операнда знаходиться в полі адресної частини команди

Пряма

Адреса операнда знаходиться в полі адресної частини команди

Непряма

Адресна частина команди вказує адресу розміщення операнда

Базова

Виконавча адреса формується шляхом додавання до вмісту регістра бази зміщення із поля адресної частини команди

Відносна

Виконавча адреса формується шляхом додавання вмісту адресного поля команди до вмісту програмного лічильника

Індексна

Виконавча адреса формується шляхом додавання вмісту адресного поля команди до вмісту спеціального регістра

Неявна

Адреса операнда в явному вигляді в команді відсутня

Сторінкова

Виконавча адреса формується шляхом конкатенації зміщення з адресної поля команди до початкової адреси

Стекова

Операнд розміщений у вершині стека


118

Частота використання різних способів адресації в комп'ютерах залежить від бага­тьох факторів: типу архітектури, вимог до параметрів комп'ютера, характеру вирішу­ваних задач. За час існування обчислювальної техніки була створена велика кількість комп'ютерів, у яких застосовано різноманітні способи адресації та їх поєднання. Тому дати однозначну відповідь стосовно вибору найкращого набору способів адресації практично неможливо. Але такому вибору може допомогти аналіз частоти застосуван­ня різних способів адресації при вирішенні на комп'ютерах складних тестових задач, як наприклад, програм ТеХ, gcc та spice, як це показано на рис. 3.38, які тестувалися на комп'ютері VAX фірми DEC.

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

3.5. Приклади форматів команд

При розгляді систем команд будемо використовувати розповсюджені скорочені по­значення типів команд: RR - регістр-регістр, RI - регістр-безпосередній операнд, RS -регістр-пам'ять, RX - регістр-індексована пам'ять, SI - пам'ять-безпосередній операнд, SS - пам'ять-пам'ять, а також позначення: КОП - код операції, R-регістр, S - пам'ять, X - індекс, В - базова адреса, D - зміщення, А - адреса пам'яті, L - довжина, С -номер символу в складному слові.

Формати команд комп'ютерів різних типів детально розглянуті в літературі та в технічній документації на ці комп'ютери. На рис. 3.39 показано три групи узагальне­них форматів команд, які використовувалися та використовуються зараз в комп'ютерах: а - змінний, b - фіксований та с - гібридний формати.