Как работает динамическая память

Обновлено: 02.07.2024

Динамическая память – DRAM (Dynamic RAM) – получила свое название от принципа действия ее запоминающих ячеек, которые выполнены в виде конденсаторов, образованных элементами полупроводниковых микросхем. С некоторым упрощением описания физических процессов можно сказать, что при записи логической единицы в ячейку конденсатор заряжается, при записи нуля – разряжается. Схема считывания разряжает через себя этот конденсатор, и, если заряд был ненулевым, выставляет на своем выходе единичное значение, и подзаряжает конденсатор до прежнего значения. При отсутствии обращения к ячейке со временем за счет токов утечки конденсатор разряжается и информация теряется, поэтому такая память требует постоянного периодического подзаряда конденсаторов (обращения к каждой ячейке) – память может работать только в динамическом режиме. Этим она принципиально отличается от статической памяти, реализуемой на триггерных ячейках и хранящей информацию без обращений к ней сколь угодно долго (при включенном питании). Благодаря относительной простоте ячейки динамической памяти на одном кристалле удается размещать миллионы ячеек и получать самую дешевую полупроводниковую память достаточно высокого быстродействия с умеренным энергопотреблением, используемую в качестве основной памяти компьютера. Основные недостатки такой памяти следующие: 1) необходимость регенерации зарядов на запоминающих емкостях через время, не меньшее, чем допустимое; 2) низкое быстродействие по сравнению со статической памятью.

Рис. 2.6. Временные диаграммы чтения и записи динамической памяти

Для памяти с расширенной регенерацией (extended refresh) допустим период циклов до 125 мкс. Возможен также и вариант пакетной регенерации (burst refresh), когда все циклы регенерации собираются в пакет (рис. 2.7,б), во время которого обращение к памяти по чтению и записи блокируется. При количестве циклов 1024 эти пакеты будут периодически занимать шину памяти примерно на 130 мкс, что далеко не всегда допустимо. По этой причине практически всегда выполняется распределенная регенерация, хотя возможен и промежуточный вариант – пакетами по нескольку (например, 4) циклов.


Рис. 2.7. Методы регенерации динамической памяти: а – одиночные циклы регенерации; б – пакетные циклы регенерация

Рис. 2.8. Циклы регенерации динамической памяти

Регенерация основной памяти в PC/XT осуществлялась каналом DMA-0. Сигнал Refr, вырабатываемый каждые 15,6 мкс по сигналу от первого канала таймера-счетчика 8253/9254 (порт 04lh), вызывает холостой цикл обращения к памяти для регенерации очередной строки.

Рис. 2.9. Скрытая регенерация (Hidden Refresh)

В современных компьютерах регенерацию основной памяти берет на себя чипсет, и его задача – по возможности использовать для регенерации циклы шины, не занятые ее абонентами (процессорами и активными контроллерами). Самые эффективные контроллеры регенерации (smart refresh) ставят запросы на регенерацию в очередь, которую обслуживают в свободное для шины время, и только если запросов накапливается больше предельного количества, откладывается текущий цикл обмена по шине и цикл регенерации выполняется немедленно. Модули памяти в разных банках могут регенерироваться одновременно, но при использовании чередования (interleaving) для экономии времени целесообразно производить регенерацию одного банка во время полезного обращения к другому. Некоторые системные платы позволяют использовать режим пониженной частоты регенерации (slow refresh), однако его можно применять только с модулями памяти, допускающими режим Extended Refresh.

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

Рис. 2.10. Страничный режим считывания стандартной DRAM (FPM)

Временная диаграмма работы с EDO-памятью в режиме страничного обмена приведена на рис. 2.11, этот режим иногда называют гиперстраничным режимом обмена НРМ (Hyper Page mode).

Рис. 2.11. Страничный режим считывания EDO DRAM (HPM)

Микросхемы EDO DRAM применяются в SIMM-72 и DIMM-модулях, эти модули конструктивно и по назначению выводов совместимы со стандартными (FPM). Все EDO-модули не имеют бит паритета. Контрольные разряды 36-битных EDO-модулей могут использоваться только в ЕСС-памяти, в которой доступ осуществляется всегда сразу ко всем байтам.

Рис. 2.12. Управление выходным буфером EDO DRAM

