33 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Кэш-память процессора. Уровни и принципы функционирования

Кэш-память процессора. Уровни и принципы функционирования

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

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

Что такое кэш-память и её структура

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

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

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

Для чего нужна кэш-память процессора?

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

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

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

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

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

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

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

В общем, могут быть такие уровни: L1 (первый уровень), L2 (второй уровень), L3 (третий уровень). Теперь немного подробнее по каждому из них:

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

Мы будем рассматривать объёмы на процессоре высокого уровня производительности Intel Core i7-3770K. Данный процессор оснащен 4х32 Кб кэш-памяти первого уровня 4 x 32 КБ = 128 Кб. (на каждое ядро по 32 КБ)

Кэш второго уровня (L2) – второй уровень более масштабный, нежели первый, но в результате, обладает меньшими «скоростными характеристиками». Соответственно, служит буфером между уровнем L1 и L3. Если обратиться снова к нашему примеру Core i7-3770 K, то здесь объём кэш-памяти L2 составляет 4х256 Кб = 1 Мб.

Кэш третьего уровня (L3) – третий уровень, опять же, более медленный, нежели два предыдущих. Но всё равно он гораздо быстрее, нежели оперативная память. Объём кэша L3 в i7-3770K составляет 8 Мбайт. Если два предыдущих уровня разделяются на каждое ядро, то данный уровень является общим для всего процессора. Показатель довольно солидный, но не заоблачный. Так как, к примеру, у процессоров Extreme-серии по типу i7-3960X, он равен 15Мб, а у некоторых новых процессоров Xeon, более 20.

Принцип работы кэш-памяти

Содержание

Принцип работы кэш-памяти……………………………………………. 5

Уровни кэш-памяти процессора…………………………………………. 9

Список источников и использованной литературы……………………..11

Введение

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

Кэш-память и ее структура

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

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

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

Принцип работы кэш-памяти

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

Кэш состоит из контроллера и собственно кэш­памяти. Кэш­контроллер управляет работой кэш­памяти, то есть загружает в нее нужные данные из оперативной памяти и возвращает, когда нужно, модифицированные процессором данные в оперативную память. Архитектурно кэш­контроллер расположен между процессором и оперативной памятью (рис. 1). Перехватывая запросы к оперативной памяти, кэш­контроллер определяет, имеется ли копия затребованных данных в кэше. Если такая копия там есть, то это называется кэш­попаданием (cache hit) — в таком случае данные очень быстро извлекаются из кэша (существенно быстрее, чем из оперативной памяти). Если же требуемых данных в кэше нет, то говорят о кэш­промахе (cache miss) — тогда запрос данных переадресуется к оперативной памяти.

Для достижения наивысшей производительности кэш­промахи должны происходить как можно реже (в идеале — отсутствовать). Учитывая, что по емкости кэш­память намного меньше оперативной памяти, добиться этого не так­то просто. А потому основная задача кэш­контроллера заключается в том, чтобы загружать кэш­память действительно нужными данными и своевременно удалять из нее данные, которые больше не понадобятся. Важно понимать, что кэш всегда «полон», так как оставлять часть кэш­памяти пустой нерационально. Новые данные попадают в кэш только путем вытеснения (замещения) каких­либо старых данных.

Загрузка кэша данными реализуется на основе так называемой стратегии кэширования, а выгрузка данных — на основе политики замещения.

Все современные процессоры имеют как минимум двухуровневую структуру кэш­памяти, а большинство процессоров Intel — трехуровневую кэш­память. При этом различают кэш первого уровня (обозначается L1), кэш второго уровня (L2) и кэш третьего уровня (L3). Причем в случае процессоров Intel кэши всех уровней размещены на кристалле процессора.

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

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

Кэш второго уровня L2 является уже унифицированным (содержит и данные и команды). Кэш L2 всегда больше, чем кэш L1, но медленнее его. В случае многоядерных процессоров кэш L2 принадлежит конкретному ядру процессора.

А вот кэш L3 является самым большим и медленным и разделяется между всеми ядрами процессора (в архитектуре процессоров Intel).

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

