Кэш-память процессора. Уровни и принципы функционирования
Одним из немаловажных факторов повышающих производительность процессора, является наличие кэш-памяти, а точнее её объём, скорость доступа и распределение по уровням.
Уже достаточно давно практически все процессоры оснащаются данным типом памяти, что ещё раз доказывает полезность её наличия. В данной статье, мы поговорим о структуре, уровнях и практическом назначении кэш-памяти, как об очень немаловажной характеристике процессора.
Что такое кэш-память и её структура
Кэш-память – это сверхбыстрая память используемая процессором, для временного хранения данных, которые наиболее часто используются. Вот так, вкратце, можно описать данный тип памяти.
Кэш-память построена на триггерах, которые, в свою очередь, состоят из транзисторов. Группа транзисторов занимает гораздо больше места, нежели те же самые конденсаторы, из которых состоит оперативная память. Это тянет за собой множество трудностей в производстве, а также ограничения в объёмах. Именно поэтому кэш память является очень дорогой памятью, при этом обладая ничтожными объёмами. Но из такой структуры, вытекает главное преимущество такой памяти – скорость. Так как триггеры не нуждаются в регенерации, а время задержки вентиля, на которых они собраны, невелико, то время переключения триггера из одного состояния в другое происходит очень быстро. Это и позволяет кэш-памяти работать на таких же частотах, что и современные процессоры.
Также, немаловажным фактором является размещение кэш-памяти. Размещена она, на самом кристалле процессора, что значительно уменьшает время доступа к ней. Ранее, кэш память некоторых уровней, размещалась за пределами кристалла процессора, на специальной микросхеме SRAM где-то на просторах материнской платы. Сейчас же, практически у всех процессоров, кэш-память размещена на кристалле процессора.
Для чего нужна кэш-память процессора?
Как уже упоминалось выше, главное назначение кэш-памяти – это хранение данных, которые часто используются процессором. Кэш является буфером, в который загружаются данные, и, несмотря на его небольшой объём, (около 4-16 Мбайт) в современных процессорах, он дает значительный прирост производительности в любых приложениях.
Чтобы лучше понять необходимость кэш-памяти, давайте представим себе организацию памяти компьютера в виде офиса. Оперативная память будет являть собою шкаф с папками, к которым периодически обращается бухгалтер, чтобы извлечь большие блоки данных (то есть папки). А стол, будет являться кэш-памятью.
Есть такие элементы, которые размещены на столе бухгалтера, к которым он обращается в течение часа по несколько раз. Например, это могут быть номера телефонов, какие-то примеры документов. Данные виды информации находятся прямо на столе, что, в свою очередь,увеличивает скорость доступа к ним.
Точно так же, данные могут добавиться из тех больших блоков данных (папок), на стол, для быстрого использования, к примеру, какой-либо документ. Когда этот документ становится не нужным, его помещают назад в шкаф (в оперативную память), тем самым очищая стол (кэш-память) и освобождая этот стол для новых документов, которые будут использоваться в последующий отрезок времени.
Также и с кэш-памятью, если есть какие-то данные, к которым вероятнее всего будет повторное обращение, то эти данные из оперативной памяти, подгружаются в кэш-память. Очень часто, это происходит с совместной загрузкой тех данных, которые вероятнее всего, будут использоваться после текущих данных. То есть, здесь присутствует наличие предположений о том, что же будет использовано «после». Вот такие непростые принципы функционирования.
Уровни кэш-памяти процессора
Современные процессоры, оснащены кэшем, который состоит, зачастую из 2–ух или 3-ёх уровней. Конечно же, бывают и исключения, но зачастую это именно так.
В общем, могут быть такие уровни: L1 (первый уровень), L2 (второй уровень), L3 (третий уровень). Теперь немного подробнее по каждому из них:
Кэш первого уровня (L1) – наиболее быстрый уровень кэш-памяти, который работает напрямую с ядром процессора, благодаря этому плотному взаимодействию, данный уровень обладает наименьшим временем доступа и работает на частотах близких процессору. Является буфером между процессором и кэш-памятью второго уровня.
Мы будем рассматривать объёмы на процессоре высокого уровня производительности Intel Core i7-3770K. Данный процессор оснащен 4х32 Кб кэш-памяти первого уровня 4 x 32 КБ = 128 Кб. (на каждое ядро по 32 КБ)
Кэш второго уровня (L2) – второй уровень более масштабный, нежели первый, но в результате, обладает меньшими «скоростными характеристиками». Соответственно, служит буфером между уровнем L1 и L3. Если обратиться снова к нашему примеру Core i7-3770 K, то здесь объём кэш-памяти L2 составляет 4х256 Кб = 1 Мб.
Кэш третьего уровня (L3) – третий уровень, опять же, более медленный, нежели два предыдущих. Но всё равно он гораздо быстрее, нежели оперативная память. Объём кэша L3 в i7-3770K составляет 8 Мбайт. Если два предыдущих уровня разделяются на каждое ядро, то данный уровень является общим для всего процессора. Показатель довольно солидный, но не заоблачный. Так как, к примеру, у процессоров Extreme-серии по типу i7-3960X, он равен 15Мб, а у некоторых новых процессоров Xeon, более 20.
Комментарии
(!)Грубо сравниваю скажем 2 CPU, 1 с L2, а 2й с L3 - у 1го скажем 4Мб кэша, а у второго с L3 пусть будет 10Мб. Частоты, архитектура и другие характеристики одинаковы, но 2й проц стоит дороже - стоит ли доплачивать за доп кэш или лучше деньги пустить на более полезные вещи, как к примеру обмывка покупки :)
Обилие кэша довольно положительно сказывается на играх и вообще на общей работе системы, но и на одной кэш-памяти далеко не укатишься. Так что если перед компьютером не ставится сверх задач, то кэш-памятью можно и пожертвовать. Также имеет значение какая именно кэш-память ( в CPU Intel или AMD) и на какой из уровней сколько отведено.
:-) Занятно :-)
(!) Грубо сравниваю - два абсолютно одинаковых человека, один и тот же рост, вес, телосложение и вообще все характеристики одинаковые кроме: у 1-го грудь мускулистая, у 2-го молочные железы. На первого налезет бюстгальтер 2-го размера на второго 4-го. Ни чего серьезного с этими людьми делать не планируется, так для игр ... разных (однако второй дороже). Внимание вопрос-стоит ли доплачивать за молочные железы ... или пустить деньги на обмывку мускулистой груди? :-?
У меня есть друг, который "Селероны" не считает за CPU и говорит всегда "Не покупай это гумно - у них кэша вобще почти нет". Я сидел на старом AMD Athlon 64 2500+ с 2Мб кэшем и мне этого хватало. А кто-то говорит, что 4Мб это не кэш, а недоразумение...
Вот и спросил настолько ли важен юзеру_обыкновен ному кэш выше 4Мб для простеньких игр и просмотра 720р фильмов? Я вот сейчас вобще пишу с компа Athlon XP 1.9 GHz одноядерный со сгоревшим L2 кэшем (при нубо разгоне спалили) и для фильмов его хватает, даже в HL2 играл :)
Прошу прощенье если обидел, не со зла. Просто сравнение действительно было не очень, ни когда не видел и не слышал чтоб у процессоров всё было одинаково кроме кэша (от производителя). А так я вам скажу одну занимательную вещь которую мне как-то рассказывали - 90% кэша завалено мусором про причине прогнозирования алгоритмов ветвления, который ни когда не используется обычным пользователем.
"если есть приблизительно одинаковые CPU по многим параметрам на бумаге, не сильные отличия по цене, тестам в и-нете"
Если стоимость и производительно сть процессоров приблизительно одинаковы, то роль размеров "КЭША" у одной модели процессора по отношению к другой, компенсируется другими особенностями организации внутреннего строения этих систем. Так что последним аргументом может служить любой повод который только взбредёт в голову.
RSS лента комментариев этой записи