ПОД_2.1 (1184242)

Файл №1184242 ПОД_2.1 (кр_з)ПОД_2.1 (1184242)2020-08-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Казачкин Дмитрий, 522 гр.



Многоуровневый кэш

(параметры, эффективность, учет при программировании).



Кэш (иногда также называется «сверхоперативной памятью») – промежуточный буфер памяти с быстрым доступом, содержащий копию той информации, которая хранится в памяти с менее быстрым доступом, но с наибольшей вероятностью может быть оттуда запрошена.

Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из медленной памяти или их перевычисление, что делает среднее время доступа короче. При этом, в отличии от оперативной памяти, данные в кэше не адресуемы непосредственно, напротив, кэш прозрачен для программиста.

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

Многоуровневый кэш – система из нескольких кэшей, организованных иерархически, при этом каши разных уровней иерархии обладают разными характеристиками. Кэш-память уровня N+1 как правило больше по размеру и медленнее по скорости обращения и передаче данных, чем кэш-память уровня N. У кэша меньшего размера меньше задержка при обращении (latency), но за это приходится платить частотой попадания (hit rate), которая также ниже.

Как правило, в современных архитектурах используется кэш, имеющий как минимум 2 уровня. При этом уровни существенно отличаются целым рядом характеристик:

  • Объем

  • Политика записи (немедленная / отложенная запись)

  • Тип организации (прямое отображение / полная ассоциативность / частичная ассоциативность)

  • Число портов (интерфейсов доступа к памяти)

  • Размер строки







Первый, наиболее "близкий" к процессору (условно обозначаемый Level 1 или сокращенно L1), обычно реализуется на быстрой двухпортовой синхронной статической памяти, работающей на полной частоте ядра процессора. Объем L1-кэша весьма невелик и редко превышает 128 Кб, поэтому он должен хранить только самые-самые необходимые данные. Зато на обработку двух полноразрядных ячеек уходит всего один такт.

Процессоры x86 оснащаются не истинно двухпортовой памятью. Двухпортовый у нее лишь интерфейс, а ядро памяти состоит из нескольких независимых банков - обычно восьми, реализованных на однопортовых матрицах и параллельный доступ возможен лишь к ячейкам разных банков).

Кэш первого уровня традиционно разделяется на две (как правило, равные) половины: кэш инструкций (L1I) и кэш данных (L1D). Это разделение предусматривается так называемой «гарвардской архитектурой» процессора, теоретической разработкой для построения современных CPU. В L1I, соответственно, аккумулируются только команды (с ним работает декодер), а в L1D — только данные (они впоследствии, как правило, попадают во внутренние регистры процессора). Ранее, в процессорах Intel-486 использовалась «принстонская архитектура» – смешанный кэш для команд и данных.

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

По сути, L1 является неотъемлемой частью процессора, поскольку расположен на одном с ним кристалле и входит в состав функциональных блоков. Некоторые процессоры без L1 кэша не могут функционировать. На других его можно отключить, но тогда значительно падает производительность процессора.

Между кэшем первого уровня и оперативной памятью расположен кэш второго уровня (условно обозначаемый Level 2 или сокращенно L2). Он реализуется на однопортовой конвейерной статической памяти (BSRAM) и зачастую работает на пониженной тактовой частоте.

Поскольку однопортовая память значительно дешевле, объем L2 кэша зачастую достигает нескольких мегабайт. Между тем, скорость доступа к нему относительно невелика (хотя, естественно, многократно превосходит скорость доступа к основной памяти).

В то время как кэш первого уровня на каждое ядро свой у всех процессоров, в современных многоядерных процессорах возможны разные политики организации кэша второго и последующих уровней:

• есть процессоры с общим (shared) кэшем второго уровня на все ядра (решение Intel)

• есть на каждое ядро свой кэш второго уровня (решение AMD)

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

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

Таким образом, загруженная порция данных присутствует и кэш-памяти первого уровня, и в кэш-памяти второго, что не есть хорошо. Между тем, многие процессоры построенные именно по включающей архитектуре. В процессорах Intel Pentium II, III, IV реализована частично включающая архитектура, когда дублируется лишь часть данных.

Другая архитектура - исключающая (exclusive). Кэш-подсистема, построенная по exclusive-архитектуре, никогда не хранит избыточных копий данных и потому эффективная емкость сверхоперативной памяти определяется суммой размеров сверхоперативной памяти всех иерархий. Кэш-первого уровня никогда не уничтожает кэш-линейки при нехватке места.

Даже если они не были модифицированы - данные в обязательном порядке вытесняются в кэш-второго уровня, помещаясь на то место, где находилась только что переданная кэшу первого уровня линейка. Т.е. кэш первого и кэш второго уровней как бы обмениваются друг с другом своими линейками, а потому сверхоперативная память используется весьма эффективно. Впервые эксклюзивная кэш-подсистема была реализована в процессоре AMD Athlon.



Критерием эффективной работы кэша можно считать уменьшение среднего времени доступа к памяти по сравнению с системой без кэш-памяти. В таком случае среднее время доступа можно оценить следующим образом:

Tср = (Thit x Rhit) + (Tmiss x (1 - Rhit))

где Thit - время доступа к кэш-памяти в случае попадания (включает время на идентификацию промаха или попадания), Tmiss - время, необходимое на загрузку блока из основной памяти в строку кэша в случае кэш-промаха и последующую доставку запрошенных данных в процессор, Rhit - частота попаданий.

Очевидно, что чем ближе значение Rhit к 1, тем ближе значение Tср к Thit. Частота попаданий определяется в основном архитектурой кэш-памяти и ее объемом. Влияние наличия и отсутствия кэш-памяти и ее объема на рост производительности ЦП показано в приведенной ниже таблице.



Размер и эффективность кэш-памяти

Размер кэш-памяти

Частота попаданий, %

Рост производительности, %

Нет кэш-памяти, DRAM с 2 TW

-

0

16 Кб

81

35

32 Кб

86

38

64 Кб

88

39

128 Кб

89

39





























Чтобы учесть устройство кэша при программировании, следует в блочных алгоритмах следить за объемом анализируемых на каждой итерации данных. Идеальный вариант - попадание блока целиком в кэш L1. Худший – превышение эффективного размера кэша, что приведет к огромному числу пересылок данных, как между уровнями кэша, так и между кэшем и памятью. Если же данные в кэш не помещаются, лучше обрабатывать многомерные массивы по строкам (последовательным участкам памяти), а не по столбцам.

Требуется также учитывать ассоциативность кэша и количество банков в нем, не следует использовать циклы с шагом, кратным числу банков памяти.

Возможны ситуации, когда полезно отключить отдельные уровни кэширования. Отключение кэша второго и третьего уровней обычно используется в математических задачах, например, при обсчёте полигонов, когда объём данных меньше размера кэша. В этом случае, можно сразу записать все данные в кэш, а затем производить их обработку. Возможна и обратная ситуация: в задачах, связанных с многочисленными обращениями к ограниченной области памяти, например, СУБД, при отключении кэша L2 производительность может упасть в десятки раз.

Характеристики

Тип файла
Документ
Размер
29,69 Kb
Материал
Высшее учебное заведение

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов ответов (шпаргалок)

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