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

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

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

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

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

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

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

Кэш-память

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

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

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

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

Уровень за уровнем

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

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

Процессор Pentium III компании Intel имеет кэш-память первого уровня емкостью 32 Кбайт на микросхеме процессора и либо кэш-память второго уровня емкостью 256 Кбайт на микросхеме, либо кэш-память второго уровня емкостью 512 Кбайт, не интегрированную с процессором.

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

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

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

Кэш-память для серверов даже более важна, чем для настольных ПК, поскольку серверы поддерживают между процессором и памятью весьма высокий уровень трафика, генерируемого клиентскими транзакциями. В 1991 году Intel превратила ПК на базе процессора 80486 с тактовой частотой 50 МГц в сервер, добавив на процессорную плату кэш с тактовой частотой 50 МГц. Хотя шина, связывающая процессор и память, работала с частотой всего 25 МГц, такая кэш-память позволила многие программы во время работы полностью размещать в процессоре 486 с тактовой частотой 50 МГц.

Иерархическая организация памяти помогает компенсировать разрыв между скоростями процессоров, ежегодно увеличивающимися примерно на 50% в год, и скоростями доступа к DRAM, которые растут лишь на 5%. Как считает Джон Шен, профессор Университета Карнеги-Меллона, по мере усиления этого диссонанса производители аппаратного обеспечения добавят третий, а возможно и четвертый уровень кэш-памяти.

Действительно, уже в этом году Intel намерена представить кэш-память третьего уровня в своих 64-разрядных процессорах Itanium. Кэш емкостью 2 или 4 Мбайт будет связан с процессором специальной шиной, тактовая частота которой совпадает с частотой процессора.

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

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

Больше — не всегда лучше

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

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

«Компилятор потенциально в состоянии анализировать поведение программы и генерировать команды по переносу данных между уровнями памяти», — отметил Шен.

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

Где мои данные?


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

Читать еще:  Всё про жёсткий диск

-Гэри Антес, COMPUTERWORLD, США

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

Влияние на скорость работы

Размер кэш памяти влияет на скорость работы программ, но почти всегда этот прирост незначителен за счет массы других факторов. Например, если производитель вдруг увеличит у конкретной модели процессора кэш L3 с 4 МБ до 8 МБ, то в лучшем случае, при выполнении некоторых приложений, получим прирост производительности на 10%. А при обычной работе это будет всего около 2%.

Таким образом, можно сделать вывод, что ориентироваться на объем кэш памяти при покупке процессора стоит в последнюю очередь. Хотя прогресс не стоит на месте и появляются новые идеи в устранении задержек при работе с данными. Например, компания Intel уже провела ряд экспериментов по внедрению кэша 4 уровня и останавливаться на этом не собирается.

Пример объема L3 буфера разных процессоров и их средняя цена:

Intel Celeron G49502 МБ5 000 руб.
Intel Celeron G45003 МБ4 500 руб.
AMD Ryzen 3 3200G4 МБ6 500 руб.
Intel Core i3-9100F6 МБ6 500 руб.
AMD Ryzen 5 14008 МБ6 000 руб.
Intel Core i5-9400F8 МБ9 000 руб.
Intel Xeon E5-2623 v410 МБ35 000 руб.
Intel Core i7-9700F12 МБ23 000 руб.
AMD Ryzen 7 270016 МБ14 000 руб.
Intel Core i9-990016 МБ35 000 руб.
Intel Xeon E5-2609 v420 МБ22 000 руб.
Intel Xeon E5-2650 v430 МБ80 000 руб.
AMD Ryzen 9 3900X62 МБ50 000 руб.

Тесты удвоения объёма кеша L3 процессора

Зачем нужен кэш и как он влияет на производительность?

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

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

Но если так случилось, что микрооперация попала в конвейер, а данные для её выполнения расположены не в каком-то из кэшей, а в оперативной памяти (или вообще в постоянной памяти), то процессору ничего не остаётся как пропустить эту микрооперацию, оставив её в очереди, и выполнять следующие за ней мирооперации. И называется это «мероприятие» промах в кэш (Cache Miss).

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

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

Насколько большая разница от изменения объёма?

И встаёт закономерный вопрос: «На сколько же велико влияние?».

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

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

Для некой усреднённой задачи может получится зависимость производительности от цены при изменения объёма кэша примерно такая:

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

Как измерить разницу от объёма?

И перейдём уже к практической области решения данного вопроса.

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

В нашем случае это процессоры i7 7700k и i9 9900k. В последнем отключено 4 ядра из восьми (кэш память при этом не отключается).

В данном случае могла бы быть проблема связанная с программными исправлениями аппаратных уязвимостей более новых процессоров. Решена она запуском процессора i9 9900k на материнской плате ASUS Z170i Pro Gaming с BIOS версией 2002. К моменту выхода прошивки этой материнской платы об аппаратных уязвимостях сведений ещё не было и исправления их в тестовых системах — нет.

Про то как установить процессоры 8 и 9 поколений на платы для 6 и 7 поколений процессоров можете посмотреть тут.

