Стекова архітектура - Студопедія

Класифікація за місцем зберігання операндів

Класифікація за складом та складністю команд

Класифікація архітектур системи команд

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

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

У спрощеному трактуванні час виконання програми (Tвич) можна визначити через число команд у програмі (Nком), середня кількість тактів процесора, що припадають на одну команду (CPI), і тривалість тактового періоду:

.

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

стекова

Мал. 2.45. Взаємозв'язок між системою команд та факторами,

визначальними ефективність обчислень

Ситуацію, що склалася на даний момент в галузі архітектури системи команд ілюструє рис. 2.46.

архітектура

Мал. 2.46. Хронологія розвитку архітектури системи команд

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

• архітектура з повним набором команд: CISC (Complex Instruction Set Computer);

• архітектуру зі скороченим набором команд: RISC (Reduced Instruction Set. Computer);

• архітектура з командними словами надвеликої довжини: (Very Long Instruction Word).

У обчислювальних машинах типу CISC 7 проблема семантичного розриву вирішується за рахунок розширення системи команд, доповнення її складними командами, семантично аналогічними операторам мови високого рівня. Основоположником CISC-архітектури вважається компанія IBM, яка почала застосовувати даний підхід із сімейства машин IBM 360 і продовжує його у своїх потужних сучасних універсальних обчислювальних машинах, таких як IBM ES/9000. Аналогічний підхід характерний і для компанії Intel у її мікропроцесорах серії 8086 та Pentium. До типу CISC можна віднести практично всі обчислювальні, що випускалися до середини 1980-х років, і значну частину вироблених в даний час.

• наявність у процесорі порівняно невеликої кількості регістрів загального призначення;

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

• безліч форматів команд різної розрядності;

• наявність команд, де обробка поєднується із зверненням до пам'яті.

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

Елементи RISC-архітектури вперше з'явилися у обчислювальних машинах CDC 6600 та суперЕОМ компанії Cray Research. Досить успішно реалізується RISC-архітектура і в сучасних обчислювальних машинах, наприклад процесорах Alpha фірми DEC, серії РА фірми Hewlett-Packard, сімействі PowerPC і т.п.

В останніх мікропроцесорах фірми Intel та AMD широко використовуються ідеї, властиві RISC-архітектурі, так що багато відмінностей між CISC та RISC поступово стираються.

Таблиця 2.14. Порівняльна оцінка CISC-, RISC- та VLIW-архітектур

ХарактеристикаCISCRISCVLIW
Довжина командиВаріюєтьсяЄдинаЄдина
Розташування полів у командіВаріюєтьсяПостійнеПостійне
Кількість регістрівДекілька (часто спеціалізованих)Багато регістрів загального призначенняБагато регістрів загального призначення
Доступ до пам'ятіМоже виконуватися як частина різних типів командВиконується лише спеціальними командамиВиконується лише спеціальними командами

З позицій зберігання операндів та доступу до них розрізняють такі види архітектур системи команд:

• із виділеним доступом до пам'яті.

Стеком називаєтьсяпам'ять, за своєю структурною організацією відмінна від основної пам'яті обчислювальної машини. Стек утворює безліч логічно взаємопов'язаних осередків (рис. 2.47), що взаємодіють за принципом «останнім увійшов, першим вийшов» (Last In First Out).

команд

Мал. 2.47. Принцип дії стікової пам'яті

Верхню комірку називаютьвершиною стека. Для роботи зі стеком передбачені дві операції: push (запис даних у стек) та рор (читання даних зі стеку). Запис можливий тільки у верхню комірку стека, при цьому вся інформація, що зберігається в стеку, попередньо проштовхується на одну позицію вниз. Читання допустиме також лише з вершини стека. Вилучена інформація видаляється зі стека, а його вміст, що залишився, просувається вгору. У обчислювальних машинах, де реалізована архітектура структури команд на базі стека, операнди перед обробкою поміщаються у два верхні осередки стекової пам'яті. Принцип дії стічної машини пояснимо на прикладі обчислення виразу (рис. 2.48).

Мал. 2.48. Послідовність обчислення виразу

на обчислювальній машині зі стіковою архітектурою

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

стекова

Мал. 2.49. Архітектура обчислювальної машини на базі стека

Для виконання арифметичної або логічної операції на вхід АЛУ подається інформація, лічена з двох верхніх осередків стека (при цьому вміст стека просувається на дві позиції вгору, тобто видаляються операнди зі стека). Результат операції заштовхується у вершину стека. Можливий варіант, коли результат відразу ж переписується в пам'ять за допомогою операції pop x, що виконується автоматично.

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

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

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

Чи не знайшли те, що шукали? Скористайтеся пошуком: