Логические, линейные и физические адреса

логические линейные и физические адреса памяти компьютера

You: тема разговора - организация памяти

Losh@dka: Различные технологии производства памяти, такие как SRAM, DRAM и жесткие диски, позволяют найти компромисс между емкостью, скоростью работы и ценой памяти. В этой главе мы рассмотрели организацию иерархии памяти, включающую кэш-память и виртуальную память, которая позволяет разработчикам приблизиться к идеалу – большой, быстрой и дешевой памяти. Оперативная память обычно использует динамическую память (DRAM) и работает существенно медленнее, чем процессор. Кэш, который хранит часто используемые данные в гораздо более быстрой статической памяти SRAM, используется для уменьшения времени доступа к оперативной памяти. Виртуальная память позволяет увеличить доступный объём памяти, используя жесткий диск, на котором располагаются данные, не помещающиеся в оперативную Глава 8 Иерархия памяти и подсистема ввода-вывода 1387 память. ;-}

Жесткий диск. Цель включения жесткого диска в иерархию памяти – занедорого создать видимость памяти большого объема, одновременно обеспечивая для большинства обращений к памяти скорость доступа, равную скорости более быстрых типов памяти. Например, компьютер с оперативной памятью на 128 Мбайт может обеспечить видимость наличия 2 Гбайт оперативной памяти, используя для этого жесткий диск. В этом случае большая память, объёмом 2 Гбайта, называется виртуальной памятью, а меньшая память, объёмом 128 Мбайт, называется физической памятью. В этом разделе мы будем использовать термин физическая память, подразумевая оперативную память.

Но скорость процессоров росла быстрее, чем скорость памяти. В настоящее время оперативаня память типа DRAM (Dynamic Random Access Memory, динамическая память с произвольным доступом) медленнее процессора от 10 до 100 раз. Увеличивающийся разрыв в скорости между процессором и оперативной памятью требует все более и более изощренных подсистем памяти, чтобы попытаться приблизить скорость работы памяти к скорости процессора. Первая половина этой главы рассказывает о подсистемах памяти и анализирует различные компромиссы между их скоростью, емкостью и ценой. Процессор работает с памятью через интерфейс памяти (memory interface). ;-}

Быстрая память используется для хранения часто используемых данных и команд, так что создается впечатление, что подсистема памяти всегда работает довольно быстро. Остальные данные и команды хранятся в большой памяти, которая работает медленнее, но позволяет иметь большой общий объем памяти. Комбинация двух дешёвых типов памяти – это намного менее дорогой вариант, чем одна большая и быстрая память. Этот принцип распространяется на всю иерархию памяти, так как с увеличением объема памяти уменьшается ее скорость работы. Оперативная память компьютера обычно строится на микросхемах динамической памяти (DRAM). ;-)

You: расскажи об организации памяти в Windows?

Losh@dka: Кластер, построенный перед записью. Наконец, обработчик ошибок страниц использует информацию из битовой карты резервирования и PTE-записей для определения начальной и конечной точки кластеров, чтобы эффективно загрузить необходимые страницы. Лимиты физической памяти. Теперь, когда вы узнали, как в Windows организовано отслеживание физической памяти, поговорим о том, насколько большой объем этой памяти Windows фактиче­ски может поддерживать. Поскольку большинство систем в процессе своей работы обращаются к коду и данным, объем которых превышает емкость физической па­мяти, эта память по сути представляет собой окно для обращения к используемым коду и данным. Объем памяти может тем самым влиять на производительность; когда данные (или код), в которых нуждается процесс или операционная система, отсутствуют, диспетчер памяти должен доставить их в память с диска или из уда­ ленного хранилища. Кроме влияния на производительность объем физической памяти определяет лимиты других ресурсов. Например, вполне очевидно, что объемы невыгружаемого пула, буферов операционной системы, поддерживаемых физической памятью, объемом этой памяти и ограничиваются.

You: какие модели памяти поддерживает процессор x86

Losh@dka: При этом чтение из кэша все равно будет происходить

бит 29: NW - запрещает сквозную запись во внутренний кэш - данные, записываемые в кэш, не появляются на внешних выводах процессора

бит 18: AM - разрешает флагу АС включать режим, в котором не выровненные обращения к памяти на уровне привилегий 3 вызывают исключение #АС

бит 16: WP - запрещает запись в страницы, помеченные как «только для чтения» на всех уровнях привилегий (если WP = 0, защита распространяется лишь на уровень 3). Этот бит предназначен для реализации метода копирования процесса, популярного в UNIX, в котором вся память нового процесса сначала полностью совпадает со старым, а затем, при попытке записи, создается копия страницы, к которой происходит обращение

бит 5: NE - включает режим, в котором ошибки FPU вызывают исключение #MF, а не IRQ13

бит 4: ЕТ - использовался только на 80386DX и указывал, что FPU присутствует

бит 3: TS - устанавливается процессором после переключения задач. Если затем выполнить любую команду FPU, произойдет исключение #NM, обработчик которого может сохранить/восстановить состояние FPU, очистить этот бит командой CLTS и продолжить программу

бит 2: ЕМ - эмуляция сопроцессора. Каждая команда FPU вызывает исключение #NM

