Кэш-память и специальная память
31.05.13
Кэш или кеш (англ. cache, от фр. cacher — прятать) —
промежуточный буфер с быстрым доступом, содержащий
копию той информации, которая хранится в памяти с
менее быстрым доступом, но с наибольшей вероятностью
может быть оттуда запрошена.
Кэш  или сверхоперативная память — очень быстрое
ЗУ небольшого объёма, которое используется при обмене
данными между микропроцессором и оперативной
памятью для компенсации разницы в скорости обработки
информации процессором и несколько менее
быстродействующей оперативной памятью.
Доступ к данным в кэш идёт быстрее, чем выборка исходных
данных из медленной памяти или их перевычисление, за
счёт чего уменьшается среднее время доступа.
Впервые слово «кэш» в компьютерном контексте было
использовано в 1967 году во время подготовки статьи для
публикации в журнале «IBM Systems Journal».
Статья касалась усовершенствования памяти в
разрабатываемой модели 85 из серии IBM System/360.
Редактор журнала Лайл Джонсон попросил придумать
более описательный термин, нежели «высокоскоростной
буфер», но из-за отсутствия идей сам предложил слово
«кэш».
Статья была опубликована в начале 1968 года, авторы были
премированы IBM, их работа получила распространение и
впоследствии была улучшена, а слово «кэш» вскоре стало
использоваться в компьютерной литературе как
общепринятый термин.
Кэш — это память с большей скоростью
доступа, предназначенная для
ускорения обращения к данным,
содержащимся постоянно в памяти с
меньшей скоростью доступа (далее
«основная память»).
Кэширование применяется ЦПУ,
жёсткими дисками, браузерами и веб-
серверами.
Кэш состоит из набора записей. Каждая запись ассоциирована с
элементом данных или блоком данных (небольшой части данных),
которая является копией элемента данных в основной памяти.
Каждая запись имеет идентификатор, определяющий соответствие
между элементами данных в кэше и их копиями в основной памяти.
Кэш-памятью управляет специальное устройство — контроллер,
который, анализируя выполняемую программу, пытается
предвидеть, какие данные и команды вероятнее всего
понадобятся в ближайшее время процессору, и
подкачивает их в кэш-память. 
Когда клиент кэша (ЦПУ, веб-браузер, операционная система)
обращается к данным, прежде всего исследуется кэш.
Если в кэше найдена запись с идентификатором, совпадающим с
идентификатором затребованного элемента данных, то
используются элементы данных в кэше. Такой случай
называется попаданием кэша.
Если в кэше не найдено записей, содержащих затребованный
элемент данных, то он читается из основной памяти в кэш, и
становятся доступным для последующих обращений. Такой
случай называется промахом кэша.
Процент обращений к кэшу, когда в нём найден результат,
называется уровнем попаданий или коэффициентом попаданий  в
кэш.
 Соотношение числа попаданий и промахов определяет
