Что такое точка кеша

Обновлено: 21.11.2024

В сфере вычислительной обработки данных кэш-памяти – это высокоскоростной уровень хранения, который требует набора данных, как правило, временного характера. Доступ к значительному уровню произошел быстрее, чем к основному ущербу для их хранения. С помощью кэширования становится возможным повторное использование ранее полученных или вычисленных данных.

Как работает кэширование?

Данные в кэше, как правило, встречаются с быстрым доступом, например, как ОЗУ (оперативное запоминающее устройство), и объединяются совместно с программными компонентами. Основная функция кэша – ускорение процесса извлечения данных. Он избавляет от необходимости обращаться к менее скоростному базовому обеспечению хранения.

Небольшой объем кэш-памяти компенсируется высокой скоростью доступа. В кэше обычно обнаруживается только требуемый набор данных, причем временно, в отличие от баз данных, где данные обычно обнаруживаются полностью и постоянно.

Обзор кэширования

ОЗУ и работающие в сервисы памяти. Выявление ОЗУ и работающие в памяти сервисы повышают показатели скорости обработки доходов или операций ввода-вывода в секунду (количество операций ввода-вывода в секунду), Для аналогичного масштаба работы с использованием различных баз данных и оборудования на базе жестких дисков требуются дополнительные ресурсы. Использование ресурсов, требующих увеличения расхода, но все равно не позволяющих получить такую ​​задержку, которая требует кэширования в памяти.

Шаблоны проектирования. В среде распределенных вычислений выделенный уровень кэширования позволяет системе и приложениям работать независимо от кэширования. При этом их жизненные циклы не имеют свойств кэша. Кэш служителей центрального уровня, к которым обращаются различные несвязанные между собой системы. Он имеет собственный жизненный цикл и архитектурную топологию. Это особенно важно для систем, в окружении приложений можно масштабировать обе стороны. Если кэш находится на том же узле, что и приложение или система, которые могут быть обнаружены, масштабирование может привести к разрушению кэша. Кроме того, если использовать локальные кэши, это дает преимущества только локальным приложениям, которые получают данные. В распределенной среде кэширования данные охватывают множество серверов кэширования и размещаются в центральном расположении, удобном для всех потребителей данных.

Рекомендации по кэшированию. При реализации уровня кэширования необходимо обратить особое внимание на кэшируемость данных. Эффективный кэширование частоты запросов, наличие в кэше запрашиваемых данных. Промах кэша происходит, когда запрашиваемых данных в кэше нет. Для удаления из кэша неактуальных данных применяются такие механизмы, как TTL (время жизни). Также следует понимать, что для кэширования среды требуется высокая доступность. Если необходимо, можно использовать сервисы в памяти, такие как Redis. В случае обнаружения уровня в памяти можно использовать как отдельный уровень хранения данных, в отличие от кэширования из хранилища. Чтобы решить, подходит ли такой вариант, необходимо определить для данных в сервисе значения времени RTO (требуемое время восстановления, то есть количество времени требуется система на восстановление после страха) и RPO (требуемая восстановление, то есть последняя точка восстанавливаемая точка или транзакция) . Для соответствия большинству безопасности RTO и RPO можно применять характеристики и проектные стратегии различных служб в памяти.

Ускорение получения веб-контента от веб-сайтов (браузеры или устройства)

Кэширование с помощью Amazon ElastiCache

Веб-сервис Amazon ElastiCache развертывание, запуск и масштабирование в облаке хранилища или кэша в памяти. Сервис повышает производительность интернет-приложений, позволяет получать данные из быстро управляемых хранилищ данных, размещенных только в памяти, а не из баз данных, размещенных на дисках и не так быстро. Информацию о том, как реализовать эффективную выборку кэширования, см. в этом техническом описании по кэшированию в памяти.

Преимущества кэширования

Повышение производительности приложений

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

Сокращение затрат на базы данных

Один инстанс кэша может привести к уменьшению объемов поступающих средств, что в результате приводит к значительным расходам. Это особенно важно, если плата требует пропускной способности данных. В таких случаях можно сократить расходы на десятки процентов.

Снижение нагрузки на серверную часть

Увеличение выделения серверной базы данных от части нагрузки на потребление, которая направлена ​​на уровень памяти, кэширование может увеличить использование ресурсов и ее данных от производительности под производительность и даже от сбоев при пиковых нагрузках.

Прогнозируемая производительность

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

Устранение проблемных мест в базах данных

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

Повышение пропускной способности операций чтения (количество операций ввода-вывода в секунду)

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

Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

