Кэш память где находится: Кэш память процессора это что за устройство и его предназначение
что такое, удаление, где храниться
Каждому приложению для работы требуется пространство, используемое для выполнения операций. Место хранения этих файлов называется кэш. Через время он заполнится, что приведет к снижению скорости работы телефона. Чтобы очистить кэш на Андроиде потребуется следовать четкой инструкции.
Что такое кэш
Кэш – это пространство, где хранятся данные приложений. Это ускоряет загрузку файлов (фото, музыка, видеоролики, списки дел, история браузера и так далее). Пример работы можно разобрать на прослушивании песни: действие запоминается после выполнения и откладывается в виде файла в кэше. После этого та же песня, которую запустит владелец телефона, загрузится быстрее.
Типы кэша
Если что такое кэшированные данные в телефоне понятно, то дополнительно нужно понять, какой он есть. Деление на типы обусловлено видом приложения, которое создает файлы. От этого будет зависеть место, в котором он хранится. Типы кэша:
- Dalvik-cache. Пространство, выделяемое для виртуальной машины Dalvik. Очистить его можно, но проблематично. Делать это придется самостоятельно через режим разработчика. Неопытному пользователю лучше этим не заниматься.
- Системный, в разделе cache. Здесь хранятся данные системных приложений и операционной системы. Лучше не заниматься его очисткой, так как это приведет к удалению паролей и других данных.
- Для приложений. Сюда попадают данные из программ, которые установлены самим пользователем. Его очистка не может негативно повлиять на смартфон.
Поэтому почти всегда очищается только третий тип кэша. Dalvik-cache занимает мало места, а для его очистки придется проделать сложный путь, поэтому малое количество пользователей занимается удалением файлов из него. Системный раздел не затрагивается, чтобы не повредить важные данные владельца телефона и файлы ОС Android.
Читайте также: Приложения для ускорения и чистки Android
Где найти кэш
Временные файлы пользовательских приложений можно найти в специальной папке Android, которую можно найти на самом устройстве или карте памяти. Удалять ее нельзя, так как она в себе хранит и другую важную информацию. Чтобы понять, где находится кэш на Андроиде, нужно открыть Andriod, а здесь есть папки data и obb.
Эти обе папки хранят в себе кэшированные данные, но в отличающимся виде. В data они расположены в формате отдельных файлов, а в obb – в виде архивов. Для каждого приложения здесь создается отдельная папка с одноименным названием.
Удалять данные таким образом тоже можно, но лучше воспользоваться системными или установленными программами, которые самостоятельно найдут и удалят скопившийся мусор.
Почему кэш необходимо очищать
Постоянная очистка кэша требуется не каждому пользователю. Если он использует только пару приложений, то память заполняется медленно, что не будет негативно влиять на работоспособность смартфона. Другое дело, когда у владельца телефона много приложений, которые постоянно удаляются и устанавливаются, сменяя друг друга.
Внимание! Удалив кэш, нельзя продолжить работу с приложением с того места, с которого владелец смартфона прекратил его использование.
Сегодня среднее количество оперативной памяти равно 4-8 ГБ. Этот объем пространства быстро засоряется ненужными файлами, ведь данные кэшируются постоянно, откладываясь в памяти устройства. Заметить недостаток необходимого пространства легко – телефон перестанет корректно работать, так как количества свободных ресурсов будет недостаточно для функционирования операционной системы.
Внимание! То, как часто необходимо проводить чистку, зависит от характеристик телефона. Проще очищать пространство, когда оно заполнено.
Также не рекомендуется слишком часто очищать память. Это приведет к тому, что временные файлы будут постоянно удаляться, из-за чего приложения и система будут работать медленно, постоянно загружая новые файлы, вместо использования данных из хранилища. Значит, что очищать кэш на телефоне стоит только в случае необходимости, когда свободного места больше нет.
Как очистить кэш
Очистить кэш можно несколькими способами. Для этого используются стандартные возможности устройств на Андроиде или специальные приложения из GooglePlay. Последние избавляют от большего количества мусора, тем самым повышая производительность смартфона.
Важно! Перед началом очистки кэша необходимо закрыть приложения, которые не будут задействованы в процедуре.
Через стандартный интерфейс Андроида
Большинство пользователей применяют стандартные инструменты смартфона. Для этого потребуется:
- Открыть настройки телефона.
- Найти раздел «Хранилище», где должна находиться строчка «Данные кеша».
- Нажать на эту строчку и подтвердить очистку данных.
Останется ожидать, пока система просканирует и самостоятельно удалит лишние файлы. В разделе «Хранилище» также можно ознакомиться с количество свободного и занятого пространства памяти. Если память не заполнена до конца, то не стоит проводить очистку.
На некоторых телефонах путь к кнопке очистки кэша изменен. Например, на Samsung Galaxy, где в меню настроек необходимо найти пункт «Обслуживание» устройства и перейти по ссылке «Память». Здесь есть строчка «Оптимизировать», она то и осуществит необходимое действие.
Программа Clean Master
Это приложение специально создано для удаления лишних данных, которые не используются.
Для очистки кэша потребуется следовать инструкции:
- Скачать приложение Clean Master, найдя в Play Market.
- Открыть программу и найти раздел «Мусор» (иконка мусорной корзины).
- Далее приложение самостоятельно проведет анализ данных, хранящихся на телефоне, чтобы найти лишние файлы, удаление которых разгрузит ОС.
- Поставить галочку напротив пункта «Ненужный кэш». Тогда найденные кэшированные данные будут удалены.
Clean Master распространяется бесплатно. Но ряд функций доступен только после покупки программы. Если у телефона недостаточный объем памяти, то полноценная версия будет полезной благодаря переводу неактивных приложений в спящий режим.
Piriform CCleaner
Софт CCleaner получил известность, когда программа использовалась исключительно на компьютерах. Когда смартфоны стали набирать популярность, то компания незамедлительно выпустила софт для мобильных устройств. Сама процедура удаления кэша схожа с той, что используется в приложении Clean Master. Для удаления файлов потребуется следовать инструкции:
- Скачать приложение Piriform CCleaner в Play Market.
- Запустить программу и выполнить задачу «Анализировать».
- Поставить галочку напротив двух пунктов: «Скрытая кэш-память» и «Видимая кэш-память».
- Подтвердить действие.
Программа самостоятельно очистит лишние файлы. CCleaner, как и Clean Master, распространяется бесплатно, но некоторые функции доступны только при покупке платной подписки.
Аналогичных приложений, которые анализируют и удаляют мусор, много. При этом большинство из них работают по одинаковому принципу, изменяются только названия кнопок, а сами действия остаются те же. Поэтому пользователь может выбрать любую из самых популярных программ для очистки кэшированных данных. Они очищают память, позволяя удалять файлы из самых труднодоступных мест. Менее популярные программы уничтожают только внешние данные, до которых легко дойти.
Важно! Очистка данных – это необходимо, но делать это нужно не постоянно. Дело в том, что слишком частая очистка может привести к негативным последствиям, связанным с замедлением работы телефона и появлением багов.
После прочтения статьи, теперь каждый знает, что это такое – кэшированные данные и можно ли удалить их. При этом выбор способа очистки остается за пользователем. По сути, они не сильно отличаются друг от друга, то программы находят и другие мусорные файлы, которые можно удалить вместе с кэшем.
что это значит, как просмотреть и удалить документы и данные
При работе с приложениями на компьютере или мобильном устройстве со временем скапливаются кэшированные данные. Они заполняют память гаджета, затрудняя его работу. Поэтому необходимо своевременно проводить очистку кэша. Файлы в мессенджере Telegram сохраняются не только в памяти устройства, но и в облаке, поэтому можно не переживать за их сохранность. Выясним, как очистить кэш в приложении Телеграм на разных цифровых устройствах.
СОДЕРЖАНИЕ СТАТЬИ:
Где находится кэш Телеграма
Кэш постепенно накапливает информацию и данные, оставшиеся после выхода в интернет. В нем остаются загруженные картинки, проигранные аудиодорожки и другие файлы. На ПК такая информация сохраняется в диске C, на мобильных устройствах – в системных файлах.
На ПК
Операционная система при заполнении кэша перегружается. Это связано с недостаточной памятью на диске C. Для освобождения емкости памяти требуется регулярная очистка кэша. Путь папки: Диск C/Пользователи/Имя_пользователя/Загрузки/Telegram. По желанию, юзер может указать собственный путь для хранения файлов.
Для поиска кэша пользователь должен выполнить следующее:
- Набрать в поисковой строке запрос «Telegram».
- В появившемся окне отобразится несколько вариантов, например: «Telegram Images», «Telegram Desktop» и другие.
Чтобы самостоятельно выбрать место для хранения кэшированных данных, достаточно следовать пошаговой инструкции:
- Открыть настройки приложения Телеграм.
- Зайти в раздел «Продвинутые настройки».
- Найти пункт «Данные и память».
- Нажать на пункт «Путь для сохранения».
- Выбрать папку для хранения.
Для сохранения кэшированных данных программа предложит три варианта папок: «Загрузки», временная папка, постоянная папка.
На телефоне
Для того чтобы найти сохраненные файлы в мобильном телефоне, нужно выполнить следующее:
- Открыть системную папку «Files».
- В нижней части экрана найти пункт «Хранилища», тапнуть по нему.
- Зайти в подраздел «Внутренняя память». Кликнуть по нему.
- В открывшемся меню выбрать папку Telegram, нажать на нее.
В ней располагаются папки с медиафайлами. Здесь можно выполнить просмотр сохраненного контента, разделенного по категориям.
На смартфонах с ОС iOS посмотреть содержимое внутренних папок невозможно. Это связано с закрытостью операционной системы согласно политике Apple.
Зачем его чистить
Работать с локальными файлами удобнее, чем с содержимым из всемирной паутины. При повторном посещении веб-страницы все данные берутся из кэша. Поэтому сайт загружается быстро. Так происходит снижение нагрузки на интернет-соединение, ускоренная загрузка страниц сайтов.
Кэш постепенно накапливает информацию, занимая все больше пространства в памяти гаджета. Это значительно снижает скорость работы ПК или телефона. Также кэшированные данные могут содержать личную информацию, которая может попасть в руки недоброжелателей.
Смартфоны имеют ограниченное количество памяти, все скачанные приложения активно ею пользуются. Чтобы сохранять личные файлы, фото и видео без проблем, нужно, чтобы в устройстве всегда присутствовало свободное пространство.
В некоторых ситуациях кэш мешает увидеть обновленную информацию на сайте. При возникновении ошибок на интернет-ресурсах иногда помогает устранить проблему очистка кэша. Поэтому важно периодически, хотя бы раз в две недели, очищать его содержимое.
Для удаления кэшированных данных разработчики предусмотрели специальную настройку. Простые действия позволяют быстро освободить память устройства. Рассмотрим подробнее, как почистить кэш на мобильных телефонах и ПК.
На Android
Чтобы удалить документы и данные с телефона на базе ОС Андроид, нужно:
- Зайти в настройки приложения.
- Открыть меню «Данные и память».
- Открыть раздел «Использование памяти».
- Найти «Очистить кэш Telegram».
Пользователь может настроить период хранения данных на определенный срок. Это поможет сэкономить место на смартфоне. По истечению установленного срока файлы автоматически удалятся.
История браузера, учетные данные и другая информация не пострадают после очистки кэша. В некоторых приложениях автоматическая очистка файлов, не представляющих никакой ценности, не работает. Поэтому пользователю приходится вручную выполнять эту процедуру.
На iPhone
Удаление кэшированных данных на айфоне происходит по тому же принципу, как на смартфонах с ОС Андроид.
Чтобы очистить память гаджета от ненужной информации, нужно выполнить ряд простых действий:
- Открыть приложение Telegram.
- Найти пункт «Настройки», который отображается в виде шестеренки.
- Прокрутить меню вниз, найти пункт «Данные и память». Кликнуть по нему.
- В меню выбрать «Использование памяти», обычно он идет первым в списке.
- В открывшемся меню выбрать строку «Хранилище iPhone».
- Нажать под ней на надпись «Очистить кэш Telegram».
- В меню можно выбрать все или выборочно файлы, которые нужно удалить.
- Нажать на кнопку «Очистить».
- Система оповестит о том, что память освобождена.
На компьютере
Для удаления медиафайлов, документов на стационарном компьютере или ноутбуке нужно выполнить следующее:
- Открыть приложение Телеграм.
- Нажать на три горизонтальные полоски в верхнем углу экрана.
- Тапнуть по пункту «Настройки».
- Войти в раздел «Продвинутые настройки».
- Выбрать «Управление памятью устройства».
- Нажать на кнопку «Очистить все».
После выполнения этой процедуры все данные с кэша удалятся.
Настройка автоматической чистки
В мобильной и десктопной версиях приложения Телеграм может устанавливаться лимит накопления данных, как общий для отдельных файлов, так и для медиафайлов. Пользователь вручную выбирает период накопления содержимого папки. По истечении установленного срока все данные самоуничтожаются, хранилище очищается.
Для настройки автоматической очистки понадобится выполнить следующее:
- Зайти в раздел «Срок хранения медиа».
- Установить период хранения файлов.
Дополнительно сэкономить место в памяти гаджета поможет отключение автоматической загрузки медиафайлов в Telegram. Чтобы загрузить изображение или видео, достаточно один раз нажать на него.
Сберечь объем в хранилище также поможет чистка истории сообщений в мессенджере. Для этого пользователю потребуется зайти в чат с собеседником. Нажать на три точки в верхнем углу. Затем выбрать пункт «Очистить историю». Такие действия выполняют в мобильной и десктопной версиях Телеграма. Аналогично очистка проводится в групповых чатах пользователем, обладающим правами администратора.
Удаление кэшированных данных помогает освободить память мобильного телефона и компьютера. Это облегчает работу с приложением Telegram. Для максимального удобства пользования платформой можно использовать расширенные настройки: установить автоматическую очистку кэша. Тогда пользователю не нужно будет беспокоиться о том, что система перегружена. Благодаря выше описанной инструкции по очистке кэша вопросов не возникнет даже у начинающих пользователей мессенджера.
Кэш — Википедия
Материал из Википедии — свободной энциклопедии
Кэш[1][2][3][4] или кеш[5][6][7] (англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше осуществляется быстрее, чем выборка исходных данных из более медленной памяти или удаленного источника, однако её объём существенно ограничен по сравнению с хранилищем исходных данных.
История
Впервые слово «cache» в компьютерном контексте было использовано в 1967 году во время подготовки статьи для публикации в журнале «IBM Systems Journal». Статья касалась усовершенствования памяти в разрабатываемой модели 85 из серии IBM System/360. Редактор журнала Лайл Джонсон попросил придумать более описательный термин, нежели «высокоскоростной буфер», но из-за отсутствия идей сам предложил слово «cache». Статья была опубликована в начале 1968 года, авторы были премированы IBM, их работа получила распространение и впоследствии была улучшена, а слово «кэш» вскоре стало использоваться в компьютерной литературе как общепринятый термин[8].
Функционирование
Отображение кэша памяти ЦПУ в основной памяти.
Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами, веб-серверами, службами DNS и WINS.
Кэш состоит из набора записей. Каждая запись ассоциирована с элементом данных или блоком данных (небольшой части данных), которая является копией элемента данных в основной памяти. Каждая запись имеет идентификатор, часто называемый тегом, определяющий соответствие между элементами данных в кэше и их копиями в основной памяти.
Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного эл
Кэш процессора — CPU cache
Кэша процессора является кэш — аппаратных средств , используемый центральным процессором (ЦП) от компьютера , чтобы уменьшить среднюю стоимость (время или энергию) для доступа к данным из основной памяти . Кэш — это более быстрая память меньшего размера, расположенная ближе к ядру процессора , в которой хранятся копии данных из часто используемых областей основной памяти . Большинство процессоров имеют иерархию из нескольких уровней кэша (L1, L2, часто L3 и редко даже L4) с отдельными кэшами для инструкций и данных на уровне 1.
Существуют и другие типы кешей (которые не учитываются в «размере кеша» наиболее важных кешей, упомянутых выше), например, буфер быстрого преобразования (TLB), который является частью блока управления памятью (MMU), который есть в большинстве процессоров.
Обзор
При попытке чтения или записи в место в основной памяти процессор проверяет, есть ли данные из этого места уже в кэше. Если это так, процессор будет читать или записывать в кэш вместо гораздо более медленной основной памяти.
Большинство современных настольных и серверных процессоров имеют как минимум три независимых кэша: кэш инструкций для ускорения выборки исполняемых инструкций, кеш данных для ускорения выборки и хранения данных и буфер быстрого преобразования (TLB), используемый для ускорения виртуального преобразования в другое. преобразование физических адресов как для исполняемых инструкций, так и для данных. Один TLB может быть предоставлен для доступа как к инструкциям, так и к данным, или может быть предоставлен отдельный TLB инструкций (ITLB) и TLB данных (DTLB). Кэш данных обычно организован в виде иерархии большего количества уровней кэша (L1, L2 и т.д .; см. Также многоуровневые кеши ниже). Однако кэш TLB является частью блока управления памятью (MMU) и не связан напрямую с кешами ЦП.
История
Первые процессоры, использовавшие кэш, имели только один уровень кеша; в отличие от кеша более позднего уровня 1, он не был разделен на L1d (для данных) и L1i (для инструкций). Разделение кэша L1 началось в 1976 году с ЦП IBM 801 , стало массовым в 1993 году с Intel Pentium и в 1997 году на рынке встроенных ЦП с ARMv5TE. В 2015 году даже SoC стоимостью ниже доллара разделили кэш L1. У них также есть кэш L2, а для более крупных процессоров — кеш L3. Кэш L2 обычно не разделяется и действует как общий репозиторий для уже разделенного кеша L1. Каждое ядро многоядерного процессора имеет выделенный кэш L1 и обычно не используется совместно ядрами. Кэш L2 и кеши более высокого уровня могут совместно использоваться ядрами. Кэш L4 в настоящее время встречается редко и обычно находится в (форме) динамической памяти с произвольным доступом (DRAM), а не в статической памяти с произвольным доступом (SRAM), на отдельном кристалле или микросхеме (в исключительных случаях это eDRAM ). используется для всех уровней кэша, вплоть до L1). Исторически так было и с L1, в то время как более крупные чипы позволяли интегрировать его и, как правило, все уровни кеш-памяти, за возможным исключением последнего уровня. Каждый дополнительный уровень кеша имеет тенденцию быть больше и оптимизирован по-своему.
Кеши (как и для RAM исторически) обычно имеют размер: 2, 4, 8, 16 и т. Д. KiB ; когда размер до MiB (то есть для большего размера, отличного от L1), очень рано шаблон сломался, чтобы обеспечить большие кеши без принудительного использования парадигмы удвоения размера, например, с Intel Core 2 Duo с 3 MiB L2 кешем в апреле 2008 года. Однако гораздо позже для размеров L1, которые все еще учитываются только в небольшом количестве КиБ, однако IBM zEC12 с 2012 года является исключением, чтобы получить необычно большой для своего времени кэш данных L1 96 КиБ, и, например, IBM z13, имеющий Кэш инструкций L1 96 КиБ (и кэш данных L1 128 КиБ) и процессоры на базе Intel Ice Lake с 2018 года, имеющие кэш данных L1 48 КиБ и кэш инструкций L1 48 КБ. В 2020 году некоторые процессоры Intel Atom (до 24 ядер) имеют (кратные) 4,5 и 15 МБ кэш-памяти.
Записи кеша
Данные передаются между памятью и кешем блоками фиксированного размера, называемыми строками кеша или блоками кеша . Когда строка кэша копируется из памяти в кеш, создается запись кэша. Запись кэша будет включать скопированные данные, а также запрошенную ячейку памяти (называемую тегом).
Когда процессору необходимо прочитать или записать место в памяти, он сначала проверяет наличие соответствующей записи в кэше. Кэш проверяет содержимое запрошенной области памяти в любых строках кеша, которые могут содержать этот адрес. Если процессор обнаруживает, что область памяти находится в кэше, произошло попадание в кеш. Однако, если процессор не находит ячейку памяти в кэше, произошла ошибка кэша. В случае попадания в кэш процессор немедленно считывает или записывает данные в строку кэша. В случае промаха кеша кэш выделяет новую запись и копирует данные из основной памяти, затем запрос выполняется из содержимого кеша.
Политики
Политика замены
Чтобы освободить место для новой записи при промахе в кэше, из кэша может потребоваться удалить одну из существующих записей. Эвристика, которую он использует для выбора записи для удаления, называется политикой замены. Основная проблема любой политики замены состоит в том, что она должна предсказать, какая из существующих записей кэша с наименьшей вероятностью будет использоваться в будущем. Предсказать будущее сложно, поэтому не существует идеального метода выбора среди множества доступных политик замены. Одна из популярных политик замещения, наименее недавно использовавшаяся (LRU), заменяет наименее недавно использовавшуюся запись.
Пометка некоторых диапазонов памяти как некэшируемых может повысить производительность, избегая кеширования областей памяти, которые редко используются повторно. Это позволяет избежать накладных расходов на загрузку чего-либо в кеш без повторного использования. Записи кэша также могут быть отключены или заблокированы в зависимости от контекста.
Написать политику
Если данные записываются в кэш, в какой-то момент они также должны быть записаны в основную память; время этой записи известно как политика записи. В кэше со сквозной записью каждая запись в кэш вызывает запись в основную память. В качестве альтернативы, в кэше с обратной записью или обратным копированием записи не сразу зеркалируются в основную память, а вместо этого кеш отслеживает, какие места были записаны, отмечая их как грязные . Данные в этих местах записываются обратно в основную память только тогда, когда эти данные удаляются из кеша. По этой причине промах чтения в кэше с обратной записью иногда может потребовать двух обращений к памяти для обслуживания: один для первой записи грязного места в основную память, а другой — для чтения нового места из памяти. Кроме того, запись в область основной памяти, которая еще не отображена в кэше с обратной записью, может вытеснить уже загрязненную область, тем самым освобождая это пространство кэша для новой области памяти.
Есть и промежуточные политики. Кэш может быть со сквозной записью, но записи могут временно удерживаться в очереди данных хранилища, обычно так, чтобы несколько хранилищ могли обрабатываться вместе (что может уменьшить количество оборотов шины и улучшить использование шины).
Кэшированные данные из основной памяти могут быть изменены другими объектами (например, периферийными устройствами, использующими прямой доступ к памяти (DMA) или другим ядром в многоядерном процессоре ), и в этом случае копия в кэше может стать устаревшей или несвежий. В качестве альтернативы, когда ЦП в многопроцессорной системе обновляет данные в кэше, копии данных в кешах, связанных с другими ЦП, становятся устаревшими. Протоколы связи между диспетчерами кеша, которые поддерживают согласованность данных, известны как протоколы согласованности кеша .
Производительность кеша
Измерение производительности кэша стало важным в последнее время, когда разрыв в скорости между производительностью памяти и производительностью процессора увеличивается экспоненциально. Кэш был введен, чтобы уменьшить этот разрыв в скорости. Таким образом, становится важным знание того, насколько хорошо кэш может преодолеть разрыв в скорости процессора и памяти, особенно в высокопроизводительных системах. Частота попаданий в кэш и частота промахов в кэше играют важную роль в определении этой производительности. Для повышения производительности кеша одним из необходимых шагов среди других шагов становится снижение частоты промахов. Уменьшение времени доступа к кешу также повышает его производительность.
Глохнет процессор
Время, затрачиваемое на выборку одной строки кэша из памяти ( задержка чтения из-за промаха кэша), имеет значение, потому что у ЦП не будет дел, ожидающих строки кэша. Когда ЦП достигает этого состояния, это называется остановкой. Поскольку процессоры становятся быстрее по сравнению с основной памятью, задержки из-за промахов в кэше вытесняют больше потенциальных вычислений; современные процессоры могут выполнять сотни инструкций за время, необходимое для выборки одной строки кэша из основной памяти.
Для поддержания занятости ЦП в это время использовались различные методы, включая выполнение вне очереди, при котором ЦП пытается выполнить независимые инструкции после инструкции, которая ожидает данных промаха кэша. Другая технология, используемая многими процессорами, — это одновременная многопоточность (SMT), которая позволяет альтернативному потоку использовать ядро ЦП, в то время как первый поток ожидает, когда станут доступны необходимые ресурсы ЦП.
Ассоциативность
Иллюстрация различных способов кэширования ячеек памяти конкретными ячейками кеша
Политика размещения определяет, где в кэше будет помещена копия конкретной записи в основной памяти. Если политика размещения может свободно выбирать любую запись в кэше для хранения копии, кэш называется полностью ассоциативным . С другой стороны, если каждая запись в основной памяти может находиться только в одном месте кеша, кэш отображается напрямую . Многие кеши реализуют компромисс, при котором каждая запись в основной памяти может переходить в любое из N мест в кэше, и описываются как N-сторонний набор ассоциативных. Например, кэш данных уровня 1 в AMD Athlon является двухсторонним ассоциативным, что означает, что любое конкретное место в основной памяти может быть кэшировано в любом из двух мест кэша данных уровня 1.
Выбор правильного значения ассоциативности требует компромисса . Если есть десять мест, которым политика размещения могла бы сопоставить ячейку памяти, то для проверки, находится ли это место в кэше, необходимо выполнить поиск в десяти записях кэша. Проверка большего количества мест требует больше энергии и площади микросхемы и, возможно, больше времени. С другой стороны, кеши с большей ассоциативностью страдают меньшим количеством промахов (см. Конфликты промахов ниже), так что ЦП тратит меньше времени на чтение из медленной основной памяти. Общий принцип заключается в том, что удвоение ассоциативности, от прямого сопоставления к двустороннему или от двустороннего к четырехстороннему, имеет примерно такой же эффект на повышение частоты совпадений, как и удвоение размера кэша. Тем не менее, увеличение ассоциативности более четырех не так сильно улучшает процент попаданий, и обычно это делается по другим причинам (см. Виртуальное алиасинг ниже). Некоторые процессоры могут динамически снижать ассоциативность своих кэшей в состояниях с низким энергопотреблением, что действует как мера энергосбережения.
В порядке от худшего, но простого к лучшему, но сложного:
- Кэш с прямым отображением — хорошее время в лучшем случае, но непредсказуемое в худшем
- Двухсторонний ассоциативный кэш
- Двухсторонний асимметричный ассоциативный кеш
- Четырехсторонний ассоциативный кэш
- Восьмисторонний ассоциативный кэш, часто используемый в более поздних реализациях
- 12-позиционный ассоциативный кэш, аналогичный восьмипозиционному
- Полностью ассоциативный кеш — лучший показатель пропусков, но практичен только для небольшого количества записей.
Кэш с прямым отображением
В этой организации кэша каждое место в основной памяти может входить только в одну запись в кэше. Следовательно, кэш с прямым отображением также может называться «односторонним ассоциативным набором кешей». У него нет политики размещения как таковой, так как нет выбора, содержимое какой записи кэша удалить. Это означает, что если два местоположения соответствуют одной и той же записи, они могут постоянно нокаутировать друг друга. Кэш с прямым отображением, хотя и проще, для обеспечения сопоставимой производительности должен быть намного больше, чем ассоциативный, и это более непредсказуемо. Пусть x — номер блока в кэше, y — номер блока памяти, а n — количество блоков в кэше, тогда отображение выполняется с помощью уравнения x = y mod n .
Двухсторонний ассоциативный кэш
Если каждое место в основной памяти можно кэшировать в любом из двух мест в кэше, возникает логичный вопрос: какое из двух? Самая простая и наиболее часто используемая схема, показанная на правой диаграмме выше, заключается в использовании младших разрядов индекса ячейки памяти в качестве индекса для кэш-памяти и наличии двух записей для каждого индекса. Одним из преимуществ этой схемы является то, что теги, хранящиеся в кэше, не должны включать ту часть адреса основной памяти, которая подразумевается индексом кэш-памяти. Поскольку теги кэша имеют меньшее количество битов, они требуют меньше транзисторов, занимают меньше места на плате процессора или микросхеме микропроцессора, и их можно считывать и сравнивать быстрее. Кроме того, LRU особенно прост, поскольку для каждой пары нужно хранить только один бит.
Спекулятивное исполнение
Одно из преимуществ кеша с прямым отображением состоит в том, что он позволяет быстро и просто спекулировать . После вычисления адреса становится известен один индекс кэша, который может иметь копию этого места в памяти. Эта запись кэша может быть прочитана, и процессор может продолжить работу с этими данными до того, как закончит проверку того, что тег действительно соответствует запрошенному адресу.
Идея о том, чтобы процессор использовал кэшированные данные до завершения сопоставления тегов, также может быть применен к ассоциативным кэшам. Подмножество тега, называемое подсказкой , может использоваться для выбора только одной из возможных записей кэша, отображаемых на запрошенный адрес. Запись, выбранная подсказкой, затем может использоваться параллельно с проверкой полного тега. Техника подсказки лучше всего работает при использовании в контексте трансляции адресов, как описано ниже.
Двухсторонний асимметричный ассоциативный кеш
Были предложены другие схемы, такие как асимметричный кэш , где индекс для пути 0 является прямым, как указано выше, но индекс для пути 1 формируется с помощью хэш-функции . Хорошая хеш-функция обладает свойством, что адреса, которые конфликтуют с прямым сопоставлением, имеют тенденцию не конфликтовать при сопоставлении с хеш-функцией, и поэтому менее вероятно, что программа пострадает от неожиданно большого количества конфликтных пропусков из-за патологического доступа. шаблон. Обратной стороной является дополнительная задержка при вычислении хеш-функции. Кроме того, когда приходит время загрузить новую строку и удалить старую, может быть трудно определить, какая существующая строка использовалась наименее недавно, потому что новая строка конфликтует с данными в разных индексах в каждом случае; Отслеживание LRU для неискаженных кэшей обычно выполняется для каждого набора. Тем не менее, асимметрично-ассоциативные кэши имеют большие преимущества перед традиционными ассоциативно-множественными.
Псевдоассоциативный кеш
Настоящий ассоциативный кеш-память проверяет все возможные способы одновременно, используя что-то вроде памяти с адресацией по содержимому . Псевдоассоциативный кеш проверяет каждый возможный способ по очереди. Кэш хэш-повторного хеширования и ассоциативный кеш по столбцам являются примерами псевдоассоциативного кеша.
В обычном случае обнаружения попадания в первый тестируемый способ псевдоассоциативный кеш работает так же быстро, как кеш с прямым отображением, но у него гораздо более низкая частота пропусков конфликтов, чем кеш с прямым отображением, ближе к частоте промахов полностью ассоциативного кеша.
Структура записи в кеш
Записи строк кэша обычно имеют следующую структуру:
тег | блок данных | биты флагов |
Блок данных (строка кэша) содержит фактические данные, извлеченные из основной памяти. Тег содержит (часть) адрес фактических данных извлекается из основной памяти. Биты флага обсуждаются ниже .
«Размер» кеша — это объем данных основной памяти, который он может хранить. Этот размер можно рассчитать как количество байтов, хранящихся в каждом блоке данных, умноженное на количество блоков, хранящихся в кэше. ( Биты тега, флага и кода исправления ошибок не включены в размер, хотя они влияют на физическую область кэша.)
Эффективный адрес памяти, который идет вместе со строкой кэша (блоком памяти), разделяется ( MSB на LSB ) на тег, индекс и смещение блока.
тег | индекс | смещение блока |
Индекс описывает, в какой набор кэш-памяти были помещены данные. Длина индекса — это биты для s наборов кэша.
⌈журнал2(s)⌉{\ Displaystyle \ lceil \ log _ {2} (s) \ rceil}
Смещение блока определяет желаемые данные в сохраненном блоке данных в строке кэша. Обычно эффективный адрес выражается в байтах, поэтому длина смещения блока равна битам, где b — количество байтов на блок данных. Тег содержит наиболее значимые биты адреса, которые проверяются по всем строкам в текущем наборе (набор был получен по индексу), чтобы узнать, содержит ли этот набор запрошенный адрес. Если это так, происходит попадание в кеш. Длина тега в битах следующая:
⌈журнал2(б)⌉{\ Displaystyle \ lceil \ log _ {2} (b) \ rceil}
tag_length = address_length - index_length - block_offset_length
Некоторые авторы называют смещение блока просто «смещением» или «смещением».
пример
Исходный процессор Pentium 4 имел четырехсторонний ассоциативный кэш данных L1 размером 8 КиБ с 64-байтовыми блоками кэша. Следовательно, имеется 8 КиБ / 64 = 128 блоков кеша. Количество наборов равно количеству блоков кеша, разделенному на количество способов ассоциативности, что приводит к 128/4 = 32 наборам, и, следовательно, 2 5 = 32 различных индекса. Есть 2 6 = 64 возможных смещения. Поскольку адрес ЦП имеет ширину 32 бита, это подразумевает 32 — 5 — 6 = 21 бит для поля тега.
Исходный процессор Pentium 4 также имел восьмипозиционный ассоциативный интегрированный кэш L2 размером 256 КиБ со 128-байтовыми блоками кэша. Это подразумевает 32 — 8 — 7 = 17 бит для поля тега.
Биты флага
Кэш инструкций требует только один бит флага для каждой записи строки кэша: допустимый бит. Действительный бит указывает, загружен ли блок кэша действительными данными.
При включении оборудование устанавливает все действительные биты во всех кэшах как «недействительные». Некоторые системы также устанавливают действительный бит как «недействительный» в других случаях, например, когда оборудование для отслеживания шины с несколькими ведущими в кэше одного процессора слышит широковещательный адрес от другого процессора и понимает, что определенные блоки данных в локальном кэше являются теперь устарел и должен быть помечен как недействительный.
Кэш данных обычно требует двух битов флага на строку кэша — действительный бит и грязный бит . Наличие установленного грязного бита указывает на то, что соответствующая строка кэша бы
Что такое кэшированные данные в смартфоне и как их очистить
Память мобильных устройств, которые подключены к интернету, накапливает много информации. Чтобы смартфон работал корректно и без сбоев, лишние данные рекомендуется периодически удалять. Если знать, что такое кэш в телефоне, можно не бояться вместе с мусором стереть нужные сведения.
Что такое кэшированные данные
Слово Cache с английского языка – «тайник». Когда человек впервые посещает веб-сайт, открывает приложение или программу, телефон автоматически начинает запись появившейся страницы – кэширование. Загруженные данные остаются на устройстве в виде временных или постоянных файлов. При повторном просмотре сохраненная информация позволяет быстро воспроизвести исходную страницу.
Скрытая память android бывает 3 типов.
Dalvik-Cache
Временные файлы кодов установленных приложений хранятся на промежуточном буфере и для быстрого доступа могут запрашиваться виртуальной машиной Dalvik. На таком программном обеспечении осуществляется работа всех телефонов на базе Андроид.
Удалять такие сведения рекомендуется только при возникновении серьезных проблем с телефоном. Действия по очистке проводят, когда устройство включено в специальном режиме, где осуществляется сброс всех настроек.
Впоследствии система может заново восстановить утраченные файлы.
Системный кэш
На мобильном устройстве находятся предустановленные программы. Их данные называют системными. Они необходимы, чтобы программы правильно функционировали. При удалении временных файлов возможен сбой в их работе.
Проводить очищение нужных программ считается нецелесообразным.
Кэш в приложениях на телефоне
В программах, которые пользователь скачивает из интернета самостоятельно, кэшированные данные содержат все сведения о работе приложения и настройках. Они занимают определенное количество памяти.
Постоянные файлы создаются для быстрого входа в игры и программы с большим объемом.
Временный кэш сохраняется на устройстве при просмотре видеороликов, музыкальных и графических файлов в установлен
Как посмотреть кэш память 🚩 увеличение кэша второго уровня 🚩 Компьютеры и ПО 🚩 Другое
На главную -> MyLDP -> Тематический каталог -> Аппаратное обеспечение
Что каждый программист должен знать о памяти.
Часть 2: Кэш-память процессора
Оригинал: «Memory part 2: CPU caches»
Автор: Ulrich Drepper
Дата публикации: October 1, 2007
Перевод: Н.Ромоданов
Дата перевода: апрель 2012 г.
3.3 Подробности реализации кэш-памяти процессора
Разработчики кэш-памяти столкнулись с проблемой, состоящей в том, что потенциально в кэш-памяти может оказаться любая ячейка огромной основной памяти. Если рабочий набор данных, используемых в программе, достаточно большой, то это означает, что за каждое место в кэш-памяти будут соревноваться многие фрагменты основной памяти. Как ранее уже сообщалось, нередко соотношение между кэш-памятью и основной памятью составляет 1 к 1000.
3.3.1 Ассоциативность
Можно было бы реализовать кэш-память, в которой каждая кэш-строка может хранить копию любой ячейки памяти. Это называется полностью ассоциативной кэш-памятью (fully associative cache). Чтобы получить доступ к кэш-строке, ядро процессора должно было бы сравнить теги всех до единой кэш-строк с тегом запрашиваемого адреса. Тег должен будет хранить весь адрес, который не будет указываться смещение в кэш-строке (это означает, что значение S, показанное на рисунке в разделе 3.2, будет равно нулю).
Есть кэш-память, которая реализована подобным образом, но взглянуть на размеры кэш-памяти L2, используемой в настоящее время, то видно, что это непрактично. Учтите, что 4 Мб кэш-памяти с кэш-строками размером в 64Б должна иметь 65 536 записей. Чтобы получить адекватную производительность, логические схемы кэш-памяти должны быть в состоянии в течение нескольких циклов выбрать из всех этих записей ту, которая соответствует заданному тегу. Затраты на реализацию такой схемы будут огромными.
Рис.3.5: Схематическое изображение полностью ассоциативной кэш-памяти
Для каждой кэш-строки требуется, чтобы компаратор выполнил сравнение тега большого размера (заметьте, S равно нулю). Буква, стоящая рядом с каждым соединением, обозначает ширину соединения в битах. Если ничего не указано, то ширина соединения равна одному биту. Каждый компаратор должен сравнивать два значения, ширина каждого из которых равна Т бит. Затем, исходя из результата, должно выбираться и стать доступным содержимое соответствующей кэш-строки. Для этого потребуется объединить столько наборов линий данных О, сколько есть сегментов кэш-памяти (cache buckets). Число транзисторов, необходимых для реализации одного компаратора будет большим в частности из-за того, что компаратор должен работать очень быстро. Итеративный компаратор использовать нельзя. Единственный способ сэкономить на количестве компараторов, это снизить их число с помощью итеративного сравнения тегов. Это не подходит по той же самой причине, по которой не подходят итеративные компараторы: на это потребуется слишком много времени.
Полностью ассоциативная кэш-память практична для кэш-памяти малого размера (например, кэш-память TLB в некоторых процессорах Intel является полностью ассоциативной), но эта кэш-память должна быть небольшой — действительно небольшой. Речь идет максимум о нескольких десятках записей.
Для кэш-памяти L1i, L1d и кэш-памяти более высокого уровня необходим другой подход. Все, что можно сделать, это ограничить поиск. В самом крайнем случае каждый тег отображается точно в одну кэш-запись.
Как узнать кэш процессора?
Расчет прост: для кэш-памяти 4MB/64B с 65 536 записями мы можем напрямую обращаться к каждому элементу и использовать для этого с 6-го по 21-й биты адреса (16 битов). Младшие 6 битов являются индексом кэш-строки.
Рис.3.6: Схематическое изображение кэш-памяти с прямым отображением
Как видно из рисунка 3.6 реализация такой кэш-памяти с прямым отображением (direct-mapped cache) может быть быстрой и простой. Для нее требуется только один компаратор, один мультиплексор (на этой схеме приведены два, поскольку тег и данные разделены, но это не является строгим конструктивным требованием) и некоторая логическая схема для выбора контента, содержащего действительно допустимые кэш-строки. Компаратор сложный из-за требований, касающихся скорости, но теперь он только один; в результате можно потратить больше усилий, чтобы сделать его более быстрым. Реальная сложность такого подхода заключена в мультиплексорах. Количество транзисторов в простом мультиплексоре растет по закону O(log N), где N является количеством кэш-строк. Это приемлемо, но может получиться медленный мультиплексор, и в этом случае скорость можно увеличить, если потратиться на транзисторы в мультиплексорах и для увеличения скорости распараллелить часть работы. Общее количество транзисторов будет расти медленное в сравнении с ростом размера кэш-памяти, что делает это решение очень привлекательным. Но у такого подхода есть недостаток: он работает только в случае, если адреса, используемые в программе, равномерно распределены относительно битов, используемых для прямого отображения. Если это не так, и это обычно бывает, некоторые кэш-записи используются активно и, поэтому, неоднократно высвобождаются, в то время как другие практически вообще не используются, либо остаются пустыми.
Рис.3.7: Схематическое изображение кэш-памяти с множественной ассоциативностью
Эту проблему можно решить с помощью кэш-памяти с множественной ассоциативностью (set associative). Кэш-память с множественностью ассоциативностью сочетает в себе черты кэш-памяти с полной ассоциативностью и кэш-памяти с прямым отображением, что позволяет в значительной степени избежать недостатков этих решений. На рис.3.7 показана схема кэш-памяти с множественной ассоциативностью. Память под теги и под данные разделена на наборы, выбор которых осуществляется в соответствие с адресом. Это похоже на кэш-память с прямым отображением. Но вместо того, чтобы для каждого значения из набора использовать отдельный элемент, один и тот же набор используется для кэширования некоторого небольшого количества значений. Теги для всех элементов набора сравниваются параллельно, что похоже на функционирование полностью ассоциативной кэш-памяти.
Результатом является кэш-память, которая достаточно устойчива к промахам из-за неудачного или преднамеренного выбора адресов с одними и теми же номерами наборов в одно и то же время, а размер кэш-памяти не ограничен количеством компараторов, которые могут работать параллельно. Если кэш-память увеличивается (смотрите рисунок), то увеличивается только количество столбцов, а не количество строк. Число строк увеличивается только в том случае, если повышается ассоциативность кэш-памяти. Сегодня процессоры для кэш-памяти L2 используют уровни ассоциативности до 16 и выше. Для кэш-памяти L1 обычно используется уровень, равный 8.
Таблица 3.1: Влияние размера кэш-памяти, ассоциативности и размера кэш-строки
Размер кэш-памяти L2 | Ассоциативность | |||||||
---|---|---|---|---|---|---|---|---|
Прямое отображение | 2 | 4 | 8 | |||||
CL=32 | CL=64 | CL=32 | CL=64 | CL=32 | CL=64 | CL=32 | CL=64 | |
512k | 27 794 595 | 20 422 527 | 25 222 611 | 18 303 581 | 24 096 510 | 17 356 121 | 23 666 929 | 17 029 334 |
1M | 19 007 315 | 13 903 854 | 16 566 738 | 12 127 174 | 15 537 500 | 11 436 705 | 15 162 895 | 11 233 896 |
2M | 12 230 962 | 8 801 403 | 9 081 881 | 6 491 011 | 7 878 601 | 5 675 181 | 7 391 389 | 5 382 064 |
4M | 7 749 986 | 5 427 836 | 4 736 187 | 3 159 507 | 3 788 122 | 2 418 898 | 3 430 713 | 2 125 103 |
8M | 4 731 904 | 3 209 693 | 2 690 498 | 1 602 957 | 2 207 655 | 1 228 190 | 2 111 075 | 1 155 847 |
16M | 2 620 587 | 1 528 592 | 1 958 293 | 1 089 580 | 1 704 878 | 883 530 | 1 671 541 | 862 324 |
Если у нас кэш-память 4MB/64B и 8-канальная ассоциативность, то в кэш-памяти у нас будет 8192 наборов и для адресации кэш-наборов потребуется только 13 битов тега. Чтобы определить, какая из записей (если таковая имеется) содержит в кэш-наборе адресуемую кэш-строку, потребуется сравнить 8 тегов. Это можно сделать за очень короткое время. Как видно из практики, в этом смысл есть.
В таблице 3.1 показано количество промахов кэш-памяти L2 для некоторой программы (в данном случае — для компилятора gcc, который, по мнению разработчиков ядра Linux, является наиболее важным бенчмарком) при изменении размера кэш-памяти, размера кэш-строки, а также значения множественной ассоциативности. В разделе 7.2 мы познакомимся с инструментальным средством, предназначенным для моделирования кэш-памяти, которое необходимо для этого теста.
Просто, если это еще не очевидно, взаимосвязь всех этих значений в том, что размер кэш-памяти равен
размер кэш-строки х ассоциативность х количество множеств
Отображение адресов в кэш-память вычисляется как
O = log2 от размера кэш-строки
S = log2 от числа наборов
согласно рисунку в разделе 3.2.
Рис.3.8: Размер кэш-памяти и уровень ассоциативности (CL=32)
Рис. 3.8 делает данные таблицы более понятными. На рисунке приведены данные для кэш-строки фиксированного размера, равного 32 байта. Если посмотреть на цифры для заданного размера кэш-памяти, то видно, что ассоциативность действительно может существенно помочь сократить число промахов кэш-памяти. Для кэш-памяти размером 8 МБ при переходе от прямого отображения на кэш-память с 2-канальной ассоциативностью экономится почти 44% кэш-памяти. В случае, если используется кэш-память со множественной ассоциативностью, то процессор может хранить в кэш-памяти рабочий набор большего размера, чем в случае кэш-памяти с прямым отображением.
В литературе иногда можно прочитать, что введение ассоциативности имеет тот же самый эффект, как удвоение размера кэш-памяти. Это, как это видно для случая перехода от кэш-памяти размером 4 МБ к кэш-памяти размером 8 МБ, верно в некоторых крайних случаях. Но это, конечно, не верно при последующем увеличении ассоциативности. Как видно из данных, последующее увеличение ассоциативности дает существенно меньший выигрыш. Нам, однако, не следует абсолютно не учитывать этот факт. В программе нашего примера пик использования памяти равен 5,6 MB. Так что при размере кэш-памяти в 8 Мб, что те же самые кэш-наборы будут использоваться многократно (более, чем дважды).
С увеличением рабочего набора экономия может увеличиться, поскольку, как мы видим, при меньших размерах кэш-памяти преимущество от использования ассоциативности будет больше.
В целом, увеличение ассоциативность кэш-памяти выше 8, как кажется, дает слабый эффект при одном потоке рабочей нагрузки. С появлением многоядерных процессоров, которые используют общую кэш-память L2, ситуация меняется. Теперь у вас в основном есть две программы, которые обращаются к одной и той же кэш-памяти, в результате чего на практике эффект от использования ассоциативности должен увеличиться вдвое (или в четыре раза для четырехядерных процессоров). Таким образом, можно ожидать, что с увеличением числа ядер, ассоциативность общей кэш-памяти должна расти. Как это станет делать невозможным (16-канальную ассоциативность реализовывать уже трудно) разработчики процессоров начнут использовать общую кэш-память уровня L3 и далее, в то время как кэш-память уровня L2 будет, потенциально, совместно использоваться некоторым подмножеством ядер.
Другой эффект, который мы можем увидеть на рис.3.8, это то, как увеличение размера кэш-памяти способствует увеличению производительности. Эти данные нельзя интерпретировать без знания размера рабочего набора. Очевидно, что кэш-память такого размера, как основная память, должен привести к лучшим результатам, нежели кэш-память меньшего размера, так что в целом нет никаких ограничений на увеличение размера кэш-памяти и получения ощутимых преимуществ.
Как уже упоминалось выше, размер рабочего набора в его пиковом значении равен 5,6 Мб. Это значение не позволяет нам рассчитать размер памяти, который бы принес максимальную выгоду, но позволяет оценить этот размер. Проблема в том, что вся память используется не непрерывно и, следовательно, у нас есть конфликты даже при наличии 16M кэш-памяти и рабочего набора, размер которого равен 5,6M (вспомните преимущество 2-канальной ассоциативной кэш-памяти размером в 16 МБ над версией с прямым отображением). Но можно с уверенностью сказать, что при такой нагрузке преимущество кэш-памяти размером в 32 МБ будет несущественным. Однако кто сказал, что рабочий набор должен оставаться неизменным? С течением времени рабочие нагрузки растут и то же самое должно касаться размера кэш-памяти. Когда покупаются машины и принимается решение, за какой размер кэш-памяти требуется заплатить, стоит измерить размер рабочего набора. Почему это важно, можно увидеть на рис. 3.10.
Рис.3.9: Размещение памяти, используемой при тестировании
Запускается два типа тестов. В первом тесте элементы обрабатываются последовательно. В тестовой программе используется указатель , но элементы массива связаны друг с другом, так что они обходятся в том порядке, в котором они находятся в памяти. Этот вариант показан в нижней части рис.3.9. Есть одна обратная ссылка, идущая от последнего элемента. Во втором тесте (верхняя часть рисунка) элементы массива обходятся в произвольном порядке. В обоих случаях элементы массива образуют циклический односвязный список.
Если вам понравилась статья, поделитесь ею с друзьями:
Кэш-память | Что такое, характеристики, виды, как работает, для чего, преимущества
Информатика
В настоящее время большая часть оборудования, которое мы используем, имеет цифровой формат, аналогичный PC , будь то мобильных телефонов , игровых консолей или даже интеллектуальных телевизоров нового поколения. Эти компьютеры имеют процессоров, работающих на ядрах обработки, карты памяти и другие компоненты, которые помогают компьютерам выполнять работу в отношении цифровых процессов .
Что такое кеш-память?
Кэш-память — это не более чем небольшая часть системы хранения, которая является решением проблем производительности в системе памяти . Обычно это встроено в процессоры и RAM , что является очень маленьким элементом с точки зрения физического пространства. Его функция совсем не сложна, но она действительно важна, потому что она заботится о хранении наиболее часто используемых данных пользователем и хранит их рядом с процессором, чтобы у него был легкий и быстрый доступ к ним.
Определение
Кэш-память в области информатики — это электронный компонент, который присутствует как в аппаратном обеспечении , так и в программном обеспечении , он отвечает за хранение повторяющихся данных, чтобы сделать их легко доступными и быстрее выполнять запросы, генерируемые системой.
Кэш-память — это специальный буфер памяти, который есть у всех компьютеров, он выполняет те же функции, что и основная память.Одним из наиболее известных кешей являются интернет-браузеров , которые поддерживают временные загрузки, сделанные из Интернета, чтобы иметь доступную информацию для внутренней системы.
Характеристики
- Позволяет быстро и в организационном порядке иметь определенные данные, показания или файлы, которые обычно используются, или данные, которые были недавно добавлены в виде загрузок из Интернета.
- Он представляет систему заказа в соответствии с важностью файла в зависимости от требований каждой операционной системы .
- Это позволяет процессору улучшить свою производительность и результаты задач, используя свою информацию, как если бы это был инструмент непрерывного использования.
- Освободите внутренние процессы случайных запоминающих устройств , более известных как RAM .
- Несмотря на то, что это важная часть операционной системы, не занимает много места в аппаратном обеспечении или программном обеспечении.
Для чего нужна кеш-память?
В системе кэш-памяти есть две основные функции:
- Первый — это упорядочить по релевантности, временных файлов , которые имеют отношение к системе при выполнении задач, требуются для компьютера .
- Вторая задача — освободить часть информации , хранящейся в основной памяти, чтобы не было сбоев при обмене информацией из-за перенасыщения контента.
История
Кэш-память возникла, когда первые компьютеры , что касается памяти, больше не могли покрывать потребности процессоров , которые работали на более высокой скорости, чем память.
Итак, системные инженеры решили включить небольшую вспомогательную память, которая будет служить для поддержки микропроцессора , тем самым сокращая время ожидания восстановления данных.
Термин родился в Англии , где ему было дано название « Кэш », что переводится как скрытое место для хранения информации или контрабанды.
Как работает кэш-память
Первое, что делает кэш-память — упорядочивает информацию на разных уровнях , от самого маленького до самого большого, в зависимости от того, как далеко они находятся от процессора . Он разбит на 3 уровня, чтобы облегчить работу обработчиков при сборе информации.
Когда процессору нужна информация, он сначала обращается к кэшу, где ищет каждый уровень, пока не найдет требуемый. В случае, если это не так, процессор ищет его во внутренней памяти , и кэш сохраняет данные из поиска, чтобы оценить, необходимо ли включать их в кэш.
На всех уровнях кэш-памяти имеется центров управления , где подготавливается вся управляемая информация, и чем выше уровень ( от 3-го до 1 с t), тем больше информационной памяти .
Типы кеш-памяти
Наиболее часто используются 3 типа кэш-памяти:
- Дисковая память : которая является частью RAM памяти , этот обычно хранит данные, которые были недавно прочитаны, чтобы ускорить загрузку в них.
- Cache Tracks : это прочная составная память типа RAM, в основном она используется в суперкомпьютерах из-за высокой стоимости ее частей.
- Веб-кэш : он отвечает за сохранение веб-документов , чтобы сократить трудоемкие процессы , такие как загрузка , переполненность серверов и затраты на широкополосное соединение.
Скорость
Скорость внутри кэш-памяти измеряется в « нс », что переводится в наносекунды, кэш память обрабатывает время между 15 и 35 нс ответа на процессор, но это увеличивается или уменьшается в зависимости от числа гигабайт , а также карта памяти RAM отмечает, где кэш в основном находится в компьютерах.
Преимущества
- Растворяет все данные хранилища процессов в оперативной памяти.
- Увеличивает скорость отклика процессора Скорость при выполнении и ответе на процессы.
- В области Интернета это позволяет получить доступ к недавно просмотренным или загруженным файлам без потребления данных или дополнительной нагрузки на аренду широкополосного доступа.
Недостатки
Когда это неправильно оптимизировано , кэш-память вызывает проблемы процессора , препятствуя выполнению задач.
В некоторых случаях кэш-память дает сбой при удалении временных файлов, перегружая себя информацией и замедляя весь обмен информацией обрабатывает между кешем и основной памятью, полностью влияя на компьютер.
Оптимизация кэш-памяти
Кэш-память должна быть оптимизирована, чтобы уменьшить количество отказов в ней, известное как «частота промахов », также уменьшить штраф за отказ и, наконец, уменьшить « время попадания» , если время совпадения является правильным.
Наиболее частые отказы из-за проблем с картой:
- Принудительные отказы, когда происходит доступ к информационному блоку , которого нет в кэше.
- Из-за небольшой емкости, когда в памяти не хватает места для покрытия необходимых блоков при выполнении программы.
- Из-за конфликта между блоками, которые неорганизованы внутри памяти .
Наиболее часто используемые методы для уменьшения количества отказов кэш-памяти:
- Увеличение размеров блока в , чтобы избежать принудительных отказов , однако в долгосрочной перспективе это может вызвать проблемы в конфликтующих отказах.
- Увеличение ассоциативного метода — еще один широко используемый метод, который приводит к увеличению времени отклика в памяти.
- Добавьте кэш жертвы, чтобы сохранить блоки , которые были отброшены из-за сбоев емкости или конфликта.
- Улучшите компилятор информации , чтобы он улучшил систему упорядочения данных, чтобы не было конфликтов между различными блоками.
Автор Габриэла Брисеньо В.
Кэширование
и очищаемая память
Структура Какао также предоставляет класс NSPurgeableData
, чтобы гарантировать, что ваши приложения не используют слишком много памяти. Класс NSPurgeableData
принимает протокол NSDiscardableContent
, который может реализовать любой класс, чтобы позволить сбрасывать память, когда клиенты экземпляров класса завершают доступ к этим объектам. Вы должны реализовать NSDiscardableContent
при создании объектов, которые имеют одноразовые подкомпоненты.Кроме того, класс NSPurgeableData
не обязательно использовать вместе с NSCache
; вы можете использовать его независимо, чтобы получить режим очистки.
Преимущества использования очищаемой памяти
Используя очищаемую память, вы позволяете системе быстро восстанавливать память, если это необходимо, тем самым повышая производительность. Память, помеченная как очищаемая, не выгружается на диск, когда она освобождается системой виртуальной памяти, поскольку разбиение на страницы — это трудоемкий процесс.Вместо этого данные отбрасываются, и, если потребуется, позже их придется пересчитать.
Предупреждение при использовании очищаемой памяти заключается в том, что блок памяти должен быть заблокирован перед доступом. Этот механизм блокировки необходим для того, чтобы никакие политики автоматического удаления не пытались уничтожить данные, пока вы обращаетесь к ним. Точно так же механизм блокировки гарантирует, что система виртуальной памяти еще не сбросила данные. Класс NSPurgeableData
реализует очень простой механизм блокировки, чтобы гарантировать безопасность данных во время чтения.
Как реализовать очищаемую память
Класс NSPurgeableData
очень прост в использовании, потому что класс просто реализует протокол NSDiscardableContent
. Понятие переменной «счетчик» является центральным в жизненном цикле объектов NSDiscardableContent
. Когда память, используемая этим объектом, читается или все еще необходима, его переменная счетчика будет больше или равна 1
. Когда он не используется и может быть отброшен, переменная счетчика равна 0
.
Когда счетчик равен 0
, блок памяти может быть сброшен, если памяти мало. Чтобы отбросить содержимое, вызовите discardContentIfPossible
для объекта, который освободит связанную память, если переменная счетчика равна 0
.
По умолчанию, когда инициализируется объект NSPurgeableData
, он создается с переменной счетчика, равной 1
, и к нему можно безопасно получить доступ. Чтобы получить доступ к очищаемой памяти, просто вызовите метод beginContentAccess
.Этот метод сначала проверяет, не были ли отброшены данные объекта. Если данные все еще там, он увеличит значение счетчика, чтобы защитить память во время чтения, и вернет YES
. Если данные были отброшены, этот метод вернет NO
. Когда вы закончите доступ к данным, вызовите endContentAccess
, который уменьшает счетчик и позволяет сбросить память, если система желает это сделать. Вы должны отслеживать состояние переменной счетчика и обращаться к памяти, только если метод beginContentAccess
возвращает YES
.
Системные или клиентские объекты вызывают метод discardContentIfPossible
, чтобы отбросить очищаемые данные, если доступная память системы заканчивается. Этот метод отбрасывает данные только в том случае, если его переменная счетчика равна 0
, в противном случае ничего не делает. Наконец, метод isContentDiscarded
возвращает YES
, если память была сброшена.
Ниже приведен пример жизненного цикла объекта NSPurgeableData
:
Разница между виртуальной и кэш-памятью в ОС (со сравнительной таблицей)
Память — это аппаратное устройство, которое используется для временного или постоянного хранения информации .В этой статье я обсудил различия между виртуальной и кэш-памятью. Кэш-память — это высокоскоростная память, которая используется для сокращения времени доступа к данным. С другой стороны, Виртуальная память — это не совсем физическая память, это метод, который увеличивает емкость основной памяти сверх ее предела.
Основное различие между виртуальной памятью и кэш-памятью состоит в том, что виртуальная память позволяет пользователю выполнять программы, размер которых превышает размер основной памяти, тогда как кэш-память обеспечивает более быстрый доступ к данным, которые использовались недавно.Мы обсудим еще несколько отличий с помощью сравнительной таблицы, показанной ниже.
Содержимое: виртуальная кэш-память
- Сравнительная таблица
- Определение
- Ключевые отличия
- Заключение
Сравнительная таблица
Основа для сравнения | Виртуальная память | Кэшированная память |
---|---|---|
Basic | Виртуальная память увеличивает емкость основной памяти для пользователя. | Кэш-память увеличивает скорость доступа к данным ЦП. |
Природа | Виртуальная память — это техника. | Кэш-память — это единица хранения. |
Функция | Виртуальная память позволяет выполнять программу, размер которой превышает размер основной памяти. | Кэш-память хранит копии исходных данных, которые были недавно использованы. |
Управление памятью | Виртуальной памятью управляет операционная система. | Кэш-память полностью управляется оборудованием. |
Размер | Виртуальная память намного больше кэшированной. | Кэш-память имеет ограниченный размер. |
Отображение | Виртуальная память требует отображения структур для сопоставления виртуального адреса с физическим адресом. | Никаких структур отображения в кэш-памяти как таковых не требуется. |
Определение виртуальной памяти
Виртуальная память — это не совсем физическая память компьютера, это метод , который позволяет выполнять большую программу , которая может , а не , быть полностью помещенной в основную память .Это позволяет программисту выполнять программы, размер которых превышает размер основной памяти.
А теперь давайте разберемся, как работает виртуальная память? Программа имеет адрес виртуальной памяти, который разделен на страниц . Основная память также разделена на страниц . Теперь, как мы видим, виртуальный адрес программы больше доступной основной памяти. Таким образом, карта памяти используется для сопоставления виртуального адреса с основной памятью. Страница 0, 1, 2 отображается в основной памяти, и основная память заполняется.Теперь, когда страница 3 виртуальной памяти запрашивает место в основной памяти, самая старая размещенная страница, то есть страница 0, переносится на жесткий диск и освобождает место для страницы 3 в основной памяти, и процесс продолжается. В случае, если снова нужна страница 0, тогда снова самая старая размещенная страница в это время переносится на жесткий диск, образуя место для страницы 0. Если двум программам нужны одни и те же данные, помещенные в основную память, блок отображения памяти позволяет как программы для совместного использования одного и того же адресного пространства в основной памяти, где хранятся общие данные .Это упрощает обмена файлов. Преимущества виртуальной памяти:
- Программы больше не ограничены лимитом основной памяти.
- Виртуальная память увеличивает степень мультипрограммирования.
- Увеличивает загрузку ЦП.
- Меньшее количество модулей ввода-вывода потребуется для загрузки или замены программ в памяти.
Но есть недостаток виртуальной памяти, размещение большего количества страниц программы на жестком диске замедлит производительности , поскольку доступ к данным с жесткого диска занимает больше времени по сравнению с доступом к данным из основной памяти.
Определение кэш-памяти
В отличие от виртуальной памяти, Cache — это устройство хранения , реализованное на самом процессоре . Он содержит копии исходных данных, к которым недавно был осуществлен доступ. Исходные данные могут быть помещены в основную память или во вторичную память. Кэш-память увеличивает скорость доступа к данным , но как? Давайте разбираться. Можно сказать, что скорость доступа ЦП составляет , ограничена до скорости доступа основной памяти .Всякий раз, когда программа должна быть выполнена процессором, он извлекает ее из основной памяти. Если копия программы уже присутствует в кэше , реализованном на процессоре. Процесс сможет быстрее получить доступ к этим данным, что приведет к более быстрому выполнению.
Ключевые различия между виртуальной и кэш-памятью
- Виртуальная память виртуально увеличивает емкость основной памяти для пользователя. Однако кэш-память делает доступ к данным на быстрее для ЦП.
- — это память , блок хранения , тогда как виртуальная память — это метод .
- Виртуальная память позволяет выполнять программы, которые на больше , чем основная память. С другой стороны, в кэш-памяти хранятся копий исходных данных, которые использовались недавно.
- Управление виртуальной памятью осуществляется операционной системой . С другой стороны, управление кэш-памятью осуществляется аппаратным обеспечением .
- Виртуальная память на больше, чем размер кэшированной памяти на .
- Метод виртуальной памяти требует, чтобы структуры отображения отображали виртуальный адрес в физический адрес, тогда как кэш-память не требует каких-либо структур отображения .
Кэш
Заключение
Виртуальная память — это метод виртуального увеличения объема основной памяти для пользователей. Кэш-память — это блок хранения, в котором хранятся данные, к которым недавно осуществлялся доступ, что позволяет ЦП быстрее обращаться к ним.
фреймворк кеширования Django | Документация Django
Фундаментальный компромисс в динамических веб-сайтах заключается в том, что они динамичны. Каждый
когда пользователь запрашивает страницу, веб-сервер производит всевозможные вычисления —
от запросов к базе данных до рендеринга шаблона и бизнес-логики — для создания
страницу, которую видит посетитель вашего сайта. Это намного дороже, от
перспектива обработки накладных расходов, чем ваш стандарт
устройство сервера чтения файла вне файловой системы.
Для большинства веб-приложений эти накладные расходы не имеют большого значения.Большинство веб-сайтов
приложения — это не washtonpost.com
или slashdot.org
; они маленькие-
на сайты среднего размера с средней посещаемостью. Но для среднего и высокого трафика
сайтов, важно сократить как можно больше накладных расходов.
Вот тут и пригодится кеширование.
Кэшировать что-либо — значит сохранить результат дорогостоящего вычисления, чтобы
в следующий раз вам не придется выполнять расчет. Вот какой-то псевдокод
объясняя, как это будет работать для динамически генерируемой веб-страницы:
, учитывая URL, попробуйте найти эту страницу в кеше если страница находится в кеше: вернуть кешированную страницу еще: создать страницу сохранить сгенерированную страницу в кеше (в следующий раз) вернуть сгенерированную страницу
Django поставляется с надежной системой кеширования, которая позволяет сохранять динамические страницы, чтобы
их не нужно рассчитывать для каждого запроса.Для удобства Django
предлагает разные уровни детализации кеша: вы можете кэшировать вывод
определенные виды, вы можете кэшировать только те части, которые сложно произвести,
или вы можете кэшировать весь свой сайт.
Django также хорошо работает с «нисходящими» кэшами, такими как Squid и кешами на основе браузера. Это типы
кеши, которые вы не контролируете напрямую, но которым вы можете давать подсказки (через
HTTP-заголовки) о том, какие части вашего сайта следует кэшировать и как.
Настройка кеша¶
Система кэширования требует небольшой настройки.А именно, вы должны это сказать
где должны находиться ваши кэшированные данные — будь то в базе данных или в файловой системе
или прямо в памяти. Это важное решение, которое влияет на ваш кеш
производительность; да, некоторые типы кешей быстрее других.
Ваши предпочтения кеша находятся в настройке CACHES
в вашем
файл настроек. Вот объяснение всех доступных значений для
КЭШОВ
.
Memcached¶
Самый быстрый и эффективный тип кеша, изначально поддерживаемый Django,
Memcached — полностью основанный на памяти кэш-сервер, первоначально разработанный
справляться с большими нагрузками на LiveJournal.com и s
Как осуществляется доступ к памяти
Программирование современных компьютеров редко требует понимания лежащего в их основе аппаратного и программного обеспечения; следовательно, большинство программистов не знают, как работает подсистема памяти.
Однако такой недостаток знаний может в конечном итоге привести к снижению производительности приложений в 10 раз или даже хуже, особенно с появлением новых аппаратных технологий.
В этой статье объясняется, почему оптимальное использование подсистемы памяти может иметь огромное преимущество в производительности.
Оборудование
Трудно понять, где начинается и где заканчивается современный компьютер. Граница размыта из-за таких проблем, как проводные и беспроводные сети, передача данных по таким сетям с помощью инструкций загрузки и сохранения, а также устройства ввода-вывода, которые сами содержат сложное программное обеспечение и оборудование для их запуска. Следующее — полезное упрощение, а не полная правда.
Думайте о компьютере как о материнской плате с:
- Несколько установленных процессоров
- Шины, соединяющие эти процессоры с:
- Устройства ввода / вывода (данные передаются огромными блоками)
- Устройства памяти (данные передаются гораздо меньшими блоками)
Каждый процессор содержит от одного до сотни ядер.Каждое ядро содержит аппаратное обеспечение:
- Получить инструкции.
- Расшифруйте эти инструкции.
- Запланируйте инструкции для выполнения.
- Выполните инструкции.
- Получить данные, которые необходимы инструкции.
- Сохраните данные, производимые инструкциями.
В оставшейся части этой статьи описывается, как инструкция загрузки, выполняемая в ядре, перемещает данные из модуля памяти — в данном случае из двухрядного модуля памяти (DIMM) — в это ядро.
Виртуальные адреса, физические адреса и другие адреса
Иногда вы не хотите знать, как делается вещь — такие вещи, как сосиски, законы и (как выясняется) доступ к памяти — потому что знание навсегда меняет ваше восприятие этой вещи. Но если вы один из тех, кому нужно знать, читайте дальше…
Инструкции по созданию виртуальных адресов
Когда вы отображаете файл в память, вы указываете виртуальные адреса для использования. (Если вы когда-либо исследовали переменную-указатель C или C ++ с помощью отладчика, вы проверяли 64-битные виртуальные адреса.) Арифметика указателя выполняется с использованием виртуальных адресов.
Оборудование преобразует виртуальные адреса в физические адреса
Виртуальный адрес состоит из двух частей:
- Номер страницы — действует как указатель в таблице страниц
- Смещение — разница местоположения между желаемым байтовым адресом и началом страницы
Аппаратное обеспечение, управляемое ОС, преобразует номер страницы в физический адрес и добавляет обратно смещение, используя таблицы страниц для каждого процесса в ОС и ускоряется за счет кэшированных записей в буферах быстрого преобразования (TLB).
Например, процессор Intel® Core ™ i7-6700 имеет два уровня TLB:
- Первый уровень
- TLB для данных могут отображать наборы смежных страниц размером 1 ГБ (4-сторонний набор ассоциативных, 4 записи) или страницы размером 4 КБ (4-сторонний набор ассоциативных, 64 записи).
- TLB для инструкций могут отображать страницы размером 4 КБ (8-позиционный ассоциативный набор, 64 записи)
- Второй уровень имеет TLB для данных и инструкций и может отображать страницы размером 4 КБ или 2 МБ (6-сторонняя ассоциативная, 1536 записей) и страницы 1 ГБ (4-сторонняя ассоциативная, 16 записей)
Приложения, которые быстро обрабатывают больше страниц, чем могут сопоставить TLB, могут перестать выполнять преобразование виртуальных адресов в физические.
Промах TLB стоит дорого. Вы можете уменьшить процент промахов TLB на:
- Изменение размера страницы во время загрузки
- Использование больших и огромных страниц
- Тщательное планирование размещения ваших данных на страницах
После определения физического адреса в кэш L1 отправляется запрос на чтение или запись. Кэш L1 будет либо выполнять доступ, либо распространять его глубже в подсистему памяти.
Ресурсов:
Ядра выполняют другие функции, пока не будет обеспечен доступ
Современные ядра используют как выполнение вне очереди, так и гиперпоточность, чтобы найти и сделать что-то полезное, в то время как другие инструкции ожидают получения данных.
Если ничего полезного сделать нельзя, то ядро глохнет. К сожалению, ОС почти не подозревает об остановке: кажется, что приложение работает, и трудно сказать, работает ли оно медленнее, чем должно быть. Вам нужны инструменты для проверки счетчиков производительности оборудования, чтобы увидеть подробности остановки.
Каскад физических адресов через кеши
Доступы, распространяющиеся через подсистему памяти, представляют собой комбинацию определенного запроса и необходимых физических адресов и, возможно, данных.
Данные перемещаются по большей части подсистемы памяти в 64-байтовых количествах, называемых строками кэша . Запись кэша , которая представляет собой некоторые транзисторы, которые могут хранить физический адрес и строку кэша, заполняется при копировании в нее строки кэша. Страницы равномерно разделены на строки кэша — первые 64 байта страницы размером 4096 байт представляют собой строку кэша, причем 64 байта хранятся вместе в записи кэша; следующие 64 байта — это следующая строка кэша и т. д.
Каждая строка кэша может:
- Не кэшируется
- Занять запись в одном кэше
- Дублировать в нескольких кешах
Ядра, устройства ввода-вывода и другие устройства отправляют запросы к кэшам для чтения или записи записи в кэш для физического адреса.Младшие шесть бит физического адреса не отправляются — они используются ядром для выбора байтов в строке кэша. Ядро отправляет отдельные запросы для каждой строки кэша, которая ему нужна.
- Считывает — Если кэш имеет запрошенный физический адрес в записи кэша, кэш возвращает данные. В противном случае кеш запрашивает данные из более глубоких подсистем памяти и удаляет некоторую запись кеша, чтобы освободить место. Если исключенная запись кэша была изменена, она должна быть записана в более глубокую подсистему памяти как часть этого вытеснения.Это означает, что поток чтения может замедлиться, поскольку более ранний набор операций записи должен быть помещен глубже в подсистему памяти. Небольшая очередь записанных данных буферизует обмен данными от отправителя к получателю.
- Записывает — Если в кэше нет строки кэша в записи кэша, кэш считывает ее из более глубокой подсистемы памяти. Он вытесняет какой-то другой физический адрес из своей записи кэша, чтобы освободить место для этой строки кэша. Чтение необходимо, чтобы получить все 64 байта, потому что запись, вероятно, изменяет только некоторые из них.При первой записи в кэш записи этого физического адреса во всех других кэшах становятся недействительными. Это действие делает первую запись в кэш более дорогой, чем последующие записи.
Примечание. Отображение памяти может привести к отображению двух или более виртуальных адресов на один и тот же физический адрес. Это часто случается с разделяемыми библиотеками и страницами с нулевым спросом.
Кеши могут быть общими
Кэш L1 — обычно 32 КБ данных и 32 КБ инструкций — является частным для соседнего ядра, поэтому он может предоставлять данные так быстро.Все гиперпотоки в ядре совместно используют кеш L1.
Следующий кэш-выход, кэш L2, иногда является частным, а иногда совместно используется двумя ядрами.
Если они существуют, кеши L3 и L4 используются всеми ядрами и, возможно, более чем одним процессором.
Если для кэширования модулей DIMM используется многоканальная DRAM (MCDRAM), этот кеш также является общим.
Совместное использование кэша не обязательно является проблемой, когда ядра обращаются к разным данным; однако, если ядро пытается хранить больше, чем его доля данных в общих кэшах, оно может вытолкнуть данные другого ядра, так что ни то, ни другое не выигрывает.В некоторых ситуациях ядро с более быстрым доступом может доминировать и использовать весь кеш для себя, вызывая дисбаланс нагрузки.
Шины
подключают кэш L2 к контроллерам кэша и памяти L3
Красные шины кольцевой дороги , показанные на схеме ниже, соединяют кэши L2 с частями кэша L3, а также со связями Intel® QuickPath Interconnect (Intel® QPI), связями экспресс-соединения периферийных компонентов (PCIe), и домашние агенты для контроллеров памяти.Сами две кольцевые дороги соединены двумя короткими автобусами, напоминающими эскалатор.
Движение в автобусах идет ровно настолько, насколько это необходимо, и на разных участках автобуса одновременно может быть разное движение. Очевидно, что чем дальше должен идти трафик, тем выше задержка. Пропускная способность должна совместно использоваться, когда трафик использует одни и те же участки шины, но обычно это не является ограничивающим фактором.
Доступ к памяти, который начинается в ядре и пропускает кеши L1 и L2, передается по шинам к домашнему агенту для целевого контроллера памяти для этого физического адреса.Если целевой контроллер памяти находится на другом сокете в многопроцессорной системе, трафик проходит по каналу Intel QPI на кольцевую шину на целевом процессоре, что увеличивает задержки.
Процессор Intel® Xeon Phi ™ имеет другую компоновку. Это поколение процессоров под кодовым названием Knights Landing использует сетку, а не два соединенных между собой кольца, и вообще не имеет кеш-памяти третьего уровня; в остальном трафик следует тем же основным шаблонам. У этих процессоров есть внутренние агенты и контроллеры памяти для двух различных типов динамической памяти с произвольным доступом (DRAM): DIMM с удвоенной скоростью передачи данных (DDR) и MCDRAM.
Домашние агенты распознают свои физические адреса
Рядом с шиной расположено несколько контроллеров памяти, каждый из которых управляет несколькими каналами. Каждый контроллер памяти подключается к шине домашним агентом. Домашний агент для контроллера памяти распознает физические адреса своих каналов.
Чередование — это метод распределения соседних виртуальных адресов внутри страницы по нескольким устройствам памяти, поэтому параллелизм на аппаратном уровне увеличивает доступную пропускную способность устройств — при условии, что какой-либо другой доступ еще не использует пропускную способность.Виртуальные адреса на странице сопоставляются с соседними физическими адресами, поэтому без чередования последовательные смежные обращения будут отправляться на один и тот же контроллер памяти и заполнять его. Физические адреса могут чередоваться между сокетами или только внутри сокета — это выбирается микропрограммой.
До появления модулей DIMM 3D XPoint ™ чередование выполнялось для одной или двух строк кэша (64 байта или 128 байтов), но характеристики энергонезависимой памяти DIMM заставляли менять каждые четыре строки кэша (256 байтов).Итак, теперь четыре соседние строки кэша переходят в один и тот же канал, а затем следующий набор из четырех строк кеша переходит к следующему каналу.
Микроархитектура Intel® с кодовым названием Skylake поддерживает 1, 2, 3, 4 и 6-стороннее чередование. Если заполнены пять каналов, домашние агенты, вероятно, используют двухстороннее и трехстороннее чередование. Поддержка 3-стороннего и 6-стороннего чередования подразумевает, что оборудование может выполнять вычисления mod 3 по адресам — нетривиальный объем работы.
Канал памяти обращается к устройству памяти
Домашний агент преобразует физический адрес в адрес канала и передает его контроллеру памяти.У каждого контроллера памяти есть таблица, чтобы найти, что делать с каждым диапазоном адресов каналов, которые он передает.
Например: В процессорах Intel Xeon Phi с кодовым названием Knights Landing эта таблица показывает, как контроллер памяти узнает, находится ли адрес в диапазоне адресов, в которых MCDRAM кэширует более удаленный DDR DIMM. Если адрес предназначен для DIMM, контроллер памяти преобразует адрес канала в кортеж (канал, тусклость, ранг, банк, строка, столбец), используемый в разговоре по шине с модулем DIMM.
Несмотря на сложность работы, контроллеры памяти реализованы в виде специализированных логических схем, а не микропрограммируются!
Сводка
В предыдущей статье, Почему эффективное использование подсистемы памяти критично для производительности, обсуждаются алгоритмы и анализ, которые имеют решающее значение для получения максимально возможной производительности Intel Xeon Phi и MCDRAM.
В этой статье рассказывается, как знание количества устройств, шин и возможностей совместного использования данных может помочь вам понять:
- Источник задержек доступа и изменений полосы пропускания
- Почему планирование маршрутов, по которым данные проходят через сеть, может иметь огромное значение во времени выполнения
В следующей статье «Обнаружение и предотвращение узких мест» описывается, как распознать и избежать перегрузки в этой сложной сети, соединяющей ядра с основной памятью.
Кроме того, существует серия статей, начинающаяся с «Возможности повышения производительности с помощью оборудования NUMA», в которой представлены вводные сведения обо всех аспектах современного оборудования NUMA и о том, как его можно использовать в различных областях приложений.
Об авторе
Бевин Бретт (Bevin Brett) — главный инженер корпорации Intel, работает над инструментами, которые помогут программистам и пользователям системы улучшить производительность приложений. Эти статьи было бы гораздо труднее читать без обширной редакционной работы одного из авторов Intel — Нэнси Мостер.Бевин допустил ошибки, Нанси признал и обратился к нему со многими из них — но мы уверены, что некоторые из них просочились через…
Cache memory — определение кэш-памяти по The Free Dictionary
Кроме того, Core i5-8350U имеет 6 МБ интеллектуальной кэш-памяти, а Core i5-7300U — 3 МБ интеллектуальной кеш-памяти. В документе рассматриваются важные технические аспекты, которые могут повлиять на общую производительность приложения CUDA, такие как: оптимальное выравнивание в память данных, которые должны быть обработаны, с получением оптимальных шаблонов доступа к памяти, которые облегчают извлечение инструкций; выравнивание по строке кэша L1 в соответствии с ее размером, принимая во внимание баланс, достигнутый между одинарной или двойной точностью, и влияние на то, сколько памяти используется; объединение большего количества функций ядра в одну в определенных ситуациях, получение выгоды от увеличенного ускорения, предлагаемого за счет использования совместно используемой и кэш-памяти, корректировка кода в соответствии с доступной пропускной способностью памяти с учетом задержки памяти и необходимости передачи данных между хост и устройство.В настоящее время во всех компьютерных системах кэш-память является важной частью, поскольку она снижает скорость процессора [5]. Эти файлы составляют то, что называется кэш-памятью телефона или кэшированными данными. Компания также фокусируется на пропускной способности с помощью Zen, с 8 МБ кэш-памяти третьего уровня и новой иерархией кэш-памяти. Согласно Agility Grid, этот графический интерфейс хранилища демонстрирует беспрецедентные возможности чтения / записи при последовательной производительности хранилища вместе с его уникальными запатентованными инструментами мониторинга, которые графически демонстрируют подключение к серверу NVR, загрузку процессора, загрузку кэш-памяти и очереди, задержка записи и, самое главное, кадры, потерянные хранилищем в случае перегрузки (Zero Frames Lost).Кэш-память — понятие не новое; он был одним из показателей повышения производительности в однопроцессорных системах с эры самых ранних однопроцессорных систем. С помощью ISRT пользователи могут настроить свою компьютерную систему с использованием SSD, используемого в качестве кэш-памяти между жестким диском и системной памятью.