эффективность кэширования.
Если кэш ограничен в объёме, то при промахе
может быть принято решение отбросить
некоторую запись для освобождения
пространства. Для выбора отбрасываемой
записи используются разные алгоритмы
вытеснения.
При модификации элементов данных в кэше
выполняется их обновление в основной памяти.
Задержка во времени между модификацией
данных в кэше и обновлением основной памяти
управляется так называемой политикой
записи.
Современные модели центральных
процессоров (ЦП) обладают собственным
кэшем, для того чтобы минимизировать
доступ к оперативной памяти (ОЗУ),
которая медленнее, чем регистры.
Кэш-память может давать значительный
выигрыш в производительности, в случае
когда тактовая частота ОЗУ значительно
меньше тактовой частоты ЦП.
Тактовая частота для кэш-памяти обычно не
намного меньше частоты ЦП.
8
Кэш-память
Проблема – тактовая частота работы процессора значительно
выше, чем тактовая частота ОЗУ, процессор
«простаивает», ожидая данные.
кэш-память
ОЗУ
Чтение из ОЗУ – сначала в кэш. Если нужная ячейка уже
есть в кэше, она берется из кэша (быстро).
медленно
быстро быстро
Кэш центрального процессора разделён на несколько
уровней.
Для универсальных процессоров — до 3. Кэш-память уровня
N+1 как правило больше по размеру и медленнее по
скорости обращения и передаче данных, чем кэш-память
уровня N.
Самой быстрой памятью является кэш первого уровня —
L1-cache.
По сути, она является неотъемлемой частью процессора,
поскольку расположена на одном с ним кристалле и
входит в состав функциональных блоков. Состоит из кэша
команд и кэша данных.
L1 кэш работает на частоте процессора, и, в общем случае,
обращение к нему может производиться каждый такт
(зачастую является возможным выполнять даже
несколько чтений/записей одновременно).  Объём
обычно невелик — не более 128 Кбайт.
Вторым по быстродействию является L2-cache — кэш
второго уровня.
Обычно он расположен либо на кристалле, как и L1, либо в
непосредственной близости от ядра, например, в
процессорном картридже (только в слотовых
процессорах).
В старых процессорах — набор микросхем на системной
плате.
Объём L2 кэша от 128 Кбайт до 1−12 Мбайт.
В современных многоядерных процессорах кэш второго
уровня, находясь на том же кристалле, является памятью
раздельного пользования — при общем объёме кэша в 8
Мбайт на каждое ядро приходится по 2 Мбайта.
Кэш третьего уровня наименее
быстродействующий и обычно
расположен отдельно от ядра ЦП, но он
может быть очень внушительного
размера — более 32 Мбайт.
L3 кэш медленнее предыдущих кэшей, но
всё равно значительно быстрее, чем
оперативная память.
В многопроцессорных системах находится в
общем пользовании.
12
Кэш-память
• увеличение скорости работы, если часто
нужны одни и те же ячейки
• неэффективно, если все время нужны разные
ячейки
Многоступенчатое кэширование:
процессор
ядро
ОЗУ
L1 L2
64 Кб
128 Кб…4Мб
L1 быстрее L2!
Многие периферийные устройства хранения
данных используют кэш для ускорения работы,
в частности, жёсткие диски используют кэш-
память от 1 до 64 Мбайт, устройства чтения
CD/DVD/BD-дисков также кэшируют
прочитанную информацию для ускорения
повторного обращения.
Операционная система также использует часть
оперативной памяти в качестве кэша дисковых
операций (в том числе для внешних устройств,
не обладающих собственной кэш-памятью, в
том числе жёстких дисков, flash-памяти и
гибких дисков).
Применение кэширования внешних накопителей обусловлено
следующими факторами:
 скорость доступа процессора к оперативной памяти во много раз
больше, чем к памяти внешних накопителей;
 некоторые блоки памяти внешних накопителей используются
несколькими процессами одновременно и имеет смысл прочитать
блок один раз, затем хранить одну копию блока в оперативной памяти
для всех процессов;
 доступ к некоторым блокам оперативной памяти происходит гораздо
чаще, чем к другим, поэтому использование кэширования для таких
блоков в целом увеличивает производительность системы;
 для некоторых блоков памяти внешних накопителей не требуется
непосредственной записи после модификации, и использование кэша
для таких блоков оптимизирует использование ввода-вывода.
 К устройствам специальной памяти относятся постоянная
память (ROM), перепрограммируемая постоянная
память (Flash Memory), память CMOS RAM, питаемая
от батарейки, видеопамять и некоторые другие виды
памяти.
Постоянная память (ПЗУ, англ. ROM, Read Only Memory —
память только для чтения) — энергонезависимая память,
используется для хранения данных, которые никогда не
потребуют изменения. Содержание памяти специальным
образом "зашивается" в устройстве при его изготовлении
для постоянного хранения. Из ПЗУ можно только читать.
Перепрограммируемая постоянная память (Flash
Memory) — энергонезависимая память, допускающая
многократную перезапись своего содержимого с дискеты.
В постоянную память записывают программу
управления работой самого процессора. В ПЗУ
находятся программы управления дисплеем,
клавиатурой, принтером, внешней памятью,
программы запуска и остановки компьютера,
тестирования устройств.
Важнейшая микросхема постоянной или Flash-
памяти — модуль BIOS.
Роль BIOS двоякая: с одной стороны это
неотъемлемый элемент аппаратуры, а с другой
строны — важный модуль любой операционной
системы.
 BIOS  (Basic Input/Output System — базовая система
ввода-вывода) — совокупность программ, предназначенных
для автоматического тестирования устройств после
включения питания компьютера  и  загрузки операционной
системы в оперативную память.
Хранит:
 программы для проверки оборудования при загрузке
операционной системы;
 программы начала загрузки операционной системы;
 программы по выполнению базовых функций по
обслуживанию устройств компьютера;
 программу настройки конфигурации компьютера - Setup.
