Кэш на процессоре не хранит данные, он просто ускоряет доступ.
Основное объяснение кеша заключается в том, что когда ЦП начинает чтение определенного байта из ОЗУ, эти данные также копируются в кеш. В следующий раз, когда ЦП должен прочитать этот байт, контроллер памяти видит, что он находится в кеше, и вместо медленного вызова ОЗУ он просто передает ЦП данные из кеша.
Есть два специфических вопроса с этим объяснением, хотя:
Кеш имеет конечный размер. Из-за этого, когда данные добавляются, вам в конечном итоге нужно избавиться (или «отбросить») старые данные, чтобы освободить место для них. Есть множество способов сделать это, и точная методология не имеет значения для этого обсуждения, но важно то, что через некоторое время данные могут больше не быть в кеше, и тогда вы должны выйти в основной памяти в любом случае.
Когда данные записываются, вам также необходимо обновить или удалить данные из кэша, которые ранее были сохранены по этому адресу. Есть три основных способа справиться с этим:
- Обратная запись: при использовании метода обратной записи данные сначала записываются в кэш, а затем в конечном итоге записываются в основную память. Это имеет ряд преимуществ для производительности, но может вызвать проблемы в некоторых обстоятельствах.
- Запись: используя метод записи, данные одновременно записываются как в кэш, так и в основную память. Это ниже, чем при обратной записи, но безопаснее.
- Записывание: используя метод записи, данные записываются непосредственно в основную память, а затем данные, находящиеся в том же месте, удаляются из кэша. Это редко используется, за исключением очень специфических случаев использования.
Итак, чтобы ответить на ваш вопрос относительно оперативной памяти в сравнении с кэшем ЦП, технически оба, но в конечном итоге данные поступают из оперативной памяти почти во всех случаях. Если вы хотите узнать больше об этом конкретно, я бы посоветовал прочитать следующие две статьи Википедии:
https://en.wikipedia.org/wiki/Cache_(computing)
https://en.wikipedia.org/wiki/CPU_cache
Теперь, что касается пространства подкачки, это совершенно другая концепция, связанная с виртуальной памятью и подкачкой. Попытка объяснить это привела бы к тому, что я написал бы большую часть пары статей Вкипедии, поэтому вместо этого я просто напишу вам прямо на эти статьи:
https://en.wikipedia.org/wiki/Virtual_memory
https://en.wikipedia.org/wiki/Paging