бит 1: МР - управляет тем, как исполняется команда WAIT. Должен быть установлен для совместимости с программами, написанными для 80286 и 80386 и использующими эту команду

бит 0: РЕ - если он равен 1, процессор находится в защищенном режиме (остальные биты зарезервированы, и программы не должны изменять их зна-чения)

CR1: зарезервирован

CR2: регистр адреса ошибки страницы. Когда происходит исключение #PF, из этого регистра можно прочитать линейный адрес, обращение к которому вызвало исключение.

CR3 (PDBR): регистр основной таблицы страниц

биты 31-11: 20 старших бит физического адреса начала каталога страниц, если бит РАЕ в CR4 равен нулю, или биты 31-5: 27 старших бит физического адреса таблицы указателей на каталоги страниц, если бит РАЕ = 1 бит 4

(80486+): бит PCD (запрещение кэширования страниц) - этот бит запрещает загрузку текущей страницы в кэш-память (например, если произошло прерывание и система не хочет, чтобы обработчик прерывания вытеснил основную программу из кэша), бит 3

(80486+): бит PWT (бит сквозной записи страниц) - управляет методом записи страниц во внешний кэш

CR4: этот регистр (появился только в процессорах Pentium) управляет новыми возможностями процессоров.

You: линейная модель памяти

Losh@dka: Какой объем установленной оператив­ной памяти «видит» операционная система, можно посмотреть в диалоговом окне Свойства системы (System Properties), но чтобы узнать, какой объем памяти фак­тически доступен Windows, нужно открыть вкладку Быстродействие (Performance) диспетчера задач или использовать утилиты Msinfo32 и Winver. Как показала ути­лита Msinfo32, на одном конкретном ноутбуке с оперативной памятью в 4 Гбайт и установленной 32-разрядной версией Windows 10 объем доступной физической памяти составил 3,87 Гбайт. Установленная оперативная память (RAM) 4 ,0 0 Гбайт; полный объем физической памяти 3 ,8 7 Гбайт. Структуру физической памяти можно посмотреть с помощью программы Memlnfo. Ниже показан результат запуска утилиты Memlnfo на 32-разрядной системе с клю­чом -г, предназначенным для вывода дампа диапазонов физической памяти: С:\Tools>MemInfo. exe -г

You: сегменты памяти и их селекторы

Сервисные функции, предоставляемые диспетчером памяти Диспетчер памяти предоставляет набор сервисных функций для выделения и ос­вобождения виртуальной памяти, совместного использования памяти между процессами, отображения файлов в память, записи виртуальных страниц на диск, получения информации о диапазоне виртуальных страниц, изменения защиты виртуальных страниц и блокировки виртуальных страниц в памяти. Сервисные функции управления памятью, как и другие сервисы исполняющей среды Windows, позволяют вызывающей стороне передать дескриптор процесса для обозначения конкретного процесса, с виртуальной памятью которого вы собирае­тесь работать. Вызывающая сторона может работать либо со своей памятью, либо (при наличии необходимых разрешений) с памятью другого процесса. Например, если процесс создает дочерний процесс, по умолчанию ему предоставляется право работать с виртуальной памятью дочернего процесса.

Чтобы получить линейный адрес из логического, процессор добавляет к смещению линейный адрес начала сегмента, который хранится в поле базы в сегментном дескрипторе. Сегментный дескриптор - это 8-байтная структура данных, расположенная в таблице GDT или LDT; адрес таблицы находится в регистре GDTR или LDTR, а номер дескриптора в таблице определяется по значению селектора. Дескриптор для селектора, находящегося в сегментном регистре, не считывается из памяти при каждом обращении, а хранится в скрытой части сегментного регистра и загружается только при выполнении команд MOV (в сегментный регистр), POP (в сегментный регистр), LDS, LES, LSS, LGS, LFS и дальних команд перехода. Селектор - это 16-битное число следующего формата:

биты 16-3: номер дескриптора в таблице (от 0 до 8191)

бит 2: 1 - использовать LDT, 0 - использовать GDT

биты 1-0: запрашиваемый уровень привилегий при обращении к сегменту и текущий уровень привилегий для селектора, загруженного в CS

Селектор, содержащий нулевые биты 16-3, называется нулевым и требуется для загрузки в неиспользуемые сегментные регистры. ;-)

You: трансляция линейного адреса в страничный адрес в таблице страниц

Losh@dka: Трансляция адреса при помощи таблицы страниц. Таблица страниц может храниться в любом месте физической памяти, ее расположение определяется операционной системой. Процессор обычно использует выделенный регистр, называемый регистром таблицы страниц, для хранения ее базового адреса. Чтобы выполнить операцию загрузки или сохранения данных, процессор должен сначала транслировать виртуальный адрес в физический, а затем обратиться к физической памяти, используя полученный физический адрес. Процессор извлекает номер виртуальной страницы из виртуального адреса и прибавляет его к содержимому регистра таблицы страниц, чтобы найти физический адрес соответствующей записи в таблице страниц, расположенной в физической памяти. Затем процессор считывает эту запись и получает номер физической страницы.

You: спасибо за интервью, Losh@dka!

аудио браузер т - слушаем сайты как радиостанции

Аудио-браузер Т для прослушивания сайтов как радиостанций. Также - для "интернета в голове". Кликни на картинку, чтобы узнать больше!