Задержка отключения выходных буферов затрудняет применение чередования банков, из-за чего некоторые системные платы не поддерживают Bank Interleaving для EDO-памяти. Микросхемы EDO применяются как в основной памяти, так и в видеопамяти современных графических адаптеров.

Рис. 2.13. Страничный режим считывания BEDO DRAM

Рис. 2.14. Временные диаграммы пакетных циклов SDRAM: А и В – данные для записи по адресу R0/C0 и R0/C0+1, С и D – данные, считанные по адресу R0/C1 и R0/C1 +1

Внутренний счетчик адреса работает по модулю, равному запрограммированной длине пакетного цикла (например, при burst length = 4 он не позволяет перейти границу обычного четырехэлементного пакетного цикла). Кроме того, порядок счета адресов внутри пакетного цикла соответствует специфическому порядку (interleaved). Микросхемы синхронной памяти обычно имеют сигнал, выбирающий режим счета: чередование (для процессоров Intel) или последовательный счет (для Power PC).

По причине существенного отличия интерфейса микросхемы SDRAM не могут быть установлены в модули SIMM, они применяются в DIMM или устанавливаются прямо на системную (или графическую) плату.

SDRAM вошла в обиход в конце 1996 года. Три стандарта сменилось с тех пор – РС-66, РС-100 и РС-133 (цифра означает тактовую частоту памяти в мегагерцах).

DDR SDRAM (double data rate SDRAM) отличается от обычной SDRAM тем, что на той же частоте имеет вдвое большую пропускную способность. Правда, речь идет только о передаче потока данных, тогда как запросы на их получение поступают с той же скоростью, что и у SDRAM. Спецификации DDR-памяти получили название не по частоте, как в случае SDRAM, а по пропускной способности, измеряемой мегабайтами в секунду, – РС-1600 и РС-2100. Существует еще более быстрая РС-2700, работающая на частоте 333 МГц и способная работать на системных платах с наборами микросхем VIA (для Athlon и Pentium 4) и SIS (для Pentium 4). DDR SDRAM – оптимальное решение для любой современной системы, вне зависимости от того, построена она на процессоре Intel или AMD.

Для снижения времени выполнения групповых операций чтения-записи используется конвейерный режим обмена пакетами данных. Память, поддерживающая такой режим, получила название конвейеризированной пакетной (Pipelined Burst SRAM). Конвейеризация заключается в добавлении выходного буфера, в который помещаются прочитанные из ячеек памяти данные. Последовательные обращения по чтению из памяти осуществляются быстрее, без задержек на обращение к матрице памяти для получения следующего элемента данных. В случае Pipelined Burst SRAM формулы для операций чтения и записи имеют вид 3-1-1-1.

Следующим поколением устройств памяти, по мнению экспертов, станет динамическая память компании Rambus (RDRAM). Технология Rambus основана на высокоскоростном интерфейсе, который обеспечивает возможность передачи данных со скоростью до 600 Мбайт/с через Rambus Channel – шину данных, разрядностью 1 байт. Эффективная пропускная способность достигает величины 480 Мбайт/с, что в 10 раз превышает аналогичный показатель для устройств EDO DRAM. Время доступа к ряду ячеек памяти составляет менее 2 нс. в расчете на байт, а время задержки (время доступа к первому байту массива данных) – 23 нс.

В случае обмена большими массивами данных память Rambus является оптимальным вариантом в смысле отношения производительность/стоимость. Данный факт объясняет широкое применение RDRAM в игровых приставках, графических рабочих станциях, медийных процессорах и графических платах.

В настоящее время используются запоминающие устройства трёх типов: ROM (read only memory), DRAM(Dynamic Random Access Memory), S-RAM (Static RAM).

DRAM (Dynamic Random Access Memory Динамическая память с произвольным доступом) — оперативная или энергозависимая память, является рабочей областью процессора. Именно здесь во время работы хранятся активные программы и данные. Оперативная память — это временное хранилище данных и поэтому перед отключением компьютера или нажатием кнопки сброса, внесённые во время работы изменения, должны быть сохранены на устройстве постоянной памяти, как правило, это жёсткий диск. Поскольку обращение к данным, хранящимся в оперативной памяти, не зависят от порядка их расположения, то устройства оперативной памяти иногда ещё называют запоминающим устройством с произвольным доступом.

Содержание

