Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Центральные и переферийные устройства электронно вычислительных средств.pdf
Скачиваний:
284
Добавлен:
02.05.2014
Размер:
6.14 Mб
Скачать

Глава 10. Организация безадресной и виртуальной памяти

163

Для реализации АЗУ необходимы запоминающие элементы, допускающие считывание без разрушения записанной в них информации (неразрушающее считывание). Это связано с тем, что при ассоциативном поиске считывание производится по всему ЗМ для всех незамаскированных разрядов и негде сохранять временно разрушаемую считыванием информацию. Такими запоминающими элементами могут быть триггеры на МДП-транзисто- рах и на биполярных транзисторах.

Посредством операции контроля ассоциации можно, не считывая слова из памяти, определить по содержимому регистра совпадения, сколько в памяти слов, удовлетворяющих ассоциативному признаку, например, реализовывать запросы типа: сколько студентов в группе имеют отличную оценку по данной дисциплине. При использовании соответствующих комбинационных схем в АЗУ могут выполняться достаточно сложные логические операции, такие, как поиск большего (меньшего) числа, поиск слов, заключенных в определенных границах, поиск максимального (минимального) числа и другие.

АЗУ могут решать задачи, связанные с обработкой больших массивов информации: накопления, отбора, сортировки и статистического анализа экономической и измерительной информации; динамического программирования; распознавания образов; преобразования кодов; контроля и коррекции ошибок. АЗУ входят в состав специализированных ЭВМ, предназначенных для поиска и упорядочения вывода информации; в универсальных ЭВМ в качестве сверхоперативного ЗУ (СОЗУ), позволяющих значительно ускорять процесс обработки информации. Ассоциативное ЗУ может применяться для хранения страничной таблицы виртуальной памяти.

10.3. Виртуальная память со страничной организацией

Физическая память современных ЭВМ и систем имеет иерархическую многоуровневую структуру. Чем выше уровень, тем больше быстродействие соответствующей памяти, но меньше ее емкость. К верхнему уровню относятся ЗУ, с которыми процессор непосредственно взаимодействует в процессе выполнения программы. Это - оперативная память, относящаяся к наиболее дефицитным ресурсам в ВС, которыми надо пользоваться экономно и эффективно. Быстродействие ОЗУ оказывается недостаточным для обеспечения требований, предъявляемых к скорости работы ЭВМ средней и высокой производительности. Поэтому в состав процессора включают буферную сверхоперативную память небольшого объема и повышенного быстродействия (СОЗУ), хранящую команды и данные, относящиеся к обрабатываемому участку программы. Проблема усложняется при переходе к системам с распределением времени (мультипрограммным системам), так как в них ОЗУ одновременно используется несколькими программами. В таких системах необходимо исключить несанкционированное воздействие одних программ на другие, то есть предотвратить или ограничить обращения одной программы к областям памяти, используемым другими программами. Это достигается посредством механизма защиты памяти.

Эффективное распределение ресурса памяти между программами не может быть статическим, то есть невозможно провести распределение ресурса предварительно, до пуска программы, так как в процессе обработки данных по программам потребности в ресурсах памяти отдельных программ изменяются, что заранее не может быть учтено. Необходимо распределять память между программами непосредственно в ходе вычислительного процесса, то есть осуществлять динамическое распределение памяти. При этом должна обеспечиваться независимость работы нескольких программистов над своими программами, подлежащими мультипрограммной обработке. Динамическое распределение памяти не должно приводить к дроблению ее свободного пространства, называемому фрагментацией памяти, затрудняющему его использование. Это достигается на основе одноуровневой виртуальной памяти, допускающей адресацию на все адрес-

Глава 10. Организация безадресной и виртуальной памяти

164

ное пространство, размер которого определяется полем адресного кода команды. Гибкое динамическое распределение памяти мультипрограммной ВС, устранение фраг-

ментации памяти и удобство для работы программистов достигаются при организации памяти ЭВМ в виртуальную память.

В виртуальной памяти все рабочее адресное пространство ЭВМ разбито на две части, соответствующие аппаратуре внутренней памяти и более дешевой внешней памяти, а именно на быстродействующую память и медленную внешнюю память. В ЭВМ на базе процессора Intel 80286 адресное пространство составляет 16 Мбайт, а в случае процессора Intel 80386 это пространство составляет уже 4 Гбайт.

Термин “виртуальная память” был введен Деннингом в 1970 году. Необходимость создания виртуальной памяти была обусловлена двумя причинами: необходимостью запуска задач, требующих для своей обработки большого объема оперативной памяти, иногда превышающего размер физической памяти. Без механизма реализации виртуальной памяти решение таких задач не возможно. Второй причиной явилась необходимость надежной изоляции адресных пространств выполняемых в режиме мультипрограммирования задач в целях защиты самой операционной системы и удешевления разработки программного обеспечения. Позже в подтверждение необходимости создания виртуальной памяти было показано, что если при постановке задачи заранее оговаривается адресное пространство, в котором должно выполняться задание, то это вызывает резкое повышение стоимости программирования. Эти проблемы могли бы решаться применением ОЗУ чрезвычайно больших размеров, но такой подход экономически не выгоден.

Другой подход заключается в использовании операционной системы, которая создает иллюзию чрезвычайно большой оперативной памяти. Поскольку это только иллюзия, такая память называется “виртуальной”, кажущейся.

Существуют два основных способа управления виртуальной памятью: управление страничной памятью по запросам и управление сегментной памятью. При страничной организации все адресное пространство делится на страницы, то есть на установленные “порции” информации для обмена данными между памятью и устройствами передачи данных в системе со страничным обменом. Количество слов или байтов в странице жестко регламентировано для конкретной ВС и почти всегда кратно двум. Обычно страница содержит 4К данных. Термин “страница” является синонимом термина страничный “блок”, но второй чаще используется, когда речь идет о копии страницы, которая имеется в буфере устройства передачи данных.

При страничной организации памяти по запросам коэффициент использования оперативной памяти может превысить 100%. Это означает, что сумма адресных пространств заданий, выполняемых в режиме мультипрограммной обработки, может превысить объем физической памяти. Тогда отказываются от требования, чтобы все адресное пространство задания находилось в основной памяти, вместо этого в оперативную память загружается только часть адресного пространства задачи а оставшуюся часть загружают во внешнюю память. Это возможно осуществить благодаря следующим обстоятельствам:

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

-некоторые функции программ могут быть взаимоисключающими, например, сортировка платежных ведомостей либо по имени, либо по номеру служащих;

-под многие таблицы отводится фиксированное количество адресного пространства, хотя в действительности используется только небольшая часть таблицы. Например, если таблица имен ассемблера рассчитана на 1000 имен, а при конкретном прогоне программы их только 100, то 90% таблицы не используется в этом прогоне;

Глава 10. Организация безадресной и виртуальной памяти

165

-программы обработки ошибок, написанные пользователем, используются только при ошибочных ситуациях.

При страничной организации виртуальной памяти на всех этапах подготовки программы, включая загрузку в ОЗУ, программа представляется в виртуальных (говорят также математических) адресах и лишь при самом исполнении машинной команды производится преобразование, перекодирование виртуальных адресов в адреса действующей памяти, в так называемые физические адреса. Это преобразование составляет содержание динамического распределения памяти.

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

В мультипрограммной системе страничная организация памяти дает определенные преимущества:

-при загрузке новой программы в ОЗУ она может быть автоматически направлена в любые свободные в данный момент физические страницы независимо от того, расположены они подряд или нет, при этом не требуется перемещения информации в остальной части памяти, важно только, чтобы суммарный объем свободной части памяти был достаточен для размещения новой программы, что и приводит к дефрагментации памяти;

-сокращается объем передачи информации между ВЗУ и ОЗУ, так как страница программы не должна загружаться до тех пор, пока она действительно не понадобится, при этом уменьшаются требования к емкости ОЗУ, так как в нем должны содержаться только те участки различных программ, которые действительно работают (или будут работать) в течение ближайшего периода времени, неактивные же части программы продолжают оставаться в ВЗУ.

Основной недостаток разбиения на страницы, заключающийся в неэффективном использовании объема памяти, проявляется тогда, когда требуются участки очень маленького объема, поскольку наименьшей единицей распределения памяти является страница.

Правила перевода адресов виртуальных страниц в физические задаются в виде страничной таблицы, показанной на рис. 10.5. Страничная таблица, обозначаемая PMT, (от англ. page memory table), указывает соответствие номеров виртуальных страниц p и физических страниц P(p); b - номер байта. Страничная таблица формируется супервизором - управляющей программой, называемой также программой монитором или диспетчером, представляющей собой часть операционной системы, постоянно находящуюся в ОЗУ и непосредственно имеющую дело с аппаратной частью ЭВМ или ВС. Формирование PMT производится в процессе распределения памяти, и содержание таблицы перерабатывается супервизором каждый раз, когда в распределении памяти проводится изменение.

На рис.10.6 приведена схема устанавливаемого с помощью РМТ соответствия между виртуальными и физическими адресами при страничной организации памяти; на рис.10.7

показан пример реализации такой схемы для случая 32-разрядной ЭВМ. Здесь показано распределение памяти только для одной программы. В вычислительной системе с разделением времени обрабатывается сразу несколько программ (рис. 10.8). Кодирование поля состояния страничной таблицы таково: Y - данная страница находится в оперативной памяти, N - страница отсутствует в ОЗУ. РМТ во избежание наложения программ друг на друга должна учитывать также принадлежность страницы различным пользователям, а номер физической страницы Р может быть представлен как функция двух переменных: номера виртуальной страницы р и номера программы.

Глава 10. Организация безадресной и виртуальной памяти

166

Номер Номер виртуальной байта

страницы

Рв Виртуальный

 

 

адрес

 

 

Страничная

 

 

таблица (РМТ)

Р(р)

 

Номер

 

физической

 

 

 

 

страницы из

 

 

страничной

 

 

таблицы

Р(р)

в

Физический

 

 

адрес

α разрядов

β

разрядов

Рис. 10.5. Схема перевода виртуального адреса в физический

Виртуальная

Страничная

 

 

Физическая

 

память

таблица

 

 

ОП

 

 

 

 

Тип

Номер

 

 

 

0

 

 

 

 

памяти

физич.

 

 

 

1

 

 

 

 

 

страниц

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

0

 

 

 

ОП

5

 

 

 

 

 

 

1

 

 

 

ОП

0

 

 

 

4

 

 

 

2

 

 

 

ОП

7

 

 

 

5

 

 

 

3

 

 

 

ВЗУ

4

 

 

 

6

 

 

 

4

 

 

 

ВЗУ

10

 

 

 

7

 

 

 

5

 

 

 

ОП

8

 

 

 

8

 

 

 

 

 

 

6

 

 

 

ОП

9

 

 

 

9

 

 

 

 

7

 

 

 

ОП

1

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

память

ВЗУ

0

1

2

3

4

5

6

7

8

9

10

11

Рис. 10.6. Страничная организация виртуальной памяти

Страницы, к которым редко обращались в процессе вычислений, так называемые неактивные страницы, должны быть удалены из ОЗУ и записаны во внешнее ЗУ, например, на диск НМД. Стоимость хранения на магнитоносителе на один или два порядка дешевле, чем в полупроводниковой памяти. Однако размер объема виртуальной памяти ограничен размером памяти ВЗУ и, кроме того, скорость доступа в ВЗУ относительно низка.

При страничной организации памяти необходимо выполнять следующие функции: 1. Отслеживание состояния памяти с помощью таблиц:

-таблиц страниц, по одной на каждую задачу,

-таблицы блоков памяти, одной на систему,

-карт файлов - по одной на каждое адресное пространство.

2.Определение, кто и когда получает доступ к памяти. Это частично определяется программой - планировщиком заданий, отвечающей за управление распределением совместного ресурса ЭВМ между коллективом пользователей; в динамике это определяется также прерыванием по запросу страниц.

Глава 10. Организация безадресной и виртуальной памяти

167

Генерация процессором

Исполнительный адрес

 

 

исполнительного адреса

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

LOAD 1, смещ.(инд., база)

 

 

p

 

 

b

 

 

0

7

8

12

19

20

12 31

 

 

не исп.

 

№ стр.

Адрес байта

 

 

 

 

 

 

 

внутри стр.

 

№ стр.

№ блока

 

 

 

 

 

 

Адрес

0

 

 

 

 

 

 

 

 

 

 

РМТ(p)

 

b

физич.

1

 

 

 

 

 

 

 

 

 

 

 

памяти

2

 

 

 

 

 

 

 

0

 

 

 

 

 

 

31

3

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Физическая

 

 

 

 

 

 

 

память

4096

Табл. стр. РМТ