Для начала рассмотрим двухуровневую систему кэша. Такая кэш­память строится на базе одной из двух архитектур: включающей, которую также называют инклюзивной (inclusive), и исключающей, именуемой эксклюзивной (exclusive). То есть кэш L2 всегда построен либо по включающей, либо по исключающей архитектуре по отношению к кэшу L1 (отметим, что при наличии кэша L3 кэши L2 и L1 могут быть и не включающими, и не исключающими по отношению друг к другу).

Кэш L2, построенный по включающей архитектуре, всегда дублирует содержимое кэша L1, а потому эффективная емкость кэш­памяти равна емкости кэша L2.

Кэш L2, построенный по исключающей архитектуре, никогда не дублирует содержимое кэша L1, а потому эффективная емкость кэш­памяти равна суммарной емкости кэшей L1 и L2.

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

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

Таким образом, загруженная порция данных присутствует и в кэше L1, и в кэше L2.

Отметим, что процессоры Intel Pentium II и Pentium III имели двухуровневый кэш, построенный по включающей архитектуре.

Читать еще:  Как настроить интернет на телефоне: способы настройки мобильного интернета, советы и рекомендации

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

Значение кэш-памяти

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

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

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

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

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

Что такое кэш память процессора и на что влияет??

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

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

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

Собственная память процессора

Только что мы отследили иерархию носителей информации с разным уровнем приоритетности: от HDD к ОЗУ, и далее к SRAM. Но внутри cash процессора существует свое разделение, выполненное по аналогичному принципу: более востребованные данные располагаются в секторе меньшего объема, но с большей скоростью считывания.

В самом теле процессора встроен кэш первого (начального уровня), обозначаемый L1 и имеющий объем несколько Кбайт. Обычно он состоит из нескольких блоков, каждый из которых обслуживает отдельное ядро процессора. Далее идет более вместительный кэш второго уровня L2 с меньшей скоростью записи-считывания, который может состоять из одного или нескольких блоков. В современных процессорах имеется и кэш уровня L3 и даже L4.

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

Первый способ – в интернете, по точному названию вашего процессора, которое отображается в свойствах «Моего компьютера».

Второй вариант – загрузить одну из полезных программ CPU-Z или AIDA64 и там среди прочей информации о ЦП вы найдете сведения об уровнях и размерах cash.

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

  • для обработки машинного кода – кэш инструкций;
  • для считывания и записи информации – кэш данных;
  • буфер ассоциативной трансляции (TLB) – для перевода логических адресов в физические (при работе с кодом и данными).

Схемы записи информации в кэш

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

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

  • сначала изучается содержимое L1, и, если обнаруживаются нужные данные, то это событие называется попаданием. Я полагаю, вы догадываетесь, что объем кэша на каждом из уровней позволяет хранить больше разной информации. И влияет на коэффициент попаданий, который в идеале должен быть на уровне 90%;

  • при отсутствии нужных тегов в L1 поиск продолжается в L2, далее, при неудачной попытке, в L3;
  • если и там не обнаружено данных с нужным тегом, то ЦПУ уже обращается к RAM. Последней «инстанцией», где можно найти всю используемую информацию, является жесткий диск.

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

Политика записи

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

  • При сквозной записи информация заносится в кэш всех ниже расположенных уровней. Например, если данные обнаружены по тегу в ОЗУ, то они заносятся в L3, L2 и L1. Подобная схема работы кэша является инклюзивной и обладает большей эффективностью. Но она целесообразна, если старший уровень памяти существенно превышает низший по объему.
  • Отложенная запись подразумевает сразу перенос нужных данных в L1. А уже если в этом кэше потребуется разместить более актуальную информацию. То они будут перемещены на уровень выше (в нашем случае в L2). Из кэша второго уровня, соответственно данные попадают в L3. Такая архитектура памяти называется эксклюзивной и применяется в случаях небольшой разницы в объемах кэша соседствующих уровней.

Алгоритмы замещения

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

  • Least Recently Used (LRU) – убирают то, что дольше всего было невостребованным;
  • Least Frequently Used (LFU) – замещают, информацию которую использовали реже остальной;
  • Most Recently Used (MRU) – вытесняют буфер, используемый последним;
  • Adaptive Replacement Cache (ARC) – совмещение LRU и LFU алгоритмов;

Польза от кэша процессора

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

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

Кэш-память процессора

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

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

Содержание статьи

Что такое кэш-память процессора

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

Все упомянутые операции производятся на очень высокой скорости. Однако, даже самая быстрая оперативная память работает медленнее любого “неторопливого” процессора. Каждое считывание из нее информации и обратная ее запись отнимают много времени. В среднем, скорость работы оперативной памяти в 16 – 17 раз ниже скорости процессора.

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

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

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

Устройство кэш-памяти процессора

Система кэш-памяти процессора состоит из двух блоков – контроллера кэш-памяти и собственно самой кэш-памяти.

Контроллер кэш памяти

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

Когда ядро процессора обращается к контроллеру за какими-то данными, тот проверяет, есть ли эти данные в кэш-памяти. Если это так, ядру моментально отдается информация из кэша (происходит так называемое кэш-попадание).

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

Задача контроллера – сделать так, чтобы кэш-промахи происходили как можно реже, а в идеале – чтобы их не было вообще.

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

• размером и структурой кэш-памяти (чем больше ресурсов имеет в своем распоряжении контроллер, тем ниже вероятность кэш-промаха);

• эффективностью алгоритмов, по которым контроллер определяет, какая именно информация понадобится процессору в следующий момент времени;

• сложностью и количеством задач, одновременно решаемых процессором. Чем сложнее задачи и чем их больше, тем чаще “ошибается” контроллер.

Кэш-память процессора

Кэш-память процессора изготавливают в виде микросхем статической памяти (англ. Static Random Access Memory, сокращенно – SRAM). По сравнению с другими типами памяти, статическая память обладает очень высокой скоростью работы.

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

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

Читать еще:  Что такое SmartAudio, как его использовать и как настроить

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

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

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

Кэш-память третьего уровня (L3) – еще более объемная, но и более медленная схема памяти. Тем не менее, она значительно быстрее оперативной памяти. Ее размер может достигать нескольких десятков мегабайт. В отличие от L1 и L2, она является общей для всех ядер процессора.

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

Встречаются также процессоры с двухуровневой кэш-памятью. В них L2 совмещает в себе функции L2 и L3.

Влияние кэш-памяти процессора на быстродействие компьютера

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

По статистике, кэш-память первого уровня любого современного процессора обеспечивает до 90 % кэш-попаданий. Второй и третий уровни – еще 90% от того, что осталось. И только около 1 % всех запросов процессора заканчиваются кэш-промахами.

Указанные показатели касаются простых задач. С повышением нагрузки на процессор число кэш-промахов увеличивается.

Эффективность кэш-памяти процессора сводит к минимуму влияние скорости оперативной памяти на быстродействие компьютера. Например, компьютер одинаково хорошо будет работать с оперативной памятью 1066 МГц и 2400 МГц. При прочих равных условиях разница производительности в большинстве приложений не превысит 5%.

Пытаясь оценить эффективность кэш-памяти, пользователи чаще всего ищут ответы на следующие вопросы:

Какая структура кэш-памяти лучше: двух- или трехуровневая?

Трехуровневая кэш-память более эффективна.

Чтобы определить, как сильно L3 влияет на работу процессора, сайтом Tom’s Hardware был проведен эксперимент. Заключался он в замере производительности процессоров Athlon II X4 и Phenom II X4. Оба процессора оснащены одинаковыми ядрами. Первый отличается от второго лишь отсутствием кэш-памяти L3 и более низкой тактовой частотой.

Приведя частоты обеих процессоров к одинаковому показателю, было установлено, что наличие кэш-памяти L3 повышает производительность процессора Phenom на 5,8 %. Но это средний показатель. В одних приложениях он был почти равен нулю (офисные программы), в других – достигал 8% и даже больше (компьютерные 3D игры, архиваторы и др.).

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

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

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

Другое дело высокочастотные 4-, 6- или даже 8-миядерные процессоры. Некоторые из них (например, Intel Core i7) поддерживают технологию Hyper Threading, обеспечивающую одновременное выполнение каждым ядром двух задач. Естественно, что потенциал таких процессоров не может быть раскрыт с маленьким кэшем. Поэтому его увеличение до 15 или даже 20 MB вполне оправдано.

В процессорах Intel алгоритм наполнения кэш-памяти построен по так называемой инклюзивной схеме, когда содержимое кэшей верхнего уровня (L1, L2) полностью или частично дублируется в кэше нижнего уровня (L3). Это в определенной степени уменьшает полезный объем его пространства. С другой стороны, инклюзивная схема позитивно сказывается на взаимодействии ядер процессора между собой.

В целом же, эксперименты свидетельствуют, что в среднестатистическом “домашнем” процессоре влияние размера кэша на производительность находится в пределах 10 %, и его вполне можно компенсировать, например, высокой частотой.

Эффект от большого кэша наиболее ощутим при использовании архиваторов, в 3D играх, во время кодирования видео. В “не тяжелых” же приложениях разница стремится к нулю (офисные программы, интернет-серфинг, работа с фотографиями, прослушивание музыки и др.).

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

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

Как узнать размер кэш-памяти процессора?

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

Программа не требует установки. После ее запуска нужно перейти на вкладку “Caches” (см. изображение).

На примере видно, что проверяемый процессор оснащен трехуровневой кэш-памятью. Размер кэша L3 у него составляет 3 MB, L2 – 512 KB (256×2), L1 – 128 KB (32×2+32×2).

Можно ли как-то увеличить кэш-память процессора?

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

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

Одной из особенностей компьютеров на базе процессоров AMD, которой они выгодно отличаются от платформ Intel, является высокий уровень совместимости процессоров и материнских плат. У владельцев относительно не старых настольных систем на базе AMD есть высокие шансы безболезненно “прокачать” компьютер путем простой замены процессора на “камень” из более новой линейки или же флагман из предыдущей.

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

В таблицу можно одновременно добавить до 6 процессоров, выбрав их из списка (кнопка “Добавить процессор”). Всего доступно больше 2,5 тыс. процессоров Intel и AMD.

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

Дополнительные рекомендации по использованию таблицы можно найти внизу страницы.

В этой базе собраны подробные характеристики процессоров Intel и AMD. Она содержит спецификации около 2,7 тысяч десктопных, мобильных и серверных процессоров, начиная с первых Пентиумов и Атлонов и заканчивая последними моделями.

Информация систематизирована в алфавитном порядке и будет полезна всем, кто интересуется компьютерной техникой.

Таблица содержит информацию о почти 2 тыс. процессоров и будет весьма полезной людям, интересующимся компьютерным “железом”. Положение каждого процессора в таблице определяется уровнем его быстродействия в синтетических тестах (расположены по убыванию).

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

Для получения подробной информации о любом процессоре достаточно нажать на его название.

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

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

Так, полюбившийся многим браузер Google Chrome не работает без поддержки процессором SSE2. Инструкции AVX могут в разы ускорить обработку фото- и видеоконтента. А недавно один мой знакомый на достаточно быстром Phenom II (6 ядер) не смог запустить игру Mafia 3, поскольку его процессор не поддерживает инструкции SSE4.2.

Если аббревиатуры SSE, MMX, AVX, SIMD вам ни о чем не говорят и вы хотели бы разобраться в этом вопросе, изложенная здесь информация станет неплохим подспорьем.

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

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


ПОКАЗАТЬ ЕЩЕ

Организация и принципы работы кэш-памяти

Общие принципы функционирования кэш-памяти

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

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

Зададимся вопросом: “А как определить наиболее часто используемую информацию? Неужели сначала кто-то анализирует ход выполнения программы, определяет, какие команды и данные чаще используются, а потом, при следующем запуске программы, эти данные переписываются в кэш – память и уже тогда программа выполняется эффективно?” Конечно нет. Хотя в современных микропроцессорах имеется определенный механизм, который позволяет в некоторой степени реализовать этот принцип. Но в основном, конечно, кэш – память сама отбирает информацию, которая чаще всего используется. Рассмотрим, как это происходит.

Механизм сохранения информации в кэш-памяти

При включении микропроцессора в работу вся информация в его кэш-памяти недостоверна.

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

Для этого сформированный им физический адрес сравнивается с адресами ячеек памяти, которые были ранее кэшированы из ОЗУ в КП.

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

