Перейменування регістрів

Connected to:

Матеріал з Вікіпедії – вільної енциклопедії

Перейменування регістрів(англ. register renaming) - метод ослаблення взаємозалежностей команд, що застосовується в процесорах з позачерговим виконанням команд. Один із методів, що застосовуються в обчислювальних конвеєрах для реалізації паралелізму на рівні команд.

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

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

Перейменування регістрів являє собою перетворення програмних посилань на архітектурні регістри на посилання на фізичні регістри і дозволяє послабити вплив хибних взаємозалежностей за рахунок використання великої кількості фізичних регістрів замість обмеженої кількості архітектурних (так, наприклад, x86-сумісні процесори архітектури Intel P6 містять 40 фізичних регістрів ]). При цьому процесор відстежує стан яких фізичних регістрів відповідає стану архітектурних, а видача результатів здійснюється в порядку, передбаченому програмою.

Метод використовувався в IBM System/360 Model 91 (1964), POWER1 (1990), MIPS R10000 та пізнішихпроцесорів.