1 / 14

Лабораторная работа №1

Лабораторная работа №1. Исследование кэш-памяти и обхода памяти. Определение размеров кэш-памяти. Цель сравнить различные способы обхода данных научиться определять размер кэш-памяти Задание

Download Presentation

Лабораторная работа №1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лабораторная работа №1 Исследование кэш-памяти и обхода памяти

  2. Определение размеров кэш-памяти • Цель • сравнить различные способы обхода данных • научиться определять размер кэш-памяти • Задание • Написать программу, многократно выполняющую чтение элементов массива заданного размера. Элементы массива представляют собой связный список, в котором значение очередного элемента представляет собой номер следующего. Таким образом, способ заполнения элементов массива определяет способ его обхода. Сам обход данных может быть выполнен циклом следующего вида: • for (k=0, i=0; i<N; i++) k = x[k];

  3. 1 2 3 4 5 6 7 0 7 0 1 2 3 4 5 6 7 3 4 2 5 0 1 6 Определение размеров кэш-памятиОбходы Требуется реализовать три способа обхода массива 1. Прямой 2. Обратный 3. Случайный

  4. Определение размеров кэш-памятиЗаполнение массива для случайного обхода

  5. Определение размеров кэш-памяти Построить графики зависимости среднего времени обращения к элементу массива (в тактах) от размера обрабатываемого массива для трех видов обхода. На графиках должны быть видны размеры всех уровней кэш-памяти. По результатам измерений сделать вывод о скорости различных способов обхода массива, а также о размерах различных уровней кэш-памяти. Сравнить полученные размеры уровней кэш-памяти с реальными значениями. Пример графиков, полученных на процессоре Intel Xeon E5420 (L1: 32 KB, L2: 6 MB):

  6. Контрольные вопросы • Что такое кэш-память? Какую проблему она решает? • Какой способ обхода данных в памяти является самым быстрым? Почему? • Какой способ обхода данных в памяти является самым медленным? Почему? • Приведите пример оптимального и неоптимального алгоритмов умножения двух матриц с точки зрения порядка обхода данных в памяти.

  7. Определение степени ассоциативности кэш-памятимножественно-ассоциативная организация кэш-памяти Большинство современных процессоров имеют множественно-ассоциативную организацию кэш-памяти. При множественно-ассоциативной организации кэш-память разделена на несколько множеств и на несколько банков ассоциативности. Каждый блок данных из оперативной памяти может быть помещен в одну из некоторого множества строк кэш-памяти. Число строк во множестве определяется числом банков ассоциативности. Например, кэш данных L1 в процессоре Pentium III имеет объем 16 KB, число банков ассоциативности - 4, число множеств - 128, размер строки - 32 Byte. Размер кэш-памяти: 16 KB = 4 × 128 × 32 B.

  8. Определение степени ассоциативности кэш-памятимножественно-ассоциативная организация кэш-памяти ОП Кэш 32 B 1 2 3 0 32 B 0 1 2 3 … 126 127 32 B 128 × 32 В = 4 КВ … 32 B 32 B 32 B 32 B Номер множества, в которое будет помещен элемент данных из памяти, определяется адресом этого элемента. Какой конкретный элемент множества будет выбран, определяется алгоритмом замещения (циклический, случайный, LRU, псевдо-LRU, …). Число элементов в каждом множестве (равное числу банков кэш-памяти) называется степенью ассоциативности кэш-памяти. Если вычислительная система имеет несколько уровней кэш-памяти, то у каждого уровня может быть своя степень ассоциативности.

  9. Определение степени ассоциативности кэш-памятимножественно-ассоциативная организация кэш-памяти 4 КВ 4 КВ 4 КВ 4 КВ ОП Кэш Элементы данных, имеющих одинаковые номера множеств, т.е. отстоящие на определенное расстояние в памяти (4 KB), помещаются в одно и то же множество кэш-строк. На все эти данные приходится всего 4 кэш-строки, т.е. 4 × 32 B = 128 B. Если выполнять обход данных с шагом 4 KB (или кратным 4 KB), то из всех 16 KB кэша L1 будет использоваться всего 128 B, которые будут постоянно перезаписываться (эффект «буксования» кэш-памяти). Производительность подсистемы памяти при этом будет такая же, как при отсутствии кэш-памяти.

  10. Определение степени ассоциативности кэш-памяти Цель работы Научиться определять степень ассоциативности кэш-памяти. Определить степени ассоциативности кэш-памяти можно следующим способом. Выполняется обход N фрагментов данных суммарным объемом BlockSize, отстоящих друг от друга на величину Offset:

  11. Определение степени ассоциативности кэш-памяти Параметры обхода: BlockSize – суммарный объем данных, к которым происходит обращение. Offset – расстояние между началами соседних блоков. N – число фрагментов (на картинке N = 4). BlockSize должен быть не больше объема исследуемого уровня кэш-памяти. Offset должен быть кратен размеру банка ассоциативности. Как правило, эти размеры являются степенями двоек, так что в качестве Offset можно взять большое заведомо кратное значение (например, 8 MB). Изменяя число частей N, мы увидим, как меняется время обращения к одному элементу. Когда N превысит число банков ассоциативности, время сильно возрастет.

  12. Определение степени ассоциативности кэш-памяти

  13. Определение степени ассоциативности кэш-памяти Написать программу, определяющую степень ассоциативности кэш-памяти. Программа должна многократно выполнять чтение элементов массива в порядке, указанном выше. Элементы массива представляют собой связный список, в котором значение очередного элемента представляет собой номер следующего. Параметры: BlockSize =1KB, Offset =8 MB, N =1…20. Построить график зависимости среднего времени обращения к элементу массива (в тактах) от N – числа фрагментов. По полученному графику определить степень ассоциативности кэш-памяти. Пример графика, полученного на процессоре Intel Xeon E5420 (L1: 4-way, L2: 8-way): На графике видно замедление после 4 и после 8 фрагментов, что соответствует степеням ассоциативности кэшей L1 и L2 процессора Intel Xeon E5420.

  14. Контрольные вопросы • Что такое степень ассоциативности кэш-памяти? • Что такое эффект буксования кэш-памяти? Как его вызвать? Как его избежать? • Какой график получится в результате исследования кэша данных L1, описанного в теоретической части? Как изменится график, если расстояние между фрагментами взять 1KB?

More Related