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

Кэш оперативной памяти

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


Вы можете запускать его каждый раз, когда ОС начинает «подтормаживать».

Очистка кэша DNS

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


Обратите внимание! Если вы попробуете скопировать команду в консоль с помощью «Control» + «V», у вас ничего не получится. Чтобы вставить данные в эту программу, необходимо вызвать контекстное меню и выбрать действие «Вставить».

Очистка cache-памяти браузера

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

Здравствуйте.

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

Кстати, данная статья будет особенно актуальна для тех, кому приходится работать на компьютерах с небольшим количеством оперативной памяти (чаще всего не более 1-2 ГБ). На таких ПК нехватка оперативной памяти ощущается, что называется, «на глаз».

1. Как уменьшить использование оперативной памяти (Windows 7, 8)

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

Если памяти на компьютере не много (не более 2 ГБ) - то эта функция, чаще всего, не ускоряет работу, а наоборот ее замедляет. Поэтому в этом случае рекомендуется ее отключить.

Как отключить Superfetch

1) Зайти в панель управления Windows и перейти в раздел «Система и безопасность».

Рис. 1. Администрирование -> службы

3) В списке служб находим нужную (в данном случае Superfetch), открываем ее и ставим в графе «тип запуска» - отключена , дополнительно отключаем ее. Далее сохраняем настройки и перезагружаем ПК.

После перезагрузки компьютера использование оперативной памяти должно снизиться. В среднем помогает снизить использование ОЗУ на 100-300 МБ (не много, но и не так мало при 1-2 ГБ ОЗУ).

2. Как освободить оперативную память

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

Кстати, многие программы, даже если вы их закрыли - могут находится в оперативной памяти ПК!

Для просмотра всех процессов и программ в ОЗУ рекомендуется открыть диспетчер задач (можно воспользоваться и утилитой process explorer).

Для этого нажмите кнопки CTRL+SHIFT+ESC .

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

Между тем, перезапустить Explorer (Проводник) достаточно просто. Сначала снимаете задачу с «проводника» - в результате у вас будет на мониторе «пустой экран» и диспетчер задач (см. рис. 4). После этого нажимаете в диспетчере задач «файл/новое задание» и пишите команду «explorer » (см. рис. 5), нажимаете клавишу Enter .

Проводник будет перезапущен!

3. Программы для быстрой очистки оперативной памяти

1) Advance System Care

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

Рис. 6. Advance System Care

2) Mem Reduct

Официальный сайт: http://www.henrypp.org/product/memreduct

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

Кстати, программа небольшого размера (~300 Кб), поддерживает русский язык, бесплатная, имеется портативная версия не нуждающаяся в установке. В общем, лучше и придумать сложно!

PS

На этом у меня все. Надеюсь такими простыми действиями вы заставить работать свой ПК быстрее 🙂

