Кэш_побробно (лекции)
Описание файла
PDF-файл из архива "лекции", который расположен в категории "". Всё это находится в предмете "вычислительные машины, системы и сети (вмсис)" из 7 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "вмсс" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
Кэш-память (от англ. cache, дословно — «заначка», «кубышка», амер.англ. cash «наличные», «деньги под рукою») — память ЭВМ с быстрым доступом, где дублируетсячасть данных с другого носителя с более медленным доступом, или хранятся данные, дляполучения которых требуются «дорогие» (в смысле временных затрат) вычисления.Иногда для краткости кэш-память называют просто «кэш».Кеш или кэш — это также сленговое обозначение наличных денег.Собственно, аналогия сравнения кэша (.
cash) и кеша (cache) заключается вследующем: основная память, к которой происходит обращение (жёсткий диск,ОЗУ) сравнивается с вашим счётом в банке, а кеш — с вашими наличными,которые вы берёте в банке для быстрых расчётов.Кэш-память позволяет обращаться к часто требуемым данным быстрее, чемэто происходило бы без её использования. Процесс организации доступа через кэшпамять называется кэшированием, а та память, которая кэшируется, называетсяосновной памятью.Кеширование оперативной памятиНаиболее часто термин кеш-память используется для обозначения кеш-памяти,находящейся между регистрами центрального процессора (ЦП) и ОЗУКеш-память может давать значительный выигрыш в производительности, потому что внастоящее время тактовая частота ОЗУ значительно меньше тактовой частоты ЦП.Тактовая частота для кеш-памяти обычно не намного меньше частоты ЦП.Уровни кешаРазделение кеш-памяти на несколько уровней (до 3 для универсальныхпроцессоров по состоянию на начало 2009 года).
Кеш-память уровня N+1 всегда большепо размеру и медленнее по скорости обращения, чем кеш-память уровня N.Самой быстрой памятью является кеш-память первого уровня (она же L1-cache:L1I, L1D), по сути, она является неотъемлемой частью процессора, посколькурасположена на одном с ним кристалле и входит в состав функциональных блоков, без неепроцессор не сможет функционировать. Память L1 работает на частоте процессора и вобщем случае обращение к ней может производится каждый такт (зачастую являетсявозможным выполнять даже несколько чтений/записей одновременно), латентностьдоступа обычно равна 2-4 такта ядра, объем этой памяти обычно невелик — не более64Кб.Второй по быстродействию является L2 (в отличие от L1 ее можно отключить ссохранением работоспособности процессора), кеш второго уровня, она обычнорасположена либо на кристалле, как и L1, либо в непосредственной близости от ядра,например, в процессорном картридже (только в слотовых процессорах), в старыхпроцессорах ее располагали на системной плате.
Объем L2 по-больше — от 128Кб до 1—4Мб. Обычно латентность L2 расположенной на кристалле ядра составляет от 8 до 20тактов ядра.Кеш третьего уровня L3 наименее быстродействующий и обычно расположенотдельно от ядра ЦП, но он может быть очень внушительного размера и всё равнозначительно быстрее, чем оперативная память.Ассоциативность кэшаОдна из фундаментальных характеристик кэш-памяти - уровень ассоциативности отображает ее логическую сегментацию. Дело в том, что последовательный перебор всехстрок кэша в поисках необходимых данных потребовал бы десятков тактов и свел бы нанет весь выигрыш от использования встроенной в ЦП памяти.
Поэтому ячейки ОЗУжестко привязываются к строкам кэш-памяти (в каждой строке могут быть данные изфиксированного набора адресов), что значительно сокращает время поиска. С каждойячейкой ОЗУ может быть связано более одной строки кэш-памяти: например, n-канальнаяассоциативность (n-way set associative) обозначает, что информация по некоторому адресуоперативной памяти может храниться в п мест кэш-памяти.При одинаковом объеме кэша схема с большей ассоциативностью будет наименеебыстрой, но наиболее эффективной.Политика записи при кешированииПри чтении данных кеш-память даёт однозначный выигрыш в производительности.
Призаписи данных выигрыш можно получить только ценой снижения надёжности. Поэтому вразличных приложениях может быть выбрана та или иная политика записи кеш-памяти..Существуют две основные политики записи кеш-памяти — сквозная запись (write-through)и отложенная запись (write-back).•сквозная запись подразумевает, что при изменении содержимого ячейки памяти,запись происходит синхронно и в кеш и в основную память.•отложенная запись подразумевает, что можно отложить момент записи данных восновную память, а записать их только в кеш. При этом данные будут выгружены воперативную память только в случае обращения к ним какого либо другогоустройства (другой ЦП контроллер DMA) либо нехватки места в кеше дляразмещения других данных. Производительность, по сравнению со сквознойзаписью, повышается, но это может поставить под угрозу целостность данных восновной памяти, поскольку программный или аппаратный сбой может привести ктому, что данные так и не будут переписаны из кеша в основную память.
Крометого, в случае кеширования оперативной памяти, когда используются два и болеепроцессоров, нужно обеспечивать согласованность данных в разных кешах.Кеширование внешних накопителейМногие периферийные устройства хранения данных используют кеш для ускоренияработы, в частности, жёсткие диски используют кеш-память от 1 до 16 Мб (модели споддержкой NCQ/TCQ используют её для хранения и обработки запросов), устройствачтения CD/DVD/BD-дисков так же кешируют прочитанную информацию для ускоренияповторного обращения.Операционная система так же использует часть оперативной памяти в качестве кешадисковых операций (в том числе для внешних устройств, не обладающих собственнойкеш-памятью, например, USB-flash, дисковод для дискет).Кеширование интернет-страницПроцесс сохранения часто запрашиваемых документов на промежуточных проксисерверах или машине пользователя, с целью предотвращения их постоянной загрузки ссервера-источника и уменьшения трафика.
Т.е. перемещение информации поближе кпользователю. Управление кэшированием осуществляется при помощи HTTP-заголовковКеширование результатов работыМногие программы записывают куда-либо промежуточные или вспомогательныерезультаты работы, чтобы не вычислять их каждый раз, когда они понадобятся. Этоускоряет работу, но требует дополнительной памяти (оперативной или дисковой).Примером такого кеширования является индексирование баз данных.Уровень за уровнемХотя оперативная память намного быстрее диска, тем не менее и она не успевает запотребностями процессора. Поэтому данные, которые требуются часто, переносятся наследующий уровень быстрой памяти, называемой кэш-памятью второго уровня.
Онаможет располагаться на отдельной высокоскоростной микросхеме статической памяти(SRAM), установленной в непосредственной близости от процессора (в новыхпроцессорах кэш-память второго уровня интегрирована непосредственно в микросхемупроцессора.На более высоком уровне информация, используемая чаще всего (скажем, командыв многократно выполняемом цикле), хранится в специальной секции процессора,называемой кэш-памятью первого уровня.
Это самая быстрая память.Процессор Pentium III компании Intel имел кэш-память первого уровня емкостью32 Кбайт на микросхеме процессора и либо кэш-память второго уровня емкостью 256Кбайт на микросхеме, либо кэш-память второго уровня емкостью 512 Кбайт, неинтегрированную с процессором.Когда процессору нужно выполнить команду, он сначала анализирует состояниесвоих регистров данных. Если необходимых данных в регистрах нет, он обращается ккэш-памяти первого уровня, а затем — к кэш-памяти второго уровня.
Если данных нет нив одной кэш-памяти, процессор обращается к оперативной памяти. И только в том случае,если нужных данных нет и там, он считывает данные с жесткого диска.Когда процессор обнаруживает данные в одном из кэшей, это называют«попаданием»; неудачу называют «промахом». Каждый промах вызывает задержку,поскольку процессор будет пытаться обнаружить данные на другом, более медленномуровне. В хорошо спроектированных системах с программными алгоритмами, которыевыполняют предварительную выборку данных до того, как они потребуются, процент«попаданий» может достигать 90.Для процессоров старшего класса на получение информации из кэш-памятипервого уровня может уйти от одного до трех тактов, а процессор в это время ждет иничего полезного не делает.