Кэш-память против виртуальной памяти
Разница между кэш-памятью и виртуальной памятью заключается в целях, для которых они используются, и в физическом существовании. Кэш-память - это тип памяти, используемый для улучшения времени доступа к основной памяти. Он находится между ЦП и основной памятью, и может быть несколько уровней кэшей, таких как L1, L2 и L3. Аппаратное обеспечение, используемое для кэш-памяти, намного дороже, чем ОЗУ (оперативное запоминающее устройство), используемое для основной памяти, потому что кэш-память намного быстрее. По этой причине емкость кэш-памяти очень мала. Виртуальная память - это метод управления памятью, используемый для эффективного использования ОЗУ (основной памяти) при предоставлении отдельного пространства памяти для каждой программы, которое даже больше, чем фактическая емкость физической ОЗУ (основной памяти). Здесь жесткий диск используется для расширения памяти. Элементы в физической оперативной памяти передаются туда и обратно вместе с жестким диском.
Что такое кэш-память?
Кэш-память - это тип памяти, который находится между ЦП (центральным процессором) и ОЗУ (оперативной памятью). Целью кэш-памяти является сокращение времени доступа ЦП к памяти из ОЗУ. Кэш-память намного быстрее оперативной памяти. Таким образом, время доступа к кешу намного меньше, чем время доступа к оперативной памяти. Но стоимость памяти, используемой для кэш-памяти, намного выше, чем стоимость памяти, используемой для оперативной памяти, и, следовательно, емкость кэш-памяти очень мала. Тип памяти, используемой для кэш-памяти, называется SRAM (статическая оперативная память).
Всякий раз, когда ЦП хочет получить доступ к памяти, он сначала проверяет, находится ли то, что ему нужно, в кэш-памяти. Если да, он сможет получить к нему доступ с наименьшей задержкой. Если он не находится в кеше, то запрошенный контент будет скопирован из ОЗУ в кеш, и тогда только ЦП сможет получить к нему доступ из кеша. Здесь при копировании контента из кеша в кеш копируется не только контент в запрошенном адресе памяти, но и ближайший контент. Таким образом, в следующий раз существует высокая вероятность попадания в кэш, поскольку большинство компьютерных программ в большинстве случаев обращаются к соседним данным или последним данным, к которым обращались. Таким образом, за счет кеша средняя задержка памяти снижается.
В ЦП существует три типа кэшей: кэш инструкций для хранения программных инструкций, кэш данных для хранения элементов данных и резервный буфер перевода для хранения отображений памяти. Для кеша данных, как правило, существуют многоуровневые кеши. То есть кэшей несколько как L1, L2 и L3. Кэш L1 - это самая быстрая, но самая маленькая кэш-память, расположенная ближе всего к центральному процессору. Кэш L2 медленнее, чем L1, но больше, чем L1, и находится после кеша L1. Из-за этой иерархии лучшее среднее время доступа к памяти может быть достигнуто с меньшими затратами.
Что такое виртуальная память?
Виртуальная память - это метод управления памятью, используемый в компьютерных системах. Не существует аппаратного обеспечения, называемого виртуальной памятью, но это концепция, которая использует ОЗУ и жесткий диск для предоставления виртуального адресного пространства для программ. Первая оперативная память разделена на блоки, называемые страницами, и они идентифицируются физическими адресами памяти. На жестком диске зарезервирована специальная часть, которая в Linux называется swap, а в Windows - файлом подкачки. Когда программа запускается, ей предоставляется виртуальное адресное пространство, которое может быть даже больше, чем реальная физическая память. Пространство виртуальной памяти также разделено на фрагменты, называемые страницами, и каждая из этих страниц виртуальной памяти может быть сопоставлена с физической страницей. Таблица, называемая таблицей страниц, отслеживает это сопоставление. Когда в физической памяти заканчивается место, некоторые физические страницы помещаются в эту специальную часть на жестком диске. Когда какая-либо страница, помещенная на жесткий диск, снова нужна, она переносится в физическую память путем помещения другой выбранной страницы из физической памяти на жесткий диск.
В чем разница между кэш-памятью и виртуальной памятью?
• Кэш-память - это тип памяти, используемый для улучшения времени доступа к основной памяти. Это более быстрый тип памяти, который находится между ЦП и ОЗУ, чтобы уменьшить среднюю задержку доступа к памяти. Виртуальная память - это метод управления памятью, который позволяет программам получать собственное пространство виртуальной памяти, которое даже больше, чем реальная доступная физическая память.
• Кэш-память - это тип аппаратной памяти, которая реально существует физически. С другой стороны, не существует аппаратного обеспечения, называемого виртуальной памятью, поскольку это концепция, которая использует ОЗУ, жесткий диск, блок управления памятью и программное обеспечение для обеспечения виртуального типа памяти.
• Управление кэш-памятью осуществляется полностью аппаратно. Виртуальная память управляется операционной системой (программным обеспечением).
• Кэш-память находится между оперативной памятью и процессором. Передача данных включает оперативную память, кэш-память и процессор. С другой стороны, виртуальная память включает в себя передачу данных между оперативной памятью и жестким диском.
• Кэш-память имеет небольшие размеры, такие как килобайты и мегабайты. С другой стороны, виртуальная память включает в себя огромные размеры, занимающие гигабайты.
• Виртуальная память включает в себя структуры данных, такие как таблицы страниц, в которых хранится отображение между физической памятью и виртуальной памятью. Но этот тип структур данных не нужен для кэш-памяти.
Обзор:
Кэш-память против виртуальной памяти
Кэш-память используется для улучшения времени доступа к основной памяти, а виртуальная память - это метод управления памятью. Кэш-память - это реальное аппаратное обеспечение, но аппаратного обеспечения, называемого виртуальной памятью, не существует. ОЗУ, жесткий диск и различное другое оборудование вместе с операционной системой создают концепцию, называемую виртуальной памятью, для предоставления больших и изолированных пространств виртуальной памяти каждой программе. Содержимое кэш-памяти управляется аппаратным обеспечением, а содержимое виртуальной памяти - операционной системой.