Главная » Просмотр файлов » К. Касперски - Техника оптимизации программ, Эффективное использование памяти

К. Касперски - Техника оптимизации программ, Эффективное использование памяти (1127752), страница 53

Файл №1127752 К. Касперски - Техника оптимизации программ, Эффективное использование памяти (К. Касперски - Техника оптимизации программ, Эффективное использование памяти) 53 страницаК. Касперски - Техника оптимизации программ, Эффективное использование памяти (1127752) страница 532019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 53)

Тем более обидно, что в подавляющем большинстве компьютеров установлен всего один процессор и именно он, а не периферия, интенсивнее всех работает с памятью — не слишком ли дорого обходится поддержка когерентности? Более сложный (но и совершенный!) алгоритм реализует обратная политика записи (% — %г(ге Васк итИе ро11су), до минимума сокращающая количество обращений к памяти. Для отслеживания операций модификации с каж- Глава 3 дой ячейкой кэш-памяти связывается специальный флаг, называемый фла- гом состояния.

Если кэшируемая ячейка была модифицирована, то кэш-контроллер устанавливает соответствующий ей флаг в состояние "грязно" (с(тгту). Когда периферийное устройство обрашается к памяти, кэш-контроллер проверяет— находится ли соответствующий адрес в кэш-памяти и если да, тогда он, "глядя" на флаг, определяет: грязная она или нет? Грязные ячейки выгружаются в основную память, а их флаг устанавливается в состояние "чисто" (с!еаг). Аналогично — при замещении старых кэш-строк новыми кэш-контроллер в первую очередь стремится избавиться от чистых кэш-строк, т.

к. они могут быть мгновенно удалены из каша без записи в основную память. И только если все строки грязные, то выбирается одна, наименее ценная (с точки зрения политики замещения данных) и перемешается в основную память, освобождая место для новой, "чистой" строки. Протокол МЕ8! Под загадочной аббревиатурой МЕБ1, частенько встречающейся в отечественной и зарубежной литературе, скрывается ни что иное, как первые буквы четырех статусов кэш-линейки Мос(!Вес( Ехс1цгйче Б)тагес( 1пча!иб (модифицированная, эксклюзивная, совместо используемая, недостоверная). Но что каждый из этих статусов обозначает? Вот это мы сейчас и рассмотрим (табл.

3.1, 3.2). Таблица 3.1. Статусы кэш-линейки Статус Описание Мосзйбес! Автоматически присваивается кэш-строкам при их модификации. Строка с таким атрибутом не может быть просто выброшена из каша и при ее вытеснении обязательно должна выгружаться в кэш-память более высокой иерархии или же в основную память Ехс!изые Автоматически присваивается кэш-строкам при их загрузке из кеша более высокой иерархии или основной оперативной памяти. Модификация строки с атрибутом Ехс!изЬе влечет его автоматическую смену на атрибут Мобйеб.

Строка с атрибутом Ехс!изЬе при ее вытеснении из каша в зависимости от архитектурных особенностей системы либо просто уничтожается (!пс!цз!че-кэш), либо обменивается своим содержимым с одной из строк кэш-памяти более высокой иерархии (ехс!цзЬе-кэш) (см, также равд. "Двухуровневая организация каша" этой главы) 2бб Кзш Таблица ЗЛ (окончание) Статус Описание Присваивается кэш-строкам, потенциально присутствующим в кэшпамяти других процессоров !если это многопроцессорная система). Помимо этого, атрибут Япагеб указывает еще и на то, что строка когерентна содержимому соответствующих ей ячеек основной памяти. Поскольку многопроцессорные системы далеко выходят за рамки нашего разговора, отложим этот вопрос до будущей книги, посвященной многопроцессорным архитектурам Япагег! !пиа!и! Строка отсутствует в кеше и должна быть загружена из кэш-памяти более высокой иерархии или же основной памяти В процессоре АМО А!и!оп добавился новый статус Оттпег — Владелец, и сам протокол стал записываться так: МОЕЯ!.

Подробнее об этом будет рассказано в будущей книге, посвященной многопроцессорным архитектурам. Таблица 3.2. Практическое описание протокола МЕЯ! Статус/свойства Мод!1!ед Ехс1цв!че 81тагед ! пча!!д Эта кзш-линия действительна? да да да нет Копия в памяти действительна? действительна действительна устарела может быть может быть нет нет Запись в эту линию только в зту осуществляется... строку, без обращения к шине Кзш данных первого уровня и кзш второго уровня процессоров Реп!!цгп и АМР К6~А!!т!оп поддерживают все четыре статуса, а кзш када — только два из них 5лагег! и 1луа!Ы.

Остальные не поддерживаются по той простой причине, что кодовый кзш не допускает модификации своих линеек. "А как же Содержится ли копия этой строки в других процес- сорах? этой строке вообще не со- ответствует никакая память только в эту сквозной запи- непосредственстроку, без об- сью в память с но через шину ращения к шине аннулированием строки в кешах остальных про- цессоров Глава 3 в этом случае работает самомодифицирующий код?" — удивится иной читатель.

"А кто вам сказал, что он вообще работает?" — возражу я. Независимо от того, присутствует ли модифицируемая ячейка в кодовом кэше или нет, инструкция записи не может непосрелственно изменить ее содержимое, и она помещается в кэш первого (второго) уровня или основную оперативную память. Несмотря на то, что процессор все-таки отслеживает эти ситуации и обновляет соответствующие строки кодового кэша, самомодифицирующегося кода по возможности следует избегать, поскольку: во-первых, при обновлении строк гибнет вся преддекодированная информация, а, во-вторых, процессору приходится очищать конвейер и вновь начинать его заполнять сначала.

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

"ЯРЯАМ (Яаглдиз РЯАМ)— Яатбиз-памялгь" главы 2), налагающей жесткие ограничения на максимально возможное количество адресных линий, а значит — на непосредственно адресуемый объем памяти. В принципе, мы можем прибегнуть к мультиплексированию выводов или последовательной передаче адресов (как, например, поступили разработчики КатЬцз РВАМ), но это неизбежно снизит производительность, и доступ к ячейке кэш-памяти потребует более одного такта, что не есть хорошо. С другой стороны, двухпортовая статическая память действительно очень дорога, а однопортовая не в состоянии обеспечить параллельную обработку нескольких ячеек, что приводит к досадным залержкам.

Естественный выход состоит в создании многоуровневой кэш-иерархии (рис. 3.! 2). Большинство современных систем имеют как минимум два уровня кэщ-памяти. Первый, наиболее "близкий" к процессору (условно обозначаемый ьеве1 1 или сокращенно 11), обычно реализуется на быстрой двухпортовой синхронной статической памяти, работающей на полной частоте ядра процессора. Объем Е1-кэша весьма не велик и редко превышает 32 Кбайт, поэтому он должен хранить только самые-самые необходимые данные. Зато на обработку двух полноразрядных ячеек уходит всего один такт. Кэш гбу Процессоры семейства хбб оснащаются не истинно двухпортовой памятью! Двухпортовый у нее лишь интерфейс, а ядро памяти состоит из нескольких независимых банков, — обычно восьми, реализованных на однопортовых матрицах, и при этом параллельный доступ возможен лишь к ячейкам разных банков (см, разд.

'Стратегия распределения данных ло кзш-банкам" зтои главы). Рис. 3.12. Двухуровневая кзш-иерархия Между кэшем первого уровня и оперативной памятью расположен каис второго уровня (условно обозначаемый Аеке! 2 или сокращенно Х2). Он реализуется на однопортовой конвейерной статической памяти (ВИКАМ) и зачастую работает на пониженной тактовой частоте. Поскольку однопортовая память значительно дешевле, объем Е2-кэша составляет сотни килобайт, а зачастую достигает и нескольких мегабайт! Между тем скорость доступа к нему относительно невелика (хотя, естественно, многократно превосходит скорость доступа к основной памяти).

Во-первых, минимальной порцией обмена между 1.1- и Е2-кэшем является отнюдь не байт, а целая кэш-линейка, на чтение которой ухолит в среднем 5 тактов частоты кэша второго уровня (напоминаем, что формула ВИКАМ памяти выглядит так; 2-1-1-!). Если Е2-кэш работает на половинной частоте процессора, то обращение к олной ячейке займет целых 1О тактов. Разумеется, эту величину можно сократить. В серверах и высокопроизводительных рабочих станциях кэш второго уровня чаще всего работает на полной частоте ядра процессора и зачастую имеет учетверенную разрядность шины данных, благодаря чему пакетный цикл обмена завершается всего за один такт. Однако и стоимость таких систем соответствующая.

Глава 3 Рис. 3.13. !псшане-архитектура каш-памяти Включающая (!пс!вз!уе) архитектура. Кэш второго уровня, построенный по !пс!цгйуе-архитектуре (рис. 3.13), всегда дублирует содержимое кэша первого уровня, а потому эффективная емкость сверхоперативной памяти обоих иерархий равна: 12.САСНЕ 5!ХŠ— Ы.САСНЕ51ХЕ + Ы.САСНЕ.Б!г.Е = = 1.2.САСНЕ.Я!ХЕ. Давайте рассмотрим, что происходит в системе, когда при полностью заполненном каше второго уровня процессор пытается загрузить еше одну ячейку.

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

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

Список файлов книги

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