Джим Гилл
Какая из технологий будет доминировать в следующем поколении быстродействующей памяти большой емкости? Первенство может выиграть Direct Rambus, а может и double-data-rate (DDR) SDRAM. В зависимости от того, какой информацией обладает потребитель и когда он эту информацию получил, его предпочтения могут быть смещены в ту или иную сторону.
Продолжающаяся битва технологий уже сформировала два противоположных лагеря, и многим компаниям приходится ограждать себя от потенциальных проблем, поддерживая од-новременно обе воюющие стороны. Кроме того, большинство подобных фирм, в частности производители сетевого оборудования, уже стоят перед сложным выбором, какую из конкурирующих технологий заложить в основу новой продукции. Для начинающих компаний правильность выбора и "верность курса" могут вознести на гребень успеха или заставить потерять все.
Несмотря на большой поток публикаций, посвященных Direct Rambus и DDR SDRAM, только сравнительно недавно, в связи с выпуском чипсета 820 INTEL и появлением первых образцов DDR SDRAM, появилась возможность прямых сравнений, проведенных специалистами. Итак, как обе технологии реально выглядят с точки зрения дизайнерских перспектив? Какая из них проще в реализации и лучше соответствует системным требованиям, но в тоже время отлажена до степени реального применения в коммерческих проектах, требующих скорейшего выхода продукции на рынок?
В течение последних 1,5 лет автор статьи участвовал в разработке двух проектов с применением Direct Rambus и DDR SDRAM для двух различных фирм. Оба заказчика представляли собой известные компании по производству сетевого оборудования, предъявлявшие жесткие требования к подсистемам памяти. История этих двух проектов представляет собой интересное и поучительное изложение от лица автора о непрекращающейся борьбе двух технологий.
С бурным развитием Интернета и сферы телекоммуникаций за несколько последних лет, появилось огромное количество новшеств в ATM-технологиях, гигабитных маршрутизаторах и в оп-товолоконном сетевом оборудовании. Ожидается, что в течение следующих нескольких лет сфера телекоммуникаций отберет себе существенную долю рынка памяти у сегодняшнего главного потребителя памяти компьютеров (РС). Еще недавно Rambus обозначил телекоммуникации как новый целевой рынок, и уже сегодня компания собирается перешагнуть барьеры РС.
В области коммуникационного оборудования быстродействие и временные задержки памяти не являются основополагающими ориентирами. Временные параметры стандартной SDRAM памяти вполне соответствуют требованиям, выдвигаемым современными сетевыми контроллерами и коммутаторами. Основная проблема здесь пропускная способность памяти, или, если быть более точным, ее удельное значение на вывод. Типичный пример шасси с множеством отдельных плат. В то время как вся система может требовать большого объема памяти, каждая отдельная плата имеет относительно небольшое количество (к примеру, около 32 Мбайт) быстрого ОЗУ с высокой пропускной способностью.
Рассмотрим подробней, как такой тип памяти используется в сетевых коммутаторах. Возьмем к примеру ATM, функционирующий в коннектно-ориентированном (connection-oriented) режиме передачи. Иными словами, этот режим означает, что в отличие от TCP/IР, сквозное соединение должно быть установлено прежде, чем начнется передача информационного пакета. После установления соединения, в зависимости от типа выполняемой операции, может потребоваться передача большого объема информации через коммутатор. Следовательно, интерфейс памяти обязан за весьма короткий промежуток времени обеспечить чтение и обратную запись больших блоков данных.
Другой вариант использования такой памяти связан с временным хранением содержимого указателей блока данных в момент коммутации, когда коммутатор решает, что делать с самими данными.
Последний пример работа нескольких модулей, разделяющих один и тот же общий ресурс памяти. В общем, для каждого модуля в отдельности не требуется быстрое ОЗУ, но, учитывая, что современный уровень интеграции в микроэлектронике позволяет разместить подобные модули на одном кристалле, система будет в целом характеризоваться довольно высокими требованиями к памяти и к удельному значению пропускной способности на вывод.
Даже учитывая то, что сегодня существуют типы корпусов с количеством выводов, превышающим несколько сотен, этого явно недостаточно для многих применений, таких как полнодуплексная передача и коммутация потоков данных или одновременная работа множества модулей, использующих внешнюю память. Для таких сетевых приложений не подходит и single-data-rate (SDR) SDRAM, которая, несмотря на приемлемые скоростные характеристики, не в состоянии обеспечить требуемое значение удельной пропускной способности. Пока существует только два альтернативных варианта: DDR SDRAM и Direct Rambus с пиковой полосой пропускания до 1,6 Гбайт/с.
Год или полтора назад выбор был очевиден. Единственным выбором из всего многообразия была только Direct Rambus. Теоретически она имела существенное преимущество перед имеющимся конкурентом SDR SDRAM. Однако по причине многочисленных задержек с чипсетом 820 INTEL, а также с продвижением до уровня промышленных образцов, Direct Rambus оказалась в невыгодном положении, по сравнению с новым соперником DDR SDRAM. Даже учитывая преимущества Direct Rambus перед DDR SDRAM по соотношению значения удельной пропускной способности (800 Мбайт/с против 200), во многих применениях разработчики предпочитают использовать именно DDR SDRAM. Почему? Я обнаружил ответ, участвуя в двух вышеуказанных проектах. Все определяется степенью коммерческого риска и стоимостью.
Басня о двух коммутаторах
Два года назад оба наших заказчика, запуская свои проекты, остановились, естественно, на Direct Rambus, как на наиболее логичном техническом выборе. Разумеется, выбор этой технологии был делом несколько рискованным, но сильных опасений не вызывал, посколь- ку на заднем плане Rambus громоздился могучий INTEL с его мощной поддержкой. Год спустя ситуация изменилась. Поздним летом 1999 года, уже после того как Rambus оттестировал свою продукцию, многие компании оказались в состояния тягостного ожидания нового чипсета INTEL 820 и массового производства памяти RDRAM. Прежний выбор уже не казался таким безопасным, а для ряда небольших фирм, заложивших Direct Rambus в свои единственные уникальные и неповторимые разработки, он стал казаться уже роковым. Кроме того, что RDRAM имела высокую стоимость (около 125 USD за 144-Мбит RDRAM при партии 100 штук), мелкие компании стали испытывать большие трудности с получением RDRAM от продавцов, поскольку последние были не очень заинтересованы небольшим объемом покупателей. Сравните это с миллионными партиями модулей памяти для рынка РС.
Мой первый проект требовал четырех отдельных каналов Rambus на кристалле. Преимущества Rambus, требующей небольшого числа выводов, были очевидны. Это был случай, когда несколько модулей клиентов со средней пропускной способностью (приблизительно от 400 до 500 Мбайт/с) разделяли общий ресурс памяти. В нашем Rambus-интерфейсе по заднему фронту осуществлялся арбитраж и формирование очереди запросов от различных клиентов. В результате определенных усовершенствований, не связанных напрямую с Rambus, кристалл пришлось разделить на два отдельных чипа с двумя каналами Rambus в каждом. Несмотря на еще большее уменьшение количества выводов, растущее беспокойство о туманном будущем Rambus привело к решению выбросить ее из проекта и заменить на SDRAM. Определяющим фактором в принятии этого решения оказалось снижение коммерческого риска для готового оборудования.
Работа над вторым моим проектом началась прошлой осенью. Исходные требования были схожими с первым проектом: требовался двухканальный скоростной интерфейс памяти на одном чипе. Изначально предполагалось создание пакета и опытных образцов, используя кристаллы FPGA. Техниче-ский выбор был также один применение DDR SDRAM, поскольку Rambus требует для своей реализации ASIC-чипов. Но требования изменились, и вскоре началась разработка ASIC, а не FPGA. И здесь история делает интересный поворот.
Интерфейс DDR SDRAM был в свою очередь выброшен из проекта и заменен на Rambus, но уже по другой причине. Оказалось, что у заказчика уже были наработки, связанные с Rambus для предыдущего и очень схожего чипа. Мы только слегка доработали уже существующий интерфейс, что позволило кардинально сократить время разработки пакета. Хотя применение Rambus было делом рискованным и дорогим, сэкономленное время для выхода продукта на рынок перевесило риск.
Рис. 1. 16-разрядная шина данных - Direct Rambus (a); 64-разрядная шина данных - DDR SDRAM (б)
В настоящее время водораздел между применением технологий DDR SDRAM и Rambus проходит, пожалуй, между тем, сколько выводов вы готовы выделить для достижения максималь-но пропускной способности (DDR SDRAM), и как много денег вы готовы выложить (Rambus). Пока Rambus дает максимальное соотношение тактовой частоты и ширины шины на вывод, но и стоит соответственно выше. Скорее всего, высокая стоимость Rambus ограничит ее применение только hi-end системами, по крайней мере, в этом году. DDR SDRAM, вероятно, займет рынок применений менее критичных к стоимости, но только до того времени, пока цены на Rambus не пойдут резко вниз. Однако следует учитывать, что стоимость применения RDRAM это не только стоимость самих чипов. Вам, скорее всего, придется заплатить еще за лицензию, дающую право использовать технологию Rambus. Вдобавок вам придется платить авторские комиссионные при продаже продукции, использующей технологию Rambus.
Что касается реальной производительности, то при равных условиях тесты показывают превосходство Rambus перед DDR SDRAM, работающей на частоте 133 МГц. Обратите внимание, что DDR SDRAM требуется большее оличество выводов для достижения такой же производительности.
Применение Direct Rambus
Итак, как насчет непосредственной реализации? Насколько трудны этапы разработки с участием каждого из этих интерфейсов? В июне 1998 года, когда я впервые начал знакомство с Direct Rambus, этот процесс был несколько ухабистым, особенно для тех, кто не имел большого опыта работы с интерфейсами памяти. Сначала Вы начинаете знакомиться с подсистемами Rambus, на каждую из которых существует своя собственная огромная документация. Подсистема состоит из следующих компонентов: основной контроллер (RMC Rambus Memory Controller), специализированная микросхема библиотечного макроядра (RAC Rambus ASIC Cell), канал (RC Rambus Channel), разъем для модулей (RRC Rambus RIMM Connector), модуль памяти (RIMM Rambus In-line Memory Module), генератор тактовых импульсов (DRCG Direct Rambus Clock Generator) и сами микросхемы памяти (RDRAM Rambus DRAM).
Есть на что посмотреть для начала, учитывая просто невообразимое количество технической документации.
Мы выяснили, что контроллер памяти RMC вполне отвечает нашим требованиям, хотя некоторые пользователи первых версий Direct Rambus проектировали свои собственные контроллеры для получения максимальной производительности. Будете ли вы разрабатывать свой RMC, зависит, безусловно, от ваших индивидуальных склонностей, возможностей и требований заказчика, но для большинства применений прекрасно подойдет и готовый контроллер RMC.
Важным моментом является то, что использование Rambus всегда предполагается на основе ASIC. Правда, не все поставщики ASIC поддерживают Rambus, поэтому ваш начальный выбор будет несколько ограничен. Все это необходимо учитывать, если вы хотите использовать FPGA для проектирования пакета, чтобы ускорить процесс разработки изделия. Главным фактором, обуславливающим применение ASIC, является макроядро Rambus ASIC (RAC), обеспечивающее формирование управляющих сигналов и сигналов синхронизации для памяти. При проектировании, RAC рассматривается как черный ящик, поскольку каждый поставщик ASIC имеет свою собственную реализацию макроядра. Главной функцией RAC является коммутация нового высокочастотного интерфейса RSL (Rambus Signaling Levels, позволяющей достичь рабочих тактовых частот до 800 МГц) и медленного CMOS-интерфейса ASIC. Кроме этого, ячейка RAC обеспечивает некоторые тестовые возможности, такие как сканирование и функция BIST, поддерживаемые поставщиками ASIC.
Вы можете установить необходимую вам скорость работы Direct Rambus. Внешний Rambus-канал может работать на частоте 300 или 400 МГц с соответствующими показателями для данных 600 и 800 МГц (данные тактируются двумя фронтами тактового сигнала).
Пока существует три типа RDRAM с разными скоростными характеристиками. Наиболее быстродействующая версия с 16-бит шиной данных (удвоенной, по сравнению с двумя первыми типами памяти) обеспечивает пиковую пропускную способность до 1,6 Гбайт/c.
Вообще, в течение последних полутора лет процесс проектирования для Direct Rambus стал гораздо более гладким и удобным. Все подсистемы Rambus сейчас существуют в виде скриптов на HDL, а большинство программных багов исправлено. Да и в основном, множество наших первоначальных проблем было связано с тем, что мы были одними из первых заказчиков, работавших с Direct Rambus в то время, когда Rambus только отлаживал свою технологию и начинал совместную деятельность с INTEL.
Следующий важный пункт инициализация. Direct Rambus требует довольно замысловатой инициализации с использованием программного кода хост-микропроцессора. Хотя аппаратная реализация довольно проста (трехпроводной последовательный интерфейс), наиболее сложным и требующим времени действием является верификация инициализации при моделировании. Хорошей новостью является то, что теперь Rambus поддерживает ее алгоритм, правда, на уровне HDL. Вам, скорее всего, потребуется программист для перевода кода на программное обеспечение высокого уровня.
Заключительное замечание касается минимального количества чипов DRAM, необходимых для совмещения системной и DRAM шины данных при заданном типе DRAM. Преимущество здесь безусловно у Direct Rambus, поскольку для достижения пропускной способности 1,6 Гбайт/с вам потребуется только один чип RDRAM, тогда как DDR SDRAM в этом случае приходится использовать 64-бит шину данных, что подразумевает включение параллельно сразу нескольких чипов памяти. Таким образом, на DDR SDRAM тратится больше полезного пространства платы. Правда, это мало кого заботит, учитывая двукратную разницу в стоимости для DDR SDRAM и RDRAM.
Кроме этого, количество включенных параллельно чипов DDR SDRAM может увеличиться за счет использования бита четности, тогда как Rambus уже содержит аппаратные средства поддержки бита четности. В зависимости от того, какая ширина шины данных вам необходима, применение бита четности может стоить вам еще одного отдельного чипа с DDR SDRAM.
Например, 64-бит шина данных DDR SDRAM требует использования дополнительного 8-разрядного чипа для битов четности, поскольку вы вряд ли где-либо отыщете DDR SDRAM с шириной шины данных, кратной 36.
Применение DDR SDRAM
Исходя из концепции памяти и просто логически, мне было гораздо легче работать именно c DDR SDRAM. Скорее всего, вы обнаружите то же самое, особенно если вы знакомы с технологией DDR SDRAM. Она не такая запутанная и сложная для изучения, как Rambus, и, что самое приятное, нет необходимости внимательно разбираться с горой технической документации (особенно я натерпелся с процессом инициализации).
Рис. 2. Блочная диаграмма подсистем Direct Rambus
Основным различием между SDR DRAM и DD DRAM является реализация процедуры упреждающей выборки и стробирования шины данных по двум фронтам тактового сигнала, что позволяет фактически удвоить пропускную способность.
Архитектура 2-нс упреждающей выборки позволяет DRAМ-устройству иметь внутреннюю шину удвоенной ширины по сравнению с внешней шиной и таким образом работать на половине внешней тактовой частоты. DDR SDRAM память, как и RDRAM, имеет внутреннюю схему управления банками памяти для исключение конфликтов при доступе.
Технология DDR SDRAM более гибкая в проектировании и позволяет быстро смакетировать требуемое устройство, поскольку допускает использование FPGA-чипов. Более того, известный производитель FPGA компания Xilinx имеет, например, уже разработанную и готовую к интеграции модель контроллера памяти DDR SDRAM, описанную на HDL. Правда, по опыту работы с контроллером, его возможности оказались ограниченными. Это выяснилось, когда я попробовал организовать с его помощью поддержку интерливинга банков памяти (после чего пришлось модифицировать контроллер самостоятельно).
Кроме контроллера вам понадобится реализовать схему автоподстройки длительности задержек delay-locked-loop (DLL) для контроля тактовых сигналов между контроллером памяти и внешними DDR SDRAM чипами. Direct Rambus также требует схему DLL, но она, к счастью, уже встроена в макроядро RAC.
Ближе к окончанию проектирования вам вероятно удастся обнаружить, что интерфейс DDR SDRAM не проще, а в чем-то, возможно, и сложнее Rambus. Это касается общей синхронизации системы, физического дизайна схем и самой платы. В отличие от открытой и "ничьей" DDR SDRAM, усилия Rambus по развитию и усовершенствованию своей технологии выглядят более последовательно и централизо-ванно. К примеру, в настоящее время Rambus разработал описание всех подсистем Direct Rambus на уровне HDL. Кроме этого, доступны полные технические руководства по проектированию, касающиеся, в частности, размещения компонентов на системной плате и маршрутизации каналов.
В дополнение ко всему, макроядро RAC Rambus берет на себя функции ввода/вывода, параллельно-последовательного и последовательно-параллельного преобразования, синхронизации системы, управления внешней шиной и маршрутизации сигналов всего того, что может испортить настроение при использовании DDR SDRAM. К счастью, в процессе работы над моим вторым проектом было принято своевременное решение о переходе с DDR SDRAM на технологию Rambus, прежде чем мы приблизились к окончанию проектирования.
Подводя итоги
В ретроспективе, последние полтора года были по своему уникальными. У меня была счастливая возможность прямо с переднего края наблюдать и непосредственно участвовать в ожесточенных дебатах о самой лучшей и высокопроизводительной памяти, сопровождаемых практическими аргументами из первых рук. Безусловно, время покажет, какая из технологий окажется более успешной в будущем, но скорее всего, обе продолжат свое существование.
Как уже говорилось, все упирается в количество выводов и стоимость. DDR SDRAM пока гораздо дешевле и, безусловно, в ближайшее время будет выпускаться в намного больших объемах, чем Rambus. И если вы в состоянии позволить себе большое количество выводов, то используя DDR SDRAM, вы сможете достичь пропускной способности Direct Rambus 1,6 Гбайт/с при существенно меньшей цене. С другой стороны, использование Rambus экономит пространство на плате, требуя меньше чипов и упрощая маршрутизацию сигналов.
Какую бы технологию вы не избрали, очень важно оценить заинтересованность в вашей продукции потенциального поставщика памяти и ASIC-чипов. Иначе, если вы представляете небольшую фирму, всегда существует риск провалить поставки этих компонентов для вашего производства.
По материалам EDN, август 2000 г.
Перевод М. Ахметова
От Редакции:
Когда эта статья уже была сверстана, поступила информация о статье Крейга Баррета главного исполнительного директора корпорации Intel во влиятельной газете "Financial Times" от 23 октября 2000 года, в которой Intel фактически заявляет о прекращении сотрудничества с Rambus.
Этому способствовали и прошлогодние возвраты миллионов материнских плат с "интеловским" чипсетом из-за трудностей с интерфейсом Rambus, и отказ Intel от производства нового процессора Tinma, ориентированного только на эту технологию и, конечно, "склочность" Rambus,
затеявшей многочисленные судебные процессы с другими производителями оперативной памяти.
Сегодня же Intel предстоит решать, как поступить со своим новейшим Pentium IV, который тоже завязан на Rambus.
Ваш комментарий к статье | ||||