В.А. Фисун - Параллельная обработка данных (2005) (1127758), страница 3
Текст из файла (страница 3)
Механизмывиртуальной памяти реализуется путем разбиения памяти и виртуальной ифизической на одинаковые страницы, обычно, размером 4 Кбайта. Адресразделяется на две части в соответствии с принятой длиной страницы: номерстраницы (а) и адрес внутри страницы - сдвиг, смещение (б ). ТрансляцияадресаВиртуальный адрес Физический адреса б ->с б9Аппаратно трансляция адресов производится при помощи таблицыстраниц. Каждой странице виртуальной памяти соответствует строка в таблицестраниц, объем которой соответствует числу страниц виртуальной памяти. В iстроке таблицы хранится: N страницы (блока) физической памяти, котораясоответствует данной виртуальной, статус доступа (чтение, запись), признакзаписи. Полный физический адрес получается добавлением к физическомуадресу, полученного из таблице страниц, смещения внутри страницы (б).Реальная структура таблицы страниц имеет более сложный вид.8 Чередование адресов(расслоение) памяти (interleaved memory)Расслоение памяти: память делится на М банков с автономным управлениемтак, что при последовательной выборки повторное обращение к одному банкупроизойдет через М обращений, поэтому возможно совмещение временивыборки.Для банков одинаковой емкости:B1,B2,B3,..Bm-1 адрес iтрансформируется в адрес d внутри банка Bb расчетом:i=d * m + b, где d=>0, 0<=b<=m-1При расслоении на четыре распределение адресов в банках будет:Адреса в банках-b Банк 1 Банк 2 Банк 3 Банк 400123Распределение14567адресов i2891011При конвейерном доступе при М-кратным расслоении и регулярнойвыборке доступ к памяти возможен в интервале 1/М цикла памяти.
Новозможны конфликты по доступу, если шаг регулярной выборки коррелируетсяс числом банков памяти.9. Назначение и структура кэш-памяти.Для ускорения доступа к оперативной памяти используется буферизацияданных и объектного кода в памяти, скорость которой значительно выше основной.Если бы доступ к любым типам данных был случайным, то буферизация была быбесполезным. Эффект от буферизации можно определить среднему временивыборки: t = t2*p+ t1*(1-p), где t1 - среднее время доступа к данным основнойпамяти, t2 - среднее время доступа к данным из буфера (t2<t1), p - вероятностьналичия данного в буфере.
Очевидно, среднее время зависит от вероятности р иизменяется от среднего времени доступа к основной памяти (при p=0) до среднеговремени доступа непосредственно в буфер (при p=1). Кэш (cache, cache memory)память, как правило, на порядок более быстрая, чем основная, размещается вкачестве буферной, между процессором и основной памятью и служит длявременного хранения (в рамках своего объема) всех данных, потребляемых илигенерирумых процессором.
В много-уровневых кэшах элементами связки:10"процессор - основная память" могут выступать сами кеши. Алгоритм кэшированиясостоит в следующем:1. По каждому запросу процессора происходит поиск требуемого данного в кэшпамяти (места для записи генерируемого данного).2.
Если данное (место) есть в кэше - кэш попадание (cache hit), то оно передается впроцессор (из процессора).3. Если нужного данного нет в кэше - кэш промах (cache miss), данное из основнойпамяти пересылается в кэш память, и передаются также процессору. При переполнениикэша (нет места для записи), из него удаляются (модифицированные данныесохраняются в основной памяти) часть данных, обычно, наименее востребованные.Традиционным кэшем является "процессорный" кэш или кэш первого уровня(первичный) или кэш (L1 Cache), имеющийся на любом микропроцессоре. Этобуферная память объемом от 4 Кбайт до 16 Мбайт, в которой размещаются вседанные, адресуемые процессором, и из которой данные поставляются процессору.Эта память значительно быстрее основной, но меньшего объема, поэтому механизмкэширования обеспечивает обновление кэша, обычно, сохраняя в нем тольконаиболее часто употребляемые данные. Обмен между основной и кэш памятямипроизводится квантами, объемами 4 - 128 байт - копируются "строки кэша" (cacheline), содержащие адресуемое данное.Обычно, программный код кешируется через особый, I кэш память, отделеннойот кэша данных D-кэша.
Выборка данных из кэша (hit time) прозводится, обычно, заодин такт синхронизации (оценки 1 - 4 такта), потери при кеш промахе оцениваются в8 - 32 такта синхронизации, доля промахов (miss rate) - 1% -20%. По определению,эффект кэширования основан на предположении о многократном использованииданных (Data reuse) из кэш памяти.
Принято различать две формы многократногоиспользования данных кэша:- временное использование (temporal reuse). пространственное использование (spatial reuse). Временное использование означает,что некоторое данное, загруженные в кэш, может использоваться, по крайней мере,более двух раз. Пространственное использование кэша предполагает возможность использовать некоторый пространственный набор данных - строки кэша. Архитектуракэш памяти: полностью ассоциативная, частично ассоциативная и кэш память спрямым отображением.10.
Кэш память с прямым отображением.Архитектуракэш-памятиспрямымотображением(direct-mapped)характеризуется наличием явной зависимости между адресами буферной иоперативной памяти, причем каждому адресу кэша соответствуетадресаоперативной памяти, кратные размеру кэш памяти. Память кэша состоит их памятиданных и памяти тэгов. Пусть, длина строки кэша равна 32 байтам, размер кэша – 4Кбайт, тогда кэш память для данных состоит из 128 строк. ОЗУ разделено на блоки,размером в 4Кбайт, каждый содержит 128 строк. В нулевой строке кэша может бытьразмещены 0 или 128, или ....
строки ОЗУ, в первой – 1 или 129 или.. строки т и.д.11Для каждой заполненной строки данных кэша известен тэг – номер блока ОЗУ,которому принадлежит строка. Тэги хранятся в специальной памяти - памяти тэгов,размер которой – 128 строк. Длина строки памяти тэгов зависит от размера ОЗУ.
Еслиобъем ОЗУ – 4 Гбайт, тогда полный адрес - 32 бита можно представить в виде полей:20 рр – тэг (T), 7 рр – номер строки таблиц кэша (S), 5 рр – номер байта в строке (N).Поиск запрошенного байта (T-S-N) в кэше с прямым распределением производитсятак:1.Из памяти данных и памяти тэгов кэша одновременно считываются S-ные строки.2 Если содержимое считанной строки памяти тэгов равно Т – кэш попадание, этозначит, что считанная S строка памяти данных кэша содержит запрашиваемыйбайт и его номер в строке есть N.3. Если содержимое считанной строки памяти тэгов не равно Т – кэш промах, и тогдаT-S строка ОЗУ переписывается в S строку памяти данных кэша, а Т записывается вS строку памяти тэгов.
Затем, см по п. 1.Кэш память Pentium III (Celeron).Кэш память процессоров данного типа состоит из кэшей 1и 2 уровней.Кэш первого уровня (L1) размером в 32 Кбайта разделен на кэш кода- I кэш память, икеш данных – D кэш по 16 Кбайтов каждый. Каждый кэш (I и D) выполнен какчастично ассоциативный с коэффициентом четыре (4-way).
Строки кеша состоят из32 байтов. Кэш (16 Кбайтов) поделен на четыре банка по 4 Кбайта (128 строк),каждый из которых есть кэш с прямым распределением, при этом, любой строке ОЗУможет соответствовать одна из четырех соответствующих строк банков кэша.Соответсвенно, имеются четыре памяти тегов по 128 строк. При запросе данного изпроцессора (T-S-N) одновременно считываются четыре S строки данных кэша ичетыре S строки тэгов.
Если содержимое одной из считанных строк тэга равно Т, кэшпопадание и запрашиваемый байт выбирается из S строки данных того банка кэша, укоторого строка тегов совпала с Т. Если содержимое строк памяти тэгов не равно Т– кэш промах. Тогда, по алгоритму LRU выбирается один из четырех банков кэша, ив него T-S строка ОЗУ переписывается в S строку памяти данных кэша, а Тзаписывается в S строку памяти тэгов.Для кэша второго уровня нет разделения на I кэш память, и кеш данных – Dкэш.
Размер кэша может быть для различных моделей процессора составлять128,256,512, .. Кбайт, он также частично ассоциативный с коэффициентом четыре (4way), при этом размер банков будет соответственно равен 32,64,128 Кбайт. Строкикэша 32 байта.11. Cтратегии обновления основной памяти.Cтратегии обновления основной памяти две: метод сквозной записи и методобратной записи.Кэш-память с немедленной (сквозной) запиcью в ОЗУ (write-through).12Такой кэш при операции 'запись' данного в память всегда записываетданное в основную память и ,возможно, в кэш, если он содержит отображениесоответствующей ячейки памяти.Кэш-память с отстроченной запиcью в ОЗУ (write-back).При данной схеме записи данное записывается только в кэш (насоответствующее адресу основной памяти место).