Кэш-память или просто кэш, – это тип памяти, используемый для ускорения выполнения программ. Её можно рассматривать как расширение основной памяти компьютера RAM (Random Access Memory).
Кэш-память используется аппаратным обеспечением для хранения наиболее часто используемых данных, для увеличения скорости отклика компьютера и, следовательно, его производительности.
Чтобы понять, что такое кэш, мы должны объяснить, в чем разница между оперативной памятью и кэшем.
В чем разница между оперативкой и кэшем
Оперативная память (RAM) организована как последовательность ячеек памяти. Всякий раз, когда центральный процессор компьютера должен считать или записать информацию в оперативную память, он должен идентифицировать ячейку, в которой хранится информация. После получения запроса от процессора ячейка памяти отвечает, предоставляя свои данные. Это время отклика называется временем доступа (чтение или записи).
Даже если это очень короткое время, оно слишком большое для процессора, который выполняет операции гораздо быстрее, чем оперативная память.
Чтобы сократить время ожидания процессора, компьютер использует кэш, – гораздо более быстрый тип памяти по сравнению с основной памятью.
Поэтому для оптимизации производительности объединены два типа памяти. Большой объем памяти с медленным временем доступа в ОЗУ и небольшой объём памяти с очень быстрым временем доступа в кэше.
Почему бы просто не использовать кэш-память, если она быстрее? Потому что кэш намного дороже оперативной памяти и по этой причине его используют только в небольших количествах.
Как работает кэш-память
Чтобы понять, что такое кэширование и как оно работает, нам нужно объяснить, что такое принцип локальности.
Принцип локальности гласит, что когда центральный процессор считывает данные из ячеек основной памяти компьютера, весьма вероятно, что другие данные, которые он будет использовать, также будут расположены рядом с рассматриваемой ячейкой. По этой причине вся информация, смежная с запрашиваемой центральным процессором, передаётся в кэш. Когда процессор компьютера запрашивает новую информацию, она, скорее всего, уже будет в кэше.
В случае, если запрошенные данные не кэшируются, центральный процессор сделает запрос в основную память, чтобы найти ячейку, содержащую информацию. Также в этом случае центральный процессор будет передавать информацию, смежную с информацией о ячейке, используемой в кеше. Этот процесс будет продолжаться до тех пор, пока кэш полностью не заполнится.
Уровни кэш-память
После понимания, что такое кэш-память, давайте посмотрим, сколько существует типов или уровней кеш-памяти.
Есть 4 возможных уровня (L), и они организованы иерархически:
- L1 или кэш первого уровня. Он является внутренним по отношению к процессору и часто разделяется на кэш данных и кэш инструкций.
- L2 или кэш второго уровня. Он может быть как внутренним, так и внешним, и не различает данные и инструкции.
- L3 или кэш третьего уровня. Он может быть как внутренним, так и внешним, но может вовсе отсутствовать. Он не различает данных и инструкций.
Типы кэш-памяти
Мы завершаем руководство о том, что такое кэш-память, объясняя, каковы основные типы этого типа памяти.
Кэш процессора
Кэш процессора является кэшем, используемым процессором компьютера для ускорения операций доступа к основной памяти.
Кэш страницы
Кэш страниц является частью памяти, используемой операционной системой, чтобы скопировать данные использования на жестком диске. Операционная система использует всю оперативную память, которая не выделяется непосредственно другим приложениям, поскольку доступ к этой основной памяти происходит быстрее, чем к жесткому диску.
Дисковый кеш
Дисковый кэш тип похож на оперативную память, которая интегрирована в жесткий диск. Когда он присутствует, он используется для загрузки секторов жесткого диска, смежных с требуемыми, избегая перемещения читающей головки и ускоряя операцию чтения.
Веб-кэш
Веб-кэш является частью жесткого диска, который используют веб-браузеры (Chrome, Edge, Firefox) или прокси-серверs, чтобы сохранить просмотренные интернет-страницы.
Веб-кэш используется для сохранения HTML-кода, изображений и всей информации, необходимой для просмотра интернет-страницы, чтобы сократить время доступа к странице в случае, если пользователь захочет просмотреть её снова. Когда пользователь повторно заходит на такую страницу, нет необходимости запрашивать весь код с веб-сервера, на котором размещена страница, поскольку большая часть информация уже будет храниться в веб-кэше.