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

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

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

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

Добавлен: 24.12.2021

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

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

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

124

Розробка експериментального проекту компанії IBM почалася ще в кінці 70-х років, але його результати ніколи не публікувалися і комп'ютер на його основі в промислових масштабах не виготовлявся. У 1980 році Д. Паттерсон із колегами з університету Бер-клі почали свій проект і виготовили дві машини, які одержали назви RISC-I і RISC-II. Головними ідеями цих машин було відділення повільної пам'яті від високошвидкісних регістрів і використання регістрових вікон. У 1981 році Дж. Хеннессі із своїми колегами опублікував опис стенфордської машини MIPS, основним аспектом розробки якої була ефективна реалізація конвеєрної обробки за допомогою ретельного планування компі­лятором його завантаження.

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

Серед інших особливостей архітектури КПСК слід зазначити наявність досить вели­кого регістрового файла (у типовій архітектурі КПСК реалізуються 32 або більша кіль­кість регістрів у порівнянні з 8-16 регістрами в архітектурі КССК), що дозволяє більшо­му об'єму даних зберігатися в регістрах на кристалі процесора більший час і спрощує роботу компілятора при розподілі регістрів під змінні. Для обробки, як правило, вико­ристовуються триадресні команди, що, крім спрощення дешифрування, дає можливість зберігати більшу кількість змінних в регістрах без їх подальшого перезавантаження.

До часу завершення університетських проектів (1983-1984 pp.) відбувся також про­риву технології виготовлення надвеликих інтегральних схем. Простота архітектури та її ефективність, підтверджена цими проектами, викликали великий інтерес в комп'ютер­ній індустрії, і з 1986 року почалася активна промислова реалізація архітектури КПСК. До теперішнього часу ця архітектура міцно займає лідируючі позиції на світовому комп'ютерному ринку робочих станцій і серверів.

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


Слід зазначити, що в останніх розробках компанії Intel (маються на увазі Pentium Р54С і процесор наступного покоління Р6), а також її послідовників-конкурентів (AMD R5, Cyrix Ml, NexGen Nx586 та ін.) широко використовуються ідеї, реалізовані в архітек­турах КССК, так що багато відмінностей між КССК і КПСК стираються.

3.7.3. Особливості архітектури комп'ютера з простою системою команд

Відомі ще з початку 80-х років принципи реалізації КПСК є наступними: • Довільна комп'ютерна команда, незалежно від її типу, має виконуватися за один такт (чи однотактовий цикл).


125

  • Система команд має містити мінімальну кількість спрощених команд, що статис­тично переважають у програмах

  • Команди обробки даних реалізуються лише у формі «регістр регістр». Обміни з пам'яттю даних (гарвардська архітектура), з метою модифікації змінних у пам'яті вико­нуються лише за допомогою команд читання/запису (архітектура load/store).

  • Програми, що модифікують власні коди (раніше це було розповсюджено у різних комп'ютерах, зокрема PDP-11/VAX-11) є забороненими. Виходить, що згідно з новою кон­цепцією команди обробки не можуть адресувати нічого, за винятком регістрів процесора

  • Дешифрування команд із спрощеними форматами має виконуватися лише апарат­но, аби збільшити швидкодію

  • У системі команд відносно небагато операцій та режимів адресування операндів (способів адресації).

  • Високий рівень конвеєризації виконання команд

  • Велика кількість регістрів

  • Застосовується багато рівнів ієрархії пам'яті

  • Склад системи команд має задовольняти вимоги «зручної» компіляції операторів мов високого рівня

Виходячи з наведених вище принципів, можна прийти до висновку що проектуван­ня КПСК вимагає вирішення наступних завдань

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

  • Оптимізація структури процесора, що проектується, з метою забезпечення най­швидшого виконання обраних команд

  • Додавання до отриманого списку інших команд, якщо вони не ускладнюють процесора

  • Застосування цих же принципів у розробленні інших пристроїв комп ютерної системи.

  • Перенесення більшої частини дій з апаратури на програмну частину (компілятор).

Потрібно відзначити, що з часом тлумачення окремих принципів змінилося. Напри­клад, вимогу виконання команди за один такт почали розуміти в той спосіб, що резуль­тати усіх операцій мають формуватися з темпом «одне слово за такт». Іншими слова­ми, усі процесори обов язково містять конвеєризовані арифметичні пристрої. Сучасні технології елементної бази дозволили реалізувати замість первісних десятків команд більше сотні (до 150-200). Проте основний принцип архітектури КПСК виконувати операції тільки у межах регістрової структури процесора, аби виключити звертання до пам'яті даних, залишився незмінним

3.7.4. Архітектура комп'ютера з доповненою системою команд

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

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

- широкому використанню конвеєрного принципу обробки даних;


126

  • використанню, крім традиційного АЛП, спеціалізованого операційного пристрою, який структурно орієнтований на виконання найуживаніших операцій

  • використанню широкорозрядних блоків оперативної та постійної пам'яті великої ємності з можливістю її секціювання із забезпеченням незалежного доступу до секцій;

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

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

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

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

  • короткому командному циклу

Дані принципи, покладені в основу проектування КДСК, забезпечують їм високі тех­нічні параметри, завдяки яким КДСК обробляють великі масиви інформації за складни­ми алгоритмами і виконують більшість операцій за один командний цикл

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

3.7.5. Комп'ютери зі спеціалізованою системою команд

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


127

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

Одним із таких підходів є створення комп'ютерів із спеціалізованою (орієнтованою) системою команд (КОСК, англійський термін - ASISC - application-specific instruction-set computer). КОСК орієнтовані на використання в складних системах, які реалізуються у вигляді НВІС. Використання КОСК як компоненти системи на кристалі забезпечує її програмованість (бажану гнучкість процесу проектування) із збереженням основних переваг спеціалізованих архітектур - можливості підвищення продуктивності та змен­шення споживаної потужності. Таким чином, КОСК поєднують в собі переваги двох різ­них класів архітектур: універсальних та спеціалізованих. КОСК - це комп'ютери, система команд яких орієнтована на конкретне використання, наприклад, коміркові телефони, стиск зображень і т. д. Порівняно з КДСК, КОСК мають вищий рівень спеціалізації.

Зазвичай КОСК мають малий набір команд, який включає:

  • набір стандартних арифметичних команд, команди роботи з пам'яттю та команди керування програмним потоком, які необхідні для конкретного використання;

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

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

Охарактеризувати КОСК можна за допомогою шести основних параметрів. Цими параметрами є: формат даних, формат команд, структура пам'яті, структура регістрової пам'яті, кодування операцій, а також структурні особливості процесора. КОСК зазви­чай орієнтовані на обробку даних з фіксованою комою. Розрядна сітка функціональних блоків, шин та пам'яті вибирається, виходячи із потреб задачі. Вони базуються на архі­тектурі типу регістр-регістр. Регістри регістрового файла процесора є програмно до­ступними. В КОСК можуть використовуватись два базових типи кодування операцій: мікрокодування та макрокодування.

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