Loading AI tools
Из Википедии, свободной энциклопедии
Иерархия компьютерной памяти — концепция построения взаимосвязи классов разных уровней компьютерной памяти на основе иерархической структуры.
Сущность необходимости построения иерархической памяти — необходимость обеспечения вычислительной системы (отдельного компьютера или кластера) достаточным объёмом памяти, как оперативной, так и постоянной.
Учитывая неоднородность периодичности обращения к конкретным записям (внутренним регистрам процессора, кэш-памяти, страницам и файлам) применяются различные технические решения, имеющие отличные характеристики, как технические так ценовые и массо-габаритные. Долговременное хранение в дорогой сверхоперативной и даже оперативной памяти, как правило, не выгодно, поэтому данные такого рода хранятся на накопителях — дисковых, ленточных, флеш и т. д.
Для обеспечения резервирования данных, например с целью сохранности, пользователи могут создавать библиотеки на съёмных носителях (например, виртуальная ленточная библиотека или дисковый массив), наполняя их своими файлами различных форматов. Доступ к этим данным занимает самое большое время, но при этом их ёмкость огромна.
В основном, техническими характеристиками служат временные, то есть каким временным критериям устраивает конкретное решение. Потребность в скоростной памяти, как правило лимитируется либо высокими накладными расходами по обеспечению работы схем, либо высоким энергопотреблением либо высокой стоимостью решения.
Различные виды памяти образуют иерархию, на различных уровнях которой расположены памяти с отличающимися временем доступа, сложностью, стоимостью и объёмом. Возможность построения иерархии памяти вызвана тем, что большинство алгоритмов обращаются в каждый промежуток времени к небольшому набору данных, который может быть помещен в более быструю, но дорогую и поэтому небольшую, память (см. en:locality of reference). Использование более быстрой памяти увеличивает производительность вычислительного комплекса. Под памятью в данном случае подразумевается устройство хранения данных (запоминающее устройство) в вычислительной технике или компьютерная память.
При проектировании высокопроизводительных компьютеров и систем необходимо решить множество компромиссов, например, размеры и технологии для каждого уровня иерархии. Можно рассматривать набор различных памятей (m1,m2,…,mn), находящихся в иерархии, то есть каждый mi уровень является как бы подчиненным для mi-1 уровня иерархии. Для уменьшения времени ожидания на более высоких уровнях, низшие уровни могут подготавливать данные укрупненными частями с буферизацией и, по наполнению буфера, сигнализировать верхнему уровню о возможности получения данных.
Часто выделяют 4 основных (укрупнённых) уровня иерархии:[1]
В большинстве современных ПК используется следующая иерархия памяти:
Большинство программистов обычно предполагает, что память делится на два уровня, оперативную память и дисковые накопители, хотя в ассемблерных языках и ассемблерно-совместимых (типа C) существует возможность непосредственной работы с регистрами. Получение преимуществ от иерархии памяти требует совместных действий от программиста, аппаратуры и компиляторов (а также базовая поддержка в операционной системе):
Многие программисты не учитывают многоуровневость памяти при программировании. Этот подход работает пока приложение не столкнется с падением производительности из-за нехватки производительности подсистемы памяти. При исправлении кода (рефакторинг) необходимо учесть наличие и особенность работы верхних уровней иерархии памяти для достижения наивысшей производительности.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.