Диссертация (Оптимизация размещения массивов в общей памяти), страница 3

PDF-файл Диссертация (Оптимизация размещения массивов в общей памяти), страница 3 Физико-математические науки (48659): Диссертация - Аспирантура и докторантураДиссертация (Оптимизация размещения массивов в общей памяти) - PDF, страница 3 (48659) - СтудИзба2019-06-29СтудИзба

Описание файла

Файл "Диссертация" внутри архива находится в папке "Оптимизация размещения массивов в общей памяти". PDF-файл из архива "Оптимизация размещения массивов в общей памяти", который расположен в категории "". Всё это находится в предмете "физико-математические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата физико-математических наук.

Просмотр PDF-файла онлайн

Текст 3 страницы из PDF

Иерархическаяструктура памяти продиктована тем, что многие алгоритмы в определенныйпромежуток времени обращаются к фиксированному набору данных несколькораз.1.1.1.Кеш-память процессораКеш-память процессора – это память, которая находится на одномкристалле с процессором. В современных процессорах кеш-память по степениудаленности от процессора разделяется на несколько уровней. В частности,некоторые процессоры Intel [58], [59] включают в себе 3 уровня кеш-памяти,которые называются кеш-памятью L1, кеш-памятью L2 и кеш-памятью L3.

Кешпамять L1 расположена ближе всего к процессору. Соответственно, скоростьдоступа к ней выше чем скорость доступа к остальным уровням кеш-памяти.Размер кеш-памяти L1 составляет десятки килобайт. Кеш-память L3 являетсясамым медленной, но, в то же самое время, и самой большой. Ее размерисчисляются в мегабайтах. В некоторых многоядерных процессорах [58], [59]кеш-память L3 является общей для всех ядер, в то время как каждое ядро имеетсвою кеш-память меньших уровней.15Кеш-память процессора может хранить не только данные, но и инструкции(код исполняемых в данный момент программ).

Например, в [58] кеш-память L3позволяет хранить как данные, так и исполняемый код программ. В кеш-памятиL1 и кеш-памяти L2 данные и инструкции хранятся в двух разных уровнях кешпамяти, которые называются кеш-памятью данных (L1d, L2d) и кеш-памятьюинструкций (L1i, L2i) соответственно. В данной работе речь в большей степенибудет идти о кеш-памяти данных.В тот момент времени, когда данное считывается из оперативной памяти,производится проверка на наличие этого данного в кеш-памяти процессора.

Еслиданное находится в кеш-памяти, то обращение к оперативной памяти неосуществляется. Такая ситуация называется попаданием в кеш-память (caсhe hit).В противном случае происходит кеш-промах (caсhe miss) - считывание данного изоперативной памяти. Т.к. время считывания данных из оперативной памятинамного выше чем из кеш-памяти, то возникает задача минимизации кешпромахов. Один из методов минимизации кеш-промахов описан в разделе 1.2.Рассмотрим более подробно процесс сохранения данных в кеш-памяти.Будем предполагать, что адрес данного представляет собой 64-битное целое.Физически кеш-память представляет собой набор банков памяти (Рисунок 2).Рис 2: Банки кеш-памяти.Данные пересылаются из памяти в кеш-память и наоборот небольшимиблоками - кеш-линейками.

Размер кеш-линейки обычно равен 32 либо 64 байт изависит от процессора. Сохранение кеш-линейки в кеш-памяти означаетсохранение этой кеш-линейки в определенном банке памяти кеш-памяти. Длятого чтобы определить номер банка памяти, в который сохраняется кеш-линейка,16необходимо проанализировать адрес запрашиваемого данного, Его можноразделить на 3 части (Рисунок 3) Тэг (T) Номер банка памяти, в который попадает данное (S). Смещение относительно начала кеш-линейки (O).Рис 3: Адрес элемента.Очевидно, что T + S + O = 64 (размер адреса).O = log(CacheLineSize).Число S определяет номер банка памяти, в который попадет запрашиваемаякеш-линейка.

Так, например, при последовательном чтении массива данные будутсохраняться в последовательных банках памяти. Соответственно, при достижениипоследнего банка памяти следующий банк памяти будет иметь номер 0. Притаком методе считывания данных реально используемое количество банковпамяти равно максимальному значению, кеш-память используется максимальноэффективно.Размер банка памяти, т.е. количество кеш-линеек, которые он можетвместить,называетсяассоциативностьюкеш-памяти.Увеличениеассоциативности кеш-памяти приводит к усложнению ее проектирования. Этосвязано с тем, что усложняется схема устройства, производящего проверку наналичие запрашиваемой кеш-линейки в банке памяти.Если в кеш-памяти присутствует всего один банк памяти (S равен 0), токеш-память называется полностью ассоциативной.

Если банк памяти можетхранить одну кеш-линейку, то кеш-память называется кеш-памятью прямогоотображения. Кеш-память прямого отображения является самой простой с точкизрения проектирования. Большим ее минусом является то, что при ее17использовании вероятность возникновения кеш-промахов намного больше, чемпри использовании полностью ассоциативной кеш-памяти.

На практике вкачестве компромисса между полностью ассоциативной кеш-памятью и кешпамятью прямого отображения часто используется кеш-память с k-канальнойассоциативностью, при которой каждый банк памяти может хранить k кешлинеек. Число k обычно варьируется в диапазоне 4-16. В некоторых случаях кешпамять L1 является полностью ассоциативной.Последний элемент адреса (T) называется тэгом. По тэгу кеш-линейкипроизводится проверка на ее наличие в банке памяти.

