Кэш-память – сверхбыстродействующая память, обеспечивающая ускорение доступа к оперативной памяти на быстродействующих компьютерах. Она располагается между микропроцессором и оперативной памятью и хранит копии наиболее часто используемых участков оперативной памяти. При обращении микропроцессора к памяти сначала производится поиск данных в кэш-памяти. Поскольку время доступа к кэш-памяти в несколько раз меньше, чем к обычной памяти, а в большинстве случаев необходимые микропроцессору данные уже содержатся в кэш-памяти, среднее время доступа к памяти уменьшается.
Сверхбыстродействующая память или кэш представляет собой запоминающее устройство, используемое в качестве буфера между быстрым процессором и относительно медленной оперативной памятью.
Появление кэш-памяти было вызвано опережающим развитием быстродействия процессора по сравнению с быстродействием микросхем оперативной памяти. Уже с появление процессора i286, обычные микросхемы памяти не могли работать в таком быстром темпе, в котором работал микропроцессор. Поэтому в случае, когда процессор требовал информацию из памяти, ему приходилось зависать на один - два такта, что давало возможность памяти обработать запрос.
Использование кэша позволило отказаться от заполнения всей машины быстрой статической RAM памятью. Обычно программа использует только часть оперативной памяти ПЭВМ. Если работающую программу (или, хотя бы ее часть, выполняемую в данный момент) переписывать из медленной ОП в быстрый кэш, это позволило бы процессору обходиться без всяких циклов ожидания.
Не всякая кэш-память равнозначна. Большое значение имеет тот факт, как много информации может содержать кэш-память. Чем больше кэш-память, тем больше информации может быть в ней размещено, а следовательно, тем больше вероятность, что нужный байт будет содержаться в этой быстрой памяти. Очевидно, что самый лучший с точки зрения быстродействия вариант - это когда объём кэш-памяти соответствует объёму всей оперативной памяти. Но в этом случае вся остальная память становится не нужной.
Противоположная ситуация - совсем маленький кэш - тоже не имеет практического значения, так как вероятность того, что нужная информация окажется в этой быстрой памяти, стремится к нулю. Практически, диапазон используемой кэш-памяти колеблется в пределах 256-2048К.
На самом деле реализация работы с кэшом не так проста, как это может показаться с первого взгляда. Микропроцессор должен не только читать из памяти, но и писать в неё. Что случится, если процессор занесёт новую информацию в кэш, а перед использованием этой информации она будет изменена в основной памяти. Для избежания подобной ситуации иногда реализуется метод, названный записью через кэш. Очевидно, что этот метод снижает быстродействие системы, но с этим приходится мириться.
Целостность памяти, однозначность информации в ней – это одна из самых больших проблем работы с кэш-памятью. Для преодоления этих проблем была создана отдельная микросхема - кэш-контроллер.
Следует отметить, что для программиста работа с кэш-памятью практически "прозрачна" (т.е. невидима). Заполнение кэш-памяти выполняется аппаратными средствами, автоматически и производится отдельными блоками, называемыми строками. Если в кэш не оказывается нужной информации (очередной команды программы или ячейки с данными), целый блок оперативной памяти вместе с нужной командой или данными переписывается в ту строку кэш, к которой меньше всего обращались за последнее время. Есть и другие способы организации работы с кэш-памятью.
16. Постоянная и программируемая память, как часть внутренней памяти ЭВМ