- •Вопрос 1. Характеристики микропроцессоров
- •Вопрос 2. Классификация микропроцессоров
- •Вопрос 3. Принстонская и гарвардская архитектуры микропроцессорных систем
- •Вопрос 4. Организация пространств памяти и ввода/вывода в микропроцессорной системе
- •Вопрос 5. Магистрально-модульный принцип построения микропроцессорных систем. Шинная организация микропроцессорных систем. Типовые структуры
- •Вопрос 6. Магистраль микропроцессорной системы. Трехшинная магистраль
- •Вопрос 7. Организация обмена по магистрали микропроцессорной системы
- •Вопрос 8. Простые циклы обмена по системной магистрали
- •Вопрос 9. Организация обращения к системной магистрали с асинхронным доступом. Использование сигнала готовности
- •Вопрос 10. Совмещение шины адреса и шины данных в магистрали микропроцессорной системы. Двухшинная магистраль с совмещенными шинами адреса/данных
- •Вопрос 11. Механизм пакетной передачи данных по системной магистрали
- •Вопрос 12. Механизм транзакций при передаче данных по системной магистрали
- •Вопрос 13. Архитектура подсистемы памяти микропроцессорной системы
- •Вопрос 14. Основные характеристики запоминающих устройств
- •Вопрос 15. Классификация устройств памяти
- •Вопрос 16. Организация запоминающих устройств с произвольной выборкой
- •Вопрос 17. Ассоциативная память
- •Вопрос 18. Стековая память
- •Вопрос 19. Основная память. Блочная организация основной памяти
- •Вопрос 20. Кэш-память. Принципы кэширования памяти
- •Вопрос 21. Организация кэш-памяти: кэш прямого отображения, наборно-ассоциативный кэш, полностью ассоциативный кэш
- •Вопрос 22. Концепция виртуальной памяти
- •Вопрос 23. Организация виртуальной памяти. Страничная и сегментная организации виртуальной памяти
- •Вопрос 24. Архитектура подсистемы ввода/вывода микропроцессорной системы
- •Вопрос 25. Программно-управляемый обмен
- •Вопрос 26. Организация прерываний в микропроцессорной системе
- •Вопрос 27. Радиальная и векторная системы прерываний
- •Вопрос 28. Организация прямого доступа к памяти в микропроцессорной системе
- •Вопрос 29. Структурная организация универсальных микропроцессоров
Вопрос 22. Концепция виртуальной памяти
Термин виртуальная память ассоциируется с возможностью адресовать пространство памяти, большее, чем емкость основной (реальной, физической) памяти конкретного процессора.
Концепция виртуальной памяти впервые была реализована в компьютерной системе Atlas, созданной в Манчестерском университете в Англии в 1960 г.
При выполнении программы предполагается, что все команды программы и данные содержатся в основной памяти, так как обращение к не существующим в основной памяти командам и данным невозможно. Следовательно, общее пространство памяти, к которому может обращаться программа, ограничивается емкостью основной памяти, т. е. аппаратными средствами. Однако было бы удобнее составлять программу, не учитывая емкость основной памяти. Суть концепции виртуальной памяти заключается в том, что адреса, к которым обращается выполняющаяся программа (задача, процесс), отделяются от адресов, реально существующих в основной памяти. Те адреса, на которые делает ссылки выполняющаяся программа, называются виртуальными (логическими) адресами, а те адреса, которые существуют в основной памяти, называются реальными или физическими. Диапазон виртуальных адресов, к которым может обращаться выполняющаяся программа, называется пространством виртуальных адресов этой программы. Диапазон физических адресов, реально существующих в конкретном процессоре, называется пространством физических адресов этого процессора. Для программы создается единое виртуальное адресное пространство – виртуальная (логическая) память, в которой физическая ограниченность емкости основной памяти скрыта от нее, т. е. создается видимость произвольной адресации с отсутствием ограничения на емкость используемой памяти, что значительно облегчает программирование.
Несмотря на то, что программы обращаются к виртуальной памяти (виртуальным адресам), процессор в действительности должен работать с реальной памятью. Поэтому во время выполнения программы виртуальные адреса необходимо преобразовывать в реальные (физические), причем это нужно делать быстро, так как в противном случае производительность системы будет снижаться до неприемлемых уровней и тем самым практически сведутся на нет те преимущества, которые призвана обеспечить концепция виртуальной памяти. Соответствие между физическими и виртуальными адресами устанавливается совместно аппаратными средствами и операционной системой, причем это делается прозрачно (невидимо) для программиста.
Для установления соответствия между виртуальными и физическими адресами на практике используется механизм динамического преобразования адресов DAT, который обеспечивает преобразование адресов во время выполнения программы. Этот механизм обладает следующим свойством (рис. 26): смежные адреса виртуального адресного пространства не обязательно будут смежными в физической памяти. Это свойство называют искусственной смежностью. Оно позволяет устранять фрагментацию физической памяти.
Таким образом, программист освобождается от необходимости учитывать размещение своих программ и данных в физической памяти. Он получает возможность писать программы наиболее естественным образом, прорабатывая только детали алгоритма и структуры программы и игнорируя конкретные особенности структуры аппаратных средств, служащих для выполнения программы. При этом микропроцессорная система может рассматриваться, как логическое средство, обеспечивающее реализацию необходимых алгоритмов, а не как физическая система с уникальными характеристиками, часть которых может лишь затруднить процесс проектирования программ.
Р ис. 26
Концепция виртуальной памяти требует применения двухуровневой схемы построения памяти (рис. 27).
Первый уровень – это основная память, в которой находятся выполняемые программы и в которой должны размещаться данные, чтобы программа во время работы могла к ним обращаться. С точки зрения виртуальной памяти это реальная или физическая память.
Второй уровень – это внешняя память большой емкости, способная хранить программы и данные, которые не могут все сразу уместиться в основной (реальной, физической) памяти ограниченной емкости. С точки зрения виртуальной памяти это вспомогательная память.
Р ис. 27
Только небольшая часть процедур и данных каждой выполняемой программы, как правило, размещается в первичной памяти одновременно. Остальная часть хранится на устройствах внешней памяти с быстрым прямым доступом.
Таким образом, виртуальное адресное пространство размещается во внешней памяти, например на магнитных дисках. Часть этого пространства, необходимая для выполнения программ в данный момент, копируется в основную память.
Виртуальная память – это способ организации основной памяти микропроцессорной системы большой емкости с помощью внешней памяти или метод расширения адресного пространства основной памяти за счет ее совместного использования с внешней памятью, при котором достигается гибкое динамическое распределение памяти, устраняется ее фрагментация и создаются значительные удобства для работы программистов. Это удается достигнуть без заметного снижения производительности системы ценой усложнения аппаратных средств и операционной системы и процессов их функционирования. Принцип виртуальной памяти предполагает, что пользователь при подготовке своей программы имеет дело не с физической основной памятью, действительно (реально) работающей в составе микропроцессорной системы, а с виртуальной (т. е. кажущейся) одноуровневой памятью, объем которой равен всему адресному пространству, определяемому принятым в процессоре способом адресации памяти (размером адресных полей в форматах команд и адресных регистров). Например, в 32-разрядных процессора фирмы Intel размер виртуального адресного пространства для одной задачи составляет 64 Тбайт.