Если бы в кэш – память заносилась только востребованная микропроцессором в данный момент информация , то, скорее всего, при следующем обращении вновь произошел бы кэш-промах: вряд ли следующее обращение произойдет к той же самой команде или к тому же самому операнду. Кэш-попадания происходили бы лишь после того, как в КП накопится достаточно большой фрагмент программы, содержащий некоторые циклические участки кода, или фрагмент данных, подлежащих повторной обработке. Для того чтобы уже следующее обращение к КП приводило как можно чаще к кэш-попаданиям, передача из оперативной памяти в кэш – память происходит не теми порциями (байтами или словами), которые востребованы микропроцессором в данном обращении, а так называемыми строками. То есть кэш – память и оперативная память с точки зрения кэширования организуются в виде строк. Длина строки превышает максимально возможную длину востребованных микропроцессором данных. Обычно она составляет от 16 до 64 байт и выровнена в памяти по границе соответствующего раздела (рис. 4.1).

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

Читать еще:  Скачать Scribblenauts Remix на андроид 6.9

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

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

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

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

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

Если каждая строка ОЗУ имеет только одно фиксированное место , на котором она может находиться в кэш -памяти, то такая кэш – память называется памятью с прямым отображением.

Предположим, что ОЗУ состоит из 1000 строк с номерами от 0 до 999, а кэш – память имеет емкость только 100 строк. В кэш -памяти с прямым отображением строки ОЗУ с номерами 0, 100, 200, . 900 могут сохраняться только в строке 0 КП и нигде иначе, строки 1, 101, 201, …, 901

ОЗУ – в строке 1 КП, строки ОЗУ с номерами 99, 199, …, 999 сохраняются в строке 99 кэш -памяти (рис. 4.2). Такая организация кэш -памяти обеспечивает быстрый поиск в ней нужной информации: необходимо проверить ее наличие только в одном месте. Однако емкость КП при этом используется не в полной мере: несмотря на то, что часть кэш -памяти может быть не заполнена, будет происходить вытеснение из нее полезной информации при последовательных обращениях, например, к строкам 101, 301, 101 ОЗУ .

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

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

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

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

  1. LRU – замещается строка, к которой дольше всего не было обращений;
  2. FIFO – замещается самая давняя по пребыванию в кэш-памяти строка;
  3. Random – замещение проходит случайным образом.

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

Некоторые эвристические оценки вероятности кэш -промаха при разных стратегиях замещения (в процентах) представлены в табл. 4.1.

Кэш память и её предназначение в процессоре

Всем доброго времени суток. Сегодня мы постараемся растолковать вам такое понятие как кэш. Кэш память процессора – это сверхбыстрый массив обработки данных, скорость которого превышает показатели стандартной ОЗУ раз так в 16–17, если речь идет о DDR4.

Именно объем кэш-памяти позволяет ЦП работать на предельных скоростях, не дожидаясь, пока оперативная память обработает какие-либо данные и не отправит результаты готовых вычислений чипу для дальнейшей их обработки. Аналогичный принцип прослеживается в HDD, только там используется буфер на 8–128 МБ. Другое дело, что скорости гораздо ниже, но процесс работы аналогичен.

Что такое кэш процессора?

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

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

Скорость работы определяется эффективностью оперативной памяти. Но ни один современный модуль DDR4, включая оверклокерские решения с частотами под 4000 МГц, и рядом не стоял с возможностями самого чахлого процессора с его «медленным» КЭШем.

Все потому, что скорость работы ЦП превышает показатели работы ОЗУ в среднем раз в 15, а то и выше. И не смотрите только на параметры частоты, помимо них отличий хватает.В теории получается, что даже сверхмощные Intel Xeon и AMD Epyc вынуждены простаивать, но по факту оба серверных чипа работают на пределе возможностей. А все потому, что они набирают необходимое количество данных по величине кэша (вплоть до 60 и более МБ) и моментально обрабатывают данные. ОЗУ служит в качестве некоего склада, откуда черпаются массивы для вычислений. Эффективность вычислений компьютера возрастает и все довольны.

Краткий экскурс в историю

Первые упоминания о кэш-памяти датированы концом 80‑х годов. До этого времени скорость работы процессора и памяти были приблизительно одинаковой. Стремительное развитие чипов требовало придумать какой-нибудь «костыль», чтобы повысить уровень быстродействия ОЗУ, однако использовать сверхбыстрые чипы было очень затратно, а потому решились обойтись более экономичным вариантом – внедрением скоростного массива памяти в ЦП.

