загрузка...
загрузка...
На головну

Запобігання конфліктам між командами при конвейеризации команд

Апаратна оптимізація використання регістрів в RISC-процесорах орієнтована на дві проблеми.

Регістри в RISC-процесорах

Відмітна риса RISC-архітектури - велика кількість регістрів загального призначення, що пояснюється прагненням звести все пересилання до типу «регістр-регістр». Але збільшення числа РОН здатне дати ефект лише при розумному їх використанні. Оптимізація використання регістрів в RISC-процесорах забезпечується як програмними, так і апаратними засобами.

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

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

У загальному випадку метод формулюється в такий спосіб. Є граф, що складається з вузлів і ребер. Необхідно розфарбувати вузли так, щоб сусідні вузли мали різний колір і щоб при цьому загальна кількість залучених квітів було мінімальним. У нашому випадку роль вузлів виконують віртуальні регістри. Якщо два віртуальних регістра одночасно присутні в одному і тому ж фрагменті програми, вони з'єднуються ребром. Робиться спроба розфарбувати граф в n кольорів, де n - число фізичних регістрів. Якщо така спроба не увінчалася успіхом, то вузлів, які не вдалося розфарбувати, замість фізичних регістрів виділяються осередки в пам'яті.

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

Особливості RISC-архітектури «-- попередня | наступна --» Скорочення витрат часу при роботі з процедурами.
загрузка...
© om.net.ua