Позволяет установить характеристики: типы
видеоконтроллера, жестких дисков и дисководов для
дискет, режимы работы с RAM, запрос пароля при загрузке
и т.д;
Разновидность постоянного ЗУ — CMOS
RAM.
CMOS RAM — это память с невысоким
быстродействием и минимальным
энергопотреблением от батарейки.
Используется для хранения информации о
конфигурации и составе оборудования
компьютера, а также о режимах его работы.
Содержимое CMOS изменяется специальной
программой Setup, находящейся в BIOS (англ. Set-
up — устанавливать, читается "сетап").
Для хранения графической информации
используется видеопамять.
Видеопамять (VRAM) — разновидность
оперативного ЗУ, в котором хранятся
закодированные изображения.
Это ЗУ организовано так, что его содержимое
доступно сразу двум устройствам — процессору и
дисплею. Поэтому изображение на экране
меняется одновременно с обновлением
видеоданных в памяти.
030

030

  • 1.
  • 2.
    Кэш или кеш (англ. cache, от фр.cacher — прятать) — промежуточный буфер с быстрым доступом, содержащий копию той информации, которая хранится в памяти с менее быстрым доступом, но с наибольшей вероятностью может быть оттуда запрошена. Кэш  или сверхоперативная память — очень быстрое ЗУ небольшого объёма, которое используется при обмене данными между микропроцессором и оперативной памятью для компенсации разницы в скорости обработки информации процессором и несколько менее быстродействующей оперативной памятью. Доступ к данным в кэш идёт быстрее, чем выборка исходных данных из медленной памяти или их перевычисление, за счёт чего уменьшается среднее время доступа.
  • 3.
    Впервые слово «кэш»в компьютерном контексте было использовано в 1967 году во время подготовки статьи для публикации в журнале «IBM Systems Journal». Статья касалась усовершенствования памяти в разрабатываемой модели 85 из серии IBM System/360. Редактор журнала Лайл Джонсон попросил придумать более описательный термин, нежели «высокоскоростной буфер», но из-за отсутствия идей сам предложил слово «кэш». Статья была опубликована в начале 1968 года, авторы были премированы IBM, их работа получила распространение и впоследствии была улучшена, а слово «кэш» вскоре стало использоваться в компьютерной литературе как общепринятый термин.
  • 4.
    Кэш — это памятьс большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами и веб- серверами. Кэш состоит из набора записей. Каждая запись ассоциирована с элементом данных или блоком данных (небольшой части данных), которая является копией элемента данных в основной памяти. Каждая запись имеет идентификатор, определяющий соответствие между элементами данных в кэше и их копиями в основной памяти.
  • 5.
    Кэш-памятью управляет специальноеустройство — контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их в кэш-память.  Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша. Если в кэше не найдено записей, содержащих затребованный элемент данных, то он читается из основной памяти в кэш, и становятся доступным для последующих обращений. Такой случай называется промахом кэша. Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий или коэффициентом попаданий  в кэш.  Соотношение числа попаданий и промахов определяет эффективность кэширования.
  • 6.
    Если кэш ограниченв объёме, то при промахе может быть принято решение отбросить некоторую запись для освобождения пространства. Для выбора отбрасываемой записи используются разные алгоритмы вытеснения. При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи.
  • 7.
    Современные модели центральных процессоров (ЦП) обладаютсобственным кэшем, для того чтобы минимизировать доступ к оперативной памяти (ОЗУ), которая медленнее, чем регистры. Кэш-память может давать значительный выигрыш в производительности, в случае когда тактовая частота ОЗУ значительно меньше тактовой частоты ЦП. Тактовая частота для кэш-памяти обычно не намного меньше частоты ЦП.
  • 8.
    8 Кэш-память Проблема – тактоваячастота работы процессора значительно выше, чем тактовая частота ОЗУ, процессор «простаивает», ожидая данные. кэш-память ОЗУ Чтение из ОЗУ – сначала в кэш. Если нужная ячейка уже есть в кэше, она берется из кэша (быстро). медленно быстро быстро
  • 9.
    Кэш центрального процессораразделён на несколько уровней. Для универсальных процессоров — до 3. Кэш-память уровня N+1 как правило больше по размеру и медленнее по скорости обращения и передаче данных, чем кэш-память уровня N. Самой быстрой памятью является кэш первого уровня — L1-cache. По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков. Состоит из кэша команд и кэша данных. L1 кэш работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт (зачастую является возможным выполнять даже несколько чтений/записей одновременно).  Объём обычно невелик — не более 128 Кбайт.
  • 10.
    Вторым по быстродействиюявляется L2-cache — кэш второго уровня. Обычно он расположен либо на кристалле, как и L1, либо в непосредственной близости от ядра, например, в процессорном картридже (только в слотовых процессорах). В старых процессорах — набор микросхем на системной плате. Объём L2 кэша от 128 Кбайт до 1−12 Мбайт. В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования — при общем объёме кэша в 8 Мбайт на каждое ядро приходится по 2 Мбайта.
  • 11.
    Кэш третьего уровнянаименее быстродействующий и обычно расположен отдельно от ядра ЦП, но он может быть очень внушительного размера — более 32 Мбайт. L3 кэш медленнее предыдущих кэшей, но всё равно значительно быстрее, чем оперативная память. В многопроцессорных системах находится в общем пользовании.
  • 12.
    12 Кэш-память • увеличение скоростиработы, если часто нужны одни и те же ячейки • неэффективно, если все время нужны разные ячейки Многоступенчатое кэширование: процессор ядро ОЗУ L1 L2 64 Кб 128 Кб…4Мб L1 быстрее L2!
  • 13.
    Многие периферийные устройствахранения данных используют кэш для ускорения работы, в частности, жёсткие диски используют кэш- память от 1 до 64 Мбайт, устройства чтения CD/DVD/BD-дисков также кэшируют прочитанную информацию для ускорения повторного обращения. Операционная система также использует часть оперативной памяти в качестве кэша дисковых операций (в том числе для внешних устройств, не обладающих собственной кэш-памятью, в том числе жёстких дисков, flash-памяти и гибких дисков).
  • 14.
    Применение кэширования внешнихнакопителей обусловлено следующими факторами:  скорость доступа процессора к оперативной памяти во много раз больше, чем к памяти внешних накопителей;  некоторые блоки памяти внешних накопителей используются несколькими процессами одновременно и имеет смысл прочитать блок один раз, затем хранить одну копию блока в оперативной памяти для всех процессов;  доступ к некоторым блокам оперативной памяти происходит гораздо чаще, чем к другим, поэтому использование кэширования для таких блоков в целом увеличивает производительность системы;  для некоторых блоков памяти внешних накопителей не требуется непосредственной записи после модификации, и использование кэша для таких блоков оптимизирует использование ввода-вывода.
  • 15.
     К устройствамспециальной памяти относятся постоянная память (ROM), перепрограммируемая постоянная память (Flash Memory), память CMOS RAM, питаемая от батарейки, видеопамять и некоторые другие виды памяти. Постоянная память (ПЗУ, англ. ROM, Read Only Memory — память только для чтения) — энергонезависимая память, используется для хранения данных, которые никогда не потребуют изменения. Содержание памяти специальным образом "зашивается" в устройстве при его изготовлении для постоянного хранения. Из ПЗУ можно только читать. Перепрограммируемая постоянная память (Flash Memory) — энергонезависимая память, допускающая многократную перезапись своего содержимого с дискеты.
  • 16.
    В постоянную памятьзаписывают программу управления работой самого процессора. В ПЗУ находятся программы управления дисплеем, клавиатурой, принтером, внешней памятью, программы запуска и остановки компьютера, тестирования устройств. Важнейшая микросхема постоянной или Flash- памяти — модуль BIOS. Роль BIOS двоякая: с одной стороны это неотъемлемый элемент аппаратуры, а с другой строны — важный модуль любой операционной системы.
  • 17.
     BIOS  (BasicInput/Output System — базовая система ввода-вывода) — совокупность программ, предназначенных для автоматического тестирования устройств после включения питания компьютера  и  загрузки операционной системы в оперативную память. Хранит:  программы для проверки оборудования при загрузке операционной системы;  программы начала загрузки операционной системы;  программы по выполнению базовых функций по обслуживанию устройств компьютера;  программу настройки конфигурации компьютера - Setup. Позволяет установить характеристики: типы видеоконтроллера, жестких дисков и дисководов для дискет, режимы работы с RAM, запрос пароля при загрузке и т.д;
  • 18.
    Разновидность постоянного ЗУ— CMOS RAM. CMOS RAM — это память с невысоким быстродействием и минимальным энергопотреблением от батарейки. Используется для хранения информации о конфигурации и составе оборудования компьютера, а также о режимах его работы.
  • 19.
    Содержимое CMOS изменяетсяспециальной программой Setup, находящейся в BIOS (англ. Set- up — устанавливать, читается "сетап"). Для хранения графической информации используется видеопамять. Видеопамять (VRAM) — разновидность оперативного ЗУ, в котором хранятся закодированные изображения. Это ЗУ организовано так, что его содержимое доступно сразу двум устройствам — процессору и дисплею. Поэтому изображение на экране меняется одновременно с обновлением видеоданных в памяти.