Доводы в пользу IRAM
Архив
|
Сегодня микропроцессоры и динамическая память (DRAM) изготавливаются в виде отдельных микросхем. Две тенденции заставляют пересмотреть эту традицию. Во-первых, разрыв в быстродействии между процессором и DRAM ежегодно увеличивается на 50%. Во-вторых, применение микросхем DRAM становится затруднительным из-за гигантского объема (который ежегодно увеличивается на 60%) информации, который требуется хранить в памяти. В разумной RAM, или IRAM (Intelligent Random Access Memory), процессор и память размещаются на одном чипе, благодаря чему снижается время доступа и увеличивается пропускная способность памяти. Кроме того, снижается расход электроэнергии и потребная площадь на системной плате, а также расширяется поле для выбора организации DRAM.
В чем, собственно, проблема
Специализация полупроводниковой промышленности на CPU и DRAM имеет немало преимуществ. Важнейшее из них состоит в том, что производственная линия может быть видоизменена с учетом предназначения чипа. На заводе, где делают микропроцессоры, технологический процесс обеспечивает получение "быстрых" транзисторов, чтобы реализовать скоростную логику. Микропроцессорный чип отличается бОльшим числом металлизированных слоев, что позволяет уменьшить время распространения сигналов и упростить разводку электропитания. DRAM, в свою очередь, представляет собой многослойный пирог из поликристаллического кремния, благодаря чему удается получить ячейки памяти малого размера и с низким уровнем токов утечки (для снижения частоты регенерации).
Микросхемы DRAM и CPU имеют разные корпуса. У микропроцессоров они дороги, содержат сотни выводов для многоразрядных шин, идущих к памяти, рассеивают мощность от 5 до 50 Вт. Корпуса DRAM, наоборот, дешевы, имеют малое число выводов и рассеивают мощность не более ватта. Так как DRAM и CPU не объединены в одном корпусе, разработчики компьютеров могут наращивать число кристаллов памяти независимо от числа процессоров. Настольные системы имеют, как правило, один процессор и 4-32 микросхемы DRAM, серверы в основном содержат 2-16 процессоров и 32-256 чипов DRAM. Благодаря модульной конструкции (Single In-line Memory Module - SIMM, или Dual In-line Memory Module - DIMM), пользователь может изменять объем памяти в системе.
Объемы продаж - хорошее количественное доказательство успеха бизнеса. В 1995 году микросхем DRAM было продано на сумму 37 млрд. долларов, микропроцессоров - на 20 млрд. долларов. И финансовые, и технические тенденции не одинаковы для производителей CPU и DRAM. Пропускная способность DRAM учетверялась в среднем каждые три года, начиная с 1976 года, в то время как быстродействие микропроцессора росло теми же темпами лишь с 1986 года.
Разделение на два лагеря имеет и недостатки. Рис. 1 показывает, что, в то время как быстродействие микропроцессоров возрастало на 60% ежегодно, время доступа к RAM сокращалось меньше чем на 10%. Разработчикам компьютеров пришлось столкнуться с увеличением "разрыва в быстродействии процессора и памяти", который теперь явился главным препятствием повышения производительности компьютерной системы.
Рисунок 1.
Разработчики систем пытались ликвидировать разрыв, вводя кэш-память все более высокой иерархии; к сожалению, в самом плохом случае время доступа к памяти остается все-таки большим. Например, в табл. 1 показана производительность центрального процессора и памяти в компьютерной системе AlphaServer 8200. Обратите внимание, что время доступа к памяти в этой системе в четыре раза больше, чем время доступа к строке DRAM. Это различие обусловлено следующими слагаемыми: временем, за которое микропроцессор выставляет адрес на шину, временем для мультиплексирования адреса, приходящего на DRAM, временем переключения двунаправленной шины данных, непроизводительными затратами контроллера памяти и т. д.
Таблица 1. Время доступа и пропускная способность основной памяти AlphaServer 8200.
Процессор | Alpha 21164 | |
Компьютер | AlphaServer 8200 | |
Тактовая частота, МГц | 300 | |
Характеристики памяти | Время доступа, нс | Пропускная способность, Мбайт/с |
Кэш команд (8 Кбайт на чипе) | 6,7 (2 такта) | 4800 |
Кэш данных (8 Кбайт на чипе) | 6,7 (2 такта) | 4800 |
Кэш 2-го уровня (96 Кбайт на чипе) | 20 (6 тактов) | 4800 |
Кэш 3-го уровня (4 Мбайт внешних) | 26 (8 тактов) | 960 |
Основная память | 253 (76 тактов) | 1200 |
Отдельный чип DRAM | 60 (18 тактов) | 30-100 |
Несмотря на добавление значительного объема кэш-памяти, в очень сложных процессорах с динамически планируемыми суперскалярными конвейерами, способными выполнять несколько команд за такт, значительное время доступа к памяти и ее ограниченная пропускная способность снижают эффективность выполнения многих прикладных программ.
Таблица 2. Число тактов на команду, число неудачных обращений в кэш и доли времени, потраченного на выполнение программ в системе с процессором Alpha 21164.
SPECint92 | SPECfp92 | СУБД | Sparse | |
Число тактов на команду (Clocks Per Instruction - CPI) | 1,2 | 1,2 | 3,6 | 3,0 |
Число неудачных обращений в кэш команд, приходящееся на 1000 команд | 7 | 2 | 97 | 0 |
Число неудачных обращений в кэш данных, приходящееся на 1000 команд | 25 | 47 | 82 | 38 |
Число неудачных обращений в кэш 2-го уровня, приходящееся на 1000 команд | 11 | 12 | 119 | 36 |
Число неудачных обращений в кэш 3-го уровня, приходящееся на 1000 команд | 0 | 0 | 13 | 23 |
Доля времени, потраченного в процессоре | 0,78 | 0,68 | 0,23 | 0,27 |
Доля времени, потраченного в кэше команд | 0,03 | 0,01 | 0,16 | 0 |
Доля времени, потраченного в кэше данных | 0,13 | 0,23 | 0,14 | 0,08 |
Доля времени, потраченного в кэше 2-го уровня | 0,05 | 0,06 | 0,2 | 0,07 |
Доля времени, потраченного в кэше 3-го уровня | 0 | 0,02 | 0,27 | 0,58 |
Например, в табл. 2 показано: число тактов на одну команду (Cycles Per Instruction - CPI), количество непопаданий в кэш (cache misses) и доля времени, потраченного при обращении к кэш-памяти процессора Alpha 21164 во время выполнения тестов SPECint92 и SPECfp92, а также работы СУБД, выполняющей тест с дебет-кредитом, и вычислений с разреженными матрицами (Sparse Linpack, [4]).
Матричные вычисления и СУБД расходуют приблизительно 75% времени на управление иерархической памятью. Хотя микропроцессор 21164 может выполнять четыре команды за такт (для пикового CPI=0,25), средний CPI для этих программ был 3,0 и 3,6.
Таблица 3. Memory Gap Penalty (штрафы несоответствия памяти) для некоторых процессоров.
Год | Процес-сор | Размер кэша на чипе | Memory Gap Penalty, % от площади чипа без учета контакт-ных площадок | Memory Gap Penalty, % от числа транзис- торов | Пло-щадь чипа, мм2 | Всего транзис- торов, млн. |
1994 | Digital Alpha 21164 | I: 8 Кбайт D: 8 Кбайт L2: 8 Кбайт | 37,4 | 77,4 | 298 | 9,3 |
1996 | Digital Strong-Arm SA-110 | I: 16 Кбайт D: 16 Кбайт | 60,8 | 94,5 | 50 | 2,1 |
1993 | Intel Pentium | I: 8 Кбайт D: 8 Кбайт | 31,9 | 32 | 300 | 3,1 |
1995 | Intel Pentium Pro | I: 8 Кбайт D: 8 Кбайт L2: 512 Кбайт | P: 22,5 +L2: 100 (Всего: 64,2) | P: 18,2 +L2: 100 (Всего: 87,5) | P: 242 +L2: 282 | P: 5,5 +L2: 31 |
Примечание: I - кэш команд, D - кэш данных.
Несмотря на все усилия, потраченные на то, чтобы приблизить быстродействие памяти к быстродействию процессора, задержки при обращении к иерархической памяти все равно остаются большими. Часть площади чипа процессора, занятую кэш-памятью и другими схемами для сокращения времени доступа памяти, мы называем штрафом несоответствия памяти (Memory Gap Penalty). При этом не учитывается площадь под контактные площадки кристалла. Табл. 3 показывает этот штраф количественно. Фактически, Pentium Pro реализован в одном корпусе с двумя чипами, причем больший из них - это кэш-память второго уровня объемом 512 Кбайт. Несоответствие быстродействия динамической памяти и процессора привело к тому, что оно стало определять эффективность многих прикладных программ.
Рисунок 2.
На рис. 2 показано, что число кристаллов DRAM, необходимых для приемлемо конфигурированного PC, сокращается. Требуемый минимальный размер основной памяти, отражающий запросы ОС и приложений, ежегодно увеличивается на 25-30%, а объем памяти микросхемы DRAM - на 60%.
Рисунок 3. Соотношение разрядности DRAM, шины данных микропроцессорной системы и минимального количества чипов DRAM.
Здесь каждый прямоугольник представляет кристалл DRAM (площадь прямоугольника пропорциональна объему памяти, а ширина - разрядности). Например:
a. Для 64-битовой шины и 4-битовой версии 16 Мбит чипа DRAM требуется 16 микросхем, которые образуют основную память объемом 32 Мбайт (64/4x16/8).
b. Для этой же шины и 4-разрядной DRAM объемом 64 Мбит требуется тоже 16 микросхем, которые образуют основную память объемом 128 Мбайт (64/4x64/8).
c. Если применить 16-разрядные DRAM объемом 64 Мбит, то минимальный объем основной памяти вернется к прежнему значению 32 Мбайт (64/16x64/8) и чипов будет всего 4 (для 64-битовой шины).
Система должна иметь достаточное число микросхем DRAM для того, чтобы их суммарная разрядность соответствовала разрядности шины микропроцессора. Например, для Pentium - 64 разряда, а в некоторых RISC-процессорах - 256 разрядов. Рис. 3 показывает, что четырехкратное увеличение емкости чипов памяти DRAM следующего поколения, должно сопровождаться четырехкратным увеличением по разрядности, чтобы сохранить тот же самый минимальный эффективный объем памяти.
Рисунок 4. График наращивания памяти для каждого поколения DRAM в случае 64- и 256-разрядных шин микропроцессоров
Малоразрядные DRAM всегда обеспечивали самую низкую стоимость бита: 4-разрядная микросхема может быть, скажем, на 10% дешевле, чем 16-разрядная. Причины этого таковы: более дешевый корпус, меньшее время тестирования (поскольку оно пропорционально разрядности кристалла и его емкости), меньший размер чипа, так как многоразрядные DRAM имеют более широкие шины на кристалле и потребляют больше мощности и у них большее количество выводов. Эти соображения делают SIMM с малоразрядными чипами предпочтительными.
Микросхемы DRAM с многоразрядной организацией неудобны и для коррекции ошибок. Например, 64-разрядная шина данных обычно имеет 8 контрольных разрядов, то есть разрядность основной памяти не является обязательно степенью двойки. Для этого случая подошел бы SIMM-модуль, который бы мог использовать новые многоразрядные микросхемы для данных и более старую малоразрядную память для контрольных разрядов. Проблема состоит в том, что новые типы DRAM, например синхронные (SDRAM), допускающие чередуемое обращение к нескольким своим внутренним банкам, не работают нормально с более старыми чипами динамической памяти. В таком случае 8-разрядные DRAM намного более эффективны, чем 32-разрядные, поскольку неиспользуемые биты памяти увеличивают реальную стоимость основной памяти.
Рис. 2-4 показывают, что заказчики больше не могут без проблем переходить на DRAM с большей пропускной способностью, как только стоимость бита следующего поколения динамической памяти сравняется с ценой бита для настоящего поколения. Причины этого таковы:
- Минимальное приращение памяти может быть намного больше, чем это необходимо.
- DRAM с большей емкостью должна иметь больше разрядов, и бит у нее оказывается дороже, чем в малоразрядной DRAM меньшей емкости.
Дорогим SIMM-модулям с многоразрядными чипами DRAM потребитель, вероятно, предпочтет более дешевые модули с DRAM, имеющими меньшую разрядность. Мы ожидаем такого поведения потребителей, когда придет поколение DRAM объемом 256 Мбит или 1 Гбит.
Почему IRAM кажется перспективным решением
Мы верим, что пришло время рассмотреть объединение CPU и DRAM. Мы называем такой кристалл IRAM, интеллектуальной оперативной памятью, из-за того, что большинство транзисторов на этом объединенном кристалле будет принадлежать все же памяти. Поместить процессор и DRAM на одном чипе - лучше, чем увеличивать имеющуюся на процессоре SRAM, так как DRAM приблизительно в двадцать раз более компактна, [17]. (Это отношение больше, чем отношение количества транзисторов ячеек, потому что в DRAM емкость (конденсатор) имеет трехмерную структуру, что сокращает размер ячейки памяти.) Таким образом, IRAM содержит намного больше ячеек памяти на чипе, чем SRAM.
В прошлом возможность объединения процессора и памяти уже рассматривалась, но привлекательной IRAM стала лишь сегодня. Причин тому несколько. Прежде всего, разрыв между быстродействием процессоров и DRAM увеличивался на 50% ежегодно в течение десяти лет. Несмотря на все героические усилия системотехников и разработчиков трансляторов и прикладных программ, сегодня намного больше приложений ограничено быстродействием памяти, чем это было в прошлом. Вторая причина заключается в том, что грядущие гигабитные DRAM имеют достаточный объем памяти для данных и программ, если процессор будет занимать примерно одну треть чипа, что наблюдается в сегодняшних моделях (табл. 3). Прежде на чипе вместе с центральным процессором не могло уместиться достаточно памяти, поэтому микросхемы IRAM в основном рассматривались как блоки многопроцессорных систем, [2], [12], [14]. Третий довод: площадь DRAM увеличивается приблизительно на 50% в каждом поколении; чипы DRAM делаются с большим количеством металлических уровней, чтобы не терять быстродействия из-за длинных строк в этих больших кристаллах. К тому же высокоскоростной интерфейс синхронного DRAM требует быстрых транзисторов на DRAM-кристалле. Эти две тенденции делают логические блоки DRAM сегодня более похожими в технологическом отношении на выпускаемые процессорные чипы, чем в прошлом.
Потенциальные преимущества IRAM
- Высокая пропускная способность. DRAM имеет исключительно высокую внутреннюю пропускную способность, по существу она пропорциональна квадратному корню из емкости DRAM, помноженной на тактовую частоту памяти. Процессор на чипе DRAM может использовать большую долю его пропускной способности. Потенциальная пропускная способность гигабитной DRAM еще больше, чем это обуславливается сейчас ее логической организацией. Так как важно сохранить запоминающую ячейку маленькой, обычное решение состоит в том, чтобы ограничить длину битовых шин (обычно 256-512 ячейками на каждый усилитель считывания). Это учетверяет число усилителей считывания. Чтобы сэкономить площадь чипа, каждый блок имеет малое число шин ввода/вывода, что уменьшает внутреннюю пропускную способность приблизительно в 5-10 раз, но она все еще удовлетворяет внешним требованиям. Одна из целей IRAM состоит в том, чтобы использовать большую часть пропускной способности, уже имеющейся на чипе.
- Меньшее время доступа. Чтобы уменьшить время доступа к памяти, проводники, соединяющие ячейки памяти с усилителями считывания, должны быть как можно короче. Это заставляет уменьшать количество битов на блок. Кроме того, чем дальше ячейка памяти от процессора, тем дольше идет сигнал от нее. Однако лучше учесть это в алгоритме работы процессора, чем просто ограничить частоту. Дополнительное уменьшение времени ожидания дает отсутствие мультиплексирования адресов на IRAM. К уменьшению времени доступа приводит и то, что процессор уже не нагружен внешними проводниками шины данных и внешним контроллером памяти. Намного меньшее время ожидания может быть получено путем оптимального размещения блоков на чипе, использованием "более быстрых" топологических решений.
- Приложения с предсказуемой потребностью в памяти типа операций с матрицами могут выполняться быстрее в 50-100 раз из-за увеличения пропускной способности IRAM.
- Прикладные программы с непредсказуемым доступом к памяти, но очень большим объемом используемой памяти, типа баз данных, могут в 5-10 раз выполняться быстрее из-за сокращения времени доступа к IRAM.
- Эффективное энергопотребление. Интеграция микропроцессора и DRAM на одном чипе улучшает расход энергии в системе памяти. DRAM представляет намного более "плотную" структуру, чем SRAM, которая традиционно используется в качестве кэш-памяти на чипе. Чип IRAM будет иметь меньше внешних выводов для доступа к памяти (энергопотребление возрастает, когда происходит "общение" с внешними кристаллами по шинам с высокой емкостью). Характеристики IRAM (быстродействие и время доступа) лучше, чем у DRAM. А поскольку лучшие характеристики при фиксированной потребляемой мощности можно преобразовать в одинаковые характеристики при меньшей потребляемой мощности, то IRAM представляет собой более экономичное решение, [9].
- Размер памяти и разрядность . Другое преимущество IRAM - способность корректировать и размер, и разрядность памяти "на чипе". Можно не ограничивать себя степенями двойки для разрядности, как это делается в стандартных DRAM. Разработчик IRAM может точно определить число хранимых слов и их разрядность. Эта гибкость снижает стоимость решений на IRAM по сравнению с DRAM. IRAM может быть особенно выгодна в оборудовании, где площадь печатной платы жестко ограничена (в сотовых телефонах, компьютерах класса hand-held и портативные компьютеры).
Например, два прототипа одногигабитных DRAM были представлены на Международной конференции по проектированию интегральных схем в 1996 году. Как упомянуто выше, чтобы "справиться" с длинными проводниками, свойственными чипам площадью 600 мм2, изготовители используют большее количество уровней металлизации: три - для чипа Mitsubishi и четыре - для чипа Samsung. Всего на кристаллах 512 модулей емкостью 2 Мбит и 1024 модуля памяти емкостью 1 Мбит.
Таким образом, гигабитная IRAM могла бы иметь 1024 модуля памяти по 1 Кбит каждый. Усилителями считывания каждого блока обеспечивалась бы огромная пропускная способность. Причем если использовать дополнительные уровни металлизации, то можно получить еще большую межкристальную пропускную способность. Если металлические шины по 1 Кбит занимают только 1 мм в ширину, то IRAM площадью 600 мм2 могла бы иметь 16 таких шин, работающих на частотах от 50 до 100 МГц. Таким образом, внутренняя пропускная способность IRAM может быть около 100-200 Гбайт/с. (Оценка верхней границы: 1024x16x100x1000000 ~ 1600 Гбит/с=200 Гбайт/с.)
Для сравнения, средняя пропускная способность памяти AlphaServer 8400, который включает 256-разрядную шину памяти, работающую на 75 МГц, равна 1,2 Гбайт/с. В настоящее время несколько исследователей компьютерной архитектуры сделали выводы о том, что именно пропускная способность памяти ограничивает эффективность вычислительных систем, [3], [16], [20].
Для IRAM возможное время доступа к памяти для произвольных адресов будет меньше 30 нс (время доступа к кэш-памяти второго уровня). Для ориентира время доступа к памяти в AlphaServer 8400 равно 253 нс.
Предполагается, что IRAM может повысить эффективность двух типов прикладных программ:
Потенциальные недостатки IRAM
Однако перед IRAM стоят определенные трудности:
- Площадь чипа и быстродействие логических блоков в технологическом процессе для DRAM. Эксперты по проектированию интегральных микросхем считают, что увеличение площади чипа может привести к увеличению его стоимости на 30-70%, и "стоимость быстродействия" сегодня может составлять 30-100% стоимости чипа.
- Площадь чипа и увеличение энергопотребления при увеличивающейся пропускной способности DRAM-ядра. Стандартные DRAM-ядра проектируются с несколькими высоко мультиплексированными шинами ввода/вывода, с целью уменьшения площади и потребляемой мощности. Чтобы эффективно использовать внутреннюю пропускную способность DRAM-ядра, надо иметь многоразрядные шины ввода/вывода. Увеличение площади будет увеличивать стоимость бита в IRAM.
- Время регенерации накопителя DRAM при высоких температурах. Giacalone в [10] дал эмпирическое правило деления на два времени регенерации при увеличении температуры окружающей среды на десять градусов. Таким образом, частота регенерации может резко возрасти, если IRAM будет работать при температуре, характерной для некоторых нынешних микропроцессоров.
- Масштабирование системы памяти. Хотя DRAM содержит 128 Мбайт, будут, конечно, системы, нуждающиеся в большем объеме основной памяти. Так, главной архитектурной задачей становится учет плюсов и минусов различных потенциальных решений IRAM.
- Соответствие IRAM целям промышленности DRAM. Сегодня DRAM, будучи стандартной продукцией, производятся в больших объемах. Если одиночная архитектура процессора будет отвергнута, то добавляемый процессор будет расслаивать рынок IRAM и действительно уменьшать их взаимозаменяемость.
- Тестирование IRAM. Стоимость тестирования в себестоимости производства значительна для DRAM. Добавление процессора может существенно увеличить время тестирования на обычном тестовом оборудовании.
Оценка преимуществ IRAM
Рассмотрим количественные оценки возможных проектов с использованием IRAM-технологий, [15], [9].
Расчет характеристик IRAM Alpha. Один из самых быстрых микропроцессоров Alpha 21164 был описан достаточно подробно в [4], чтобы позволить оценить эффективность IRAM на его основе.
Alpha 21164 имеет три кэша на чипе: кэш команд (8 Кбайт), кэш данных (8 Кбайт) и кэш второго уровня (96 Кбайт). Системы имеют и внешний кэш третьего уровня объемом 4 Мбайт. В табл. 1 приводятся характеристики микросхемы и системы. Если бы мы разрабатывали IRAM с самого начала, то, несомненно, применили бы другую иерархию памяти, но в нашем случае оставим ее как она есть, но только применим IRAM-архитектуру. В табл. 2 дается оценка времени, потраченного в иерархической памяти. Следующим шагом должен быть расчет этих оценок в случае реализации Alpha 21164 на IRAM.
Таблица 4. Коэффициенты для оценки производительности IRAM.
Блоки микро-процессора | Оптимистичес-кий коэффициент для времени исполнения | Пессимистичес-кий коэффициент для времени исполнения |
Логические | 1,3 | 2,0 |
SRAM | 1,1 | 1,3 |
DRAM | 0,1 | 0,2 |
Табл. 4 показывает коэффициент эффективности, на который мы умножаем параметры производительности процессора Alpha, чтобы узнать быстродействие IRAM, [15] . Мы выбираем оптимистическую и пессимистическую границу для каждого параметра.
Как упомянуто выше, предполагается замедление работы логических блоков в 1,3-2,0 раза, если они будут изготовлены по технологии DRAM. Мы используем в табл. 4 эти коэффициенты как оптимистическую и пессимистическую оценку для логического блока процессора. Общая ошибка - думать, что все временные параметры микропроцессора должны замедлиться во столько же раз. Как показано в табл. 3, подавляющее большинство транзисторов в современных микропроцессорах используется для построения SRAM. Следовательно, мы используем отдельный коэффициент от 1,1 до 1,3 для уменьшения быстродействия SRAM. Поскольку доступ к основной памяти должен быть в IRAM в 5-10 раз быстрее (чем 253 нс для системы на Alpha в табл. 1), то мы умножаем соответствующие временные оценки на 0,1 и 0,2.
Хотя в IRAM использовалась бы другая иерархия памяти, с целью оценки эффективности мы берем организацию Alpha21164 и корректируем ее параметры (см. табл. 2). Сначала мы умножаем время, затраченное процессором на выполнение тестового примера, на коэффициент замедления работы логических схем, несмотря на ограничения быстродействия (скорости) попаданий в кэши команд и данных. Затем, поскольку непопадания в кэши I и D приведут к обращению в более медленный кэш 2-го уровня (L2), мы умножаем долю времени, потраченного на доступ к ним, на коэффициент замедления SRAM.
Таблица 5. Оценка производительности IRAM с использованием оптимистических и пессимистических параметров из табл. 4.
SPECint92 | SPECfp92 | СУБД | Sparse | |||||
Опт. | Пес. | Опт. | Пес. | Опт. | Пес. | Опт. | Пес. | |
Часть времени в процессоре | 1,02 | 1,57 | 0,89 | 1,36 | 0,30 | 0,46 | 0,35 | 0,54 |
Кэш команд | 0,04 | 0,05 | 0,01 | 0,01 | 0,18 | 0,21 | 0 | 0 |
Кэш данных | 0,14 | 0,17 | 0,26 | 0,3 | 0,15 | 0,18 | 0,08 | 0,10 |
Непопадания в L2-кэш | 0,05 | 0,05 | 0,06 | 0,06 | 0,2 | 0,2 | 0,06 | 0,12 |
Непопадания в L3-кэш | 0 | 0 | 0 | 0 | 0,03 | 0,05 | 0,06 | 0,12 |
Всего = отношение ко времени для Alpha (>1 означает что IRAM-медленнее) | 1,25 | 1,83 | 1,21 | 1,74 | 0,85 | 1,10 | 0,56 | 0,82 |
Табл. 5 показывает оптимистическую и пессимистическую оценку параметров IRAM, организованной подобно Alpha 21164. Как ожидается, тесты SPEC92 дают малый выигрыш IRAM, потому что они тратят небольшое время в иерархии памяти, являющейся в 1,2-1,8 раза медленнее, в зависимости от коэффициентов для времени IRAM. Обратите внимание, что приложения СУБД будут выполняться в диапазоне от "немного медленнее до немного быстрее", и что тест Linpack пройдет быстрее в 1,2-1,8 раза.
Этот анализ частично был основан на двух эталонных тестах, которые редко дают непопадание в кэши. Программы SPEC92, используемые в первоначальном анализе Alpha, [4], бессмысленны из-за слабого использования иерархии памяти, а также малого объема данных и кода, размещаемых в памяти; этот недостаток является одной из причин замены их эталонными тестами SPEC95.
При разработке микропроцессоров имеется диапазон характеристик, допустимых для конечного результата. IRAM Alpha попадает в диапазон допустимой производительности для микропроцессоров c самыми высокими показателями. И если разрыв в пропускной способности памяти и процессоров вырастет, то относительно стандартных архитектур производительность IRAM улучшится еще больше.
Если бы производительность была единственным потенциальным преимуществом IRAM, этого было бы недостаточно для смелого решения о начале производства микропроцессоров на заводе, выпускающем DRAM. Причины этого шага должны включать экономию амортизационной стоимости завода, использующего DRAM-кристаллы, более низкую потребляемую мощность, меньшую занимаемую площадь печатной платы или более низкую стоимость благодаря получению достаточной памяти на микросхеме.
Надо помнить, однако, что производительность в этом исследовании рассчитывается для IRAM c микропроцессором стандартной организации, которая не является самой подходящей для новой технологии. Следующий раздел исследует альтернативную модель, которая лучше использует возможности IRAM.
Оценка производительности IRAM векторного процессора
Аппаратные средства высокоскоростных микропроцессоров с параллельностью на уровне команд (Instruction Level Parallelism - ILP) могут, как явствует из названия, выполнять относительно короткие последовательности команд параллельно. Как упомянуто выше, суперскалярные микропроцессоры полагаются на попадание в кэш, чтобы обеспечить доступ к командам и операндам за достаточно малое время.
Альтернативная модель применения ILP, которая не полагается на кэши, - это векторная обработка. Она значительно старше, чем суперскалярная, и представляет собой хорошо проработанные архитектуру и модель транслятора, которые стали популярны в супер-ЭВМ. Векторные процессоры имеют много специальных команд для работы с линейными массивами чисел.
Перечислим преимущества векторных компьютеров и исполняемых на них векторизированных программ:
- Результат выполнения каждой команды не зависит от предыдущей, благодаря "глубине конвейера" и высокой тактовой частоте.
- Отдельная векторная команда совершает много действий, вследствие чего уменьшается число командных выборок, команд ветвлений и непредсказуемых переходов.
- Векторные команды часто обращаются к блоку памяти в один прием.
- Векторные команды часто обращаются к памяти с регулярным (при постоянном большом шаге) шаблоном, что позволяет одновременно работать с несколькими банками памяти.
Два последних преимущества означают, что векторные процессоры не полагаются на кэши данных. Они рассчитывают на основную память с малым временем доступа, часто реализованную на SRAM (до 1024 банков памяти), чтобы получить высокую пропускную способность за счет "перекрытия" в работе. В дополнение к памяти с малым временем доступа векторные компьютеры имеют большие наборы регистров (обычно от 8 до 16), каждый из которых содержит от 64 до 128 слов (64-разрядных). Таким образом, они имеют 32-128 Кбит многопортовых высокоскоростных регистров.
IRAM обладает быстрым доступом, и ее удобно применить для одновременной работы с несколькими банками, следовательно IRAM конечно соответствует потребностям векторного процессора. На подходе кристаллы с сотнями миллионов транзисторов, и большой набор регистров и конвейеризированных функциональных модулей становятся возможными.
Кроме того, векторные операции легко допускают увеличение аппаратной части при меньшей тактовой частоте без потери производительности. Например, векторный процессор с тактовой частотой N, который функционирует на двух элементах за такт, имеет то же самое пиковое быстродействие, что и векторный процессор на тактовой частоте 2N, который функционирует на одном элементе за такт. С помощью нескольких команд, выполняемых за такт, в векторной машине реализуются "многократные каналы". Например, T90 от фирмы Cray использует два канала, а VP500 от Fujitsu использует восемь каналов. Следовательно, даже если IRAM-логика была бы медленнее в два раза, векторный процессор IRAM мог бы иметь ту же самую пиковую эффективность, используя в два раза больше элементов за такт и жертвуя транзисторами во имя снижения тактовой частоты.
Рисунок 5. Организация векторного микропроцессора IRAM-архитектуры.
Как показано на рис. 5, векторный микропроцессор IRAM мог бы включать следующие блоки:
- Шестнадцать 1024-разрядных портов памяти, выполненных на IRAM, с общей пропускной способностью памяти 100 Гбайт/с.
- Шестнадцать 128-элементных векторных регистров.
- Конвейерные векторные модули для сложения чисел в формате с плавающей точкой, умножения, деления, выполнения целочисленных операций, загрузки/хранения и команд мультимедиа.
- Восемь конвейерных процессоров, которые могут функционировать одновременно на восьми элементах за такт ценой добавления нескольких векторных модулей.
IRAM может иметь впечатляющую векторную производительность. Используя технологические нормы 0,18 мкм, в кристалле DRAM площадью 600 мм2 можно разместить высокоэффективный векторный акселератор с восемью модулями сложения/умножения, работающими на частоте 500 МГц, и 16 шин разрядностью 1 Кбит с частотой 50 МГц. Эта комбинация дает производительность 8 GFLOPS и пропускную способность 100 Гбайт/с, что можно считать сбалансированной векторной системой. Рассматривая ее эффективность в перспективе, заметим, что самый быстрый векторный монопроцессор Cray T90 достигает быстродействия 1,5 GFLOPS на тесте 1000x1000 Linpack. До сих пор векторные процессоры Cray Research удваивали свою производительность каждые 36 месяцев. Значит, гигабитные IRAM с производительностью 8 GFLOPS могут быть быстрее, чем векторный процессор 20 века, стоящий миллион долларов.
Есть вопрос, связанный с векторной обработкой и заключающийся в том, что только часть вычислений может быть ускорена ею. Несомненно, научные программы, которые имеют дело с матрицами, от векторной обработки только выиграют. Новые мультимедийные и DSP-приложения тоже могут эффективно выполняться на векторных процессорах. Действительно, MMX-расширение системы команд 80x86 можно представить как скромное векторное расширение. Пользуясь векторной терминологией, можно сказать, что MMX имеет восемь векторных регистров с восемью 8-разрядными элементами и функциональными модулями, каждый из которых использует восемь каналов.
Не следует думать, что судьба IRAM зависит от популярности векторной обработки. IRAM имеет свойства, которые могут привести к применениям, далеким от стандартных микропроцессоров. Об этом говорят даже самые первые исследования.
Энергопотребление в IRAM
Фромм с коллегами сравнивает энергетический КПД системы памяти микропроцессора StrongARM (от Digital), включая кэш команд и кэш данных (по 16 Кбайт каждый) на кристалле, с системой памяти на IRAM, [9]. Сравнивая число бит на единицу площади кэш-памяти StrongARM и DRAM, выполненной по сходной технологии, мы видим соотношение почти 50:1, то есть значительно большее, чем стандартное соотношение 20:1 между SRAM- и DRAM-ячейкой. Приняв консервативный курс, авторы сравнивает StrongARM с IRAM с отношением памяти 16:1 и 32:1.
Perl | li | gcc | Hyfsys | compress | |
IRAM, 16:1 | 1,0 | 1,7 | 1,8 | 2,3 | 1,7 |
IRAM, 32:1 | 1,5 | 2,0 | 2,5 | 2,5 | 4,5 |
Таблица показывает преимущество IRAM. В зависимости от эталонного теста, IRAM потребляет энергии приблизительно в 2-4 раза меньше.
Проекты, относящиеся к IRAM
Идея IRAM, может быть, своевременна, но не нова. Мы считаем, что изделия, относящиеся к IRAM, можно разбить на три категории:
- Акселераторы. Класс микросхем, включающий DRAM и некоторые логические блоки на одном кристалле, предназначенных для оптимизации выполнения определенных приложений. Большинство усилий было предпринято в графике, где логика соседствует с памятью, используемой как буфер изображения. Самый известный пример - Video DRAM. Другие примеры - микросхемы 3D-DRAM от Mitsubishi, которые включают часть логики Z-буфера с DRAM объемом 10 Мбит, чтобы ускорить трехмерную графику, [6], и графический акселератор фирмы Neomagic для переносных PC.
- Монопроцессоры. Процессоры с DRAM на одном чипе. Эта группа могла бы привлечь высокой производительностью, экономичностью, малой стоимостью или комбинацией всех трех показателей, [19], [18].
- Многопроцессорные системы
. Кристаллы, предназначенные исключительно для использования в виде стандартного блока в многопроцессорной системе (мультипроцессоры). К ним относятся IRAM, которые содержат мультипроцессор MIMD (много потоков команд - много потоков данных) на кристалле, [8], [12], [13], и IRAM, включающие мультипроцессор SIMD (один поток команд - много потоков данных), или матричный процессор, внутри микросхемы, [1], [7]. Исследования этого класса IRAM ведутся наиболее активно.
Рис. 6 представляет собой диаграмму, на которой отображены кристаллы монопроцессоров и мультипроцессоров. Количество аппаратных средств (Mbits of Memory) для памяти отложено по оси Y, количество аппаратных средств для обработки (Bits of Arithmetic Unit) откладывается по оси X. Ось Y проградуирована в битах памяти. Единицы для оси X выбрать труднее; действительно, как вы сравните восемь 16-разрядных обычных процессоров с 16-разрядным ALU, 1024 штуки одноразрядных процессоров с одноразрядным ALU и 32-разрядный суперскалярный процессор с двумя 32-разрядным ALU и двумя 64-разрядными FPU? Наше решение состояло в том, чтобы суммировать произведения разрядности каждого арифметического модуля на их количество, которое может функционировать параллельно, получая в результате число бит всех арифметических модулей. Таким образом, для трех примеров выше число битов всех арифметических модулей составляет: 8x16=128, 1024x1=1024 и (2x32)+(2x64)=196. Обратите внимание на значительное увеличение памяти для монопроцессора Mitsubishi М 32 R/D на одном чипе, использующем DRAM.
Рисунок 6.
Рис. 6 показывает два пути развития IRAM. Первый (пологая прямая): при использовании MIMD или SIMD на кристалле со скромным объемом памяти на каждый арифметический модуль. Второй (крутая прямая): с намного большим отношением размера памяти на арифметический модуль. Этот путь следует эмпирическому правилу Амдала (Amdahl), утверждающего, что в сбалансированной системе пропускная способность памяти должна увеличиваться линейно с быстродействием процессора. Хотя это не показано на рисунке, усовершенствование технологии и, как следствие, увеличение плотности памяти также может сделать логические схемы более быстрыми.
По нашему мнению, самые первые исследователи IRAM были увлечены масштабируемыми многопроцессорными решениями, частично вследствие недостатка памяти на чипе, что отвлекало их от первого проекта монопроцессора, [2]. Более поздние работы относятся к многопроцессорным кристаллам, позволяющим получить высокую пиковую эффективность, но теперь исследователи пренебрегли трудностью программирования таких систем, особенно, когда память ограничена, [12]. Гигабитные DRAM имеют достаточную память на чипе, чтобы допустить появление IRAM, которые будут более сбалансированными системами для быстрых монопроцессоров; они, несомненно, проще в программировании и, следовательно, могут иметь более широкое применение.
Заключение
Размещение динамической памяти вместе с процессором на одном чипе дает много выгод в производительности и энергопотреблении. Время доступа к памяти сокращается в 5-10 раз, потребляемая мощность - в 2-4 раза, пропускная способность увеличивается в 50-100 раз. Трудно посчитать экономию за счет уменьшения используемой площади печатной платы и устранения избыточной памяти. Перспективы, которые открывает IRAM, основаны не на экзотической, непроверенной технологии. За последние двадцать лет было выполнено множество работ, благодаря которым и появилась архитектура IRAM.
Полагаем, что малая популярность IRAM объясняется малым объемом памяти по сравнению с тем, который может быть реализован на DRAM. Однако объем памяти на кристалле увеличивается примерно на 60% в год. Самый лучший сценарий для внедрения IRAM - это применение в графических картах, которые требуют приблизительно 10 Мбит, а также в видеоиграх и PDA, которым нужно около 32 Мбит памяти. Когда объем IRAM достигнет 128-256 Мбит, она начнет применяться в мобильных PC и сетевых компьютерах. Успех в этих приложениях убедит изготовителей микропроцессоров включить DRAM в кристалл CPU или изготовителей DRAM - интегрировать процессоры в чип памяти.
Таким образом, IRAM может изменить характер полупроводниковой промышленности. Из нынешней, разделенной на два лагеря - CPU и DRAM, - могла бы сформироваться единая отрасль. Изготовители микропроцессоров могли бы изготовлять DRAM в промышленных количествах, как сегодня микросхемы SRAM. С другой стороны, производители DRAM вполне могут освоить выпуск микропроцессоров. Оба варианта допустимы. Первый - устроит производителей, стремящихся к выпуску более сложной и технологичной продукции, второй - может привлечь компании, желающие выпускать массовую дешевую продукцию.
Прежде чем такая революция произойдет, придется прояснить некоторые вопросы:
- Каковы могут быть параметры (быстродействие, площадь, потребляемая мощность, процент выхода годных) логических блоков, если их изготавливать с помощью DRAM-технологии?
- Каковы могут быть параметры (те же) SRAM-блоков, если их изготавливать с помощью DRAM-технологии?
- Как оптимизировать DRAM, чтобы получить малое время доступа?
- Как оптимизировать DRAM, чтобы как можно полнее использовать громадную внутреннюю пропускную способность?
- Как добиться оптимального сочетания низкого энергопотребления DRAM (это возможно при малой частоте регенерации) и высокой производительности микропроцессора?
- Должна ли микропроцессорная часть IRAM обладать избыточностью (то есть нужно ли резервирование для строк или столбцов, как это делается в DRAM)?
- Могут ли встроенные тесты снизить расходы по функциональному контролю IRAM?
- Как оптимально подключить до тысячи блоков DRAM с одним CPU на кристалле IRAM?
- Какие способы оптимизации в трансляторах могут превратить большую пропускную способность IRAM в высокую производительность компьютера?
- Как правильно построить иерархию памяти для IRAM и как ею управлять?
- Какими должны быть архитектурное решение компьютера и операционная система для IRAM, чтобы справиться с ситуацией, когда прикладной программе понадобится больше памяти, чем есть на чипе IRAM?
- Будет ли оправданным введение специальных наборов команд (для IRAM), как это было в начале 80-х, когда были разработаны процессоры с RISC-архитектурой?
Эти вопросы и открывающиеся перспективы для полупроводниковой промышленности делают IRAM захватывающей областью исследований, которые должны ответить, будет ли IRAM просто интересной лабораторной новинкой или главным направлением развития электронной промышленности следующего десятилетия.
Перевод Андрея Фаткуллина
Литература
- Y. Aimoto, T. Kimura, Y. Yabe, H. Heiuchi, and others. A 7.68 GIPS 3,84 GB/s 1W parallel image processing RAM integrating a 16 Mb DRAM and 128 processors. Digest of Technical Papers, 1996 IEEE International Solid-State Circuits Conference, San Francisco, CA, USA, 8-10 Feb. 1996, p. 372-73, 476.
- I. M. Barron. The transputer. The microprocessor and its application. Edited by: D. Aspinall, London, UK: Cambridge, 1978. p. 343-57.
- D. Burger, J. R. Goodman, A. Kagi. Memory bandwidth limitations of future microprocessors. ISCA '96: The 23rd Annual International Conference on Computer Architecture, Philadelphia, PA, USA, 22-24 May 1996:78-89.
- Z. Cvetanovic, D. Bhandarkar. Performance characterization of the Alpha 21164 microprocessor using TP and SPEC workloads. Proceedings. Second International Symposium on High-Performance Computer Architecture, San Jose, CA, USA, 3-7 Feb. 1996. p. 270-80.
- W. J. Dally. Fine-grain message-passing concurrent computers. In Third Conference on Hypercube Concurrent Computers and Applications. Pasadena, CA, USA, 19-20 Jan. 1988. Edited by: G. Fox.
- M. F. Deering, S. A. Schlapp, M. G. Lavelle. FBRAM: a new form of memory optimized for 3D graphics. SIGGRAPH 94 Conference Proceedings, Orlando, FL, USA, 24-29 July 1994. p. 167-74.
- D. G. Elliott, W. M. Snelgrove, and M. Stumm. Computational RAM: A Memory-SIMD Hybrid and its Application to DSP. In Custom Integrated Circuits Conference, Boston, MA, May 1992, pages 30.6.1-30.6.4.7. References 22.
- M. Fillo, S. W. Keckler, W. J. Dally, N. P. Carter, and others. The M-Machine multicomputer. Proceedings of MICRO'95: 28th Annual IEEE/ACM International Symposium on Microarchitecture, Ann Arbor, MI, USA, 29 Nov.-1 Dec. 1995, p. 146-56.
- R. Fromm, N. Cardwell, B. McGaughy, S. Perissakis, and D. Patterson. The Energy Efficiency of IRAM Architectures. Submitted to ISCA '97: The 24th Annual International Conference on Computer Architecture, Boulder, CO, USA, 1-3 June 1997.
- G. Giacalone, et al. A 1MB, 100MHz integrated L2 cache memory and 128b interface and ECC protection. Proceedings of ISSCC, San Francisco, CA USA, Feb. 1996, p. 370-371.
- J. L. Hennessy, D. A. Patterson. Computer Organization and Design, 2nd ed. San Francisco: Morgan Kaufmann Publishers, 1997.
- P. M. Kogge, T. Sunaga, H. Miyataka, K. Kitamura, and others. Combined DRAM and logic chip for massively parallel systems. Proceedings. Sixteenth Conference on Advanced Research in VLSI, Chapel Hill, NC, USA, 27-29 March 1995, p. 4-16.
- K. Murakami, S. Shirakawa, and H. Miyajima. Parallel Processing RAM Chip with 256Mb DRAM and Quad Processor. Digest of Technical Papers, 1997 IEEE International Solid-State Circuits Conference, San Francisco, CA, USA, Feb. 1997.
- M. D. Noakes, D. A. Wallach, W. J. Dally. The J-Machine multicomputer: an architectural evaluation. 20th Annual International Symposium on Computer Architecture, San Diego, CA, USA, 16-19 May 1993, p. 224-35.
- D. Patterson, N. Cardwell, T. Anderson, N. Cardwell, R. Fromm, K. Keeton, K. Kozyrakis, R. Thomas, and K. Yelick. Intelligent RAM (IRAM): Chips that remember and compute. Digest of Technical Papers, 1997 IEEE International Solid-State Circuits Conference, San Francisco, CA, USA, Feb. 1997.
- S. E. Perl, and R. L. Sites. Studies of Windows NT performance using dynamic execution traces. Second Symposium on Operating Systems Design and Implementation, Seattle, WA, USA, 29 Oct.-1 Nov. 1996.
- A. Steven Przybylski. New DRAM Technologies: A Comprehensive Analysis of the New Architectures. MicroDesign Resources, Sebastopol, California, 1994.
- Ashley Saulsbury, Fong Pong, Andreas Nowatzk. Missing the Memory Wall: The Case for Processor/Memory Integration. International Symposium on Computer Architecture, Philadelphia, PA, USA, May 1996.
- T. Shimizu, J. Korematu, M. Satou, H. Kondo, and others. A multimedia 32 b RISC microprocessor with 16 Mb DRAM. Digest of Technical Papers, 1996 IEEE International Solid-State Circuits Conference, San Francisco, CA, USA, 8-10 Feb. 1996 p. 216-17, 448.
- W. A. Wulf, S. A. McKee. Hitting the memory wall: implications of the obvious. Computer Architecture News, March 1995, vol. 23, (no.1): 20-4.
- A Case for Intelligent RAM: IRAM. IEEE Micro, April 1997.