DRAM-память (мировой рынок)

«Многие поставщики включились в гонку за рыночной долей, инвестируя значительные средства в дополнительное производственное оборудование, - комментирует Нэм Хьюнг Ким (Nam Hyung Kim), директор и главный аналитик iSuppli в области систем хранения данных и чипов памяти. – Одни компании надеялись, что другие выйдут из гонки, однако этого не произошло». В результате объемы производства были наращены значительно, а спрос упал. Память DRAM используется в ОЗУ.

Структура

DIMM .jpg

Физически DRAM состоит из ячеек, созданных в полупроводниковом материале, в каждой из которых можно хранить определённый объём данных, строку от 1 до 4 бит. Совокупность ячеек такой памяти образуют условный «прямоугольник», состоящий из определённого количества строк и столбцов. Один такой «прямоугольник» называется страницей, а совокупность страниц называется банком. Весь набор ячеек условно делится на несколько областей. Как запоминающее устройство, DRAM представляет собой модуль памяти различных конструктивов, состоящий из электрической платы, на которой расположены микросхемы памяти и разъёма, необходимого для подключения модуля к материнской плате.

Основной особенностью DRAM является динамическое хранение данных. Это даёт возможность многократно записывать информацию в оперативную память, но при этом возникает необходимость постоянно обновлять данные. Фактически перезапись происходит каждые 15 мкс. Существует также статическая оперативная (или кеш) память (S-RAM), не требующая постоянного обновления данных. И один и другой вид функционирует только при включённом компьютере. Оперативная память физически представляет собой набор микросхем, которые подключаются к системной плате. Поскольку характеристики этих микросхем весьма различны, то для нормальной работы они должны быть совместимы с системой.

Принцип действия

На практике существуют разные способы реализации динамической памяти. Упрощенная структурная схема одного из способов реализации приведена на рисунке 1.

Рисунок 1. Упрощенная структурная схема динамической оперативной памяти

Как видно из рисунка, основным блоком памяти является матрица памяти, состоящая из множества ячеек, каждая из которых хранит 1 бит информации.

Каждая ячейка состоит из одного конденсатора (С) и трех транзисторов. Транзистор VT1 разрешает или запрещает запись новых данных или регенерацию ячейки. Транзистор VT3 выполняет роль ключа, удерживающего конденсатор от разряда и разрешающего или запрещающего чтение данных из ячейки памяти. Транзистор VT2 используется для считывания данных с конденсатора. Если на конденсаторе есть заряд, то транзистор VT2 открыт, и ток пойдет по линии AB, соответственно, на выходе Q1 тока не будет, что означает – ячейка хранит бит информации с нулевым значением. Если заряда на конденсаторе нет, то конденсатор VT2 закрыт, а ток пойдет по линии AE, соответственно, на выходе Q1 ток будет, что означает – ячейка хранит бит информации со значением “единица”.

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

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

Также в состав памяти входит контроллер шины памяти, который получает команды, адрес и данные от внешних устройств и ретранслирует их во внутренние блоки памяти.

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

Адрес преобразуется в две составляющие – адрес строки и адрес столбца, и передается в соответствующие дешифраторы.

Дешифратор адреса строки определяет, с какой строки надо провести чтение или запись, и выдает на эту строку напряжение.

Дешифратор адреса столбца при чтении данных определяет, какие из считанных бит данных были запрошены и должны быть выданы в шину памяти. При записи данных дешифратор определяет, в какие столбцы надо подать команды записи.

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

Блоки регенерации определяют:

  • когда происходит чтение данных и надо провести регенерацию ячейки, из которой данные были считаны;
  • когда происходит запись данных, а, следовательно, регенерацию ячейки производить не надо.

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

Рассмотрим принцип работы динамической памяти на примере структурной схемы, приведенной на рисунке 1. Рассматривать будем работу с первой ячейкой (M11). Работа остальных ячеек памяти полностью идентична.

Работа динамической памяти в состоянии покоя

И так, первое что мы рассмотрим – этот состояние покоя, когда к памяти отсутствуют обращения, и она не в стадии регенерации данных.

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

Если память бездействует (от контроллера шины памяти не приходит никаких команд), то от дешифратора адреса строки не выдается сигнал ни на одну линию строк (S1-Sn) матрицы памяти. Соответственно, транзисторы VT1 и VT3 ячейки памяти M11 закрыты, также как и аналогичные транзисторы всех остальных ячеек памяти.

