Адресное пространство процессора
Обновлено: 21.11.2024
Это общее физическое адресное пространство процессора, и оно является линейным.
Статьи по теме
Существует две модели памяти, в которых адрес памяти сопоставляется с физическим адресным пространством:
Сегментированная модель, в которой физическое адресное пространство разбивается на сегменты, создавая логическое адресное пространство для каждого сегмента
Действительный размер физического адреса процессоров IA-32 зависит от реализации. В 64-битном режиме имеется архитектурная поддержка 64-битного линейного адресного пространства. Однако процессоры, поддерживающие архитектуру Intel 64, могут иметь разрядность менее 64 бит (см. раздел 3.3.7.1). Линейное адресное пространство сопоставляется с физическим адресным пространством процессора с помощью механизма подкачки PAE.
Максимальный размер
Максимальный размер физической памяти ограничен:
32-разрядные компьютеры используют некоторые обходные пути, чтобы иметь возможность обращаться к более чем 4 ГБ оперативной памяти, добавляя:
Однако это по-прежнему не позволяет процессам свободно обращаться к более чем 4 ГБ ОЗУ.
Рекомендуемые страницы
Память — Оперативная память (ОЗУ)
Память - Оперативная память (ОЗУ) Об ОЗУ (Оперативная память), известная также как физическая память, является компонентом основной памяти. Слово ОЗУ часто ассоциируется с энергозависимыми типами м".
Адресная шина
Адресная шина для передачи адреса (информации о местоположении). Когда процессору необходимо прочитать или записать ячейку памяти, он указывает эту ячейку памяти на адресной шине (значение, которое нужно прочитать ".
Линейное адресное пространство
В линейном адресном пространстве память представляется программе как единое непрерывное адресное пространство. Адрес любого байта в линейном адресном пространстве называется линейным адресом. Статьи по теме Адресация на ".
Память — адресное пространство
Диапазон памяти, к которому можно обратиться, называется адресным пространством. Это общее количество ячеек памяти с уникальной адресацией. То же, что и в памяти. ? Статьи по теме Иерархия Физическая Все ".
Память — Исключение ошибки страницы
Ошибка страницы возникает, когда (ядру|процессору) требуется страница, он обнаруживает, что ее нет в физической памяти, поскольку она была выгружена, и повторно считывает ее с диска. Статьи по теме "Управление Шоу П".
Память — физический адрес
Физический адрес — это адрес памяти в физическом адресном пространстве процессора. Статьи по теме
Память — Сегмент
Сегмент памяти – это структура сегментированной модели памяти. Спецификация физического адреса (физическая память) основной памяти делится на сегменты. См. виртуальную память виртуального сегмента «Искусство».
Расширения физических адресов (PAE)
это функция ЦП Intel для адресации физического адресного пространства размером более 4 ГБ на 32-разрядном компьютере. Это механизм подкачки. Статьи по теме
Процесс — резидентная память
Резидентная память — это часть памяти процесса, которая соответствует физической памяти, фактически используемой этим процессом. Со временем операционная система может заменить некоторые из файлов процесса ".
Виртуальная память предназначена для использования адресного пространства .
Под адресным пространством процессора понимается диапазон возможных адресов, которые он может использовать при загрузке и сохранении в памяти. Адресное пространство ограничено шириной регистров, поскольку, как мы знаем, для загрузки адреса нам нужно выполнить команду загрузки с адресом для загрузки, хранящимся в регистре. Например, регистры шириной 32 бита могут содержать адреса в диапазоне регистров от 0x00000000 до 0xFFFFFFFF. 2^32 равно 4 ГБ, поэтому 32-разрядный процессор может загружать или хранить до 4 ГБ памяти.
64-битные вычисления
Новые процессоры, как правило, все 64-разрядные процессоры, которые, как следует из названия, имеют регистры шириной 64 бита. В качестве упражнения вы должны определить адресное пространство, доступное этим процессорам (подсказка: оно большое!).
Канонические адреса
Хотя 64-разрядные процессоры имеют 64-разрядные регистры, системы обычно не реализуют все 64-разрядные адреса для адресации — на самом деле невозможно загрузить или сохранить все 16 экзабайт теоретической физической памяти!
Поэтому в большинстве архитектур определяется нереализованная область адресного пространства, которую процессор будет считать непригодной для использования. И x86-64, и Itanium определяют самый старший допустимый бит адреса, который затем должен быть дополнен знаком (см. раздел «Расширение знака») для создания действительного адреса. Результатом этого является то, что общее адресное пространство эффективно разделено на две части, верхнюю и нижнюю части, а адреса между ними считаются недействительными. Это показано на Рисунке 6.1, «Иллюстрация канонических адресов». Действительные адреса называются каноническими адресами (недействительные адреса считаются не-каноническими).
Точное значение старшего значащего бита для процессора обычно можно найти, запросив сам процессор с помощью его информационных инструкций. Хотя точное значение зависит от реализации, обычное значение равно 48; предоставляя 2 48 = 256 ТиБ доступного адресного пространства.
Сокращение возможного адресного пространства означает, что можно добиться значительной экономии на всех частях логики адресации в процессоре и связанных компонентах, поскольку они знают, что им не нужно будет иметь дело с полными 64-битными адресами. Поскольку реализация определяет старшие биты как расширенные со знаком, это не позволяет переносимым операционным системам использовать эти биты для хранения или пометки дополнительной информации и обеспечения совместимости, если реализация захочет реализовать больше адресного пространства в будущем.
Использование адресного пространства
Как и большинство компонентов операционной системы, виртуальная память действует как абстракция между адресным пространством и физической памятью, доступной в системе. Это означает, что когда программа использует адрес, этот адрес не относится к битам в реальном физическом местоположении в памяти.
С этой целью мы говорим, что все адреса, которые использует программа, являются виртуальными . Операционная система отслеживает виртуальные адреса и то, как они распределяются между физическими адресами. Когда программа выполняет загрузку или сохранение по адресу, процессор и операционная система работают вместе, чтобы преобразовать этот виртуальный адрес в фактический адрес в микросхемах системной памяти.
Это 2^(число всех контактных адресов, доступных на процессоре)?
Это 2^(размер одного конкретного регистра)?
Это аппаратная схема, которая понимает все адреса в диапазоне адресов? Тогда что это?
Я не спрашиваю здесь о виртуальном адресном пространстве, я не знаю, как оно называется, возможно, это физическое адресное пространство всех физических устройств, включая оперативную память. Кроме того, даже если я получу правильный ответ, я хотел бы спросить, почему мой процессор имеет 2 ^ 39 бит (512 ГБ) адресного пространства памяти и 64 КБ + 3 пространства памяти ввода-вывода. Эта информация написана в документации Intel для моей системы в упаковке (intel core i3-4005U со встроенным PCH lynx point-m).
Вы можете отредактировать мой вопрос, если я задаю его неправильно. Спасибо.
1 Ответ 1
Размер физического адресного пространства ЦП является произвольным выбором разработчиков. Ширина тегов кеша и записей TLB должна быть достаточно широкой, потому что кеши физически помечены (включая L1d в большинстве процессоров, включая все Intel) и другие внутренние вещи, связанные с физическими адресами. (Как и буфер хранилища, для сопоставления адресов загрузки с незавершенными хранилищами. А также для сопоставления хранилищ с адресами кода в процессе выполнения.)
Все процессоры клиентов Haswell используют одну и ту же микроархитектуру ядра, поэтому, хотя чипу для ноутбука не нужно так много, некоторым настольным компьютерам с одним сокетом, отличным от Xeon, может понадобиться. (Я думаю, что это правда; экономия небольшого количества места и / или энергии за счет изменения ширины тега кэша на 1 или 2 бита может быть правдоподобной, но IDK, если Intel сделает это; я думаю, что они действительно хотят проверить дизайн только один раз.) < /p>
Помните, что память устройства (включая карту PCIe, такую как VGA или вычислительная карта Xeon Phi) обычно сопоставляется с физическим адресным пространством, чтобы ЦП мог получить к ней доступ с загрузкой/сохранением (после указания виртуальных страниц на эти области физического адреса). пространство). PCIe использует ссылки фиксированной ширины и отправляет адреса как часть «пакетов» сообщений; дополнительные контакты не требуются для большего количества адресов.
Виртуальная память предназначена для использования адресного пространства .
Под адресным пространством процессора понимается диапазон возможных адресов, которые он может использовать при загрузке и сохранении в памяти.Адресное пространство ограничено шириной регистров, поскольку, как мы знаем, для загрузки адреса нам нужно выполнить команду загрузки с адресом для загрузки, хранящимся в регистре. Например, регистры шириной 32 бита могут содержать адреса в диапазоне регистров от 0x00000000 до 0xFFFFFFFF. 2^32 равно 4 ГБ, поэтому 32-разрядный процессор может загружать или хранить до 4 ГБ памяти.
64-битные вычисления
Новые процессоры, как правило, все 64-разрядные процессоры, которые, как следует из названия, имеют регистры шириной 64 бита. В качестве упражнения вы должны определить адресное пространство, доступное этим процессорам (подсказка: оно большое!).
Канонические адреса
Хотя 64-разрядные процессоры имеют 64-разрядные регистры, системы обычно не реализуют все 64-разрядные адреса для адресации — на самом деле невозможно загрузить или сохранить все 16 экзабайт теоретической физической памяти!
Поэтому в большинстве архитектур определяется нереализованная область адресного пространства, которую процессор будет считать непригодной для использования. И x86-64, и Itanium определяют самый старший допустимый бит адреса, который затем должен быть дополнен знаком (см. раздел «Расширение знака») для создания действительного адреса. Результатом этого является то, что общее адресное пространство эффективно разделено на две части, верхнюю и нижнюю части, а адреса между ними считаются недействительными. Это показано на Рисунке 6.1, «Иллюстрация канонических адресов». Действительные адреса называются каноническими адресами (недействительные адреса считаются не-каноническими).
Точное значение старшего значащего бита для процессора обычно можно найти, запросив сам процессор с помощью его информационных инструкций. Хотя точное значение зависит от реализации, обычное значение равно 48; предоставляя 2 48 = 256 ТиБ доступного адресного пространства.
Сокращение возможного адресного пространства означает, что можно добиться значительной экономии на всех частях логики адресации в процессоре и связанных компонентах, поскольку они знают, что им не нужно будет иметь дело с полными 64-битными адресами. Поскольку реализация определяет старшие биты как расширенные со знаком, это не позволяет переносимым операционным системам использовать эти биты для хранения или пометки дополнительной информации и обеспечения совместимости, если реализация захочет реализовать больше адресного пространства в будущем.
Использование адресного пространства
Как и большинство компонентов операционной системы, виртуальная память действует как абстракция между адресным пространством и физической памятью, доступной в системе. Это означает, что когда программа использует адрес, этот адрес не относится к битам в реальном физическом местоположении в памяти.
С этой целью мы говорим, что все адреса, которые использует программа, являются виртуальными . Операционная система отслеживает виртуальные адреса и то, как они распределяются между физическими адресами. Когда программа выполняет загрузку или сохранение по адресу, процессор и операционная система работают вместе, чтобы преобразовать этот виртуальный адрес в фактический адрес в микросхемах системной памяти.
Читайте также: