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

Сверхпамять

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

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

Настройки кэша в веб-обозревателях

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

Например, в старой версии «Оперы» опции выставляются в настройках истории. В новой модификации браузера следует использовать свойства ярлыка, а в пути к исполняемому файлу в поле типа объекта дописать сочетание —disk-cache-size=Объем и нужный размер кэша в килобайтах (например, для 1 Гб это будет 1073741824 Кб).

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

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

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

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

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

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

blog comments powered by DISQUS

Параметры файла подкачки

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

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

Зачем нужна кэш память

В компьютере используется несколько типов памяти. Всем известны HDD/SSD для долгосрочного хранения информации и ОЗУ (RAM), которая при потере питания сбрасывает всё содержимое

Важное различие между ними — это скорость доступа к данным

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

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

Контроллер кэша

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

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

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

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

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

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

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

Дальнейшее продвижение Apple 1, участие в показах и выставках

На момент создания Стивом Возняком своего первого компьютера во всю, кипели разработки подобных устройств в «Кремниевой долине» в штат Калифорния. Между тем о созданном Стивом компактном компьютере заговорили и в других штатах Америки. В это время известный предприниматель Стэн Вейт открывает в Нью-Йорке крупный магазин по продаже компьютерной техники, в восточном побережье США, это был первый подобный магазин «The Computer Mart». Вэйт сделал ставку на продажу самых перспективных разработок в области компьютерной техники, в его магазине на тот момент в продажу поступили «IMSAI 8080» и другие известные бренды, на базе самых известных процессоров, в том числе и на «Motorola 6800».

Стэн Вейт живо интересовался новыми разработками и тогда все тот же Пол Террелл познакомил его со Стивом Джобсом, его партнером по поставкам Apple 1. После недолгих переговоров в магазин Стэна Вейта был отправлен первый экземпляр Apple 1. Вейт решил сначала посоветоваться со специалистами в области компьютерной техники и представил им Apple 1, каково же было их удивление, когда этот небольшой по размерам компьютер заработал, да еще и довольно быстро, по тем временам. Дополнительно Стив Джобс отправил кассетный интерфейс, а также недавно разработанную программу Стивом Возняком «Game Of Life». На тот момент Apple 1 оказался самым компактным компьютером из всех существующих, он сразу понравился пользователям и продажи пошли в гору.

Но Стэн Вейт на этом не остановился, он не мог не воспользоваться своими связями и решил представить изобретение Стива Возняка на обозрение представителей Нью-Йоркской Ассоциации вычислительной техники. Для презентации изделие было вмонтировано в кейс, монитор и клавиатуру пришлось взять отдельно. Во время заседания ассоциации Стэн Вейт сидя за столом, разложил комплект, подключил к питанию и включил программу «Game Of Life». Все находящиеся в зале члены ассоциации с интересом наблюдали за тем, что делает Вейт, когда докладчик закончил свой доклад, все подошли к столу, где сидел Стэн с аппаратурой. Поначалу не кто не мог поверить, что этот компактный комплект и есть полноценный компьютер. Но когда все убедились, что все честно, присутствующие пришли в восторг от нового компьютера.

После успешной презентации перед членами Нью-Йоркской Ассоциации вычислительной техники Стэн Вейт решил лично познакомиться со Стивом Джобсом и Стивом Возняком и посетил их мини цех по производству компьютеров в Калифорнии. Во время их встречи Стив Возняк представил Вейту свое новое изобретение, будущий Apple 2, запустив на нем игру «Breakout» уже в цветном изображении. Вейт не переставал удивляться качеству графики, по его словам компьютер Возняка превосходит по качеству изображения, даже самую популярную на то время приставку «Cromemco Dazzler» разработанную специально для шины S-100 в компьютерах «Altair» и «IMSAI».

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

В августе 1976 года компании «Apple Computer Company» поступило предложение представить свою продукцию на известной выставке «PC ’76», которая проходила в «Атлантик-Сити», это приглашение Стив Джобс и Стив Возняк приняли с великим удовольствием. Прибыв на место, Стив Возняк тщательно готовил компьютеру к демонстрации, проверял исправность, проверял работоспособность интерпретаторов «BASIC». Несмотря на огромный интерес публики к нескольким представленным Apple 1, в первую очередь за счет небольших габаритов и быстродействия первое участие в выставке прошло не совсем удачно, контрактов подписано было не много.

Методология разгона и подводные камни

О первом факторе я уже сказал. Для разгона не К-чипов Skylake требуется плата исключительно на чипсете Z170 Express. Ограничение формальное, внедрено либо Intel, либо производителями материнских плат. Доказать это очень просто, ведь первые успехи по разгону неоверклокерских чипов получились при помощи Supermicro C7H170-M, построенной на логике H170 Express.

Полный перечень материнских плат легко найти в интернете. Я приведу список наиболее доступных моделей от ASRock, ASUS, GIGABYTE и MSI. Покупать более дорогие платы для разгона неоверклокерских Skylake не вижу смысла. Теряется так рьяно пропагандируемый мной эффект экономии. Да и сборки, в которых матплаты стоят дороже процессоров, выглядят весьма странно.

Главные характеристики процессоров

Сначала давайте разберем самое сложное для всех, кто не имеет достаточного опыта в сборке игровых ПК – технические характеристики.

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

Все они в той или иной степени важны, но если говорить об играх, то прежде всего нужно обратить внимание на следующие параметры:

  • Количество ядер – число физических ядер процессора. Большее количество ядер означает лучшие возможности по многозадачности и большую вычислительную мощность в определенных программах, если они оптимизированы для их использования.
  • Количество потоков – число логических ядер процессора. Технологии Simultaneous Multithreading от AMD и Hyper-Threading от Intel позволяют одному физическому ядру одновременно обрабатывать две задачи, что еще сильнее повышает общую производительность системы и повышает быстродействие в играх и программах, оптимизированных для многопоточной работы.
  • Тактовая частота – базовая частота (в гигагерцах, или ГГц), на которой работает одно ядро процессора. Чем выше частота – тем выше одноядерная производительность, то есть процессор может обрабатывать больше данных в единицу времени.
  • Частота в турбо-режиме – максимальная тактовая частота, которой процессор может достичь при использовании технологий авторазгона AMD Precision Boost и Intel Turbo Boost.
  • Разгон – показывает, разблокирована ли у процессора возможность разгона, то есть увеличения базовой тактовой частоты выше заводских значений при помощи специальных средств.
  • Сокет – тип сокета материнской платы, с которым совместим процессор.
  • Кэш – у каждого процессора есть небольшое количество встроенной памяти, которая может использоваться для хранения важных данных. Поэтому больший рaзмер кэша может повысить скорость и стабильность работы, обеспечивая лучшую производительность и отсутствие сбоев.
  • Системная память – тип оперативной памяти, поддерживаемый процессором, а также максимально поддерживаемый объем, количество каналов памяти и скорость памяти, официально поддерживаемые процессором.
  • Мощность TDP – аббревиатура расшифровывается как Thermal Design Power – требования по теплоотводу. Это значение в ваттах, которое показывает энергопотребление процессора и его тепловыделение при работе на штатных частотах.

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

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

Что же такое кэш?

Это небольшая, но очень быстрая память, которая находится рядом с логическими блоками процессора.

Но, конечно, такого определения нам недостаточно…

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

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

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

Причина в том, что современные процессоры невероятно быстры – им требуется всего один такт, чтобы сложить два 64-битных целых числа, а для процессора, работающего на частоте 4 ГГц, это занимает всего 0,00000000025 секунды (четверть наносекунды).

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

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

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

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

Почти всегда это – DRAM (динамическая память с произвольным доступом), и она способна совершать обмен данными намного быстрее любого диска.

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

Самые большие на сегодня чипы DDR4 (производства Micron, одного из немногих производителей DRAM) уступают самым большим по объёму жестким дискам примерно в 4000 раз.

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

Но по крайней мере, DRAM можно встроить в корпус процессора (встраиваемая DRAM, eDRAM). Однако процессоры относительно небольшие, поэтому особо внутри них не развернёшься.

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

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

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

Конечно, у SRAM есть недостаток, и опять же, речь об объёме.

Транзисторная память занимает намного больше физического места, чем DRAM: чип SRAM размером с чип DDR4 4 Гб будет иметь объём менее 100 Мб. Но поскольку технологически SRAM основана на том же процессе, что и процессор, то её можно встроить прямо внутрь него, в непосредственной близости к его логическим блокам.

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

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

В заключение

Наличие шести ограничивающих факторов разгона неоверклокерских Skylake расстраивает. Но даже с учетом такого числа искусственных барьеров результат оказался вполне достойным. Тестирование показало, что в большинстве случаев разгон неоверклокерских Skylake имеет место быть. Исключениями являются программы, использующие векторные инструкции AVX/AVX2. Если вы постоянно работаете с такими приложениями, то лучше либо не разгонять процессор вообще, либо взять более быстрый Skylake-аналог, либо раскошелиться на чип с разблокированным множителем.

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

Важно помнить, что разгон — это всегда лотерея. Мне попался очень бодрый Core i5-6400, который в итоге разогнался лучше, чем специально для этого разработанный Core i5-6600K

Я не могу гарантировать, что другие пользователи смогут как минимум повторить такой результат. В принципе, до 4-4,2 ГГц Core i5-6400 разгонится точно. Это тоже очень приличный результат. Главное, чтобы матплата сумела взять 4200/27=155,5 МГц по шине.

Core i3-6300T — плохой «экспонат» для оверклокинга в домашних условиях. Вся соль этого чипа заключена в очень низком TDP. Вот и потенциал у него так себе. Лучше разгонять заведомо более быстрые модели Core i3-6100/6300. Здесь уж точно получится покорить отметку в 4,5-4,7 ГГц.

Выдвину гипотезу: AMD не в том положении, чтобы в 2016 году хоть как-нибудь ущемлять права энтузиастов. Следовательно, добрая часть чипов Zen, если их частотный потенциал окажется на высоте, получит разблокированный множитель. Если между производителями вновь возгорит жаркая конкуренция, то Intel пойдет на уступки в том числе и любителям разгона. Возможно, позабытая в далеком 2011-м году золотая эра оверклокинга вернется.

Подводя итоги

В ситуации, когда процессорные ядра достигли частотного порога насыщения, а их количество напрямую не может оп­ре­де­лять производительность всего вычислительного комплекса, решающее значение имеет ос­на­ще­ние CPU ум­ны­ми ал­го­рит­ма­ми, где не последнее место отводится алгоритмам кэширования. В про­цес­со­рах семейства AMD Rome кроме приватных кэш-ресурсов L1 и L2 на первых ролях агрегирований L3-кэш. Его задача — обес­пе­чить про­из­во­ди­тель­ность CCX-кластера в частности и всего процессора в целом, а так­же снизить нагрузку на подсистему DRAM, об­слу­жи­ва­е­мую от­дель­ным крис­тал­лом I/O Hub.

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

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

В этой ситуации роль TLB ста­но­вит­ся критически важной. Про­тес­ти­ро­ван­ный про­цес­сор AMD EPYC 7452 32-Core доказал это

Как следует из графиков латентности, в режиме Large Pages имеет место полуторакратное снижение ве­ли­чи­ны за­дер­жки при доступе к L3 при объеме блока X=16MB. Этот факт заслуживает внимания разработчиков коммерческого про­грам­мно­го обес­пе­че­ния, от­вет­ст­вен­но относящихся к оптимизации кода — сценарий нашего синтетического теста мо­де­ли­ру­ет доступ к фраг­мен­ти­ро­ван­ным данным. Несмотря на все сложности внедрения «больших страниц», их ис­поль­зо­ва­ние в при­клад­ных за­да­чах (сис­те­мы уп­рав­ле­ния ба­за­ми дан­ных и т.п.) вы­гля­дит оп­рав­да­но с точ­ки зре­ния борь­бы за каж­дую на­но­се­кун­ду про­цес­сор­но­го вре­ме­ни.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все для ПК
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: