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

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

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

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

Инструкпия р. геесья работает аналогично р 'е ь, но автоматически присваивает загружаемой строке статус модифицируемой. Если строку действительно планируется модифицировать, это сэкономит от 15 до 25 тактов процессорного времени. Если же вы неуверены — будет ли реально модифицировать строка или нет, лучше загрузите ее как иекяючитеяьяую, т. к. выгрузка людифицируеюой, но реально не молифицированной строки в оперативную память обойдется намного дороже. Несмотря на то, что АМ(э позиционирует команлы предвыборки как аппаратно-независимые, они таковыми яе являются, поскольку количество байт, ЗатружаЕМЫХ ИиетрухцИИМИ ркететсв И ягезя~ сха, Оцрсдсдястея раЗМЕрОМ Кэш кэш-линий процессора, а их длина различна: 32 байта для процессора Кб (1()А СЗ) и 64 байта для А()т)опхРцго(ь Кроме того, соответственно, различны оптимальный шаг и минимальная дистанция предвыборки (подробнее см.

разд. "Планирование дистанции предвыборки" этой главы). В связи с этим становится очень интересным следующее высказывание АМР, почерпнутое из руководства по оптимизации пол процессор Аг)йоп: "ТЬе РКЕГЕТСНЫТА/ТО/Т1/Т2 (пз(гис((о(м (п (Ье ММХ ех(епв!опз аге ргосеззог (тр1етеп(айоп дерепдеп(. 1~(Ье дете!орег пее((з (о тат(ат сотрапЬ(1((у (е!(Ь (Ье 25 тгНюп АМХ(-Кбе -2 ап(( АМП-Кб-П1 ргосеззогз а(сеиду зо(((, иве (Ье 30!(ов! РКЕГЕТСН/Вг(пз(гис((о(гз (пз(еай о3" (Ье гамоиз р~е~е(сй (пз(гис((опз (Ьа( аге пев ММХ ех(епз(опз", что в переводе на русский звучит приблизительно так: "Инструкции Р((ЕРЕТСННТА/ТО/Т!/Т2 из ММХ-расширения аппаратно зависимы.

Если вы, господин разработчик, нуждаетесь в совл(естимости с 25 миллионами уже проданных процессоров АМЛ-Кб е -2 и АМ!)-Кб-П1, вл(еппо инструкций предвыборки нового расширения ММХ пользуйтесь командами РКЕРЕТСН/(4г иэ расширения 30(уои!' Вот вам хорошая демонстрация искусства умолчания! Если уж бросать камень в огород )п(е), то нелишне бы отметить, что, во-первых, и собственные инструкции предвыборки аппаратно зависимы, а, во-вторых, процессорами Реп(шш они не поддерживаются. Так что никаких преимуществ у предвыборки, предложенной фирмой АМР, перед )(пе! нет и использовать ее не рекомендуется. Предвыборка в процессорах Р-П! и Р-4 В процессорах Р-)П и Р-4 программная предвыборка осуществляется следующими инструкциями: рге(еьсьпса, рге(еьсьсс, рге(ьесль(, ргь(ессьс2. Суффикс указывает на тип загружаемых данных, что определяет уровень кэш-иерархии, в которую эти данные будут загружены. Так, "НТА" расшифровывается как "Хоп-ТетрогА( (()а(а1" — невременные данные, т.

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

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

Причем, в отличие от рге(елось(м, инструкции р е(ессь~са((0(ь1(с2 не приказывают, а рекомендуют (или, если уголно, то просят) осуществить пред- Глава 3 выборку. Процессор же отклоняет просьбу и не осуществляет предвыборку, если: П запрошенные данные уже содержатся в каше соответствующей или ближайшей к процессору иерархии; П сведения о странице, к которой приналлежат загружаемые данные, отсутствуют в ПТЬВ (Юага Тгапв(айоп Ьоок аз!де Впйег — буфере ассоциативной трансляции); (з подсистема памяти процессора занята перемещением данных между Ь1- и Ь2-кэшем; П запрошенные данные принадлежат региону некэшируемой памяти (странице с атрибутами ЫС или ()3%С); ьз данные не могут быть загружены из-за ошибки доступа (при этом исключение не вырпбал!ывается); ~3 инструкция предвыборки предваряется префиксом ьоск (в этом случае генерируется исключение "неверный опкод").

Во всех остальных случаях предвыборка выполняется. Алгоритм ее выполнения аппаратно-зависим и сильно варьируется от одной модели процессора к другой, поэтому, поведение "предвыборных" команд на Р-Ш и Р-4 далее рассматривается по отдельности. Ревбшп-1П. Инструкция р~вевесьцв загружает данные в кэш первого уровня, минуя кэш второго. Действительно, данные, повторное обращение к которым не планируется, целесообразно помещать в кэш-память самой ближайшей к процессору иерархии, не "затирая" содержимое остальных, т. к.

оно может еще пригодиться, а вот однократно используемые данные после их вытеснения из Ь1-кэша из Ь2-каша затребованы уж точно не будут. Инструкция р гвссьео загружает данные в кэш иерархии обоих уровней. Данные, обращение к которым происходит многократно, будучи загруженными в 1.2-кэш, окажутся как нельзя кстати, когда будут вытеснены из 1.!-каша. Инструкции р= гвссле! и р вея~~ьез загружают данные в один лишь кэш второго уровня, не помещая их в кэш первого. Поскольку выгрузка буферов записи происходит в кэш второго уровня, минуя первый, то предвыборку соответствующих линеек в Ь1-кэш осуществлять нецелесообразно.

Вот тутто и!!ригодится ртегеесье1)с2! Размер загружаемых данных равен длине кэш-линеек соответствующей иерархии и составляет 32 байта. Ревйшв-4. Ни одна из команд предвыборки процессора Р-4 не позволяет загружать данные в кэш первого уровня. Все — и временные, и невременные данные помещаются лишь в кэш второго уровня, поскольку создатели процессора захотели поступить именно так. Эффективность такой стратегии Кэш дискуссионна, но, как бы там ни было, время доступа к кэшу второго уровня намного меньше времени доступа к оперативной памяти, поэтому даже такая предвыборка все же значительно лучше, чем ничего.

Возникает вопрос — если все команды предвыборки помещают загружаемые данные в кэш второго уровня, то какая между ними разница? Между командами р гчссьез, р чгяеоьез и р= гчголез — действительно, никакой. А вот команла р~егеесьп~а отличается тем, что помещает загружаемые данные не в любой, а исключительно в первый банк кэша второго уровня (восьми- ассоциативный Ь2-кэш процессора Р-4 содержит восемь таких банков), благодаря чему инструкция р гэеоь еэ никогда не вытесняет более )/8 объема каша второго уровня, Однократно используемые данные, как уже говорилось ранее, действительно, не должны вытеснять многократно используемые данные из верхних кэш-иерархий, но в процессоре Р-4 такое вытеснение все же происходит, и прелотвратить его, увы, нельзя.

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

Учитывая существование процессоров К6~А!(з)оп, вариантов реализапии набирается уже четыре. Не слишком ли много головной боли для программистов? Нет, это вовсе не призыв к отказу от предвыборки — в ряде случаев такой отказ просто невозможен. Это всего лишь незлобное ворчание замученного программиста (А программисты, как и комсомольцы, легкими путями не избалованы.) Сводная характеристика инструкций предвыборки различных процессоров Для облегчения ориентирования среди множества команд предвыборки и особенностей их поведения на различных моделях процессоров все основные характеристики собраны в табл.

З.б. Глава 3 358 Таблица 3.8. Сводная характеристика инструкций предвыборхн различных процессоров Характеристика Инструкция Кб СЗ-Ч1А р-ш Р-4 Ат)т!оп Загружает 32 байта в кэш-уровни всех кэш-иерархий и определяет со- стояние строки как исключительное Загружает 64 байта в кэш-уровни всех кэш-иерархий и оп- ределяет состояние строки как исключи- тельное сгетегсь Загружает 32 байта в кэш-уровни всех кэш-иерархий и определяет со- стояние строки как модифицируемое Загружает 64 байта в кэш-уровни всех кэш-иерархий и оп- ределяет состояние строки как модифи- цируемое ргетегсьч Не поддерживается ргегегсьпга Загружает 64 байта в ).1-кэш Загружает 32 байта в ).1-кэш Загружает 128 байт в первый банк ).2-нэша Загружает 64 байта в11- и12-кэш сгегегсьго Не поддерживается Загружает 32 байта в ) 1- и 1.2- кэш Загружает 128 байт в 1 2-кэш Загружает 64 байта в ) 2-кэш Ргегегсьгт Загружает 32 байта в ) 2-кэш ргегегсьг2 Загружает 64 байта в ) 3-кэш (если есть) Аппаратная предвыборка в микропроцессоре Р-4 Сказать, что АМР опередила !гпе! с поддержкой программной прсдвыборки, — означает сказать лишь половину правды.

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

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

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