кэш-память, также называемая кэшем, дополнительная система памяти, которая временно хранит часто используемые инструкции и данные для более быстрой обработки центральным процессором (ЦП) компьютера. Кэш увеличивает и является расширением основной памяти компьютера. И основная память, и кэш-память являются внутренними запоминающими устройствами с произвольным доступом (ОЗУ), в которых используются полупроводниковые транзисторные схемы. Кэш хранит копию только наиболее часто используемой информации или программных кодов, хранящихся в основной памяти. Меньший объем кэш-памяти сокращает время, необходимое для поиска данных в нем и передачи их центральному процессору для обработки.

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

Как Интернет перемещает информацию между компьютерами? Какая операционная система сделана Microsoft? Войдите в этот тест и проверьте свои знания о компьютерах и операционных системах.

Редакторы Британской энциклопедии Эта статья была недавно отредактирована и обновлена ​​Эриком Грегерсеном.

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

Временное хранилище памяти, кэш делает извлечение данных проще и эффективнее. Это самая быстрая память в компьютере. Обычно она встроена в материнскую плату и встроена непосредственно в процессор или основную оперативную память (ОЗУ).

Techopedia рассказывает о кэш-памяти

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

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

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

Скорость зависит от расстояния, а также от размера самого кеша. Чем больше данных может храниться в кеше, тем быстрее он работает, поэтому чипы с меньшей емкостью памяти, как правило, работают медленнее, даже если они расположены ближе к процессору.

Помимо аппаратного кеша, кэш-память также может быть дисковым кешем, где зарезервированная часть на диске хранит и обеспечивает доступ к часто используемым данным/приложениям с диска. Всякий раз, когда процессор обращается к данным в первый раз, копия создается в кэше.

При повторном доступе к этим данным, если копия доступна в кэше, доступ к этой копии осуществляется в первую очередь, что повышает скорость и эффективность. Если он недоступен, то осуществляется доступ к более крупным, удаленным и медленным памяти (например, к ОЗУ или жесткому диску).

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

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

Кэш-память играет ключевую роль в компьютерах. Фактически, все современные компьютерные системы, включая настольные ПК, серверы в корпоративных центрах обработки данных и облачные вычислительные ресурсы, имеют небольшие объемы очень быстрой статической оперативной памяти (SRAM), расположенной очень близко к центральному процессору (ЦП). Эта память называется кэш-памятью.

Несмотря на свой небольшой размер по сравнению с основной памятью (ОЗУ) или дополнительной памятью (ресурсами хранения), кэш-память оказывает огромное влияние на общую производительность системы.

Что такое кэш-память?

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

Но ЦП работает намного быстрее, чем ОЗУ, поэтому иногда ему приходится ждать, пока инструкции или данные считываются из ОЗУ, прежде чем он сможет продолжить обработку, что снижает общую производительность компьютерной системы.

Чтобы этого не происходило, компьютерные системы обычно оснащаются кэш-памятью: небольшим объемом динамической памяти с произвольным доступом (DRAM), которая является очень быстрой, но очень дорогой и расположена очень близко к самому ЦП.

В этой кэш-памяти хранятся данные или инструкции, которые процессор может использовать в ближайшем будущем. Поскольку это избавляет ЦП от ожидания, для повышения производительности чтения используется кэширование.

Кэш-память и производительность

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

Это означает, что процессор с меньшей вероятностью будет вынужден ждать — или время ожидания будет значительно сокращено. В результате очень небольшой объем кэш-памяти может привести к значительному увеличению производительности компьютера.

Как работает кэш-память?

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

В результате получается таблица, содержащая небольшое количество адресов оперативной памяти и копии инструкций или данных, содержащихся в этих адресах оперативной памяти.

Кэш памяти «сработал»

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

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

Как это делается, зависит от политики записи кеша. Простейшая политика называется сквозной записью: при этой политике все, что записывается в кеш памяти, сразу же записывается в ОЗУ.

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

Промежуточные политики позволяют ставить «грязную» информацию в очередь и записывать обратно в ОЗУ в пакетном режиме, что может быть более эффективным, чем многократная запись по отдельности.

Кэш памяти «промах»

Если данные или инструкции по заданному адресу оперативной памяти не найдены в кэш-памяти, это называется «промахом кэша». В этом случае ЦП вынужден ждать, пока информация извлекается из ОЗУ.

На самом деле данные или инструкции извлекаются из ОЗУ и записываются в кэш-память, а затем отправляются в ЦП. Причина этого в том, что данные или инструкции, которые недавно использовались, скорее всего, снова потребуются в ближайшем будущем. Таким образом, все, что ЦП запрашивает из ОЗУ, всегда копируется в кэш-память.

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

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

