Почему вам стоит разгонять оперативную память (это легко!)

Описание общей карты программирования spd

Стандарт JEDEC Std No. 21-C-4.1.2 регламентирует применение схемы последовательного детектирования в любых модулях памяти независимо от типа применяемого ОЗУ/ПЗУ и форм-фактора. Это придает данной схеме исключительную гибкость и универсальность, поскольку стандарт предусмотрен для настоящих и последующих архитектур, и включает резервные поля для внесения специальной информации, которая потребуется в будущем.

Когда стандартизируется специфическая архитектура, отличная от базовой, предусматривающая собственные особенности функционирования, специфическую организацию, индивидуальные характеристики и т.д. — все отражается в схеме SPD: отличия заносятся в резервные биты (если таких характеристик не предусмотрено в текущей), а в общей спецификации описывается соответствующим дополнением, кроме чего, на каждую отдельную характеристику должна присутствовать адресная карта.

Все модули памяти, имеющие разный форм-фактор, содержащие память со своими архитектурными особенностями, и в которых применяется схема последовательного детектирования, должны отвечать следующим пунктам: 1 — известный интерфейсный протокол; 2 — подходящая (приемлемая) конфигурация модуля; 3 — стандартизированная архитектура («глубина», «ширина», количество используемых банков, схема адресации и т.д.);

Общая схема назначения адресных байт SPD SIMM/DIMM
Байт Назначение
Общий объем текущей информации, записанной в EEPROM
1 Общее количество байт информации в микросхеме SPD
2 Фундаментальный тип используемой памяти
3 Общее количество адресных линий строки модуля, включая «смешанный» объем
4 Общее количество адресных линий столбца модуля, включая «смешанный» объем
5 Общее количество физических банков модуля памяти
6-7 Внешняя шина данных модуля памяти
8 Питающий интерфейс
9 Временной цикл с максимальной задержкой сигнала CAS# (tCK)
10 Длительность задержки данных на выходе модуля с учетом CL=Х
11 Интерфейс модуля (None/Parity/ECC…)
12 Тип и способ регенерации данных
13 Тип организации используемых микросхем памяти
14 Ширина шины данных ЕСС модуля
15 Минимальная задержка произвольного доступа к столбцу
16 Длительность передаваемых пакетов (BL)
17 Количество логических банков каждой микросхемы в модуле
18 Поддерживаемые длительности задержки сигнала CAS# (CL)
19 Задержка выдачи сигналов выбора кристалла CS# (tA(S))
20 Задержка выдачи сигнала разрешения записи WE# (tA(W))
21 Специфические атрибуты модуля памяти
22 Атрибуты общего порядка микросхемы памяти
23 Минимальный цикл CLX-1
24 Максимальное время доступа к данным с минимальным циклом CLX-1 (tAC)
25 Минимальный цикл CLX-2
26 Максимальное время доступа к данным с минимальным циклом CLX-2 (tAC)
27 Минимальное время регенерации данных в странице (tRP)
28 Минимальная задержка между активизацией соседних страниц (tRRP)
29 Минимальная задержка RAS-to-CAS (tRCD)
30 Минимальная длительность импульса сигнала RAS# (tRAS)
31 Емкость одного физического банка модуля памяти
32 Время установки адресов и команд перед подачей синхроимпульса (tIS)
33 Время ожидания на входе после подачи синхроимпульса (tIH)
34 Интервал установки данных на входе перед подачей синхроимпульса (tDS)
35 Время ожидания данных на входе после подачи синхроимпульса (tDH)
36-61 Зарезервировано по JEDEC JC42.5-97-119 для дополнений описания будущих архитектур
62 Номер текущей версии SPD
63 Контрольная сумма байт 0-62
64-71 Идентификационный код производителя по JEP106
72 Информация о производителе модуля
73-90 Уникальный номер производителя модуля
91-92 Код ревизии (версии) модуля
93-94 Дата производства модуля
95-98 Основной серийный номер модуля
99-125 Специфические данные производителя модуля
126-127 Специфические атрибуты частоты функционирования модуля
128-255 Пустые байты для внесения необходимой дополнительной информации
Предлагаем ознакомиться  Установка дополнительной оперативной памяти

Примечание: байты 15-30 используются исключительно для характеристики модулей памяти, использующих разновидности синхронного ДОЗУ.

Рассмотрим все возможные способы кодирования/декодирования информации в SPD на нескольких примерах. Общий объем данных, записанных в микросхеме SPD, обычно составляет 128 байт, но производитель может заполнить и больше — вплоть до всех 256. Так, байт 1 как раз характеризует объем записанной полезной информации.

Общий объем информации, записанной в SPD (байт 1)
Объем, байт Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
1
1 1
2 1 1
3 1
x x x x x x x x
128 1
x x x x x x x x
255 1 1 1 1 1 1 1 1

Так, микросхема SPD EEPROM, содержащая объем полезной информации, составляющий, например, 128 байт будет в поле байта 1 содержать шестнадцатиричное значение 80h (двоичная последовательность 10000000), а микросхема, использующая все 256 байт — значение FFh (двоичная последовательность 11111111).

