Динамическая память чаще всего применяется в виде модулей с разрядностью 1, 2, 4 или 8 байт, которые могут устанавливаться пользователем без каких-либо приспособлений. Модули стандартизованы, поэтому обеспечивается взаимная совместимость.
♦ SIPP и SIMM-30 — самые первые модули с однобайтной организацией, применялись вплоть до 486-х процессоров.
♦ SIMM-72-pin — 4-байтные модули, применявшиеся на системных платах для 486 и Pentium.
♦ DIMM-168 — 8-байтные модули для Pentium и выше. Существует два поколения, существенно различных по интерфейсу. Модули DIMM 168-pin Buffered (1-го поколения), как и слоты для них, встречаются редко и с широко распространенными модулями DIMM 2-го поколения несовместимы даже механически (по ключам). Наиболее популярно второе поколение с микросхемами SDRAM. Различают модификации в зависимости от наличия буферов или регистров на управляющих сигналах: Unbuffered, Buffered и Registered.
♦ DIMM-184 — 8-байтные модули DDR SDRAM для системных плат 6–7 поколений процессоров.
♦ RIMM — 2-байтные модули RDRAM для системных плат 6–7 поколений процессоров.
♦ SO DIMM (72 и 144-pin) и SO RIMM — малогабаритные варианты модулей (для блокнотных ПК).
♦ AIMM (AGP Inline Memory Module), они же GPA Card (Graphics Performance Accelerator) — 66-контактные 32- или 16-битные модули SDRAM, предназначенные для расширения памяти графических адаптеров, встроенных в системную плату.
Не пересчитывая контакты, отличить «короткие» SIMM от «длинных» и DIMM-модулей легко по их размеру: длина модуля SIMM-30 pin примерно 89 мм, SIMM-72 — 108 мм. Модули DIMM-168 и DIMM-184 имеют одинаковую длину около 134 мм (5,25"), но у 168-контактных модулей два ключа, а у 184-контактных — один (за счет чего больше контактов); кроме того, у DIMM-184 по две прорези по бокам, а не по одной. Модули RIMM имеют ту же длину, но легко отличимы по меньшему числу контактов — середина краевого разъема свободна от ламелей. У модулей RIMM микросхемы памяти закрыты пластиной радиатора. Кроме того, их левый ключ гораздо ближе к центру, чем у DIMM.
Модули памяти применяются и в принтерах (лазерных) — DIMM-168, 100-Pin DIMM, AIMM, SO DIMM-144, но иногда для них требуются и специальные модули (по конструктиву или параметрам).
Современные модули памяти имеют шину данных разрядностью 1, 4 или 8 байт. Кроме основных информационных бит, модули могут иметь дополнительные контрольные биты с различной организацией.
♦ Модули без контрольных бит (non Parity) имеют разрядность 8, 32 или 64 бита и допускают независимое побайтное обращение с помощью отдельных для каждого байта линий CAS#.
♦ Модули с контролем паритета (Parity) имеют разрядность 9, 36 или 72 бита и также допускают независимое побайтное обращение, контрольные биты по обращению приписаны к соответствующим байтам.
♦ Модули с генератором паритета (Fake Parity, Parity Generator, Logical Parity) так же допускают независимое побайтное обращение, логические генераторы паритета по чтению приписаны к соответствующим байтам. Действительного контроля памяти они не обеспечивают.
♦ Модули с контролем по схеме ЕСС имеют разрядность 36, 40, 72 или 80 бит. Обычно они допускают побайтное обращение к информационным битам, но контрольные биты у них привязаны к одному или нескольким сигналам CAS#, поскольку ЕСС подразумевает обращение сразу к целому слову.
♦ ECC-Optimized — модули, оптимизированные под режим ЕСС. От обычных модулей ЕСС они отличаются тем, что могут не обеспечивать побайтное обращение к информационным битам.
ECC-on-Simm (EOS) — модули со встроенной схемой исправления ошибок. Каждый байт модуля имеет встроенные средства контроля и исправления ошибок, работающие прозрачно. Для системы модули функционируют как обычные паритетные — в случае обнаружения неисправимой ошибки они генерируют ошибочный бит паритета. Эти модули обеспечивают отказоустойчивость по памяти (Kill Protected Memory) для системных плат, поддерживающих только контроль паритета. По «благородству» поведения (делают больше, чем «говорят») они являются прямой противоположностью модулям с генератором паритета.
Набор сигналов модуля SIMM в основном совпадает с сигналами одиночных микросхем динамической памяти. Основные характеристики распространенных модулей приведены в табл. 7.5, более подробное описание — в следующих разделах.
Таблица 7.5. Основные характеристики модулей памяти
Модуль | Разрядность¹, бит | Объем, Мбайт | Тип | Питание, В | Спецификация |
SIMM-30, SIPP | 8 (9) | 0,25-4 | FPM, EDO | 5 | 60, 70, 80 нс |
SIMM-72 | 32 (36) | 1-32 | FPM, EDO, BEDO | 5 | 50, 60, 70 нс |
DIMM-168-I | 64 (72,80) | 8-256 | FPM, EDO | 5 | 50, 60, 70 нс |
DIMM-168-II | 64 (72, 80) | 8-512 | FPM, EDO | 5, 3,3 | 50, 60, 70 нс |
DIMM-168-II | 64 (72, 80) | 8-1024 | SDRAM | 3,3 | PC66, РС100, PC133 |
DIMM-184 | 64 (72, 80) | 128, 256… | DDR SDRAM | 2,5 | PC1600, PC2100 |
AIMM | 32 | 4 | SDRAM | 3,3 | 166 МГц |
100-Pin DIMM | 32 | 4-128 | SDRAM | 3,3 | 100,125 МГц |
100-Pin DIMM | 32 | 4-32 | FPM, EDO | 3,3 | 50, 60 нс |
SO DIMM-72 | 32 (36) | 4-32 | FPM, EDO | 3,3 | 50, 60 нс |
SO DIMM-144 | 64 (72) | 32,64 | FPM, EDO | 3,3 | 50, 60 нс |
SO DIMM-144 | 64 (72) | 32-256 | SDRAM | 3,3 | 66, 100, 125, 133 МГц |
RIMM | 16 (18) | 64, 96, 128, 256 | RDRAM | 2,5 | PC600, PC700, PC800 |
¹ В скобках указана разрядность с учетом битов паритета или ЕСС.
Спецификация быстродействия у разных типов памяти отражает различные параметры и выбирается исходя из технических и маркетинговых соображений. Для асинхронной памяти указывают время доступа (в наносекундах). Для памяти SDRAM указывается тактовая частота, на которой она работает с достойным значением латентности (на более высокой частоте она, возможно, и будет работать, но с большим значением CL). Обозначения PC66, PC100 и PC133 здесь тоже указывают на частоту (отсутствие обозначения соответствует 66 МГц — поначалу иных спецификаций не было), а также на соответствие спецификациям Intel. Для DDR SDRAM числа в спецификации отражают пиковую пропускную способность (Мбайт/с): PC1600 (8 байт, 2×100 МГц), PC2100 (8 байт, 2×133 МГц). Для RDRAM числа в названии (600, 700 и 800) обозначают округленную частоту (2×300, 2×356 и 2×400 МГц) схода двухбайтных данных с конвейера RDRAM. Таким образом, их пиковая производительность составляет 1200, 1424 и 1600 Мбайт/с.
Маркировка модулей SDRAM, согласно спецификациям Intel, имеет вид PCX-abc-defY, где X — частота, МГц; а = CL (Cas Latency, в тактах), b = Trcd (задержка RAS-CAS), с = Trp (время предзаряда RAS), d = Тас (время доступа), e — ревизия последовательной идентификации (SPD), f — резервный символ, Y — символ архитектурных особенностей (R — признак наличия регистров; отсутствие символа означает отсутствие регистров и буферов). Временны́е характеристики задаются в десятках нс, но Тас может задаваться и в наносекундах. Номер ревизии SDP может содержать как последнюю цифру, так и обе. Так, модуль PC100-322-620 работает на частоте 100 МГц при CL = 3 и Тас = 60 нс, SPD ревизии 1.2. Но он может обозначаться и как PC 100-322-60120. Модуль PC100-322-620R имеет те же параметры, но еще снабжен и регистрами.
Существуют адаптеры, преобразующие форматы модулей SIMM (SIMMVerter, SIMMSaver). Они позволяют, например, сложить из четырех SIMM-30 один SIMM-72 или из двух односторонних SIMM-72 сложить один двусторонний. Трудно назвать такие конструктивные решения элегантными и надежными (появляется слишком много механических соединений и контактов), но их применение может быть оправданно при дефиците гнезд на плате. Или, например, при наличии четырех 4-мегабайтных модулей SIMM-30 можно сделать 16-мегабайтный SIMM-72. Следует помнить о повышенной нагрузке на шины, вносимой такими «супермодулями» с непомерным количеством микросхем и проводников.
Идентификация модулей
Для автоматической идентификации наличия и типа установленного модуля применяются различные методы, основанные на считывании конфигурационной информации с модуля (параллельная или последовательная идентификация) или «исследовании» свойств модуля во время начального тестирования по включении питания.
Метод параллельной идентификации начал применяться с модулями SIPP и SIMM-30 фирмы IBM. В интерфейс этих модулей были введены два дополнительных вывода, и по заземленным (на модуле) сигналам системная плата могла распознать наличие и объем установленной памяти. В SIMM-72 для идентификации предназначались 4 вывода (для ECC-модулей — 5), которые должны были нести информацию об объеме, быстродействии и типе применяемой памяти. Этот метод не выдержал натиска новых типов памяти, поскольку описать их важнейшие параметры четырьмя битами невозможно. В SO DIMM-72 используют 7 бит, в DIMM-168 первого поколения — 10, что тоже не решает проблем.
Новые модули памяти — DIMM-168 второго поколения, SO DIMM-144, DIMM-184 используют последовательную идентификацию (Serial Presence Detection). На модуль устанавливается микросхема специальной энергонезависимой памяти с последовательным доступом по двухпроводному интерфейсу I²С, хранящая исчерпывающую конфигурационную информацию. Формат конфигурационных данных стандартизован JEDEC, из доступных 256 байт под параметры пока определены только первые 32 и еще 32 зарезервированы, 64 байта отданы под информацию производителя (табл. 7.6). Основные параметры описываются в явном виде, например, временны́е — в наносекундах, количество бит адреса задается числами. Интерфейс I²С позволяет легко объединять его сигналы со всех модулей, что существенно проще, чем коммутация 4-10 линий параллельной идентификации. На разъем модулей DIMM-168 выведены 3 бита адреса SA[0:2], что позволяет разводкой этих выводов адресовать до восьми модулей с объединенными линиями синхронизации и данных. При необходимости расширения следующие восемь модулей потребуют от контроллера (чипсета) еще только одной двунаправленной или выходной линии. Адрес в SO DIMM-144 фиксирован, так что двухпроводный интерфейс позволяет опрашивать только один модуль, а каждый следующий модуль потребует по одной дополнительной линии.
Таблица 7.6. Назначение байт последовательной идентификации
Байт | Назначение | |