Сергей КОЖЕНЕВСКИЙ
До сегодняшнего дня еще существуют SDRAM DIMM, работающие на частотах 66 МГц, которые не оборудованы чипом SPD-EEPROM, которая содержит важнейшие временные параметры и данные об используемых на модуле чипах и их производителе. Модули на частоте 66 МГц работали безупречно, позволяли осуществлять расширение памяти путем добавления DIMM-модулей других производителей или другого вида исполнения. Но на частотах 100 МГц и выше ситуация кардинально меняется.
Предвидя сложности функционирования систем с SDRAM от разных производителей, а также для облегчения установки SDRAM в систему, Intel разработал спецификацию на последовательную (Serial) EEPROM-память. Присутствие EEPROM-памяти на DIMM-модулях, отвечающих спецификации РС100 – необходимое условие, т.к. он содержит точные характеристики чипов памяти, которые необходимы BIOS для правильной конфигурации системы. При старте системы чипсет Intel 440 последовательно прочитывает байты из EEPROM для идентификации модуля SDRAM и устанавливает параметры системы так, что обеспечивается корректная работа с данным видом памяти.
Все SDRAM-модули, которые работают на частоте 100 МГц, должны быть выполнены по разработанной Intel технологии, которая учитывает задержку сигналов, сопротивление входов, входную и выходную емкости, индуктивность дорожек. В системах, работающих на частоте 100 МГц и выше, при расширении памяти приходится задумываться о характеристиках модуля, добавляемого в систему, о производителях чипов SDRAM, установленных на модуле, о совпадении временных параметров модулей, о месте установки SDRAM в системе slot 1, 2, 3 или 4 (бывает редко!). Поэтому спецификация Intel PC100 определяет необходимость присутствия EEPROM на модуле и детально описывает все параметры, которые должны быть занесены производителем DIMM в память EEPROM.
Надо помнить о том, что производителей SDRAM-модулей очень много. Их производят компании, которые потратили чуть больше 20 000 долларов на приобретение станции монтажа и около 5 тысяч – на тестер контроля годности модулей. Как правило, такие компании не получают первосортные чипы SDRAM и, соответственно, параметры готового SDRAM-модуля не лучшие. Вводя спецификацию РС100, Intel надеялась, что необходимость соблюдения очень жестких технических требований приведет к сокращению числа производителей SDRAM-модулей, но состояние рынка SDRAM PC100 в Украине показывает, что ограничить круг производителей даже для Intel не так просто.
Многие производители просто наклеивают этикетку "РС100" на свои SDRAM модули и продают их как полностью удовлетворяющие требованиям спецификации РС100. Однако есть пути уличить их во лжи, и в данной публикации мы постараемся предложить вам способ избежать обмана.
Как избежать обмана при покупке
SDRAM PC100?
Правило №1
SDRAM DIMM-модули, соответствующие спецификации РС100, должны изготавливаться из чипов, соответствующих этой спецификации.
Intel официально подтвердил существование чипов SDRAM РС100 у производителей, перечень которых приведен в таблице.
|
Производитель | Префикс | Производитель | Префикс |
Fujitsu | MB | Hitachi | HM |
Hyundai | HY | IBM | IBM |
LG Semiconductor | GM | Micron | MT |
Mitsubishi | M5M | Mosel Vitelic | V |
NEC | µPd | Oki | MSM |
Samsung | KM | Siemens | HYB |
Texas Instruments | TMS | Toshiba | TC |
Genesis | GS | Nan Ya | NT |
LG | GM | NPNX | NN |
|
Кроме того, опубликована и кодировка чипов (на соответствие стандарту РС100), которые первыми прошли тестирование (см. таблицу).
|
Supplier | Device | Part Number/Date Code |
Samsung | 256M – 64Mx4 | KM44S64230AT-GL 9838 |
Siemens | 256M – 32Mx8 | HYB39S256800T-8 9837 |
Hyundai | 128M – 32Mx4 | HY57V1294020 9824 |
Samsung | 128M – 32Mx4 | KM44S32030T 9825 |
Samsung | 128M – 16Mx8 | KM48S16030T 9822 |
Toshiba | 128M – 16Mx8 | TC59SM708FT-80 9835 |
Toshiba | 128M – 8Mx16 | TC59SM716FT-80 9838 |
Fujitsu | 16M – 2Mx8 | MB81F16822B102FN 9810 |
Genesis | 16M – 2Mx8 | GS148C2M8A1 09NJ40 |
Hyundai | 16M – 2Mx8 | HY57V168010C TC-10S 9801TA HY57V168010CTC-10P 9807 |
LG | 16M – 2Mx8 | GM72V16821DT –7K 9809 |
Mitsubishi | 16M – 2Mx8 | M5M4V16S30DTP-8 811 |
Nan Ya | 16M – 2Mx8 | NT56V1680AOT ES E73600302A 47NJ19 |
OKI | 16M – 2Mx8 | M56V16800E-8TS 9816 |
Samsung | 16M – 2Mx8 | KM48S2020CT-GL ES 807 |
Siemens | 16M – 2Mx8 | HYB39S16800CT-8C9822 |
TI | 16M – 2Mx8 | TMX626812BDGE5M 82A1TOP |
Fujitsu | 64M – 8Mx8 | 81F64842B-103FN 9750 KO1R1 |
Hitachi | 64M – 8Mx8 | HM5264805TT-B60 9748 |
Hyundai | 64M – 8Mx8 | HY57V658020ALTC-10P9749TA K0021E HY57V658020ATC-10S 9805 |
IBM | 64M – 8Mx8 | 0364804CT3B-260 9830 |
LG | 64M – 8Mx8 | GM72V66841CT-7J 9748 |
Mitsubishi | 64M – 8Mx8 | M5M4V64S30ATP-8 806 |
Mosel Vitelic | 64M – 8Mx8 | V54C365804VBT8PC 9832 |
NEC | 64M – 8Mx8 | D4564841G5-A10-9JF 9812 |
NPNX | 64M – 8Mx8 | NN5264805TT-B60 9822 |
OKI | 64M – 8Mx8 | MD56V62800A-8 9818 |
Samsung | 64M – 8Mx8 | KM48S8030BT-GL 801 |
Siemens | 64M – 8Mx8 | 39S64800AT 9812 |
TI | 64M – 8Mx8 | TMX664814A8A7ET |
Toshiba | 64M – 8Mx8 | A56877 9750KBD TC59S6408BFT-80 |
Fujitsu | 64M – 4Mx16 | 81F641642b-103fn 9805 MOO |
Hitachi | 64M – 4Mx16 | HM5264165TT-B60 9751 |
Hyundai | 64M – 4Mx16 | HY57V651620ATC-10P 9803 HY57V651620ATC-10S 9805 |
LG | 64M – 4Mx16 | GM72V661641CT-7J 9806 |
Mitsubishi | 64M – 4Mx16 | M5M4V64S40ATP-8 810 |
NEC | 64M – 4Mx16 | D4564163G5-A10-9JF 9803E9001 |
Samsung | 64M – 4Mx16 | KM416S4030BT-GL 807 |
Siemens | 64M – 4Mx16 | HYB39S64160AT-8 9830 |
Toshiba | 64M – 4Mx16 | TC59S6416BFT-80 9806 |
|
В настоящее время количество чипов, соответствующиfх стандарту РС100, значительно расширилось, и с информацией о них можно ознакомиться на Web-страницах производителей:
|
Manufacturer | Prefixes | URL |
Fujitsu | MB | http://www.fujitsumicro.com/products/memory/memory.html |
Hitachi | HM | http://semiconductor.hitachi.com/ |
Hyundai | HY | http://www.hea.com/hean2/semi/home.htm |
IBM | IBM | http://www.chips.ibm.com/products/memory/ |
LG Semicon | GM | http://www.lgsemicon.co.kr/products.htm |
Micron | MT | http://www.micron.com/mti/msp/html/product.html |
Mitsubishi | M5M | http://www.mitsubishichips.com/data/datasheets/psgindex.html |
Mosel Vitelic | V | http://www.moselvitelic.com/frame_products.html |
NEC | µPd | http://www.ic.nec.co.jp/english/products/memory/doc.html |
Oki | MSM | http://www.okisemi.com/ |
Samsung | KM | http://www.intl.samsungsemi.com/ |
Siemens | HYB | http://www.siemens.de/semiconductor/products/ics/31/313.htm |
Texas Instruments | TMS | http://www.ti.com/sc/docs/psheets/pids1.htm |
Toshiba | TC | http://www.toshiba.com |
Правило №2 Каждый модуль должен быть изготовлен по технологии, отвечающей спецификации РС100. На PSB (печатной плате модуля) должны быть соответствующие обозначения. В соответствии с техническими требованиями Intel плата РСВ SDRAM PC100-модуля должна быть маркирована как "PCSDRAM-REV#.#". Обозначение символов #.# – номер версии спецификации, которая использовалась во время разработки и производства платы РСВ. Спецификация (Rev1.0) – самая современная и была принята только в феврале 1998 г. К этому моменту многие производители уже выпустили большое количество DIMM-модулей, отвечающих спецификации REV 0,9 (октябрь 1997 г.). Эти SDRAM-модули предназначались для работы только в системах с частотой шины 66 МГц. Поэтому наклейка или надпись, выполненная краской на РСВ, не даст вам полной уверенности, что данный DIMM-модуль – 100-мегагерцовый. Правило №3 На каждом модуле SDRAM РС100 должен быть установлен SPD-EEPROM, запрограммированный в соответствии с требованиями спецификации РС100. Рассмотрим вопрос применения SPD-EEPROM более подробно: Если следовать требованиям Intel, то SPD-EEPROM размером 2 кбит должна быть: - корректно запрограммирована производителем;
- запрещена для записи информации в EEPROM потребителем.
Но анализ рынка памяти на Украине показывает, что большинство продавцов SDRAM-модулей: - заведомо ложно программируют EEPROM;
- оставляют возможность потребителю изменять данные в SPD-EEPROM.
SPD EEPROM: алгоритм функционирования Интерфейс I2C С появлением нового стандарта памяти SDRAM появился и новый интерфейс I2C. Интерфейс разработан фирмой Philips и используется как внутренняя вспомогательная шина системной платы для обмена информацией с энергонезависимой памятью SPD-EEPROM (установленной на PCB SDRAM), которая отвечает за идентификацию установленных на модуле компонентов. Шина отличается предельной простотой реализации – 2 сигнальные линии, передача или прием информации по которым осуществляется программным способом. По прямому назначению эту шину применяет пока только BIOS материнской платы для определения характеристик SDRAM. Занесение изменений в EEPROM во время работ системы не предусматривается. Однако возможность изменения информации в EEPROM (перезапись) существует и может привести к ситуации, когда пользователь случайно или целенаправленно постарается изменить его параметры. Способ программного доступа к шине пока не стандартизован, но, имея описание чипсета, его можно легко «вычислить». Механизм конфигурации DIMM Определение типа и параметров установленного DIMM-модуля обеспечивается через механизм Serial Presence Detect, определяемый JEDEC 168 pin DIMM Standard. Для взаимодействия с EEPROM в чипсетах не предусматривается специальное программное управление, поэтому получение информации о типе и размере памяти осуществляется через последовательный интерфейс I2C. Перед тем как будут обеспечиваться любые взаимодействия с памятью, необходимо инициализировать регистры чипсета, отвечающие за ее работу. Определение типа и размера памяти SDRAM происходит через SMB-интерфейс на PIIX4E (только для чипсетов Intel). Выводы SCL и SDA EEPROM, которыми определяется последовательная передача данных по шине I2C, непосредственно соединены с SMB на PIIX4E. Таким образом, данные считываются с Serial Presence Detect Port на DIMM-модуле через серию последовательных циклов чтения и подаются к South Bridge на материнской плате, где записываются в регистры управляющего чипсета.  Рис. 1. Схема 1 |
|
PIIX4 | EEPROM | SDRAM |
№ вывода | Наименование | № вывода | Наименование | № вывода РСВ |
228 | SMBDATA | 05 | SDA | 82 |
207 | SMBCLK | 06 | SCL | 83 |
181 | SMBALERT | 07 | MODE/WC/ | 81 |
57 | SDA0 | 01 | E0 | 165 |
37 | SDA1 | 02 | E1 | 166 |
18 | SDA2 | 03 | E2 | 167 |
|
 |  |
