Відкрити головне меню
Фізичні і віртуальні адреси пам'яті

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

Фізичні і віртуальні адреси можуть не збігатися у комп'ютерах або процесорах, які мають модуль керування пам'яттю (англ. memory management unit, MMU). У такому випадку віртуальною адресою комірки вважається та, що є до трансляції MMU, а фізичною — після трансляції (можна спрощено сказати, що блок MMU виставляє результат трансляції прямо на шину адреси)[1].

Вирівняна і невирівняна адресаціяРедагувати

Залежно від архітектури машини, швидкодія комп'ютера може зменшуватися через так званий невирівняний (англ. unaligned) доступ до даних. Наприклад, у 16-розрядному комп'ютері з 16-розрядною шиною даних доступ до комірки пам'яті, яка розташована за парною адресою (іншими словами, «вирівняна» по межі 16-розрядного слова) є швидшим, ніж до комірок, адресованих непарно: доступ до вирівняних даних займає лише один такт.[2][3]

Якщо 16-розрядне значення розташоване за непарною адресою, процесору може знадобитися два цикли читання з пам'яті: перший для нижньої половини потрібної адреси (верхня відкидається), і другий — для верхньої половини (знову відкидаючи половину щойно зчитаного 16-розрядного слова). На деяких процесорах, таких як Motorola 68000 або SPARC, «невирівняний» доступ до пам'яті є неприпустимим і призводить до виняткової ситуації (у стандарті POSIX для цього означено сигнал SIGBUS).[2]

ПриміткиРедагувати

  1. Frank Uyeda (2009). Lecture 7: Memory Management (PDF). CSE 120: Principles of Operating Systems. UC San Diego. Процитовано 2013-12-04. 
  2. а б Daniel Drake (2007-12-04). Memory access and alignments. LWN.net. Процитовано 2013-12-04. 
  3. Daniel Drake; Johannes Berg. Documentation/unaligned-memory-access.txt. kernel.org. Процитовано 2013-12-04.