Многие, наверняка, слышали такое слово — «кэш». Большая часть людей сравнивает его с наличными деньгами, но в компьютерных системах этот термин имеет совершенно иную расшифровку. Расскажу сперва общими словами про кэш, а потом поговорим про L кэш.
Любая компьютерная система делает различные математические операции и вычисления. Например, вы загрузили веб-страницу, посмотрели в браузере нужный сайт. Закрыли браузер. На следующий день вы захотели вновь посетить этот сайт. При открытии часть данных будет считана с вашего жесткого диска, чтобы лишний раз не загружать их из интернета и не проводить расчеты, которые были уже проведены вчера.
В случае с веб-сайтом, это стили CSS, изображения и файлы с JavaScript. Ведь достаточно один раз загрузить «скелет» веб-сайта, а в следующий раз подгрузить только обновленные данные. В итоге и сайт откроется быстрее, и снизится нагрузка не только на компьютер, но и на конечный сервер и всю инфраструктуру сети.
Но перейдем к самому главному — что такое L кэш у процессора?
L кэш (или уровень кэша) в процессоре - это специальная память, которая находится прямо внутри самой микросхемы процессора. Основная задача - ускорить выполнение команд и доступ к данным.
Принцип работы L кэша: когда процессор получает команду или данные, он сначала проверяет, есть ли они уже в L кэше. Если да, то "камень" может сразу начать работу, не тратя время на обращение к оперативной памяти. Но если команды или данных нет в L кэше, процессор должен обратиться к ОЗУ, что занимает больше времени.
Основная задача L кэша – хранить недавно использовавшиеся данные и инструкции, чтобы процессор мог быстро получить к ним доступ при повторном использовании. Внутренняя структура кэша обычно состоит из наборов данных и инструкций. Каждая строка сохраняет фрагмент информации, полученной из оперативной памяти.
Объяснить весь процесс достаточно сложно, ведь компьютер не может поместить все данные в L кэш, а хранит там только то, что будет нужно в той или иной ситуации. Для справки: данные, которые хранятся в таком типе кэша могут быть очень небольшого объема, всего несколько килобайт.
Сравнение L кэша можно сделать с походом в обычный магазин. Представим, что L кэш - это полки с товарами, которые вы часто покупаете. Когда вы идете в магазин, видите знакомый товар на полке, можете взять его и положить себе в корзину. Это очень быстро! Но если нужного товара на полке нет, то необходимо обратиться к продавцу, что уже займет больше времени, чем просто взять самостоятельно то, что необходимо.
L кэш разделен на несколько уровней в зависимости от их близости к процессору.
Обычно процессор имеет три уровня L кэша: L1, L2 и L3:
L1-кэш является самым быстрым и ближайшим к процессору, он обычно разделен на две части: L1d (данные) и L1i (инструкции);
А вот L2 кэш находится за L1 кэшем и имеет больший объем памяти, но при этом более медленный доступ;
Наконец, L3 кэш является самым большим по объему, но и самым медленным. Он используется для хранения данных, которые редко будут нужны, но все же могут понадобиться процессору.
По факту, центральный процессор может хранить что-то большое в L3 и по мере надобности, ради высокой скорости, сохранять какую-то часть данных в L1.