Кроме процессора важно выбрать оперативную память. Я решил взять некие средние для DDR4 показатели. Частоту 3600 МГц с таймингами 17-18-18-38 CR2. Все субтайминги материнская плата выставляла автоматически.

Для игр так же стоит упомянуть о видеокарте: Gainward GeForce RTX 2070 Phoenix с небольшим заводским разгоном.

Обзор видеокарты можно посмотреть тут.

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

Результаты

Для начала проведём тест который покажет, что объём кэша действительно разный.

  • Тест кэша и памяти в Sandra

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

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

Все тесты проводились по 3 раза с усреднением результатов.

В однопоточном тесте CPU-z разницы от увеличения объёма кеша L3 — нет. В многопоточном разница — 3%

Читать еще:  Всё про ремонт жёсткого диска своими руками

В Cinebench R15 разница 0,4% (незначительно превышает погрешности теста).

Тесты которые слабо реагируют на разгон памяти слабо реагируют и на увеличение объёма кэш памяти.

Далее рассмотрим блок тестов, в которых бенчмарки зависимые от частоты и задержек памяти.

Win-rar. Прирост производительности — 35%. Стоит отметить, что встроенный бенчмарк не отражает реальный прирост производительности архиватора.

7-Zip. Прирост 4,5%.

CPU тест 3D Mark Time Spy. Прирост 3,7%

  • Все бенчмарки

Выводы по бэнчмаркам

В идеальных задачах максимально оптимизированных для процессора и работы с памятью прирост находится в пределах 0-2%.

Для задач имеющий меньшую оптимизацию или связанных с работой с данными прирост от увеличения объёма кэш памяти составил от 3,7 до 35%.

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

Far Cry 5

Время кадра Плотность вероятности Распределение вероятности

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

Результаты в цифрах:

AVGLow 0.1%Low 1%Low 5%Медиана
FC5 8МБ 3600107.857.268.080.9106.0
FC5 16МБ 3600123.073.282.192.7118.0
Прирост, %14.128.020.814.511.3

Медианный прирост: 11,3%

Прирост по долгим кадрам: Меньшие 0,1% — 28%, Меньшие 1% — 20,8%.

WatchDogs 2

Время кадра Плотность вероятности Распределение вероятности

AVGLow 0.1%Low 1%Low 5%Медиана
FC5 8МБ 360051.228.531.937.250.6
FC5 16МБ 360058.734.739.144.358.0
Прирост, %14.621.822.419.114.5

Медианный прирост: 14.5%

Прирост по долгим кадрам: Меньшие 0,1% — 21,8%, Меньшие 1% — 22,4%.

Выводы по играм

Прирост в играх превышает общие значения полученные в бенчмарках (кроме Win-rar) и составляют значения выше 10%, что является довольно значительным показателем.

Видео версия

Общие выводы

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

ПРОЦЕССОРЫ

Введение

Первым процессором, который производился с кэшем L2, стал Pentium Pro в 1995 году. У него было 256 или 512 кбайт кэша второго уровня на кристалле, что давало существенное преимущество над обычными процессорами Pentium, чей кэш располагался на материнской плате. С появлением Pentium II в модуле Slot 1 выделенная кэш-память «поселилась» рядом с процессором. Но только у второго поколения Pentium III для Socket 370 кэш-память перешла на кристалл процессора. Так продолжается и по сей день, но есть процессоры с небольшим количеством кэша, а есть с большим. Стоит ли тратить деньги на модель с большим кэшем? В прошлом дополнительная кэш-память не всегда ощутимо влияла на производительность.

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

Pentium 4 в своём первом поколении (Willamette, 180 нм) оснащался 256 кбайт кэша, а в более успешном втором поколении (Northwood, 130 нм) — уже 512 кбайт кэша. В то время дешёвые процессоры Celeron с меньшим кэшем производились на тех же вычислительных ядрах. Celeron относятся к первому поколению продуктов с одной технологической базой для high-end и дешёвых моделей, различающихся только доступным размером кэша и частотами FSB/ядра. Позднее была добавлена и разница в функциях, чтобы заметнее разделить сегменты рынка.

С выпуском 90-нм ядра Prescott объём кэша L2 вырос до 1 Мбайт, и этот процессор стал основой линейки настольных процессоров Intel до появления 2-Мбайт 65-нм Cedar Mill. Intel даже использовала два таких ядра для создания процессоров Pentium D 900 второго поколения. Впрочем, более быстрые тактовые частоты и больший объём кэша даже тогда не значили очень много. Сегодня ситуация изменилась: лучшая производительность Core 2 Duo (Conroe, 65 нм) и меньшее энергопотребление немало обязаны размеру кэша.

AMD весьма сдержанно относилась к увеличению объёма кэша. Скорее всего, это связано с площадью кристалла (бюджетом транзисторов), поскольку количество 65-нм процессоров не может удовлетворить спрос на рынке, а у менее выгодных 90-нм моделей этот вопрос стоит ещё острее. У Intel, с другой стороны, есть преимущество в виде производства всех массовых процессоров по 65-нм техпроцессу, да и ёмкость кэша L2 будет ещё расти. Например, следующее поколение Core 2 на 45-нм ядре Penryn будет оснащаться до 6 Мбайт кэша L2. Можно ли рассматривать это как маркетинговый шаг, или увеличение ёмкости L2 действительно даст прирост производительности? Давайте посмотрим.