Рис. 10.7. Пример схемы вычисления адреса физической памяти по исполнительному адресу

 

 

 

 

 

0

 

Задача 1

 

 

 

 

1000

Операционная

0

 

 

 

 

 

0

Y

5

 

 

система

1000

 

2000

 

 

 

 

 

Задача 2

 

1

Y

6

 

 

2000

 

 

Страница 0

 

 

 

 

3000

 

 

 

 

 

 

 

 

 

 

 

Задача 2

 

 

 

 

4000

 

0

0

Y

2

 

Задача 2

 

 

 

 

 

 

Страница 1

1000

 

 

 

 

5000

 

 

 

 

Задача 1

 

1

Y

4

 

 

2000

 

6000

Страница 0

 

 

 

 

 

 

 

 

Задача 1

 

2

N

-

 

 

3000

?

 

Страница 1

 

 

 

7000

 

 

 

страница,

 

 

 

 

 

 

 

Задача 3

 

 

 

находящаяся

8000

 

0

0

Y

8

в ВЗУ

Задача 3

 

 

 

1000

 

 

Страница 0

 

 

 

 

9000

 

 

 

 

 

Виртуальные

Таблицы

 

 

10000

 

адресные

страниц

 

 

 

пространства

 

(РМТ)

 

 

 

 

 

 

 

 

 

11000

Физическая

 

 

 

 

 

 

 

 

 

 

 

 

страница

Рис. 10.8. Структура виртуальной памяти при страничном распределении по запросам

Глава 10. Организация безадресной и виртуальной памяти

168

3.Распределение. При возникновении необходимости в выделении блока программы должен быть найден свободный блок памяти и должно быть изменено состояние этого блока в таблицах.

4.Освобождение. Если при необходимости выделения памяти свободный блок не найден, должен быть освобожден и перераспределен один из уже выделенных блоков памяти. При завершении задания все используемые заданием блоки освобождаются.

Операция преобразования адресов может быть реализована и аппаратно. Если РМТ хранится в ОЗУ, то выборка каждого слова требует двух машинных циклов обращения к памяти вместо одного: лишний цикл необходим для обращения к РМТ. Для сокращения потерь времени при этом РМТ хранят в СОЗУ небольшой емкости. Поскольку сравнительно небольшое число физических страниц памяти активно используется в течение определенного промежутка времени, целесообразно иметь небольшое ассоциативное запоминающее устройство, содержащее данные только о недавно использовавшихся физических страницах. Вся остальная информация по преобразованию адресов может храниться в обычной памяти или в СОЗУ в виде РМТ, построенной по виртуальным страницам (рис. 10.9). Здесь a - число разрядов в номере виртуальной страницы. Наиболее простой случай - когда информация о запрашиваемой странице находится в АЗУ. В результате ассоциативного поиска находится регистр (на рисунке это третий регистр), хранящий нужную информацию, и из него номер физической страницы передается в адресный регистр ОЗУ, а его разряд использования устанавливается в 1.

Случаи, когда в АЗУ нет информации о странице (неактивная страница) и в АЗУ имеется или отсутствует свободный регистр, показаны на рисунках 10.10 и 10.11.

Номер

Виртуальный

программы

 

адрес

 

N

 

р

 

b

 

 

 

 

 

 

Проверка

 

 

 

совпадения

Разряд

Разряд

 

 

 

 

занятости

использования

 

2 N+p

P(p,N)

 

 

0

 

 

 

1

 

 

 

2

 

1

Ассоциативные

3

1

 

регистры

4

 

 

5

6

7

 

 

 

 

 

 

 

 

Адресный

 

 

 

 

 

 

P(p,N)

b

регистр

 

 

 

памяти

 

 

 

Рис. 10.9. Пример организации работы ассоциативной памяти страничных таблиц

Глава 10. Организация безадресной и виртуальной памяти

 

 

169

 

Номер

Виртуальный

 

 

программы

 

адрес

 

 

 

N

 

р

b

 

 

 

 

Не

 

 

 

 

совпало

Просмотр

 

 

Проверка

 

 

 

 

 

 

страничной

 

 

совпадения

 

таблицы

Разряд

 

 

 

 

в памяти

 

 

 

 

занятости

 

 

 

 

 

 

 

 

 

 

Разряд

 

2 N+p

 

P(p,N)

использования

 

