Когда модуль управления памятью преобразует логический адрес в физический адрес с помощью таблицы перевода, как физический адрес сопоставляется с этим адресом в оперативной памяти. Что я хочу сказать, это как, по этому адресу, а не по какому-либо другому адресу? Имеет ли конкретный адрес памяти какую-то уникальность, которая отличает его от других адресов? Или каждые 2 байта в оперативной памяти хранят один байт в качестве адреса, а другой - для данных?

1 ответ1

2

Да, каждый адрес памяти (физический и виртуальный) уникален - уникальный номер. Обычно для определения адреса в памяти используются от четырех до восьми байтов, что создает диапазон адресов, называемый адресным пространством. Когда архитектура ЦП использует 32-разрядное адресное пространство, диапазон адресов составляет от 0 до 4294967295 . Когда архитектура ЦП использует 64-разрядное адресное пространство, диапазон адресов составляет от 0 до 18446744073709551615 .

В таблице трансляции хранятся только два адреса: адрес физической памяти и адрес виртуальной памяти. Адрес указывает на первый байт большого раздела в памяти, называемый страницей. Размер этой страницы обычно большой, обычно 4 КБ, но не является стандартным. Таким образом, таблица перевода не должна хранить адрес для каждого байта в памяти (что фактически практически невозможно, когда диапазон памяти превышает 255 байтов).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .