47121 (597321), страница 21
Текст из файла (страница 21)
На 286-й и 386-й материнских платах с верхней памятью может быть выполнена переадресация (remaping). В аппаратной части этих плат была заложена возможность программного переключения (условного перемещения) части верхней памяти в область расширенной (сразу после первого мегабайта). Такой режим давал возможность на материнских платах, реально имеющих всего 1 Мбайт ОЗУ, создать область расширенной памяти и устанавливать на компьютер ОС Windows. На некоторых платах при создании режима Shadow переадресацию выполнить нельзя.
Расширенная память (EMA – Extended Memory Area) – весь объем ОЗУ "выше, старше" первого мегабайта. Доступ к ней организуется при помощи драйвера HIMEM.sys (область, находящаяся под его управлением, получила название XMS – Extended Memory Specification).
В системах "под DOS" возможности этого вида памяти ограничены:
-
в расширенной памяти не может находиться операционная система;
-
в ней невозможно создание рабочих областей устройств;
-
находящиеся в EMA программы не могут быть выполнены.
В основном расширенная память используется для сохранения данных и программ. В составе ОС MS-DOS есть драйверы RAMDRIVE.sys и SMARTDRV.exe, ориентированные на работу с EMA. Для записи в расширенную память или считывания оттуда они переводят МП в защищенный режим, а затем возвращают в реальный.
Область старшей памяти, старшие адреса (НМА – High Memory Area) – область первых 64 кбайт (без 16 байт) расширенной памяти, доступ к которым можно получить без выхода из реального режима. Это дополнительный участок ОЗУ, пригодный для размещения компонентов операционной системы.
Для того чтобы объяснить, откуда появились эти 64 кбайт памяти, вспомним, как формируется адрес в МП. Если в старшие 16 разрядов сегментного регистра загрузить максимальное значение FFFF16 (a 4 младших автоматически устанавливаются в нуль) и задать смещение FFFF16, можно получить предельный адрес равный l'0FFEF16 (рис. 2.18). Адресный интервал 10000016 – l'0FFEF16 и составляет область старшей памяти. Управление размещением данных в старших адресах возложено на драйвер HIMEM.sys.
Рис. 2.18. Формирование адресного интервала области старшей памяти
Дополнительная память (Expanded Memory Area).
В компьютере доступ к дополнительной памяти (LIM EMS) реализует драйвер EMM386.exe. Для него необходим свободный участок ОЗУ размером в 64-килобайтный страничный блок (обычно он берется в верхней памяти – окно EMA). В процессе работы он делится на четыре 16-килобайтные логические страницы. На такие же по размеру страницы делится весь имеющийся объем дополнительной памяти. В логические страницы заносится информация, требующая сохранения. После этого их содержимое путем определенной программной процедуры копируется на одну из страниц дополнительной памяти. Затем в логические страницы помещается следующая порция данных и процедура повторяется. Страничный блок как перемещающееся смотровое окошко имеет доступ к любой точке области дополнительной памяти. Через него производится как запись, так и считывание.
Дополнительная память может быть использована для хранения данных и программ. С помощью драйверов RAMDRIVE.sys и SMARTDRV.exe в ней могут быть созданы электронный диск и буферы дисковых накопителей. Спецификацией EMS могут пользоваться только специально разработанные для этого программы. В связи с необходимостью частого переключения страниц и копирования их в UMA отображаемая память работает довольно медленно.
Электронный диск – программно построенная структура, по организации и принципу работы с ним идентичная логическому диску на винчестере. Доступ к нему при записи или чтении выполняется быстрее, так как нет медленной операции перемещения головок. Емкость невелика (не может превосходить по объему расширенную память). На электронном диске удобно держать короткие часто исполняемые программы. При выключении компьютера все содержимое диска теряется.
Виртуальная память – это такая система организации выполнения задания, при которой часть программы располагается в быстродействующей памяти (микросхемах), а часть – на некотором более медленном и дешевом запоминающем устройстве (например, жестком диске). Виртуальная организация памяти позволяет программисту работать, не заботясь о емкости реальной памяти. В системах виртуальной памяти диск превращается в основную память, а RAM (реальная память) содержит код и данные, используемые процессорами.
Механизм виртуальной памяти, реализованный на процессоре 80286, позволяет организовать виртуальную память большого объема при относительно небольших размерах оперативной и дисковой памяти. Основная идея виртуальной памяти заключается в хранении и обновлении на диске сегментов программы и загрузки их в оперативную память по мере необходимости. Процесс загрузки и выгрузки сегментов называется свопингом.
В версиях DOS6.x появилась утилита MEMMAKER, которая автоматически оптимизирует использование верхней памяти. Поскольку эта память фрагментирована, то не всегда удается вручную загрузить туда все желаемые резиденты. Кроме того, некоторые резидентные программы могут менять свой размер после загрузки. MEMMAKER просчитывает все возможные комбинации распределения программ по блокам верхней памяти (их может быть несколько десятков тысяч) и выбирает из них оптимальную. Следует отметить, что с этой задачей MEMMAKER справляется далеко не лучшим образом, поскольку он не обрабатывает командные файлы, вызываемые из файла AUTOEXEC.BAT, а также не способен изменить порядок загрузки драйверов и резидентов, что могло бы привести к более удачному варианту их размещения в верхней памяти. Однако существует специально разработанные драйверы оптимизации, позволяющие добиться лучших результатов: QEMM386, 386MAX и др.
2.4.1.3 Общая характеристика способов реализации
запоминающих устройств
В общем случае под запоминающим устройством (ЗУ) можно понимать любое устройство, которое хранит информацию для дальнейшего использования. При таком понимании ЗУ ПЭВМ можно разделить на два класса.
Первый класс ЗУ представляет собой память, которая хранит команды и данные, обрабатываемые МП непосредственно, т. е. в любой момент времени МП имеет доступ к любой команде или данным, например, ЗУПВ (ЗУ произвольной выборки – ОЗУ, ПЗУ).
Второй класс состоит из средств, которые могут хранить информацию, но ее необходимо передавать в память первого класса прежде, чем к ней может обратиться МП, например, внешние ЗУ (НГМД, НЖМД и др.).
Рис. 2. 19. Конструктивные особенности ОЗУ
ОЗУ ПЭВМ может состоять из одной или нескольких плат, которые подключены к системной шине (рис. 2.19, 2.20).
Микросхемы ЗУПВ имеют организацию M×N, где М – количество адресуемых слов; N – количество разрядов в слове.
Под длительностью цикла обращения понимается минимальный временной интервал от момента поступления стабильного адреса слова до получения стабильных данных. Эта характеристика отражает быстродействие ЗУПВ.
Рис. 2.20.Структура обращения к оперативной памяти
-
Регистровая кэш-память
В качестве элементной базы основной памяти в большинстве ВМ служат микросхемы динамических ОЗУ, на порядок уступающие по быстродействию центральному процессору. В результате процессор вынужден простаивать несколько тактовых периодов, пока информация из ИМС-памяти установится на шине данных ВМ. Если ОП выполнить на быстрых микросхемах статической памяти, стоимость ВМ возрастет весьма существенно. Экономически приемлемое решение этой проблемы было предложено М. Уилксом в 1965 г. в процессе разработки ВМ Atlas и заключается в использовании двухуровневой памяти, когда между ОП и процессором размещается небольшая, но быстродействующая буферная память. В процессе работы такой системы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора, т. е. производится отображение участков ОП на буферную память. Выигрыш достигается за счет ранее рассмотренного свойства локальности: если отобразить участок ОП в более быстродействующую буферную память и переадресовать на нее все обращения в пределах скопированного участка, можно добиться существенного повышения производительности ВМ.
Уилкс М. называл рассматриваемую буферную память подчиненной (slave memory). Позже распространение получил термин кэш-память (от англ. cache – убежище, тайник), поскольку такая память обычно скрыта от программиста в том смысле, что он не может ее адресовать и может даже вообще не знать о ее существовании. Впервые кэш-системы появились в машинах модели 85 семейства IBM 360.
В общем виде использование кэш-памяти можно пояснить следующим образом. Когда ЦП пытается прочитать слово из основной памяти, сначала осуществляется поиск копии этого слова в кэш-памяти. Если такая копия существует, обращение к ОП не производится, а в ЦП передается слово, извлеченное из кэш-памяти. Данную ситуацию принято называть успешным обращением, или попаданием (hit). При отсутствии слова в кэше, т. е. при неуспешном обращении – промахе (miss) требуемое слово передается в ЦП из основной памяти, но одновременно из ОП в кэш-память пересылается блок данных, содержащий это слово.
На рисунке 2.21 приведена структура системы с основной и кэш-памятью. ОП состоит из 2n адресуемых слов, где каждое слово имеет уникальный n-разрядный адрес. При взаимодействии с кэшем эта память рассматривается как М блоков фиксированной длины по К слов в каждом (М = 2n/К). Кэш-память состоит из С блоков аналогичного размера (блоки в кэш-памяти принято называть строками), причем их число значительно меньше числа блоков в основной памяти (С<< М). При считывании слова из какого-либо блока ОП этот блок копируется в одну из строк кэша. Поскольку число блоков ОП больше числа строк, отдельная строка не может быть выделена постоянно одному и тому же блоку ОП. По этой причине каждой строке кэш-памяти соответствует тег (признак), содержащий сведения о том, копия какого блока ОП в данный момент хранится в данной строке. В качестве тега обычно используется часть адреса ОП.
На эффективность применения кэш-памяти в иерархической системе памяти влияет целый ряд моментов. К наиболее существенным из них можно отнести:
– емкость кэш-памяти;
– размер строки;
– способ отображения основной памяти на кэш-память;
– алгоритм замещения информации в заполненной кэш-памяти;
– алгоритм согласования содержимого основной памяти и кэш-памяти;
– число уровней кэш-памяти.
Рис. 2.21. Структура системы с основной памятью и кэш-памятью
Современные технологии позволяют разместить кэш-память и ЦП на общем кристалле. Такая внутренняя кэш-память строится по технологии статического ОЗУ и является наиболее быстродействующей. Емкость ее обычно не превышает 64 кбайт. Попытки увеличения емкости приводят к снижению быстродействия, главным образом из-за усложнения схем управления и дешифрации адреса. Общую емкость кэш-памяти ВМ увеличивают за счет второй (внешней) кэш-памяти, расположенной между внутренней кэш-памятью и ОП. Такая система известна под названием двухуровневой, где внутренней кэш-памяти отводится роль первого уровня (L1), а внешней – второго уровня (L2). Емкость L2 обычно на порядок больше, чем у L1, а быстродействие и стоимость – несколько ниже. Память второго уровня также строится, как статическое ОЗУ. Типичная емкость кэш-памяти второго уровня – 256 и 512 кбайт, реже 1 Мбайт, а реализуется она, как правило, в виде отдельной микросхемы, хотя в последнее время L2 часто размещают на одном кристалле с процессором, за счет чего сокращается длина связей и повышается быстродействие.
При доступе к памяти ЦП сначала обращается к кэш-памяти первого уровня. В случае промаха производится обращение к кэш-памяти второго уровня. Если информация отсутствует и в L2, выполняется обращение к ОП и соответствующий блок заносится сначала в L2, а затем и в L1. Благодаря такой процедуре часто запрашиваемая информация может быть быстро восстановлена из кэш-памяти второго уровня.
Потенциальная экономия за счет применения L2 зависит от вероятности попаданий как в L1, так и в L2. Использование кэш-памяти второго уровня существенно улучшает производительность.
В большинстве семейств микропроцессоров предусмотрены специальные ИМС контроллеров внешней кэш-памяти, например микросхема 82491 – для Intel Pentium. Для ускорения обмена информацией между ЦП и L2 между ними часто вводят специальную шину (шину заднего плана), в отличие от шины переднего плана, связывающую ЦП с основной памятью.
Количество уровней кэш-памяти не ограничивается двумя. В некоторых ВМ уже можно встретить кэш-память третьего уровня (L3) и ведутся активные дискуссии о введении также и кэш-памяти четвертого уровня (L4). Характер взаимодействия очередного уровня с предшествующим аналогичен описанному для L1 и L2. Таким образом, можно говорить об иерархии кэш-памяти. Каждый последующий уровень характеризуется большей емкостью, меньшей стоимостью, но и меньшим быстродействием, хотя оно все же выше, чем у ЗУ основной памяти.
2.4.3 Внешняя память















