Программа в памяти компьютера кратко

Обновлено: 02.07.2024

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

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

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

Связанные понятия

Операти́вная па́мять (англ. Random Access Memory, RAM, память с произвольным доступом) или операти́вное запомина́ющее устро́йство (ОЗУ) — энергозависимая часть системы компьютерной памяти, в которой во время работы компьютера хранится выполняемый машинный код (программы), а также входные, выходные и промежуточные данные, обрабатываемые процессором.

Запоминающее устройство с произвольным доступом (сокращённо ЗУПД), также Запоминающее устройство с произвольной выборкой (сокращённо ЗУПВ; англ. Random Access Memory, RAM) — один из видов памяти компьютера, позволяющий единовременно получить доступ к любой ячейке (всегда за одно и то же время, вне зависимости от расположения) по её адресу на чтение или запись.

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

Данные — поддающееся многократной интерпретации представление информации в формализованном виде, пригодном для передачи, связи, или обработки (ISO/IEC 2382-1:1993).

Блок управления памятью или устройство управления памятью (англ. memory management unit, MMU) — компонент аппаратного обеспечения компьютера, отвечающий за управление доступом к памяти, запрашиваемым центральным процессором.

Упоминания в литературе

И на этом возможности перпендикулярной записи будут исчерпаны. Отметим, что именно необъятная единичная емкость устройства в сочетании с экстремально низкой ценой каждого гигабайта (в дисках емкостью 3 Тбайта – не более 5 центов за гигабайт) и позволяет капризным и сложным по устройству магнитным носителям не только выживать, но и продолжать доминировать в качестве устройства долговременной компьютерной памяти . И они имеют шанс сохранить это доминирование еще надолго: Toshiba, в частности, сообщила о скором открытии двух исследовательских центров, где вместе с TDK и Showa Denko будет разрабатывать новые технологии. Это может быть термомагнитная запись (HAMR, от Heat Assistant Magnetic Recording, магнитная запись с помощью тепла), когда к обычным головкам добавляется лазер, точечно прогревающий носитель со специальным покрытием в месте записи, или запись методом упорядоченного битового массива данных (bit-patterned media). Уже изготовленный прототип по последней из этих технологий имеет плотность записи 2,5 Тбит/кв. дюйм, т. е. 10-терабитовые диски уже не за горами.

Связанные понятия (продолжение)

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

Виртуа́льная па́мять (англ. virtual memory) — метод управления памятью компьютера, позволяющий выполнять программы, требующие больше оперативной памяти, чем имеется в компьютере, путём автоматического перемещения частей программы между основной памятью и вторичным хранилищем (например, жёстким диском). Для выполняющейся программы данный метод полностью прозрачен и не требует дополнительных усилий со стороны программиста, однако реализация этого метода требует как аппаратной поддержки, так и поддержки.

Счётчик кома́нд (также PC = program counter, IP = instruction pointer, IAR = instruction address register, СЧАК = счётчик адресуемых команд) — регистр процессора, который указывает, какую команду нужно выполнять следующей.

Машинное слово — машинно-зависимая и платформозависимая величина, измеряемая в битах или байтах (тритах или трайтах), равная разрядности регистров процессора и/или разрядности шины данных (обычно некоторая степень двойки).

Килоба́йт (русское обозначение: Кбайт; международное: Kbyte, KB) — единица измерения количества информации, равная 1024 байт.

Адрес — символ или группа символов, которые идентифицируют регистр, отдельные части памяти или некоторые другие источники данных, либо место назначения информации.

Постоя́нное запомина́ющее устро́йство (ПЗУ) — энергонезависимая память, используется для хранения массива неизменяемых данных.

Разрядность числа в математике — количество числовых разрядов, необходимых для записи этого числа в той или иной системе счисления. Разрядность числа иногда также называется его длиной.

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

Прямой доступ к памяти (англ. direct memory access, DMA) — режим обмена данными между устройствами компьютера или же между устройством и основной памятью, в котором центральный процессор (ЦП) не участвует. Так как данные не пересылаются в ЦП и обратно, скорость передачи увеличивается.

