Где находится кэш-память в компьютере

Обновлено: 21.11.2024

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

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

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

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

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

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

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

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

  • Уровень 1 или регистр.
    Это тип памяти, в которой хранятся и принимаются данные, которые немедленно сохраняются в ЦП. Наиболее часто используемые регистры — это аккумулятор, программный счетчик, адресный регистр и т. д.
  • Уровень 2 или кэш-память.
    Это самая быстрая память с более быстрым временем доступа, в которой данные временно сохраняются для более быстрого доступа.
  • Уровень 3 или основная память.
    Это память, в которой компьютер работает в данный момент. Она небольшого размера, и после отключения питания данные больше не остаются в этой памяти.
  • Уровень 4 или вторичная память.
    Это внешняя память, которая не так быстра, как основная память, но данные постоянно остаются в этой памяти.

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

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

Производительность кэш-памяти часто измеряется показателем, называемым коэффициентом попаданий.

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

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

Для доступа к кешу каждый адрес основной памяти можно рассматривать как состоящий из трех полей. Младшие значащие биты w идентифицируют уникальное слово или байт в блоке основной памяти. В большинстве современных машин адрес находится на уровне байтов. Остальные s битов определяют один из 2 s блоков основной памяти. Логика кэша интерпретирует эти s битов как тег из s-r битов (самая значащая часть) и линейное поле из r битов. Это последнее поле идентифицирует одну из m=2 r строк кэша.

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

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

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

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

Практические вопросы по GATE –

Очередь-1: компьютер имеет 256-килобайтный, 4-канальный набор ассоциативных кэш-памятей данных обратной записи с размером блока 32 байта. Процессор отправляет 32-битные адреса контроллеру кеша. Каждая запись каталога тегов кэша содержит, помимо адресного тега, 2 допустимых бита, 1 измененный бит и 1 бит замены. Количество битов в поле тега адреса равно

Вопрос-2: рассмотрите данные, приведенные в предыдущем вопросе. Размер каталога тегов кеша

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

Столько битов, сколько минимум необходимо для идентификации блока памяти, отображаемого в кэше. Каков общий объем памяти, необходимый контроллеру кеша для хранения метаданных (тегов) для кеша?

Статья предоставлена ​​Пуджей Танеджей и Вайшали Бхатиа. Пожалуйста, пишите комментарии, если вы обнаружите что-то неверное или хотите поделиться дополнительной информацией по теме, обсуждаемой выше.

Кэш-память играет ключевую роль в компьютерах. Фактически, все современные компьютерные системы, включая настольные ПК, серверы в корпоративных центрах обработки данных и облачные вычислительные ресурсы, имеют небольшие объемы очень быстрой статической оперативной памяти (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 МБ на ядро.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кэш — это очень быстрая и небольшая память, которая обычно находится на ЦП.

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

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

Кэш-память работает быстро, потому что:

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

В основном это касается местности. Кэш устраняет этап передачи данных.

Локальность – это причудливый способ обозначения данных, которые находятся "близко друг к другу" либо во времени, либо в пространстве. Кэширование с меньшей, более быстрой (но, как правило, более дорогой) памятью работает, потому что, как правило, относительно небольшой объем общих данных — это данные, к которым обращаются чаще всего. [1]

В настоящее время время цикла DRAM составляет около 70 нс. Кэш представляет собой статическое ОЗУ на кристалле и имеет время доступа около 6 нс. [2]


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