Регістри

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

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

Процесори зазвичай містять від декількох до декількох сот регістрів різного функціонального призначення.

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

З точки зору архітектури ЕОМ, під цим терміном розуміють лише набір тих регістрів, які доступні програмісту в рамках документованої програмної моделі процесора. Більш точно такі регістри називають архітектурними. Наприклад, архітектура x86 визначає лише 8 32-розрядних регістрів загального призначення, але процесор фактично містить набагато більше реальних апаратних регістрів. Така надлишковість потрібна для реалізації деяких мікроархітектурних оптимізацій швидкодії процесора (див. докладніше Паралелізм рівня команди).


Класифікація

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

Регістри загального призначення - можуть зберігати і дані, і адреси

Регістри плаваючої коми - призначаються для зберігання даних для обчислень з плаваючою комою

Регістри констант - зберігають константи (наприклад в RISC-архітектурах регістр з порядковим номером нуль зазвичай зберігає константу нуля).

Векторні регістри - зберігають векторні дані та забезпечують векторні обчислення (наприклад, в мультимедійних розширеннях архітектури x86).

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