Кэш видеокарты что это
Кэширование шейдеров NVIDIA. ВКЛ или ВЫКЛ
В панели управления NVIDIA присутствует возможность включения или выключения кэширования шейдеров. Теоретически он снижает загрузку центрального процессора, сохраняя скомпилированные шейдеры в кэш на диске. На практике не все игры его поддерживают.
Эта статья расскажет о кэшировании шейдеров NVIDIA. Нужно определиться, что лучше, включить или отключить функцию. На видеокарте Gigabyte GTX 1080 и последних драйверах параметр по умолчанию включён. В большинстве игр настройка не влияет на частоту кадров.
Что такое кэширование шейдеров NVIDIA
Параметр в некоторых приложениях снижает нагрузку ЦП путём сохранения скомпилированный шейдеров на диске. Используется только при запуске игры на первом построении шейдеров. Ранее собранный шейдер будет уже просто извлечён из дискового кэша.
Типичные ситуации применения:
Включено | увеличивает плавность изображения и снижает время загрузки; |
Отключено | используется для экономии места на локальном диске. |
Кэширование может уменьшить или вовсе убрать тормоза в играх при необходимости следующего построения шейдеров. Не стоит паниковать насчёт здоровья SSD накопителей. Кэш записываться только несколько раз, в последующем использовании он только считывается.
Как отключить кэширование шейдеров
NVIDIA
В процессе использования видеокарты NVIDIA заметил, что п о умолчанию кэширование шейдеров включено. Возможно, всё зависит от Ваших комплектующих. На более слабых графических картах параметр вообще может отсутствовать или быть недоступным.
В классической Панели управления NVIDIA откройте раздел Параметры 3D > Управление параметрами 3D. Измените значение параметра Кэширование шейдеров на Выключено. В целом это может освободить дополнительно несколько гигабайт дискового пространства.
Можно отключить кэширование в отдельном приложении выбрав Программные настройки или всем сразу, изменив Глобальные параметры. Параметры замещения будут использоваться при каждом запуске программы, вместо использования глобальных.
Steam
Предварительное кэширование позволяет Steam загружать заранее скомпилированные графические шейдеры для Вашего компьютера. Благодаря этому игры, использующие Vulkan или OpenGL, будут загружаться быстрее, а стабильность частоты кадров возрастёт.
Перейдите в раздел Steam > Настройки > Кэш шейдеров. Чтобы отключить кэширование, снимите отметку Включить кэш шейдеров. При включении нагрузка на сеть и дисковое пространство может незначительно вырасти. Без поддержки драйверов функция не работает.
Использование кэширования шейдеров не увеличивает поточное количество кадров в секунду. Но всё же стабильность и среднее количество кадров возрастает. Постоянная загрузка шейдеров приводит к нежелательным просадкам производительности на слабых компьютерах.
Настройка кэширования шейдеров в видеокартах NVidia
Каждый, кто заходил в настройки видеокарты NVidia и внимательно изучал все присутствующие там опции, наверняка замечал такой пункт, как кэширование шейдеров. Многие геймеры пробуют играться с этим параметром, включая или отключая его, но получают разные результаты. У одних включение кэширования помогает избавиться от фризов, у других игры тормозят ещё сильнее. Почему так происходит, мы сегодня и попробуем узнать.
Что нужно знать о кэшировании шейдеров в видеокартах NVidia
Немного о терминологии. Под шейдером принято понимать некий программный код, который ответственен за прорисовку визуальных эффектов кадра. Когда требуется вывод картинки на экран монитора, такие вычисления могут занять больше времени, чем на это отводится, и тогда анимация будет происходить с задержками (рывками). На мощных компьютерах с производительной видеокартой обычно такого не происходит, но проблема в том, что одни и те же Shaders просчитываются по многу раз, если каждый последующий кадр содержит те же эффекты, что и предыдущий (например, рябь на воде).
Кэширование – это процедура записи на диск или в область памяти неких часто используемых данных, и вместо того, чтобы каждый заниматься просчётами этих данных, программа считывает уже готовые параметры, что существенно убыстряет её работу. Даже у центрального процессора имеется область кэширования, помогающая предсказать, какая операция будет выполняться следующей, чтобы заранее к этому подготовиться.
Имеется такая функция и у видеокарт NVidia, при этом кэширование шейдеров предполагает запись нужных данных на диск. Если он быстрый, то кэширование помогает увеличить время загрузки кадра и улучшить плавность анимации. С другой стороны, если компьютер слабый или диск медленный, ShaderCache не даст ощутимого результата. Так нужно ли его включить или отключить? Давайте разбираться.
Включение/отключение кэширования шейдеров NVidia
Отметим, что просчётом шейдеров занимается видеокарта, но на старых видеоакселераторах такая функция может и отсутствовать. Во-вторых, функция может не поддерживаться и конкретной игрой, хотя графический чип и позволяет это сделать. В-третьих, нужно понимать, что от того, включено или выключено кэширование шейдеров в настройках видеокарты NVidia, частота кадров не изменится.
На большинстве современных видеочипов эта функция включена по умолчанию.
А теперь рассмотрим, от чего зависит эффективность использования ShaderCache.
Самый важный параметр – это скорость чтения данных из кэша, то есть насколько быстрый у вас диск. Если это SSD, то здесь эффект будет заметным, ведь скорость чтения/записи при работе с твердотельными накопителями намного выше, чем у классических винчестеров. Поэтому при наличии HDD диска эффективность кэширования шейдеров будет не такой высокой или вообще нулевой. Другими словами, считывание кэша с жёсткого диска займёт примерно столько же времени, сколько освобождается в результате разгрузки видеокарты от просчёта очередного Shader.
В любом случае очевидный минус у кэширования шейдеров только один – он использует дисковое пространство, и при его дефиците лучше выключить опцию кэширования шейдеров на видеокартах AMD NVidia. Но ещё раз напомним, что далеко не во всех играх реализован этот механизм, и это уже лежит на совести разработчиков, не использующих соответствующие возможности, заложенные в чипы на аппаратном уровне.
И ещё один нюанс, касающийся использования SSD дисков. Как известно, для таких носителей критическим является такой параметр, как количество циклов записи на единицу памяти. На сегодня оно существенно меньше, чем у жёстких дисков, и рекомендуется их использование в щадящем режиме – например, в качестве системного диска. В этой связи у многих пользователей возникают опасения, что ShaderCache негативным образом скажется на ресурсе твердотельного диска. На самом деле опасения беспочвенны: запись кэша производится не так часто, как его считывание.
Отметим, что те геймеры, которые используют клиент Steam, могут не переживать по поводу того, используется ShaderCache в настройках видеокарты или нет, поскольку здесь поддержка осуществлена на уровне библиотек Vulkan/OpenGL. И если игра использует эти платформы, кэширование шейдеров позволит не грузить процессор, поскольку каждый раз компилировать шейдеры не нужно – они будут подгружаться из оперативной памяти.
Но если по какой-то причине вы хотите отказаться от использования этой функции, это можно сделать в настройках видеокарты. Приводим пошаговый алгоритм, как отключить кэширование шейдеров:
В результате вы освободите на диске пространство в размере порядка нескольких гигабайтов.
Имеется возможность отключения функции для отдельных приложений через «Программные настройки». Если выбрана опция «Глобальные параметры», то отмена будет касаться всех программных продуктов, использующих технологию шейдеров.
Ещё одна возможность отключить кэширование спрятана в настройках Steam: в разделе «Настройки» имеется вкладка «Кэш шейдеров» с переключателем, который можно выключать или включать. При включении опции может отмечаться небольшой рост нагрузки на сеть. Функция работает только при наличии установленных драйверов видеокарты NVidia.
Краткое резюме таково: использование ShaderCache, хотя и не оказывает влияния на частоту прорисовки кадров, улучшает их качество и стабильность. Но если компьютер слабый, перманентная загрузка шейдеров с диска может отрицательным образом сказаться на производительности ПК, хотя без кэширования недостаточно мощный компьютер будет тормозить, постоянно компилируя Shaders.
Что такое Infinity Cache и Smart Access Memory: как новые технологии AMD увеличивают производительность
Содержание
Содержание
В конце ноября 2020 года AMD выпустила новые видеокарты — Radeon RX 6800 и 6800XT. Помимо прочего, они обладают новыми технологиями Infinity Cache и Smart Access Memory. Давайте разберемся, что это за фишки и как они влияют на производительность.
Infinity Cache
Чтобы конкурировать с NVIDIA и сделать высокопроизводительные видеокарты, AMD необходимо было наращивать пропускную способность памяти. В прошлогодних RX 5700 и 5700 XT использовалась GDDR6 на 256-битной шине с 448 ГБ/с — для 4К этого явно недостаточно. Для увеличения скорости были два очевидных пути.
Во-первых, AMD могла перейти на память HBM2, которую однажды уже использовала в Radeon VII. Второй вариант — применить ту же GDDR6, но с 512-битной шиной. Обе опции гарантировали пропускную способность в районе 1 ТБ/с. Однако компанию не устраивала высокая цена чипов памяти. Чтобы решить эту проблему, был разработан третий вариант.
GPU-инженеры AMD применили неочевидное, но простое решение — увеличили кэш третьего уровня. Эту идею им подсказали разработчики серверных процессоров EPYC. Напомним, что кэш — это сверхбыстрая память, находящаяся в самом видеоядре. Обычно она очень маленькая, в районе 2–4 МБ. Но в картах 6000-й серии ее сделали просто огромной — целых 128 МБ.
Графический чип Navy21
Чтобы разместить такой объем, пришлось вчетверо сократить компоновку самого L3-кэша. Тут и пригодились разработки для серверов. Infinity Cache настолько быстрая, что может поднять пропускную способность всех 16 ГБ памяти. Это происходит благодаря тому, что она видна всему графическому ядру и обеспечивает мгновенный доступ.
Удалось не только догнать, но и обойти конкурента в лице NVIDIA. Топовые GeForce RTX 3090 и RTX 3080 имеют 384-битную и 320-битную шину. Это позволяет им развивать пропускную способность до 936 ГБ/с и 760 ГБ/с соответственно. Для этого «зеленым» пришлось сотрудничать с Micron, чтобы разработать новый сверхбыстрый тип памяти — GDDR6X.
AMD же установила на все флагманские модели (RX 6900 XT, RX 6800 XT, RX 6800) «прошлогоднюю» 256-битную память GRRD6. Но, благодаря Infinity Cache, ее пропускную способность удалось увеличить до невероятных 1664 ГБ/с. По итогу, новые Radeon оказались не так уж дороги в производстве, при этом они имеют высокую энергоэффективность и производительность.
Smart Access Memory
Еще одна новая технология от AMD — это Smart Access Memory. На презентации ее представляли как нечто эксклюзивное, доступное только для новых процессоров Ryzen 5000-й серии и видеокарт RX 6000.
На деле это был лишь маркетинговый ход. Оказалось, что SAM — это старая фишка, которую раньше применяли в игровых консолях. На самом деле, она основана на достаточно древних спецификациях PCI-e. Коротко говоря, Smart Access Memory позволяет центральному процессору использовать весь объем видеопамяти графической платы, что помогает избегать ненужного копирования данных в ОЗУ. Раньше, в обычных ПК на базе Windows, было ограничение в 256 МБ.
В оптимизированных играх заявлен прирост от 5 до 11%
Когда выяснилось, что новая технология — это никакой не эксклюзив, а лишь открытый стандарт, NVIDIA сразу начала разработку собственного программного решения. Оно будет доступно как для процессоров Intel, так и для Ryzen (если AMD не станет возражать). Пока что заявлена поддержка видеокарт 3000-й серии. Возможно, в будущем ее получат и прошлые поколения GeForce.
Сложилась странная ситуация: AMD традиционно выступала за открытые технологии, а NVIDIA старалась использовать проприетарное программное обеспечение. Но сейчас получается, что Smart Access Memory поддерживает только новейшие ЦП серии 5000, игнорируя популярные модели прошлых поколений (например, Ryzen 3600). А грядущий аналог от «зеленых» позволит видеокартам GeForce работать с любыми современными процессорами.
Кэш память в компьютере – что это такое и где она может находиться?
Всем привет! Сегодня рассмотрим, что такое кэш в компьютере, для чего нужна кэш память и виды кэша в ПК.
Где в компьютере находится кэш память
Если речь заходит об этом типе памяти, чаще всего подразумевается кэш память процессора. Одно это — не единственный компонент ПК, где используется такая опция. Применяется она также в жестком диске и видеокарте. Об этом — далее.
Кэш процессора
Или, как его еще называют, сверхоперативная память. Используется для ускорения доступа к компьютерной памяти — системным компонентам и элементам кода, которые чаще всего используются для выполнения различных вычислительных операций.
Базируется на небольшой по размерам, но сверхбыстрой памяти типа SDRAM. Как правило, такой компонент реализован на кристалле процессора.
Когда ЦП требуется определенная часть какого-либо кода, он первым делом проверяет, нет ли его в кэше. При наличии необходимых данных, процессор выполняет вычисления, не обращаясь к оперативке.
Простыми словами, если привести аналогию, этот тип памяти — ящик стола в кабинете важной шишки, в котором лежат печати «Запретить» и «Не пущать». Так как челобитные от посетителей (выполняемые команды), почти всегда отклоняются, поэтому для вердикта хозяину кабинета достаточно открыть этот ящик и взять подходящую печать.
Если в редких случаях выносится положительный вердикт, чиновнику приходится проделать целых 5 шагов к шкафу в дальнем углу кабинета (ОЗУ) и столько же обратно, чтобы взять печать «Одобрить». Вот как-то так.У современных процессоров есть как минимум три уровня кэша — каждый под конкретные данные:
Многоуровневый кэш в процессорах принято обозначать L1, L2, L3.Их размер влияет на стоимость «камня» — чем они больше, тем этот компонент компьютера обойдется дороже.
Пользователей, которые морально не готовы к апгрейду и размышляют, как его увеличить, разочарую: это невозможно, так как структура создана на кристалле раз и навсегда.
Сверхпамять — одна из «священных коров» маркетинга: юзерам, которые не сильно разбираются в таких нюансах, можно втюхивать низкопроизводительные процессоры с увеличенным объемом кэша по завышенным ценам.
Палю тему: никакая сверхпамять не заменит тактовой частоты «камня» и количества ядер. Если за те же деньги стоит выбор «или-или», выбирайте более производительный процессор — тот, у которого больше ядер, выше тактовая частота, или лучше все и сразу. Вот!
Еще более детальнее о том, что такое кэш память процессора, читайте здесь.
Кэш жесткого диска
По-другому его еще называют буферной памятью. Предназначена она, фактически, для тех же целей, что и в описанном выше случае: хранить данные, к которым чаще всего обращаются ЦП или ОЗУ.
Необходимость в наличии такого хранилища вызвана разницей в скорости чтения данных: из микросхемы RAM получить их можно гораздо быстрее, чем с поверхности магнитного диска с помощью считывающей головки.
На эффективность этой опции в том числе влияет и пропускная способность шины: буфер жесткого диска SATA III будет работать несколько быстрее, чем SATA II. Технология хорошо себя проявляет при работе с малыми объемами данных, но при чтении «тяжелых» файлов ее целесообразность под большим сомнением.
Объем кэша в современном винчестере — от 8 до 64 Мб. Иногда попадаются «экзотические» девайсы, у которых 128 или 256 Мб буферной памяти. Стоит он существенно дороже и позиционируется как супер-пупер-топ.
Переплачивать лично я особого смысла не вижу. Хотите шустрый накопитель — ставьте SSD.
Кэш графического ускорителя
Единственный тип, к которому пока не слишком близко подобрались маркетологи. Впрочем, у топовых видеокарт и так масса характеристик, которые позволяют накинуть пару тысяч к ценнику.
Еще этот тип называют видеопамятью. Как правило, в современных графических ускорителях используется особый тип ОЗУ — GDDR5. В среднем, ее объем — от 1 до 6 Гб. Такой размер обусловлен тем, что графические файлы, как правило, «тяжелые» — все эти модельки персонажей, техники, локации, текстуры и тому подобное.
Частый «развод» неопытного пользователя заключается в акцентировании внимания на объеме видеопамяти — например, если установлено 4 Гб, то это уже крутая видяха.
Меж тем сегодня можно найти девайсы из бюджетного сегмента, у которых 4 Гб GDDR на борту. Сложно назвать их мощными или производительными. Обращать внимание, в первую очередь, следует не на объем видеопамяти, а на ее частоту и частоту графического процессора.Как это работает? Чтобы не отрендеривать каждый раз повторно одни и те же объекты, они хранятся в памяти видеокарты. Например, сам персонаж (а в шутерах от первого лица достаточно одного ствола) и локация, где он находится.
А вот уже толпы злодеев, которые атакуют отважного героя, как правило, отрисовываются при их появлении «на сцене». Впрочем, одинаковые модельки можно также хранить в кэше и запускать воспроизведение каждый раз, когда противник появляется на локации.
Это уже зависит от того, насколько хорошо код оптимизировали разработчики — бывает, что игра с неплохой графикой «летает» на среднем по мощности компе. А бывает и наоборот — ничем не примечательная проходная поделка жутко лагает при любых изменениях ситуации на экране.
Естественно, объем видеопамяти и ее частота влияют на стоимость графического ускорителя. Для лучшего понимания темы советую ознакомиться со статьей «Из чего состоит видеокарта для компьютера».
Вот собственно, и все на сегодня. Если у вас появились дополнительные вопросы — не стесняйтесь и задавайте их в комментариях. Буду признателен всем, кто поделится этой публикацией в социальных сетях. До завтра!
Что такое кэш в процессоре и зачем он нужен
Содержание
Содержание
Для многих пользователей основополагающими критериями выбора процессора являются его тактовая частота и количество вычислительных ядер. А вот параметры кэш-памяти многие просматривают поверхностно, а то и вовсе не уделяют им должного внимания. А зря!
В данном материале поговорим об устройстве и назначении сверхбыстрой памяти процессора, а также ее влиянии на общую скорость работы персонального компьютера.
Предпосылки создания кэш-памяти
Любому пользователю, мало-мальски знакомому с компьютером, известно, что в составе ПК работает сразу несколько типов памяти. Это медленная постоянная память (классические жесткие диски или более быстрые SSD-накопители), быстрая оперативная память и сверхбыстрая кэш-память самого процессора. Оперативная память энергозависимая, поэтому каждый раз, когда вы выключаете или перезагружаете компьютер, все хранящиеся в ней данные очищаются, в отличие от постоянной памяти, в которой данные сохраняются до тех пор, пока это нужно пользователю. Именно в постоянную память записаны все программы и файлы, необходимые как для работы компьютера, так и для комфортной работы за ним.
Каждый раз при запуске программы из постоянной памяти, ее наиболее часто используемые данные или вся программа целиком «подгружаются» в оперативную память. Это делается для ускорения обработки данных процессором. Считывать и обрабатывать данные из оперативной памяти процессор будет значительно быстрей, а, следовательно, и система будет работать значительно быстрее в сравнении с тем, если бы массивы данных поступали напрямую из не очень быстрых (по меркам процессорных вычислений) накопителей.
Если бы не было «оперативки», то процесс считывания напрямую с накопителя занимал бы непозволительно огромное, по меркам вычислительной мощности процессора, время.
Но вот незадача, какой бы быстрой ни была оперативная память, процессор всегда работает быстрее. Процессор — это настолько сверхмощный «калькулятор», что произвести самые сложные вычисления для него — это даже не доля секунды, а миллионные доли секунды.
Производительность процессора в любом компьютере всегда ограничена скоростью считывания из оперативной памяти.
Процессоры развиваются так же быстро, как память, поэтому несоответствие в их производительности и скорости сохраняется. Производство полупроводниковых изделий постоянно совершенствуется, поэтому на пластину процессора, которая сохраняет те же размеры, что и 10 лет назад, теперь можно поместить намного больше транзисторов. Как следствие, вычислительная мощность за это время увеличилась. Впрочем, не все производители используют новые технологии для увеличения именно вычислительной мощности. К примеру, производители оперативной памяти ставят во главу угла увеличение ее емкости: ведь потребитель намного больше ценит объем, нежели ее быстродействие. Когда на компьютере запущена программа и процессор обращается к ОЗУ, то с момента запроса до получения данных из оперативной памяти проходит несколько циклов процессора. А это неправильно — вычислительная мощность процессора простаивает, и относительно медленная «оперативка» тормозит его работу.
Такое положение дел, конечно же, мало кого устраивает. Одним из вариантов решения проблемы могло бы стать размещение блока сверхбыстрой памяти непосредственно на теле кристалла процессора и, как следствие, его слаженная работа с вычислительным ядром. Но проблема, мешающая реализации этой идеи, кроется не в уровне технологий, а в экономической плоскости. Такой подход увеличит размеры готового процессора и существенно повысит его итоговую стоимость.
Объяснить простому пользователю, голосующему своими кровными сбережениями, что такой процессор самый быстрый и самый лучший, но за него придется отдать значительно больше денег — довольно проблематично. К тому же существует множество стандартов, направленных на унификацию оборудования, которым следуют производители «железа». В общем, поместить оперативную память прямо на кристалл процессора не представляется возможным по ряду объективных причин.
Как работает кэш-память
Как стало понятно из постановки задачи, данные должны поступать в процессор достаточно быстро. По меркам человека — это миг, но для вычислительного ядра — достаточно большой промежуток времени, и его нужно как можно эффективнее минимизировать. Вот здесь на выручку и приходит технология, которая называется кэш-памятью. Кэш-память — это сверхбыстрая память, которую располагают прямо на кристалле процессора. Извлечение данных из этой памяти не занимает столько времени, сколько бы потребовалось для извлечения того же объема из оперативной памяти, следовательно, процессор молниеносно получает все необходимые данные и может тут же их обрабатывать.
Кэш-память — это, по сути, та же оперативная память, только более быстрая и дорогая. Она имеет небольшой объем и является одним из компонентов современного процессора.
На этом преимущества технологии кэширования не заканчиваются. Помимо своего основного параметра — скорости доступа к ячейкам кэш-памяти, т. е. своей аппаратной составляющей, кэш-память имеет еще и множество других крутых функций. Таких, к примеру, как предугадывание, какие именно данные и команды понадобятся пользователю в дальнейшей работе и заблаговременная загрузка их в свои ячейки. Но не стоит путать это со спекулятивным исполнением, в котором часть команд выполняется рандомно, дабы исключить простаивание вычислительных мощностей процессора.
Спекулятивное исполнение — метод оптимизации работы процессора, когда последний выполняет команды, которые могут и не понадобиться в дальнейшем. Использование метода в современных процессорах довольно существенно повышает их производительность.
Речь идет именно об анализе потока данных и предугадывании команд, которые могут понадобиться в скором будущем (попадании в кэш). Это так называемый идеальный кэш, способный предсказать ближайшие команды и заблаговременно выгрузить их из ОЗУ в ячейки сверхбыстрой памяти. В идеале их надо выбирать таким образом, чтобы конечный результат имел нулевой процент «промахов».
Но как процессор это делает? Процессор что, следит за пользователем? В некоторой степени да. Он выгружает данные из оперативной памяти в кэш-память для того, чтобы иметь к ним мгновенный доступ, и делает это на основе предыдущих данных, которые ранее были помещены в кэш в этом сеансе работы. Существует несколько способов, увеличивающих число «попаданий» (угадываний), а точнее, уменьшающих число «промахов». Это временная и пространственная локальность — два главных принципа кэш-памяти, благодаря которым процессор выбирает, какие данные нужно поместить из оперативной памяти в кэш.
Временная локальность
Процессор смотрит, какие данные недавно содержались в его кэше, и снова помещает их в кэш. Все просто: высока вероятность того, что выполняя какие-либо задачи, пользователь, скорее всего, повторит эти же действия. Процессор подгружает в ячейки сверхбыстрой памяти наиболее часто выполняемые задачи и сопутствующие команды, чтобы иметь к ним прямой доступ и мгновенно обрабатывать запросы.
Пространственная локальность
Принцип пространственной локальности несколько сложней. Когда пользователь выполняет какие-то действия, процессор помещает в кэш не только данные, которые находятся по одному адресу, но еще и данные, которые находятся в соседних адресах. Логика проста — если пользователь работает с какой-то программой, то ему, возможно, понадобятся не только те команды, которые уже использовались, но и сопутствующие «слова», которые располагаются рядом.
Набор таких адресов называется строкой (блоком) кэша, а количество считанных данных — длиной кэша.
При пространственной локации процессор сначала ищет данные, загруженные в кэш, и, если их там не находит, то обращается к оперативной памяти.
Иерархия кэш-памяти
Любой современный процессор имеет в своей структуре несколько уровней кэш-памяти. В спецификации процессора они обозначаются как L1, L2, L3 и т. д.
Если провести аналогию между устройством кэш-памяти процессора и рабочим местом, скажем столяра или представителя любой другой профессии, то можно увидеть интересную закономерность. Наиболее востребованный в работе инструмент находится под рукой, а тот, что используется реже, расположен дальше от рабочей зоны.
Так же организована и работа быстрых ячеек кэша. Ячейки памяти первого уровня (L1) располагаются на кристалле в непосредственной близости от вычислительного ядра. Эта память — самая быстрая, но и самая малая по объему. В нее помещаются наиболее востребованные данные и команды. Для передачи данных оттуда потребуется всего около 5 тактовых циклов. Как правило, кэш-память первого уровня состоит из двух блоков, каждый из которых имеет размер 32 КБ. Один из них — кэш данных первого уровня, второй — кэш инструкций первого уровня. Они отвечают за работу с блоками данных и молниеносное обращение к командам.
Кэш второго и третьего уровня больше по объему, но за счет того, что L2 и L3 удалены от вычислительного ядра, при обращении к ним будут более длительные временные интервалы. Более наглядно устройство кэш-памяти проиллюстрировано в следующем видео.
Кэш L2, который также содержит команды и данные, занимает уже до 512 КБ, чтобы обеспечить необходимый объем данных кэшу нижнего уровня. Но на обработку запросов уходит в два раза больше времени. Кэш третьего уровня имеет размеры уже от 2 до 32 МБ (и постоянно увеличивается вслед за развитием технологий), но и его скорость заметно ниже. Она превышает 30 тактовых циклов.
Процессор запрашивает команды и данные, обрабатывая их, что называется, параллельными курсами. За счет этого и достигается потрясающая скорость работы. В качестве примера рассмотрим процессоры Intel. Принцип работы таков: в кэше хранятся данные и их адрес (тэг кэша). Сначала процессор ищет их в L1. Если информация не найдена (возник промах кэша), то в L1 будет создан новый тэг, а поиск данных продолжится на других уровнях. Для того, чтобы освободить место под новый тэг, информация, не используемая в данный момент, переносится на уровень L2. В результате данные постоянно перемещаются с одного уровня на другой.
С кэшем связан термин «сет ассоциативности». В L1 блок данных привязан к строкам кэша в определенном сете (блоке кэша). Так, например, 8-way (8 уровень ассоциативности) означает, что один блок может быть привязан к 8 строкам кэша. Чем выше уровень, тем выше шанс на попадание кэша (процессор нашел требуемую информацию). Есть и недостатки. Главные — усложнение процесса и соответствующее снижение производительности.
Также при хранении одних и тех же данных могут задействоваться различные уровни кэша, например, L1 и L3. Это так называемые инклюзивные кэши. Использование лишнего объема памяти окупается скоростью поиска. Если процессор не нашел данные на нижнем уровне, ему не придется искать их на верхних уровнях кэша. В этом случае задействованы кэши-жертвы. Это полностью ассоциативный кэш, который используется для хранения блоков, вытесненных из кэша при замене. Он предназначен для уменьшения количества промахов. Например, кэши-жертвы L3 будут хранить информацию из L2. В то же время данные, которые хранятся в L2, остаются только там, что помогает сэкономить место в памяти, однако усложняет поиск данных: системе приходится искать необходимый тэг в L3, который заметно больше по размеру.
В некоторых политиках записи информация хранится в кэше и основной системной памяти. Современные процессоры работают следующим образом: когда данные пишутся в кэш, происходит задержка перед тем, как эта информация будет записана в системную память. Во время задержки данные остаются в кэше, после чего их «вытесняет» в ОЗУ.
Итак, кэш-память процессора — очень важный параметр современного процессора. От количества уровней кэша и объема ячеек сверхбыстрой памяти на каждом из уровней, во многом зависит скорость и производительность системы. Особенно хорошо это ощущается в компьютерах, ориентированных на гейминг или сложные вычисления.