Comments 38
Последняя итерация стандарта DDR4 была основой развития ПК и серверов с конца 90-х.

DDR4? С конца 90-х? JEDEC представила 4-ю версию только в 2010 году, а в массовое производство она пошла с 2014-го.

Но конечно, DDR5 нельзя будет использовать в старых сокетах, даже если он вставится туда.

Вот, кстати, на последней картинке на модулях DDR4 и DDR5 ключ в одном и том же месте. Если реально впервые не сдвинут ключ — это будет очень… хм… странное решение, учитывая сильные отличи в распиновке.
Ну для производителей материнок это наверное плюс, меньше изменений в процесс производства вносить придется, имхо.
Ага, заодно материнок побольше продадут.
Были уже такие матери, куда можно было память наоборот втыкать. Хватало обычно одного раза.
Вы считаете, положение ключа в слоте для памяти влияет на процесс производства?

Плюс будет только для производителей гнезд планок памяти. Производителям материнок в любом случае переделывать разводку под новый стандарт

Боковые ключи защёлок могут отличаться — такое уже было. Сунуть в слот криво-косо можно, а защёлкнуть нельзя.
«По результатам тестирования пользователи разделились на умных и сильных.»
Вспоминая виденые молексы и дсабы воткнутые вверх ногами, я бы не был так категоричен.
Процессоры тоже податливы бывают. Один коллега воткнул 486 под 90°, что удивительно — выжил и процессор, и материнка, видимо, было КЗ по питанию и защита в блоке питания сработала оперативно.
Другой коллега в те же времена неудачно подключил питание к винчестеру с нестандартным раъёмом (как у флоповода) ввер ногами, итог — дырка в плате электроники винчестера на месте силового транзистора, успешно залеченная, и кропотливое восстановление файловой системы диска со всеми проектами.
Лично доконал китайский автомобильный жк-телевизор неправильным подключением сорокапинового двухрядного разъёма матрицы без ключей и маркировки.

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

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

Вспоминается кмк объясняющий истоки любознательности и настойчивости в достижении цели
анекдот:
Школа. Урок труда.
Учитель:
— Основное правило техники безопасности — пальцы в розетку не совать!
Ученик:
— Так они туда не влазят.
— А ты гвоздики возьми, придурок!
Я не шарил в существовании «конца линии SATA-питания под FDD», так что один раз чуть не воткнул его в материнку.
Макс. плотность одного ядра
Max Die Density это значит «плотность на кристалл».
укладывать до 8 ядер (dies) в виде одного чипа
die — кристалл. (в данном контексте)
Ох уж эти не профильные переводчики…

Так и не понял что будет с latency. А то этот показатель не только не улучшается, он даже слегка деградирует начиная с DDR2.

Скорее всего продолжится тенденция увеличения частоты, понижения напряжения и увеличения задержек.
Что значит
ассоциация JEDEC выпустила окончательную спецификацию следующего основного стандарта памяти DDR5 SDRAM
? А то что DDR5 использовалась в видеокартах, она не имела спецификации что ли? И по чему новая память сначала появляется в видеокартах, а потом кочует в слоты материнки? Маркетинг чистой воды?
Ну в смысле? Несколько лет назад выпускали видео карты на этикетке которых была указана аббревиатура как DDR5, так и GDDR5. Это сейчас почти все с GDDR5, а так то сначала была DDR5, а потом появились видюшки с GDDR5.
Память DDR2 бывает в видяха, на той же технологии идет GDDR3. Просто последнюю вышло довести до уровня 0.8 нс. Для сравннеия можете поискать, какие стандарты DDR3 поддерживал контроллер топовых процессоров.
GDDR5 — это уже аналог DDR3. То есть при 0.8 нс GDDR3 у Geforce GTX 295 мог быть разгон до 2400 МГц, а у видяхи с GDDR5 — HD 7870 — могло быть 4800 МГц.
Если у Вас 4770K, то я бы искал что-то новее. Ну или не играть в современные игры.
Интересно, что на приставках перешли на GDDR как общую память, грубо гвооря и для видео карты и для системы в целом. Я понимаю там есть пару отличий в оптимизации под задачи, но интересно насколько оправдан был бы такой переход на PC, например на рабочих станциях.
Это вынужденная мера, там объединенный CPU и GPU и соответственно объединенная память, нужно было выбирать какую-то одну. На ПК в таких случаях все еще используют DDR (вероятно из-за того что GDDR не является стандартной заменяемой компонентой).

Какое время на закрытие строки и открытие другой строки?
Вики пока молчит. DDR4 время ~37 нс не радует, оно почти не сокращается.

А при чём тут вообще такт какого-то 100 МГц?
Смотрим раз:


Row Precharge Time: The minimum number of clock cycles required between issuing the precharge command and opening the next row. The time to read the first bit of memory from a DRAM with the wrong row open is TRP + TRCD + CL.

Это именно сколько нужно на то, чтобы открыть другую строку, чем сейчас, и стартовать I/O с ней — задача, которая возникает в >99% случаев, если требуется обращение к чему-то некэшированному (шансы на то, что это будет та же строка… ну вот например стандартный 16GB модуль имеет 65536 или 131072 строк… картина, надеюсь, понятна?)


Смотрим два: у всех вариантов модулей CL, TRP и TRCD одинаковы — значит, можно CL умножить на 3. Лениво переводить из тактов во время, но в самой правой колонке таблицы CL уже во временах, лучший вариант — 12.5 нс. Умножаем на 3 — получаем 37.5 нс. Если я где-то неправ — поправьте, но уже из твёрдого знания механизмов именно современных изделий.


А откуда вы взяли 100 МГц — я в упор не понял, у DDR4 согласно этой таблице I/O bus clock, от которого считаются тайминги, ходит от 800 до 1600 МГц. Или вы вообще DDR1 вспомнили? :xz:

Ну да, 100 МГц — это не то. Хотя работника с Celeron 1500 я ещё застал, при мне ушла на пенсию. Частота системной шины уже давно не связана с памятью, контроллер DDR3/4 работает по другому.
А DDR-333 я в первом компе имел.
А можно поподробней про задержку? Я вроде как видел формулу, по которой можно приблизительно посчитать задержку рандомного досупа к памяти в нс зная частоту и CL. Что-то вроде (CL * 1000) / МHz (тысяча это разница между Мега и Нано), возможно с поправкой на «дубль дата рейт».
То есть, это всё не правильно?

В описанном вами виде это категорически неправильно, потому что CL считается в тактах I/O bus clock, которая в пределах одной архитектуры модулей (считаем DDR4 для определённости) меняется минимум в 2 раза (от 800 до 1600 МГц). И если посмотрите на колонку "CAS latency (ns)" в таблице, увидите, что при разнице частоты I/O bus clock в 2 раза — они держат это абсолютное значение CAS latency в пределах от 12.5 до 5 нс. Вот это как раз чёткая характеристика той скорости работы собственно электроники, которую частотой не победить.
Второй важный момент, который тут обычно очень вскользь описывается, это что время исполнения смены открытой строки DDR4 модуля равно 3*CL (раньше это была отдельная характеристика: полные тайминги DDR3 ещё описывались в стиле 9-9-9-28, вот это последнее число как раз тот минимум тактов, который должен был ждать контроллер на смену строки). Смена открытой строки это значит закрыть строку (переписать из SRAM-кэша модуля все биты строки в собственно однотранзисторные ячейки DRAM), и открыть другую (считать из строки и сохранить в кэше). Дальше всё чтение/запись идёт на огромной скорости, но только в пределах текущей строки.
Вот и смотрим. На модуль, обычно, 8-9 чипов (один байт одновременно без ECC или с ECC). Для примера посмотрим на однобанковый 8GB DDR4 модуль. У него будет 32768 строк по 32768 бит (делают с соотношением размеров 1:1 или 2:1). И тогда получается три варианта задержки на чтение:


  • С той же позиции, где остановились (например, прочли 64 байта строки кэша процессора, и тут же пошли читать следующую строку): считаем, 0 (ну тут ещё разгон процесса передачи и и т.п. — добавлять ко всем временам).
  • В том же 32KB блоке => та же строка чипа => задержка 12.5-15нс (CAS для смены позиции доступа внутри строки).
  • В другом 32KB блоке => другая строка чипа => задержка 37.5-45нс (на полную смену строки).
    Ну а теперь добавьте к этому всему время на поиске в кэшах процессоров и поймёте, откуда рассказы про 200-300 тактов процессора на чтение в случае промаха кэша ;(

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


Мне тут на самом деле до чёрта деталей непонятно. Например, почему не может быть одновременно открыто более одной строки в банке? Почему такая огромная задержка на CAS (сам по себе)? Но ответ тут требует серьёзного понимания электроники именно этих модулей. Вряд ли JEDEC состоит из рептилоидов, поэтому можно предположить, что они таки делают максимум возможного при всех ограничениях ;(

Ну подождите, тогда же так и получается: секунду делим на частоту, получаем длительность такта в секундах и умножаем на количество тактов, получаем длительность задержки в секундах, после этого, приводим к нано. Просто это будет ещё не рандомный доступ, то есть умножить ещё на 3.
Например: CL9 1600MHz = 9000/1600 = 5.625 нс
или (1 сек / 1 600 000 000 Гц) * 9 тактов * 1 000 000 000 нано = 5.625 нс

Ну да, если правильно применить и частоту, и длительность в тактах, то всё получится.
Я честно не думал, что вы такую простую вещь решили переспросить :) потому что сказали про "рандомную задержку" не уточняя, какую именно. А тут именно разные задержки критически важны, больше, чем скорость после установления потока.

Я не уточнил, потому что все эти параметры оперативки мне просто выносят мозг (и соответственно, я в них не разбираюсь): проще ассемблер изучить, чем устройство DDR запомнить и задержки. Но поскольку с потоковым чтением у памяти всё хорошо, то критическим параметром остаётся случайный доступ, особенно учитывая многоядерность (ядра читает каждое из своего места, 16 ядер да с гипертредингом это уже сплошной рандом). Соответственно, хотлось бы как-то по быстрому сравнивать разные модули между собой, особенно разогнанные и на стыке поколений, по этому критическому параметру. Теперь буду знать, что для реальных цифр ещё на 3 надо умножать, но сравнивать можно и по старому.
1 нс — величина, обратная частоте 1000 МГц:)
Про тайминги (измеряются в тактах), есть скажем такое:
RAS Precharge — время, которое проходит между завершением обработки одной строки и переходом к другой.

Если следующая необходимая для чтения/записи ячейка памяти находится в той же строке — не нужно будет трать время на «закрытие» этой строки и «открытие» следующей.
Only those users with full accounts are able to leave comments. Log in, please.