﻿# Почему 64\-битные операционные системы используют для адресации только 48\-битные адреса

Адрес, используемый в программе, то есть значение указателя, это так называемый "виртуальный адрес"\. Процессор содержит в себе небольшой объём сверхбыстрой ассоциативной памяти, в котором содержится преобразование нескольких \(часто 64\) виртуальных адресов страниц в его физические адреса\. Так как 64 строк таблицы явно недостаточно для реальных задач, в x86 архитектурах используются таблицы страниц, размещённые в основной памяти\. Каждая таблица страниц сама является страницей и состоит из записей таблицы страниц\. Так как число записей в одной таблице ограничено и зависит от размера записи и размера страницы, используется многоуровневая организация таблиц, часто 2 или 3 уровня, иногда даже 4 уровня \(для 64\-х разрядных архитектур\)\.

Современные реализации архитектуры x86\-64 используют 48 битные физические адреса \(с возможностью расширения до 52 бит в будущем\), позволяя адресовать до 256 TB основной памяти\. Данный объём в настоящее время считается избыточным для реальных систем, а увеличение разрядности адресов приведёт к раздуванию таблиц страниц и, соответственно, увеличению количества их уровней\.

## Библиографический список

1. Обсуждение на сайте stackoverflow\.com\. [Why can't OS use entire 64\-bits for addressing? Why only the 48\-bits?](https://stackoverflow.com/questions/3219562/why-cant-os-use-entire-64-bits-for-addressing-why-only-the-48-bits/3220642)
1. Wikipedia\. [Страничная память\.](https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C)