Энергонезависимая память (англ. Non Volatile Random Access Memory; NVRAM) — разновидность запоминающих устройств с произвольным доступом, которые способны хранить данные при отсутствии электрического питания. Может состоять из модуля SRAM, соединённого со своей собственной батарейкой. В другом случае SRAM может действовать в связке с EEPROM, например, флеш-памятью.

Систе́ма кома́нд (также набо́р команд) — соглашение о предоставляемых архитектурой средствах программирования, а именно.

Шина адреса — компьютерная шина, используемая центральным процессором или устройствами, способными инициировать сеансы DMA, для указания физического адреса слова ОЗУ (или начала блока слов), к которому устройство может обратиться для проведения операции чтения или записи.

Регистр — устройство для записи, хранения и считывания n-разрядных двоичных данных и выполнения других операций над ними.

Архитектура набора команд (англ. instruction set architecture, ISA) — часть архитектуры компьютера, определяющая программируемую часть ядра микропроцессора. На этом уровне определяются реализованные в микропроцессоре конкретного типа.

Микроко́д — программа, реализующая набор инструкций процессора. Так же как одна инструкция языка высокого уровня преобразуется в серию машинных инструкций, в процессоре, использующем микрокод, каждая машинная инструкция реализуется в виде серии микроинструкций — микропрограммы, микрокода.

Защищённый режим (режим защищённой виртуальной адресации) — режим работы x86-совместимых процессоров. Частично был реализован уже в процессоре 80286, но там существенно отличался способ работы с памятью, так как процессоры ещё были 16-битными и не была реализована страничная организация памяти. Первая 32-битная реализация защищённого режима — процессор Intel 80386. Применяется в совместимых процессорах других производителей. Данный режим используется в современных многозадачных операционных системах.

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

В информатике бу́фер (англ. buffer), мн. ч. бу́феры — это область памяти, используемая для временного хранения данных при вводе или выводе. Обмен данными (ввод и вывод) может происходить как с внешними устройствами, так и с процессами в пределах компьютера. Буферы могут быть реализованы в аппаратном или программном обеспечении, но подавляющее большинство буферов реализуется в программном обеспечении. Буферы используются, когда существует разница между скоростью получения данных и скоростью их обработки.

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

Тактовый сигнал или синхросигнал — сигнал, использующийся для согласования операций одной или более цифровых схем.

Байт (англ. byte) (русское обозначение: байт и Б; международное: B, byte) — единица хранения и обработки цифровой информации; совокупность битов, обрабатываемая компьютером одномоментно. В современных вычислительных системах байт состоит из восьми битов и, соответственно, может принимать одно из 256 (28) различных значений (состояний, кодов). Однако в истории компьютерной техники существовали решения с иными размерами байта (например, 6, 32 или 36 битов), поэтому иногда в компьютерных стандартах.

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

Микроконтро́ллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами.

Программи́руемая логи́ческая интегра́льная схе́ма (ПЛИС, англ. programmable logic device, PLD) — электронный компонент (интегральная микросхема), используемый для создания конфигурируемых цифровых электронных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программатор и IDE (отладочная среда), позволяющие задать желаемую структуру цифрового устройства в.

Накопи́тель на жёстких магни́тных ди́сках, или НЖМД (англ. hard (magnetic) disk drive, HDD, HMDD), жёсткий диск, винчестер — запоминающее устройство (устройство хранения информации) произвольного доступа, основанное на принципе магнитной записи. Является основным накопителем данных в большинстве компьютеров.

Центра́льный проце́ссор (ЦП; также центра́льное проце́ссорное устро́йство — ЦПУ; англ. central processing unit, CPU, дословно — центральное обрабатывающее устройство) — электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (код программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором.

Флеш-память, (англ. flash memory) — разновидность полупроводниковой технологии электрически перепрограммируемой памяти (EEPROM). Это же слово используется в электронной схемотехнике для обозначения технологически законченных решений постоянных запоминающих устройств в виде микросхем на базе этой полупроводниковой технологии. В быту это словосочетание закрепилось за широким классом твердотельных устройств хранения информации.

Шина данных — часть системной шины, предназначенная для передачи данных между компонентами компьютера.

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

Ввод-вывод через порты (англ. I/O ports) — схемотехническое решение, организующее взаимодействие процессора и устройств ввода-вывода. Противоположность вводу-выводу через память.

Адресация — осуществление ссылки (обращение) к устройству или элементу данных по его адресу; установление соответствия между множеством однотипных объектов и множеством их адресов; метод идентификации местоположения объекта.

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

Встра́иваемая систе́ма (встро́енная систе́ма, англ. embedded system) — специализированная микропроцессорная система управления, контроля и мониторинга, концепция разработки которой заключается в том, что такая система будет работать, будучи встроенной непосредственно в устройство, которым она управляет.

Твердотельный накопитель, или ТТН (англ. solid-state drive, SSD) — компьютерное энергонезависимое немеханическое запоминающее устройство на основе микросхем памяти, которое идёт на смену HDD. Кроме микросхем памяти, SSD содержит управляющий контроллер. Наиболее распространённый вид твердотельных накопителей использует для хранения информации флеш-память типа NAND, однако существуют варианты, в которых накопитель создаётся на базе DRAM-памяти, снабжённой дополнительным источником питания — аккумулятором.

Иерархия компьютерной памяти — концепция построения взаимосвязи классов разных уровней компьютерной памяти на основе иерархической структуры.

Буфер ассоциативной трансляции (англ. Translation lookaside buffer, TLB) — это специализированный кэш центрального процессора, используемый для ускорения трансляции адреса виртуальной памяти в адрес физической памяти.

А́дресное пространство (англ. address space) — совокупность всех допустимых адресов каких-либо объектов вычислительной системы — ячеек памяти, секторов диска, узлов сети и т. п., которые могут быть использованы для доступа к этим объектам при определенном режиме работы (состоянии системы).

Цифровой сигнальный процессор (англ. digital signal processor, DSP, цифровой процессор обработки сигналов (ЦПОС)) — специализированный микропроцессор, предназначенный для обработки оцифрованных сигналов (обычно, в режиме реального времени).

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

Аннотация: В настоящей лекции рассматриваются простейшие способы управления памятью в ОС. Физическая память компьютера имеет иерархическую структуру. Программа представляет собой набор сегментов в логическом адресном пространстве. ОС осуществляет связывание логических и физических адресных пространств.

Введение

Главная задача компьютерной системы – выполнять программы. Программы вместе с данными, к которым они имеют доступ , в процессе выполнения должны (по крайней мере частично) находиться в оперативной памяти . Операционной системе приходится решать задачу распределения памяти между пользовательскими процессами и компонентами ОС. Эта деятельность называется управлением памятью. Таким образом, память ( storage , memory ) является важнейшим ресурсом, требующим тщательного управления. В недавнем прошлом память была самым дорогим ресурсом.

Часть ОС, которая отвечает за управление памятью , называется менеджером памяти.

Физическая организация памяти компьютера

Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную, оперативную , физическую ) и вторичную (внешнюю) память.

Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной памяти , декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти . Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.

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

Эту схему можно дополнить еще несколькими промежуточными уровнями, как показано на рис. 8.1. Разновидности памяти могут быть объединены в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости.

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

Локальность

Оказывается, при таком способе организации по мере снижения скорости доступа к уровню памяти снижается также и частота обращений к нему.

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

Свойство локальности (соседние в пространстве и времени объекты характеризуются похожими свойствами) присуще не только функционированию ОС, но и природе вообще. В случае ОС свойство локальности объяснимо, если учесть, как пишутся программы и как хранятся данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с ограниченным набором данных. Эту часть кода и данных удается разместить в памяти с быстрым доступом. В результате реальное время доступа к памяти определяется временем доступа к верхним уровням, что и обусловливает эффективность использования иерархической схемы. Надо сказать, что описываемая организация вычислительной системы во многом имитирует деятельность человеческого мозга при переработке информации. Действительно, решая конкретную проблему, человек работает с небольшим объемом информации, храня не относящиеся к делу сведения в своей памяти или во внешней памяти (например, в книгах).

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

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

Логическая память

Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организовано хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов. Однако чаще модули помещаются в разные области памяти и используются по-разному.

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

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

Некоторые сегменты , описывающие адресное пространство процесса, показаны на рис. 8.2. Более подробная информация о типах сегментов имеется в лекции 10.

Большинство современных ОС поддерживают сегментную организацию памяти. В некоторых архитектурах (Intel, например) сегментация поддерживается оборудованием.

