Компьютерная память

Компью́терная па́мять (устройство хранения информации, запоминающее устройство) — часть вычислительной машины, физическое устройство или среда для хранения данных, используемая в вычислениях систем в течение определённого времени. Память, и центральный процессор, неизменно является частью компьютера с 1940-х годов. Память в вычислительных устройствах имеет иерархическую структуру и обычно предполагает использование нескольких запоминающих устройств, имеющих различные характеристики.

В персональных компьютерах «памятью» часто называют один из её видов — динамическую память с произвольным доступом (DRAM), — которая используется в качестве ОЗУ персонального компьютера.

Задачей компьютерной памяти является хранение в своих ячейках состояния внешнего воздействия, запись информации. Эти ячейки могут фиксировать самые разнообразные физические воздействия. Они функционально аналогичны обычному электромеханическому переключателю и информация в них записывается в виде двух чётко различимых состояний — 0 и 1 («выключено»/«включено»). Специальные механизмы обеспечивают доступ (считывание, произвольное или последовательное) к состоянию этих ячеек.

Процесс доступа к памяти разбит на разделённые во времени процессы — операцию записи (сленг. прошивка, в случае записи ПЗУ) и операцию чтения, во многих случаях эти операции происходят под управлением отдельного специализированного устройства — контроллера памяти.

Также различают операцию стирания памяти — занесение (запись) в ячейки памяти одинаковых значений, обычно 0016 или FF16.

Наиболее известные запоминающие устройства, используемые в персональных компьютерах: модули оперативной памяти (ОЗУ), жёсткие диски (винчестеры), дискеты (гибкие магнитные диски), CD- или DVD-диски, а также устройства флеш-памяти.

Функции памяти 
Компьютерная память обеспечивает поддержку одной из функций современного компьютера, — способность длительного хранения информации. Вместе с центральным процессором запоминающее устройство являются ключевыми звеньями так называемой архитектуры фон Неймана, — принципа, заложенного в основу большинства современных компьютеров общего назначения.

Первые компьютеры использовали запоминающие устройства исключительно для хранения обрабатываемых данных. Их программы реализовывались на аппаратном уровне в виде жёстко заданных выполняемых последовательностей. Любое перепрограммирование требовало огромного объёма ручной работы по подготовке новой документации, перекоммутации, перестройки блоков и устройств и т. д. Использование архитектуры фон Неймана, предусматривающей хранение компьютерных программ и данных в общей памяти, коренным образом переменило ситуацию.

Любая информация может быть измерена в битах и потому, независимо от того, на каких физических принципах и в какой системе счисления функционирует цифровой компьютер (двоичной, троичной, десятичной и т. п.), числа, текстовая информация, изображения, звук, видео и другие виды данных можно представить последовательностями битовых строк или двоичными числами. Это позволяет компьютеру манипулировать данными при условии достаточной ёмкости системы хранения (например, для хранения текста романа среднего размера необходимо около одного мегабайта).

К настоящему времени создано множество устройств, предназначенных для хранения данных, основанных на использовании самых разных физических эффектов. Универсального решения не существует, у каждого имеются свои достоинства и свои недостатки, поэтому компьютерные системы обычно оснащаются несколькими видами систем хранения, основные свойства которых обуславливают их использование и назначение.

Физические основы функционирования 
В основе работы запоминающего устройства может лежать любой физический эффект, обеспечивающий приведение системы к двум или более устойчивым состояниям. В современной компьютерной технике часто используются физические свойства полупроводников, когда прохождение тока через полупроводник или его отсутствие трактуются как наличие логических сигналов 0 или 1. Устойчивые состояния, определяемые направлением намагниченности, позволяют использовать для хранения данных разнообразные магнитные материалы. Наличие или отсутствие заряда в конденсаторе также может быть положено в основу системы хранения. Отражение или рассеяние света от поверхности CD, DVD или Blu-ray-диска также позволяет хранить информацию.

Классификация типов памяти 
Следует различать классификацию памяти и классификацию запоминающих устройств (ЗУ). Первая классифицирует память по функциональности, вторая же — по технической реализации. Здесь рассматривается первая — таким образом, в неё попадают как аппаратные виды памяти (реализуемые на ЗУ), так и структуры данных, реализуемые в большинстве случаев программно.

Доступные операции с данными 
 Память только для чтения (read-only memory, ROM)
 Память для чтения/записи.

Память на программируемых и перепрограммируемых ПЗУ (ППЗУ и ПППЗУ) не имеет общепринятого места в этой классификации. Её относят либо к подвиду памяти «только для чтения», либо выделяют в отдельный вид.

Также предлагается относить память к тому или иному виду по характерной частоте её перезаписи на практике: к RAM относить виды, в которых информация часто меняется в процессе работы, а к ROM — предназначенные для хранения относительно неизменных данных.

Метод доступа 
 Последовательный доступ () — ячейки памяти выбираются (считываются) последовательно, одна за другой, в очерёдности их расположения. Вариант такой памяти — стековая память.
 Произвольный доступ () — вычислительное устройство может обратиться к произвольной ячейке памяти по любому адресу.

