Что такое кэш процессора: Что такое кэш? L1 vs L2 vs L3 — i2HARD

Содержание

Что такое кэш в процессоре и зачем он нужен | Процессоры | Блог

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

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

Предпосылки создания кэш-памяти

Любому пользователю, мало-мальски знакомому с компьютером, известно, что в составе ПК работает сразу несколько типов памяти. Это медленная постоянная память (классические жесткие диски или более быстрые 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, который заметно больше по размеру.

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

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

На что влияет кэш процессора L1 L2 L3

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

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

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

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

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

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

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

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

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

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

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

Уровни кэша процессора — L1, L2 и L3

Веся кэш память процессора разделена на три уровни: L1, L2 и L3. Эта иерархия тоже основана на скорости работы кэша, а также на его объеме.

  • L1 Cache (кэш первого уровня) — это максимально быстрый тип кэша в процессоре. С точки зрения приоритета доступа, этот кэш содержит те данные, которые могут понадобиться программе для выполнения определенной инструкции;
  • L2 Cache (кэш второго уровня процессора) — медленнее, по сравнению L1, но больше по размеру. Его объем может быть от 256 килобайт до восьми мегабайт. Кэш L2 содержит данные, которые, возможно, понадобятся процессору в будущем. В большинстве современных процессоров кэш L1 и L2 присутствуют на самих ядрах процессора, причём каждое ядро получает свой собственный кэш;
  • L3 Cache (кэш третьего уровня) — это самый большой и самый медленный кэш. Его размер может быть в районе от 4 до 50 мегабайт. В современных CPU на кристалле выделяется отдельное место под кэш L3.

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

Для чего нужен кэш в процессоре?

Пришло время ответить на главный вопрос этой статьи, на что влияет кэш процессора? Данные поступают из ОЗУ в кэш L3, затем в L2, а потом в L1. Когда процессору нужны данные для выполнения операции, он пытается их найти в кэше L1 и если находит, то такая ситуация называется попаданием в кэш. В противном случае поиск продолжается в кэше L2 и L3. Если и теперь данные найти не удалось, выполняется запрос к оперативной памяти.

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

Раньше, в конструкции процессоров кєши L2 и L3 были были вынесены за пределы процессора, что приводило к высоким задержкам. Однако уменьшение техпроцесса, по которому изготавливаются процессоры позволяет разместить миллиарды транизисторов в пространстве, намного меньшем, чем раньше. Как результат, освободилось место, чтобы разместить кэш как можно ближе к ядрам, что ещё больше уменьшает задержку.

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

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

Представьте, что процессор загружает данные из кэша L1 100 раз подряд. Если процент попаданий в кэш будет 100%, процессору понадобиться 100 наносекунд чтобы получить эти данные. Однако, как только процент попаданий уменьшится до 99%, процессору нужно будет извлечь данные из кэша L2, а там уже задержка 10 наносекунд. Получится 99 наносекунд на 99 запросов и 10 наносекунд на 1 запрос. Поэтому уменьшение процента попаданий в кэш на 1% снижает производительность процессора 10%.

В реальном времени процент попаданий в кэш находится между 95 и 97%. Но как вы понимаете, разница в производительности между этими показателями не в 2%, а в 14%. Имейте в виду, что в примере, мы предполагаем, что прощенные данные всегда есть в кэше уровня L2, в реальной жизни данные могут быть удалены из кэша, это означает, что их придется получать из оперативной памяти, у которой задержка 80-120 наносекунд. Здесь разница между 95 и 97 процентами ещё более значительная.

Низкая производительность кэша в процессорах AMD Bulldozer и Piledriver была одной из основных причин, почему они проигрывали процессорам Intel. В этих процессорах кэш L1 разделялся между несколькими ядрами, что делало его очень не эффективным. В современных процессорах Ryzen такой проблемы нет.

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

Выводы

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как работает CPU Cache и что такое L1, L2 и L3?

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

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

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

Итак, насколько важен кэш процессора и как он работает?

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

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

Далее у нас есть оперативная память, обычно известная как RAM. Это намного быстрее, чем основное хранилище.

Наконец, процессор имеет даже более быстрые блоки памяти внутри себя, которые мы называем кешем.

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

Кэш-память — это статическая память (SRAM) по сравнению с системной памятью, которая является динамической памятью (DRAM). Статическая RAM — это та, которая может хранить данные без необходимости постоянного обновления, в отличие от DRAM, что делает SRAM идеальным для использования в кэш-памяти.

Как работает CPU Cache?

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

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

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

Кеш затем выполняет перемотку данных внутри ЦП. Иерархия памяти существует и в кеше.

(Если вам интересно узнать, как работает сам ЦП, ознакомьтесь с нашей статьей, объясняющей основы работы ЦП.

.)

Уровни кэша: L1, L2 и L3

Кэш процессора разделен на три основных уровня: L1, L2 и L3. Иерархия здесь опять-таки в соответствии со скоростью и, следовательно, размером кэша.

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

Что касается размера, кэш L1 обычно занимает до 256 КБ. Тем не менее, некоторые действительно мощные процессоры теперь принимают его около 1 МБ. Некоторые серверные чипсеты (например, топовые процессоры Intel Xeon) теперь имеют где-то 1-2 МБ кэш-памяти первого уровня.

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

Изображение предоставлено Intel

Кэш L2 (уровень 2) медленнее, чем кэш L1, но больше по размеру. Его размер обычно варьируется от 256 КБ до 8 МБ, хотя более новые и мощные процессоры, как правило, выходят за рамки этого. Кэш второго уровня содержит данные, которые, вероятно, будут доступны для ЦП в следующий раз. В большинстве современных процессоров кэши L1 и L2 присутствуют на самих ядрах процессора, причем каждое ядро ​​получает свой собственный кэш.

Кэш-память третьего уровня (уровень 3) является самой большой кэш-памятью, а также самой медленной. Он может варьироваться от 4 до 50 МБ. Современные ЦП имеют выделенное пространство на кристалле ЦП для кеша L3, и оно занимает большую часть пространства.

Кэш Хит или Мисс и Латентность

Данные поступают из ОЗУ в кэш L3, затем в L2 и, наконец, в L1. Когда процессор ищет данные для выполнения операции, он сначала пытается найти их в кэше L1. Если процессор может его найти, условие называется попаданием в кэш. Затем он находит его в L2, а затем в L3.

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

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

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

,

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

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

Будущее Кеша

Дизайн кэша постоянно развивается, особенно когда память становится дешевле, быстрее и плотнее. Intel и AMD внесли свою долю экспериментов с дизайном кеша, а Intel даже экспериментировала с кешем L4. Рынок процессоров движется вперед быстрее, чем когда-либо.

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

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

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

,

КЭШ-ПАМЯТЬ • Большая российская энциклопедия

  • В книжной версии

    Том 16. Москва, 2010, стр. 523

  • Скопировать библиографическую ссылку:


Авторы: В. В. Шилов

КЭШ-ПА́МЯТЬ, кеш-па­мять (англ. cache – тай­ный склад, за­пас), уст­рой­ст­во бы­ст­рой (сверх­опе­ра­тив­ной) про­ме­жу­точ­ной па­мя­ти ком­пь­ю­те­ра. В К.-п. вре­мен­но по­ме­ща­ют­ся наи­бо­лее час­то ис­поль­зуе­мые дан­ные, бла­го­да­ря че­му су­ще­ст­вен­но со­кра­ща­ет­ся вре­мя дос­ту­па про­цес­сора к ко­ман­дам и дан­ным, по­сто­ян­но хра­ня­щим­ся в ос­нов­ной (опе­ра­тив­ной) па­мя­ти. В совр. про­цес­со­рах К.-п. де­лит­ся на неск. уров­ней (до трёх). К.-п. 1-го уров­ня (L1) ра­бо­та­ет с так­то­вой час­то­той про­цес­со­ра, вре­мя дос­ту­па к хра­ня­щим­ся в ней дан­ным со­став­ля­ет 2–4 так­та, объ­ём, как пра­ви­ло, неск. де­сят­ков Кбайт. К.-п. 2-го уров­ня (L2) име­ет вре­мя дос­ту­па 7–20 так­тов и объ­ём от не­сколь­ких со­тен Кбайт до не­сколь­ких Мбайт. К.-п. L1 и L2 ап­па­рат­но реа­ли­зу­ют­ся в мик­ро­про­цес­со­ре. К.-п. 3-го уров­ня (L3) обыч­но ис­поль­зу­ет­ся в сер­вер­ных сис­те­мах, име­ет наи­мень­шее бы­ст­ро­дей­ст­вие и наи­боль­ший объ­ём, мон­ти­ру­ет­ся от­дель­но от мик­ро­про­цес­со­ра.

Ис­поль­зуя К.-п., про­цес­сор пе­ред вы­пол­не­ни­ем ко­ман­ды ана­ли­зи­ру­ет со­стоя­ние сво­их ре­ги­ст­ров дан­ных; в слу­чае от­сут­ст­вия в них не­об­хо­ди­мых дан­ных он об­ра­ща­ет­ся к К.-п. L1, а за­тем к К.-п. L2. При от­сут­ст­вии дан­ных в К.-п. (та­кая си­туа­ция на­зы­ва­ет­ся про­ма­хом) про­цес­сор об­ра­ща­ет­ся к опе­ра­тив­ной па­мя­ти, а ес­ли их нет и там, счи­ты­ва­ет с жё­ст­ко­го дис­ка. Ка­ж­дый про­мах вы­зы­ва­ет за­мед­ле­ние ра­бо­ты про­цес­со­ра, по­сколь­ку он вы­ну­ж­ден об­ра­щать­ся к бо­лее мед­лен­но­му уров­ню па­мя­ти. Пред­ва­рит. вы­бор­ка дан­ных по спец. ал­го­рит­мам по­зво­ля­ет умень­шить ве­ли­чи­ну про­ма­хов до 10%. Эф­фек­тив­ность К.-п. за­ви­сит от раз­ме­ра её стро­ки (т. н. кэш-стро­ка, т. е. блок дан­ных фик­си­ро­ван­но­го раз­ме­ра, со­стоя­щий, напр., из че­ты­рёх слов, дли­ной 32 или 64 би­та ка­ж­дое), ас­со­циа­тив­но­сти (ко­ли­че­ст­ва строк К.-п., свя­зан­ных с од­ной ячей­кой опе­ра­тив­ной па­мя­ти), ал­го­рит­ма за­ме­ще­ния строк при за­пол­не­нии К.-п. и др. В свя­зи с этим вы­де­ля­ют пря­мо­ад­ре­суе­мую, час­тич­но ас­со­циа­тив­ную, пол­но­стью ас­со­циа­тив­ную К.-п. Со­че­та­ние пря­мо­ад­ре­суе­мой К.-п. с па­мя­тью боль­шей ас­со­циа­тив­ности да­ёт разл. ви­ды гиб­рид­ной К.-п. (кэш-про­ма­хов, кэш-за­ме­ще­ний, кэш-пе­ре­хо­дов и др.).

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

AMD показала простой способ увеличения кеша для своих процессоров

В рамках выставки Computex 2021 компания AMD показала необычный Ryzen 9 5900X. Его отличие заключалось в том, что он содержал дополнительную микросхему SRAM объёмом 64 МБ, которая выступала в качестве дополнительной кеш-памяти L3. 

В данном случае нам демонстрировали, конечно, не микросхему, а технологию, благодаря которой такой улучшенный процессор смог появиться. Речь о трёхмерной компоновке, позволившей добавить микросхему сверху процессорного чиплета, а также технологии гибридного соединения V-Cache, которая отвечает за объединение и ускорение суммарной кеш-памяти L3, которая получается при соединении внешней микросхемы с внутренним кешем процессора. К слову, общая пропускная способность кеш-памяти третьего уровня в таком случае повышается до 2 ТБ/с, что даже быстрее кеш-памяти первого уровня, хотя задержки будут выше. 

Судя по всему, у серийных продуктов такой кеш будет лишь в случае топовых моделей. В частности, для CPU с 12 и 16 ядрами речь идёт о 64 МБ такой кеш-памяти для каждого чиплета, то есть суммарно о 192 МБ кеш-памяти третьего уровня (включая 64 МБ собственной памяти)!  

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

Компания говорит в среднем о 15% прироста, но с разбросом от 4% до 25%. Как будут вести себя приложения, покажут тесты.  

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

AMD 3D Chiplet Technology: A packaging breakthrough for high-performance computing.

— AMD (@AMD) June 1, 2021

Также пока открыт вопрос того, в рамках какой линейки мы увидим такие CPU. Но слухи говорят о выходе осенью процессоров Ryzen 6000 с архитектурой Zen 3+, и они вполне подходят. К тому же, в этом случае обновлённые процессоры будут достаточно сильно отличаться от текущих.  

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

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

Практика размещения кэш-памяти ЦП на микропроцессорах для немедленного доступа к памяти для ускорения доступа к данным для процессора была проделана с момента создания компьютерного процессора 80486, сделанного в 1989 году, в который был встроен элементарный регистр кэша L1. Большие уровни кэш-памяти L2, которые были непосредственно интегрированы в функциональные возможности процессора, начали использоваться в 1995 году. С 2011 года в некоторых компьютерных системах также существует третий уровень кэш-памяти ЦП, известный как L3, доступ к которому осуществляется до основной оперативной памяти системы. сам используется. Каждый уровень кэша должен быть больше и медленнее по мере увеличения его расстояния от микропроцессора. Самые ранние уровни кэша ЦП L1 составляли 8 килобайт, при этом размер кэша L2 на компьютерах по состоянию на 2007 год уже превышал ограничение в 6 мегабайт, а некоторые системы по состоянию на 2011 год имели буфер кэш-памяти L4 размером до 64 мегабайт.

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

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

Большой объем кэш-памяти процессора повысит производительность микропроцессора до такой степени, что он сможет превзойти более быстрый процессор с меньшим объемом встроенной кэш-памяти в системе. Скорость шины на передней панели (FSB) также играет важную роль в определении производительности микропроцессора. Скорость шины в целом традиционно была узким местом для характеристик производительности на персональных компьютерах (ПК), где обработка должна передаваться назад и вперед по шине в память. Высокие частоты FSB с 2011 года для процессоров Core 2 находятся на уровне 1600 мегагерц, или 1600 миллионов циклов в секунду, компьютерных наборов команд.

ДРУГИЕ ЯЗЫКИ

Кэш-память процессора(Cache CPU)

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

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

Функция кэш-памяти

В чем же состоит причина, которая побудила разработчиков компьютеров использовать специальную память для процессора? Разве возможностей ОЗУ для компьютера недостаточно?

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

Вообще говоря, существуют две основные технологии микросхем памяти – статическая память и динамическая память. Не углубляясь в подробности их устройства, скажем лишь, что статическая память, в отличие от динамической, не требует регенерации; кроме того, в статической памяти для одного бита информации используется 4-8 транзисторов, в то время как в динамической – 1-2 транзистора. Соответственно динамическая память гораздо дешевле статической, но в то же время и намного медленнее. В настоящее время микросхемы ОЗУ изготавливаются на основе динамической памяти.

Примерная эволюция соотношения скорости работы процессоров и ОЗУ:

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

Именно поэтому был разработан разумный компромисс. Основная часть ОЗУ так и осталась динамической, в то время как у процессора появилась своя быстрая кэш-память, основанная на микросхемах статической памяти. Ее объем сравнительно невелик – например, объем кэш-памяти второго уровня составляет всего несколько мегабайт. Впрочем, тут стоить вспомнить о том, что вся оперативная память первых компьютеров IBM PC составляла меньше 1 МБ.

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

История кэш-памяти

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

Впервые кэш-память объемом всего в 16 КБ появилась в ПК на базе процессора i80386. На сегодняшний день современные процессоры используют различные уровни кэша, от первого (самый быстрый кэш самого маленького объема – как правило, 128 КБ) до третьего (самый медленный кэш самого большого объема – до десятков МБ).

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

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

Архитектуры и принципы работы кэша

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

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

Порядок поиска процессором информации  в памяти:

Именно таким образом Процессор осуществляет поиск инфоромации

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

Схема организации взаимодействия ядра процессора, кэша и ОЗУ:

Кэш-контроллер является ключевым элементом связи процессора, ОЗУ и Кэш-памяти

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

Методы записи кэша

Существует два основных метода записи информации в кэш-память:

  1. Метод write-back (обратная запись) – запись данных производится сначала в кэш, а затем, при наступлении определенных условий, и в ОЗУ.
  2. Метод write-through (сквозная запись) – запись данных производится одновременно в ОЗУ и в кэш.

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

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

  1. Кэш с прямым отображением – определенный участок кэша отвечает за определенный участок ОЗУ
  2. Полностью ассоциативный кэш – любой участок кэша может ассоциироваться с любым участком ОЗУ
  3. Смешанный кэш (наборно-ассоциативный)

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

Заключение

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

Порекомендуйте Друзьям статью:

Насколько важен кэш процессора? | Small Business

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

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

Кэш ЦП и Память

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

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

Местоположение ссылки

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

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

Различные уровни кеш-памяти

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

  • Кэш L1 — это основной кэш. Он быстрый, но при этом небольшой, поэтому он ограничен в том, что в нем можно хранить.Обычно он встроен в микросхему процессора.
  • Кэш L2 — также известный как вторичный кэш, кэш L2 может быть встроен в чип процессора или в отдельный чип с высокоскоростной шиной, которая соединяет его с процессором.
  • Кэш L3 — Этот кэш процессора представляет собой специализированную память, которая может служить резервной копией для ваших кешей L1 и L2. Это может быть не так быстро, но повышает производительность L1 и L2.

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

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

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

Увеличение кэш-памяти

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

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

Другие кэши

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

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

Отображение кэш-памяти

Помимо иерархии L1, L2 и L3, кэш ЦП также использует конфигурации для управления записью данных.Существует три различных типа конфигураций:

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

Выключение питания и память

Если вы знаете что-нибудь о памяти с произвольным доступом , или ОЗУ, вы знаете, что она временно хранит информацию. Чем больше оперативной памяти у вашего компьютера, тем меньше работы вашему процессору приходится выполнять для выполнения задач, что предотвращает нежелательные замедления. На компьютере есть два основных типа ОЗУ: динамическое ОЗУ (DRAM) и статическое ОЗУ (SRAM).

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

Кэш и основная память

Как и DRAM, кэш ЦП теряет свою память при выключении компьютера. Включите его снова, и ваш кеш начнет собирать информацию с нуля.

Между DRAM и кеш-памятью ЦП есть некоторые различия:

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

Кэш против виртуальной памяти

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

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

Ускорение работы существующего компьютера

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

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

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

Покупка нового компьютера

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

Ваш процессор также будет сильно влиять на производительность вашего компьютера. Лучше всего подойдет процессор Intel или AMD . Эксперты рекомендуют процессор Intel 9-го поколения Core, если вы планируете играть, и AMD Ryzen 2000 подойдет, если вы планируете редактировать видео. Если вы просто выполняете стандартные задачи, любая из них, скорее всего, значительно повысит объем кэш-памяти вашего микропроцессора.

Установка дополнительной оперативной памяти

Если вы просто хотите повысить производительность, увеличение объема оперативной памяти — один из самых простых способов поднять настроение вашему компьютеру.Во-первых, вам нужно убедиться, что ваша материнская плата поддерживает скорость и размер оперативной памяти, которую вы будете использовать, а также ее тип. Скорее всего, вы будете в безопасности, если будете использовать оперативную память DDR4 с диапазоном от 2133 МГц до 4700 МГц и . Старые ПК часто подходят только к DDR3, поэтому вам может потребоваться вложить средства в более старые модули, если вы хотите остаться с вашей нынешней материнской платой.

Вот шаги, которые необходимо предпринять, чтобы установить больше ОЗУ:

  • Выключите систему и отсоедините кабель питания.Отсоедините все остальные кабели от задней панели компьютера.
  • Снимите боковую панель, чтобы вам было легче добраться до разъемов RAM внутри вашего компьютера.
  • Извлечь любую установленную вами оперативную память.
  • Установите новую оперативную память, совместив края со слотами на материнской плате и надавив на них с усилием. Это должно происходить довольно легко. Если нет, возможно, вам нужно перевернуть их на другую сторону.
  • Подвигайте палочки RAM, когда они защелкнулись на месте, чтобы убедиться, что они вставлены до упора.
  • Установите на место боковую панель и снова вставьте все кабели, включая кабель питания.
  • Загрузите вашу систему. Убедитесь, что система регистрирует новый объем ОЗУ.

Как работают кэши ЦП L1 и L2 и почему они являются неотъемлемой частью современных микросхем

Развитие кешей и кеширования — одно из самых значительных событий в истории вычислительной техники.Практически каждое современное ядро ​​ЦП, от чипов со сверхнизким энергопотреблением, таких как ARM Cortex-A5, до Intel Core i9 самого высокого уровня, использует кеши. Даже микроконтроллеры более высокого уровня часто имеют небольшие кэши или предлагают их в качестве дополнительных функций — преимущества производительности слишком велики, чтобы их игнорировать, даже в конструкциях со сверхнизким энергопотреблением.

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

Хотя он работает только до 2000 года, растущие несоответствия 1980-х годов привели к разработке первых кешей ЦП.

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

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

Промах в кэше, с другой стороны, означает, что ЦП вынужден уйти в поисках данных в другом месте. Здесь в игру вступает кеш L2 — он медленнее, но и намного больше. Некоторые процессоры используют инклюзивный дизайн кэша (это означает, что данные, хранящиеся в кэше L1, также дублируются в кеше L2), в то время как другие являются эксклюзивными (то есть два кеша никогда не обмениваются данными).Если данные не могут быть найдены в кеш-памяти L2, ЦП переходит вниз по цепочке к L3 (обычно все еще на кристалле), затем к L4 (если он существует) и к основной памяти (DRAM).

На этой диаграмме показана взаимосвязь между кешем L1 с постоянной частотой попаданий, но большим кешем L2. Обратите внимание, что общая частота совпадений резко возрастает по мере увеличения размера L2. Более крупный, медленный и дешевый L2 может обеспечить все преимущества большого L1, но без потери размера кристалла и энергопотребления. Большинство современных коэффициентов попадания в кэш L1 намного выше теоретических 50 процентов, показанных здесь — Intel и AMD обычно используют коэффициент попадания в кэш 95 процентов или выше.

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

На противоположном конце спектра у нас есть кэши с прямым отображением. Кэш с прямым отображением — это кэш, в котором каждый блок кеша может содержать один и только один блок основной памяти. Этот тип кеша можно искать очень быстро, но, поскольку он отображает 1: 1 в ячейки памяти, у него низкий процент попаданий. Между этими двумя крайностями находятся ассоциативные кэши n- путей. Двухсторонний ассоциативный кеш (L1 Piledriver является двусторонним) означает, что каждый блок основной памяти может отображаться в один из двух блоков кеша.Восьмисторонний ассоциативный кэш означает, что каждый блок основной памяти может находиться в одном из восьми блоков кеша. Кэш инструкций L1 Ryzen является четырехсторонним ассоциативным, а кэш данных L1 — восьмисторонним ассоциативным.

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

Почему кеши ЦП становятся все больше

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

Эта диаграмма из обзора Haswell компании Anandtech полезна, поскольку она иллюстрирует влияние на производительность добавления огромного (128 МБ) кэша L4, а также обычных структур L1 / L2 / L3. Каждая ступенька представляет собой новый уровень кеш-памяти. Красная линия — это чип с L4 — обратите внимание, что для файлов большого размера он все еще почти в два раза быстрее, чем два других чипа Intel.

Тогда может показаться логичным выделять огромное количество ресурсов на кристалле для кеширования, но оказывается, что от этого предельная отдача уменьшается.Кеши большего размера работают медленнее и дороже. При шести транзисторах на бит SRAM (6T) кэш также стоит дорого (с точки зрения размера кристалла и, следовательно, стоимости в долларах). После определенного момента имеет смысл потратить бюджет мощности чипа и количество транзисторов на большее количество исполнительных блоков, лучшее предсказание ветвлений или дополнительные ядра. Вверху истории вы можете увидеть изображение чипа Pentium M (Centrino / Dothan); вся левая сторона кристалла отведена под массивный кэш L2. Так было в последние дни однопоточных ЦП, теперь, когда у нас есть многоядерные чипы и во многих случаях встроенный графический процессор, меньший процент от общего ЦП выделяется для кеширования.

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

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

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

Кадр Haswell-E (щелкните, чтобы увеличить). Повторяющиеся структуры в середине чипа — это 20 МБ общей кэш-памяти третьего уровня.

Теперь предположим, что коэффициент попадания в кэш составляет 99 процентов, но данные, которые фактически необходимы процессору для его 100-го доступа, находятся в L2 с задержкой доступа 10 циклов (10 нс). Это означает, что процессору требуется 99 наносекунд для выполнения первых 99 операций чтения и 10 наносекунд для выполнения сотого. Снижение частоты обращений на 1 процент только что замедлило работу ЦП на 10 процентов.

В реальном мире кэш L1 обычно имеет процент попаданий от 95 до 97 процентов, но влияние этих двух значений на производительность в нашем простом примере составляет не 2 процента — это 14 процентов. Имейте в виду, мы предполагаем, что пропущенные данные всегда находятся в кэше L2. Если данные были удалены из кеша и находятся в основной памяти с задержкой доступа 80–120 нс, разница в производительности между 95 и 97 процентами совпадений может почти удвоить общее время, необходимое для выполнения кода.

Назад, когда семейство AMD Bulldozer сравнивали с процессорами Intel, тема дизайна кэша и влияния на производительность стала очень актуальной. Неясно, насколько низкая производительность Bulldozer может быть объяснена его относительно медленной подсистемой кеширования — помимо относительно высоких задержек, семейство Bulldozer также пострадало от большого количества конфликтов с кешем . Каждый модуль Bulldozer / Piledriver / Steamroller совместно использует свой кэш инструкций L1, как показано ниже:

Кэш используется, когда два разных потока записывают и перезаписывают данные в одном и том же пространстве памяти.Это снижает производительность обоих потоков — каждое ядро ​​вынуждено тратить время на запись своих собственных предпочтительных данных в L1, только для того, чтобы другое ядро ​​быстро перезаписало эту информацию. AMD СТАРЫЙ Steamroller по-прежнему сталкивается с этой проблемой, даже несмотря на то, что AMD увеличила кэш кода L1 до 96 КБ и сделала его трехсторонним ассоциативным вместо двух. Более поздние процессоры Ryzen не разделяют кеш таким образом и не страдают от этой проблемы.

Изображение Anandtech

На этом графике показано, как снизилась частота совпадений Opteron 6276 (оригинальный процессор Bulldozer), когда оба ядра были активны, по крайней мере, в некоторых тестах.Ясно, однако, что конкуренция за кэш — не единственная проблема — 6276 исторически изо всех сил пытался превзойти 6174, даже когда оба процессора имели одинаковую частоту совпадений.

Zen 2 не имеет сегодня подобных недостатков, а общая производительность кеш-памяти и памяти Zen и Zen 2 намного лучше, чем у более старой архитектуры Piledriver.

Современные процессоры также часто имеют очень маленький кэш L0, который часто составляет всего несколько килобайт и используется для хранения микроопераций. И AMD, и Intel используют такой кэш; У Zen кеш-память 2048 µOP, а у Zen 2 — 4096 µOP.Эти крошечные пулы кеш-памяти работают по тем же общим принципам, что и L1 и L2, но представляют собой пул памяти еще меньшего размера, к которому ЦП может обращаться с еще меньшими задержками, чем L1. Часто компании адаптируют эти возможности друг к другу. Zen 1 и Zen + (APU Ryzen 1xxx, 2xxx, 3xxx) имеют кэш инструкций L1 объемом 64 КБ, который имеет 4-сторонний ассоциативный набор, и кэш L0 на 2048 µOP. Zen 2 (процессоры Ryzen 3xxx для настольных ПК, Ryzen Mobile 4xxx) имеет кэш-память L1 размером 32 КБ с 8-позиционным ассоциативным набором и кеш-памятью 4096 µOP.Удвоение ассоциативности набора и размера кэша µOP позволило AMD вдвое сократить размер кэша L1. Подобные компромиссы распространены в конструкциях ЦП.

Caching Out

Структура и дизайн кэша все еще дорабатываются, поскольку исследователи ищут способы выжать более высокую производительность из кешей меньшего размера. До сих пор такие производители, как Intel и AMD, еще не настаивали на увеличении кэшей и не перенесли дизайн на L4. Есть несколько процессоров Intel со встроенной памятью EDRAM, у которых есть кэш L4, но такой подход необычен.Вот почему мы использовали приведенный выше пример Haswell, хотя этот процессор старше. Предположительно, преимущества большого кэша L4 еще не перевешивают затраты для большинства сценариев использования.

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

Сейчас прочитано :

Также ознакомьтесь с нашей серией статей ExtremeTech Explains, чтобы получить более подробное описание самых актуальных на сегодняшний день технических тем.

Как работает кэш ЦП? Что такое кэш L1, L2 и L3?

Компьютерные процессоры в последние годы значительно продвинулись вперед. Транзисторы становятся меньше с каждым годом, и достижения достигают точки, когда закон Мура становится излишним.

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

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

Итак, насколько важен кеш ЦП и как он работает?

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

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

Теперь ваш компьютер имеет внутри несколько типов памяти.

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

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

Наконец, ЦП имеет внутри себя даже более быстрые блоки памяти, известные как кэш памяти ЦП.

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

Компьютерная память также бывает разных типов.

Кэш-память — это форма статической ОЗУ (SRAM), в то время как обычная системная оперативная память известна как динамическая оперативная память (DRAM). Статическая RAM может хранить данные без необходимости постоянного обновления, в отличие от DRAM, что делает SRAM идеальным для кэш-памяти.

Как работает кэш ЦП?

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

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

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

Затем кэш памяти выполняет обмен данными внутри ЦП. Иерархия памяти существует и в кеш-памяти ЦП.

По теме: что такое процессор и для чего он нужен?

Уровни кэш-памяти ЦП: L1, L2 и L3

Кэш-память ЦП разделена на три «уровня»: L1, L2 и L3.Иерархия памяти снова соответствует скорости и, следовательно, размеру кеша.

Итак, влияет ли размер кеш-памяти ЦП на производительность?

Кэш L1

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

Размер кеша L1 зависит от процессора.Некоторые топовые потребительские процессоры теперь имеют кэш-память L1 объемом 1 МБ, например Intel i9-9980XE, но они стоят огромных денег и их все еще мало. Некоторые серверные чипсеты, такие как линейка Intel Xeon, также имеют кэш-память L1 объемом 1-2 МБ.

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

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

Кэш L2

Кэш L2 (уровень 2) медленнее, чем кеш L1, но больше по размеру. Если размер кэша L1 может измеряться в килобайтах, то в современных кэшах памяти L2 — в мегабайтах. Например, у AMD Ryzen 5 5600X с высоким рейтингом есть кэш L1 384 КБ и кэш L2 3 МБ (плюс кэш L3 32 МБ).

Размер кэша L2 зависит от процессора, но обычно его размер составляет от 256 КБ до 8 МБ. Большинство современных процессоров имеют кэш L2 размером более 256 КБ, и теперь этот размер считается небольшим. Кроме того, некоторые из самых мощных современных процессоров имеют больший объем кеш-памяти L2, превышающий 8 МБ.

Что касается скорости, кэш L2 отстает от кеша L1, но все же намного быстрее, чем ваша системная RAM. Кэш памяти L1 обычно в 100 раз быстрее, чем ваша оперативная память, а кэш L2 примерно в 25 раз быстрее.

Кэш L3

В кэш L3 (уровень 3). Раньше кэш-память L3 фактически находилась на материнской плате. Это было очень давно, когда большинство процессоров были одноядерными. Теперь кэш L3 в вашем процессоре может быть огромным, с топовыми потребительскими процессорами с кешами L3 до 32 МБ. Некоторые кэши L3 ЦП серверов могут превышать это значение, составляя до 64 МБ.

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

На следующем изображении показаны уровни кэш-памяти ЦП для ЦП Intel Core i5-3570K:

Обратите внимание, как кэш L1 разделен на две части, а кеш L2 и L3 больше соответственно.

Сколько мне нужно кэш-памяти ЦП?

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

Как данные перемещаются между кешами памяти ЦП?

Большой вопрос: как работает кеш-память процессора?

Проще говоря, данные передаются из ОЗУ в кэш L3, затем в L2 и, наконец, в L1.Когда процессор ищет данные для выполнения операции, он сначала пытается найти их в кэше L1. Если ЦП находит это, состояние называется попаданием в кэш. Затем он переходит к поиску в L2, а затем в L3.

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

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

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

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

Будущее кэш-памяти ЦП

Дизайн кэш-памяти постоянно развивается, особенно по мере того, как память становится дешевле, быстрее и плотнее. Например, одним из последних нововведений AMD является память Smart Access и Infinity Cache, которые повышают производительность компьютера.

драм противIntel: какой игровой процессор лучший?

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

Читать далее

Об авторе Гэвин Филлипс (Опубликовано 938 статей)

Гэвин — младший редактор отдела Windows and Technology Explained, постоянный автор Really Useful Podcast и регулярный обозреватель продуктов.У него есть степень бакалавра (с отличием) в области современного письма с использованием методов цифрового искусства, разграбленных на холмах Девона, а также более десяти лет профессионального писательского опыта. Он любит много пить чая, настольные игры и футбол.

Более От Гэвина Филлипса
Подпишитесь на нашу рассылку новостей

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

Нажмите здесь, чтобы подписаться

Что такое кэш-память? Кэш-память в компьютерах, объяснение

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

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

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

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

Имя фактического оборудования, которое используется для кэш-памяти, — это высокоскоростная статическая оперативная память (SRAM).Имя оборудования, которое используется в основной памяти компьютера, — это динамическая память с произвольным доступом (DRAM).

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

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

Кэш-память — это быстро и дорого. Традиционно его относят к «уровням», которые описывают его близость и доступность для микропроцессора.Есть три общих уровня кеширования:

Кэш-память L1 , или первичная кэш-память, очень быстрая, но относительно небольшая и обычно встраивается в микросхему процессора в качестве кэш-памяти ЦП.

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

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

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

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

Схема архитектуры и потока данных типичного блока кэш-памяти.

Отображение кэш-памяти

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

  • Кэш с прямым отображением имеет каждый блок, сопоставленный ровно с одной ячейкой кэш-памяти.Концептуально кэш с прямым отображением похож на строки в таблице с тремя столбцами: блок кеша, содержащий фактические данные, полученные и сохраненные, тег со всем или частью адреса данных, которые были получены, и бит флага, который показывает наличие в строке записи допустимого бита данных.
  • Полностью ассоциативное отображение кэша аналогично прямому отображению по структуре, но позволяет отображать блок памяти в любое место кэша, а не в заранее заданное место кэш-памяти, как в случае с прямым отображением.
  • Установить ассоциативное отображение кэша можно рассматривать как компромисс между прямым отображением и полностью ассоциативным отображением, в котором каждый блок отображается на подмножество ячеек кэша. Иногда его называют ассоциативным отображением N-way set, которое обеспечивает кэширование местоположения в основной памяти в любое из «N» ячеек в кэше L1.

Политика записи данных

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

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

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

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

Специализация и функционал

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

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

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

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

Изображение иерархии памяти и того, как она функционирует

Населенный пункт

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

Есть несколько типов населенных пунктов. Два ключевых для кеша:

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

Производительность

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

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

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

Диаграмма сравнения кэш-памяти с другими типами памяти

Кэш и основная память DRAM

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

DRAM

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

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

Пример динамического ОЗУ.

Кэш и виртуальная память

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

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

Чтобы скопировать виртуальную память в физическую, ОС делит память на файлы подкачки или файлы подкачки, которые содержат определенное количество адресов. Эти страницы хранятся на диске, и, когда они необходимы, ОС копирует их с диска в основную память и переводит адрес виртуальной памяти в физический.Эти переводы обрабатываются блоком управления памятью (MMU).

Реализация и история В мэйнфреймах

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

В 1980-х годах появилась идея, что небольшое количество более дорогой и быстрой SRAM можно было бы использовать для повышения производительности менее дорогой и медленной основной памяти.Первоначально кэш памяти был отделен от системного процессора и не всегда входил в состав набора микросхем. Ранние ПК обычно имели от 16 до 128 КБ кэш-памяти.

С 486 процессорами Intel добавила 8 КБ памяти ЦП в качестве памяти уровня 1 (L1). В этих системах использовалось до 256 КБ внешней кэш-памяти уровня 2 (L2). У процессоров Pentium объем внешней кэш-памяти снова удвоился до 512 КБ на верхнем уровне. Они также разделяют внутреннюю кэш-память на два кэша: один для инструкций, а другой для данных.

Процессоры

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

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

Что такое кэш? | PCMag

(1) Для локального хранения данных с целью ускорения последующего поиска. Произносится «наличными». См. Веб-кеш и кеш браузера.

(2) Зарезервированные области памяти (RAM) на каждом компьютере, которые используются для ускорения обработки.Произнося «наличные», они служат высокоскоростными промежуточными областями, которые постоянно заполняются следующим набором инструкций или данных. Кеши имеют более быстрый ввод / вывод, чем области, которые их кормят. Например, кеш-память — это высокоскоростная память, которая быстрее, чем основная память, а дисковые кеши — это основная память, которая быстрее, чем диск.

Кэш памяти


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

Temporal and Spatial (Time and Space)
Кеши используют преимущество «временной локальности», при которой неизменные константы данных, такие как верхние-нижние пределы, сообщения и заголовки столбцов, используются снова и снова. Кеши также выигрывают от «пространственной локальности», потому что следующая команда, которая должна быть выполнена, или следующий набор данных, который должен быть обработан, часто оказывается следующей на очереди.Чем они более последовательны, тем больше вероятность «попадания в кэш». Если следующего элемента нет в кэше, происходит «промах кеша», и его необходимо получить из более медленной основной памяти.

Уровни 1, 2 и 3 (L1, L2, L3)
Сегодняшние микросхемы ЦП содержат два или три кэша, причем L1 является самым быстрым. Каждый последующий кэш медленнее и больше, чем L1, а инструкции и данные передаются из основной памяти в L3, затем L2, L1 и процессор. На многоядерных чипах кэш L3 обычно используется всеми ядрами обработки.См. Кеш с обратной записью и кеш со сквозной записью.

Иерархия кэша памяти


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

Дисковые кэши


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

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

Disk Cache

Дисковые кеши обычно являются частью основной памяти, состоящей из микросхем общей динамической RAM (DRAM), тогда как в кэшах памяти (CPU cache) используются более высокоскоростные микросхемы статической RAM (SRAM).

Кэш процессора — обзор

Предварительная выборка корреляции в файловых кэшах: преодоление ограничений таблицы состояний

До того, как она была повторно открыта для использования с кэшами процессора [Charney & Reeves, 1995], предварительная выборка корреляции была адаптирована для использования в буферном кэше операционной системы . Например, Корнер [1990] описывает экспертную систему, которая коррелирует файлы и их поведение доступа, разделяя блоки из этих файлов на разные сегменты буферного кеша, каждый из которых управляется своей собственной политикой замены.Механизм также может предварительно загружать кеши на основе подсказок, полученных из наблюдаемого поведения. Тейт и Дюшан [1991] строят рабочий граф на основе обращений к файлам, наблюдаемых в буферном кэше. Это направленный граф действий, таких как выполнение файла (с помощью системного вызова exec ()), доступ к файлу или создание файла с направленными дугами, представляющими, кто и что действовал. Затем график используется для прогнозирования последовательностей обращений к файлам при обнаружении повторяющихся шаблонов. Обратите внимание, что для каждой программы поддерживается набор рабочих графиков (вся деятельность начинается с выполнения программы, которая представляет собой корень дерева).Авторы имеют дело с возникающими проблемами, такими как работа с слишком большими графами, которые не помещаются в кэш и т. Д.

Интересный подход — когда вся таблица состояний перемещается в саму файловую систему. Griffioen и Appleton [1994] наблюдают в своих исследованиях поведения файловой системы на файловом сервере отдела на базе Sun / SPARC, что примерно 95% обращений к файловой системе логически следуют из предыдущего доступа, даже в многопрограммной среде с несколькими пользователи и фоновые демоны, совместно использующие файловую систему.Они инструментируют файловую систему для хранения информации о действиях файла open (), поскольку их собственные исследования, которые подтверждают предыдущие исследования, показывают, что содержимое файла обычно считывается сразу после открытия файла, если вообще читается. Для каждого индексного дескриптора файла сохраняется таблица файлов-преемников, которые открываются в окне предварительного просмотра (т. Е. «Вскоре после этого»), и с каждой записью в таблице сохраняется количество открытий файла-преемника в рамках предварительного просмотра. окно. В таблице указаны веса вероятности открытия (и, следовательно, чтения) дополнительных файлов.Авторы определяют шанс открытия файла j после открытия файла и в терминах этих весов:

(EQ 3.1) шанс = количество записей в файле в количестве записей в таблице

Программное обеспечение для управления буферным кешем выполняет предварительную выборку файла, если его вероятность превышает минимальный шанс , значение , которое варьируется для исследования. Прогноз считается «правильным», если предсказанный файл действительно открыт в окне просмотра вперед. Авторы обнаруживают, что использование низкого минимального шанса (65%) дает примерно одно предсказание для каждых двух открытых файлов и точность предсказания 80% (средняя правильность).Использование высокого минимального шанса (90%) дает примерно одно предсказание для каждых десяти открытых файлов и почти идеальную точность предсказания. Они обнаружили, что эта схема может работать так же или лучше, чем управляемый LRU кеш с удвоенной емкостью.

Почему это особенно интересно, так это то, что состояние предсказателя (т. Е. То, что соответствует таблице предсказателей, показанной на рисунке 3.13) распределяется с предсказываемыми объектами: с метаданными каждого объекта (информация о файле) сохраняется небольшая часть того, что огромная логическая таблица.Такая компоновка имеет огромное преимущество по сравнению с ограниченными размерами таблиц в реализациях кэш-памяти процессора. Таблица является постоянной, что означает, что состояние записи не теряется, когда запись заменяется новой записью, и, в отличие от предыдущих реализаций файлового кеша, нет конфликтов или пропусков емкости, о которых следует беспокоиться. Вспомните, как Alpha EV7 хранит метаданные блока кэша в системе памяти вместе с блоком; это вполне применимо.

Падманабхан и Могул [1996] адаптируют механизм для прогнозируемой выборки веб-страниц.В этом механизме сервер поддерживает предсказатель и информирует веб-клиент (то есть приложение браузера), когда было бы неплохо предварительно загрузить одну или несколько веб-страниц в свой локальный кеш в ожидании будущих запросов пользователя. Браузер решает, инициировать ли предварительную выборку, предположительно на основе доступного локального хранилища или пропускной способности локальной сети (обратите внимание, однако, что прокси-сервер может перехватить передачу и принять собственное независимое решение). Это аналогично поддержке резидентного предсказателя резервного хранилища и информированию кеш-памяти о хороших возможностях предварительной выборки: e.g., удерживая таблицу в основной памяти с помощью резидентного в памяти конечного автомата и возвращаясь к ядру процессора вместе с любыми запрошенными данными, подсказывает о будущих предварительных выборках. Подсказка Падманабхана и Могула на основе сервера (в отличие от push на основе сервера) имеет интуитивный смысл из-за дисбаланса между затратами на отправку запросов и отправку соответствующих данных: команда GET относительно недорога, а получение соответствующих данных — нет. . Типичная система DRAM может не соответствовать этому профилю.С другой стороны, он очень хорошо подходит для типичных дисковых систем и вполне подходит для узкоканальных DRAM, таких как Rambus и FB-DIMM (см. Главу 7, раздел 7.3.2, «Другие технологии, Rambus в В частности »и Глава 14« Система памяти DIMM с полной буферизацией »).

Еще более сложные алгоритмы корреляции были исследованы в файловых кэшах. Например, Kroeger и Long [1996] реализуют схему, основанную на предсказании с помощью алгоритма сжатия с частичным совпадением [Bell et al.1989], который поддерживает сопоставление в контекстах более высокого порядка, что означает, что если последовательность «ABCD» наблюдалась ранее, хотя и реже, чем последовательность «BCE», предиктор может использовать более длинную последовательность, чтобы предсказать, что произойдет после события «C», если ему предшествует «AB», а не просто «B». Это похоже на предикторы адресов данных и значений данных, оцененные в средах кеш-памяти процессора Сазайдесом и Смитом [1997] и Джозефом и Грюнвальдом [1997]. Крёгер и Лонг обнаружили, что буферный кэш размером 4 МБ с использованием PPM (прогнозирование по частичному совпадению) может в среднем превзойти по производительности буферный кеш на основе LRU размером 90 МБ.

Кэш — это король

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

Но поскольку мы находимся на пороге постоянно расширяющейся иерархии памяти, постоянная память, такая как Optane 3D XPoint (вариант памяти с фазовым переходом), приходит в форм-факторы DIMM и SSD и новые протоколы, такие как CXL, OpenCAPI, CCIX, NVLink и Представлены поколения Z для последовательного связывания памяти процессора и ускорителя (симметрично или асимметрично), и мы задумались: не пора ли еще добавить кеши уровня 4 на серверы? С таким количеством различных устройств, которые свисают с комплекса ЦП — некоторые относительно близко, а некоторые относительно далеки — логично задаться вопросом, потребуется ли еще один уровень кэша, чтобы замаскировать задержки этих других воспоминаний и повысить общую пропускную способность системы.

Чтобы понять, что может быть возможным, мы покопались в собственных воспоминаниях, а также обратились к архитекторам серверных микросхем в IBM, Intel, AMD и Marvell, чтобы узнать, что они думают об использовании кеш-памяти L4. память в серверах. Кэш L4 ни в коем случае не является новой разработкой, но он также не является обычным явлением в системных архитектурах.

Но прежде чем мы перейдем к этому, уместно немного предыстории.

Добавление кэшей уровня 1 к процессорам, у которых тогда было только одно ядро, в конце 1980-х привело к компромиссу между добавлением общей задержки в подсистему памяти в обмен на абсолютное снижение общей средней задержки для запросов данных и инструкций со стороны процессоры.Кеши L1 изначально были внешними SRAM, которые монтировались на материнских платах и ​​подключались к комплексу CPU-памяти. Этот кэш L1 располагался очень близко как по тактовому времени, так и по пространству материнской платы к процессору, и означал, что ЦП мог быть загружен более загруженным, чем это было бы возможно в противном случае. В конце концов, эти кеши уровня 1 были разделены, чтобы в них можно было хранить часто используемые данные в одном блоке, а популярные инструкции — в другом, что помогло немного повысить производительность. В какой-то момент, когда тактовая частота процессора увеличилась, а разрыв между скоростью процессора и скоростью DRAM увеличился, в смесь были добавлены более толстые, но более медленные и дешевые (в расчете на бит или пропускную способность) кеши L2, снова сначала за пределами Пакет ЦП, а затем интегрированный в него.И когда к ЦП добавлялось все больше и больше ядер, а также больше контроллеров памяти DRAM для их подачи, в иерархию добавлялись еще большие блоки кэша L3, чтобы эти ЦП получали питание.

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

Крис Джанос, разработчик микросхем и архитектор в Intel, который руководил разработкой многих прошлых поколений процессоров Xeon, объяснил это следующим образом: «С каждым уровнем кэша обычно нам нужно увеличивать их на разумную величину по сравнению с предыдущими. уровень, чтобы иметь смысл, потому что вам нужен достаточно интересный показатель попаданий, чтобы действительно заметно повлиять на производительность вашей системы.Если вы попадаете в кеш только в нескольких процентах случаев, это, вероятно, будет трудно заметить. Все остальное снижает вашу производительность, и вы не слишком сильно двигали стрелку. Итак, вам нужны относительно большие кеши, а когда вы говорите о более высоких уровнях, вам нужны действительно большие . Сегодня наши L2 измеряются в мегабайтах, а наши L3 — в десятках или сотнях мегабайт. Итак, ясно, что если вы начнете думать о кеш-памяти L4, вы, вероятно, получите сотни мегабайт, если не гигабайты.И поскольку они большие, их стоимость определенно вызывает беспокойство. Вы должны выложить достаточно, чтобы сделать это интересным, и это будет недешево «.

Архитекторы AMD, которые не хотели, чтобы их приписывали напрямую, потому что во время этого разговора они не хотели, чтобы их неверно истолковали с AMD, обещавшей добавить кэш L4 в линейку процессоров Epyc — и, чтобы быть ясным, AMD имеет ничего такого не сказал . Но он признал, что это следующая очевидная вещь, о которой стоит подумать, и, как и Intel, считает, что каждый архитектор думает о кэшах L4, и поделился некоторыми своими мыслями на фоне.По сути, AMD заявляет, что компромисс между количеством слоев кэша и задержкой был хорошо изучен в промышленности и академических кругах, и что с каждым новым уровнем кеша, который больше, медленнее и шире используется, существует необходимый компромисс, который увеличивает общий путь к DRAM, потому что большинство проектов не будут постоянно спекулятивно обращаться к слоям кэша ниже по иерархии параллельно с поиском тегов кэша на верхних уровнях. Это именно то, о чем Intel также говорит выше, когда Джанос говорит, что вам нужно найти баланс между частотой обращений и емкостью кеша — и L4 ничем не отличается.

IBM, конечно же, добавила кэш L4 в некоторые из своих наборов микросхем X86 еще в 2000-х, а в 2010 году добавила кэш L4 в наборы микросхем межсоединения NUMA на своих мэйнфреймах System z11. Процессор z11 имел четыре ядра, каждое с 64 КБ инструкций L1 и 128 КБ кэша данных L1, плюс 1,5 МБ кеш-памяти L2 на каждое ядро ​​и 24 МБ общей кэш-памяти L3 для этих четырех ядер. Чипсет NUMA для z10 имел два банка по 96 МБ кэш-памяти L4, всего 192 МБ. В z12 IBM сократила кэш данных до 98 КБ на ядро, но увеличила кэш L2 на ядро ​​до 2 МБ, разделив его на части команд и данных, как кэш L1; кэш L3 был увеличен вдвое до 48 МБ по шести ядрам на кристалле, а емкость кеша L4 была увеличена до 384 МБ для пары микросхем, реализованных на чипсете NUMA.На всех поколениях процессоров System z все кеши росли, и с появлением процессора z15, анонсированного в сентябре прошлого года, пара кешей L1 весит 128 КБ каждый, пара кешей L2 весит 4 МБ каждый, а общие Кэш L3 на 12 ядрах на кристалле составляет 256 МБ. Кэш L4 в ящике двигателей мэйнфреймов z15 имеет 960 МБ кэша L4 в наборе микросхем NUMA и в общей сложности 4,68 ГБ в системе с пятью ящиками, масштабируемой до 190 ядер.

Как мы уже указывали ранее, у процессоров Power8 и Power9 была буферизованная память, и IBM добавила блок кэш-памяти L4 размером 16 МБ в каждый буфер «Centaur», получив в общей сложности 128 МБ кеш-памяти L4 на сокет из 32 модулей памяти. палочки.С Power9 машины начального уровня не имеют буферизованной памяти и, следовательно, не имеют кеш-памяти L4. Архитекторы, которые делали проекты Power10 и создают проекты Power11, были в крайний срок на этой неделе и не могли сесть по телефону, но Уильям Старк, который руководил Power10, в любом случае сэкономил немного времени, чтобы добавить эту мысль к миксу. :

«В целом, мы обнаружили, что большие кэши последнего уровня обеспечивают значительную производительность для корпоративных рабочих нагрузок», — объяснил Старке в интервью The Next Platform по электронной почте.(Мы говорили со Старком еще в августе 2019 года о повышении пропускной способности комплекса основной памяти с помощью микросхем Power9 и Power10. «Отдельно высокая задержка, связанная с технологиями постоянного хранения, такими как память с изменением фазы, как правило, вызывает острую потребность для кэширования — возможно, типа L4 — в иерархии памяти классов хранения ».

Именно так мы думали. И, кстати, мы не предполагаем, что кэш L4 обязательно будет располагаться рядом с буферизованной памятью на будущих модулях DDR5 DIMM.Возможно, он лучше подходит между кэш-памятью PCI-Express и L3 на процессоре, а, может быть, еще лучше, в буферах памяти и между шиной PCI-Express и кешем L3. Это может означать установку его поверх микросхемы концентратора контроллера ввода-вывода и памяти в будущей архитектуре сервера на базе микросхем с чем-то похожим на технологию Intel Foveros.

Теперь, честно говоря, есть другой способ взглянуть на это, и он заключается в том, что у IBM были размеры кристалла и транзисторы, с которыми можно было поиграть, и добавление кеша L4 в межсоединение System z NUMA или в микросхему буфера памяти Power8 и Power9 было не совсем цель сама по себе, но лучшее, что можно сделать с оставшимся бюджетом транзисторов, доступным на этих устройствах, после добавления других необходимых функций.Иногда мы думаем, что количество ядер в процессорах Intel X86 зависит от объема кеш-памяти третьего уровня, который может быть установлен. Иногда кажется, что Intel устанавливает бюджет кэша L3 на кристалл, а затем все становится на свои места для трех кристаллов Xeon разного размера — в последних поколениях, с 10, 18 или 28 ядрами, как оказывается на 14-нанометровых процессах.

Все это спорный вопрос, но это предполагает возможную мотивацию IBM и других производителей наборов микросхем для добавления кеш-памяти L4.Кому-то это могло не только помочь, но и попробовать было что-то очевидное. Мы думаем о таком монстре ввода-вывода, как мэйнфрейм System z, и нет никаких сомнений в том, что у IBM есть кэш L4 именно там, где он работает лучше всего, и он приносит пользу клиентам, увеличивая пропускную способность этих машин и позволяя им работать со скоростью стабильная загрузка ЦП от 98% до 99% , так как количество ядер процессора и масштаб NUMA в мэйнфреймах выросли.

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

Нет причин, по которым кэш L4 должен быть сделан из встроенной памяти DRAM (как IBM делает со своими чипами) или гораздо более дорогой SRAM, и Рабин Сугумар, архитектор микросхем в Cray Research, Sun Microsystems, Oracle, Broadcom, Cavium и Марвелл, напоминает нам об этом

«Наши L3 уже довольно большие, — говорит Сугумар.«Таким образом, кэш L4 должен быть выполнен по другой технологии для этого конкретного случая использования, о котором вы говорите. Может быть, eDRAM или даже HBM или DRAM. В этом контексте одна реализация кэша L4, которая кажется интересной, использует HBM в качестве кеша, и это не столько кеш задержки, сколько кеш полосы пропускания. Идея состоит в том, что, поскольку емкость HBM ограничена, а пропускная способность высока, мы могли бы получить некоторый прирост производительности — и мы действительно видим значительный выигрыш в случаях использования с ограниченной пропускной способностью ». Сугумар добавляет, что для ряда приложений существует относительно большое количество промахов кеша.Но математика, которая должна быть сделана — как для производительности, так и для стоимости, — это то, стоит ли добавление еще одного слоя кеша.

(И еще раз, что Сугумар говорит с нами об этом , это не означает , что Marvell обязуется добавить кэш L4 в будущие процессоры ThunderX. Но на самом деле это означает, что архитекторы и инженеры всегда долго пробуют идеи — обычно с помощью симуляторов. прежде, чем они попадут в транзисторы.)

Еще один возможный вариант кэширования, подобный L4, говорит Сугумар, — это использование локальной DRAM в качестве кеша.«Этого нет в лаборатории разработки или чего-то подобного, но предположим, что у нас есть интерфейс с высокой пропускной способностью на нашем чипе, который переходит к разделяемой распределенной памяти где-то на другом конце провода, который находится на расстоянии от 500 наносекунд до микросекунды. Тогда одна из моделей использования будет заключаться в создании кеша, который перемещает эти данные из совместно используемой распределенной DRAM в локальную DRAM. Мы можем представить себе запуск аппаратного конечного автомата, который управляет памятью, поэтому большую часть времени это занимает локальная DRAM, и вы минимизируете количество раз, когда вы выходите на совместно используемую DRAM.”

Для нас это звучит как забавный вид NUMA. Между прочим, Сугумар работал над распределенной памятью для высокопроизводительных параллельных систем в Sun Microsystems, и это было до того, как стала доступна постоянная память. И одна проблема, связанная с наличием этих различных иерархий памяти, заключалась в том, что если одна из них теряется из-за сбоя сети или межсоединения, тогда вся машина выходит из строя — бум! «Вы должны более аккуратно бороться с сетевыми сбоями в системах с распределенной памятью, и это создает множество проблем при проектировании.”

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

Leave a comment