Сегменты и страницы


Предыдущая | Следующая

Сегменты и страницы
В процессоре 386 есть шесть 16-битовых сегментов регистров. В R-режиме сегмент может содержать от одного до 64 Кбайт. Сегмент в памяти ограничен 16 бит, которые можно использовать для адреса. В Р-режиме при наличии дополнительных дескрипторных регистров сегмент в памяти может содержать от одного байта до 4 Гбайт*, обеспечиваемых 32-битовым адресом.
На практике память разделяется на сегменты, в которых хранятся различные модули программы. Размеры сегментов соответствуют размерам загружаемых в них модулей. В Р-режиме обеспечивается индивидуальная защита каждого сегмента. Сегменты в процессоре могут иметь размер до 4 Гбайт
На рис. 16.19. показано, как сегментация формирует адрес в виртуальной памяти. Отметим наличие 16-битового регистра селектора сегмента, который выбирает целевой сегмент. В свою очередь, 32-битовое смещение выбирает адрес в целевом сегменте. i
Через 16-битовый селектор обращаются к дескрипторной таблице, которой управляет операционная система. Из таблицы считывается 8-битовый дескриптор. Он содержит 32-битовый базовый адрес и другую информацию о сегменте. Базовый адрес суммируется со смещением, и получается фактический адрес в виртуальной памяти.
Без страничного преобразования виртуальный адрес служит и физическим адресом. Когда же действует страничное преобразование, виртуальный адрес проходит через устройство страничного преобразования. Страница представляет собой блок 4 Кбайт, и память оказывается организованной как книга. Вся память, если считать ее книгой, состоит из страниц 4 Кбайта.
Устройство страничного преобразования формирует физический адрес. Старшие десять битов берутся из таблицы каталога страниц, которые дают адрес таблицы страниц нужной ячейки. Следующие старшие десять битов суммируются с десятью битами из каталога страниц, и в результате получается номер страницы. После этого младшие 12 бит суммируются с номером страницы и получается 32-битовый физический адрес.
В процессоре 386 устройства сегментации и страничного преобразования действуют независимо. Сегментацию можно использовать и одну, без страничного преобразования. Страничное преобразование также можно использовать само по себе или с сегментацией. Выбор определяется программистом.
Рассмотренные две системы обеспечивают управление памятью. Сегментация позволяет разделять данные, применять защиту и выполнять несколько задач. Страничное преобразование имеет дело с управлением физической памятью. При совместной работе сегментация формирует 32-битовый виртуальный адрес для устройства страничного преобразования, а оно образует 32-битовый физический адрес, который выдается на шину адреса.

 

 Поиск и устранение неисправностей в персональных компьютерах