Адреса, к которым обращается процесс, таким образом, отличаются от адресов, реально существующих в оперативной памяти . В каждом конкретном случае используемые программой адреса могут быть представлены различными способами. Например, адреса в исходных текстах обычно символические. Компилятор связывает эти символические адреса с перемещаемыми адресами (такими, как n байт от начала модуля). Подобный адрес, сгенерированный программой, обычно называют логическим (в системах с виртуальной памятью он часто называется виртуальным) адресом. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством .

Связывание адресов

Итак логические и физические адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора (например, 2 32 ) и в современных системах значительно превышает размер физического адресного пространства . Следовательно, процессор и ОС должны быть способны отобразить ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти . Такое отображение адресов называют трансляцией (привязкой) адреса или связыванием адресов (см. рис. 8.3).

Связывание логического адреса, порожденного оператором программы, с физическим должно быть осуществлено до начала выполнения оператора или в момент его выполнения. Таким образом, привязка инструкций и данных к памяти в принципе может быть сделана на следующих шагах [Silberschatz, 2002].

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

Вспомнить все. Эволюция компьютерной памяти
Вспомнить все. Эволюция компьютерной памяти

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

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

Прежде чем начать путешествие в прошлое, давайте разберемся в обозначенной выше классификации и поймем, для чего нужен каждый из типов памяти. Компьютер представляет информацию в виде последовательности бит — двоичных цифр со значениями 1 или 0. Общепринятой универсальной единицей информации считают байт, как правило, состоящий из 8 бит. Все используемые компьютером данные занимают некоторое количество байт. К примеру, типичный музыкальный файл занимает 40 миллионов бит — 5 миллионов байт (или 4,8 мегабайта). Центральный процессор не сможет функционировать без элементарного запоминающего устройства, ведь вся его работа сводится к получению, обработке и записи обратно в память. Именно поэтому легендарный Джон фон Нейман (мы не раз упоминали его имя в цикле статей про мейнфреймы) придумал размещать внутри компьютера независимую структуру, где хранились бы все необходимые данные.

Классификация внутренней памяти разделяет носители еще и по скоростному (и энергетическому) принципу. Быстрая первичная (оперативная) память в наше время используется для хранения критичной информации, к которой ЦП обращается наиболее часто. Это ядро операционной системы, исполняемые файлы запущенных программ, промежуточные результаты вычислений. Время доступа — минимально, всего несколько наносекунд.

Первичная память общается с контроллером, размещенным либо внутри процессора (у последних моделей ЦП), либо в виде отдельной микросхемы на материнской плате (северный мост). Цена на оперативку относительно высока, к тому же она энергозависима: выключили компьютер или случайно выдернули шнур из розетки — и вся информация потерялась. Поэтому все файлы хранятся во вторичной памяти — на пластинах жестких дисков. Информация здесь не стирается после отключения питания, а цена за мегабайт очень низкая. Единственный недостаток винчестеров — низкая скорость реакции, она измеряется уже в миллисекундах.

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

Компьютер Bendix G15 с барабанной памятью. Оператор в костюме прилагается.

Одним из основных компонентов первых компьютеров были электромагнитные переключатели, разработанные известным американским ученым Джозефом Хенри еще в 1835 году, когда ни о каких компьютерах никто даже не помышлял. Простой механизм состоял из обмотанного проводом металлического сердечника, подвижной железной арматуры и нескольких контактов. Разработка Хенри легла в основу электрического телеграфа Сэмюеля Морзе и Чарльза Витстоуна.

Первый компьютер, построенный на переключателях, появился в Германии в 1939 году. Инженер Конрад Зюс использовал их при создании системной логики устройства Z2. К сожалению, прожила машина недолго, а ее планы и фотографии были утеряны во время бомбардировок Второй мировой войны. Следующее вычислительное устройство Зюса (под именем Z3) увидело свет в 1941 году. Это был первый компьютер, управляемый программой. Основные функции машины реализовывались при помощи 2000 переключателей. Конрад собирался перевести систему на более современные компоненты, но правительство прикрыло финансирование, посчитав, что идеи Зюса не имеют будущего. Как и ее предшественница, Z3 была уничтожена во время бомбардировок союзников.

