logo search
AOM / Мельник А

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

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

127

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

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

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

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

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

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

128

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

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

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

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

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

■ Як зазначалось вище, система команд КОСК включає спеціалізовані команди, які дозволяють виконувати критичні ділянки заданих алгоритмів за мінімальну кількість машинних циклів та без засилання в пам'ять проміжних результатів. Структура трактів даних таких процесорів спеціально проектується для конкретних алгоритмів.

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

129

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