Существует два основных типа RAM: статическая (SRAM) и динамическая (DRAM). Первый тип памяти используется внутри процессоров, поэтому рассмотрим устройство более известной динамической памяти. DRAM располагается на платах, вставляемых в материнскую плату. Отдельная плата называется Dual Inline Memory Module (DIMM) либо Unbuffered DIMM (UDIMM).
DRAM в основном состоит из двух компонентов: из переключателей, представленных МОП-транзисторами (MOSFET), и накопителей, представляющих собой канавочный конденсатор. Эти компоненты образуют ячейки памяти, каждая из которых содержит 1 бит данных. Канавочные конденсаторы используются для хранения заряда. Если конденсатор заполнен зарядом, ячейке присваивается «1», если пустой – «0». Из-за утекания заряда требуется обновлять каждую ячейку памяти по 15-30 раз в секунду, во время обновления считывание и запись в ячейку произвести невозможно. К каждой линии подключается несколько ячеек.
Полная строка ячеек памяти называется страницей, а её длина зависит от типа и конфигурации DRAM. Чем длиннее страница, тем больше в ней бит, но и тем большая электрическая мощность нужна для её работы. При считывании и записи на чип DRAM первым этапом процесса является активация всей страницы. Строка битов (набор нулей и единиц) хранится в буфере строки, который является набором усилителей считывания и защёлок. Далее активируется определённый столбец для извлечения данных из этого буфера. Малые страницы нужно активировать чаще, чтобы успеть за запросами данных, большие страницы активируются реже. Набор страниц образует один банк памяти DRAM.
Размер и расположение строк и столбцов ячеек сильно влияют на количество хранимых данных, скорость работы памяти и энергопотребление. Например, схема состоит из 4096 строк и 4096 столбцов, тогда объем одного банка равен 16777216 битам или 2 мегабайтам. Однако банки могут быть не только квадратными, так как длинные страницы лучше коротких. Например, схема из 16384 строк и 1024 столбцов даст такой же объём памяти, но каждая страница будет содержать в 4 раза больше памяти, чем в квадратной схеме. Все страницы в банке соединены с системой адресации строк и контролируются сигналами управления для каждой строки или столбца. Чем больше строк и столбцов в банке, тем больше битов должно использоваться в адресе. Для первого банка потребуется по 12 бит на адреса строк и столбцов, а для второго банка – 14 бит на адреса строк и 10 бит на адреса столбцов. Обе системы будут иметь одинаковый суммарный размер – 24 бита.
Если бы чип DRAM мог предоставлять доступ к одной странице за раз, это было бы неудобно, поэтому в них упаковано несколько банков ячеек памяти (чаще всего 8 банков). Все эти банки имеют общие шины команд, адресов и данных. Пока один банк занят работой с одной командой, другие банки могут продолжать выполнение своих операций. Весь чип, содержащий все банки и шины, упакован в защитную оболочку и припаян к плате. Она содержит электропроводники, подающие питание для работы DRAM и сигналов команд, адресов и данных.
Компании-изготовители памяти берут несколько чипов DRAM и устанавливают их на одну плату DIMM. Сами DIMM имеют разный размер и количество чипов. Существует стандартная DIMM для настольных ПК и Small Outline DIMM (SO-DIMM), предназначенная для ПК малого форм-фактора, например, ноутбуков и компактных настольных компьютеров. Из-за малого пространства уменьшается количество используемых чипов, изменяется скорость работы памяти и так далее. Иногда на плату DIMM ставится дополнительный модуль DRAM Error Checking and Connecting (ECC), который используется для проверки и устранения ошибок.
Есть 3 основных причины для использования нескольких чипов памяти на DIMM:
Множество модулей памяти, заполняющих шину данных контроллера памяти, называется рангом. Хотя к контроллеру можно подключить больше одного ранга, за раз он может получать данные только от одного ранга (потому что ранги используют одну шину данных). Это не вызывает проблем, так как пока один ранг занимается ответом на команду, другому рангу можно передать новый набор команд. Платы DIMM могут иметь несколько рангов, что особенно полезно, когда необходимо большое количество памяти, но на материнской плате мало разъёмов под RAM.
Схемы с двумя и четырьмя рангами потенциально могут обеспечить большую, чем одноранговые, но увеличение количества рангов быстро повышает нагрузку на электрическую систему. Большинство настольных ПК способно справиться максимум с двумя рангами на один контроллер. Если системе нужно больше рангов, то лучше использовать DIMM с буферизацией: такие платы имеют дополнительный чип, который облегчает нагрузку на систему благодаря хранению команд и данных в течение нескольких циклов, прежде чем передать их дальше.