Электромагнитные переключатели работали очень медленно, но развитие технологий не стояло на месте. Вторым типом памяти для ранних компьютерных систем стали линии задержки. Информацию несли электрические импульсы, которые преобразовывались в механические волны и на низкой скорости перемещались через ртуть, пьезоэлектронный кристалл или магниторезистивную катушку. Есть волна — 1, нет волны — 0. В единицу времени по проводящему материалу могли путешествовать сотни и тысячи импульсов. По завершении своего пути каждая волна трансформировалась обратно в электрический импульс и отсылалась в начало — вот вам и простейшая операция обновления.

Линии задержки разработал американский инженер Джон Преспер Экерт. Компьютер EDVAC, представленный в 1946 году, содержал два блока памяти по 64 линии задержки на основе ртути (5,5 Кб по современным меркам). На тот момент этого было более чем достаточно для работы. Вторичная память также присутствовала в EDVAC — результаты вычислений записывались на магнитную пленку. Другая система, UNIVAC 1, увидевшая свет в 1951 году, использовала 100 блоков на основе линий задержки, а для сохранения данных у нее была сложная конструкция со множеством физических элементов.

Блок памяти на основе линий задержки больше похож на гиперпространственный двигатель космического корабля. Сложно представить, но подобная махина могла сохранить всего несколько бит данных!

За кадром нашего исследования осталось два довольно значимых изобретения в области носителей данных. Оба сделал талантливый сотрудник Bell Labs Эндрю Бобек. Первая разработка — так называемая твисторная память — могла стать прекрасной альтернативой памяти на основе магнитных сердечников. Она во многом повторяла последнюю, но вместо ферритовых колец для хранения данных использовала магнитную пленку. У технологии были два важных преимущества. Во-первых, твисторная память могла одновременно записывать и считывать информацию с целого ряда твисторов. Плюс к этому, было легко наладить ее автоматическое производство. Руководство Bell Labs надеялось, что это позволит существенно снизить цену твисторной памяти и занять перспективный рынок. Разработку финансировали ВВС США, а память должна была стать важной функциональной ячейкой ракет Nike Sentinel. К сожалению, работа над твисторами затянулась, а на первый план вышла память на основе транзисторов. Захват рынка не состоялся.

Изобретением заинтересовались многие компании, и в середине 70-х разработками в области пузырьковой памяти занялись все крупные игроки рынка. Энергонезависимая структура делала пузырьки идеальной заменой как первичной, так и вторичной памяти. Но и тут планам Bell Labs не удалось сбыться — дешевые винчестеры и транзисторная память перекрыли кислород пузырьковой технологии.

Вакуум — наше все

Вакуумные трубки сохранились в технике и по сей день. Особенной любовью они пользуются среди аудиофилов. Считается, что усилительный тракт на основе вакуумных трубок по качеству звука на голову выше современных аналогов.

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

Параллельно свою трубку, именуемую селектрон, разрабатывали инженеры из компании Radio Corporation of America под управлением ученого Владимира Зворыкина. По задумке авторов селектрон должен был вмещать до 4096 бит информации, что в четыре раза больше, чем у трубки Вильямса — Килберна. Предполагалось, что к концу 1946 года будет произведено около 200 селектронов, но производство оказалось очень дорогим.

Наравне с вакуумными трубками в некоторых компьютерах того времени использовалась барабанная память, изобретенная Густавом Таусчеком в 1939 году. Простая конструкция включала большой металлический цилиндр, покрытый сплавом из ферромагнетика. Считывающие головки, в отличие от современных винчестеров, не перемещались по поверхности цилиндра. Контроллер памяти ждал, пока информация самостоятельно пройдет под головками. Барабанная память использовалась в компьютере Атанасова — Берри и некоторых других системах. К сожалению, ее производительность была очень низкой.

Селектрону не было суждено завоевать рынок вычислительных машин — опрятные на вид электронные компоненты так и остались пылиться на свалке истории. И это несмотря на выдающиеся технические характеристики.

В данный момент рынком первичной памяти правит стандарт DDR. Точнее, второе его поколение. Переход на DDR3 состоится уже совсем скоро — осталось дождаться появления недорогих чипсетов с поддержкой нового стандарта. Повсеместная стандартизация сделала сегмент памяти слишком скучным для описания. Производители перестали изобретать новые, уникальные продукты. Все труды сводятся к увеличению рабочей частоты и установке навороченной системы охлаждения.

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

