Оперативная память ( ОЗУ ; / ræm / ) — это форма электронной компьютерной памяти , которую можно считывать и изменять в любом порядке, обычно используемая для хранения рабочих данных и машинного кода . [ 1] [2] Устройство оперативной памяти позволяет считывать и записывать элементы данных практически за одинаковое время независимо от физического расположения данных внутри памяти, в отличие от других носителей данных с прямым доступом (таких как жесткие диски и магнитная лента ), где время, необходимое для считывания и записи элементов данных, значительно варьируется в зависимости от их физического расположения на носителе записи из-за механических ограничений, таких как скорость вращения носителя и движение рычага.
В современных технологиях память с произвольным доступом принимает форму интегральных схем (ИС) с ячейками памяти МОП (металл-оксид-полупроводник) . ОЗУ обычно ассоциируется с энергозависимыми типами памяти, где сохраненная информация теряется при отключении питания. Два основных типа энергозависимой полупроводниковой памяти с произвольным доступом — это статическая память с произвольным доступом (SRAM) и динамическая память с произвольным доступом (DRAM).
Также была разработана энергонезависимая RAM [3] и другие типы энергонезависимой памяти допускают произвольный доступ для операций чтения, но либо не допускают операций записи, либо имеют другие виды ограничений. К ним относятся большинство типов ROM и NOR флэш-памяти .
Использование полупроводниковой оперативной памяти восходит к 1965 году, когда IBM представила монолитный (однокристальный) 16-битный чип SP95 SRAM для своего компьютера System/360 Model 95 , а Toshiba использовала биполярные ячейки памяти DRAM для своего 180-битного электронного калькулятора Toscal BC-1411 , оба на основе биполярных транзисторов . Хотя он предлагал более высокие скорости, чем память на магнитном сердечнике , биполярная DRAM не могла конкурировать с более низкой ценой доминирующей тогда памяти на магнитном сердечнике. [4] В 1966 году доктор Роберт Деннард изобрел современную архитектуру DRAM, в которой на конденсатор приходится один МОП-транзистор. [5] Первая коммерческая микросхема DRAM, 1K Intel 1103 , была представлена в октябре 1970 года. Синхронная динамическая память с произвольным доступом (SDRAM) была вновь представлена с чипом Samsung KM48SL2000 в 1992 году.
Ранние компьютеры использовали реле , механические счетчики [6] или линии задержки для основных функций памяти. Ультразвуковые линии задержки были последовательными устройствами , которые могли воспроизводить данные только в том порядке, в котором они были записаны. Память барабана могла быть расширена при относительно низких затратах, но эффективное извлечение элементов памяти требует знания физической компоновки барабана для оптимизации скорости. Защелки, построенные из триодных вакуумных ламп , а позднее из дискретных транзисторов , использовались для более мелких и быстрых запоминающих устройств, таких как регистры . Такие регистры были относительно большими и слишком дорогими для использования для больших объемов данных; обычно можно было предоставить только несколько десятков или несколько сотен бит такой памяти.
Первой практической формой памяти с произвольным доступом была трубка Уильямса . Она хранила данные в виде электрически заряженных пятен на лицевой стороне электронно-лучевой трубки . Поскольку электронный луч ЭЛТ мог считывать и записывать пятна на трубке в любом порядке, память была с произвольным доступом. Емкость трубки Уильямса составляла от нескольких сотен до примерно тысячи бит, но она была намного меньше, быстрее и энергоэффективнее, чем использование отдельных защелок вакуумных трубок. Разработанная в Университете Манчестера в Англии, трубка Уильямса стала носителем, на котором была реализована первая электронно сохраненная программа в компьютере Manchester Baby , который впервые успешно запустил программу 21 июня 1948 года. [7] Фактически, вместо того, чтобы память на трубке Уильямса была разработана для Baby, Baby был испытательным стендом для демонстрации надежности памяти. [8] [9]
Магнитная память была изобретена в 1947 году и развивалась вплоть до середины 1970-х годов. Она стала широко распространенной формой памяти с произвольным доступом, полагаясь на массив намагниченных колец. Изменяя направление намагниченности каждого кольца, можно было хранить данные, сохраняя по одному биту на кольцо. Поскольку каждое кольцо имело комбинацию адресных проводов для выбора и чтения или записи, был возможен доступ к любой ячейке памяти в любой последовательности. Магнитная память была стандартной формой компьютерной памяти , пока не была вытеснена полупроводниковой памятью в интегральных схемах (ИС) в начале 1970-х годов. [10]
До разработки интегральных схем постоянной памяти (ПЗУ) постоянная (или только для чтения ) память с произвольным доступом часто строилась с использованием диодных матриц, управляемых декодерами адреса , или специально намотанными слоями памяти с сердечником . [ необходима ссылка ]
Полупроводниковая память появилась в 1960-х годах с биполярной памятью, которая использовала биполярные транзисторы . Хотя она была быстрее, она не могла конкурировать с более низкой ценой памяти на магнитных сердечниках. [11]
В 1957 году Фрош и Дерик смогли изготовить первые полевые транзисторы на основе диоксида кремния в Bell Labs, первые транзисторы, в которых сток и исток были расположены рядом на поверхности. [12] Впоследствии группа продемонстрировала работающий МОП-транзистор в Bell Labs в 1960 году. [13] [14]
Это привело к разработке памяти на основе металл-оксид-полупроводника (МОП) Джоном Шмидтом в Fairchild Semiconductor в 1964 году. [10] [15] Помимо более высоких скоростей, МОП- полупроводниковая память была дешевле и потребляла меньше энергии, чем память на магнитных сердечниках. [10] Разработка технологии интегральных схем МОП с кремниевым затвором (МОП ИС) Федерико Фаггином в Fairchild в 1968 году позволила производить микросхемы памяти МОП . [16] МОП-память обогнала память на магнитных сердечниках и стала доминирующей технологией памяти в начале 1970-х годов. [10]
Интегрированная биполярная статическая память с произвольным доступом (SRAM) была изобретена Робертом Х. Норманом в Fairchild Semiconductor в 1963 году. [17] За ней последовала разработка MOS SRAM Джоном Шмидтом в Fairchild в 1964 году. [10] SRAM стала альтернативой памяти на магнитных сердечниках, но требовала шести MOS-транзисторов для каждого бита данных. [18] Коммерческое использование SRAM началось в 1965 году, когда IBM представила чип памяти SP95 для System/360 Model 95. [ 11]
Динамическая память с произвольным доступом (DRAM) позволила заменить схему защелки из 4 или 6 транзисторов одним транзистором для каждого бита памяти, значительно увеличив плотность памяти за счет нестабильности. Данные хранились в крошечной емкости каждого транзистора и должны были периодически обновляться каждые несколько миллисекунд, прежде чем заряд мог утечь.
Электронный калькулятор Toscal BC-1411 компании Toshiba , представленный в 1965 году, [19] [20] [21] использовал форму конденсаторно-биполярной DRAM, сохраняя 180-битные данные на дискретных ячейках памяти , состоящих из германиевых биполярных транзисторов и конденсаторов. [20] [21] Хотя биполярная DRAM предлагала более высокую скорость, чем память на магнитных сердечниках, она не могла конкурировать с более низкой ценой доминирующей в то время памяти на магнитных сердечниках. [22] Конденсаторы также использовались в более ранних схемах памяти, таких как барабан компьютера Атанасова–Берри , трубка Уильямса и трубка Селектрон .
В 1966 году доктор Роберт Деннард изобрел современную архитектуру DRAM, в которой на конденсатор приходится один МОП-транзистор. [18] При изучении характеристик технологии МОП он обнаружил, что она способна создавать конденсаторы , и что сохранение заряда или его отсутствие на конденсаторе МОП может представлять 1 и 0 бита, в то время как транзистор МОП может управлять записью заряда на конденсатор. Это привело к его разработке однотранзисторной ячейки памяти DRAM. [18] В 1967 году Деннард подал патент в IBM на однотранзисторную ячейку памяти DRAM, основанную на технологии МОП. [23] Первой коммерческой микросхемой DRAM была Intel 1103 , которая была изготовлена по 8 -мкм МОП-технологии с емкостью 1 кбит и была выпущена в 1970 году. [10] [24] [25]
Самые ранние DRAM часто синхронизировались с часами ЦП (тактировались) и использовались с ранними микропроцессорами. В середине 1970-х годов DRAM перешли на асинхронную конструкцию, но в 1990-х годах вернулись к синхронной работе. [26] [27] В 1992 году Samsung выпустила KM48SL2000, который имел емкость 16 Мбит . [28] [29] и начал массовое производство в 1993 году. [28] Первым коммерческим чипом памяти DDR SDRAM ( SDRAM с двойной скоростью передачи данных ) был чип Samsung DDR SDRAM емкостью 64 Мбит, выпущенный в июне 1998 года. [30] GDDR (графическая DDR) является формой DDR SGRAM (синхронная графическая RAM), которая была впервые выпущена Samsung как чип памяти емкостью 16 Мбит в 1998 году. [31]
Две широко используемые формы современной оперативной памяти — статическая оперативная память (SRAM) и динамическая оперативная память (DRAM). В SRAM бит данных хранится с использованием состояния ячейки памяти из шести транзисторов , обычно с использованием шести полевых МОП-транзисторов. Эта форма оперативной памяти дороже в производстве, но, как правило, быстрее и требует меньше динамической мощности, чем DRAM. В современных компьютерах SRAM часто используется в качестве кэш-памяти для ЦП . DRAM хранит бит данных с использованием пары транзистора и конденсатора (обычно MOSFET и MOS-конденсатор соответственно), [32] , которые вместе составляют ячейку DRAM. Конденсатор удерживает высокий или низкий заряд (1 или 0 соответственно), а транзистор действует как переключатель, который позволяет схеме управления на чипе считывать состояние заряда конденсатора или изменять его. Поскольку эта форма памяти менее затратна в производстве, чем статическая оперативная память, она является преобладающей формой компьютерной памяти, используемой в современных компьютерах.
Как статическая, так и динамическая RAM считаются энергозависимыми , поскольку их состояние теряется или сбрасывается при отключении питания системы. Напротив, постоянное запоминающее устройство (ROM) хранит данные, постоянно включая или отключая выбранные транзисторы, так что память не может быть изменена. Записываемые варианты ROM (такие как EEPROM и NOR flash ) разделяют свойства как ROM, так и RAM, позволяя данным сохраняться без питания и обновляться без необходимости использования специального оборудования. Память ECC (которая может быть как SRAM, так и DRAM) включает в себя специальные схемы для обнаружения и/или исправления случайных сбоев (ошибок памяти) в сохраненных данных с использованием битов четности или кодов исправления ошибок .
В целом, термин RAM относится исключительно к твердотельным запоминающим устройствам (DRAM или SRAM), а точнее к основной памяти большинства компьютеров. В оптическом хранилище термин DVD-RAM является несколько неточным, поскольку это не произвольный доступ; он ведет себя во многом как жесткий диск, хотя и немного медленнее. Кроме того, в отличие от CD-RW или DVD-RW , DVD-RAM не нужно стирать перед повторным использованием.
Ячейка памяти является основным строительным блоком компьютерной памяти . Ячейка памяти представляет собой электронную схему , которая хранит один бит двоичной информации, и ее необходимо настроить на хранение логической 1 (высокий уровень напряжения) и сбросить на хранение логического 0 (низкий уровень напряжения). Ее значение сохраняется/хранится до тех пор, пока не будет изменено процессом установки/сброса. Доступ к значению в ячейке памяти можно получить, прочитав его.
В SRAM ячейка памяти представляет собой тип триггерной схемы, обычно реализуемой с использованием полевых транзисторов . Это означает, что SRAM потребляет очень мало энергии, когда к ней не осуществляется доступ, но она дорогая и имеет низкую плотность хранения.
Второй тип, DRAM, основан на конденсаторе. Зарядка и разрядка этого конденсатора может сохранять «1» или «0» в ячейке. Однако заряд в этом конденсаторе медленно утекает и должен периодически обновляться. Из-за этого процесса обновления DRAM потребляет больше энергии, но может достигать большей плотности хранения и более низкой себестоимости единицы по сравнению с SRAM.
Чтобы быть полезными, ячейки памяти должны быть читаемыми и записываемыми. В устройстве RAM для выбора ячеек памяти используются схемы мультиплексирования и демультиплексирования. Обычно устройство RAM имеет набор адресных линий , и для каждой комбинации битов, которые могут быть применены к этим линиям, активируется набор ячеек памяти. Благодаря такой адресации устройства RAM практически всегда имеют емкость памяти, которая является степенью двойки.
Обычно несколько ячеек памяти имеют один и тот же адрес. Например, 4-битный чип RAM «шириной» имеет 4 ячейки памяти для каждого адреса. Часто ширина памяти и микропроцессора различаются, для 32-битного микропроцессора потребуется восемь 4-битных чипов RAM.
Часто требуется больше адресов, чем может предоставить устройство. В этом случае внешние мультиплексоры устройства используются для активации правильного устройства, к которому осуществляется доступ. ОЗУ часто адресуется побайтно, хотя также возможно сделать ОЗУ адресуемым пословно. [33] [34]
Можно считывать и перезаписывать данные в ОЗУ. Многие компьютерные системы имеют иерархию памяти, состоящую из регистров процессора , кэшей SRAM на кристалле , внешних кэшей , DRAM , систем подкачки и виртуальной памяти или пространства подкачки на жестком диске. Весь этот пул памяти может называться «ОЗУ» многими разработчиками, хотя различные подсистемы могут иметь очень разное время доступа , нарушая изначальную концепцию термина случайного доступа в ОЗУ. Даже в пределах уровня иерархии, такого как DRAM, конкретная строка, столбец, банк, ранг , канал или организация чередования компонентов делают время доступа переменным, хотя и не в такой степени, как время доступа к вращающимся носителям или ленте. Общая цель использования иерархии памяти — получить максимально возможное среднее время доступа при минимизации общей стоимости всей системы памяти (как правило, иерархия памяти следует за временем доступа с быстрыми регистрами ЦП наверху и медленным жестким диском внизу).
Во многих современных персональных компьютерах ОЗУ поставляется в легко модернизируемой форме модулей, называемых модулями памяти или модулями DRAM размером с несколько пластинок жевательной резинки. Их можно быстро заменить, если они повреждены или когда изменяющиеся потребности требуют большей емкости хранения. Как было предложено выше, меньшие объемы ОЗУ (в основном SRAM) также интегрированы в ЦП и другие ИС на материнской плате , а также в жесткие диски, CD-ROM и несколько других частей компьютерной системы.
Помимо использования в качестве временного хранилища и рабочего пространства для операционной системы и приложений, оперативная память используется во многих других целях.
Большинство современных операционных систем используют метод расширения емкости ОЗУ, известный как «виртуальная память». Часть жесткого диска компьютера отводится под файл подкачки или раздел scratch , а комбинация физической ОЗУ и файла подкачки образует общую память системы. (Например, если компьютер имеет 2 ГБ (1024 3 Б) ОЗУ и файл подкачки объемом 1 ГБ, то операционной системе доступно 3 ГБ общей памяти.) Когда в системе заканчивается физическая память, она может « переместить » части ОЗУ в файл подкачки, чтобы освободить место для новых данных, а также для считывания ранее перенесенной информации обратно в ОЗУ. Чрезмерное использование этого механизма приводит к пробуксовке и, как правило, снижает общую производительность системы, в основном потому, что жесткие диски намного медленнее ОЗУ.
Программное обеспечение может «разделить» часть оперативной памяти компьютера, позволяя ей работать как гораздо более быстрый жесткий диск, который называется RAM-диском . RAM-диск теряет сохраненные данные при выключении компьютера, если только память не настроена на резервный источник питания или изменения на RAM-диске не записаны на энергонезависимый диск. RAM-диск перезагружается с физического диска при инициализации RAM-диска.
Иногда содержимое относительно медленной микросхемы ПЗУ копируется в память чтения/записи, чтобы сократить время доступа. Затем микросхема ПЗУ отключается, а инициализированные ячейки памяти переключаются на тот же блок адресов (часто защищенных от записи). Этот процесс, иногда называемый затенением , довольно распространен как в компьютерах, так и в встроенных системах .
В качестве распространенного примера, BIOS в типичных персональных компьютерах часто имеет опцию под названием «использовать теневой BIOS» или подобную. При включении функции, которые полагаются на данные из ПЗУ BIOS, вместо этого используют области DRAM (большинство также могут переключать теневое отображение ПЗУ видеокарты или других разделов ПЗУ). В зависимости от системы, это может не привести к повышению производительности и может вызвать несовместимость. Например, некоторые аппаратные средства могут быть недоступны для операционной системы, если используется теневое ОЗУ. В некоторых системах преимущество может быть гипотетическим, поскольку BIOS не используется после загрузки в пользу прямого доступа к оборудованию. Свободная память уменьшается на размер теневых ПЗУ. [35]
« Стена памяти» — это растущее несоответствие скорости между ЦП и временем отклика памяти (известное как задержка памяти ) за пределами чипа ЦП. Важной причиной этого несоответствия является ограниченная пропускная способность связи за пределами границ чипа, которая также называется стеной пропускной способности . С 1986 по 2000 год скорость ЦП увеличивалась с ежегодной скоростью 55%, в то время как время отклика памяти вне чипа улучшалось только на 10%. Учитывая эти тенденции, ожидалось, что задержка памяти станет подавляющим узким местом в производительности компьютера. [36]
Другой причиной несоответствия является колоссальное увеличение размера памяти с начала революции ПК в 1980-х годах. Первоначально ПК содержали менее 1 мебибайта ОЗУ, которое часто имело время отклика 1 такт ЦП, что означало, что ему требовалось 0 состояний ожидания. Более крупные блоки памяти по своей природе медленнее, чем меньшие того же типа, просто потому, что сигналам требуется больше времени для прохождения по более крупной схеме. Построение блока памяти из многих гибибайт со временем отклика в один такт затруднено или невозможно. Современные ЦП часто все еще имеют мебибайт кэш-памяти 0 состояний ожидания, но он находится на том же чипе, что и ядра ЦП из-за ограничений пропускной способности связи между чипами. Он также должен быть построен из статической ОЗУ, которая намного дороже динамической ОЗУ, используемой для больших объемов памяти. Статическая ОЗУ также потребляет гораздо больше энергии.
Улучшения скорости ЦП значительно замедлились отчасти из-за серьезных физических барьеров, а отчасти из-за того, что текущие конструкции ЦП уже в некотором смысле уперлись в стену памяти. Intel суммировала эти причины в документе 2005 года. [37]
Во-первых, по мере уменьшения геометрии чипа и увеличения тактовой частоты ток утечки транзистора увеличивается, что приводит к избыточному потреблению энергии и нагреву... Во-вторых, преимущества более высоких тактовых частот частично сводятся на нет задержкой памяти, поскольку время доступа к памяти не успевает за ростом тактовой частоты. В-третьих, для некоторых приложений традиционные последовательные архитектуры становятся менее эффективными, поскольку процессоры становятся быстрее (из-за так называемого узкого места фон Неймана ), что еще больше подрывает любые выгоды, которые в противном случае можно было бы получить за счет увеличения частоты. Кроме того, отчасти из-за ограничений в способах создания индуктивности в твердотельных устройствах, задержки сопротивления-емкости (RC) при передаче сигнала растут по мере уменьшения размеров элементов, создавая дополнительное узкое место, которое увеличение частоты не устраняет.
Задержки RC при передаче сигнала также были отмечены в работе «Тактовая частота против IPC: конец пути для традиционных микроархитектур» [38] , в которой прогнозировалось максимальное среднегодовое улучшение производительности ЦП на 12,5% в период с 2000 по 2014 год.
Другая концепция — разрыв между производительностью процессора и памяти, который может быть решен с помощью 3D-интегральных схем , которые сокращают расстояние между аспектами логики и памяти, которые находятся дальше друг от друга в 2D-чипе. [39] Проектирование подсистемы памяти требует сосредоточения на разрыве, который со временем увеличивается. [40] Основным методом преодоления разрыва является использование кэшей ; небольших объемов высокоскоростной памяти, которая размещает последние операции и инструкции рядом с процессором, ускоряя выполнение этих операций или инструкций в случаях, когда они часто вызываются. Было разработано несколько уровней кэширования, чтобы справиться с расширяющимся разрывом, и производительность высокоскоростных современных компьютеров зависит от развивающихся методов кэширования. [41] Разница между ростом скорости процессора и отставанием скорости доступа к основной памяти может достигать 53%. [42]
Твердотельные жесткие диски продолжают увеличивать скорость, с ~400 Мбит/с через SATA3 в 2012 году до ~7 ГБ/с через NVMe / PCIe в 2024 году, сокращая разрыв между скоростями ОЗУ и жестких дисков, хотя ОЗУ продолжает быть на порядок быстрее, с однополосной DDR5 8000 МГц, способной выдавать 128 ГБ/с, а современная GDDR еще быстрее. Быстрые, дешевые, энергонезависимые твердотельные диски заменили некоторые функции, которые ранее выполняла ОЗУ, такие как хранение определенных данных для немедленной доступности в серверных фермах - 1 терабайт SSD-хранилища можно получить за 200 долларов, в то время как 1 ТБ ОЗУ будет стоить тысячи долларов. [43] [44]
i1103 был изготовлен по технологии P-MOS с 6 масками на кремниевом затворе и минимальными характеристиками 8 мкм. Полученный продукт имел размер ячейки памяти 2400 мкм 2 , размер кристалла чуть меньше 10 мм 2 и продавался по цене около 21 доллара.
Первая коммерческая синхронная DRAM, Samsung 16-Mbit KM48SL2000, использует однобанковую архитектуру, которая позволяет разработчикам систем легко переходить от асинхронных к синхронным системам.
{{cite web}}
: CS1 maint: archived copy as title (link).{{cite book}}
: |website=
проигнорировано ( помощь )Анонс 1M DRAM в 1984 году ознаменовал начало эры мегабайт.
{{cite news}}
: CS1 maint: unfit URL (link)