Вступ
Память компьютера имеет иерархическую структуру, центральным слоем которой является оперативная память — ОЗУ или RAM (Random Access Memory — память с произвольным доступом). Оперативная память непосредственно доступна процессору: в ней хранится исполняемая в данный момент часть программного кода и данные, к которым процессор может обращаться с помощью одной из многих команд. Произвольность доступа подразумевает, что процессор в любой момент может считать или записать любой байт (слово, двойное слово...) из этой памяти. 32-разрядные процессоры x86 способны адресовать до 4 Гбайт физической памяти (кроме 386SX, урезанных до 16 Мбайт), а процессоры P6 (Pentium Pro, Pentium II и старше) в режиме расширения адреса — до 64 Гбайт. Из этого потенциально доступного пространства именно для оперативной памяти используется только часть: большинство системных плат пока ограничивают объем устанавливаемого ОЗУ на уровне 256 Мбайт–1 Гбайт. В этом же пространстве располагается и постоянная память — ПЗУ, или ROM (Read Only Memory), которая в обычной работе только читается. В ПЗУ располагается BIOS (базовая система ввода-вывода) компьютера и некоторые другие элементы.
Следующий уровень в иерархии — дисковая память. В отличие от ОЗУ и ПЗУ, для обращения к любому элементу, хранящемуся в дисковой памяти, процессор должен выполнить некоторую процедуру или подпрограмму, код которой находится в оперативной или постоянной памяти. Дисковая память является блочной — процедура доступа к этой памяти оперирует блоками фиксированной длины (обычно это сектор с размером 512 байт). Процедура доступа способна лишь скопировать целое количество образов блоков из оперативной (или постоянной) памяти на диск или обратно. Дисковая память является основным хранилищем файлов с программами и данными. Кроме того, она используется и для организации виртуальной оперативной памяти: не используемый в данный момент блок информации (страница) из оперативной памяти выгружается на диск, а на его место с диска подкачивается страница, требуемая процессору для работы.
Последняя ступень иерархии — память на внешних носителях, или просто внешняя память. Она, так же, как и дисковая, является хранилищем файлов, и доступ к ней осуществляется поблочно.
Мы перечислили программно-видимую часть “айсберга” памяти — доступную произвольно или поблочно, прямо или последовательно. Есть еще и “подводная” часть — кэш-память. Оперативная память по меркам современных процессоров обладает слишком низким быстродействием, и, обратившись за данными, процессор вынужден простаивать несколько тактов до готовности данных. Начиная с процессоров 80386, оперативную память стали кэшировать (эта идея использовалась и в “древних” больших машинах, где было СОЗУ — сверхоперативное ЗУ). Идея кэширования ОЗУ заключается в применении небольшого (по сравнению с ОЗУ) запоминающего устройства — кэш-памяти с более высоким быстродействием. Небольшого — потому, что по технико-экономическим причинам большой объем очень быстрой памяти обходится слишком дорого. В этой памяти хранится копия содержимого части ОЗУ, к которой в данный момент процессор наиболее интенсивно обращается. Определять, какую часть содержимого ОЗУ копировать в данный момент времени, должен контроллер кэша. Он это может делать, исходя из предположения о локальности обращений к данным и последовательности выборок команд. Кэш-память не дает дополнительного адресуемого пространства, ее присутствие для программы незаметно.
Память до сих пор остается одним из самых "таинственных инструментов" современного компьютера, и для пользователя сложность управления и организации работы этой неотъемлемой составляющей любого компьютера растет в геометрической прогрессии. Во времена 386-х и 486-х основные трудности и премудрости заключались лишь в правильном выборе модулей FPM. Затем были выпущены более совершенные модули EDO, а BIOS Setup стали "обзаводиться" настройками, позволяющими хоть как-то управлять режимами работы памяти. С появлением модулей SDRAM организация подсистемы памяти лишь с небольшими изменениями (и постоянными усложнениями) дошла до наших дней. Поэтому опорным пунктом предлагаемой нами "практической теории" будет память PC100, продержавшаяся достаточно долго, да и сейчас нередко встречающаяся. Но сначала поговорим немного об общепринятых методах определения производительности подсистемы памяти.
Собственно говоря, сама методика включает всего три способа, которые для простоты понимания условно назовем так: прямые (низкоуровневые), синтетические и относительные. Первые включают в себя вычисление скорости записи в память, чтения из памяти, иногда еще копирования данных специализированными программами. Наиболее известные и часто применяемые -- CacheMem, Cache Burst 32, причем производительность именно памяти определяется при размере блока данных, обязательно превосходящем объем процессорных кэшей всех уровней. Обе эти программы являются достаточно гибкими инструментами, кроме скорости и латентности памяти, с их помощью можно найти значения этих же параметров для кэшей CPU. Немаловажен и тот факт, что продемонстрированные ими результаты не противоречат друг другу. Однако Cache Burst 32 все же имеет ряд преимуществ в плане функциональности по сравнению с CacheMem, поэтому в большинстве случаев мы оперируем именно его показаниями.
Вторая (синтетическая) группа тестов представляет собой подтесты из популярных пакетов, определяющие производительность подсистемы памяти. Наиболее распространенные -- PCMark, AIDA, SiSoft Sandra. Хотя последние два пакета отличаются от PCMark тем, что отображают свои результаты не в "марках", а, подобно "низкоуровневым" тестам, в "мегабайтах в секунду", но нам неизвестны алгоритмы определения производительности. Кроме того, полученная с их помощью информация иногда, мягко говоря, далека от реальности. Однако с точки зрения обычного пользователя ценность информации, выдаваемой этими пакетами, достаточно велика, а встроенную систему "бенчмарков" можно рассматривать как "приятную добавку". Тест PCMark сложно назвать информативным в отношении производительности подсистемы памяти, да и вообще он в этом амплуа уже давно не используется. Скорее, это "мерило крутизны", но ведь именно к этому и стремились разработчики, так что все честно.
Третий, наиболее интересный и профессиональный метод определения производительности подсистемы памяти - сравнительный. Что имеется в виду? Когда для тестирования применяются реальные задачи, нагружающие память, а заключения делаются исходя из сравнительных показателей быстродействия нескольких систем, отличающихся организацией подсистемы памяти. Как правило, это комплекс тестов, включающий в себя игровые пакеты, работу архиваторов, сложную обработку растровых изображений, иногда медиакодирование. Данный список можно расширять, но на практике даже этот набор уже считается достаточно серьезным.
К примеру, есть необходимость определить, насколько один чипсет "быстрее" другого (относящегося к той же платформе). По показаниям "прямых" тестов можно сделать некоторые предположения, посредством сопоставления производительности в реальных задачах с низкоуровневыми набросками находятся отличия в быстродействии, и главное -- их причина! Затем с помощью имеющихся данных можно выполнять синтетические тесты -- тестировать не ими, а именно их, для определения достоверности результатов. Хотя это похоже на шутку, но для многих подобная деятельность (т. е. разоблачение "продажных" изготовителей тестов производительности) действительно становится неким хобби.
Но вернемся к теории. Самое время поговорить, чем же отличаются модули нового поколения с индексом PC3200 от "былых" PC100 и какие за это время произошли изменения. Ранее цифра "100" означала реальную частоту шины памяти. Поскольку контроллеры памяти были 64-битные (т. е. 8-байтовые), получаем теоретическую пропускную способность 100 x 8=800 MBps. В современных модулях как раз наоборот -- указывается та самая максимальная пропускная способность, т. е. "3200" -- это 3200 MBps. Чтобы "уравнять" прежнюю и нынешнюю организацию памяти, рассмотрим, какому бы ранее индексу соответствовала современная память DDR400 (PC3200), работающая в двухканальном режиме.
Реальная частота шины при DDR400 составляет 200 MHz, двойная передача данных за один такт (DDR) теоретически эквивалентна повышению частоты до 400 MHz, двухканальный (128 бит) контроллер памяти, благодаря одновременному считыванию с обоих каналов, увеличивает пропускную способность еще вдвое. Иными словами, в результате "спроецировав" PC3200 при 128-битном доступе на частоты, мы имеем 200x2x2=800 MHz. Следовательно, теоретическая производительность РС3200 оказалась соответствующей обычной памяти SDRAM, условно работающей на частоте 800 MHz, т. е. PC800 по "старым" стандартам. Если провести аналогию с жизнью реальной, то при прочих равных условиях показанное быстродействие PC800 было бы значительно выше, нежели двухканальной PC3200, по причине значительно более простой организации, а следовательно, меньших задержек. Но, к сожалению, такие частоты для SDRAM просто недостижимы за разумную цену, вот и приходится инженерам "выкручиваться" с помощью различных прогрессивных технологий повышения производительности.
Разобравшись на "скорую руку" со стандартами, перейдем к основным параметрам подсистемы памяти, имеющим отношение к быстродействию. Два термина мы уже затронули -- это теоретическая и реальная пропускная способность. Первая, как несложно догадаться, равна математически вычисленной максимальной скорости передачи данных, которую реализует шина. Говоря о реальной пропускной способности, обычно имеют в виду максимально достигнутую скорость передачи данных в памяти, продемонстрированную специализированными тестовыми пакетами. Далее идут наиболее часто встречающиеся термины -- "скорость чтения", "скорость записи". Определяются эти величины также "мегабайтами в секунду" и показывают производительность при соответствующих операциях с памятью. Так вот, очень важно знать, каким образом эти величины высчитываются и какие процессорные ресурсы при этом привлекаются. Быстродействие в режиме 32-битной передачи данных с задействованием регистров FPU будет значительно меньше, нежели при 128-битной передаче с использованием команд SSE/SSE2.
Также одним из наиболее важных параметров является латентность -- время реакции памяти, иными словами, наблюдаемая инерционность при изменении режимов ее работы. Или упрощенно: латентность -- это, по сути, значение задержки между посылкой команды на чтение (запись) некой ячейки (блока ячеек) памяти и выполнением этой команды. Вообще, по поводу терминов и определений латентности существует достаточно много теорий. Попробуем высказать нашу точку зрения в отношении данного параметра. Латентность -- это мера неэффективности (поскольку большее значение является худшим показателем) использования подсистемы памяти. Более детально и наглядно со всеми этими параметрами и значениями нам поможет разобраться табл. 1.
Платформа
Теоретическая пропускная способность, MBps
Частота шины, MHz
Скорость чтения из памяти, MBps
Скорость записи в память, MBps
КПД исполь-зования шины
Показатель "полезной" производи- тельности под- системы памяти
Сравнительный коэффициент эффективности памяти

BX PC100
800
100
487
167
0,62
3052
1,00

i815 PC133
1066
133
732
210
0,69
3173
0,88

nForce2 DDR400 (64)
3200
400
1891
1109
0,90
18264
2,18

nForce2 DDR400 (128)
6400
400
1867
1198
0,46
18693
1,14

i865 DDR400 (64)
3200
400
2582
1118
0,92
19904
2,44

i875 DDR400 (64)
3200
400
2644
1126
0,90
23129
2,77

i865 DDR400 (128)
6400
400
2996
1202
0,73
23510
2,27

i875 DDR400 (128)
6400
400
3344
1250
0,78
30719
3,17

Athlon 64 DDR400 (64)
3200
400
2817
4505
0,90
46108
5,54

Таблица 1 - Основные показатели производительности подсистемы памяти на различных платформахДля того, чтобы разобраться с таблицей 1 нам поможет таблица 2
Таблица 2 - Формулы вычисления коэффициентов
Средневзвешенный показатель быстродействия памяти =

КПД использования шины памяти = (Реальная пропускная способность) / (Теоретическая пропускная способность)

Сравнительный коэффициент эффективности контроллера памяти = (Показатель "полезной" производительности подсистемы памяти) / (Частота шины памяти) x (КПД использования шины памяти)


Показатель "полезной" производительности подсистемы памяти является неким нашим "марком", характеризующим общее быстродействие системы с учетом основных параметров памяти: скорости записи/чтения и латентности. Ударение следует сделать именно на слово "полезной", если взять два любых значения из этого столбца и найти их частное, можно узнать, насколько будет отличаться "повседневная" производительность подсистем памяти.
Как можно заметить, nForce2 в двухканальном режиме оказался в два раза менее продуктивным, чем при 64-битном доступе. Ищем этому объяснение в нашей таблице -- вдвое меньший КПД применения шины при практически идентичных остальных показателях производительности. Отсюда вывод: двухканальность для любых Athlon XP -- "приятная опция", скорее тешащая собственное самолюбие, нежели реально востребованная. С платформой современных Pentium 4 ситуация более интересная и неоднозначная. Во-первых, разница между "честным" i865РЕ (без технологии PAT) и i875P все же есть и весьма значительная (оба этих чипсета были представлены платами Abit -- соответственно AI7 и IC7-MAX3, относящимися к новому поколению продуктов данного производителя и очень схожими по функциональности и настройкам BIOS Setup). Наверное, самое примечательное то, что даже сравнительная эффективность при переходе в 128-битный режим у 875P возрастает, в то время как у 865PE снижается. Кстати, любопытнейший факт -- у одноканального nForce2 Ultra 400 и двухканального 875P получился одинаковый коэффициент эффективности, следовательно, "флагманский" чипсет от Intel также хорошо нагружает шину пропускной способностью в 6400 MBps, как логика от NVidia шину в 3200 MBps. Вот еще одно доказательство того, почему последнее поколение Pentium 4 превосходит Athlon XP по производительности. Мы уже не раз в предыдущих обзорах обсуждали эффективность встроенного контроллера памяти в новых процессорах серии AMD64. Теперь с помощью таблицы находим яркое тому подтверждение: скорость чтения/записи -- практически как у двухканального 865, латентность вообще без комментариев. Результат налицо даже при одноканальном доступе -- производительность подсистемы памяти на голову выше всех конкурентов. Но тут хочется высказать некоторое недоумение: двухканальный контроллер Athlon 64 (в отличие от Athlon XP, у которого максимальная частота процессорной шины составляет 400 MHz) пришелся бы здесь как нельзя кстати. Да и, как можно предположить, с его реализацией тоже особых проблем возникнуть не должно (такое решение уже достаточно успешно применяется на процессорах Opteron и Athlon 64 FX-51). Но AMD с этим по каким-то причинам пока не спешит, вполне возможно, что "десерт" припасен на будущее.
Для проверки того, насколько полученные данные являются масштабируемыми (т. е. в каких случаях подобные закономерности сохранятся), было проведено несколько экспериментов. Вместо основного Pentium 4 3,2 GHz мы решили посмотреть, какую скорость покажет идентичная система с чипсетом i875P, но с процессором Pentium 4 2,4 GHz (шина 800 MHz). Как выяснилось, они оказались практически одинаковыми. То же самое можно сказать и о Athlon XP, в котором мы понизили множитель с 11 до 8, сравнительные показатели быстродействия подсистемы памяти остались теми же. Отсюда вывод: производительность подсистем памяти на платформах с однотипными процессорами, имеющими одинаковые частоты FSB, будет почти равной. Заметьте, мы сейчас говорим исключительно о памяти, а не о системе в целом.
Тайминги
Итак, основных таймингов собственно пять, и это вторая по значимости (после частоты) характеристика модулей памяти, прошитая в SPD. Прежде чем их перечислить, нужно разобраться с некоторыми понятиями:
CAS (#CAS) -- Column Access Strobe, выставление адреса столбца;
RAS (#RAS) -- ROW Access Strobe, выставление адреса строки;
Latency -- время задержки;
DRAM CAS Latency (TCL, CL) -- количество тактов между адресацией столбца и поступлением данных в выходные регистры (меньше--лучше);
DRAM RAS to CAS Delay (TRCD, RCD) -- количество тактов между выставлением адреса строки и считыванием адреса столбца, т. е. время, необходимое для переключения между строками и столбцами (меньше--лучше);
DRAM RAS Precharge time (TRP, RP) -- определяет, сколько тактов шины памяти понадобится для предварительной регенерации всех ячеек строки, для того чтобы она могла быть считана полностью (меньше--лучше);
DRAM RAS Active Time (Active to Precharge Delay, Precharge Wait State, Row Active Delay, Row Precharge Delay, Precharge Delay, Tras) -- задержка в тактах между адресациями двух произвольных строк памяти, т. е. необходимое время в тактах для начала выполнения любой операции с памятью (меньше--лучше);
DRAM Command Rate (CMD) -- время определения физического модуля памяти и непосредственно чипа на нем с необходимой областью данных (меньше--лучше);
DRAM Burst Length -- определяет, сколько пакетов данных будет передано за один цикл (больше--лучше).
Собственно, на этом основная часть заканчивается. Однако на многих материнских платах BIOS Setup позволяет менять еще несколько "второстепенных" типов таймингов и параметров регенерации, которые также могут помочь с получением несколько бoльшей производительности при довольно продолжительном времени, затрачиваемом на манипулирование ими.
Описав действие таймингов, было бы странным не рассмотреть их влияния на производительность (рисунок 1). Чтобы уменьшить погрешность измерений, мы решили взять два крайних случая -- тайминги 8-4-4-3 как наименее приемлемые и 5-2-2-2 как самые "скоростные" соответственно -- и посмотреть, насколько изменится реальная производительность современных платформ в большинстве игровых пакетов. Сразу ответим, почему именно игровых. В первом ряду экспериментаторов с настройками BIOS Setup всегда стоят геймеры, пытаясь любыми средствами поднять количество fps своих игровых компьютеров. Кроме того, как оказалось, достаточно мало неигрового ПО способно "адекватно" отреагировать на изменение таймингов. Во-первых, большинство "серьезных" пакетов, скорость работы которых зависит от быстродействия памяти, более восприимчивы к изменению частоты ее функционирования, а немного возросшая производительность в той малой доле "тайминго-зависимого" ПО (например, архиваторы), как правило, некритична. Многие из нас также спокойно "переживут" процесс архивирования в 5 минут и вряд ли будут особо "напрягаться" для того, чтобы это время сократилось до 4:40.

Рисунок 1 – Сравнительный коэффициент эффективности контролера памяти
Возросшую производительность мы приводим не в абсолютных величинах, а в процентах, тем самым сокращая количество диаграмм. Нами отслежен прирост в наиболее популярных играх в разрешении 1024 x 768 x 32 с максимальной детализацией. На графике видно еще одно косвенное подтверждение полезности и адекватности коэффициентов, полученных в нашей таблице, -- чудовищный рост быстродействия у Athlon 64 при переходе с 8-4-4-3 на 5-2-2-2: 16% реальной (не синтетической) скорости от переключения таймингов -- уже настоящая сенсация. Опять отличился i875 в двухканальном режиме: при его пока лучшей в общем зачете производительности лишние 5% -- это тоже очень много. Замыкает список, хоть и с незначительным отставанием, платформа Athlon XP c двухканальным nForce2, для которой значения таймингов особой роли не сыграли.

Рисунок 2 – Приведененная латентность
Хотя мы и не приводим отдельных результатов по влиянию того или иного тайминга на быстродействие, скажем следующее: наиболее важные параметры -- CAS Latency и RAS to CAS (впрочем, как и наиболее проблематичные). Если есть возможность изменять DRAM Command Rate, то переключение с 2Т на 1Т также значительно поднимет производительность. В некоторых BIOS Setup можно устанавливать тайминги, выходящие за общепринятые нормы, к примеру доступны значения 1,5 для CAS Latency или 4 для RAS Active Time. Кроме того, во многих случаях эти значения даже удастся выставить и запустить систему, но на самом деле никаких 1,5 вы не получите. Вот тут мы подошли к еще одному очень важному вопросу о соответствии настроек BIOS Setup и реальных показателей. Проверить существующие установки можно с помощью информационных пакетов -- тех же Sandra и AIDA, но лучшей и самой достоверной утилитой является, пожалуй, свободно распространяемая программа CPU Z, которая, помимо таймингов, показывает и содержимое SPD. Также далеко не все материнские платы корректно устанавливают напряжения и тайминги в режиме "By SPD". К примеру, наши модули Corsair PC3200, стандартно имеющие тайминги 6-2-2-2 и вольтаж 2,6 В, в некоторых случаях определялись как 7-3-3-2,5 с напряжением 2,5 В. Были и "обратные" варианты -- например, установка режимов 5-2-2-2 по умолчанию.
Выводы
Как мы смогли убедиться, частоты, двухканальность, тайминги -- все это понятия достаточно условные и относительные, сами по себе еще ничего не определяющие. Например, одноканальный контроллер памяти у Athlon 64 оказался на сегодняшний день самым эффективным, в то время как в более серьезном по спецификациям чипсете nForce2 наличие второго канала -- лишь дань моде. Если вспомнить неоднократно рассматриваемый нами чипсет ATI 9100IGP, то даже в случае использования с ним самого мощного процессора Intel Pentium 4 3,2 GHz (шина 800 MHz) практически не будет иметь значения ни количество каналов, ни установленные тайминги, ни применение встроенного или внешнего видео -- и при всем при этом чипсет действительно хороший.
При изменении таймингов на разных платформах под Pentium 4 и Athlon XP реакция подсистемы памяти весьма различается. В первом случае повышаются пропускная способность и скорость чтения/записи, во втором -- значительно уменьшается латентность при сохранении других параметров, но прирост реальной производительности при этом практически одинаков. Системы, чипсеты которых умеют работать с регистровой памятью с возможностью коррекции ошибок, считаются самыми надежными, однако существуют серверные решения, где память вообще организована наподобие RAID-массива уровня 5 и поддерживает горячую замену модулей. Следовательно, для того чтобы уверенно говорить о чем-либо, касающемся подсистемы памяти, нужно учитывать огромное количество факторов.
Исходя из всего этого мы не можем однозначно ответить на один из наиболее часто задаваемых вопросов, к примеру, в каком случае система будет работать быстрее: с процессором Pentium 4 (FSB 533 MHz) -- с памятью DDR333 и "плохими" таймингами либо с DDR266, но с "хорошими"? Чтобы дать ответ, нужно рассмотреть как минимум пару десятков типичных случаев (о нюансах мы даже не говорим), да и то полученная информация будет лишь первым приближением к истине, не более того.
При поиске ответа на один вопрос, касающийся работы современных подсистем памяти, возникает еще два, для тех двух -- еще по два и т. д. Если мы попробуем "копнуть" затронутые в данной статье проблемы еще чуточку глубже, то размер ее тут же возрастет многократно. Мы же пытались больше изложить методику по работе с памятью и дать информацию для собственного "полета мысли" и возможного проведения самостоятельных исследований.
Таблица 3 - Конфигурации тестовых систем
Платформа
Intel Pentium 4 3,2 GHz
AMD Athlon 64 3200+
AMD Athlon XP 3200+

Материнская плата
Abit IC7-MAX3 (чипсет i875P), Abit AI7 (чипсет i865PE)
ASUS K8V Deluxe (чипсет VIA K8T800)
ASUS A7N8X-E Deluxe (чипсет nForce2 Ultra 400)

Память
Corsair TwinX PC3200 (2 x 256 MB)

Видеокарта
ASUS Radeon 9800XT 256 MB

Жесткий диск
Western Digital WD300BB 30 GB 7200 об/мин

ОС
Windows XP Professional SP1



Введення
До 2000 року в світ персональних комп'ютерів ввійшло багато нових архітектур високошвидкісної пам'яті. З кінця 1997 року по початок 1998 основна пам'ять PC здійснює еволюцію від EDO RAM до SDRAM - синхронну пам'ять, що, як очікується буде домінувати на ринку з кінця 1997 року. Графічні і мультимедійні системи в який сьогодні застосовується RDRAM перейде під кінець року на Concurent (конкурентну) RDRAM. Отже, у період між 1997 і 2000 роком розвивалися п'ять основних технологій:
SDRAM II (DDR);
SLDRAM (SyncLink);
RAMBus (RDRAM);
Concurent RAMBus;
Direct RAMBus.
Графік, приведений нижче, приблизно демонструє час появи і застосування майбутніх технологій пам'яті.

Украй складно пророчити, на чому зупиниться прогрес. Усі десять найбільших виробників пам'яті, такі як Samsung, Toshiba і Hitachi, що розробляють Direct RDRAM, також продовжують розвивати агресивну політику, спрямовану на розвиток альтернативних технологій пам'яті наступних поколінь, таких як DDR і SLDRAM. У зв'язку з цим утворилося зацікавлене об'єднання конкурентів. Проте, незважаючи на деяку невідомість, спробуємо дати загальний огляд і пояснення того, що і де буде застосовуватися найближчим часом.
У першій частині матеріалу описуються причини, що змушують переходити до нових технологій пам'яті. В другій частині статті приводиться опис шести основних технологій, їхньої подібності і розходження.
Необхідність збільшення продуктивності системи пам'яті.
Швидкий розвиток апаратних засобів і програмного забезпечення привело до того, що питання ефективності встає на перше місце. Фактично, кілька років назад, Гордон Мур, президент корпорації Intel, пророчив, що потужність центрального процесора в персональному комп'ютері буде подвоюватися кожні 18 місяців (Закон Мура). Мур виявився правий. З 1980 року до дійсного моменту тактова частота процесора Intel, встановленого в персональному комп'ютері виросла в 60 разів (з 5 до 300MHz). Однак, за те ж час, частота, на якій працює системна пам'ять зі сторінковою організацією (FPM), виросла усього в п'ять разів. Навіть застосування EDO RAM і SDRAM збільшило продуктивність системи пам'яті усього в десять разів. Таким чином, між продуктивністю пам'яті і процесора утворився розрив. У той час як процесори удосконалювалися в архітектурі, виробництво пам'яті перетерплювало лише технологічні зміни. Ємність однієї мікросхеми DRAM збільшилася з 1Мбит до 64Мбит. Це дозволило нарощувати обсяг застосовуваної в комп'ютерах пам'яті, але зміни технології в плані збільшення продуктивності DRAM не відбулося. Коротше кажучи, швидкість передачі не збільшилася слідом за обсягом.
Що стосується потреб, то в наслідку застосування нового програмного забезпечення і засобів мультимедіа, потреба у швидкодіючій пам'яті наростала. Зі збільшенням частоти процесора, і додатковим використанням засобів мультимедіа новим програмним забезпеченням, не далекий той день, коли для нормальної роботи PC будуть необхідні гігабайти пам'яті. На цей процес також повинне уплинути впровадження і розвиток сучасних операційних систем, наприклад Windows NT.
Щоб перебороти виниклий розрив, виробники апаратних засобів використовували різні методи. SRAM (Static RAM) застосовувався в кеші для збільшення швидкості виконання деяких програм обробки даних. Однак для мультимедіа і графіки його явно недостатньо. Крім того, розширилася шина, по якій здійснюється обмін даними між процесором і DRAM. Однак тепер ці методи не справляються з наростаючими потребами у швидкості. Тепер на перше місце виходить необхідність синхронізації процесора з пам'яттю, однак, існуюча технологія не дозволяє здійснити цей процес.
Отже, виникає необхідність у нових технологіях пам'яті, що зможуть перебороти виниклий розрив. Крім SDRAM, це DDR, SLDRAM, RDRAM, Concurrent RDRAM, і Direct RDRAM.
Шість технологій пам'яті майбутнього. Визначення
SDRAM
Synchronous (синхронна) DRAM синхронізована із системним таймером, що керує центральним процесором. Годинник, що керують мікропроцесором, також керують роботою SDRAM, зменшуючи тимчасові затримки в процесі циклів чекання і прискорюючи пошук даних. Ця синхронізація дозволяє також контролеру пам'яті точно знати час готовності даних. Таким чином, швидкість доступу збільшується завдяки тому, що дані доступні під час кожного такту таймера, у той час як у EDO RAM дані бувають доступні один раз за два такти, а в FPM - один раз за три такти. Технологія SDRAM дозволяє використовувати множинні банки пам'яті, що функціонують одночасно, додатково до адресації цілими блоками. SDRAM уже знайшла широке застосування в діючих системах.
SDRAM II (DDR)
Synchronous DRAM II, чи DDR (Double Data Rate - подвоєна швидкість передачі даних) - наступне покоління існуючої SDRAM. DDR заснована на тих же самих принципах, що і SDRAM, однак включає деякі удосконалення, що дозволяють ще збільшити швидкодію. Основні відмінності від стандартного SDRAM: по-перше використовується більш "продвинута" синхронізація, відсутня в SDRAM; а по-друге DDR використовує DLL (delay-locked loop - цикл із фіксованою затримкою) для видачі сигналу DataStrobe, що означає приступність даних на вихідних контактах. Використовуючи один сигнал DataStrobe на кожні 16 виводів, контролер може здійснювати доступ до даних більш точно і синхронізувати вхідні дані, що надходять з різних модулів, що знаходяться в одному банку. DDR фактично збільшує швидкість доступу вдвічі, у порівнянні з SDRAM, використовуючи при цьому ту ж частоту. У результаті, DDR дозволяє читати дані по висхідному і падаючому рівню таймера, виконуючи два доступи за час одного звертання стандартної SDRAM. Додатково, DDR може працювати на більшій частоті завдяки заміні сигналів TTL/LVTTL на SSTL3. DDR почне вироблятися в 1998 році.
SLDRAM (SyncLink)
SLDRAM, продукт DRAM-консорціуму, є найближчим конкурентом Rambus. Цей консорціум поєднує дванадцять виробників DRAM. SLDRAM продовжує подальший розвиток технології SDRAM, розширюючи четирибанкову архітектуру модуля до шістнадцяти банків. Крім того, додається новий інтерфейс і керуюча логіка, дозволяючи використовувати пакетний протокол для адресації комірок пам'яті. SLDRAM передає дані так само як і RDRAM, по кожнім такті системного таймера. SLDRAM у даний час знаходиться в стадії розробки, а промислове виробництво очікується в 1999 році.
RDRAM
RDRAM - багатофункціональний протокол обміну даними між мікросхемами, що дозволяє передачу даних по спрощеній шині, що працює на високій частоті. RDRAM являє собою інтегровану на системному рівні технологію. Ключовими елементами RDRAM є:
модулі DRAM, що базуються на Rambus;
осередку Rambus ASIC (RACs);
схема з'єднання чипов, називана Rambus Channel.
RamBus, уперше використаний у графічних робочих станціях у 1995 році, використовує унікальну технологію RSL (Rambus Signal Logic - сигнальна логіка Rambus), що дозволяє використання частот передачі даних до 600MHz на звичайних системах і материнських платах. Існує два види Rambus - RDRAM і Concurrent RDRAM. Мікросхеми RDRAM уже виробляються, а Concurrent RDRAM буде запущена у виробництво наприкінці 1997 року. Третій вид RDRAM - Direct RDRAM, знаходиться в стадії розробки, а його початок її виробництва планується в 1999 році.
Rambus використовує низковольтові сигнали і забезпечує передачу даних по обох рівнях сигналу системного таймера. RDRAM використовує 8-бітовий інтерфейс, у той час як EDO RAM і SDRAM використовують 4-, 8- і 16-бітовий інтерфейс. RAMBUS запатентована 11 найбільшими виробниками DRAM, що забезпечують 85% усього ринку пам'яті. Samsung у даний час проектує 16/18-Mбитную і 64-Mбитную RDRAM. Toshiba також вже робить 16/18-Mбитную RDRAM і розробляє 64-Mбитную RDRAM.
У 1996 році консорціум RDRAM одержав підтримку з боку корпораціїIntel, і нові чипсеты фірми Intel будуть підтримувати технологію RDRAM з 1999 року. В даний час ігрові відеоприставки Nintendo 64 використовують технологію Rambus для 3D-графіки і звуку високої якості. Стандартні PC виробництва Gateway і Micron підтримують карти фірми Creative Labs c Rambus на борті.
Concurrent Rambus
Concurrent Rambus використовує поліпшений протокол, що показує гарну швидкодію навіть на маленьких, випадково розташованих блоках даних. Concurrent Rambus застосовується для 16/18/64/72-Mбитных модулів RDRAM. Це друге покоління RDRAM, відрізняється високою ефективністю, необхідної для графічних і мультимедийных додатків. У порівнянні з RDRAM, застосований новий синхронний рівнобіжний протокол для що чергуються чи перекриваються даних. Ця технологія дозволяє передавати дані зі швидкістю 600Мб/сек на канал і з частотою до 600MHz із синхронним рівнобіжним протоколом, що ще підвищує ефективність на 80%. Крім того ця технологія дозволяє зберегти сумісність з RDRAM минулого покоління. Планується, що в 1998 році, завдяки додатковим поліпшенням, швидкість передачі може досягти 800MHz.
Direct Rambus
Технологія Direct Rambus - ще одне розширення RDRAM. Direct RDRAM мають ті ж рівні сигналів (RSL: Rambus Signaling Level - рівень сигналів Rambus), але більш широку шину (16 біт), більш високі частоти (вище 800MHz) і поліпшений протокол (ефективність вище на 90%). Однобанковий модуль RDRAM буде забезпечувати швидкість передачі 1.6Гбайт/сек, двухбанковый - 3.2Гбайт/сек. Direcr Rambus використовує два 8-бітних канали для передачі 1.6Гбайт і 3 канали для одержання 2.4Гбайт.
Порівняння
SDRAM
DDR SDRAM
SLDRAM
RDRAM
Concurrent RDRAM
Direct RDRAM

Швидкість передачі даних
125 MB/sec
200 MB/sec
400 MB/sec
600 MB/sec
600 MB/sec
1.6 GB/sec

MHz
125 MHz
200 MHz
400 MHz
600 MHz
600 MHz
800 MHz

Стандарт
JEDEC
JEDEC
SLDRAM Consortium
RAMBUS
RAMBUS
RAMBUS

Час появи
1997
1998
1999
1995
1997
1999

Живлення
3.3V
3.3V
2.5V
3.3V
3.3V
2.5V