Следовательно, ток от подаваемого питания проходит по линии AE для первого столбца и аналогично для всех остальных столбцов матрицы памяти. Далее попадает на выходы Q1-Qm, на которых устанавливается «высокий» уровень напряжения, соответствующий значению логической «1». Но так как никаких команд от блока управления нет, то «Буфер данных» игнорирует получаемые сигналы.

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

Ток по линии AE также попадает на «Блок регенерации 1», а именно, на нижний вход элемента L3 (логическое «И»), то есть на нижний вход элемента L3 подается логическая единица.

Рассмотрим, как в этом случае будет работать блок регенерации.

Так как от контроллера памяти нет никаких сигналов, то на входе элемента L1 (логическое «НЕ») будет логический ноль, а, соответственно, на выходе – логическая «1». Таким образом, на верхнем входе элемента L3 (логическое «И») будет логическая единица.

Имея на входах элемента L3 (логическое «И») две логические единицы, на выходе получим так же логическую единицу.

На выходе элемента L2 (логическое «И») будет логический ноль, так как на обоих его входах напряжение отсутствует, так как от контроллера памяти нет никаких команд и данных.

В результате, на входах элемента L4 (логическое «ИЛИ-НЕ») будет логический ноль и логическая единица, а, соответственно, на его выходе будет логический ноль, то есть напряжение будет отсутствовать. Так как напряжение отсутствует, то ни один конденсатор первого столбца матрицы памяти подзаряжен не будет. Хотя, даже если бы напряжение и присутствовало, все равно подзарядка была бы невозможна, так как транзисторы подзарядки (доля ячейки М11 – это VT1) были бы закрыты, ведь ни на одну строку матрицы памяти (S1-Sn) напряжение не подается.

Точно такая же ситуация будет со всеми столбцами матрицы памяти.

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

Работа динамической памяти при чтении данных и регенерации