Большой кэш L2: маркетинг или рост производительности?

Кэши процессора играют вполне определённую роль: они уменьшают количество обращений к памяти, буферизуя часто используемые данные. Сегодня ёмкость ОЗУ составляет от 512 Мбайт до 4 Гбайт, а объём кэша — от 256 кбайт до 8 Мбайт, в зависимости от модели. Впрочем, даже небольшого объёма кэша в 256 или 512 кбайт достаточно, чтобы обеспечить высокую производительность, которую сегодня воспринимают само собой разумеющейся.

Есть разные способы организации иерархии кэша. В большинстве современных компьютеров установлены процессоры с небольшим кэшем первого уровня (L1, до 128 кбайт), который обычно разделяется на кэш данных и кэш инструкций. Кэш L2 большего размера обычно используется для хранения данных, он является общим для двух процессорных ядер Core 2 Duo, хотя Athlon 64 X2 или Pentium D имеют раздельные кэши на ядро. Кэш L2 может работать эксклюзивно или инклюзивно, то есть он может либо хранить копию содержимого кэша L1, либо нет. AMD вскоре представит процессоры с третьим уровнем кэша, который будет общим для четырёх ядер в процессорах AMD Phenom. То же самое ожидается и для архитектуры Nehalem, которую Intel представит в 2008 году на замену текущим Core 2.

Кэш L1 всегда был в составе процессора, но поначалу кэш L2 устанавливался на материнские платы, как было в случае многих компьютеров 486DX и Pentium. Для кэш-памяти первого уровня использовались простые чипы статической памяти (SRAM, Static RAM). Они вскоре были заменены конвейерным пакетным кэшем (pipelined burst cache) у процессоров Pentium, пока не появилась возможность устанавливать кэш на кристалл. Pentium Pro на 150 — 200 МГц стал первым процессором, содержащим 256 кбайт кэш-памяти L2 на кристалле, побив рекорд по размеру керамической упаковки для настольных ПК и рабочих станций. Pentium III для Socket 370, работающий на частотах от 500 МГц до 1,13 ГГц, стал первым процессором с 256 кбайт кэш-памяти на кристалле L2, что давало преимущество по снижению задержек, поскольку кэш работает на частоте CPU.

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

Кэш память процессора 3-го уровня. Много кто про нее говорит что чем больше тем лучше, но на самом деле.

Приветствую на канале Личный опыт (PRO) . В этой статье хочетcя снова затронуть тему процессоров. Наверняка при сборке нового ПК приходилось слушать информацию от «экспертов», которые говорят, что чем больше кэш в процессоре, тем лучше. Но действительно ли он так важен?

Читать еще:  Что такое форм фактор ?

Давайте сначала немного терминологии

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

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

Нет. Кэш-память является внутренней частью процессора, и замене не подлежит. «Нехватка» решается только заменой ЦП.

Состав кэш-памяти

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

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

Может ли не хватать кэш-памяти?

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

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

Для чего нужен большой кеш?

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

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

Так на сколько важен большой кэш?

Третий уровень памяти имеет объем в несколько мегабайт и является общим для всех ядер. Его объем — достаточно важный фактор, если последних действительно много.

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

Вместо вывода

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

Спасибо за прочтение. С вами был канал Личный опыт (PRO) . Ставьте лайки, п одписывайтесь. Оставляйте ваше мнение в комментариях.

Зачем же нужен кэш процессору?

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

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

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

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

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

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

Состав устройства

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

Эффективность работы

Кэш — памяти зависит от разных условий:

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

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

  • первый уровень L1 – самая быстродействующая микросхема с небольшим объемом памяти. Здесь находятся данные, которые используются чаще всего. Число этих чипов равно числу ядер процессора. Ядро может обращаться только к своему чипу;
  • второй уровень L2 — более медленная, но более объемная микросхема. В ней хранятся данные, вероятность в потребности которых ниже, чем у информации 1 уровня;
  • третий уровень L3 — наиболее медленная и самая большая по объему память. Ею могут пользоваться все, она доступна всем ядрам процессора. Понятно, что тут хранится информация, потребность в которых наиболее низка.

Кэш-память и скорость работы

Быстродействие, вот на что влияет Кэш-память процессора. Контроллер памяти ищет данные последовательно на всех уровнях, начиная с L1. Система работает эффективно и только 1% запросов оказывается «промахом». А значит, данные будут поступать в процессор незамедлительно, что значительно убыстряет его работу.

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

На сегодняшний день увеличение Кэш-памяти на процессорах с двумя ядрами нецелесообразно из-за значительного повышения стоимости. А вот при наличии в процессорах нескольких ядер, увеличение Кэша до 15-20 МВ вполне оправдано. Существуют модели процессоров Intel Xeon, которые обладают Кэшем 37.5 МВ.

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

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

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

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

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

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