Loading AI tools
З Вікіпедії, вільної енциклопедії
Регі́стр проце́сора — комірка швидкодійної внутрішньої пам'яті процесора, яка використовується для тимчасового збереження операндів, з якими безпосередньо проводяться обчислення, а також часто використовуваних даних з метою швидкого доступу до них. Крім того, в регістрах зберігається і додаткова інформація, потрібна процесору для функціонування (зокрема, поточний контекст процесора, адреса наступної команди тощо).
Процесори зазвичай містять від декількох до декількох сотень регістрів різного функціонального призначення.
Регістри найчастіше реалізуються як масиви статичної пам'яті з довільним доступом (SRAM), хоча також можуть реалізовуватись на базі бістабільних комірок (тригерів), інших схемотехнічних рішень, придатних для реалізації швидких запам'ятовувальних пристроїв.
Регістри характеризуються своєю розрядністю, тобто кількістю біт інформації, яка може в них розміщуватись (наприклад, 8-розрядний регістр, 64-розрядний регістр).
З погляду архітектури комп'ютера, під цим терміном розуміють лише набір тих регістрів, які доступні програмісту в рамках документованої програмної моделі процесора. Точніше такі регістри називають архітектурними. Наприклад, архітектура x86 визначає лише вісім 32-розрядних регістрів загального призначення, але процесор фактично містить набагато більше реальних апаратних регістрів. Така надлишковість потрібна для реалізації деяких мікроархітектурних оптимізацій швидкодії процесора (див. докладніше Паралелізм рівня команди).
За функціональним призначенням регістри процесора поділяються на такі:
У таблиці показано кількість регістрів загального призначення в декількох поширених архітектурах мікропроцесорів. Варто відзначити, що в деяких архітектурах використання окремих регістрів може бути ускладнене. Так, як SPARC та MIPS регістр номер 0 не зберігає інформацію і завжди зчитується як 0, а в процесорах x86 з регістром ESP (покажчик на стек) можуть працювати лише деякі команди.
Архітектура | Цілочисельних регістрів |
FP регістрів |
Примітки |
---|---|---|---|
x86-32 | 8 | 8 | |
x86-64[1] | 16 | 16 | |
IBM System/360 | 16 | 4 | |
z/Architecture | 16 | 16 | |
Itanium | 128 | 128 | |
SPARC | 31 | 32 | Регістр 0 (глобальний) завжди занулений |
IBM Cell | 4~16 | 1~4 | |
IBM POWER[en] | 32 | 32 | |
Power Architecture[en] | 32 | 32 | |
Alpha | 32 | 32 | |
6502 | 3 | 0 | |
W65C816S | 5 | 0 | |
PIC microcontroller | 1 | 0 | |
AVR | 32 | 0 | 4 старших регістри можуть об'єднуватися у 16-бітові пари, три з яких можуть використовуватися як вказівники |
ARM 32-bit[2] | 16 | varies | |
ARM 64-bit[3] | 31 | 32 | |
MIPS, RISC-V | 31 | 32 | Регістр 0 завжди занулений |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.