- •7. Система памяти
- •7.1. Базовые концепции
- •7.2. Быстродействие, объем и стоимость
- •7.3.1. Функция отображения
- •7.3.2. Алгоритмы замещения
- •7.3.3. Примеры технологий отображения
- •7.3.4. Организация кэша в коммерческих процессорах
- •7.4. Производительность
- •7.4.1. Чередование операций
- •7.4.2. Частота попаданий и накладные расходы при промахах
- •7.4.3. Кэши на микросхеме процессора
- •7.4.4. Другие способы увеличения быстродействия
- •7.5. Виртуальная память
- •7.5.1. Преобразование адресов
- •7.6. Требования к управлению памятью
7.6. Требования к управлению памятью
Рассказывая о концепциях виртуальной памяти, мы предполагали, что в системе выполняется только одна большая программа. Если вся программа не помещается в физическую память, ее части (страницы) перемещаются с диска в основную память, когда приходит время их выполнения. И хотя мы упоминали о том, что управление перемещением сегментов программы между основной памятью и диском производится соответствующим программным обеспечением, деталей этого процесса мы не касались.
Программы управления виртуальной памятью являются частью операционной системы компьютера. Программы операционной системы удобно объединять в виртуальное адресное пространство, которое называется системным пространством и отделяется от виртуального адресного пространства, где выполняются прикладные программы. Последнее называется пространством пользователя. Фактически пользовательских адресных пространств может быть множество, по одному для каждого пользователя. В этом случае для каждой прикладной программы создается отдельная таблица страниц. MMU считывает ее адрес из базового регистра таблицы страниц. При переключении от одной программы к другой операционная система изменяет содержимое этого регистра. Таким образом, физическая основная память делится между активными страницами системного пространства и нескольких пользовательских пространств. Причем в каждый конкретный момент доступны страницы только одного из этих пространств.
В любой компьютерной системе, в которой в основной памяти сосуществуют независимые пользовательские программы, используется тот или иной вид защиты. Ни одна программа не должна иметь возможности разрушать данные или команды других программ. Такая защита может обеспечиваться несколькими способами. Мы же для начала рассмотрим наиболее простую ее форму. Напомним, что в простейшей системе процессор может находиться в одном из двух состояний — супервизора или пользователя. При выполнении подпрограмм операционной системы процессор работает в режиме супервизора, а при выполнении прикладных программ — в режиме пользователя. В последнем случае запрещено выполнение некоторых машинных команд. Привилегированные команды, выполняющие такие операции, как, скажем, модификация базового регистра таблицы страниц, могут быть реализованы только в режиме супервизора. Это значит, что пользовательская программа не имеет доступа ни к таблице страниц, ни к другим адресным пространствам.
Иногда возникает необходимость предоставить прикладной программе доступ к страницам, принадлежащим другой прикладной программе. Для этого операционная система может включить эти страницы в оба адресных пространства, поместив ссылки на них в две разные таблицы страниц. Для управления правами доступа, предоставляемыми каждой из программ, могут быть применены соответствующие управляющие биты в таблице страниц. Например, одной программе может быть позволено и считывать и записывать некоторую страницу, а другой — только считывать.
Выводы
Память является одним из основных компонентов любого компьютера. Ее емкость и быстродействие в значительной степени определяют производительность всей компьютерной системы. В этой главе мы рассмотрели наиболее важные технологии создания и детали организации памяти и запоминающих устройств.
В результате постоянно проводимых разработок в области полупроводниковой технологии скорость функционирования и емкость микросхем памяти увеличиваются просто с впечатляющей скоростью, а их стоимость в пересчете на бит хранимой информации непрерывно снижается. Однако процессорные микросхемы совершенствуются еще быстрее, и в отношении быстродействия они значительно опередили микросхемы памяти. Для того чтобы в полной мере использовать возможности современных процессоров, компьютер должен обладать большой и быстрой памятью. А поскольку не менее важным показателем является ее стоимость, нельзя просто реализовать всю память на быстродействующих микросхемах SRAM. Поэтому, как было показано в этой главе, проблема решается путем создания иерархии памяти.
На сегодняшний день память достаточно большого объема и с приемлемой стоимостью реализуется на основе микросхем DRAM. Правда, работает она на порядок медленнее быстрого процессора, поэтому для сокращения времени доступа процессора к памяти используется кэш-память на основе микросхем SRAM. Время ожидания памяти является одним из важнейших параметров производительности компьютера, на уменьшение которого постоянно направляются усилия разработчиков. Множество исследований проводится с целью создания схем, позволяющих минимизировать влияние задержки при обращении к памяти. В этой главе было показано, как буферизация записи и упреждающая выборка могут сократить влияние такой задержки путем обращений к памяти в те промежутки времени, когда к ней не производится высокоприоритетный доступ с целью обработки промахов чтения. Время доступа к памяти можно сократить еще одним способом — путем параллельного доступа к последовательным словам. В современные микросхемы памяти закладывается и такая возможность.
Вторичные запоминающие устройства в виде магнитных и оптических дисков располагаются на нижнем уровне иерархии памяти, имеющем наибольшую емкость. Механизм виртуальной памяти делает взаимодействие между диском и основной памятью прозрачным для пользователя. Аппаратная поддержка виртуальной памяти давно уже стала стандартной функцией процессоров.
История развития магнитных дисков служит одним из наиболее впечатляющих примеров эволюции компьютерных технологий. Они всегда были самой медленной частью иерархии памяти. Время от времени, при появлении какой-либо из новых многообещающих технологий, судьба магнитных дисков оказывалась под вопросом. В начале 1980-х казалось, что в ближайшем будущем их вытеснит технология цилиндрических магнитных доменов. Еще недавно их конкурентами считались флэш-диски и оптические диски. Но магнитные диски не только не вытеснены из обихода, а следовательно, с рынка, а, напротив, сохраняют огромную популярность и постоянно совершенствуются. Увеличивается их емкость, уменьшаются габариты, неуклонно снижается стоимость в пересчете на бит.