Правда, здесь кроется один подвох. Производительности существующих чипов DDR2 достаточно для большинства компьютерных приложений (сложные научные программы не в счет). Установка модулей DDR3, работающих на частоте 1066 МГц и выше, не ведет к ощутимому приросту скорости.

Звездный путь в будущее

Странная текстура на фотографии — это память на основе магнитных сердечников. Перед вами наглядная структура одного из массивов с проводами и ферритовыми кольцами. Представляете, сколько времени приходилось потратить, чтобы найти среди них нерабочий модуль?

Главным недостатком памяти, да и всех остальных компонентов на основе вакуумных трубок было тепловыделение. Трубки приходилось охлаждать при помощи радиаторов, воздуха и даже воды. К тому же постоянный нагрев существенно уменьшал время работы — трубки самым натуральным образом деградировали. Под конец срока эксплуатации их приходилось постоянно настраивать и в конечном итоге менять. Можете представить, скольких усилий и средств стоило сервисное обслуживание вычислительных систем?!

Потом наступило время массивов с близко расположенными ферритовыми кольцами — изобретение американских физиков Эн Вэнг и Вэй-Донг Ву, доработанное студентами под управлением Джея Форрестера из Массачусетского технологического университета (MIT). Через центры колец под углом 45 градусов проходили соединительные провода (по четыре на каждое кольцо в ранних системах, по два в более совершенных). Под напряжением провода намагничивали ферритовые кольца, каждое из которых могло сохранить один бит данных (намагничено — 1, размагничено — 0).

Технологию постепенно совершенствовали. Ферритовые кольца уменьшались в размерах, скорость работы росла. Первые образцы функционировали на частоте порядка 1 МГц, время доступа составляло 60 000 нс — к середине 70-х годов оно сократилось до 600 нс.

Дорогая, я уменьшил нашу память

Производители памяти в наше время больше заботятся о внешнем виде своих продуктов — все равно стандарты и характеристики заранее определены в комиссиях вроде JEDEC.

Следующий скачок в развитии компьютерной памяти произошел, когда были придуманы интегральные микросхемы и транзисторы. Индустрия пошла по пути миниатюризации компонентов с одновременным повышением их производительности. В начале 1970-х полупроводниковая промышленность освоила выпуск микросхем высокой степени интеграции — на сравнительно малой площади теперь умещались десятки тысяч транзисторов. Появились микросхемы памяти емкостью 1 Кбит (1024 бит), небольшие чипы для калькуляторов и даже первые микропроцессоры. Случилась самая настоящая революция.

Особый вклад в развитие первичной памяти внес доктор Роберт Деннард, сотрудник компании IBM. Он разработал первый чип на транзисторе и небольшом конденсаторе. В 1970 году рынок подстегнула компания Intel (которая появилась всего двумя годами раньше), представив чип памяти i1103 емкостью 1 Кбит. Спустя два года этот продукт стал самым продаваемым полупроводниковым чипом памяти в мире.

Во времена первых Apple Macintosh блок оперативной памяти занимал огромную планку (на фото сверху), тогда как объем не превышал 64 Кб.

Микросхемы высокой степени интеграции быстро вытеснили старые типы памяти. С переходом на следующий уровень развития громоздкие мейнфреймы уступили место настольным компьютерам. Основная память в то время окончательно отделилась от вторичной, оформилась в виде отдельных микрочипов емкостью 64, 128, 256, 512 Кбит и даже 1 Мбит.

Наконец, микросхемы первичной памяти переехали с материнских плат на отдельные планки, это сильно облегчило установку и замену неисправных компонентов. Частоты начали расти, время доступа уменьшаться. Первые синхронные динамические чипы SDRAM появились в 1993 году, их представила компания Samsung. Новые микросхемы работали на частоте 100 МГц, время доступа равнялось 10 нс.

С этого момента началось победоносное шествие SDRAM, а к 2000 году этот тип памяти вытеснил всех конкурентов. Определением стандартов на рынке оперативки занялась комиссия JEDEC (Joint Electron Device Engineering Council). Ее участники сформировали спецификации, единые для всех производителей, утвердили частотные и электрические характеристики.

