ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5250
Скачиваний: 8
Таблица
5.7. Организация кэш-памяти микропроцессоров
1
Микропроцессор
DEC Alpha 21064
IBM PowerPC 601
IBM PowerPC 603
IBM PowerPC 604
IBM PowerPC 620
Intel 486DX2
Intel Pentium
MIPS R4000SC
MIPS R10000
Motorola 88110
SUNSuperSPARC
SUN UltraSPARC
Размер, Кбайт
8-К/8-Д
32-С
8-К/8-Д
16-К/16-Д
32 - К/32-Д
8-С
8-К/8-Д
8-К/8-Д
32-К/32-Д
8-К/8-Д
20-К/16-Д
16-К/16-Д
Следует добавить, что в некоторых ВМ, помимо кэш-памяти команд и кэш-па-
мяти данных, может использоваться и адресная кэш-память (в устройствах управ-
ления памятью и при преобразовании виртуальных адресов в физические).
Одноуровневая и многоуровневая кэш-память
Современные технологии позволяют разместить кэш-память и ЦП на общем кри-
сталле. Такая внутренняя кэш-память строится по технологии статического ОЗУ
и является наиболее быстродействующей. Емкость ее обычно не превышает
64 Кбайт. Попытки увеличения емкости обычно приводят к снижению быстродей-
ствия, главным образом из-за усложнения схем управления и дешифрации адреса.
Общую емкость кэш-памяти ВМ увеличивают за счет второй (внешней) кэш-па-
мяти, расположенной между внутренней кэш-памятью и ОП. Такая система изве-
стна под названием двухуровневой, где внутренней кэш-памяти отводится роль
первого уровня (L1), а внешней — второго уровня (L2). Емкость L2 обычно на по-
рядок больше, чем у L1, а быстродействие и стоимость — несколько ниже. Память
второго уровня также строится как статическое ОЗУ. Типичная емкость кэш-па-
мяти второго уровня — 256 и 512 Кбайт, реже — 1 Мбайт, а реализуется она, как
правило, в виде отдельной микросхемы, хотя в последнее время L2 часто размеща-
ют на одном кристалле с процессором, за счет чего сокращается длина связей и по-
вышается быстродействие.
При доступе к памяти ЦП сначала обращается к кэш-памяти первого уровня. В слу-
чае промаха производится обращение к кэш-памяти второго уровня. Если информа-
ция отсутствует в L2, выполняется обращение к ОП и соответствующий блок зано-
сится сначала в L2, а затем и в L1. Благодаря такой процедуре часто запрашиваемая
информация может быть быстро восстановлена из кэш-памяти второго уровня.
1
К— кэш-память команд, Д — кэш-память данных, С — смешанная кэш-память.
Кэш-память 2 6 1
Потенциальная экономия за счет применения L2 зависит от вероятности попа-
даний как в L1, так и в L2. Ряд исследований показывает, что использование кэш-
памяти второго уровня существенно улучшает производительность.
В большинстве семейств микропроцессоров предусмотрены специальные ИМС
контроллеров внешней кэш-памяти, например микросхема 8291 для микропроцес-
сора Intel 486 или 82491 — для Intel Pentium. Для ускорения обмена информацией
между ЦП и L2 между ними часто вводят специальную шину, так называемую
шину
заднего плана,
в отличие от
шины переднего плана,
связывающей ЦП с основной
памятью.
Количество уровней кэш-памяти не ограничивается двумя. В некоторых ВМ
уже можно встретить кэш-память третьего уровня (L3) и ведутся активные дис-
куссии о введении также и кэш-памяти четвертого уровня (L4). Характер взаимо-
действия очередного уровня с предшествующим аналогичен описанному для L1
и L2. Таким образом, можно говорить об иерархии кэш-памяти. Каждый последу-
ющий уровень характеризуется большей емкостью, меньшей стоимостью, но и мень-
шим быстродействием, хотя оно все же выше, чем у ЗУ основной памяти.
Дисковая кэш-память
Концепция кэш-памяти применима и к дисковым ЗУ. Принцип кэширования дис-
ков во многом схож с принципом кэширования основной памяти, хотя способы
доступа к диску и ОП существенно разнятся. Если время обращения к любой ячей-
ке ОП одинаково, то для диска оно зависит от целого ряда факторов. Во-первых,
нужно затратить некоторое время для установки головки считывания/записи на
нужную дорожку. Во-вторых, поскольку при движении головка вибрирует, необ-
ходимо подождать, чтобы она успокоилась. В-третьих, искомый сектор может ока-
заться под головкой также лишь спустя некоторое время.
Дисковая кэш-память представляет собой память с произвольным доступом,
«размещенную» между дисками и ОП. Емкость такой памяти обычно достаточно
велика — от 8 Мбайт и более. Пересылка информации между дисками и основной
памятью организуется контроллером дисковой кэш-памяти. Изготавливается дис-
ковая кэш-память на базе таких же полупроводниковых запоминающих устройств,
что и основная память, поэтому в ряде случаев с ней обращаются как с дополни-
тельной основной памятью. С другой стороны, в ряде операционных систем, таких
как UNIX, в качестве дискового кэша используется область основной памяти.
В дисковой кэш-памяти хранятся блоки информации, которые с большой веро-
ятностью будут востребованы в ближайшем будущем. Принцип локальности, обес-
печивающий эффективность обычной кэш-памяти, справедлив и для дисковой,
приводя к сокращению времени ввода/вывода данных от величин 20-30 мс до зна-
чений порядка 2-5 мс, в зависимости объема передаваемой информации.
2 6 2 Глава 5. Память
Среднее время доступа
к одноуровневой кэш-памяти можно оценить как:
где
время обращения при попадании;
— коэффициент промахов;
потери на промах. Для двухуровневой кэш-памяти имеем:
Понятие виртуальной памяти 2 6 3
В качестве единицы пересылки может выступать сектор, несколько секторов,
а также одна или несколько дорожек диска. Кроме того, иногда применяется пере-
сылка информации, начиная с выбранного сектора на дорожке до ее конца. В слу-
чае пересылки секторов кэш-память заполняется не только требуемым сектором,
но секторами, непосредственно следующими за ним, так как известно, что в боль-
шинстве случаев взаимосвязанные данные хранятся в соседних секторах. Этот
метод известен также как
опережающее чтение
(read ahead).
В дисковых кэшах обычно используется алгоритм сквозной записи. Специфи-
ка состоит в том, что далеко не всю информацию, перемещаемую между дисками
и основной памятью, выгодно помещать в дисковый кэш. В ряде случаев определен-
ные данные и команды целесообразно пересылать напрямую между ОП и диском
По этой причине в системах с дисковым кэшем предусматривают специальный
динамический механизм, позволяющий переключать тракт пересылки информа-
ции: через кэш или минуя его.
Одна из привлекательных сторон дискового кэша в том, что связанные с ним
преимущества могут быть получены без изменений в имеющемся аппаратном и про-
граммном обеспечении. Многие серийно выпускаемые дисковые кэши интегриро-
ваны в состав дисковых ЗУ. В качестве примера можно привести модель 23 систе-
мы IBM 3880, в состав которой входят дисковые ЗУ со встроенным контроллером
кэш-памяти и кэш-памятью емкостью от 8 до 64 Мбайт. Дисковая кэш-память при-
меняется и в персональных ВМ.
Дисковая кэш-память обычно включает в себя средства для обнаружения и ис-
правления ошибок. Так, в уже упоминавшейся модели 23 системы IBM 3880 име-
ются средства для обнаружения тройных ошибок (одновременного появления
ошибок в трех разрядах) и исправления одиночных, двойных и большинства трой-
ных ошибок. Более ранняя модель 13 той же системы имела кэш-память емкостью
4-8 Мбайт и умела обнаруживать двойные и исправлять одиночные ошибки.
В обеих моделях замещение информации в кэше производится в соответствии
с алгоритмом минимального предыдущего использования (LRU).
Примечательно, что архитектура кэш-памяти современных магнитных дисков
типа «винчестер» реализует полностью ассоциативное отображение.
Понятие виртуальной памяти
Для большинства типичных применений ВМ характерна ситуация, когда разме-
щение всей программы в ОП невозможно из-за ее большого размера. В этом, одна-
ко, и нет принципиальной необходимости, поскольку в каждый момент времени
«внимание» машины концентрируется на определенных сравнительно небольших
участках программы. Таким образом, в ОП достаточно хранить только используе-
мые в данный период части программ, а остальные части могут располагаться на
внешних ЗУ(ВЗУ). Сложность подобного подхода в том, что процессы обраще-
ния к ОП и ВЗУ существенно различаются, и это усложняет задачу программиста.
Выходом из такой ситуации было появление в 1959 году идеи
виртуализации па-
мяти
[88], под которой понимается метод автоматического управления иерархи-
ческой памятью, при котором программисту кажется, что он имеет дело с единой
2 6 4 Глава 5. Память
памятью большой емкости и высокого быстродействия. Эту память называют вир-
туальной (кажущейся) памятью. По своей сути виртуализация памяти представ-
ляет собой способ аппаратной и программной реализации концепции иерархичес-
кой памяти.
В рамках идеи виртуализации памяти ОП рассматривается как линейное про-
странство N адресов, называемое
физическим пространством
памяти. Для задач,
где требуется более чем
N
ячеек, предоставляется значительно большее простран-
ство адресов (обычно равное общей емкости всех видов памяти), называемое
виртуальным пространством,
в общем случае не обязательно линейное. Адреса
виртуального пространства называют
виртуальными,
а адреса физического про-
странства —
физическими.
Программа пишется в виртуальных адресах, но поскольку
для её выполнения нужно, чтобы обрабатываемые команды и данные находились
в ОП, требуется, чтобы каждому виртуальному адресу соответствовал физичес-
кий. Таким образом, в процессе вычислений необходимо, прежде всего, перепи-
сать из ВЗУ в ОП ту часть информации, на которую указывает виртуальный адрес
(отобразить виртуальное пространство на физическое), после чего преобразовать
виртуальный адрес в физический (рис. 5.30).
Рис. 5.30. Отображение виртуального адреса на физический
Среди систем виртуальной памяти можно выделить два класса: системы с фик-
сированным размером блоков (страничная организация) и системы с переменным
размером блоков (сегментная организация). Оба варианта обычно совмещают (сег-
ментно-страничная организация).
Страничная организация памяти
Целям преобразования виртуальных адресов в физические служит страничная
организация памяти. Ее идея состоит в разбиении программы на части равной ве-
личины, называемые
страницами.
Размер страницы обычно выбирают в пределах
4-8 Кбайт, но так, чтобы он был кратен емкости одного сектора магнитного диска.
Виртуальное и физическое адресные пространства разбиваются на блоки разме-
ром в страницу. Блок основной памяти, соответствующий странице, часто называют
страничным кадром
или
фреймом
(page frame). Страницам виртуальной и физи-
ческой памяти присваивают номера. Процесс доступа к данным по их виртуально-
му адресу иллюстрирует рис. 5.31.
Понятие виртуальной памяти 2 6 5
Рис. 5 . 3 1 . Страничная организация виртуальной памяти
Центральный процессор обращается к ячейке, указав ее виртуальный адрес ф,
состоящий из номера виртуальной страницы и смещения относительно ее начала.
Этот адрес поступает в систему преобразования адресов 2, с целью получения из
него физического адреса ячейки в основной памяти 3. Поскольку смещение в вир-
туальном и физическом адресе одинаковое, преобразованию подвергается лишь
номер страницы. Если преобразователь обнаруживает, что нужная физическая стра-
ница отсутствует в основной памяти (произошел промах или страничный сбой),
то нужная страница считывается из внешней памяти и заносится в ОП (4, 5).
Преобразователь адресов — это часть операционной системы, транслирующая
номер виртуальной страницы в номер физической страницы, расположенной в ос-
новной памяти, а также аппаратура, обеспечивающая этот процесс и позволяющая
ускорить его. Преобразование осуществляется с помощью так называемой
стра-
ничной таблицы.
При отсутствии нужной страницы в ОП преобразователь адре-
сов вырабатывает признак страничного сбоя, по которому операционная система
приостанавливает вычисления, пока нужная страница не будет считана из вторич-
ной памяти и помещена в основную.
Виртуальное пространство полностью описывается двумя таблицами (рис. 5.32):
страничной таблицей и картой диска (будем считать, что вторичная память реали-
зована на магнитных дисках). Таблица страниц определяет, какие виртуальные
страницы находятся в основной памяти и в каких физических фреймах, а карта
диска содержит информацию о секторах диска, где хранятся виртуальные страни-
цы на диске.
Число записей в страничной таблице (СТ) в общем случае равно количеству
виртуальных страниц. Каждая запись содержит поле номера физической страни-
цы (НФС) и четыре признака: V, R, М и А.
Признак присутствия
V устанавливается в единицу, если виртуальная страни-
ца в данный момент находится в основной памяти. В этом случае в поле номера
физической страницы находится соответствующий номер. Если V = 0, то при по-
пытке обратиться к данной виртуальной странице преобразователь адреса генери-