Впервые модуль кэш-памяти появился в Intel 80386. В то время задержки при работе DRAM колебались в пределах 120 наносекунд, в то время как более современный модуль SRAM сокращал время задержек до внушительных по тем временам 10 наносекунд. Примерная картина более наглядно продемонстрирована в противостоянии HDD против SSD.

Изначально кэш-память распаивалась прямиком на материнских платах, ввиду уровня техпроцесса того времени. Начиная с Intel 80486 8 кб памяти было внедрено непосредственно в кристалл процессора, что дополнительно увеличивало производительность и снижало площадь кристалла.

Данная технология расположения оставалась актуальной лишь до выхода Pentium MMX, после чего SRAM-память была заменена более прогрессивной SDRAM. Да и процессоры стали гораздо меньше, а потому надобность во внешних схемах отпала.

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

На маркировке современных ЦП, помимо тактовой частоты и количества потоков, можно встретить такое понятие как размер кэша 1,2 и 3 уровней. Как он определяется и на что влияет? Давайте разбираться простым языком.

  • Кэш первого уровня (L1) – самая важная и быстрая микросхема в архитектуре ЦП. Один процессор может вместить количество модулей, равных числу ядер. Примечательно, что микросхема может хранить в памяти самые востребованные и важные данные только со своего ядра. Объем массива зачастую ограничен показателем в 32–64 КБ.
  • Кэш второго уровня (L2) – падение скорости компенсируется увеличением объема буфера, который доходит до 256, а то и 512 КБ. Принцип действия такой же, как и у L1, а вот частота запроса к памяти ниже, ввиду хранения в ней менее приоритетных данных.
  • Кэш третьего уровня (L3) – самый медленный и объемный раздел среди всех перечисленных. И все равно этот массив гораздо быстрее оперативной памяти. Размер может достигать 20, и даже 60 МБ, если речь касается серверных чипов. Польза от массива огромна: он является ключевым звеном обмена данными между всеми ядрами системы. Без L3 все элементы чипа были бы разрознены.

В продаже можно встретить как двух- так и трехуровневую структуру памяти. Какая из них лучше? Если вы используете процессор лишь для офисных программ и казуальных игр, то никакой разницы не почувствуете. Если же система собирается с прицелом под сложные 3D-игры, архивацию, рендеринг и работу с графикой, то прирост в некоторых случаях будет колебаться от 5 до 10%.Кэш третьего уровня оправдан лишь в том случае, если вы намерены регулярно работать с многопоточными приложениями, требующими регулярные сложные расчеты. По этой причине в серверных моделях нередко используют кэш L3 больших объемов. Хотя бывают случаи, что и этого не хватает, а потому приходится дополнительно ставить так называемые модули L4, которые выглядят как отдельная микросхема, подключаемая к материнской плате.

Как узнать количество уровней и размер кэша на своем процессоре?

Начнем с того, что сделать это можно 3 способами:

  • через командную строку (только кэш L2 и L3);
  • путем поиска спецификаций в интернете;
  • с помощью сторонних утилит.

Если взять за основу тот факт, что у большинства процессоров L1 составляет 32 КБ, а L2 и L3 могут колебаться в широких пределах, последние 2 значения нам и нужны. Для их поиска открываем командную строку через «Пуск» (вводим значение «cmd» через строку поиска).

Далее необходимо прописать значение «wmic cpu get L2CacheSize, L3CacheSize».

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

Если вы собрались искать данные в сети, то для начала узнайте точное имя ЦП. Нажмите правой кнопкой по иконке «Мой компьютер» и выберите пункт «Свойства». В графе «Система» будет пункт «Процессор», который нам, собственно, нужен. Переписываете его название в тот же Google или Yandex и смотрите значение на сайтах. Для достоверной информации лучше выбирать официальные порталы производителя (Intel или AMD).Третий способ также не вызывает проблем, но требует установки дополнительного софта вроде GPU‑Z, AIDA64 и прочих утилит для изучения спецификаций камня. Вариант для любителей разгона и копошения в деталях.

Итоги

Теперь вы понимаете, что такое кэш-память, от чего зависит ее объем, и для каких целей используется сверхбыстрый массив данных. На данный момент наиболее интересными решениями на рынке в плане большого объема кэш-памяти, можно назвать устройства AMD Ryzen 5 и 7 с их 16 МБ L3.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: