ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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 простий цикл) без зберігання у пам'яті проміжних результатів.
Охарактеризувати КОСК можна за допомогою шести основних параметрів. Цими параметрами є: формат даних, формат команд, структура пам'яті, структура регістрової пам'яті, кодування операцій, а також структурні особливості процесора. КОСК зазвичай орієнтовані на обробку даних з фіксованою комою. Розрядна сітка функціональних блоків, шин та пам'яті вибирається, виходячи із потреб задачі. Вони базуються на архітектурі типу регістр-регістр. Регістри регістрового файла процесора є програмно доступними. В КОСК можуть використовуватись два базових типи кодування операцій: мікрокодування та макрокодування.
При мікрокодуванні всі команди виконуються за один машинний цикл. Кожна команда вибирається з пам'яті програм, визначаються всі тракти даних і звертання до пам'яті, які будуть виконані протягом даного машинного циклу. При макрокодуванні деякі команди можуть виконуватися протягом багатьох циклів. Кожна команда визначає всі тракти даних і звертання до пам'яті, які відповідають специфічній трансформації даних, навіть якщо ці дії мають місце в різних машинних циклах. У випадку мікрокодування легше організується конвеєр команд, оскільки машинний код доступний програмісту, а при макрокодуванні ці дії виконує блок керування, тому можлива поява ефектів впливу затримки конвеєра на продуктивність. Цей ефект може бути усунений шляхом введення додаткової апаратури яка його передбачає, але відповідно вимагає ускладнення розробки.