Transmeta Corporation — американская полупроводниковая компания, базирующаяся в Санта-Кларе, Калифорния . Компания разработала микропроцессоры, совместимые с x86, с низким энергопотреблением на основе ядра VLIW и программного уровня под названием Code Morphing Software .
Программное обеспечение Code Morphing Software (CMS) состояло из интерпретатора , системы выполнения и динамического двоичного транслятора . Инструкции x86 сначала интерпретировались по одной инструкции и профилировались, затем, в зависимости от частоты выполнения блока кода, CMS постепенно генерировала более оптимизированные трансляции. [3] [4] [5]
В ядре VLIW реализованы функции, специально разработанные для ускорения CMS и переводов. Среди функций была поддержка общих предположений, обнаружение псевдонимов памяти и обнаружение самомодифицирующегося кода x86. [3] [4] [5]
Комбинация CMS и ядра VLIW позволила достичь полной совместимости с x86 при сохранении производительности и снижении энергопотребления. [3] [4] [5]
Transmeta была основана в 1995 году Бобом Кмеликом, Дэйвом Дитзелем, Колином Хантером, Эдом Келли, Дугом Лэрдом, Малкольмом Вингом и Грегом Зайнером. [6] [7]
Ее первый продукт, процессор Crusoe, был выпущен 19 января 2000 года. Transmeta стала публичной 7 ноября 2000 года. 14 октября 2003 года она выпустила свой второй основной продукт — процессор Efficeon. В 2005 году Transmeta сосредоточила внимание на лицензировании своего портфеля микропроцессорных и полупроводниковых технологий.[8] После увольнений в 2007 году Transmeta полностью перешла от производства полупроводников к лицензированию интеллектуальной собственности.[9] В январе 2009 года компания была приобретена Novafora [10] , а портфель патентов был продан Intellectual Ventures . Novafora прекратила свою деятельность в августе 2009 года. Intellectual Ventures лицензирует интеллектуальную собственность Transmeta другим компаниям на неисключительной основе. [11]
Transmeta произвела две архитектуры процессоров , совместимые с x86 : Crusoe и Efficeon – внутренние кодовые названия были «Fred» и «Astro». Эти процессоры появились в субноутбуках , ноутбуках , настольных компьютерах , блейд-серверах , планшетных ПК , персональных кластерных компьютерах и бесшумных настольных компьютерах, где низкое энергопотребление и рассеивание тепла имеют первостепенное значение.
До приобретения Novafora в 2009 году Transmeta имела умеренный успех в лицензировании своей интеллектуальной собственности. Лицензиарами технологии Transmeta являются Intel (с бессрочной неисключительной лицензией на все патенты и патентные заявки Transmeta, включая те, которые Transmeta может приобрести до 31 декабря 2017 г.), [12] Nvidia (с неисключительной лицензией на LongRun и Transmeta's LongRun и технологии LongRun2 и другая интеллектуальная собственность), [13] Sony (лицензиат LongRun2), [14] Fujitsu (лицензиат LongRun2) [15] и NEC (лицензиат LongRun2). [16]
Основанная в 1995 году, компания Transmeta начинала как скрытый стартап . Компании в значительной степени удавалось скрывать свои амбиции до официального запуска компании 19 января 2000 года. [17] За период скрытности было подписано более 2000 соглашений о неразглашении информации (NDA). [18] На протяжении первых нескольких лет существования Transmeta мало что было известно о том, что именно она будет предлагать. Ее веб-сайт появился в сети в середине 1997 года и примерно два с половиной года не отображал ничего, кроме текста: «Эта веб-страница еще не здесь».
12 ноября 1999 г. в HTML появился загадочный комментарий: [19]
Да, есть секретное послание, и вот оно: политика Transmeta заключалась в том, чтобы хранить молчание о своих планах до тех пор, пока ей не будет что продемонстрировать миру. 19 января 2000 года Transmeta собирается объявить и продемонстрировать возможности процессоров Crusoe. Одновременно все подробности будут размещены на этом веб-сайте, чтобы их мог увидеть каждый в Интернете. Crusoe будет крутым аппаратным и программным обеспечением для мобильных приложений. Крузо будет нетрадиционным, поэтому мы хотели заранее сообщить вам, чтобы вы пришли посмотреть весь веб-сайт в январе, чтобы вы могли получить полную информацию и получить доступ ко всем реальным деталям, как только они станут доступны. .
Transmeta попыталась тайно укомплектовать компанию персоналом, хотя спекуляции в Интернете не были редкостью. [20] Постепенно из компании стала поступать информация о том, что она работает над дизайном очень длинного командного слова (VLIW), который преобразует код x86 в собственный код VLIW.
19 января 2000 года компания Transmeta провела презентацию на вилле Монтальво в Саратоге, Калифорния [21] и объявила всему миру, что работает над процессором динамической двоичной трансляции , совместимым с x86 , под названием Crusoe. Компания также выпустила 18-страничный технический документ [3] с описанием технологии.
Transmeta позиционировала свою микропроцессорную технологию как чрезвычайно инновационную и революционную в сегменте рынка малой мощности. Они надеялись стать лидерами по мощности и производительности в сегменте x86, но первоначальные обзоры Crusoe показали, что производительность значительно отстает от прогнозов. [22] Кроме того, пока Crusoe находился в разработке, Intel и AMD значительно увеличили скорость и начали решать проблемы энергопотребления. Таким образом, Crusoe быстро оказался в сегменте рынка с малыми объемами, малым форм-фактором (SFF) и низким энергопотреблением. [ нужна цитата ]
7 ноября 2000 г. (день выборов в США) Transmeta провела первичное публичное размещение акций по цене 21 доллар за акцию. Стоимость достигла максимума в 50,26 доллара, а затем в день открытия упала до 46 долларов за акцию. Это сделало Transmeta последним из крупнейших IPO в сфере высоких технологий в период пузыря доткомов . Их показатели в день открытия не могли быть превзойдены до IPO Google в 2004 году .
Первые увольнения в компании произошли в июле 2002 года, в результате чего численность персонала сократилась на 40%. [23]
14 октября 2003 года Transmeta анонсировала процессор Efficeon, который, как утверждалось, имел вдвое большую производительность, чем исходный процессор Crusoe при той же частоте. [ нужна цитация ] Однако производительность по-прежнему была слабой по сравнению с конкурентами, а сложность чипа значительно возросла. Больший размер и энергопотребление, возможно, ослабили ключевое рыночное преимущество, которым чипы Transmeta ранее обладали перед конкурентами. [ нужна цитата ]
В январе 2005 года компания объявила о своей первой стратегической реструктуризации, отказавшись от производства полупроводниковой продукции и сосредоточившись на лицензировании интеллектуальной собственности. [8] В марте 2005 года Transmeta объявила, что увольняет 68 человек, сохраняя при этом 208 сотрудников. Сообщается, что Sony является ключевым лицензиатом технологии Transmeta, и примерно половина оставшихся сотрудников должна была работать над технологией оптимизации энергопотребления LongRun2 для Sony.
31 мая 2005 г. Transmeta объявила о подписании соглашений о покупке активов и лицензионных соглашений с гонконгской компанией Culture.com Technology Limited. Сделка сорвалась из-за задержек в получении лицензий на экспорт технологий от Министерства торговли США , и 9 февраля 2006 года стороны объявили о расторжении соглашений.
10 августа 2005 г. Transmeta объявила о своем первом прибыльном квартале. За этим последовал отчет GameSpot от 20 марта 2006 года о том, что Transmeta работает над «неназванным» проектом Microsoft . Как оказалось, это была безопасная платформа под брендом AMD для программы Microsoft FlexGo . [24]
11 октября 2006 года Transmeta объявила, что подала иск против корпорации Intel за нарушение десяти патентов Transmeta в США, касающихся компьютерной архитектуры и технологий энергоэффективности. В жалобе утверждалось, что Intel нарушала и нарушает патенты Transmeta, производя и продавая различные микропроцессорные продукты, включая, по крайней мере, линейки продуктов Intel Pentium III, Pentium 4, Pentium M, Core и Core 2.
7 февраля 2007 года Transmeta закрыла свое подразделение инженерных услуг, уволив при этом 75 сотрудников. Это произошло одновременно с объявлением о том, что компания больше не будет разрабатывать и продавать оборудование и сосредоточится на разработке и лицензировании интеллектуальной собственности. [9] Впоследствии AMD инвестировала 7,5 миллионов долларов в Transmeta, планируя использовать портфель патентов компании в области энергоэффективных технологий. [25]
24 октября 2007 г. Transmeta объявила о соглашении об урегулировании иска против корпорации Intel. Intel согласилась выплатить Transmeta 150 миллионов долларов авансом и 20 миллионов долларов в год в течение пяти лет, а также отказаться от своих встречных исков против Transmeta. Transmeta также согласилась лицензировать несколько своих патентов и передать небольшой портфель патентов Intel в рамках сделки. [12] Transmeta также согласилась никогда больше не производить процессоры, совместимые с x86. Одним из серьезных болевых вопросов в судебном процессе с Intel стала выплата примерно 34 миллионов долларов трем руководителям Transmeta. [26] [27] В конце 2008 года Intel и Transmeta достигли дальнейшего соглашения о передаче 20 миллионов долларов в год одной единовременной выплатой.
8 августа 2008 года Transmeta объявила, что передала Nvidia лицензию на свои технологии LongRun и чипы с низким энергопотреблением за единовременный лицензионный сбор в размере 25 миллионов долларов. [13] 17 ноября Transmeta объявила о подписании окончательного соглашения о приобретении Novafora, компании по производству цифровых видеопроцессоров, базирующейся в Санта-Кларе, Калифорния , за 255,6 миллиона долларов наличными, с учетом корректировок, зависящих от оборотного капитала. [28] Сделка была завершена 28 января 2009 г., когда Novafora объявила о завершении приобретения Transmeta. [29]
ООО «Интеллектуальное венчурное финансирование» [30] завершило приобретение портфеля патентов, ранее разработанного и принадлежавшего Transmeta Corporation, 4 февраля 2009 г. [28]
Из-за финансовых проблем и неспособности реализовать Новафора рухнула в конце июля 2009 года. [31] [32]
В Transmeta сменилось шесть генеральных директоров, которые управляли компанией на протяжении всей ее жизни.
Среди своей команды технологов Transmeta наняла некоторых наиболее известных деятелей отрасли, включая основателя Linux Линуса Торвальдса , разработчика ядра Linux Ханса Питера Анвина , автора Yacc Стивена К. Джонсона , [33] [34] и разработчика игр Дэйва Д. Тейлора . Частично из-за присутствия этих фигур индустрия постоянно гудела слухами и « теориями заговора », что привело к отличным отношениям с прессой .
Следующие диаграммы показывают доходы компании, операционные расходы, валовую прибыль и чистые убытки с 1996 по 2007 год. [1] [35] [36] Числа указаны в тысячах согласно отчетам 10-K. Когда-то компания была названа самой важной компанией Кремниевой долины в редакционной статье журнала Upside , но ей не удалось добиться прибыльности, пока она была поставщиком чипов.
За время своего существования Transmeta получила финансирование в размере 969 миллионов долларов. [ нужна цитата ]
Crusoe было первым семейством микропроцессоров компании Transmeta, названным в честь литературного персонажа Робинзона Крузо . [ нужна цитата ]
Transmeta потеряла большой авторитет и подверглась серьезной критике из-за больших расхождений между прогнозируемой производительностью и энергопотреблением и фактическими результатами. Хотя энергопотребление было несколько лучше, чем у предложений Intel и AMD, качество обслуживания конечных пользователей (т.е. время автономной работы) показало лишь незначительное общее улучшение. [37] Во-первых, программное обеспечение Code Morphing (CMS) в сочетании с архитектурой кэша искусственно завышало сравнение между тестами и реальными приложениями. Это связано с повторяющимся характером тестов и их небольшим объемом. Накладные расходы на программное обеспечение CMS, возможно, на самом деле были основной причиной значительного снижения производительности многих реальных приложений; простая архитектура ядра VLIW не могла конкурировать с приложениями, требующими больших вычислительных ресурсов; а интерфейс южного моста был ограничен из-за низкой пропускной способности для графики или других приложений с интенсивным вводом-выводом. Некоторые стандартные тесты даже не удалось запустить, что поставило под сомнение заявление о полной совместимости с x86. [22]
Процессор Efficeon представлял собой 256-битный процессор VLIW второго поколения компании Transmeta . Как и Crusoe ( 128-битная архитектура VLIW), Efficeon делал упор на вычислительную эффективность, низкое энергопотребление и низкое тепловое воздействие.
Модель Transmeta Efficeon с тактовой частотой 1,6 ГГц 2004 года (производственная по 90-нм техпроцессу) имела примерно те же характеристики производительности и мощности, что и Intel Atom 1,6 ГГц 2008 года (изготовленный по 45-нм техпроцессу). [38] [ не удалось проверить ] Efficeon имел встроенный северный мост , в то время как конкурирующий Atom требовал внешнего чипа северного моста, что значительно снижало преимущества Atom по энергопотреблению.
Процессор Transmeta Efficeon устранил многие недостатки Crusoe и продемонстрировал примерно двукратное реальное улучшение по сравнению с Crusoe. Его кристалл был значительно меньше, чем у Pentium 4 и Pentium M, если сравнивать их с одинаковым техпроцессом. Площадь кристалла Efficeon, изготовленного по 90-нм техпроцессу, составляет 68 мм², что составляет 60% от площади кристалла Pentium 4, изготовленного по 90-нм техпроцессу, при 112 мм², причем оба процессора имеют кэш-память второго уровня объемом 1 МБ.
Идея продажи продукта в определенном температурном диапазоне обычно не была понята массой рецензентов, которые были склонны сравнивать Efficeon с набором микропроцессоров x86, независимо от энергопотребления или применения. [ неправильный синтез? ] Один из таких примеров этой критики предполагает, что производительность все еще значительно отстает от Intel Pentium M (Banias) и AMD Mobile Athlon XP . [39]
Процессоры Transmeta представляли собой ядра с очень длинными командами (VLIW), на которых работал специальный программный уровень динамической двоичной трансляции, который вместе обеспечивал совместимость с архитектурой x86. Компания Transmeta зарегистрировала торговую марку термина «Code Morphing» для описания своей технологии [40] и назвала уровень программного обеспечения Code Morphing Software (CMS).
Transmeta использовала обратное смещение кузова , чтобы уменьшить потребляемую мощность примерно в 2,5 раза. (Похожая технология использовалась в процессорах XScale .) [41]
Программное обеспечение Code Morphing ( CMS ) — это технология, используемая микропроцессорами Transmeta для выполнения инструкций x86 . [42] [43] В широком смысле CMS читает инструкции x86 и генерирует инструкции для собственного процессора VLIW в стиле Shade. [44] Перевод CMS намного дороже, чем перевод Shade, но дает код гораздо более высокого качества. CMS также содержит интерпретатор и имитирует работу как в пользовательском, так и в системном режиме.
Программное обеспечение Code Morphing состояло из интерпретатора , системы выполнения и динамического двоичного транслятора . Инструкции x86 сначала интерпретировались по одной инструкции и профилировались, затем, в зависимости от частоты выполнения и других эвристик , CMS постепенно генерировала более оптимизированные переводы. [3] [4] [5]
Подобные технологии существовали в 1990-х годах: Wabi для Solaris и Linux , FX!32 для Alpha и IA-32 EL для Itanium , DAISY с открытым исходным кодом, [45] эмулятор Mac 68K для PowerPC. [ нужна цитация ] Подход Transmeta установил гораздо более высокую планку совместимости с x86 благодаря своей способности выполнять все инструкции x86 от начальной загрузки до последних мультимедийных инструкций.
Работа программного обеспечения для морфинга кода Transmeta аналогична финальному этапу оптимизации обычного компилятора. Рассмотрим фрагмент 32-битного кода x86:
add eax,dword ptr [esp] // загружаем данные из стека, добавляем в eaxadd ebx,dword ptr [esp] // то же самое, для ebxmov esi,[ebp] // загружаем esi из памятиsub ecx,5 // вычитаем 5 из регистра ecx
Сначала это упрощенно преобразуется в собственные инструкции:
ld %r30,[%esp] // загружаем из стека во временныйadd.c %eax,%eax,%r30 // добавляем к %eax, устанавливаем коды условий.ld %r31,[%esp]add.c %ebx,%ebx,%r31ld %esi,[%ebp]суб.c %ecx,%ecx,5
Затем оптимизатор исключает общие подвыражения и ненужные операции с кодами условий и, возможно, применяет другие оптимизации, такие как развертывание цикла :
ld %r30,[%esp] // загружаем из стека только один раздобавить %eax,%eax,%r30добавить %ebx,%ebx,%r30 // повторно использовать данные, загруженные ранееld %esi,[%ebp]sub.c %ecx,%ecx,5 // нужен только этот последний код условия
Наконец, оптимизатор группирует отдельные инструкции («атомы») в длинные слова инструкций («молекулы») для базового оборудования:
ld %r30,[%esp]; суб.c %ecx,%ecx,5ld %esi,[%ebp]; добавьте %eax,%eax,%r30; добавить %ebx,%ebx,%r30
Эти две молекулы VLIW потенциально могут выполняться за меньшее количество циклов, чем исходные инструкции на процессоре x86. [3]
Transmeta заявила о нескольких технических преимуществах этого подхода:
До выпуска Crusoe ходили слухи, что Transmeta полагалась на эти преимущества при разработке гибридного процессора PowerPC и x86. Но Transmeta первоначально сосредоточится исключительно на рынке x86 с чрезвычайно низким энергопотреблением.
Возможность быстрого обновления продуктов без перезапуска оборудования была продемонстрирована в 2002 году при обновлении на месте (загрузка) для повышения производительности процессора планшетного ПК HP Compaq TC1000 на базе Crusoe . Он снова использовался в 2004 году, когда в линейку продуктов Transmeta Efficeon были добавлены бит NX и поддержка SSE3 без необходимости внесения изменений в оборудование. На практике обновления на местах случались редко, поскольку поставщики системного оборудования не хотели нести дополнительные расходы на поддержку клиентов или тратить дополнительные деньги на контроль качества потенциальных обновлений или исправлений ошибок в поставляемых продуктах, по которым они уже закрыли книги доходов.
В сочетании со своим программным обеспечением для преобразования кода Efficeon наиболее точно отражает набор функций процессоров Intel Pentium 4 , хотя, как и процессоры AMD Opteron , он поддерживает полностью интегрированный контроллер памяти , шину HyperTransport IO и бит NX или нет. выполнить расширение x86 в режим PAE . Поддержка битов NX доступна начиная с версии CMS 6.0.4.
Считается , что вычислительная производительность Efficeon по сравнению с мобильными процессорами, такими как Intel Pentium M , ниже, хотя об относительной производительности этих конкурирующих процессоров публикуется мало.
Efficeon выпускался в двух типах корпусов: с шариковой решеткой из 783 и 592 контактов . Его энергопотребление было умеренным (некоторые потребляли всего 3 Вт на частоте 1 ГГц и 7 Вт на частоте 1,5 ГГц), поэтому его можно было пассивно охлаждать.
Было выпущено два поколения этого чипа. Первое поколение (TM8600) производилось по 130-нм техпроцессу TSMC и производилось на частоте до 1,1 ГГц . Второе поколение (TM8800 и TM8820) производилось по 90-нм техпроцессу Fujitsu и производилось на частотах от 1 ГГц до 1,7 ГГц.
Внутри Efficeon имел два арифметико-логических блока , два блока загрузки/сохранения/сложения, два блока выполнения, два блока с плавающей запятой / MMX / SSE / SSE2 , один блок прогнозирования ветвей , один блок псевдонимов и один блок управления. Ядро VLIW могло выполнять 256-битную инструкцию VLIW за такт. VLIW называется молекулой и имеет место для хранения восьми 32-битных инструкций (называемых атомами) за цикл.
Efficeon имел кэш инструкций L1 объемом 128 КБ, кэш данных L1 объемом 64 КБ и кэш L2 объемом 1 МБ. Все кэши были на кристалле.
Кроме того, программное обеспечение для морфинга кода Efficeon (CMS) зарезервировало небольшую часть основной памяти (обычно 32 МБ) для кэша динамически транслируемых инструкций x86.
В принципе, должна быть возможность оптимизировать код x86 в пользу программного обеспечения Code Morphing или даже для того, чтобы компиляторы могли напрямую ориентироваться на собственную архитектуру VLIW . Однако в 2003 году Линус Торвальдс , очевидно, отверг эти подходы как нереалистичные: [46] [47]
Собственный код Crusoe — даже если он был задокументирован и доступен — не очень подходит для ОС общего назначения. В нем нет понятия защиты памяти и нет MMU для доступа к коду, поэтому такие вещи, как модули ядра, просто не будут работать.
Переводы обычно лучше, чем статически скомпилированный собственный код (потому что весь процессор предназначен для спекуляций, а статические компиляторы не знают, как это сделать), и поэтому переход в собственный режим не обязательно приводит к повышению производительности.
Так что нет, особой выгоды от этого не будет, не говоря уже о том, что это даже не вариант, поскольку Transmeta все равно никогда не публиковала достаточно подробностей, чтобы это сделать. В основном из простых соображений безопасности: если вы начнете предоставлять интерфейсы для работы с «микрокодом», вы можете сделать очень неприятные вещи.
[…Я имел в виду…] «ты не можешь этого сделать». И мы даже не будем рассказывать подробности того, как этого сделать нельзя.
Фактически, даже внутри трансметы вы не сможете этого сделать, не имея специально освященной версии флэша, допускающей обновления. Если вы когда-нибудь увидите машину с заметной надписью «CMS обновлена до версии для разработки», то это намек на то, что разработчики TMTA могут изменить эту машину.
— Линус Торвальдс, список рассылки linux-kernel
Последующий реверс-инжиниринг , опубликованный в 2004 году, проясняет некоторые детали собственной архитектуры VLIW и связанного с ней набора команд и предполагает, что существуют фундаментальные ограничения, препятствующие портированию на нее такой операционной системы, как Linux. [48] [49]
В той же работе запатентованная технология Transmeta также сравнивается с предшествующим уровнем техники, опубликованным и в некоторых случаях запатентованным IBM, и предполагает, что некоторые утверждения могут не выдерживать детального изучения. [49]
«Метод работает для всех типов вычислительных задач», — сказал Стив Джонсон, руководитель отдела программного обеспечения Transmeta.