Различные фундаментальные архитектуры используемого типа памяти характеризуются байтом 2, который также кодируется по схеме прямого преобразования. Рассмотрим фрагмент таблицы «битовой классификации» для характеристики используемого фундаментального типа ДОЗУ.

Кодирование в SPD фундаментального типа ДОЗУ (байт 2)
Тип памяти Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Reserved
FPM DRAM 1
EDO DRAM 1
Pipelined Nibble 1 1
SDRAM 1
Multiplexed ROM 1 1
DDR SGRAM 1 1
DDR SDRAM 1 1 1
VC SDRAM 1
x x x x x x x x

Отсюда видно, что байт 2 в модуле памяти, использующем, например, фундаментальный тип ДОЗУ VCSDRAM будет содержать значение 08h, а, скажем, SDRAM — 04h.

Байт 9 характеризует временной цикл с максимальной задержкой сигнала CAS# (CL), что, понятно, является составной цифровой величиной. Данный байт использует таблицу указателей (LUT), применяя схему разделения байта на две «группы», поскольку временные параметры могут быть не просто целыми числами, а и содержать дробные значения.

Так, с учетом разбиения таблицы на «точки входа», поле более важных бит именуют субполе А (Subfield A), а менее важных — субполе В (Subfield B). Поэтому для кодирования информа-ции, ее в данном случае делят на две составляющие — целые и дробные значения, соответственно прямо кодирующиеся в субполях А и В.

Временной цикл с максимальной задержкой сигнала CAS# (байт 9)
Наносекунды Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Кодирование целого значения временного цикла (в наносекундах) — субполе А
1ns Смотреть значения субполя В
2ns 1
3ns 1
4ns 1 1
5ns 1
х х х х
15ns 1 1 1 1
Кодирование дробного значения временного цикла (в наносекундах) — субполе B
0ns Смотреть значения субполя А
0.1ns 1
0.2ns 1
0.3ns 1 1
0.4ns 1
0.5ns 1 1
х х х х

Таким образом получается, что если необходимо задать время цикла, равное, например, 10.5ns, то следует провести следующие операции: по субполю А отыскать целое значение 10 (в бинарном виде это выглядит 1010), а по субполю В — дробное значение 0.5 (в двоичной системе 0101). Складывая полученные значения с учетом байтовой организации, информация кодируется следующим образом: по правилу перевода двоичного значения в десятичное получаем для более важных бит, кодирующих целое значение (10ns), двоичную последовательность 1010, соответствующую Ah в шестнадцатиричном коде, а для менее важных бит, кодирующих дробное значение ( 0.5ns), — двоичную последовательность 0101, соответствующую 5h в шестнадцатиричном представлении.

Предлагаем ознакомиться  Гайд. За что отвечают настройки графики в играх и как они влияют на FPS

Данный пример демонстрирует стандартную схему 4/4 разделения поля на суб-поля А/В. Другие схемы, отличные от стандартной, применяются для того, чтобы увеличить/уменьшить диапазон значений целых/дробных составляющих конкретного параметра. Примером схемы 1/7 является байт 14, кодирующий ширину шины данных ЕСС модуля, а примером схемы 6/2 может являться байт 25, характеризующий минимальный цикл CLX-2. Подробнее о кодировании аналогичных параметров смотреть в документах [3], [11], [12], [14].

Своего рода «частным случаем» схемы разделения является «суммирование» составляющих по одной строке — такую схему кодирования обычно применяют для параметров, значения которых не превышают восьми, или для кодирования сразу нескольких характеристик — например, ранее рассматриваемый байт 127. Так, в соответствующих битах устанавливается разрешение (1) или запрещение (0) использования какой-то конкретной характеристики, определяемой конкретным битом, после чего полученная двоичная последовательность кодируется по уже известной схеме. Например, байт 16 характеризует поддерживаемые длительности пакетов передачи данных (BL — Burst Length).

Кодирования в SPD размера передаваемого пакета (байт 16)
Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
BL=Page TBD TBD BL=16 BL=8 BL=4 BL=2 BL=1
1 или 0 1 или 0 1 или 0 1 или 0 1 или 0 1 или 0 1 или 0 1 или 0

Так, если поддерживается передача пакетов длительностью 1, 2, 4 и 8 слов (BL=1, 2, 4, 8), то в соответствующей ячейке таблицы устанавливаются 1 (поддерживается). В результате для данного случая имеем последовательность 00001111, что записывается в байте 16 карты программирования SPD как 0Fh. Если в дополнение к этому поддерживается еще и передача пакетов размера всей страницы целиком (BL=1, 2, 4, 8, Page), то тогда получается последовательность 10001111, что записывается в байт 16 как 8Fh.

