Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Логическая структура оперативной памяти
Структурно оперативная (основная) память состоит из миллионов отдельных ячеек памяти, емкостью 1 байт каждая. Общая емкость основной памяти современных ПК обычно лежит в пределах от 128 до 1Гбайт. Каждая ячейка памяти имеет свой уникальный (отличный от всех других) адрес. Основная память имеет для ОЗУ и ПЗУ и единое адресное пространство. Адресное пространство определяет максимально возможное количество непосредственно адресуемых ячеек основной памяти. Адресное пространство зависит от разрядности адресных шин, так как максимальное количество разных адресов определяется количеством двоичных чисел, которые можно отобразить в п разрядах, то есть адресное пространство равно 2n, где п — разрядность адреса (разрядность адресных шин). За основу в ПК взят 16-разрядный адресный код. При наличии 16-разрядного кода адреса можно непосредственно адресовать 216 = 65 536 = 64 К (К = 1024) ячеек памяти. Вот это 64-килобайтпое поле памяти, так называемый сегмент, является базовым в логической структуре ОП. Абсолютный (полный, физический) адрес (Аабс) формируется в виде суммы адреса сегмента и адреса смещения. Адрес сегмента (Асегм) — это начальный адрес 64-килобайтного поля, внутри которого находится адресуемая ячейка. Адрес смещения (Асм) — это относительный 16-разрядный адрес ячейки внутри сегмента. Асегм для адресации 1 Мбайта памяти, должен быть 20-разрядным. Но если принять условие, что Асегм должен быть обязательно кратным параграфу (в последних четырех разрядах должен содержать нули), то однозначно определять этот адрес можно 16-разрядным кодом, увеличенным в 16 раз, что равносильно дополнению его справа четырьмя нулями и превращению его, таким образом, в 20-разрядный код. То есть условно можно записать: Абс = Асегм × 16 + Асм В современных ПК существует режим виртуальной адресации (Virtual — кажущийся, воображаемый). Виртуальная адресация используется для увеличения адресного пространства ПК при наличии ОП большой емкости (простая виртуальная адресация) или при организации виртуальной памяти, в которую наряду с ОП включается и часть внешней (обычно дисковой) памяти. Принцип виртуальной адресации состоит в следующем. В регистре сегмента (обычно регистр DS) содержится не Асегм, а некий селектор содержащий адрес строки в таблице дескрипторов (GDT или LDT). По этому адресу из GLT или LDT считывается 64-битовая строка, содержащая адрес, длину и атрибуты сегмента. Для большей плотности размещения информации в оперативной памяти, уменьшения сегментированности и удобства организации трансфера из внешней памяти, часто используется сегментно-страничная адресация, при которой поля памяти выделяются программам внутри сегментов страницами, размером 4 Кб, 2 Мгб или 4 Мгб. Виртуальная память создается при недостаточном объеме оперативной памяти, не позволяющем разместить в ней сразу всю необходимую информацию для выполняемого задания. При загрузке очередной задачи необходимо выполнить распределение машинных ресурсов, в частности оперативной памяти между компонентами одновременно решаемых задач. При подготовке программ используются условные адреса, которые затем привязываются к конкретному месту в памяти. Технология организации виртуальной памяти следующая: – физическая оперативная память и виртуальная память разбиваются на страницы по 4 Кбайта; – страницам виртуальной и физической памяти присваиваются номера, которые сохраняются на весь период решения задачи; – операционная система формирует таблицу страниц виртуальной памяти и таблицу физического размещения страниц; – устанавливает логические связи между ними (рисунок 3.24). Рисунок 3.24 –Таблица страниц На рисунке видно, что физические страницы могут находиться в текущий момент времени как в оперативной, так и во внешней памяти. Из внешней памяти виртуальные страницы автоматически перемещаются в оперативную только тогда, когда к ним происходит обращение. При этом они замещают уже отработавшие страницы. Страничные таблицы для каждой программы формируются операционной системой в процессе распределения памяти и изменяются каждый раз, когда физические страницы перемещаются из ВЗУ в ОП.
Лекция 11 Тема 3.6 Архитектура быстродействующей памяти План лекции – Принципы организации кэш памяти – Принципы кэширования – Кэш-контроллер – Алгоритмы синхронизации памяти и кэш памяти – Архитектуры Кэш- памяти: кэш прямого отображения наборно-ассоциативный кэш ассоциативный кэш
Основная часть лекции Принципы организации кэш памяти
Архитектура современных 32-разрядных процессоров включает ряд средств кэширования памяти: два уровня кэша инструкций и данных (LI Cache и L2 Cache), буферы ассоциативной трансляции (TLB) блока страничной переадресации и буферы записи. Эти средства в разных вариациях (на кристалле, картридже процессора или на системной плате) представлены в системах с процессорами 486, Pentium и Р6. Принципы кэширования Основная память компьютеров реализуется на относительно медленной динамической памяти (DRAM), и при обращении к ней процессор простаивает в ожидании данных — появляются такты ожидания (wait states). Статическая память (SRAM), построенная, как и процессор, на триггерных ячейках, по своей природе способна догнать современные процессоры по быстродействию и сделать ненужными такты ожидания, но она относительно дорогая. Разумным компромиссом, для построения экономичных и производительных систем, явился иерархический способ организации оперативной памяти. Идея заключается в сочетании основной памяти большого объема на DRAM с относительно небольшой буферной памятью на быстродействующих микросхемах SRAM. В переводе слово кэш (cache) означает «тайный склад», «тайник» («заначка»). Тайна этого склада заключается в его невидимости и в том, что он не доступен командам процессора. Кэш является дополнительной быстродействующей памятью копий некоторых блоков информации из основной памяти, вероятность обращения к которым в ближайшее время велика. Он хранит каталог (cache directory) — список их текущего соответствия областям основной памяти. Кроме того, кэшироваться может не вся память, доступная процессору. При каждом обращении к памяти контроллер кэш-памяти по каталогу проверяет, есть ли действительная копия затребованных данных в кэше. Если она там есть, то это случай кэш-попадания (cache hit), и данные берутся из кэш-памяти. Если действительной копии там нет, это случай кэш-промаха (cache miss), и данные берутся из основной памяти. В соответствии с алгоритмом кэширования блок данных, считанный из основной памяти, при определенных условиях заместит один из блоков кэша. От интеллектуальности алгоритма замещения зависит процент попаданий и, следовательно, эффективность кэширования. Поиск блока в списке должен производиться достаточно быстро, чтобы не свести на нет выигрыш от применения быстродействующей памяти. Обращение к основной памяти может начинаться одновременно с поиском в каталоге, а в случае попадания — прерываться (архитектура Look aside). Это экономит время, но лишние обращения к основной памяти ведут к увеличению энергопотребления. Другой вариант: обращение к внешней памяти начинается только после фиксации промаха (архитектура Look Through), при этом теряется, по крайней мере, один такт процессора, зато экономится энергия. В современных компьютерах кэш обычно строится по двухуровневой схеме. Первичный кэш (LI Cache) встроен во все процессоры класса 486 и выше; это внутренний кэш. Объем этого кэша невелик (8 - 32 Кбайт). Чтобы повысить производительность, для данных и команд часто используется раздельный кэш. Вторичный кэш (L2 Cache) для процессоров Pentium является внешним (устанавливается на системной плате), а у Р6 располагается в одной упаковке с ядром и подключается к специальной внутренней шине процессора, емкость вторичного КЭШа достигает 2 Мбайт. Функции кэш-контроллера Кэш-контроллер должен обеспечивать когерентность (coherency) — согласованность данных кэш-памяти обоих уровней с данными в основной памяти. Контроллер кэша оперирует строками (cache line) фиксированной длины. Длина строки равна объему кэшируемого блока основной памяти. С каждой строкой кэша связана информация об адресе скопированного в нее блока основной памяти и ее состоянии. Строка может быть действительной (valid) - это означаем, что в текущий момент времени она достоверно отражает соответствующий блок основной памяти, или недействительной. Информация о том, какой именно блок занимает данную строку (то есть старшая часть адреса или номер страницы), и о ее состоянии называется тегом (tag) и хранится в связанной с данной строкой ячейке специальной памяти тете (tag RAM). В операциях обмена с основной памятью обычно строка участвует целиком (несекторированный кэш), длина строки совпадает с объемом данных, передаваемых за один пакетный цикл (для Pentium–4x8=32 байт). Возможен вариант секторированного (sectored) кэша, при котором одна строка содержит несколько смежных ячеек — секторов, размер которых соответствует минимальной порции обмена данных кэша с основной памятью. При этом в записи каталога, соответствующей каждой строке, должны храниться биты действительности для каждого сектора данной строки. Секторирование позволяет экономить память, необходимую для хранения каталога при увеличении объема кэша, поскольку большее количество бит каталога отводится под тег, и выгоднее использовать дополнительные биты действительности, чем увеличивать глубину индекса (количество элементов) каталога. Строки кэша под отображение блока памяти выделяются при промахах операций чтения, в Р6 строки заполняются и при записи. Запись блока, не имеющего копии в кэше, производится в основную память (для повышения быстродействия запись может производиться через буфер отложенной записи). Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1304; Нарушение авторского права страницы