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

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

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

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

номер строки и номер столбца), а сигнал %Е должен быть сброшен (переведен в высокое состояние, соответствующее операции чтения ячейки). Уровень сигнала ОЕ (Ощрш ЕпаЫе — разрешение выхода) нс играет никакой роли, т. к. на выходе пока ничего не содержится, точнее выходные линии находятся в так назсяваемом высоко импедансном состоянии (Н1й)з (пзрес)апсе). СпУстЯ некотоРое вРемЯ (глав„„, А„к ), опРеделЯемое быстРодействием управляющей логики и быстротечностью перехолных процессов в инверторах, на линиях выхода появляются долгожданные данные, которые вплоть до окончания рабочего цикла (гп,,к~,.) могут быть непосрелственно считаны. Обычно время лоступа к ячейке статической памяти не превышает ! — 2 нс, а зачастую бывает и меньше того! Цикл записи Цикл записи происхолит в обратном порядке.

Сначала мы выставляем на шину адрес записываемой ячейки (см. рис. 3.8) и одновременно с этим устанавливаем сигнал %Е (переводим в низкое состояние). Затем, дождавшись, когда наш адрес деколируется, усилится и поступит на соответствующие битовые линии, устанавливаем сигнал СЯ, "приказывая" микросхеме подать сигнал высокого уровня на требуемую линию толч. Ключ, удерживающий триггер, откроется и в зависимости от состоянии Ыг-линии, триггер переключится в то или иное состояние.

Типы статической памяти Существует как минимум три типа статической памяти: асинхронная (только что рассмотренная выше), синхроссгсая и конвейерная. Все они практически ничем не отличаются от соответствующих им типов динамической памяти (слс. розд. Устройство и принципы срункцссонировпнсся оперативной палсяспи' глссвы г), поэтому во избежание никому не нужного повторения далее приведено лишь краткое их описание. Асинхронная статическая память Асинхронная статическая память работает независимо от контроллера и потому контроллер не может быть уверен, что окончание цикла обмена совпа- Глава 3 252 дет с началом очередного тактового импульса.

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

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

Также конвейерная память может обрабатывать несколько смежных ячеек за один рабочий цикл. Достаточно передать лишь адрес первой ячейки пакета, а адреса остальных микросхема вычислит самостоятельно, — только успевай подавать (забирать) записываемые (считываемые) данные! За счет большей аппаратной сложности конвейерной памяти время доступа к первой ячейке пакета увеличивается на один такт, однако это практически не снижает производительности, т. к. все последующие ячейки пакета обрабатываются без задержек.

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

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

Истоки Итак, динамическая оперативная память относительно дешева, но по сегодняшним меркам недостаточно производительна. Статическая оперативная память на всех, достигнутых ныне частотах, имеет скорость доступа в один такт, но стоит чрезвычайно дорого и потому не может использоваться в качестве основной оперативной памяти ПК. Так может, хотя бы часть памяти реализовать на БРАМ? Знаете, а это мысль! Ведь что по сути представляет собой оперативная память? Правильно — временное хранилище данных, загруженных с внешней, так называемой, дисковой памяти. Диски слишком медленны и интенсивная работа с ними крайне непроизводительна.

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

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

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

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

Обеспечение быстрого доступа к интенсивно используемым данным Архитектурно кэш-память расположена между процессором и основной оперативной памятью (рис. 3.9) и охватывает все адресное пространство (реже ее часть). ш-память Рис. ЗЛН Расположение кеша в иерархии оперативной памяти Перехватывая запросы к основной памяти, кэш-контроллер "смотрит": есть ли действительиал ("валиднан" от англ. яабд) копия затребованных данных в кэше. Если такая копия там действительно присугствует, т. е. произошло так называемое кэш-попадание (сасне йй), то данные наскоро извлекаются из сверхоперативной памяти. В противном случае говорят о промахе — (сасйе тцз), и тогда запрос данных переадресуется к основной оперативной памяти.

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

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

(Помните, как говорил кот Матроскин: "Чтобы продать что-нибудь ненужное, надо сначала кутсть что-нибудь ненужное".) Поиском вот таких наименее нужных данных и занимается стратегия заме- шенин. Можно принимать решение, основываясь на количестве обращений к кажлой порции данных (частотный анализ), можно — основываясь на времени последнего обращения, выбрав ту, к которой дольше всего не обращались (алгоритм ЬК() — Ьеам Кесепг!у ()ьег)), можно — основываясь на времени загрузки из основной памяти, вытеснив ту, которая была загружена раньше всех (алгоритм Р1РΠ— Р!гтп 1прп! Р!гм Ошрш), а можно просто подкинуть монетку (гапдоии е-алгоритм) — на кого судьба ляжет, — ту и вытеснять (кстати, именно такая стратегия замещения использовалась в процессорах АМО К5).

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

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

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