VIII. ОРГАНИЗАЦИЯ ОПЕРАТИВНЫХ ЗАПОМИНАЮЩИХ
УСТРОЙСТВ СОВРЕМЕННЫХ КОМПЬЮТЕРОВ
Общие принципы функционирования
Синхронные динамические запоминающие устройства – SDRAM, появилась в середине 1990 годов. Позднее, аналогичные структуры получили название SDR SDRAM (Single Data Rate SDRAM – Синхронная динамическая память с одинарной скоростью обращения к данным). В 2000 году на смену запоминающим устройствам SDR SDRAM пришли запоминающие устройства DDR SDRAM (Dual Data Rate SDRAM – SDRAM с удвоенной скоростью обращения к данным), отличающиеся большей пропускной способностью при меньшем энергопотреблении. Затем появились запоминающие устройства типа DDR2 SDRAM, которые в настоящее время являются наиболее распространенными, хотя в 2007 году разработаны и, в настоящее время, уже получили массовое распространение запоминающие устройства нового поколения, стандарта DDR3 SDRAM.
Следует отметить, что в конце 90-х годов были разработаны и совершенно новые типы динамических микросхем памяти, получившие название RDRAM (Rambus DRAM), однако они не получили сколько-нибудь широкого распространения ввиду своей специфичности и высокой стоимости.
В данном разделе рассмотрим более подробно организацию оперативных запоминающих устройств современных компьютеров, основанную на использовании микросхем синхронной динамической памяти.
Каждая микросхема памяти организована как совокупность матриц элементов памяти, каждая из которых организована в виде строк и столбцов этих элементов. Запоминающие ячейки адресуются, т.е. приводятся в состояние готовности для операции записи или считывания из них информации, при совпадении сигналов возбуждения соответствующих строк и столбцов, которые поступают от дешифраторов старших и младших разрядов кода адреса.
Упрощенная схема адресации запоминающих ячеек в микросхеме оперативной памяти объемом 64 кбит (принимая, что каждая запоминающая ячейка состоит из 1 запоминающего элемента, т.е. может хранить один бит информации), приведена на рис.VIII.1. Заданный 16 разрядный адрес поступает на микросхему в два приема: сначала 8 старших разрядов, которые по сигналу RAS (Row Address Strobe) записываются в регистр с дешифратором строк, а затем 8 младших разрядов, которые записываются по сигналу CAS (Column Address Strobe) в регистр с дешифратором столбцов. Сами операции считывания или записи осуществляются по переднему фронту тактового импульса системной шины (Clock) во время активного (низкого) уровня сигнала CAS. При этом чтение информации осуществляется при пассивном (высоком) уровне управляющего сигнала на входе записи микросхемы W (Write) или WE (Write Enable), а запись – при активном (низком) состоянии сигнала на этом входе.
Рис.VIII.1 Упрощенная схема адресации запоминающих ячеек в
микросхеме оперативной динамической памяти объемом 64 кбит.
Более подробная схема отдельной матрицы памяти, с цепями ввода-вывода данных приведена на рис. VIII.2.
Заметим, что в современных микросхемах памяти, для задания адреса строки/столбца обычно используется 14-разрядная адресная шина, что позволяет адресовать 16 384 строки или столбца, но не более. Это ограничение по разрядности адресной шины затрудняет организацию микросхемы памяти емкостью 512 М бит в виде одной матрицы памяти. Этим и объясняется целесообразность использования нескольких матриц памяти в одной микросхеме, тем более, когда ширина шины данных микросхемы составляет 4,8,16, а в некоторых случаях и 32 бита.
Упрощенная структура запоминающего элемента SDRAM-памяти, которая предназначена для запоминания одного бита информации, приведена на рис. VIII.3. Она представляет собой конденсатор, который выполняет функцию хранителя заряда. Наличие заряда на конденсаторе определяет единичное значение бита информации, а его отсутствие – нулевое значение бита. Для возможности хранения заряда без его существенного уменьшения в течение определенного времени, конденсатор подключается к линии данных (линии столбца матрицы) через специальный транзисторный ключ. Этот ключ подключает конденсатор к внешней линии только в моменты записи или считывания с него информации или же в моменты регенерации его состояния.
Рис. VIII.2 Структура матрицы памяти с цепями ввода-вывода данных.
Рис.VIII.3 Структура элементарной ячейки динамической памяти
При подаче на затвор транзистора отпирающего напряжения, поступающего по строке матрицы памяти (которые называют также адресными линиями), он подключается к линии столбцов. При этом заряд, хранящийся на конденсаторе данной ячейки, поступает в особый статический буфер, называемый усилителем уровня (Sense Amplifier), который установлен на выходе линии столбца, называемые также линиями данных.
Заметим, что при выборе строки открываются не один, а все транзисторные ключи, соединенные с этой линией строк, и данные окажутся на выходе усилителей по всем столбцам сразу. Это оказывается очень удобным при регенерации матрицы памяти. При операциях же считывания или записи информации, нужный элемент памяти выбирается подключением усилителя нужной линии данных в соответствии с кодом старших разрядов адреса, т.е. с кодом, подаваемым на дешифратор адреса столбца.
Кроме физической организации микросхемы памяти в виде нескольких параллельных матриц памяти, используется еще и логическое разделение микросхемы памяти на отдельные логические банки памяти (обычно на два или четыре логических банка, адресуемые сигналами по отдельным выводам BAi). Под банком памяти понимается набор совокупностей запоминающих матриц или набор отдельных микросхем, разрядность которого равна ширине шины памяти.
(Отметим, что в информатике понятие банка определяет, вообще, совокупность совместно используемых однотипных элементов, средств или устройств).
Такое разделение памяти по банкам позволяет увеличить производительность за счет чередования банков памяти при обновлении состояния строк памяти. Дело в том, что, как это было упомянуто выше, каждые несколько миллисекунд элементы строк памяти динамического типа должны подвергаться регенерации, т.е. восстановлению своего состояния. Восстановление своего состояния элементы строк динамической памяти требуют и после каждой операции считывания. Логическое разбиение микросхемы памяти на несколько банков позволяет обращаться к строке одного логического банка, в то время пока строка другого банка обновляется. И, в общем случае, может сниматься информация с одного банка данных, в то время как во втором осуществляется завершение переходных процессов установления адреса.
На рис.VIII.4 приведена упрощенная структура микросхемы памяти, в которой имеется четыре банка, каждый из которых состоит из восьми запоминающих матриц, содержащих по 8192 строки и 1024 столбца. Следовательно, емкость каждого банка составляет 8192×1024×8=213×210×23= =226=64 Мбит, т.е. полная емкость микросхемы составит 8 Мбайт. Вход CS (Chip Select) предназначен для подачи сигнала активирования (включения) данной микросхемы. Когда этот сигнал активен, возможен доступ к микросхеме памяти. В противном случае данная микросхема памяти недоступна.
Для адресации запоминающих ячеек в таких микросхемах предусматривается дополнительные входы BA (Bank Address) - BA0 и BA1. Эти входы служат для ввода сигналов выбора необходимого банка памяти. Комбинации сигналов на этих входах: 00,01,10,11 позволяют задавать адреса четырех банков памяти.
Кроме того, поскольку в оперативной памяти современных компьютеров используются много микросхем, каждая микросхема имеет вход выбора (включения, активирования или инициирования) данной микросхемы – CS (Chip Select).
Сигнал на входе WE определяет режим записи (или считывания) микросхемы памяти. И, наконец, сигналы на входах CAS и RAS фиксируют в микросхеме адрес требуемой запоминающей ячейки памяти. Выводы D0…D7 служат для ввода байта информации при записи его в память, либо для вывода байта информации при его считывании из памяти.
Рис.VIII.4 Упрощенная структура микросхемы динамической памяти
с шириной шины 8 бит и емкостью 8 Мбайт.
Кроме емкости и количества банков каждая микросхема характеризуется шириной шины данных и глубиной микросхемы памяти
.
Ширина шины данных определяется числом выводов (линий),
предусмотренных для ввода (вывода) информации.
Эта величина соответствует разрядности данных при обмене информации с памятью при каждом обращении к ней. Ширина шины данных современных
микросхем памяти обычно составляет 4,8,16 или 32 линии или разряда.
Глубиной микросхемы памяти называется число возможных адресов
данной микросхемы, т.е. число возможных адресуемых совокупностей
запоминающих элементов (запоминающих ячеек), хранящих коды,
разрядность которых определяет ширину шины данных.
Эти параметры определяют логическую структуру микросхемы памяти. Например, память емкостью 1024 Мбит может быть организована как 128М×8, т.е. может быть микросхемой с глубиной 128М и шириной шины данных 8 бит. С другой стороны она может быть организована как 64М×16 или 32М×32, т.е. глубиной 64М или 32М и шириной шины данных, соответственно, 16 и 32 бит.
Для увеличения производительности подсистемы памяти используют и такой прием, как двухканальная или даже трехканальная организация памяти. В этом случае, каждый канал памяти использует свою отдельную шину (обычно 64-разрядную), через которую с помощью интегрированного контроллера памяти подключается к процессору.
Ранее упоминалось о том, что микросхемы памяти собираются на специальных платах в так называемые модули памяти, из которых уже формируются собственно оперативная память компьютера. Модули памяти и вся оперативная память компьютера, как и отдельные микросхемы, также характеризуется шириной шины данных и их глубиной, которая определяется как общая емкость, выраженная в битах, деленная на разрядность (ширину) шины данных. Заметим, что для всех современных оперативных запоминающих устройств персональных компьютеров ширина шины данных составляет 64 бита. В этом случае, оперативная память компьютера емкостью 512 Мбайт будет иметь глубину 64 М: (512×220×23) / 26 = 64×220 = 64М.
Основная оперативная память компьютера (ОЗУ) располагается, в большинстве случаев, на специальных модулях типа SIMM (Single In-line Memory Module –модуль с однорядным расположением выводов) или DIMM (Dual In-line Memory Module – модуль с двухрядным расположением выводов). Они представляют собой печатные платы с выводами, на которых размещены рассмотренные выше микросхемы памяти. Модуль SIMM является старым типом модуля памяти, они бывают 30- и 72-контактные, длиной 8 см и шириной около 2 см. Модуль типа DIMM представляет собой высокоскоростной 64-разрядный модуль памяти с двухрядным расположением микросхем. Он имеет 168 или 184 контакта и длину - около 13 см.
Внешний вид и размеры модулей SIMM и DIMM приведены на рис VIII.5 и рис. VIII.6.
Рис. VIII.5 Внешний вид модуля памяти SIMM c 72 контактами
Модули типа RIMM (Rambus In-line Memory Module), используются только для размещения специфических микросхем памяти фирмы Rambus и не получили широкого распространения. Внешне модуль RIMM похож на модуль DIMM, но с обеих сторон закрыт металлическим экраном, защищающим его от наводок и взаимного влияния модулей, работающих на больших частотах.
Рис. VIII.6. Внешний вид и размеры модулей памяти DIMM:
а) вид модуля DIMM-168;
б) ключи для модулей первого поколения;
в) ключи для модулей второго поколения;
г) вид модуля DIMM-184.
Микросхемы, размещенные на модулях SIMM, DIMM или RIMM, соединяются (группируются) в банки, для того чтобы модуль за одно обращение к нему процессора, выдавал в системную шину слова, соответствующей ширины (разрядности). Обычно она составляет 64, 128, 256 и 512 бит. В этом случае, банком памяти называют комплект микросхем, обеспечивающий для данной системы требуемую разрядность хранимых данных, выбираемых за одно обращение к памяти.
Платы модулей памяти снабжены выводами по краю платы и вставляются в слоты (разъемы, гнезда), вмонтированные в материнскую (системную) плату компьютера.
Одной из главных характеристик основной оперативной памяти является ее пропускная способность.
Пропускной способностью оперативной памяти называется
максимальное количество данных, которое можно записать в память
либо считать из нее в единицу времени.
Она зависит от ширины шины данных и максимально возможной частоты обращения к памяти. Ширина шины данных определяет количество бит информации, передаваемых за один такт, а частота обращения – количество тактов в единицу времени. Поэтому, чтобы определить пропускную способность памяти надо умножить частоту системной шины на ширину шины данных. Поскольку современные оперативные запоминающие устройства персональных компьютеров имеют ширину шины данных равную 64 бит (8 байт), то, например память, функционирующая на частоте системной шины равной 800 МГц, имеет пропускную способность 6,4 Гбайт/с (800 МГц × 8 байт). Упрощенная временная диаграмма работы синхронной оперативной памяти приведена на рис.VIII.7.
Выборка или открытие строки запоминающей матрицы осуществляется во время прихода импульса низкого уровня RAS. Эта операция обычно называется ACTivation (активирование). Совокупность управляющих сигналов, приводящих к выполнению определенных операций, обычно называют командой.
Отметим, что активированная (открытая) строка может закрываться не сразу, а после выполнения серии обращений к ее запоминающим ячейкам, путем последовательного активирования столбцов матрицы. Эти обращения будут выполняться быстрее, поскольку для них не требуется подачи команды активирования и выжидания открытия строки. Максимальное время удержания строки открытой ограничивается требуемым периодом ее регенерации.
Активирование столбца матрицы осуществляется во время появления низкого уровня на входе CAS. Во время существования низкого уровня сигнала СAS, в момент появления положительного фронта тактового импульса Clock, происходит, либо чтение из памяти, если на входе WE в это время был исходный, высокий уровень управляющего сигнала (операция READ) либо запись информации в память, если в это время на входе WE был низкий уровень.
После того как информация записана или считана с запоминающих ячеек активированной строки, необходимо выполнить операцию PREcharge (предварительный заряд), определяющую команду деактивирования строки. Эта команда закрывает активированную строку и позволяет активировать следующую строку.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.VIII.7 Упрощенная временная диаграмма работы синхронной
оперативной памяти.
Для более полного представления состояния сигналов при различных командах приведена таблица VIII.1.
Таблица VIII.1.
Команды, используемые при записи или чтения ячеек памяти.
Команда | Уровень сигнала | |||
CS | RAS | CAS | WE | |
Нет операций | Low | High | High | High |
Активирование | Low | Low | High | High |
Чтение | Low | High | Low | High |
Запись | Low | High | Low | Low |
Precharge | Low | Low | High | Low |
Тайминги
Кроме максимальной пропускной способности, память характеризуется так называемой латентностью. Под латентностью понимается задержка между поступлением команды и моментом ее реализации. Латентность памяти определяется ее таймингами, т.е. задержками, измеряемыми в количестве тактов, между отдельными командами. Принято различать несколько разновидностей таймингов памяти, соответствующих задержкам между различными командами. Рассмотрим их подробнее.
Три тайминга отображены на рис. VIII.7, один из которых, tRCD, определяет временную задержку между импульсами RAS и CAS (RAS-to-CAS Delay), т.е. между активированием строки и командой считывания (или записи) данных.
Тайминг tCL, (CAS Latancy), характеризует промежуток времени от появления команды чтения (записи) данных до выдачи первого элемента (слова) данных на шину (или записи данных в запоминающую ячейку). Оговорка о первом элементе данных делается потому, что в современных компьютерах обмен информацией с оперативной памятью, в большинстве случаев, осуществляется пакетами данных. При пакетном обмене все последующие элементы данных появляются на шине данных в каждом очередном такте (на рисунке показан пакет из 4 элементов данных). Для этого в самой микросхеме SDRAM имеется счетчик для наращивания адресов столбцов ячеек памяти, чтобы обеспечить к ним быстрый доступ. Количество адресуемых таким образом столбцов называется длиной пакета (Burst Length – BL). Длина пакета может составлять 2, 4 или 8.
Тайминг tRAS (Active-to-Precharge Delay), определяет временную задержку между импульсами RAS и PRE, т.е. минимальный промежуток времени, который должен пройти с момента подачи команды активирования строки до команды деактивирования Prechage. Этот временной промежуток между началом считывания данных и закрытием активированной строки (tRAS) зависит от длины передаваемого пакета данных, причем должно выполняться соотношение tRAS > tRCD + tCL. При этом, минимальное значение tRAS должно быть больше на столько, насколько велик интервал времени, требуемый для передачи всего пакета данных.
Кроме них определяются еще два тайминга.
Тайминг tRP (RAS Precharge), определяет наименьший промежуток времени от команды закрытия строки PRECHARGE до поступления команды активирования новой строки памяти. Этот тайминг иллюстрирован рис. VIII.8.
И наконец определяется еще один тип задержки, который характеризует задержку между командой выбора микросхемы CS# и командой активирования строки (Command Rate – скорость выполнения команд). Эта задержка обычно составляет один или два такта (см. рис.VIII.9).
Все эти рассмотренные задержки, определяющие латентность синхронной динамической памяти, измеряются количеством тактов системной шины между указанными командами.
Описанные задержки, определяющие тайминги памяти, обычно записываются в виде ряда чисел тактов, необходимых для выполнения каждого тайминга, в следующей последовательности: tCL–tRCD–tRP–tRAS–Command Rate. Так, например, для модуля памяти ОЗУ типа PC3200 тайминги могут быть следующими: 2–3–4–5–(1Т). Это означает, что для данного модуля CAS Latency (tCL) составляет 2 такта, RAS to CAS Delay (tRCD) – 3 такта, RAS Precharge (tRP) – 4 такта, ACTIVE – to precharge delay (tRAS) – 5 тактов и Command Rate – 1 такт. Довольно часто, при характеристике памяти ограничиваются приведением трех первых таймингов: tCL – tRCD – tRP.
Рис. VIII.8 Иллюстрация задержки RAS Precharge
Рис.VIII.9 Иллюстрация задержки Command Rate
Тенденции развития
Рассмотрим теперь общие принципы функционирования синхронных динамических ОЗУ – SDRAM (Synchronous Dynamic RAM) и тенденцию их развития до настоящего времени. Первой и наиболее простой синхронной динамической памятью является память SDR SDRAM (Single Data Rate – с одиночной скоростью выборки данных), в которой синхронизация всех входных и выходных сигналов обеспечивается положительными фронтами импульсов тактового генератора.
Обобщенная структура памяти SDR SDRAM, приведенная на рис.VIII.10a, состоит из двух основных блоков: ядра памяти и буферных регистров ввода/вывода. Основу ядра памяти составляет матрица запоминающих ячеек, а обмен информацией с системной шиной осуществляется через буфер ввода/вывода. Работа ядра памяти, буфера ввода/вывода и обмен информацией между буфером и системной шиной осуществляется на одной и той же тактовой частоте, причем обмен с системной шиной производится по переднему фронту тактирующих импульсов. Для увеличения пропускной способности SDRAM весь массив памяти обычно разделен на два независимых банка. Такое решение позволяет совместить выборку данных из одного банка с установкой адреса в другом банке, т.е. одновременно иметь две открытые страницы. Доступ к этим страницам чередуется и соответственно устраняются задержки, что обеспечивает создание непрерывного потока данных.
В 1999 году появились новый тип синхронной памяти – DDR SDRAM (Double Data Rate SDRAM – SDRAM с удвоенной скоростью передачи данных). Принцип их построения основан на том, что быстродействие ядра памяти, которое представляет собой матрицу запоминающих емкостей, требующих периодической регенерации состояния, а также восстановления состояния после каждой операции считывания, существенно меньше быстродействия буферных регистров ввода/вывода, реализуемых на статических элементах – электронных триггерах.
На рис.VIII.10б приведена структура памяти типа DDR SDRAM. В DDR – памяти из ядра памяти каждый такт в регистры буферной памяти ввода/вывода передается не 64, а 128 разрядное слово. А поскольку регистровая буферная память ввода-вывода обладает быстродействием значительно большим, чем ядро, то с нее на 64 разрядную системную шину это 128 разрядное слово считывается по 64 бита два раза за один такт, т.е. фактически работает на удвоенной тактовой частоте, оставаясь при этом полностью синхронизированной с ядром памяти.
Для того чтобы осуществить синхронизацию работы ядра памяти и буфера ввода/вывода, используется одна и та же тактовая частота. Однако если в самом ядре синхронизация осуществляется по положительному фронту тактового импульса, то в буфере ввода/вывода, выполняющем функцию мультиплексора, для синхронизации используется как положительный, так и отрицательный его фронт.
Рис. VIII.10 Обобщенные структуры памяти SDRAM
Таким образом, передача данных из ядра памяти в буфер ввода/вывода осуществляется по положительному фронту тактирующего импульса одновременно по двум 64 разрядным каналам словами шириной 128 бит, а их выдача из буфера ввода/вывода на шину данных происходит 64 разрядными словами. Однако выдача кодов осуществляется, как по положительному, так и по отрицательному фронту тактирующих импульсов, т.е. как бы с удвоенной частотой. Это дает возможность получить вдвое большую пропускную способность памяти DDR по сравнению с обычной синхронной памятью.
На рис.VIII.10в приведена структура памяти типа DDR2 SDRAM. В данном типе памяти ядро памяти синхронизируется, по-прежнему, положительным фронтом тактовой частоты, и с приходом каждого положительного фронта в буфер ввода-вывода, по 4 независимым 64 разрядным каналам, передается параллельно 256 бит. Сам же буфер ввода-вывода работает на удвоенной частоте ядра памяти, и на системную шину данных выдает 64 разрядные слова, как по положительному, так и по отрицательному фронту этой удвоенной частоты. Таким образом, за каждый такт работы ядра памяти на шину данных выдается четыре 64 разрядных слова и, следовательно, пропускная способность памяти типа DDR2 в 4 раза превышает пропускную способность обычной синхронной памяти. В памяти DDR2 реализована схема разбиения массива памяти на четыре логических банка, а для модулей емкостью 1 и 2 Гбайт – на восемь логических банков.
К концу 2008 года начала внедряться память DDR3, а в 2009 – 2010 году этот тип памяти стал основным типом памяти, используемым для создания оперативной памяти компьютеров. Принцип его работы аналогичен рассмотренным случаям (см. рис VIII.11).
Рис VIII.11 Обобщенная структура памяти DDR3 SDRAM
Но в DDR3 из ядра памяти информация в буфер ввода/вывода выдается 64 разрядными словами параллельно по восьми каналам, Таким образом, в буфер памяти в каждом такте заносится одновременно 512 разрядное слово. При этом в DDR3 буфер ввода-вывода (он же мультиплексор) работает на частоте в четыре раза большей частоты ядра памяти. И поскольку обмен информацией между буфером ввода-вывода и шиной данных 64 разрядными словами осуществляется и по положительному и по отрицательному фронту тактирующих импульсов буфера памяти, то пропускная способность памяти DDR3 в восемь раз выше, чем у обычной синхронной памяти. Заметим, что кроме увеличения пропускной способности, память DDR3 выгодно отличается и уменьшенным энергопотреблением, что в настоящее время приобретает особое значение. Если модули DDR-памяти работают при напряжении 2,5 В, а модули памяти DDR2 – при 1,8 В, то модули DDR3-памяти работают при напряжении питания 1,5 В.
Заметим, что недавно появились сообщения о том, что фирмой Samsung уже разработаны опытные образцы микросхем памяти DDR4, с ещё более высокими частотными характеристиками (частоты от 2133 до 4266 МГц) и более низким напряжением питания (1,2 В). Фирма предполагает массовое производство их начать в 2013 г.
Обратим еще раз внимание на то, что повышение пропускной способности памяти типа DDR, как и в дальнейшем DDR2, DDR3 и DDR4 основывается на том, что время обращения к буферной регистровой памяти во много раз меньше, чем время обращения к матрице ядра памяти.
Наконец, в качестве информации заметим, что микросхемы DDR…DDR3 обозначаются с указанием эффективной частоты в мегагерцах выдачи кодов на шину процессора. Например: DDR3-800 обозначает микросхему типа DDR3 с частотой выдачи данных (размерностью 64 бита), равной 800 МГц. В то же время, обозначение модулей памяти, собранной на этих микросхемах, будет обозначаться как модуль PC3-6400, т.е. модуль памяти на микросхемах памяти типа DDR3 с пиковой скоростью передачи данных – 6,4 ГБ/с.