Организация хранения данных и алгоритмы доступа к ним 
Повторяет классификацию структур данных:
 Адресуемая память — адресация осуществляется по местоположению данных.
 Ассоциативная память () — адресация осуществляется по содержанию данных, а не по их местоположению (память проверяет наличие ячейки с заданным содержимым, и если таковая(ые) присутствует(ют) возвращает её(их) адрес(а) или другие данные с ней(ними) ассоциированные).
 Магазинная (стековая) память () — реализация стека.
 Матричная память () — ячейки памяти расположены так, что доступ к ним осуществляется по двум или более координатам.
 Объектная память () — память, система управления которой ориентирована на хранение объектов. При этом каждый объект характеризуется типом и размером записи.
 Семантическая память () — данные размещаются и списываются в соответствии с некоторой структурой понятийных признаков.

Назначение 
 Буферная память () — память, предназначенная для временного хранения данных при обмене ими между различными устройствами или программами.
 Временная (промежуточная) память () — память для хранения промежуточных результатов обработки.
 Кеш-память () — часть архитектуры устройства или программного обеспечения, осуществляющая хранение часто используемых данных для предоставления их в более быстрый доступ, нежели кэшируемая память.
 Корректирующая память () — часть памяти ЭВМ, предназначенная для хранения адресов неисправных ячеек основной памяти. Также используются термины relocation table и remap table.
 Управляющая память () — память, содержащая управляющие программы или микропрограммы. Обычно реализуется в виде ПЗУ.
 Разделяемая память или память коллективного доступа () — память, доступная одновременно нескольким пользователям, процессам или процессорам.

Организация адресного пространства 
 Реальная или физическая память () — память, способ адресации которой соответствует физическому расположению её данных;
 Виртуальная память () — память, способ адресации которой не отражает физического расположения её данных;
 Оверлейная память () — память, в которой присутствует несколько областей с одинаковыми адресами, из которых в каждый момент доступна только одна.

Удалённость и доступность для процессора 
 Первичная память (сверхоперативная, СОЗУ) — доступна процессору без какого-либо обращения к внешним устройствам.
 регистры процессора (процессорная или регистровая память) — регистры, расположенные непосредственно в АЛУ;
 кэш процессора — кэш, используемый процессором для уменьшения среднего времени доступа к компьютерной памяти. Разделяется на несколько уровней, различающихся скоростью и объёмом (например, L1, L2, L3).
 Вторичная память — доступна процессору путём прямой адресации через шину адреса (адресуемая память). Таким образом доступна оперативная память (память, предназначенная для хранения текущих данных и выполняемых программ) и порты ввода-вывода (специальные адреса, через обращение к которым реализовано взаимодействие с прочей аппаратурой).
 Третичная память — доступна только путём нетривиальной последовательности действий. Сюда входят все виды внешней памяти — доступной через устройства ввода-вывода. Взаимодействие с третичной памятью ведётся по определённым правилам (протоколам) и требует присутствия в памяти соответствующих программ. Программы, обеспечивающие минимально необходимое взаимодействие, помещаются в ПЗУ, входящее во вторичную память (у PC-совместимых ПК — это ПЗУ BIOS).

Положение структур данных, расположенных в основной памяти, в этой классификации неоднозначно. Как правило, их вообще в неё не включают, выполняя классификацию с привязкой к традиционно используемым видам ЗУ.

Доступность техническими средствами 

 Автономная память, Архив () — память, доступ к которой требует внешних действий — например, вставку оператором архивного носителя с указанным программой идентифиткатором
 Полуавтономная память  — то же, что автономная, но физическое перемещение носителей осуществляется роботом по команде системы, то есть не требует присутствия оператора

Прочие термины 
 Многоблочная память () — вид оперативной памяти, организованной из нескольких независимых блоков, допускающих одновременное обращение к ним, что повышает её пропускную способность. Часто употребляется термин «интерлив» (транскрипция  — перемежать) и может встречаться в документации некоторых фирм «многоканальная память» ().
 Память со встроенной логикой () — вид памяти, содержащий встроенные средства логической обработки (преобразования) данных, например их масштабирования, преобразования кодов, наложения полей и др.
 Многовходовая память () — устройство памяти, допускающее независимое обращение с нескольких направлений (входов), причём обслуживание запросов производится в порядке их приоритета.
 Многоуровневая память () — организация памяти, состоящая из нескольких уровней запоминающих устройств с различными характеристиками и рассматриваемая со стороны пользователей как единое целое. Для многоуровневой памяти характерна страничная организация, обеспечивающая «прозрачность» обмена данными между ЗУ разных уровней.
 Память параллельного действия () — вид памяти, в которой все области поиска могут быть доступны одновременно.
 Страничная память () — память, разбитая на одинаковые области — страницы. Операции записи-чтения на них осуществляются путём переключения страниц контроллером памяти.

См. также 
 Memtest86+

Примечания

Литература

Ссылки 
 Глава 1. Общие принципы организации памяти ЭВМ