Дальнейшая эволюция не так интересна. Единственное значимое событие произошло в 2000 году, когда на рынке появилась оперативная память стандарта DDR SDRAM. Она обеспечила удвоенную (по сравнению с обычной SDRAM) пропускную способность и создала задел для будущего роста. Вслед за DDR в 2004 году появился стандарт DDR2, который до сих пор пользуется наибольшей популярностью.

В современном IT-мире фразой Patent Troll (патентный тролль) называют фирмы, которые зарабатывают деньги на судебных исках. Они мотивируют это тем, что другие компании нарушили их авторские права. Целиком и полностью под это определение попадает разработчик памяти Rambus.

С момента основания в 1990 году Rambus занималась лицензированием своих технологий сторонним компаниям. К примеру, ее контроллеры и микросхемы памяти можно найти в приставках Nintendo 64 и PlayStation 2. Звездный час Rambus настал в 1996 году, когда Intel заключила с ней соглашение на использование в своих продуктах памяти RDRAM и разъемов RIMM.

Сначала все шло по плану. Intel получила в свое распоряжение продвинутую технологию, а Rambus довольствовалась партнерством с одним из крупнейших игроков IT-индустрии. К сожалению, высокая цена модулей RDRAM и чипсетов Intel поставили крест на популярности платформы. Ведущие производители материнских плат использовали чипсеты VIA и платы с разъемами под обычную SDRAM.

Rambus поняла, что на этом этапе она проиграла рынок памяти, и начала свои затяжные игры с патентами. Первым делом ей под руку попалась свежая разработка JEDEC — память стандарта DDR SDRAM. Rambus накинулась на нее, обвинив создателей в нарушении авторских прав. В течение некоторого времени компания получала денежные отчисления, однако уже следующее судебное разбирательство с участием Infineon, Micron и Hynix расставило все по своим местам. Суд признал, что технологические наработки в области DDR SDRAM и SDRAM не принадлежат Rambus.

С тех пор общее количество исков со стороны Rambus к ведущим производителям оперативки превысило все мыслимые пределы. И, похоже, такой образ жизни компанию вполне устраивает.


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

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

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

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

Содержание

Функции памяти

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

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

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

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

Физические основы функционирования

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

Классификация типов памяти

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

Доступные операции с данными

  • Память только для чтения (read-only memory, ROM)
  • Память для чтения/записи

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

Энергозависимость

  • Энергонезависимая память (англ.nonvolatile storage ) — память, реализованная ЗУ, записи в которых не стираются при снятии электропитания. К этому типу памяти относятся все виды памяти на ПЗУ и ППЗУ;
  • Энергозависимая память (англ.volatile storage ) — память, реализованная ЗУ, записи в которых стираются при снятии электропитания. К этому типу памяти относятся память, реализованная на ОЗУ, кэш-память.
    • Статическая память (англ.static storage ) — энергозависимая память, которой для хранения информации достаточно сохранения питающего напряжения;
    • Динамическая память (англ.dynamic storage ) — энергозависимая память, в которой информация со временем разрушается (деградирует), и, кроме подачи электропитания, необходимо производить её периодическое восстановление (регенерацию).

    Метод доступа

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

    Назначение

    • Буферная память (англ.buffer storage ) — память, предназначенная для временного хранения данных при обмене ими между различными устройствами или программами.
    • Временная (промежуточная) память (англ.temporary (intermediate) storage ) — память для хранения промежуточных результатов обработки.
    • Кеш-память (англ.cache memory ) — часть архитектуры устройства или программного обеспечения, осуществляющая хранение часто используемых данных для предоставления их в более быстрый доступ, нежели кешируемая память.
    • Корректирующая память (англ.patch memory ) — часть памяти ЭВМ, предназначенная для хранения адресов неисправных ячеек основной памяти. Также используются термины relocation table и remap table.
    • Управляющая память (англ.control storage ) — память, содержащая управляющие программы или микропрограммы. Обычно реализуется в виде ПЗУ.
    • Разделяемая память или память коллективного доступа (англ.shared memory, shared access memory ) — память, доступная одновременно нескольким пользователям, процессам или процессорам.

    Организация адресного пространства

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

    Удалённость и доступность для процессора