Если кеш-линейки с такимтегом нет, то возникает ситуация кеш-промаха.При попытке сохранения кеш-линейки в банке памяти, происходитоперация вытеснения из него другой кеш-линейки. Существует несколькоалгоритмов вытеснения данных из банков памяти, и каждый из них имеет своиплюсы и минусы. На данный момент наиболее часто используемыми методамивытеснения данных является метод вытеснения наиболее давно использовавшихсяданных (LRU - Least Recently Used), а также метод вытеснения наиболее недавноиспользовавшихся данных (MRU - Most Recently Used).Кеш-память делится на инклюзивную (включающую) и эксклюзивную(исключающую) кеш-память. В инклюзивной кеш-памяти выполняется условие:если кеш-линейка хранится в младшем уровне кеш-памяти, то она хранится такжеи в старших уровнях кеш-памяти. В эксклюзивной кеш-памяти наоборот: кешлинейки хранятся только в одном из уровней кеш-памяти.Важной особенностью работы кеш-памяти является также то, чтопрограммист не имеет возможности адресовать находящиеся в ней данные.Единственная возможность явно повлиять на работу кеш-памяти состоит впрограммной предвыборке данных (software data prefetching).

Программнаяпредвыборка данных заключается в заблаговременной перекачке данных изоперативной памяти в кеш-память с целью уменьшения времени простаиванияпроцессора.Такаяобработкаданныхзачастуюраспараллелить вычисления и загрузку данных.позволяетэффективно18Набор операций предвыборки данных зависит от архитектуры процессора.Так, например, в некоторых процессорах Intel с инклюзивной кеш-памятью [58],[59] поддерживается программная предвыборка данных в нескольких режимах(Таблица 1).Таблица 1. Набор операций предвыборки данных в архитектуре x86.PREFETCH0Закачка кеш-линейки во все уровни кеш-памятиPREFETCH1Закачка кеш-линейки во все уровни кеш-памяти заисключением кеш-памяти L1PREFETCH2Закачка кеш-линейки во все уровни кеш-памяти заисключением кеш-памяти L2PREFETCHNTAЗакачка кеш-линейки в кэщ-память с учетом того, что еене следует сохранять в кеш-памяти на долгое времяСтоит отметить, чтокомандыпредвыборкиданныхимеютлишьрекомендательный для процессора характер, т.к.

они не влияют на результатработы программы.Длятогочтобыпроизвестипрограммнуюпредвыборкуданныхпрограммист обязан вставить в код программы вызовы специальной функции,осуществляющей предвыборку данных. Функция, позволяющая программиступроизвестипрограммнуюпредвыборкуданных,частореализуетсявкомпиляторах в виде встроенной (intrinsic) в компилятор функции.

Так, например,в компиляторе MSVC 2010 функция предвыборки кеш-линейки объявленаследующим образом:void _mm_prefetch(char * p , int type);где аргумент p является адресом кеш-линейки, а аргумент type принимает одно изследующих значений: _MM_HINT_T0 - закачка кеш-линейки во все уровни кеш-памяти.19 _MM_HINT_T1 - закачка кеш-линейки в L2 и L3 уровни кеш-памяти. _MM_HINT_T2 - закачка кеш-линейки в L3-уровень кеш-памяти. _MM_HINT_NTA – особый режим предвыборки данных, позволяющийзакачивать данные в кеш-память L1 в обход остальных уровней кешпамяти. Этот режим стоит использовать только при подкачке данных,обрабатываемых только один раз.Многие существующие процессоры являются многоядерными.

В такихпроцессорах кеш-память L1 и кеш-память L2 реализуются локальными длякаждого из ядер в отдельности. Кеш-память L3 является общей для всех ядер иможет использоваться для синхронизации данных различных уровней кеш-памятиL2. Такая кеш-память должна обладать свойством когерентности. Когерентностькеш-памяти – это свойство кеш-памяти, означающее целостность данных,хранящихся в локальных уровнях кеш-памяти.Существует много протоколов обмена данными между локальнымиуровнями кеш-памяти, которые обеспечивают когерентность кеш-памяти (MSI,MESI, MOSI и т.д.). Протокол MESI - широко используемый в современныхпроцессорах протокол поддержки когерентности кеш-памяти. В соответствии сним каждая кеш-линейка имеет одно из четырех состояний:1.

Modified2. Exclusive3. Shared4. InvalidСостояние Modified означает, что кеш-линейка загружена в кеш-памятьтекущего ядра, и данные, хранящиеся внутри нее, изменены.Кеш-линейка принимает состояние Exclusive, если она присутствует в кешпамяти только одного ядра и неизменена.20Аппаратная поддержка виртуальной памяти.

Кеш-память TLB.1.1.2.Виртуальная память – это технология управления памятью, котораяразработана для многозадачных операционных систем. Для данных каждогопроцесса, выполняемого на такой системе, выделяется диапазон адресов,называемых виртуальными адресами.

Процесс не имеет непосредственногодоступа к данным другого процесса.При обращении к данным в программе, написанной для многозадачнойсистемы, происходит отображение виртуальных адресов в физические. За этотпроцессотображенияадресовотвечаетоперационнаясистема.Процесстрансляции виртуального адреса в физический является дорогостоящей повремени операцией. Для его оптимизации соседние виртуальные адресагруппируютсяввиртуальныестраницы,размеркоторыхопределяетсянастройками ОС и может варьироваться от нескольких килобайт до несколькихгигабайт.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5302
Авторов
на СтудИзбе
416
Средний доход
с одного платного файла
Обучение Подробнее