0

 

 

1

 

 

1

 

 

1

 

 

2

 

 

0

Установка

Ассоциативные

3

 

 

0

разрядов

регистры

4

 

 

0

занятости

 

5

 

 

0

и использо-

 

 

 

вания в 1

 

6

 

 

0

 

 

 

 

 

7

 

 

0

 

Адресный

P(p,N) b регистр памяти

Рис. 10.10. Функционирование АЗУ РМТ при отсутствии в нем информации о странице и наличии свободного регистра

 

Номер

Виртуальный

 

 

 

 

программы

 

адрес

 

 

 

 

 

N

 

р

b

 

 

 

 

 

 

Не

 

 

 

 

 

 

 

совпало

 

Просмотр

 

 

 

 

 

 

 

 

Проверка

 

 

 

страничной

 

 

совпадения

 

 

таблицы

Разряд

 

 

 

 

 

в памяти

 

 

 

 

 

занятости

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Разряд

 

2 N+p

 

P(p,N)

 

 

использования

 

0

 

 

 

1

1

 

 

1

 

 

 

1

1

 

 

2

 

 

 

1

1

 

Ассоциативные

3

 

 

 

1

1

 

регистры

4

 

 

 

1

1

 

 

5

 

 

 

1

0

Установка

 

6

 

 

 

1

0

разряда

 

7

 

 

 

1

1

использо-

 

 

 

 

 

 

 

вания в 1

 

 

 

P(p,N)

b

Адресный

 

 

 

 

регистр

 

 

 

 

 

 

 

памяти

 

Рис. 10.11. Функционирование АЗУ РМТ при отсутствии в нем информации о странице и отсутствии свободного регистра

Глава 10. Организация безадресной и виртуальной памяти

170

 

 

 

ПЗУ BIOS

 

4х16К

 

 

 

 

 

 

 

Стр. с

 

EMS

 

 

 

 

16 К

 

 

фрагментами

 

 

 

отображения

 

до 32 М

 

 

 

 

 

 

 

памяти

 

 

16 К

 

 

 

 

 

 

 

 

ПЗУ

 

 

 

 

 

 

 

16 К

 

 

расш. BIOS

 

 

 

 

 

 

 

 

 

Видео

 

 

 

 

 

 

 

16 К

640 К

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DOS

Данные BIOS

0

 

Рис. 10.12. Спецификация отображаемой памяти EMS (LIM)

Другой способ хранения неактивных страниц - существование этих страниц не в ВЗУ, а в каком-нибудь параллельном адресном пространстве, зарезервированном в полупроводниковой памяти. Этот способ обладает гораздо более высокой скоростью переключения страниц. В персональных компьютерах используется хранение неактивных страниц в ОЗУ. На рис. 10.12 показана спецификация отображаемой памяти EMS (от англ. Explanded Memory Specification, иногда обозначаемой LIM) , то есть точное описание действий, которые необходимо выполнять для отображения неактивных страниц в полупроводниковой памяти. Спецификация EMS базируется на переключении блоков дополнительной памяти в зарезервированную область адресного пространства. EMSметод позволяет увеличивать объем оперативной памяти при ограничении адресного пространства со стороны процессора, при этом задействуются все линии шины адреса.

Отметим достоинства способа динамического распределения памяти страницами по запросам. За счет того, что адресные пространства заданий не ограничиваются объемом физической памяти, можно получить большой объем виртуальной памяти. Благодаря этому достигается лучшая совместимость больших и малых вычислительных машин при их объединении в сети. Как показали исследования, не менее 25% адресных пространств заданий не загружается при конкретном прогоне. При распределении страниц по запросам те части адресных пространств, которые не используются или используются редко, вообще не будут загружены во внутреннюю память, чем и достигается более эффективное ее использование. Кроме того, поскольку сумма всех адресных пространств заданий может превышать объем физической памяти за счет использования ВЗУ, достигается практически неограниченное мультипрограммирование, позволяющее одновременно работать за терминалами универсальной ЭВМ высокой производительности до 280 пользователям.

К недостаткам распределения страницами по запросам относятся следующие. Объем таблиц и накладные расходы процессора, вызываемые необходимостью обработки страничных прерываний, возрастают по сравнению со схемой простого страничного распределения памяти, когда сумма всех адресных пространств заданий не превышает объема физической памяти.