Виртуальная (кажущаяся) память ВП отличается от обычной ОП тем, что ка-кие-то её редко используемые фрагменты могут находиться во внешней памяти, на диске, и подгружаться в реальную ОП по мере необходимости. Применение ВП поз-воляет увеличить адресное пространство АП в сотни до тысяч раз по сравнению с тем, которое предоставляет физическая ОП, за счёт локализации обрабатываемых данных во внешней памяти. При этом время доступа в расширенном адресном пространстве оказывается меньше, чем в физической памяти такого же объёма, а цена меньше. АП увеличивается путём увеличения разрядности шины адреса.
Виртуальная память может быть организована как страничная и сегментная.
При страничнойорганизации ОП организуется как совокупность блоков размером от 64 байт до 4 Кбайт. При этом основная часть страниц хранится во внешней памяти, а в ОП пересылаются из внешней памяти страницы с данными, обрабатываемыми в данный момент. Такая локализация данных сокращает время вычислений, несмотря на потери времени на пересылку страниц между основной и внешней памятью. Адресное пространство виртуальной памяти при страничной организации может в сотни (до тысяч) раз превышать объём физической памяти.
Команды процессора используют виртуальные адреса, которые состоят из двух частей: номера виртуальной страницы и адреса внутри страницы. Номера страниц определяются по таблице страниц РТ (Page Table), каждая строка которой соответст-вует одной виртуальной странице.
Использование ВП требует двух обращений к памяти: первое обращение – для работы с таблицей, второе – для доступа к данным внутри страницы, что также приводит к потере времени.
Рисунок 2. 3.4 – Структура страничного АП Рисунок 2.3.5 - Пример АП
(а); формирование адреса с применением с разделением на сегменты
переключателя страниц (б)
Для организации страничной ВП вводится, в дополнение к регистрам РС – счёт-чика адреса команд и SP – указателя стека, регистр – переключатель страниц. При
восьми его разрядах добавляются восемь дополнительных линий адреса.
Структура нового АП приведена на рисунке 2.17. Страницы имеют фиксирован-ный размер, поэтому в памяти могут остаться неиспользуемые области.
Сегментный метод– это механизм адресации, обеспечивающий существование нескольких адресных пространств. Сегменты – это независимые блоки памяти произвольного размера. Пример АП с разделением на сегменты приведён на рисунке 2.19. Адресация команд и данных осуществляется относительно базового регистра, разрядность которого обычно равна разрядности СчАК. Для формирования адреса используется параллельный двоич-ный сумматор, на входы которого подаются содержимое базового регистра и СчАК (см. рисунок 2.19).
Количество сегментов определяется количеством базовых регистров. Сегменты могут перекрываться в АП, за счёт чего регулируется размер памяти, отводимый на каждый сегмент памяти. В компьютерах IBM PC имеется четыре базовых регистра, которые определяют сегмент данных, сегмент программы, сегмент стека и дополнительный сегмент. Информация в базовые регистры заносит операционная система при переключении задач.
Рисунок 2. 3.6 – Модификация адресов при сегментной адресации