PowerPC - микропроцессорная RISC-архитектура

прологу і епілогу, пов'язаних із збереженням і відновленням регістрів під час виклику процедури. Щоб усунути цей чинник IBM ввела команди "Групового завантаження і запису", які забезпечують пересилку декількох регістрів в/из пам'яті за допомогою єдиної команди. Угоди про зв'язки, використовувані компіляторами POWER, розглядають завдання планування, бібліотеки, що розділяються, і динамічне скріплення як простій, єдиний механізм. Це було зроблено за допомогою непрямої адресації за допомогою таблиці змісту (TOC - Table Of Contents), яка модифікується під час завантаження. Команди групового завантаження і запису були важливим елементом цих угод про зв'язки.

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

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

Третім чинником, який відрізняє архітектуру POWER від багатьох іншої RISC-архітектур, є відсутність механізму "затриманих переходів". Зазвичай цей механізм забезпечує виконання команди, наступної за командою умовного переходу, перед виконанням самого переходу

Цей механізм ефективно працював в ранніх RISC-машинах для заповнення "міхура", що з'являється при оцінці умов для вибору напряму переходу і вибірки нового потоку команд. Проте в більш просунутих, суперскалярних машинах, цей механізм може виявитися неефективним, оскільки один такт затримки команди переходу може привести до появи декількох "міхурів", які не можуть бути покриті за допомогою одного архітектурного слота затримки. Майже всі такі машини, щоб усунути вплив цих "міхурів", вимушені вводити додаткове устаткування (наприклад, кеш-пам'ять адрес переходів). У таких машинах механізм затриманих переходів стає не тільки мало ефективним, але і привносить значну складність в логіку обробки послідовності команд. Замість цього архітектура переходів POWER була організована для підтримки методики "попереднього перегляду умовних переходів" (branch-lockahead) і методики "згортання переходів" (branch-folding).

Методика реалізації умовних переходів, використовувана в архітектурі POWER, є четвертою унікальною властивістю в порівнянні з іншими RISC-процесорами. Архітектура POWER визначає розширені властивості регістра умов. Проблема архітектури з традиційним регістром умов полягає в тому, що установка бітів умов як побічного ефекту виконання команди, ставить серйозні обмеження на можливість компілятора змінити порядок проходження команд. Крім того, регістром умов є єдиний архітектурний ресурс, що створює серйозне вузьке горло в машині, яка паралельно виконує декілька команд або виконує команди не в порядку їх появи в програмі. Деяка RISC-архітектури обходить цю проблему шляхом повного виключення зі свого складу регістра умов і вимагає установки коди умов за допомогою команд порівняння в універсальний регістр, або шляхом включення операції порівняння в саму команду переходу. Останній підхід потенційно перенавантажує конвеєр команд при виконанні переходу. Тому архітектура POWER замість того, щоб виправляти проблеми, пов'язані з традиційним підходом до

1 2 3 4 5 6 7

Похожие работы