Рис. 1. Структурная схема SPD EEPROM | Рис. 2. SPD EEPROM в корпусе SO Pin Connections |
Таблица назначения сигналов SPD EEPROM E0-E2Chip Enable Inputs SDASerial Data Address Input/Output SCLSerial Clock MODEMultibyte/Page Write Mode (C version) WCWrite Control (W version) VccSupply Voltage VssGround
Последовательный интерфейс I2C обеспечивает двунаправленную передачу данных между парой устройств, используя два сигнала: данные SDA (Serial Data) и синхронизацию SCL (Serial Clock). В обмене участвуют два устройства – ведущее (Master) и ведомое (Slave). Каждое из них может выступать в роли передатчика, помещающего на линию SDA информационные биты, или приемника, считывающего информацию с линии SDA. Синхронизацию задает ведущее устройство – контроллер. В случае с памятью SDRAM, ведущим устройством является чипсет I440. Линия данных SDA – двунаправленная, с выходом типа «открытый коллектор» и управляется обоими устройствами поочередно. Метод передачи информации – старт-стопный. Начало любой передачи информации – условие Start – инициируется переводом сигнала SDA из высокого в низкий при высоком уровне SCL. Завершается передача информации переводом сигнала SDA из низкого уровня в высокий при высоком уровне SCL – условие Stop. Биты данных при передаче стробируются положительным перепадом SCL. Каждая порция информации состоит из 8 бит данных, формируемых передатчиком, после чего передатчик освобождает линию данных для получения подтверждения. Приемник во время 9-го такта формирует нулевой бит подтверждения – Ack. Каждое ведомое устройство имеет свой адрес, разрядность которого составляет 7 бит. 7-битный адрес содержит 2 части. Старшие четыре бита А (6:3) несут информацию о типе устройства. Для EEPROM – 1010. Здесь нужны пояснения.
Интерфейс I2C разработан как универсальный, а его применение с памятью SDRAM – частный случай. Как раз код 1010 в 4-х старших разрядах А (6:3) и определяет то, что тип устройства, с которым работает контроллер, – это память SPD EEPROM.
Интерфейс позволяет контроллеру с помощью пары сигналов обращаться к любому из 8 однотипных устройств, подключенных к данной шине и имеющих уникальный адрес. Младшие 3 бита А (0:2) определяют номер устройства в EEPROM (см. упрощенную структурную схему).
Рис. 3. Структурная схема подключения нескольких однотипных устройств EEPROM в общую шину последовательного интерфейса I2C Кроме того, требуемый адрес устройства в EEPROM может задаваться коммутацией логических уровней 1 и 0, подаваемых на адресные входы. Так как адрес устройств возможно задавать программно и входами выбора, то устройства можно подключать и группами (если их больше 8-ми). При этом допустимо как использование общего сигнала SCL и разделенных сигналов SDA, так и общего сигнала SDA и раздельных сигналов SCL. К случаю рассмотрения взаимодействия с памятью SDRAM эти ситуации не применяются. Обычно компьютерные системы имеют 3, реже – 4 слота для установки в них SDRAM-модулей. Это и определяет максимальное количество однотипных EEPROM, объединенных в общую шину I2C. Стандартное подключение слотов SDRAM-модулей на материнской плате приведено на рисунке.  Рис. 4. Стандартное подключение слотов SDRAM-модулей Операция записи При операции «запись» контроллер выполняет условие Start подачей низкого уровня по линии SPA, потом передает байт, содержащий адрес устройства и признак операции RW (низкий уровень) и ожидает подтверждения (сигнал АСК). Если сигнал от SPD EEPROM получен, то следующей посылкой от контроллера будет 8-битный адрес записываемой ячейки, а за ней – байт данных, предназначенный для записи в данную ячейку. После каждой 8-битной посылки контроллер ожидает подтверждения АСК, и, получив его, контроллер завершает цикл условием Stop. После завершения цикла записи SDP EEPROM начинает свой внутренний цикл перезаписи поступившей информации в ячейки, а контроллер в соответствии с непрекращающимися тактовыми сигналами начинает проверять готовность устройства EEPROM путем посылки, содержащей байт адреса устройства с командой «запись». Если подтверждения от EEPROM о готовности не поступает (нет сигнала АСК), формируется сигнал Stop и цикл повторяется. |
Обмен с памятью по интерфейсу I2C. Запись информации в ячейки EEPROM |
S | Адрес устройства | | | Адрес ячейки | | | | | Данные | | | | |
T | | | | | | | | | | | | | | | | | | | | | | | | | | | | S |
A | | | | | S | S | S | | A | D | D | D | D | D | D | D | D | A | | | | | | | | | A | T |
R | | | | | A | A | A | | C | A | A | A | A | A | A | A | A | C | D | D | D | D | D | D | D | D | C | O |
T | 1 | 0 | 1 | 0 | 2 | 1 | 0 | W | K | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | K | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | K | P |
Операция чтения Признак операции записи или чтения содержится в 8-м бите. Если RW = 0 – операция записи, если RW = 1 – операция чтения. Существуют 3 вида операций чтения: 1) чтение по текущему адресу; 2) чтение по заданному адресу; 3) последовательное чтение. Чтение по текущему адресу Текущий адрес хранится во внутреннем счетчике EEPROM. Он содержит увеличенный на единицу адрес ячейки, которая была прочитана в последней операции. Получив команду чтения, EEPROM дает бит подтверждения и посылает байт данных, соответствующий текущему адресу. Контроллер (ведущее устройство) отвечает подтверждением, и тогда EEPROM посылает следующий байт. Если контроллер отвечает условиям Stop, операция чтения завершается. Чтение по заданному адресу Контроллер задает начальный адрес ячеек EEPROM, с которых начнется операция считывания. При этом передается байт адреса устройства в EEPROM и байт адреса ячейки с указанием на запись, а после подтверждения приема этой информации формируются условия Start и передается адрес устройства, но уже с указанием на операцию чтения. |
Обмен с памятью по интерфейсу I2C. Чтение по текущему адресу |
S | Адрес устройства | | | Данные n | | | | | Данные n+1 | | | | |
T | | | | | | | | | | | | | | | | | | | | | | | | | | | | S |
A | | | | | S | S | S | | A | | | | | | | | | A | | | | | | | | | A | T |
R | | | | | A | A | A | | C | D | D | D | D | D | D | D | D | C | D | D | D | D | D | D | D | D | C | O |
T | 1 | 0 | 1 | 0 | 2 | 1 | 0 | R | K | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | K | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | K | P |
|
Спецификация SPD EEPROM
Кроме описания интерфейса передачи, информации I2C спецификация PC SDRAM Serial Presence Detect (SPD) Specification определяет и информацию, записанную в EEPROM производителем. Необходимость появления такой спецификации была вызвана тем, что главные проблемы при установке SDRAM в компьютерные системы связаны с неправильным взаимодействием BIOS на материнской плате и EEPROM на модуле памяти.
Дело в том, что многие тайванские производители материнских плат на чипсете Intel 440BX устанавливают свой BIOS, который имеет функцию отключения считывания информации из EEPROM. При этом параметры системы устанавливаются вручную при входе в SETUP, или же BIOS сам устанавливает параметры системы для работы с типовой памятью.
Специалисты фирмы «ЕПОС» довольно часто сталкиваются с ситуациями, когда материнские платы (например, Intel) «отказываются» работать с модулями памяти, у которых отсутствует правильно запрограммированная EEPROM-память:
- EEPROM может быть некорректно запрограммирована производителем.
- Чипсет под управлением некорректного BIOS может неправильно установить параметры системы.
Для исключения ошибок функционирования Intel установила единые правила для всех производителей. Каждый производитель обязан внести информацию о себе в байты 61...127 EEPROM.
Приводим таблицу идентификации байтов информации, хранимых в EEPROM.
Обмен с памятью по интерфейсу I2C. Чтение по заданному адресу |
S | Адрес устройства | | | Адрес ячейки | S | Адрес устройства | | Данные | | |
T | | | | | | | | | | | | | | | | | | | T | | | | | | | | | | | | | | | | | | | S |
A | | | | | S | S | S | | A | D | D | D | D | D | D | D | D | A | A | | | | | S | S | S | | A | | | | | | | | | A | T |
R | | | | | A | A | A | | C | A | A | A | A | A | A | A | A | C | R | | | | | A | A | A | | C | D | D | D | D | D | D | D | D | C | O |
T | 1 | 0 | 1 | 0 | 2 | 1 | 0 | W | K | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | K | T | 1 | 0 | 1 | 0 | 2 | 1 | 0 | R | K | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | K | P |
|
Byte Number | Function | Required/Optional |
Hex | # | | |
00 | 0 | Defines # of bytes written into serial memory at module manufacturer | Required |
01 | 1 | Total # of bytes of SPD memory device | Required |
02 | 2 | Fundamental memory type (FPM, EDO, SDRAM...) from Appendix A | Required |
03 | 3 | # of row addresses on this assembly (Includes Mixed-size Row addr.) | Required |
04 | 4 | # Column Addresses on this assembly (includes Mixed-size Col addr.) | Required |
05 | 5 | # Module Rows on this assembly | Required |
06 | 6 | Data Width of this assembly | Required |
07 | 7 | Data Width continuation | Required |
08 | 8 | Voltage interface standard of this assembly | Required |
09 | 9 | SDRAM Cycle time, CL = X (highest GAS latency) | Required |
0A | 10 | SDRAM Access from Clock (highest CAS latency) | Required |
0B | 11 | DIMM Configuration type (non-parity, ECC) | Required |
0C | 12 | Refresh Rate/Type | Required |
0D | 13 | Primary SDRAM width | Required |
0E | 14 | Error Checking SDRAM width | Required |
0F | 15 | Minimum Clock Delay Back to Back Random Column Address | Required* |
10 | 16 | Burst Lengths Supported | Required* |
11 | 17 | # of Banks on Each SDRAM Device | Required* |
12 | 18 | CAS# Latencies Supported | Required* |
13 | 19 | CS# Latency | Required* |
14 | 20 | Write Latency | Required* |
15 | 21 | SDRAM Module Attributes | Required* |
16 | 22 | SDRAM Device Attributes: General | Required* |
17 | 23 | Min SDRAM Cycle time at CL X-1 (2nd highest CAS latency) | Required* |
18 | 24 | SDRAM Access from Clock at CL X-1 (2nd highest CAS latency) | Required* |
19 | 25 | Min SDRAM Cycle time at CL X-2 (3rd highest CAS latency) | Optional* |
1A | 26 | Max SDRAM Access from Clock at CL X-2 (3nd highest CAS latency) | Optional* |
1B | 27 | Min Row Precharge Time (Tip) | Required* |
1C | 28 | Min Row Active to Row Active (Trrd) | Required* |
1D | 29 | Min RAS to CAS Delay (Tfcd) | Required* |
1E | 30 | Minimum RAS Pulse Width (Tras) | Required* |
1F | 31 | Density of each row on module (mixed, non-mixed sizes) | Required |
20...3D | 32...61 | Superset Information (may be used in future) | |
3E | 62 | SPD Data Revision Code | Required |
3F | 63 | Checksum for bytes 0...62 | Required |
40...47 | 64...71 | Manufacturer's JEDEC ID code per JEP-108E | Optional |
48 | 72 | Manufacturing Location | Optional |
49...5A | 73...90 | Manufacturer's Part Number | Optional |
5B-5C | 91...92 | Revision Code | Optional |
5D-5E | 93...94 | Manufacturing Date | Optional |
6F-62 | 95...98 | Assembly Serial Number | Optional |
63...7D | 99...125 | Manufacturer Specific Data | Optional |
7E | 126 | Intel specification frequency | Required |
7F | 127 | Intel Specification CAS# Latency support | Required |
| 128+ | Unused storage locations | |
|
Required/Optional – are SDRAM only bytes.
В соответствии с техническими требованиями Intel SPD EEPROM должна быть корректно запрограммирована производителем и никогда не меняться. Поэтому при обычной работе с SDRAM-модулем возможность случайного стирания или изменения данных исключена. Это своего рода страховка от использования медленных DIMM-модулей в системах Intel. Однако, несмотря на все предосторожности, производители записывают в EEPROM данные с заведомо внесенной в них ложной информацией. EEPROM подобна бумаге, на которой может быть написано все что угодно.
Количество основных производителей микросхем памяти (brand-name-производителей) ограничено. Для того чтобы отличить их от других производителей «с именем», их еще называют Major-brands, или попросту «мажор». Подавляющее большинство «мажоров» также производят модули памяти на основе собственных чипов, которые в индустрии производства SDRAM считаются эталонными по качеству и зовутся Major/Major («мажор на мажоре»). К таким фирмам относятся такие известные мировые производители, как Samsung, Hyundai, LG, Siemens, которые наиболее точно выполняют все требования спецификации PC SDRAM Serial Presence Detect (SPD) (revision 1.2A, December, 1997).
Пожалуй, с истинно немецкой скрупулезностью и педантичностью подходит к программированию SPD EEPROM фирма Siemens. Ниже приведена таблица программирования SPD модулей памяти производства Siemens.
Serial Presence Detect Information used on SIEMENS 168 pin unbuffered SDRAM DIMM modules (JEDEC Standard Nr.21-C Rev./INTEL SPD Specification 1.2 A
|
Byte # | Description | SPD Entry Value | Hex |
0 | Number of SPD bytes | 128 | 80 |
1 | Total bytes in Serial PD | 256 | 08 |
2 | Memory Type | SDRAM | 04 |
3 | Number of Row Addresses (without BS bits) | 11 | 0B |
12 | 0C |
4 | Numbers of Column Addresses (for x16 SDRAM) (for x8 SDRAM) (for x4 SDRAM) | 8 9 10 | 08 09 0A |
5 | Number of DIMM Banks | 1 | 01 |
2 | 02 |
6 | Module Data Width | 64 | 40 |
72 | 48 |
7 | Module Data Width (cont.) | 0 | 00 |
8 | Module Interface Levels | LVTTL | 01 |
SSTL 3,3 | 03 |
9 | SDRAM Cycle Time at CL = 3 | 10,0 ns | A0 |
10 | SDRAM Access time from Clock at CL = 3 | 6,0 ns | 60 |
9,0 ns | 90 |
11 | DIMM Config (Error Det/Corr.) | none | 00 |
ECC | 02 |
12 | Refresh Rate/Type | Self-Refresh, 15,6 μs (64 ms) | 80 |
Self-Refresh, 31,3 μs (128 ms) | 83 |
13 | SDRAM device data width, Primary | X4 | 04 |
X8 | 08 |
X16 | 10 |
14 | Error Checking SDRAM device data width | no ECC | 00 |
X4 | 04 |
X8 | 08 |
X16 | 10 |
15 | Minimum clock delay for back-to-back random column address | t ccd = 1 CLK | 01 |
16 | Burst Length supported | 1, 2, 4, 8 & full page | 8F |
17 | Number of banks of the discrete SDRAM device | 2 | 02 |
4 | 04 |
8 | 08 |
18 | Supported CAS Latencies | CAS latencies = 1, 2 & 3 | 07 |
CAS latencies = 2, 3 | 06 |
CAS latency = 3 | 04 |
CAS latencies = 2, 3 & 4 | E0 |
19 | SDRAM CS Latencies | CS latency = 0 | 01 |
20 | SDRAM WE Latencies | Write latency = 0 | 01 |
21 | SDRAM DIMM module attributes | non buffered/non registered | 00 |
registered w/o PLL | 12 |
registered with PLL | 16 |
22 | SDRAM Device Attributes: General | Vcc tol ±10%. Precharge All, Auto Precharge | 06 |
23 | Minimum Clock Cycle Time at CAS Latency = 2 | 10,0 ns | A0 |
15,0 ns | F0 |
24 | Maximum data access time from Clock for CL = 2 | 6,0 ns | 60 |
9,0 ns | 90 |
25 | Minimum Clock Cycle Time at CL = 1 | 30 ns | 78 |
36 ns | 90 |
26 | Maximum Data Access Time from Clock at CL = 1 | 27 ns | 6C |
27 | Maximum Row Precharge Time | 20 ns | 14 |
24 ns | 18 |
30 ns | 1E |
28 | Minimum Row Active to Row Active delay tRRD | 16 ns | 10 |
20 ns | 14 |
29 | Minimum RAS to CAS delay tRCD | 20 ns | 14 |
24 ns | 18 |
30 ns | 1E |
30 | Minimum RAS pulse width tRAS | 45 ns | 2D |
31 | Module Density per Memory Bank | 8 MByte | 02 |
16 MByte | 04 |
32 MByte | 08 |
64 MByte | 10 |
32 | SDRAM input setup time | 2 ns | 20 |
33 | SDRAM input hold time | 1 ns | 10 |
34 | SDRAM data input setup time | 2 ns | 20 |
35 | SDRAM data input hold time | 1 ns | 10 |
32...61 | Superset information (may be used in future) | | FF |
62 | SPD Revision | Revision 1.2 | 12 |
63 | Checksum for bytes 0...62 | Add HEX values and use last to digits | |
64...127 | Manufactures information (optional) | | FF |
128+ | Unused storage location | | FF |
|
Одна из самых важных характеристик для пользователя – это производительность памяти, которая определяется скрытым состоянием CAS CL и описывается двумя байтами – 18-м и 27-м. Не менее важным параметром является и тип памяти, определяющийся байтом 2. Если в этом байте находится "02hex", то память – EDO, если "04 hex " – SDRAM. Фактическая скорость DIMM содержится в байте 126. Для тактовой частоты 100 МГц его значение должно быть "64 hex". В случае, если значение "66hex" – данный DIMM 66 МГц. Номер SPD-EEPROM версии находится в байте 62. Текущей версией является 1.2 (декабрь 1997 г.).
Для покупателей SDRAM-модулей, а также для компаний – сборщиков компьютеров важна информация, которая находится в отдельных разрядах. Имея эту информацию можно определить производителя SDRAM-модуля, дату его изготовления, серийный номер и рекомендуемые частоты его применения.
Информация, хранящаяся в разрядах 64...127, приведена в таблице (на примере модуля памяти фирмы Siemens).
Manufacturers Information (Rev.1.2)
|
Byte | Description | SPD Entry Value | |
64...71 | Manufactures JEDEC ID coda per JEP-106E |
64 | | SIEMENS | C1 |
65...71 | | SIEMENS | |
72 | Manufacturing location of DIMM module |
| | Statsym | 01 or 31 |
| | SIEMENS-EWK | 02 or 32 |
| | Tanisys | 03 or 33 |
| | Optosys | 04 or 34 |
| | SMART | 05 or 35 |
73...90 | Manufacturers partnumber |
73...87 | Bytes 72...87: SIEMENS PARTNUMBER | XX | 48 |
88 | Unused | | FF |
89 | Unused | | FF |
90 | Unused | | FF |
91...92 | Revision code of PC-Board |
91 | Revision code of PC-Board | Engineering Rev A (01) Rev B (02) Etc. | 00 01 02 |
92 | Test Setup Revision | | XX |
93...94 | Manufacturing date |
93 | YEAR | Example:97 | 97 |
94 | CALENDAR WEEK | Example:20 | 20 |
95...98 | Board Assembly Serial Number | | |
95 | Tester Number | Example:3 | 03 |
96 | Serial Number in Calendar Week Example = 24386 | First 8 bits | |
97 | | Bits 16...9 | |
98 | | Bits 24...17 | |
| | | |
99...125 | Manufacturer Specific Data (not used) | | FF |
126 | PC66&PC100 compatibility | PC66 | 66 |
| | PC100 | 64 |
127 | INTEL specification details for 100 MHz support | | |
| | | |
127...255 | Free for Information programmed by the customer | | FF |
|
Программные средства тестирования памяти SDRAM PC100
Информацию, хранящуюся в SPD EEPROM любого модуля или модулей SDRAM разных производителей, установленных в компьютерную систему, можно получить, используя программные средства.
Программа чтения SPD EEPROM ctsmb.exe
Можно написать свою подпрограмму или воспользоваться готовыми утилитами. Мы рекомендуем использовать программу ctsmb.exe (System-Management-Bus-Scanner 1.2), которая работает при наличии на материнской плате South-Bridge PIIX4 (PIIX – аббревиатура PCI-ISA-IDE-Xelerator), т.е. М/В с чипсетами ТХ,LX, BX, ZX, EX в режимах DOS либо эмуляции DOS.
Программа реализует 3 основных режима работы:
- Формирование полного отчета тестирования DIMM-модулей в соответствии со спецификацией Intel.
- Формирование распечатки содержимого EEPROM в таблице, содержащей шестнадцатеричные коды.
- При наличии на плате чипа LM75 производит анализ температурных режимов платы.
Во втором режиме работы возможно побайтное либо пословное (2 байта) чтение из EEPROM по указанному шестнадцатеричному адресу.
К недостаткам программы следует отнести невозможность поэкранной распечатки результатов теста, поэтому полученные данные следует распечатывать на принтере (работающем под DOS) либо записывать в файл отчета, который может быть потом просмотрен в Windows с помощью программ Office или NC.
Минимальная конфигурация испытательного стенда проверки DIMM-модулей представлена на рисунке.

Рис. 5. Минимальная конфигурация испытательного стенда
1 – материнская плата (М/В) с процессором и исследуемым DIMM-модулем, выполненная на чипсетах TX, LX, BX, ZX, EX; 2 – видеокарта VGA; 3 – блок питания; 4 – FDD; 5 – принтер; 6 – клавиатура; 7 – монитор.
Такой испытательный стенд может служить простейшим прибором, позволяющим получить информацию о характеристиках модуля SDRAM.
Приводим пример вывода на принтер информации, хранимой в SPD EEPROM модуля памяти Major/Major Hyundai, выполненного в соответствии со спецификацией РС66, но проданного потребителю как модуль памяти РС100. Справедливости ради надо отметить, что и на частоте 100 МГц данный модуль памяти работал устойчиво.
ctsmb, System-Management-Bus-Scanner 1.2,c t, 1998. ea,Teile qs
PIIX4E (AO) gefunden auf PCI-Bus 0, Devise 4
SMB Base Address: $E800,Host configuration: $09, revision: $00
DIMM in Socket 0, Serial Presence Detect Data Structure auf SMB-Adresse $ 50
|
00 | Number of Bytes used by Manufacturer | 128 |
01 | Total SPD Memory Size | 256 Bytes |
02 | Memory Type | SDRAM |
03 | Number of Row Address Bits (SDRAM) | 12 |
04 | Number of Column Address Bits (SDRAM) | 9 |
05 | Number of Module Rows | 1 |
06, 07 | Module Date Width | 72 |
08 | Module Interface Signal Levels | LVTTL |
09 | SDRAM Cycle Time (highest CAS latency) | 10,0 ns |
0A | SDRAM Acc. Time from Clock (highest CAS latency) | 8,0 ns |
0B | Module Configuration | ECC |
0C | Refresh | Self Refresh. Normal (15,625 μs) |
0D | SDRAM Width (Primary SDRAM) | 8 |
0E | Error Checking SDRAM Width | 8 |
|
SDRAM Module Attributes:
– –
SDRAM Devise Attributes:
|
OF | Min. Clock delay Back to Back | 1 Clock (s) |
10 | Burst Lengths Supported | Page 8 4 2 1 |
11 | Number of Banks on SDRAM Device | 4 |
12 | CAS Latency | 3 2 1 |
13 | CS Latency | 0 |
14 | WE Latency | 0 |
15 | Upper Vcc tolerance | 10% |
16 | Lower Vcc tolerance | 10% |
|
Supports: Write 1/Read Burst Precharge All Auto-Precharge Early RAS# Precharge
|
17 | SDRAM Cycle Time (2nd highest CAS lat.) | 12,0 ns |
18 | SDRAM Acc. from Clock (2nd hi.CAS lat.) | 9,0 ns |
19 | SDRAM Cycle Time (3rd highest CAS lat.) | 30,00 ns |
1A | SDRAM Acc. From Clock (3rd hi. CAS lat.) | 24,00 ns |
1B | Minimum Row Precharge Time (Trp) | 30 ns |
1C | Row Active to Row Active Min (Trrd) | 30 ns |
1D | RAS to KAS Delay Min (Trsd) | 30 ns |
1E | Minimum RAS Pulse Width (Tras) | 50 ns |
1F | Density of Each Row on Module | 64 MByte |
| | |
3E | SPD Data Reversion Code | $01, Release Dec. 96 |
3F | Checksum for Bytes 0...62 | $0E, OK |
| | |
40...47 | Manufacturer's JEDEC 1D Code | $ADFFFFFFFFFFFFFF |
48 | Manufacturing Location | $01 |
49...5A | Manufacturer's Part Number | 7V72a801TFG-10 |
5B, C | Prevision Code | $4141 |
5D...5E | Manufacturing Date | $4497 |
5F...62 | Assembly Serial Number | $1706B330 |
63...7D | Manufacturer Specific Data | $00000000000000000000000000 |
| | 0000000000000000000000000000 |
| | |
7E | Intel specification frequency | 66 MHz |
7F | Intel specification CAS# Latency Support | CAS Latency 2 |
|
Таблица 16-ричных кодов:
ctsmb, System-Management-Bus-Scanner 1.2, c t, 1998. ea,Teile qs
PIIX4E (AO) gefunden auf PCI-Bus 0, Devise 4
SMB Base Address: $E800, Host configuration: $09, revision: $00
DIMM-EEPROM-Inhalt in Socket 0, SMB-Addresse $50
|
00: | 80 | 08 | 04 | 0C | 09 | 01 | 48 | 00 | | 01 | A0 | 80 | 02 | 80 | 08 | 08 | 01 |
10: | 8F | 04 | 07 | 01 | 01 | 00 | 0F | C0 | | 90 | 78 | 60 | 1E | 1E | 1E | 32 | 10 |
20: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
30: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 01 | 1E |
40: | AD | FF | FF | FF | FF | FF | FF | FF | | 01 | 37 | 56 | 37 | 32 | 41 | 38 | 30 |
50: | 31 | 54 | 46 | 47 | 2D | 31 | 30 | 20 | | 20 | 20 | 20 | 41 | 41 | 44 | 97 | 17 |
60: | 06 | B3 | 30 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
70: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 66 | 06 |
80: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
90: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
A0: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
B0: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
C0: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
D0: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
E0: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
F0: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
| | | | | | | | | | | | | | | | | |
| 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F |
|
Программа тестирования DIMM EEPROM dimm.exe
Быстрый анализ типа DIMM-модуля, установленного в системном блоке, может быть произведен также программой dimm_id.exe. На программу распространяются все ограничения, рассмотренные выше: наличие South Bridge PIIX4, работа под DOS. Однако она может быть также запущена в окне под Windows.
Программа DIMM_ID указывает номер банка памяти, в который установлен DIMM-модуль, наименование фирмы производителя, номер партии и серийный номер продукта, тип памяти и ее размер и, самое главное, максимальную частоту системной шины, с которой может работать данный DIMM-модуль.
К недостаткам программы относится, в первую очередь, ограниченное число распознаваемых ведущих производителей DIMM-модулей: Hyundai, Samsung, TI, Fujitsu, Micron, Vanguard, Siemens. В остальных случаях она указывает на «неизвестного» производителя.
Пример работы программы dimm_id.exe для модуля Hyundai приведен ниже.
|
DIMM_ID.EXE | Ver 1.3 RM Plc © 1998 |
Type DIMM_ID H for help. | |
Bank | Mfr. | Part No. | Serial No | Size | Type | I-Spec |
0 | Hyundai | 7V72A801 TFG-10 | 1706B330 | 64MB | SDRAM ECC | PC66 |
1 | | No DIMM fitted | | | | |
2 | | No DIMM fitted | | | | |
3 | | No DIMM fitted | | | | |
Необходимым условием возможности считывания информации из EEPROM является наличие компонента 82371 (PIIX4), который является South Bridge на материнской плате. PIIX4 – это мост между шинами PCI и ISA и присутствует на всех материнских платах, использующих чипсеты TX, LX, BX и выполненных в соответствии с рекомендациями Intel.
Мы столкнулись с тем, что некоторые платы тайванских производителей на чипсетах Intel не взаимодействуют корректно с программой CTSMB, и поэтому рекомендуем вам выбрать плату от ASUSTEK. Все платы, проверенные нами, работали корректно.
Не пробуйте запускать программу на платах с Super Socket7, у вас ничего не получится. Если на материнской плате не присутствует элемент PIIX4, CTSMB вас информирует об этом и программа сбрасывается.
Наши рекомендации
- Покупайте память только у проверенных поставщиков.
- Старайтесь покупать «оригинальную» память от производителей Major/Major. Это означает, что производитель производит сам и чипы SDRAM, и PSB для модулей памяти, и самое главное – модули памяти SDRAM!!!
- Не покупайте дешевую память. С хорошими «мозгами» жить легче!