Еще одним частным случаем «разделения» является «расстановка флага» в старшем бите (бит 7) байта. Например, байт 12 несет информацию о поддерживаемой длительности цикла регенерации строки логического банка ядра микросхемы памяти. Стандартно, микросхема памяти поддерживает нормальный цикл регенерации (15.625 µs), который обновляет содержимое ячеек страницы памяти через заданный конкретный интервал времени.

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

Саморегенерация (SR или SEREf — SElfREfresh), как стандартный в настоящее время механизм обновления содержимого ячеек памяти, используется для введения прибора памяти в режим выполнения программы самостоятельного режима регенерации. Этот механизм используется в периоды микропотребления, когда микросхема памяти регенерирует массив путем инкрементирования своего внутреннего счетчика — в таком состоянии она сама осуществляет обновление содержимого ячеек, поскольку в ней запускается свой собственный генератор, синхронизирующий внутренние цепи.

Кодирования в SPD типа и способа регенерации массива ДОЗУ (байт 12)
Период Бит 7, SR-флаг Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Normal (15.625 µs)
Reduced (0.25x) 1
Reduced (0.5x) 1
Extended (2x) 1 1
Extended (4x) 1
Extended (8x) 1 1
TBD 1 1
х х х х х х х
Периоды в режиме саморегенерации (SR)
Normal (15.625 µs) 1
Reduced (0.25x) 1 1
Reduced (0.5x) 1 1
Extended (2x) 1 1 1
Extended (4x) 1 1
Extended (8x) 1 1 1
TBD 1 1 1
1 х х х х х х х
Предлагаем ознакомиться  Чипсет nForce 650i Ultra: доступное решение от NVIDIA для процессоров Intel

Примечание: Normal — нормальная; Reduced — сокращенная; Extended — расширенная.

Для указания того, что микросхемы памяти в составе модуля поддерживают механизм саморегенрации введен флаг в старший бит (бит 7), характеризующий в конкретном случае, что саморегенерация поддерживается — установка значения бита 7 в «1». Например, если микросхема поддерживает сокращенную на четверть регенерацию — 0.25x (3.9 µs), — то в двоичном представлении байт 12 будет выглядеть как 00000001, что соответствует 01h.

Для кодирования/декодирования остальных параметров применяются схемы, аналогичные рассмотренным с небольшими особенностями. Полную информацию о назначении конкретных временных параметров, аббревиатурах, сокращениях и обозначениях, используемых в микроэлектронике (в частности в DRAM) можно найти в документах [1]-[2] из «Списка используемых источников».

Более детальную информацию об описании и назначении всех информационных байт, использующихся в схеме последовательного детектирования для различных фундаментальных типов DRAM, регламентированного стандартом JEDEC Std No. 21-C-4.1.2, можно найти в документах [3]-[10]. Электрический интерфейс, монтаж микросхемы EEPROM, ее цоколевка, а также примеры карт программирования для соответствующих модулей памяти, использующих конкретные типы ДОЗУ, можно найти в документах [11], [12], [17]-[20] и [38].

Задержки командного интерфейса

Особой категорией таймингов, не связанных с доступом к данным, находящимся в ячейках микросхем SDRAM, можно считать так называемые «задержки командного интерфейса», или обратную им характеристику — «скорость подачи команд» (command rate). Эти задержки связаны с функционирования подсистемы памяти на уровне не индивидуальных микросхем, а составляемых ими физических банков.

При инициализации подсистемы памяти каждому сигналу выбора кристалла (chip select), ассоциированному с определенным физическим банком памяти, в регистрах чипсета присваивается определенный номер (нумерация осуществляется, как правило, по емкости физических банков — например, по убывающей), уникальным образом идентифицирующий данный физический банк при каждом последующем запросе (поскольку все физические банки разделяют одни и те же, общие шины команд/адресов и данных).

Чем больше физических банков памяти присутствует на общей шине памяти, тем больше электрическая емкостная нагрузка на нее, с одной стороны, и тем больше задержка распространения сигнала (как прямое следствие протяженности пути сигнала) и задержка кодирования/декодирования и работы логики адресации и управления, с другой.

Так возникают задержки на уровне командного интерфейса, которые на сегодняшний день наиболее известны для платформ, основанных на процессорах семейства AMD Athlon 64 с интегрированным контроллером памяти, поддерживающим память типа DDR SDRAM. Разумеется, это не означает, что задержки командного интерфейса присущи лишь этому типу платформ — просто для этого типа платформ, как правило, в настройках подсистемы памяти в BIOS есть настройка параметра «Command Rate:

1T/2T», тогда как в других современных платформах (например, семейства Intel Pentium 4 с чипсетами Intel 915, 925, 945, 955 и 975 серий) настройки задержек командного интерфейса отсутствуют в явном виде и, по всей видимости, регулируются автоматически. Возвращаясь к платформам AMD Athlon 64, включение режима «2T» приводит к тому, что все команды подаются (наряду с соответствующими адресами) на протяжении не одного, а двух тактов шины памяти, что определенно сказывается на производительности, но может быть оправдано с точки зрения стабильности функционирования подсистемы памяти.

Оцените статью
Техничка
Adblock detector