Архитектура современных 32-разрядных процессоров включает ряд средств кэширования памяти: два уровня кэша инструкций и данных (L1 Cache и L2 Cache), буферы ассоциативной трансляции (TLB) блока страничной переадресации и буферы записи. Эти средства в разных вариациях (на кристалле, картридже процессора или на системной плате) представлены в системах с процессорами 486, Pentium и Р6. В процессоре 80386 (Intel) имелся только TLB, а кэш-память, устанавливаемая на системной плате, не имела поддержки со стороны процессора.
Все механизмы кэширования в основном прозрачны для прикладных программ и после разрешения кэширования пропускают через себя потоки инструкций и данных без требования явного программного управления. Однако знание особенностей механизмов кэширования помогает в оптимизации кода. Так например, можно определить оптимальные размеры одновременно обрабатываемых структур данных, при которых кэш не «буксует» (cache thrashing). Процессоры разных моделей имеют различные характеристики отдельных элементов кэша. Определить характеристики элементов кэша процессоров Р6 позволяет вызов инструкции CPUID(2). Заметим, что не все модели процессоров способны кэшировать весь объем физически адресуемой памяти.
Кэш-память процессоров строится с учетом возможности обращений к памяти со стороны внешних абонентов – других процессоров или иных контроллеров шины. Процессоры имеют механизмы внешнего слежения за состоянием собственного кэша с соответствующими аппаратными интерфейсами. Для поддержания согласованности данных кэша и основной памяти процессор отрабатывает циклы слежения (Snoop Cycle или Inquire Cycle), инициированные внешней (для него) системой. В этих циклах, происходящих при обращении к памяти со стороны внешнего абонента, процессор определяет присутствие затребованной области в своем собственном кэше. Если область отображается в кэше, то действия процессора зависят от состояния соответствующей строки кэша и типа внешнего обращения. Обращение по записи вызовет аннулирование данной строки. Обращение по чтению к области, соответствующей модифицированной («грязной») строке, вызовет выгрузку ее содержимого в основную память, прежде чем внешний абонент выполнит реальное считывание. В процессорах Р6 обращение к «грязной» строке со стороны другого процессора может вызывать выгрузку ее содержимого непосредственно в обращающийся процессор, что экономит время. Выгрузка этой строки в основную память будет произведена позже, согласно алгоритму обратной записи.
Кэш процессоров, начиная с Pentium, поддерживает протокол MESI, названный по определяемым им состояниям М (Modified), E (Exclusive), 5 (Shared), I (Invalid). Первичный кэш инструкций реализует протокол лишь в части «SI», поскольку он не допускает записи. Состояния строк для каждого процессора определяются следующим образом:

  • М-состояние – строка присутствует в кэше только этого процессора и модифицирована, то есть отличается от содержимого основной памяти; запись в эту строку не приведет к генерации внешнего (по отношению к локальной шине) цикла обращения;
  • Е-состояние – строка присутствует в кэше только этого процессора, но не модифицирована (ее копия в основной памяти действительна); запись переведет ее в М-состояние, не вызывая внешнего цикла обращения;
  • S-состояние – строка присутствует в кэше этого процессора и потенциально может присутствовать в кэшах других процессоров, копия в памяти действительна; запись в нее должна сопровождаться сквозной записью в основную память, что повлечет аннулирование соответствующих строк в других кэшах;
  • I-состояние – строка отсутствует в кэше, ее чтение может привести к генерации цикла заполнения строки; запись в нее будет сквозной и выйдет на внешнюю шину.
Процессор контролирует операции записи в память на попадание в область, представленную в кэше инструкций. Контроль выполняется на уровне физических адресов, в случае попадания строка аннулируется.
В пространстве памяти компьютера имеются области, для которых кэширование принципиально недопустимо (например, разделяемая память адаптеров) или для которых непригодна политика обратной записи. Кроме того, кэширование иногда полезно отключать при выполнении однократно исполняемых участков программы (например, инициализации) с тем, чтобы из кэша не вытеснялись более полезные фрагменты.
В процессорах шестого поколения в связи с их «беспорядочностью» и «спекулятивностью» обращения к памяти могут производиться с различными методами повышения эффективности. По возможностям кэширования память можно классифицировать следующим образом.
  • Некэшируемая память (Uncacheable). Все обращения процессора по чтению и записи выполняются строго в порядке, предписанном программным кодом, и выходят на системную шину. Никакие спекулятивные чтения и предварительные выборки не используются. Такой тип требуется для ввода-вывода, отображенного на память. Работа процессора в этом режиме с обычным ОЗУ приведет к значительному снижению производительности.
  • Память с комбинируемой записью WC (Write Combining). Некэшируемая память, когерентность памяти не поддерживается протоколом шины. Спекулятивное чтение допустимо, записи могут комбинироваться и откладываться до любого события, вызывающего сериализацию (инструкция CPUID обращение к некэшируемой памяти, прерывание...). Такой тип применим например, для видеопамяти графического адаптера (порядок записей неважен).
  • Память со сквозной записью WT (Write-through). Кэшируемая память, все операции записи и отражаются в кэше, и выходят на системную шину. Чтения по возможности выполняются из кэша, кэш-промахи вызывают заполнение строк кэша. Спекулятивное чтение и комбинирование записей разрешены. Данный тип применим, например, для буферов кадров, а также для памяти, к которой могут обращаться устройства, подключенные к шине и не поддерживающие протоколы обеспечения когерентности.
  • Память с обратной записью WB (Write-back). Кэшируемая память, все операции чтения и записи по возможности выполняются только с кэш-памятью. Запись на системную шину выходит только при необходимости освобождения строк или по требованию от других абонентов шины, что уменьшает необязательный трафик шины. Спекулятивное чтение и комбинирование записи разрешены. Этот тип самый производительный, но требует поддержки протокола обеспечения когерентности от всех абонентов шины, обращающихся к данной области памяти.
  • Память с защищенной записью WP (Write protected). Кэшируемая память, операции чтения по возможности выполняются из кэша, промахи вызывают заполнение строк. Записи выходят на системную шину и вызывают аннулирование строк в кэшах всех остальных абонентов шины (процессоров).
Доступные методы кэширования зависят от возможностей процессора. Базовые методы (сквозная и обратная запись или отмена кэширования) управляются атрибутами системы управления страничной переадресации, более совершенные методы программируются только через регистры MTRR или PAT, таковые имеются в процессоре.
Memory Type Range Registers - регистры, описывающие свойства областей памяти.
Page Attribute Table - таблица атрибутов страниц памяти.

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

Что собой представляет кэш в Windows 7

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

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

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

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

Потребность в чистке кэша обусловлена необходимостью стирать собранную информацию по нескольким причинам:

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

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

    DNS (ДНС)

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

    Способ 1. Используем кнопку «Пуск».

    Выбираем системную кнопку «Пуск», после чего - «Все программы». Ищем в левой части пункт «Стандартные», раскрываем его, затем переходим на пункт «Командная строка».

    Находим «Командную строку» в левом столбце меню

    Способ 2. Используем поисковую строку.

    Снова задействуем кнопку «Пуск», но теперь используем поисковую строку. Набираем в ней «Командная строка». Выбираем соответствующую активную строку в найденных результатах. К тому же результату приведёт поиск команды cmd.

    Переходим на верхнюю строку в результатах поиска

    Способ 3. Используем утилиту «Выполнить».

    С помощью горячего сочетания клавиш Win (с фирменным знаком Windows) и R вызываем небольшое окно утилиты «Выполнить». Теперь в строке «Открыть» вводим команду cmd, после чего выбираем «ОК» или просто нажимаем Enter.

    Набираем команду cmd и нажимаем «Ввод»

    Вызвав любым понравившимся способом окно командной строки, набираем в области ввода команду чистки DNS-кэша: ipconfig /flushdns и нажимаем клавишу Enter . Через несколько секунд компьютер сообщает об успешной очистке кэша.

    Очистка занимает доли секунды

    Оперативная память

    Простой путь очистки кэша оперативной памяти - запуск утилиты rundll32.exe, которая находится в системном каталоге C:\Windows\System32. Заходим в эту папку, находим файл и запускаем его.

    Выбираем утилиту из списка и запускаем

    Если утилита не запускается, то, возможно, у учётной записи пользователя нет административных прав. Решается проблема просто. На иконке rundll32.exe нажимаем правую клавишу мышки, в появившемся списке находим строку «Запуск от имени администратора». Если планируем запускать эту утилиту часто, то в том же всплывающем меню выбираем пункт «Создать ярлык» и помещаем ярлык на Рабочий стол.

    Жёсткий диск и эскизы

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

    Это тоже важный компонент системы, который можно вызвать несколькими способами:

  • Через «Проводник». Открываем «Проводник», выбираем иконку диска, нажимаем на ней правую клавишу мышки и во всплывающем меню переходим по пункту «Свойства». В открывшемся окошке переходим на закладку «Общие», где находится кнопка «Очистка диска».
  • Через поиск. Выбираем экранную кнопку «Пуск», в поисковой строке набираем «Очистка диска» и переходим в окошко утилиты.
  • Через окно «Выполнить». Нажимаем Win+R, в строчку «Открыть» вводим команду cleanmgr.exe и «ОК».
  • Воспользовавшись любым из этих способов, попадаем в окошко «Очистка диска». Первое, что автоматически делает утилита, это анализ накопителя на предмет занимаемого объёма временными файлами.

    Вначале проходит анализ

    Закончив проверку, Windows 7 выводит окно, в центральной части которого находится список категорий временных файлов и занимаемый ими объём. Но очищены будут только те, слева от которых стоит пометка. Например, отметив пункт «Эскизы», мы заставим систему очистить кэшированные картинки.

    Напротив «Эскизы» должна стоять пометка

    Закончив редактирование списка, нажимаем экранную кнопку «ОК», подтверждая своё намерение очистить диск.

    Запрет кэширования эскизов

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

    С помощью Win+R вызываем окно «Выполнить» и набираем команду gpedit.msc.

    Теперь вводим команду gpedit.msc

    Нажимаем экранную кнопку «ОК» и попадаем в окно «Редактор локальной групповой политики».

    Перемещаясь по папкам слева находим нужную вкладку

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

    Осталось вызвать контекстное меню и изменить параметр

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

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

    С помощью поиска можно найти любую утилиту

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

    Ставим пометку возле нужной строки

    Осталось лишь нажать «Применить», затем «ОК» для подтверждения своего намерения. Внесённые изменения вступят в силу после перезагрузки системы.

    Интернет-браузеры

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

    Средствами Windows 7 можно настроить работу встроенного браузера Internet Explorer. Для этого нажимаем кнопку «Пуск» и в строке поиска набираем «Свойства браузера».

    Ищем «Свойства браузера»

    Переходим по верхней активной строчке в результатах поиска и попадаем в окно «Свойства: Интернет».

    Нужные нам кнопки находятся на первой же вкладке

    Чтобы немедленно удалить журнал браузера, нажимаем экранную кнопку «Удалить». Чтобы делать то же самое каждый раз после завершения работы Internet Explorer, ставим пометку в поле рядом с этой кнопкой. Но можно ещё и настроить список удаляемого, для этого нажимаем кнопку «Параметры».

    Во вкладке «Временные файлы Интернета» можно ограничить размер временных файлов браузера или переместить их на другой диск.

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

    При необходимости можно запретить браузеру кэшировать данные

    Для настройки тех же параметров в других браузерах придётся использовать их собственный интерфейс. Например, в Google Chrome (а также в Opera, Mozilla и IE) соответствующее окно вызывается сочетанием горячих клавиш Ctrl+Shift+Del.

    Полезные данные можно оставить, а остальные регулярно чистить

    Интерфейс настроек простой и понятный. Можно настроить регулярную очистку истории, а также определить, какие элементы (например, пароли) удалять не стоит.

    Видео: как очистить кэш в различных браузерах

    Очистка кэша компьютера с помощью программ

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

    Интерфейс пакета CCleaner прост и дружелюбен

    Достаточно расставить метки и нажать экранную кнопку «Очистка».

    Аналогичные функции есть у многих программ оптимизации Windows, наиболее популярными из которых являются следующие:

  • Advanced SystemCare
  • AusLogics BoostSpeed
  • Glary Utilities
  • nCleaner
  • Revo Uninstaller
  • TuneUp Utilities
  • Каждый пакет специализируется на своём наборе утилит, поэтому нельзя однозначно сказать, какой из них лучший. Но функция очистки кэша не относится к сложным, поэтому для этой цели можно использовать любой из них.

    Меры предосторожности

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

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

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

    Основная память, реализуемая на относительно медленных по своей природе микросхемах динамической памяти, обычно требует ввода тактов ожидания про­цессора (wait states) в циклы обращения к памяти. Статическая память, пост­роенная, как и процессор, на триггерных ячейках, по своей природе способна догонять современные процессоры по быстродействию и избежать (или хотя бы сократить количество) тактов ожидания. Реализация основной памяти на микросхемах SRAM технически и экономически не оправдана, поскольку плот­ность упаковки информации у них существенно ниже, а удельная стоимость хранения и энергопотребление (или, что важнее, тепловыделение) существенно выше, чем у DRAM. Разумным компромиссом для построения экономичных и производительных систем явился иерархический способ построения оператив­ной памяти, пришедший в архитектуру PC с появлением процессора 386, у которого тактовая частота уже значительно отрывалась от возможностей мик­росхем DRAM того времени. Идея этого способа заключается в сочетании основной памяти большого объема на DRAM с относительно небольшой кэш-памятью на быстродействующих микросхемах SRAM. Идея, конечно, далеко не нова - сверхоперативная память применялась давно, еще в «больших» компь­ютерах.

    В переводе слово «кэш» (cache) означает склад или тайник («заначка»). Тайна этого склада заключается в его «прозрачности» - для программы он не представляет собой дополнительной адресуемой области памяти. Он является дополнительным и быстродействующим хранилищем копий блоков информа­ции основной памяти, к которым, вероятно, в ближайшее время будет обраще­ние. Кэш не может хранить копию всей основной памяти, поскольку его объем во много раз меньше объема основной памяти. Он хранит лишь ограниченное количество блоков данных и каталог (cache directory) - список их текущего соответствия областям основной памяти. Кроме того, кэшироваться может не вся память, доступная процессору: обычно кэшируется только основная дина­мическая память системной платы (память, установленная на адаптерах, не кэшируется), и из этой памяти кэшируется только часть (распространенные версии чипсетов для Pentium часто позволяют кэшировать только первые 64 Мбайт ОЗУ).

    При каждом обращении к кэшируемой памяти контроллер кэш-памяти по каталогу проверяет, есть ли действительная копия затребованных данных в кэше. Если она там есть, то это случай кэш-попадания (cache hit), и обращение за данными происходит только к кэш-памяти. Если действительной копии там нет, то это случай кэш-промаха (cache miss), и данные берутся из основной памяти. В соответствии с алгоритмом кэширования блок данных, считанный из основной памяти при определенных условиях, заместит один из блоков кэша. От «ловкости» и «предусмотрительности» алгоритма зависит процент попада­ний и, следовательно, эффективность кэширования. Поиск блока в списке дол­жен производиться достаточно быстро, чтобы «задумчивостью» в принятии решения не свести на нет выигрыш от применения быстродействующей памяти. Обращение к основной памяти может начинаться одновременно с поиском в каталоге, а в случае попадания - прерываться (архитектура Look Aside). Это экономит время, но лишние обращения к основной памяти ведут к излишнему энергопотреблению. Другой вариант - обращение к внешней памяти начинает­ся только после фиксации случая промаха (архитектура Look Through), но на этом теряется, по крайней мере, один такт процессора, зато экономится энергия.

    В современных компьютерах кэш обычно строится по двухуровневой схеме. Первичный кэш (Li Cache) встроен во все процессоры класса 486 и старше, он имеется и у некоторых моделей 386. Объем его невелик (8-32 Кбайт), и для повышения производительности для данных и команд часто используется раз­дельный кэш (так называемая Гарвардская архитектура - противоположность Принстонской, использующей общую память для команд и данных). Быстро­действие его таково, что он работает на внутренней тактовой частоте процессора (CPU Clock), уже достигшей 333 МГц. Вторичный кэш (L2 Cache) обычно ус­танавливается на системной плате. Типовым для компьютеров на процессоре i486 считается объем 64-256 Кбайт, для Pentium - 256-512 Кбайт, новые чипсеты поддерживают до 2 Мбайт L2 Cache. Его быстродействие обеспечивает ра­боту на внешней тактовой частоте процессора - частоте системной шины (Host Bus Clock), типовое значение которой от диапазона 50-66 МГц уже переходит к 75, 83 и даже 100-125 МГц. В Pentium Pro синхронный L2 Cache располо­жен в одном корпусе с процессором и работает на его внутренней частоте.

    Кэш-контроллер должен обеспечивать когерентность (coherency) - согласо­ванность данных кэш-памяти обоих уровней с данными в основной памяти, причем обращение к этим данным может производиться не только со стороны процессора (а процессоров может быть и несколько, и у каждого может быть свой внутренний кэш), но и со стороны других активных (bus-master) адаптеров, подключенных к шинам (PCI, VLB, ISA...).

    Контроллер кэша оперирует строками (cache line) фиксированной длины. Строка может хранить копию блока основной памяти, размер которого, естес­твенно, совпадает с длиной строки. С каждой строкой кэша связана информация об адресе скопированного в нее блока основной памяти и признаки ее состоя­ния. Строка может быть действительной (valid) - это означает, что в текущий момент времени она достоверно отражает соответствующий блок основной па­мяти, или недействительной (пустой). Информация о том, какой именно блок занимает данную строку (то есть старшая часть адреса или номер страницы), и ее состояние называется тегом (tag) и хранится в связанной с данной строкой ячейке специальной памяти тегов (tag RAM). В операциях обмена с основной памятью обычно строка участвует целиком (несекторированный кэш), для про­цессоров i486 и старше длина строки совпадает с объемом данных, передаваемых за один пакетный цикл (для 486 это 4х4 = 16 байт, для Pentium - 4х8=32 байт). Возможен и вариант секторированного (sectored) кэша, при котором одна строка содержит несколько смежных ячеек - секторов, размер которых соответствует минимальной порции обмена данных кэша с основной памятью. При этом в записи каталога, соответствующей каждой строке, должны храниться биты дей­ствительности для каждого сектора данной строки. Секторирование позволяет экономить память, необходимую для хранения каталога при увеличении объема кэша, поскольку большее количество бит каталога отводится под тег и выгоднееиспользовать дополнительные биты действительности, чем увеличивать глубину индекса (количество элементов) каталога.

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

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

    Алгоритм WB позволяет уменьшить количество операций записи на шине основной памяти. Если блок памяти, в который должна производиться запись, отображен и в кэше, то физическая запись сначала будет произведена в эту действительную строку кэша, и она будет отмечена как грязная (dirty), или модифицированная, то есть требующая выгрузки в основную память. Только после этой выгрузки (записи в основную память) строка станет чистой (clean), и ее можно будет использовать для кэширования других блоков без потери целостности данных. В основную память данные переписываются только целой строкой (после заполнения всех ее секторов в случае секторированного кэша) или непосредственно перед ее замещением в кэше новыми данными. Данный алгоритм сложнее в реализации, но существенно эффективнее, чем WT. Под­держка системной платой кэширования с обратной записью требует обработки дополнительных интерфейсных сигналов для обеспечения выгрузки модифи­цированных строк в основную память, если к этой области производится обра­щение со стороны таких контроллеров шины, как графические адаптеры, контроллеры дисков, сетевые адаптеры и т. п.

    В зависимости от способа определения взаимного соответствия строки кэша и области основной памяти различают три архитектуры кэш-памяти: кэш пря­мого отображения (direct-mapped cache), полностью ассоциативный кэш (fully associative cache) и их комбинация - частично- или наборно-ассоциативный кэш (set-associative cache).