Crusoe — первые в мире массовые микропроцессоры с архитектурой VLIW

Transmeta — компания, привлекающая к себе внимание по целому ряду причин. Во-первых, она первой в мире начала массовые коммерческие поставки микропроцессоров с архитектурой VLIW (Very Length Instruction Word — «сверхбольшое командное слово»). Интерес последней подогревается тем фактом, что архитектура IA-64 столь долгожданного Itanium в существенной степени использует элементы VLIW. Но Itanium в массовых количествах еще не поставляется, а Crusoe от Transmeta — вот они, пожалуйста, приходите и покупайте. Значит, идеи VLIW вполне реализуемы на практике.

Во-вторых, в Transmeta работает знаменитый Линус Торвальдс, родоначальник Linux. Здесь он занимается разработкой мобильной версии этой операционной системы — Mobile Linux.

Микропроцессоры семейства Crusoe, так же как и долгожданный Itanium, построены на основе архитектуры VLIW, но в отличие от него уже коммерчески доступны

На сегодняшний день процессоры Crusoe предлагаются в трех модификациях: ТМ3120 с тактовыми частотами до 400 МГц, ТМ5400 и ТМ5600 (до 700 МГц). Эти модели отличаются в первую очередь тактовыми частотами и используемой кэш-памятью (см. табл.). Данные процессоры не полностью совместимы между собой программно. Впрочем, это не страшно — дело в том, что реально Crusoe планируется применять только в режиме эмуляции х86. При этом доступа программистов к внутренним VLIW-командам не предполагается: все программы (как и сама операционная система) работают поверх низкоуровневого программного обеспечения, которое Transmeta называет «морфинг кода» (code morphing) и которое ответственно за трансляцию х86-кодов в команды VLIW.

В конечном счете эти особенности во многом определяют не только производительность, но и энергопотребление. Вместе с тем другие характеристики всех моделей процессоров практически одинаковы; они имеют фактически общее VLIW-ядро, в них, можно сказать, интегрирован северный мост и они используют одинаковую «упаковку» — корпус BGA c 474 контактами. Проанализируем строение старшей модели ТМ5600, а потом укажем на особенности других моделей.

ТМ5600 под микроскопом

Общая структура ТМ5600 представлена на рисунке. Для начала рассмотрим все функциональные блоки, за исключением «черного ящика» — VLIW-ядра процессора. Вкусненькое оставим на десерт — именно это ядро представляет собой изюминку Crusoe. ТМ5600 снабжен кэшами данных и команд первого уровня емкостью по 64 Кбайт. Кроме большой емкости, следует указать на их высокую архитектурную эффективность: кэш команд является 8-канальным наборно-ассоциативным, а кэш данных — даже 16-канальным наборно-ассоциативным. В дополнение к этому в процессор интегрирован кэш второго уровня емкостью 512 Кбайт с обратной записью, который является 4-канальным наборно-ассоциативным.

Архитектура Crusoe TM5600

Особенность ТМ5600 — интеграция в микропроцессор контроллеров оперативной памяти. Их сразу два: для наиболее перспективной памяти DDR SDRAM (частоты 100/133 МГц, уровень напряжения 2,5 В) и для SDR SDRAM (частоты 66/100/133 МГц, напряжение 3,3 В). Первый контроллер обеспечивает максимальную пропускную способность и поддерживает до четырех банков, эквивалентных двум модулям DIMM; второй предполагает использование модулей SO-DIMM «шириной» 64 или 72 разряда.

Кроме контроллеров оперативной памяти в TM5600 интегрирован контроллер PCI-шины. Поддерживается стандарт PCI 2.1, однако при этом можно использовать только 32-разрядные PCI-платы с частотой 33 МГц с пониженным (3,3 В) напряжением. (Последнее объясняется стремлением к применению только аппаратуры с относительно низким энергопотреблением.) Общение с внешними устройствами на PCI-шине может происходить в DMA-режиме. Таким образом, в ТМ5600 интегрирована поддержка всех основных функций, характерных для современных северных мостов наборов микросхем.

Теперь можно позволить себе углубиться в VLIW-ядро ТМ5600. «Широкие» команды, называемые иначе связками, имеют длину 128 разрядов. Crusoe использует также терминологию, в которой связки называются молекулами, а 32-разрядные подкоманды, располагаемые в связке, — атомами. Каждая молекула содержит два или четыре атома. В том случае если при двоичной трансляции не удается заполнить все «атомные» слоты молекулы, в незаполненные слоты вставляется подкоманда «нет операции» (NOP). Благодаря применению двух типов молекул в каждом из них оказывается не более одной NOP.

Что касается регистров, то TM5600 содержит 64 регистра общего назначения длиной 32 разряда и 32 регистра с плавающей запятой, имеющие длину 80 разрядов. Формат данных с плавающей запятой совпадает с форматом, используемым в x86. Мне представляется, что этот набор регистров не очень богат для VLIW: почти столько же регистров имеют и RISC-процессоры.

Что касается функциональных исполнительных устройств, то TM5600, как и все другие модели Crusoe, включает два целочисленных АЛУ, устройство загрузки регистров/записи в память, устройство переходов и устройство с плавающей запятой (оно же мультимедийное). Всего за такт могут исполняться до четырех подкоманд VLIW. В Crusoe поддерживаются команды набора ММХ, но нет поддержки Intel SSE или AMD 3DNow!.

Среди положительных особенностей архитектуры VLIW-ядра Crusoe следует указать на относительно короткие конвейеры: 7-стадийный целочисленный и 10-стадийный конвейер с плавающей запятой.

Теоретически Crusoe может применяться для эмуляции различных архитектур. Однако ряд особенностей микроархитектуры этого процессора явно нацеливает их на эффективную эмуляцию х86. Кроме уже упомянутого формата чисел с плавающей запятой можно отметить выработку в ТМ5600 тех же кодов условий, что и в х86, поддержку TLB с теми же битами защиты и др.

Теперь самое время обратиться к особенностям программной эмуляции х86. В принципе двоичная трансляция сегодня уже не является диковинкой. Кроме Compaq FX!32 можно указать еще целый ряд реализаций подобного подхода. Принципиально важным отличием является то, что, по утверждениям представителей Transmeta, Crusoe практически не имеет потерь производительности из-за эмуляции кодов х86.

Сначала процессор декодирует коды х86 в режиме интерпретации «байт за байтом». Но если код выполняется несколько раз, механизм морфинга кода транслирует его в оптимальную последовательность молекул, а результат трансляции кэшируется для повторного использования. Для этого в ТМ5400 и TM5600 предусмотрены специальные 8-килобайтные SRAM-кэши для команд и данных (в ТМ3120 кэш данных вдвое меньше).

Кроме того, ТМ5600 имеет интерфейс к флэш-памяти (технология NVRAM, емкость 1 Мбайт), в которой располагается программное обеспечение морфинга кода. В процессе начальной загрузки оно переписывается в оперативную память, занимая 8-16 Мбайт; эта часть памяти становится недоступной для программ.

В результате всех ухищрений ТМ5400/ 700 МГц на стандартных тестах достигает, по утверждению самой Transmeta, уровня производительности Pentium III/500 МГц. Наблюдаемые потери производительности связаны с применением специфических энергосберегающих технологий.

Прежде чем обратиться к этим важнейшим для мира мобильных систем особенностям Crusoe, отметим некоторые отличия ТМ3120 и ТМ5400 от рассмотренного ТМ5600. ТМ5400 характеризуется в основном лишь вдвое меньшей емкостью кэша второго уровня. По большому счету, ТМ3120 отличается размерами кэш-памяти, технологией изготовления и тактовыми частотами.

А ты такой холодный...

ТМ5600/TM5400 (как, впрочем, и ТМ3120) обладают уникальными характеристиками энергопотребления. Основу низкого энергопотребления закладывает применение VLIW. Как мы уже видели выше, само ядро VLIW устроено относительно просто. Вместо сложной логики, обеспечивающей в современных суперскалярных микропроцессорах внеочередное спекулятивное выполнение команд, в Crusoe работает ПО. Упрощение аппаратуры позволило уменьшить и потребление энергии.

Следует упомянуть отличительную особенность ТМ5400/TM5600 — режим LongRun (в ТМ3120 отсутствует). В этом режиме процессор анализирует свою загрузку (за интервалы времени порядка 0,5 мкс) и в зависимости от нее может уменьшать частоту и напряжение ядра (в диапазоне 1,2-1,6 В), а тем самым и энергопотребление. Для минимального изменения напряжения (на один шаг) требуется не более 20 мкс. В результате тепловыделение TM5400/ 700 МГц оказывается лишь немногим больше, чем у TM3120/400 МГц.

Собственно, именно эта особенность, а не эмуляция х86 приводит к некоторому уменьшению производительности. По данным компании, ТМ5400/TM5600 с частотами 500-700 МГц потребляет при проигрывании DVD-дисков около 1,3 Вт, а МР3-файлов — около 0,6 Вт. На типичных офисных приложениях тратится меньше 1 Вт, в «спящем» состоянии — всего около 60 мВт.

Уровень энергопотребления у Crusoe ниже, чем у конкурентов, за исключением, быть может, последних версий StrongARM (порядка 450 мВт при частоте 600 МГц), однако последние процессоры не являются х86-совместимыми.

Рыночная жизнь

Если по параметрам энергопотребления Crusoe выглядят отлично, то ситуация с производительностью и с отношением стоимость/производительность у этих процессоров не совсем ясна. Кроме уже приведенного сопоставления ТМ5400/700 МГц с Pentium III/500 МГц мы можем указать только на качественную оценку, согласно которой производительность неких приложений для Windows 98, работающих на Celeron 333/400 МГц, близка к производительности аналогичных приложений Моbile Linux на ТМ3120/400 МГц.

Не густо, особенно учитывая, что более эффективная работа программного обеспечения в Mobile Linux может вообще перечеркнуть разумность такого сопоставления.

Как бы то ни было, привести что-то более конкретное о производительности Crusoe я не могу. Неоднозначно выглядит пока и рыночная жизнь Crusoe. Модель ТМ3120, ориентированная на рынок мобильных устройств, уже нашла свое применение в Web-блокнотах (Webpad). Модели ТМ5400/ TM5600 применяются в ноутбуках, и об их использовании заявляли некоторые компьютерные гранды. Правда, эти сообщения были весьма противоречивыми.

Михаил Кузьминский — старший научный сотрудник Центра компьютерного обеспечения химических исследований РАН. С ним можно связаться по телефону (095) 135-6388


Crusoe сегодняшнего дня

На сегодняшний день процессоры Crusoe предлагаются в трех модификациях: ТМ3120 с тактовыми частотами до 400 МГц, ТМ5400 и ТМ5600 (до 700 МГц). Эти модели отличаются в первую очередь тактовыми частотами и используемой кэш-памятью

 ТМ3120ТМ5400ТМ5600
Тактовая частота, МГц333/366/400500-700500-700
Емкость кэша L1, Кбайт96 128128
Емкость кэша L2, КбайтНет256512
Тип оперативной памятиSDRAM 66/133 МГцDDR SDRAMDDR SDRAM
Технологический процессМедный, 0,22 мкмМедный, 0,18 мкм(CMOS-8S)
Площадь, кв. мм7773н/д

Вернуться