Иерархия хранения компьютерных данных
Иера́рхия хране́ния компью́терных да́нных — концепция разделения на несколько уровней методов хранения компьютерных данных на основе иерархической структуры.
Как правило, чем ниже хранилище в иерархии, тем меньше его пропускная способность и тем больше задержка доступа к нему со стороны ЦП. При традиционной классификации хранилищ (на первичное, вторичное, третичное и автономное/офлайн) также руководствуются стоимостью хранения за бит.
В современном использовании память обычно представляет собой быструю, но временную полупроводниковую память с произвольным доступом, как правило, это DRAM (динамическая оперативная память) или другие подобные устройства. Хранилище состоит из устройств хранения и их носителей, которые не доступны напрямую ЦП (вторичное или третичное хранилище), обычно это жёсткие диски, оптические дисководы и другие устройства, которые медленнее оперативной памяти, но являются энергонезависимыми (сохраняют содержимое при отключении питания)[1].
Исторически память, в зависимости от используемой технологии, называлась центральной памятью, основной памятью, основным хранилищем, барабаном (drum), реальным хранилищем или внутренней памятью. В то же время более медленные постоянные устройства хранения назывались вторичным хранилищем, внешней памятью или вспомогательным/периферийным хранилищем.
Первичное хранилище
Первичное хранилище (также: основная память, внутренняя память или первичная память), часто просто называемое памятью, является единственным хранилищем, доступным непосредственно для ЦП. ЦП непрерывно считывает хранящиеся там инструкции и выполняет их по мере необходимости. Все данные, с которыми ведётся активная работа, также хранятся там в унифицированном формате.
Компьютеры первых поколений в качестве первичного хранилища (памяти) использовали линии задержки, трубки Уильямса или вращающиеся магнитные барабаны. К 1954 году эти ненадёжные методы были в основном заменены памятью на магнитных сердечниках. Память на сердечниках оставалась доминирующей до 1970-х годов, когда достижения в технологии интегральных схем позволили полупроводниковой памяти стать экономически конкурентоспособной.
Это привело к появлению современной оперативной памяти (англ. random-access memory [RAM] — оперативное запоминающее устройство [ОЗУ]). Это устройства небольшого размера, лёгкие, но достаточно дорогостоящие. Кроме того, в большинстве своём ОЗУ, используемые для первичного хранения, являются энергозависимыми, то есть они теряют информацию при отключении питания. Помимо хранения открытых программ, ОЗУ служит в качестве страничного кэша (или дискового кэша) и буфера записи для повышения производительности как чтения, так и записи. Операционные системы используют ёмкость ОЗУ для кэширования, пока она не нужна работающему программному обеспечению. Свободная память может использоваться в качестве RAM-диска для вре́менного хранения данных с высокой скоростью доступа и обработки информации.
Как показано на диаграмме, помимо основной оперативной памяти большого объёма, как правило, существует два дополнительных подуровня первичного хранилища:
- Регистры процессора расположены внутри процессора. Каждый регистр обычно содержит машинное слово данных (часто 32 или 64 бита). Инструкции ЦП указывают арифметико-логическому устройству выполнять различные вычисления или другие операции с этими данными (или с их помощью). Регистры являются самой быстрой из всех форм хранения компьютерных данных.
- Кэш процессора является промежуточным звеном между сверхбыстрыми регистрами и гораздо более медленной основной памятью. Он был введён исключительно для повышения производительности компьютеров. Наиболее активно используемая информация из основной памяти просто дублируется в кэш-памяти, которая быстрее, но имеет гораздо ме́ньшую ёмкость. С другой стороны, основная память гораздо медленнее, но обладает значительно бо́льшей ёмкостью хранения, чем регистры процессора. Также часто используется многоуровневая иерархическая настройка кэша — первичный кэш является самым маленьким и быстрым, он расположен внутри процессора; вторичный кэш несколько больше и медленнее.
Основная память напрямую или косвенно подключена к центральному процессору через шину памяти. На самом деле это две шины (не показаны на диаграмме): адресная шина и шина данных. Сначала ЦП отправляет через адресную шину, число, называемое адресом памяти, которое указывает на желаемое местоположение данных. Затем он считывает или записывает данные в ячейках памяти, используя шину данных. Кроме того, блок управления памятью (MMU) — это небольшое устройство между ЦП и ОЗУ, которое пересчитывает фактический адрес памяти, например, для обеспечения абстракции виртуальной памяти или выполнения других задач
Из-за того, что ОЗУ, используемые как первичные хранилища, являются энергозависимыми (не инициализируются при запуске), компьютер, содержащий только такую память, не имел бы источника для чтения инструкций, необходимых для его запуска. Поэтому используется энергонезависимое первичное хранилище, содержащее небольшую программу запуска (BIOS) для начальной загрузки компьютера, то есть для чтения более крупной программы из энергонезависимого вторичного хранилища в ОЗУ и начала её выполнения. Технология, используемая для этой цели, называется ПЗУ (ROM, read-only memory — память только для чтения), хотя в терминологии могут быть расхождения, так как большинство типов ПЗУ также способны к произвольному доступу.
Многие типы ПЗУ нельзя назвать «только для чтения», так как их можно обновлять; однако это происходит медленно, и память необходимо стирать большими порциями, прежде чем её можно будет переписать. Некоторые встраиваемые системы запускают программы непосредственно из ПЗУ (или аналогичного устройства), поскольку такие программы редко изменяются. Стандартные компьютеры не хранят неосновные программы в ПЗУ, а вместо этого используют большие объёмы вторичного хранилища, которое также является энергонезависимым и не таким дорогим. 😊
Термины «первичное хранилище» и «вторичное хранилище» в некоторых случаях относятся к тому, что исторически называлось соответственно «вторичным хранилищем» и «третичным хранилищем»[2].
Первичная память, включая ПЗУ, EEPROM, флэш-память NOR и ОЗУ[3], как правило, имеет байтовую адресацию.
Вторичное хранилище
Вторичное хранилище (также известное как внешняя память, или вспомогательное хранилище) отличается от первичного хранилища тем, что оно не доступно напрямую процессору. Компьютер обычно использует свои каналы ввода/вывода для доступа к вторичному хранилищу и передачи необходимых данных в первичное хранилище. Вторичное хранилище является энергонезависимым (сохраняет данные при отключении питания). В современных компьютерных системах объём вторичного хранилища, как правило, на два порядка больше первичного, поскольку вторичное хранилище менее затратно.
В современных компьютерах в качестве вторичного хранилища обычно используются жёсткие диски (HDD) или твёрдотельные накопители (SSD). Время доступа к байту для HDD или SSD, как правило, измеряется в миллисекундах (тысячных долях секунды), в то время как время доступа к байту для основного (первичного) хранилища измеряется в наносекундах (миллиардных долях секунды). Таким образом, вторичное хранилище значительно медленнее, чем первичное. У вращающихся оптических накопителей, таких как CD и DVD-приводы, время доступа ещё больше. Другие примеры технологий вторичного хранилища: USB-флеш-накопитель, дискета, магнитная лента, перфолента, перфокарта и RAM-диск.
Как только головка чтения/записи диска на HDD достигает нужного положения и данные помещаются в нужное место, доступ к последующим данным на дорожке осуществляется очень быстро. Чтобы сократить время поиска и задержку на вращение, данные передаются на диски и с них большими непрерывными блоками. Последовательный (или блочный) доступ к дискам в несколько раз быстрее, чем случайный доступ, поэтому для создания эффективных алгоритмов, основанных на последовательном доступе, было разработано множество усовершенствованных методов. Ещё один способ уменьшить узкое место ввода/вывода — использовать несколько дисков параллельно для увеличения пропускной способности между первичным и вторичным хранилищем[4].
Вторичное хранилище часто форматируется в соответствии с форматом файловой системы, который обеспечивает абстракцию, необходимую для организации данных в файлы и каталоги, а также предоставляет метаданные, описывающие владельца определённого файла, время доступа, разрешения на доступ и другую информацию.
Большинство операционных систем компьютеров используют концепцию виртуальной памяти, что позволяет использовать больше ёмкости первичного хранилища, чем физически доступно в системе. По мере заполнения первичной памяти система перемещает наименее используемые фрагменты (страницы) в файл подкачки на вторичном хранилище, извлекая их позже по мере необходимости. Однако если большое количество страниц перемещается на более медленное вторичное хранилище, производительность системы ухудшается.
Вторичные хранилища, включая HDD, ODD и SSD, обычно имеют блочную адресацию.
Третичное хранилище
Третичное хранилище, или третичная память[5], — это самый нижний уровень в иерархии хранения компьютерных данных. Обычно оно включает в себя роботизированный механизм, который монтирует (вставляет) и демонтирует съёмные носители массовой информации в устройство хранения в соответствии с требованиями системы; такие данные часто копируются во вторичное хранилище перед использованием.
Третичное хранилище в основном используется для архивирования редко используемой информации, поскольку оно намного медленнее вторичного хранилища (5—60 секунд против 1—10 миллисекунд). Это особенно важно для чрезвычайно больших хранилищ данных, доступ к которым осуществляется без участия человека. Типичными примерами являются ленточная библиотека и дисковод с автоматической сменой дисков (англ. optical jukebox) — устройство для хранения больших объёмов данных с использованием оптических дисков, похоже на дисковод CD-ROM, но имеет гораздо бо́льшую ёмкость, позволяющую хранить тысячи дисков.
Когда компьютеру нужно считать информацию из третичного хранилища, он сначала обращается к каталогу базы данных, чтобы определить, какая лента или диск содержит информацию. Затем компьютер даёт команду роботу извлечь носитель и поместить его в привод. После того как компьютер закончит считывание информации, робот вернёт носитель на его место в библиотеке.
Третичное хранилище также также иногда называется полуавтономная память, или хранилище Nearline (англ. Nearline storage), потому что оно «почти онлайн». Формальное различие между хранилищами online, nearline и offline следующее[6]:
- Онлайн-хранилище доступно для ввода-вывода данных немедленно.
- Хранилище Nearline не доступно немедленно, но может быть быстро переведено в онлайн-режим без вмешательства человека.
- Офлайн-хранилище не доступно немедленно и требует вмешательства человека для перехода в режим онлайн.
Например, постоянно включённые вращающиеся жёсткие диски являются онлайн-хранилищем, в то время как вращающиеся диски, которые автоматически останавливаются, например в «массивах с простаивающими/неактивными дисками» (англ. Massive Array of Idle Disks, MAID), являются nearline-хранилищем. Съёмные носители, такие как ленточный картридж, которые могут быть автоматически загружены, как в ленточной библиотеке, являются nearline-хранилищем, в то время как ленточный картридж, который необходимо загружать вручную, является офлайн-хранилищем.
Офлайн-хранилище
Офлайн-хранилище — это хранение компьютерных данных на носителе или устройстве, которое не контролируется процессором[7]. Носитель записывается обычно во вторичном или третичном устройстве хранения, а затем физически удаляется или отключается. Для повторного доступа компьютера к данным необходимо, чтобы оператор вручную вставил или подключил носитель. В отличие от третичного хранилища, к офлайн-хранилищу нельзя получить доступ без вмешательства человека.
Офлайн-хранение используется для передачи информации, поскольку отсоединённый носитель можно легко транспортировать. Кроме того, такое хранение необходимо в случаях катастроф, например, когда пожар уничтожает оригинальные данные, так как носитель в удалённом месте останется нетронутым, что позволяет восстановить данные после аварийного случая. Офлайн-хранилище способствует повышению общей информационной безопасности, поскольку оно физически недоступно с компьютера, и конфиденциальность или целостность данных не может быть нарушена с помощью хакерских атак. Также, если информация, хранящаяся в архивных целях, редко используется, офлайн-хранение обходится дешевле, чем третичное хранилище.
Офлайн-хранилище может также называться автономная память/архив.В современных персональных компьютерах большинство вторичных и третичных носителей информации также используются для автономного хранения. Оптические диски и устройства флэш-памяти являются наиболее популярными, а съёмные жёсткие диски используются в гораздо меньшей степени. Немного более устаревшие технологии — это дискеты и Zip-диски. В корпоративных целях используются в основном картриджи с магнитной лентой; к более старым примерам относятся магнитная лента на открытой катушке и перфокарта.