Будем рассматривать принцип чтения данных из динамической памяти на примере считывания данных из ячейки памяти М11:

  1. Процессор запрашивает порцию данных (размер зависит от разрядности процессора, для 32-разрядного процессора минимальной единицей обмена, обычно, являются 32 бита) и выдает их адрес.
  2. Контроллер шины памяти преобразует адрес в номер строки и номер столбца и выдает номер строки в дешифратор адреса строки. Дешифратор адреса строки выдает сигнал в соответствующую строку матриц памяти. Мы договорились, что в примере данные будем читать из первой ячейки памяти. Поэтому дешифратор адреса строки подаст напряжение на первую строку (S1).
  3. Напряжение, поданное на строку S1, откроет транзисторы VT1 и VT3 первой ячейки памяти и соответствующие транзисторы всех остальных ячеек первой строки.
  4. Дальнейшая работа памяти зависит от наличия или отсутствия заряда на конденсаторе. Рассмотрим отдельно два случая, когда на конденсаторе ячейки М11 есть заряд, и когда нет.
    1. В начале рассмотрим случай, когда заряд в конденсаторе есть (ячейка памяти содержит бит со значением ноль):
      Так как на конденсаторе С ячейки памяти М11 есть заряд, то транзистор VT2 будет открыт, а, соответственно, ток, создаваемый входным напряжением Uп, пойдет по линии AB. В результате, на выходе Q1 первого столбца тока не будет. А это означает, что с ячейки памяти М11 считан ноль. Соответствующая информация о считанном бите с первого столбца будет записана в «Буфер данных».
      Для поддержания транзистора VT2 в открытом состоянии и протекания тока по линии AB расходуется заряд конденсатора С. В результате, конденсатор очень быстро разрядится, если не провести его регенерацию.
      Так как на выходе Q1 тока нет, то он не будет поступать и в «Блок регенерации 1», а, соответственно, на нижнем входе элемента L3 (логическое «И») будет логический ноль.
      Так как мы рассматриваем случай чтения данных, то сигнал записи V1 и данные для записи D1 в «Блок регенерации 1» подаваться не будут. В остальные блоки регенерации соответствующие сигналы D1-Dm и V1-Vm также подаваться не будут.
      В результате, на входе элемента L1 (логическое «НЕ») будет логический «0», а на выходе – логическая «1», поэтому на входах элемента L3 (логическое «И») будет логический «0» и логическая «1». Это значит, что на выходе этого элемента будет логический «0».
      На выходе логического элемента L2 (логическое «И») будет логический ноль, так как на обоих его входах напряжение отсутствует, так как от контроллера шины памяти отсутствуют команды на запись и данные для записи.
      Имея на обоих входах элемента L4 (логическое «ИЛИ-НЕ») логический «0», на его выходе будем иметь логическую «1», то есть с блока регенерации пойдет ток подзарядки конденсатора С. Так как транзистор подзарядки VT1 ячейки памяти М11 открыт, то ток подзарядки беспрепятственно пройдет в конденсатор С. Остальные ячейки памяти первого столбца имеют закрытый конденсатор подзарядки, а, следовательно, подзарядка их конденсаторов происходить не будет.
    2. Теперь рассмотрим случай, когда в конденсаторе нет заряда (ячейка памяти хранит бит со значением «1»):
      Ток, создаваемый входным напряжением Uп, пойдет по линии AЕ, так как транзистор VT2 будет закрыт. Следовательно, на входе Q1 «Буфера данных» будет ток, что означает – с ячейки памяти считана единица. Информация о считанном бите с первого столбца будет записана в «Буфер данных».
      Так как в конденсаторе заряда не было, то и подзаряжать его надобности нет. Следовательно, с блока регенерации ток пойти не должен.
      Так как на выходе Q1 ток есть, то он поступает и в «Блок регенерации». Следовательно, на нижний вход элемента L3 (логическое «И») подается логическая единица.
      Так как мы рассматриваем случай чтения данных, то сигнала записи V1 и данных для записи D1 в «Блок регенерации 1» подаваться не будет. Так же в остальные блоки регенерации, соответствующие сигналы D1-Dm и V1-Vm так же подаваться не будут.
      Следовательно, на входе элемента L1 (логическое «НЕ») будет логический ноль, а на выходе – логическая «1». Таким образом, на входах элемента L3 (логическое «И») будут две логические единицы. В результате, на выходе получим так же логическую единицу.
      На выходе логического элемента L2 (логическое «И») будет логический ноль, так как на обоих его входах напряжение отсутствует, так как от контроллера памяти нет команд на запись и данных для записи.
      В результате, на входах элемента L4 (логическое «ИЛИ-НЕ») будет логический ноль и логическая единица, а, соответственно, на его выходе будет логический ноль, то есть напряжение будет отсутствовать. Так как напряжение отсутствует, то ни один из конденсаторов первого столбца матрицы памяти подзаряжаться не будет.

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

    Работа динамической памяти при записи данных

    Будем рассматривать принцип записи данных в динамическую память на примере записи данных в ячейку памяти М11:

    1. Контроллер шины памяти получает команду на запись данных, данные и адрес, куда необходимо записать эти данные.
    2. Контроллер шины памяти преобразует адрес на две составляющие – номер строки и номера столбцов, и передает полученные составляющие в «Дешифратор адреса строки» и в «Дешифратор адреса столбцов». А данные передает в «Блок работы с данными».
    3. Дешифратор адреса строки выдает сигнал в соответствующую строку матрицы памяти. Мы договорились, что в примере данные будем записывать в первую ячейку памяти. Поэтому дешифратор адреса строки подаст напряжение на первую строку (S1).
    4. Одновременно с «Дешифратора адреса столбцов» выдаются сигналы V в столбцы, соответствующие полученному адресу. В эти же столбцы подаются сигналы D с «Блока работы с данными», уровень которых определяется значением битов записываемого слова.
    5. Напряжение, поданное на строку S1, откроет конденсаторы VT1 и VT3 первой ячейки памяти и соответствующие конденсаторы всех остальных ячеек первой строки.
    6. Если в ячейке М11 хранится бит со значением «0» (в конденсаторе есть заряд), то ток, создаваемый входным напряжением Uп, пойдет по линии AB, иначе – по линии AE. Но нам это не важно, так как в ячейку М11 производится запись данных, а не их чтение, поэтому буфер данных будет игнорировать считанное с ячейки значение. А с выхода элемента L3 «Блока регенерации 1» будет всегда идти логический ноль, так как с дешифратора столбцов приходит сигнал (V1) на запись данных в первый столбец.

    В результате, на входе элемента L1 будет логическая единица, а на выходе – логический ноль. Соответственно, на верхнем входе элемента L3 мы всегда имеем логический ноль, что означает – независимо от значений на нижнем входе, на выходе элемента L3 будет логический ноль.

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

    Если бит имеет значение «1», то на верхнем входе элемента L2 будет «1». Имея две единицы на входе, мы получим на выходе так же логическую единицу. Соответственно, на входах элемента L4 будет получена логическая «1» и логический «0». В результате, на выходе будет логический «0», то есть ток будет отсутствовать, а, соответственно, зарядка конденсатора C идти не будет. Если до этого конденсатор С содержал заряд, то через несколько микросекунд он разрядится, пропуская ток по линии АВ. Таким образом в конденсатор С будет записан бит данных «1», соответствующий разряженному состоянию конденсатора.

    Если бит имеет значение «0», то на верхнем входе элемента L2 будет «0». Имея на верхнем входе логический ноль, а на нижнем – логическую единицу, на выходе элемента L2 получим логический ноль. В результате, на верхнем и нижнем входах элемента L4 имеем логические нули, что означает – на выходе элемента L4 будет логическая единица, то есть пойдет ток зарядки конденсатора. Таким образом в конденсатор С будет записан бит данных «0», соответствующий заряженному состоянию конденсатора.

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

    Запись данных во все требуемые ячейки строки матрицы памяти и чтение с регенерацией из оставшихся ячеек строки производятся параллельно.

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

    “Всем знаком закон Мура, описывающий уменьшение размеров транзисторов в логических схемах. Для того, чтобы он продолжал работать, технологам приходится идти на все новые и новые ухищрения, однако их работу несколько усложняет то, что все чипы очень разные по структуре. А что было бы, если бы можно было оптимизировать технологию под конкретный дизайн микросхемы? Ответ на этот вопрос может дать динамическая память.”


    Классический пример работы закона Мура — ячейка статической памяти. Ее схема давно известна и широко используется, занимая десятки процентов площади современных микропроцессоров и систем на кристалле. Именно площадь ячейки статической памяти стали использовать как мерило плотности упаковки новых технологий, когда стало понятно, что длина канала транзистора больше не может быть эталоном проектных норм. Учитывая важность статической памяти, технологи стараются подбирать параметры процессов так, чтобы не только в принципе увеличивать плотность упаковки элементов на кристалле, но и заботиться конкретно о статической памяти. Однако, на чипе всегда есть множество других схем, и если очень сильно упираться в оптимизацию именно памяти, это может выйти боком. Но что было бы, если бы технологию можно было полностью подчинить нуждам схемотехники? Ответ на этот вопрос может дать динамическая память.


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


    Самая первая динамическая память появилась еще во Вторую мировую войну, в вычислительной машине Aquarius, одной из многих, при помощи которых англичане вскрывали немецкие шифры. Впрочем, до широкого внедрения динамической памяти пришлось ждать еще двадцать лет. Эти двадцать лет основным типом памяти в вычислительных устройствах была память на магнитных сердечниках — громоздкая, прожорливая и очень дорогая из-за большого количества кропотливого ручного труда при сборке. Все изменилось, когда в 1966 году Роберт Деннард, работая со статической памятью на МОП-транзисторах, придумал альтернативный подход, позволивший сэкономить на количестве элементов. В честь Деннарда, кстати, названо деннардовское масштабирование, которому должны следовать параметры КМОП-микросхем для того, чтобы работал закон Мура, так что его вклад в увеличение плотности упаковки микросхем поистине огромен.



    На этой фотографии Роберт Деннард изображен вместе с ничем иным как схемой и разрезом ячейки DRAM.

    Идея Деннарда была гениальна в своей простоте: сердце МОП-транзистора — это конденсатор, образованный затвором, подзатворным диэлектриком и подзатворной областью транзистора. Так почему бы не использовать этот конденсатор… как конденсатор? Если конденсатор заряжен — это логическая единица, если разряжен — логический ноль.

    Как видите, все действительно очень просто, и эта простота стала основной коммерческого успеха одной всем известной компании с синим логотипом, первой коммерциализировавшей DRAM в начале семидесятых, а потом запустившей в качестве сайд-проекта микропроцессор 8008. Впрочем, с внедрением гениально идеи пришлось немного подождать, и ячейка самой первой динамической памяти, Intel 1103, содержала не один, а целых три транзистора, а на чипе было размещено 1024 таких ячейки. Почему целых три? Три все еще лучше, чем шесть, а изящная схема с одним транзистором требует наличия на борту относительно сложного усилителя чтения. В распоряжении Intel в 1970 году был процесс с только pMOS-транзисторами (длина канала 8 микрон), поэтому им пришлось сделать раздельные линии для записи и чтения данных.


    С появлением КМОП-технологий стало возможно поместить на чипе усилители чтения, и тогда ячейка стала однотранзисторной.



    Разрез простейшей ячейки DRAM. Слева транзистор доступа, справа МОП-конденсатор. Два варианта различаются режимом работы МОП-конденсатора, емкость которого на самом деле нелинейна и зависит от приложенного напряжения.

    В “обычной” ячейке DRAM чтение происходит следующим образом: битовая линия заряжается до половины питания, после чего замыкается ключ доступа. Если напряжение на запоминающем конденсаторе выше половины питания, напряжение на битовой линии медленно пойдет вверх в результате перетекания в нее заряда из конденсатора. Если на конденсаторе ничего нет, то наоборот, заряд из битовой линии потечет в ячейку памяти, и напряжение на битовой линии начнет падать. К битовой линии подключен специальный усилитель, способный определить, стало напряжение на битовой линии уменьшаться или увеличиваться. Такие усилители способны измерить маленькую разницу в напряжениях, так что не нужно дожидаться полной зарядки или разрядки конденсатора ячейки памяти.

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



    График, показывающий изменение ключевых параметров DRAM — площади чипа, площади ячейки и емкости ячейки.

    Как видно из рисунка выше, требования к емкости конденсатора в ячейке статической памяти таковы, что она очень мало уменьшается от поколения к поколению. В обычном планарном исполнении конденсатор уже занимал большую часть площади ячейки, и этого было достаточно для памяти первых поколений — все чипы памяти объемом от 4 килобит до 512 килобит были произведены по такой технологии, а также довольно много чипов объемом 1 Мегабит. Объемы памяти росли вместе с уменьшением проектных норм, от 8 микрон в самой первой DRAM до 1.2-1.3 микрона в последних планарных DRAM середины восьмидесятых. И все же, довольно рано стало ясно, что бесконечно наращивать плотность упаковки просто при помощи уменьшения проектных норм не удастся, и нужно искать новые технологические решения, которые смогли бы поддержать емкость на том же уровне при сокращающихся размерах ячейки памяти. Так как же увеличить плотность упаковки?

    Удивительно, но разработчики КМОП-технологий задались тем же вопросом намного позже и дотянули обычные планарные транзисторы аж до 28 нанометров. После этого они придумали принципиально вариант транзистора при переходе от проектных норм 28 нм к 22 нм, создав FinFET. Идея FinFET состоит в том, что канал транзистора размещается на подложке не горизонтально, а вертикально, позволяя разместить на одной и той же площади в несколько раз больше транзисторов такого же по сути размера.



    Обычный планарный транзистор, планарный транзистор на FDSOI и FinFET. Желтым выделен подзатворный диэлектрик.

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

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

    Конденсатор над транзистором



    Разрез ячейки памяти с конденсатором, расположенным над транзистором.

    Для того, чтобы расположить конденсатор над транзистором, потребовалось добавить в технологию два проводящих слоя и тонкий диэлектрик между ними. По технологическим причинам оказалось удобнее сделать проводящие слои не металлическими, а поликремниевыми — точно так же, как из поликремния делаются затворы транзисторов. Применение поликремниевых конденсаторов позволило уменьшить площадь ячейки памяти в два раза. Это, в сочетании с дальнейшим прогрессом в проектных нормах, позволило не только успешно освоить чипы с 1 Мбит на кристалле, но и довести емкость чипов памяти до 4 Мбит.

    Примерно в это же время наметилось и важное изменение не только во внутренней структуре чипов DRAM, но и в том, как они использовались. Во-первых, стал стремительно расти рынок персональных компьютеров — появились дешевые и мощные процессоры, такие как Motorola 68000 и Intel 80286. Во-вторых, если ранние чипы памяти выпускались просто в корпусах для поверхностного монтажа и впаивались в платы мэйнфреймов, то производители и пользователи персональных компьютеров хотели большей гибкости. Так появились модули и разъемы SIMM, одним из пионеров коммерциализации которых на растущем рынке ПК стала основанная в 1987 году компания Kingston Technology.

    На 4 Мбит на кристалле аппетиты пользователей, разумеется, не закончились, но ужимать площадь конденсаторов стало уже некуда. Выходом стало не горизонтальное, а вертикальное расположение конденсатора, показанное на рисунке ниже. Принципиально это почти такая же структура из двух слоев поликремния и диэлектриком между ними, но только не плоская, а в виде воронки.



    Встроенная DRAM Nintendo Wii, проектные нормы транзисторов — 45 нм.

    Изменений хватило для того, чтобы разместить на кристалле до 64 Мбит памяти, но и этого тоже в конечном счете оказалось мало. “Воронки” конденсаторов в конечном счете превратились в высокие тонкие цилиндры, занимающие минимум места не только в длину, но и в ширину.




    Вот так выглядят эти цилиндрические конденсаторы.

    Когда перестало хватать и этого, технологи научились делать поверхность обкладок не гладкой, а зернистой, таким образом, в несколько раз увеличивая ее площадь. Эта технология называется HSG — hemispherical grain (полусферические зерна). Дальше в ход, как и у транзисторов, пошли high-k диэлектрики, позволившие увеличить емкость за счет большей диэлектрической проницаемости и сделать еще несколько шагов, к емкостям уже в несколько Гигабит на кристалле.



    Разрез цилиндрического конденсатора с полусферическими зернами.

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

    Конденсатор под транзистором

    Параллельно развивалось и другое направление, предполагающее размещение конденсатора под транзистором. Точнее, не “под”, а все еще рядом, но только не горизонтально, а вертикально. В кремнии рядом с транзистором формируется углубление, по-английски называемое “trench”, а по-русски “канавка”. Поверхность этой канавки покрывается тонким слоем оксида, а потом весь объем заполняется проводящим поликремнием, подключенным к земле. Вторая обкладка конденсатора — это сток транзистора доступа.


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

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



    Встроенная DRAM процессора IBM Power 7+. Обратите внимание, насколько глубоки канавки конденсаторов и насколько велик их технологический разброс.

    Решением проблем и альфа-частиц, и утечек из одного конденсатора в другой стало перемещение заземленной линии из внутренней части канавки во внешнюю. Таким образом, заземленной линией стала подложка кристалла, а утечки из земли в землю не страшны, равно как и появление в линии земли “лишнего” заряда от альфа-частиц. Платой за такое элегантное решение стала необходимость отделить от подложки транзистор доступа, но к тому времени уже появились технологии с тремя карманами и эпитаксиальными слоями, так что больших сложностой не было. Ячейки подобного вида до сих пор в ходу, начиная от чипов емкостью 64 Мбит и до самых новых кристаллов, содержащих уже 16 Гбит!

    Мы в Kingston тоже не остаемся в стороне от прогресса и уже начали внедрение самых современных чипов емкостью 16 Гбит. Kingston начала поставки модулей RDIMM емкостью 64 ГБ в декабре прошлого года, а в июле 2020 года также обновила всю линейку продуктов Server Premier, добавив в неё решения на базе 16-гигабитной памяти общей емкостью 16 или 32 Гигабайта.



    Что дальше?

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


    В “первой фазе” развития DRAM ячейка была полностью плоской, и память принципиально не отличалась от обычной КМОП-технологии. Во второй фазе ученые и технологи приложили множество усилий, исследовав и внедрив, кажется, все возможные варианты трехмерного конденсатора — но чип памяти при этом, как и в первой фазе, содержит один слой транзисторов и один слой конденсаторов. Таких технологий хватит еще на какое-то время, но уже не за горами третья фаза, в которой плотность упаковки должна будет еще вырасти. Станет ли транзистор вертикальным? Появятся ли на одном чипе несколько слоев ячеек памяти? Этого мы пока не знаем, но точно понятно, что менее интересно не станет!

    Для получения дополнительной информации о продукции Kingston обращайтесь на официальный сайт компании.

    Читайте также: