Подпишись и читай
самые интересные
статьи первым!

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

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

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

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

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

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

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

Основные типы и уровни кэш-памяти L1 L2 L3

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

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

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

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

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

Некоторые модели процессоров выполнены с двумя уровнями кэш памяти, в которых L2 совмещает все функции L2 и L3.

Когда полезен большой объем кэша.

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

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

  • относительно высокая стоимость изготовления
  • постоянное потребление энергии
  • Именно эти ограничения SRAM не позволяют делать на основе нее оперативную память.

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

    В современных процессорах кэш делится на несколько уровней

    Алгоритм работы кэш памяти

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

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

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

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

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

    Интеллектуальная кэш-память

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

    Первый кэш

    Некоторое подобие кэша было еще в процессоре 8086. В нем было 6 байт кэша команд. Небольшое количество, без больших интеллектуальных способностей, но он значительно повышал быстродействие системы. Но настоящий кэш стал использоваться с процессором 80386. В те времена для обращения к оперативной памяти нужно было 120 нс времени. Но рядом с процессором ставили специальную микросхему кэш-памяти и доступ к ней просходил в 12 раз быстрее, чем к оперативной памяти. Но эта память (SRAM) была достаточно дорогой и ставить микросхему кэш памяти большого объема было нерентабельно. Поэтому первые кэши процессора были ограничены объемом 64 килобайт и устанавливались они отдельно. Начиная с процесора 80486 кэш процессора стал оправдывать свое название, потому что устанавливался прямо в процессоре.

    Место установки кэша

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

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

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

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

    Уровни кэша

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

    Самой быстрой памятью является кэш первого уровня -- L1-cache. По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков. В современных процессорах обычно кэш L1 разделен на два кэша, кэш команд (инструкций) и кэш данных (Гарвардская архитектура). Большинство процессоров без L1 кэша не могут функционировать. L1 кэш работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт. Зачастую является возможным выполнять несколько операций чтения/записи одновременно. Латентность доступа обычно равна 2?4 тактам ядра. Объём обычно невелик -- не более 384 Кбайт.

    Вторым по быстродействию является L2-cache -- кэш второго уровня, обычно он расположен на кристалле, как и L1. В старых процессорах -- набор микросхем на системной плате. Объём L2 кэша от 128 Кбайт до 1?12 Мбайт. В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования -- при общем объёме кэша в nM Мбайт на каждое ядро приходится по nM/nC Мбайта, где nC количество ядер процессора. Обычно латентность L2 кэша, расположенного на кристалле ядра, составляет от 8 до 20 тактов ядра.

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

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

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

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

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

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

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

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

    Также, немаловажным фактором является размещение кэш-памяти. Размещена она, на самом кристалле процессора, что значительно уменьшает время доступа к ней. Ранее, кэш память некоторых уровней, размещалась за пределами кристалла процессора, на специальной микросхеме 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.

    we-it.net

    Для чего нужен кэш и сколько его необходимо?

    Речь идет не о наличности, а о кэш-памяти процессоров и не только. Из объема кэш-памяти торгаши сделали очередной коммерческий фетиш, в особенности с кэшем центральных процессоров и жестких дисков (у видеокарт он тоже есть – но до него пока не добрались). Итак, есть процессор ХХХ с кэшем L2 объемом 1Мб, и точно такой же процессор XYZ с кэшем объемом 2Мб. Угадайте какой лучше? Аа – вот не надо так сразу!

    Кэш-память – это буфер, куда складывается то, что можно и/или нужно отложить на потом. Процессор выполняет работу и возникают ситуации, когда промежуточные данные нужно где-то сохранить. Ну конечно в кэше! – ведь он на порядки быстрее, чем оперативная память, т.к. он в самом кристалле процессора и обычно работает на той же частоте. А потом, через какое то время, эти данные он выудит обратно и будет снова их обрабатывать. Грубо говоря как сортировщик картошки на конвейере, который каждый раз, когда попадается что-то другое кроме картошки (морковка) , бросает ее в ящик. А когда тот полон – встает и выносит его в соседнюю комнату. В этот момент конвейер стоит и наблюдается простой. Объем ящика и есть кэш в данной аналогии. И сколько его надо – 1Мб или 12? Понятно, что если его объем мал придется слишком много времени уделят выносу и будет простой, но с какого то объема его дальнейшее увеличение ничего не даст. Ну будет ящик у сортировщика на 1000кг морковки – да у него за всю смену столько ее не будет и от этого он НЕ СТАНЕТ В ДВА РАЗА БЫСТРЕЕ! Есть еще одна тонкость – большой кэш может вызывать увеличение задержек обращения к нему во-первых, а заодно повышается и вероятность возникновения ошибок в нем, например при разгоне – во-вторых. (о том КАК в этом случае определить стабильность/нестабильность процессора и выяснить что ошибка возникает именно в его кэше, протестировать L1 и L2 – можно прочесть тут.) В-третьих – кэш выжирает приличную площадь кристалла и транзисторный бюджет схемы процессора. То же самое касается и кэш памяти жестких дисков. И если архитектура процессора сильная – у него будет востребовано во многих приложениях 1024Кб кэша и более. Если у вас быстрый HDD – 16Мб или даже 32Мб уместны. Но никакие 64Мб кэша не сделают его быстрее, если это обрезок под названием грин версия (Green WD) с частотой оборотов 5900 вместо положеных 7200, пусть даже у последнего будет и 8Мб. Потом процессоры Intel и AMD по-разному используют этот кэш (вообще говоря AMD более эффективно и их процессоры часто комфортно довольствуются меньшими значениями). Вдобавок у Intel кэш общий, а вот у AMD он персональный у каждого ядра. Самый быстрый кэш L1 у процессоров AMD составляет по 64Кб на данные и инструкции, что вдвое больше, чем у Intel. Кэш третьего уровня L3 обычно присутствует у топовых процессоров наподобие AMD Phenom II 1055T X6 Socket AM3 2.8GHz или у конкурента в лице Intel Core i7-980X. Прежде всего большие объемы кэша любят игры. И кэш НЕ любят многие профессиональные приложения (см. Компьютер для рендеринга, видеомонтажа и профприложений). Точнее наиболее требовательные к нему вообще равнодушны. Но чего точно не стоит делать, так это выбирать процессор по объему кэша. Старенький Pentium 4 в последних своих проявлениях имел и по 2Мб кэша при частотах работы далеко за 3ГГц – сравните его производительность с дешевеньким двуядерничком Celeron E1***, работающим на частотах около 2ГГц. Он не оставит от старичка камня на камне. Более актуальный пример – высокочастотный двухъядерник E8600 стоимостью чуть не 200$ (видимо из-за 6Мб кэша) и Athlon II X4-620 2,6ГГц, у которого всего 2Мб. Это не мешает Атлону разделать конкурента под орех.

    Как видно на графиках – ни в сложных программах, ни в требовательных к процессору играх никакой кэш не заменит дополнительных ядер. Athlon с 2Мб кэша (красный) легко побеждает Cor2Duo с 6Мб кэша даже при меньшей частота и чуть не вдвое меньшей стоимости. Так же многие забывают, что кэш присутствует в видеокартах, потому что в них, вообще говоря, тоже есть процессоры. Свежий пример видеокарта GTX460, где умудряются не только порезать шину и объем памяти (о чем покупатель догадается) – но и КЭШ шейдеров соответственно с 512Кб до 384Кб (о чем покупатель уже НЕ догадается). А это тоже добавит свой негативный вклад в производительность. Интересно еще будет выяснить зависимость производительности от объема кэша. Исследуем как быстро она растет с увеличением объема кэша на примере одного и того же процессора. Как известно процессоры серии E6*** , E4*** и E2*** отличаются только объемом кэша (по 4, 2 и 1 Мб соответственно). Работая на одинаковой частоте 2400МГц они показывают следующие результаты.

    Как видно – результаты не слишком отличаются. Скажу больше – если бы участвовал процессор с объемом 6Мб – результат увеличился бы еще на чуть-чуть, т.к. процессоры достигают насыщения. А вот для моделей с 512Кб падение было бы ощутимым. Другими словами 2Мб даже в играх вполне достаточно. Резюмируя можно сделать такой вывод – кэш это хорошо, когда УЖЕ много всего остального. Наивно и глупо менять скорость оборотов винчестера или количество ядер процессора на объем кэша при равной стоимости, ибо даже самый емкий ящик для сортировки не заменит еще одного сортировщика Но есть и хорошие примеры.. Например Pentium Dual-Core в ранней ревизии по 65-нм процессу имел 1Мб кэша на два ядра (серия E2160 и подобные), а поздняя 45-нм ревизия серии E5200 и дальше имеет уже 2Мб при прочих равных условиях (а главное – ЦЕНЕ). Конечно же стоит выбирать именно последний.

    compua.com.ua

    Что такое кэш, зачем он нужен и как работает

    Что является самым грязным местом на компьютере? Думаете, корзина? Папки пользователя? Система охлаждения? Не угадали! Самое грязное место – это кэш! Ведь его постоянно приходится чистить!

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

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

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

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

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

    • Современный центральный процессор содержит 2-3 основных уровня кеш-памяти (ее также называют сверхоперативной памятью), размещенных в виде аппаратных модулей на одном с ним кристалле. Самым быстрым и наименьшим по объему (32-64 Kb) является cache Level 1 (L1) – он работает на той же частоте, что и процессор. L2 занимает среднее положение по скорости и емкости (от 128 Kb до 12 Mb). А L3 – самый медленный и объемный (до 40 Mb), на некоторых моделях отсутствует. Скорость L3 является низкой лишь относительно его более быстрых собратьев, но и он в сотни раз шустрее самой производительной оперативки.

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

    Сегодня три уровня кеширования – уже не предел. С появлением архитектуры Sandy Bridge корпорация Intel реализовала в своей продукции дополнительный cache L0 (предназначенный для хранения расшифрованных микрокоманд). А наиболее высокопроизводительные ЦП имеют и кэш четвертого уровня, выполненный в виде отдельной микросхемы.

    Схематично взаимодействие уровней cache L0-L3 выглядит так (на примере Intel Xeon):

    Человеческим языком о том, как всё это работает

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

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

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

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

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

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

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

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

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

    f1comp.ru

    Кэш, кеш, cash - память. Для чего нужна кэш память? Влияние размера и скорости кэша на производительность.

    Кэш - память (кеш, cash, буфер - eng.) - применяется в цифровых устройствах, как высокоскоростной буфер обмена. Кэш память можно встретить на таких устройствах компьютера как жёсткие диски, процессоры, видеокарты, сетевые карты, приводы компакт дисков и многих других.

    Принцип работы и архитектура кэша могут сильно отличаться.

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

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


    Такая архитектура чаще всего встречается на жёстких дисках, SSD накопителях и центральных процессорах (CPU).

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

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

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

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

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

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

    Другие функции и особенности.

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

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

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

    Размер кэша, влияние на производительность и другие характеристики.

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

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

    Кэш центрального процессора

    Функционирование

    Диаграмма кэша памяти ЦПУ

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

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

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

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

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

    При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи .

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

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

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

    Включайся в дискуссию
    Читайте также
    Людмила Самотик - Лексика современного русского языка: учебное пособие
    Ниндзя – супер шпионы средневековой Японии
    Все, что вы хотели узнать о местоимениях, но не знали, как спросить Относительные и указательные местоимения правило