Если необходимо принять решение, кэш памяти применит «политику замены», чтобы решить, какая информация будет вытеснена.

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

Ключевое значение кэш-памяти

Кэш-память необходима для устранения узких мест производительности между ОЗУ и ЦП. Его использование аналогично использованию оперативной памяти в качестве дискового кеша. В этом случае часто используемые данные, хранящиеся во вторичных системах хранения (таких как жесткие диски или твердотельные накопители), временно помещаются в оперативную память, где ЦП может получить к ним доступ гораздо быстрее.

Поскольку ОЗУ дороже (но быстрее), чем вторичное хранилище, дисковые кэши меньше, чем жесткие диски или твердотельные накопители. Поскольку SRAM дороже (но быстрее), чем DRAM, кэши памяти меньше, чем RAM.

Типы кэш-памяти

  • Первичный кэш Большая часть кэш-памяти физически расположена на том же кристалле, что и сам ЦП, а часть, ближайшая к ядрам ЦП, иногда называется первичным кэшем, хотя этот термин больше не используется.
  • Вторичная кэш-память Часто это относится к дополнительной части кэш-памяти, расположенной на отдельной микросхеме материнской платы рядом с процессором. Этот термин также больше не используется, поскольку большая часть кэш-памяти теперь расположена на самом кристалле ЦП.

Уровни кэш-памяти

Современные компьютерные системы имеют более одной части кэш-памяти, и эти кэши различаются по размеру и близости к ядрам процессора, а значит, и по скорости. Они известны как уровни кэша.

Самая маленькая и самая быстрая кэш-память — это кэш-память 1-го уровня, или кэш-память L1, а следующей является кэш-память L2. Большинство систем теперь имеют кэш-память L3, а с момента появления чипов Skylake Intel также добавила кэш-память L4 в некоторые из своих процессоров.

Уровень 1

Кэш L1 — это кэш-память, встроенная в сам ЦП. Он работает на той же тактовой частоте, что и процессор.Это самый дорогой тип кэш-памяти, поэтому его размер крайне ограничен. Но поскольку он очень быстрый, это первое место, где процессор будет искать данные или инструкции, которые могли быть буферизованы из ОЗУ.

На самом деле в большинстве современных процессоров кэш L1 разделен на две части: раздел данных (L1d) и раздел инструкций (L1i). Они содержат данные и инструкции соответственно.

Современный ЦП может иметь размер кэша порядка 32 КБ L1i и L1d на ядро.

Уровень 2

Кэш L2 также может располагаться в микросхеме ЦП, хотя и не так близко к ядру, как кэш L1. Или, что реже, он может быть расположен на отдельном чипе рядом с процессором. Кэш L2 дешевле и больше, чем кэш L1, поэтому размер кэша L2, как правило, больше и может составлять порядка 256 КБ на ядро.

Уровень 3

Кэш уровня 3, как правило, намного больше, чем кэш L1 или L2, но он также отличается еще одним важным аспектом. В то время как кэши L1 и L2 являются частными для каждого ядра процессора, кэш L3, как правило, является общим кешем, общим для всех ядер. Это позволяет ему играть важную роль в обмене данными и межъядерной связи. Кэш L3 может иметь размер порядка 2 МБ на ядро.

Отображение кэша

Кэш-память, как уже говорилось, чрезвычайно быстра, то есть ее можно очень быстро считывать.

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

Существует несколько способов отображения данных или инструкций из ОЗУ в кэш памяти, и они напрямую влияют на скорость их поиска. Но есть компромисс: минимизация времени поиска также сводит к минимуму вероятность попадания в кеш, а максимизация вероятности попадания в кеш увеличивает вероятное время поиска.

Обычно используются следующие методы сопоставления кеша:

Прямое сопоставление

При использовании кеша с прямым отображением существует только одно место в кэш-памяти, в котором может храниться данный блок данных из ОЗУ.

Это означает, что ЦП должен заглянуть только в одно место в кэше памяти, чтобы увидеть, присутствуют ли данные или инструкции, которые он ищет, и если это так, они будут найдены очень быстро. Недостаток кэша с прямым отображением заключается в том, что он сильно ограничивает объем данных или инструкций, которые можно хранить в кэше памяти, поэтому попадания в кэш случаются редко.

Ассоциативное сопоставление

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

Набор-ассоциативное сопоставление

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

Поиск в двухсторонней системе занимает в два раза больше времени, чем в системе с прямым сопоставлением, поскольку ЦП должен искать в двух местах, а не только в одном, но вероятность попадания в кэш гораздо выше.

Читайте также: