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

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

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

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

6. Если же банк находится на регенерации, контроллеру приходится подож- дать от одного до трех тактов пока она не будет завершена. Конечно, это только приблизительная схема, не учитывающая конструктивные особенности отдельных наборов системных логик. Так, например, чипсеты от пЧ1Р1А оснащены двумя независимыми контроллерами памяти, общающимися со "своими" модулями памяти, в результате чего запросы от угу Оперативная памягь // вычисление пропускной способности оперативной памяти с учетом латентности чипсета С = (Н /* разрядность памяти, байт */ * ВВЯТ ЬЕН /* длина пакета, итер */1 / /* арбитраж */ /* передача адреса ячейки */ /* передача идентификатора транзакции */ /* латентность В1С */ /* декодирование МСТ адреса ячейки */ /* латентность МСТ */ /* пенальти на согласов.

частот Меи/ГЯВ */ /* Сйя Веьау */ /* передача данных от ВВВМ к ВВГГ/В1С */ /* пенальти на согласование частот */ /* передача данных от ВВГГ к В1С */ /* латентность В1б */ /* передача данных от В10 к СРС */ /* латентность СРС */ /* передача данных от ь2 к ьт */ /* пенальти на согласов. частот СРВ/ГЯВ*/ 2/ГЯВ ь 1/ГЯВ е 1/гяв + 1/Гзв а ЫГЯВ + 1/гяв + Свфрвеб репа1Су/Ги + ВВЯт НВМ*СВЯ 1абелсУ/Пв ь (тяг12ВВЯТ ЬКН/Ги:1/Гвц + СЬьрвеС репа1Су/Гяв + ~ТМСТЯВ1врагаьье12ВВЯТ Ькн/Гяв:1/РЯВ~ т 1/ГЯВ ь Ггькьвебсабеьутт/ГЯВ:ЯВЯТ ЬКМ/ГСгапзт~ + СРС 1аСепсу/Гсрц а Х СДСМЕ*ВВЯТ 1*ЕМ/Герц ь СРВ репаьСу/Герц АСР-карты исполняются параллельно с запросами процессора, уменьшая тем самым латентность чипсета.

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

Полный исходный текст читатель найдет в файле ~ягс~(21.рлешогу~ ярее11,ехасйу.с, который находится на прилагаемом компакт-диске, в книге же ради экономии места приведен лишь ее ключевой фрагмент. Рассмотрим его (листинг 2.1). 12В Глава 2 т каз затепоу/((ьвн рече*к/(н*внзт ьанм *па( /* задержка на открытие страницы памяти */ (т(птет1еачвпЧЗО:квз (зтеоватзе/ги( /* заде(ежа на перезарядку банка */ Сразу видно, что величина ВАЯ го САБ Ре!ау при последовательном доступе к ячейками на производительность практически не влияет и ей можно пренебречь.

Время перезарядки банка (ВАВ ргес!загяе) за счет чередования банков и вовсе маскируется, поэтому при последовательном доступе не играет никакой роли. Величина САБ Ре!ау, будучи много меньше обшей латентности чипсета, очень незначительно влияет на производительность системы, особенно на АМР Ай!оп, где одним САБ Ре!ау считывается восемь порций данных из памяти (на Р-П/Р-1П лишь четыре).

Таким образом, основной фактор, определяющий производительность, это (за исключением архитектуры чипсета) — частота работы памяти и частота передачи данных по системной шине (при условии, что внутри чипсета данные перемещаются с не меньшей скоростью, — в противном слу(ае частота системной шины утрачивает свою определяющую роль). Отображение физических 0ВАМ-адресов на логические С точки зрения процессора, оперативная память представляется однородным массивом данных, доступ к ячейкам которого осуществляется посредством 32-разрялных указателей.

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

Что ж, абстрагирование от аппаратуры — действительно великая вещь и отличный способ Оперативная память заставить программу работать на любом оборудовании, но насколько эффективно она будет работать? В раэд. "Оптимизация работы с' памятью" этой главы показано, что обеспечить эффективную обработку больших массивов данных без учета архитектурных особенностей 0КАМ вЂ” невозможно. Как минимум мы должны иметь представление, по какому именно физическому адресу происходит чтение/зались ячеек памяти. К счастью, схема трансляции адресов в подавляющем большинстве случаев практически идентична (рис.

2.!2). Младшие биты логического адреса представляют собой смешение ячейки относительно начала пакетного цикла обмена и никогда не передаются на шину. В зависимости от модели процессора длина пакетного цикла обмена колеблется от 32 байт (Кб, Р-П, Р-Ш) до 64 байт (АМ0 А!Иод) и даже до 128 байт (Р-4). Соответственно, количество битов, отводимых под смещение внутри пакета, различно и составляет 4, 5 и 6 битов на Кб/Р-П/Р-1П, А!!т!оп и Р-4 соответственно. зт зогвзв~г72б!2б24~2з2221 го!в!в!7(тетб141зтзц!'!о~ в в 7 б б 4 з 2,:1 о) старшие биты номера столбца номер страницы выбор ППАМ младшие 7 бит смещение в банка номера столбце пакетном цикле Рис.

2.12. Типовая схема трансляция процессорных адресов в физические адреса 0НАЫ-памяти Следующая порция битов указывает на смещение ячейки внутри 0ВАМ- страницы (или, говоря другими словами, представляет собой номер столбца). В зависимости от конструктивных особенностей микросхемы памяти длина 0ВАМ-страниц может составлять 1, 2, или 4 Кбайт, поэтому количество бит, необходимых для ее адресации, различно. Но ведь разработчики чипсетов тоже люди и реализовывать несколько систем трансляции адресов им особого удовольствия не доставляет! Большинство существующих чипсетов поддерживают модули памяти только с 0ВАМ-страницами размером в 2 Кбайт, что соответствует 7 битам, отводимых для их адресации (надо учитывать, что адресуются не биты, а пакеты по 16 байт = 24).

Более "продвинутые" чипсеты (в частности 1пге! 815) умеют обрабатывать страницы и большего размера, отображая старшие биты номера столбца в самый "конец" процессорного адреса. Таким образом, программная длина 0ВАМ- страниц практически во всех системах равна 2 Кбайт, — и это обстоятельство еше не раз пригодится нам в будущем. Следующие один или два бита отвечают за выбор банков памяти. Все модули памяти, емкость которых превышает 64 Мбайт, имеют четыре 0ВАМ- Глава 2 банка и потому отображают на логическое адресное пространство два бита (2з = 4). Оставшиеся биты представляют собой номер ОКАМ-страницы и их количе- ство напрямую зависит от емкости модуля памяти.

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

Тем более обидно, что в силу архитектурных особенностей платформы 1ВМ РС, теоретическая пропускная способность (она же — заявленная) практически никогда не достигается. Типовые алгоритмы обработки данных задействуют быстродействие оперативной памяти едва ли на треть, а зачастую и менее того! Удивительно, но большинство программистов даже не подозревают об этой проблеме! Одно из возможных объяснений этого феномена заключается в том, что мало кто измеряет производительность своих программ в мегабайтах обработанной памяти в секунду (а если и измеряет, то списывает низкую пропускную способность на громоздкость вычислений, хотя время, потраченное на вычисления, в данном случае играет второстепенную роль). Грамотно организованный обмен данными выполняется, как правило, в три-четыре раза быстрее, причем (и это замечательно!) эффективное взаимодействие с памятью достижимо на любом языке (в том числе и интерпретируемом!), а не ограничено одним лишь ассемблером.

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

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

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