13 лет назад 17 декабря 2010 в 16:52 1338

В конце XX века процессоры архитектуры x86 делали, кажется, все кому не лень. Даже несмотря на то, что год от года кристаллы становились все сложнее, техпроцессы дороже, а требования все выше. Этот выматывающий марафон выдержали не все. Какие имена! NexGen, Rise, IDT/Centaur, Cyrix, Transmeta – всего каких-то десять-пятнадцать лет назад все они верили в светлое будущее и пытались отъесть кусочек рынка у процессорных гигантов. Время же распорядилось по-своему, и сейчас камни этих производителей можно отыскать исключительно в коллекциях отъявленных любителей старины. NexGen была поглощена AMD в 1996 году. VIA прибрала к рукам сначала Centaur, а потом добралась и до Cyrix, выкупив ее у National Semiconductor. Rise отошла к SIS все в тех же 90-х.

Одна лишь Transmeta выстояла до наших времен. Основанная в 1995 году компания сдалась и была куплена совсем недавно – в 2009 году. За свою почти пятнадцатилетнюю историю она выпустила всего два семейства процессоров, наделавших немало шума. Безумный сплав софта и железа, ориентированность на минимальное энергопотребление и сам Линус Бенедикт Торвальдс (Linus Benedict Torvalds) в штате – все это способно вызвать слезу умиления у любого технаря. Ну а если слеза никак не идет, да и название «Transmeta» вообще не вызывает никаких ассоциаций, попробуем это исправить.

Тихий взлет
С самого начала своего существования Transmeta была окутана ореолом таинственности. Оно и неудивительно, ведь целых четыре с половиной года компания старалась особо не распространяться о своей деятельности, даже чураясь излишней огласки. Природа, как известно, не терпит пустоты, и информационный вакуум постепенно наполнился разнообразными слухами и фантазиями. Обозреватели предсказывали появление невиданной доселе процессорной архитектуры, позволяющей эмулировать любой существующий набор команд. Готовые же камни должны были с легкостью утереть нос третьему Intel Pentium, не обращая особого внимания на то, что команды x86 не являлись для них родными. И вот наконец-то 19 января 2000 года компания решила, что новый проц готов явиться миру, и нарушила многолетнее молчание. Официальный пресс-релиз предрекал ни много ни мало, а настоящую революцию в области мобильных вычислений.

Пока остальные игроки рынка стремились любой ценой достичь заветного гигагерца, Transmeta сконцентрировалась на снижении энергопотребления своих кристаллов. Компания продвигала собственный процессор Crusoe в качестве основы для разнообразных мобильных компьютеров. Недорогой TM3120, работающий на частоте от 333 до 400 МГц, предназначался для легкого и дешевого интернет-терминала с не самой высокой вычислительной мощью, но способного автономно продержаться несколько часов. Его предполагалось продавать по цене от $65 до $89, а стоимость готового устройства должна была варьироваться от 500 до 999 «вечнозеленых». Более производительные модели TM5400 / TM5600 работали на частотах от 500 до 700 МГц, а компьютеры с ними должны были стоить уже от 1200 до 1500 американских денег.

По заверениям Transmeta, машины на базе Crusoe могли трудиться в автономном режиме до 8 ч, в зависимости от емкости батареи и мощности процессора, оставаясь совместимыми со всеми наиболее распространенными операционными системами и программами, написанными для них. Напомню, что тогда, на заре XXI века, типичный ноутбук весил не меньше 2 кг, и то если носил звание «тонкого и легкого», а от батарейки работал не более 2,5-3 ч. При этом стоимость самых достойных образцов могла запросто доходить до $3500. Компактные и ультракомпактные устройства, впрочем, тоже были. Однако они довольно часто базировались на процессорах, не использующих архитектуру x86, и потому были вынуждены довольствоваться собственными специализированными операционными системами, что здорово ограничивало область их применения.

Идеологически концепция, выдвинутая Transmeta, очень напоминает современные нетбуки и системы на базе CULV, не правда ли? Хотя и с одной оговоркой: это происходило целых девять лет назад. Хай-тек в очередной раз продемонстрировал, что развивается по спирали, а все новое – это как следует забытое старое. Например, анонсированный вскоре после выхода Crusoe ноутбук VAIO PictureBook от Sony мог похвастаться массой чуть меньше килограмма, 5 ч автономной работы и 600-мегагерцевым процессором. По заверениям Sony, применение нового ЦПУ позволило вдвое увеличить время работы от батарей. Новинка от Fujitsu, FM Biblo Loox S, также не выходя за килограмм по весу, могла продержаться уже 8 ч и была по современным меркам вылитым нетбуком, так как наряду с небольшой вычислительной мощью не имела и привода для оптических дисков. Немудрено, что с такими «аппетитными» девайсами на руках Transmeta получила множество наград на различных выставках, а также призов от специализированных журналов. Еще бы, дешевый x86-процессор, потребляющий гораздо меньше энергии, чем камни от именитых конкурентов, – это не каждый день увидишь. Как такое вообще возможно? А все дело в нестандартном подходе.

Ничто не ново…
Н ельзя сказать, что идея динамической трансляции кода из одного набора команд в другой зародилась в недрах Transmeta. Скорее они первыми запустили в производство массовый процессор, не только работавший исключительно через программный слой, но и обещавший делать это чуть ли не быстрее полностью «железных» образцов. Существуют и другие примеры успешного применения данной концепции. Например, IBM в рамках своих исследовательских программ породила проект DAISY. Его целью стало обеспечение полной совместимости между популярными на то время процессорными архитектурами PowerPC, x86, S/390 и даже виртуальной машиной Java с современными VLIW-движками. Быстрая эволюция VLIW-ядер серьезно усложняла написание под них софта, и DAISY должна была устранить эти проблемы.

Apple представила свой динамический транслятор под названием Rosetta, когда переходила с процессоров архитектуры PowerPC на интеловский Core 2. С его помощью удалось избежать дефицита софта под новую платформу, так как старое ПО, немного притормаживая, вполне сносно функционировало. Благо имелся опыт, ведь ранее, когда «яблочная» компания «переезжала» с процессоров 680×0 на PowerPC, она тоже использовала эмулятор, но под названием Mac 68K.

Кроме того, корпорация DEC использовала технологию FX!32, а Intel соорудила IA-32 Execution Layer, чтобы заставить свои процессоры, соответственно Alpha и Itanium, понимать команды x86. В обоих случаях эмуляторам удавалось вытягивать из железа до 60% производительности при использовании чужого кода. Иной раз поражаешься, на какие только ухищрения готовы пойти разработчики железа, чтобы успевать подкладывать новые рельсы под несущийся локомотив софтостроительной индустрии!

Первенец
Не секрет, что архитектура x86 и ее система команд довольно сложны. Соответственно, и процессор, ее поддерживающий, должен был быть сложен, содержать тьму транзисторов, иметь кристалл большой площади и, следовательно, быть дорогим в производстве. Разрабатывать такого монстра, желательно способного конкурировать с уже раскрученными процами компаний, которые их штампуют уже далеко не первый год, Transmeta позволить себе не могла. Печальная судьба мелких производителей процессоров архитектуры x86, канувших в Лету один за другим, лишь подтверждала это.

Поэтому Transmeta пошла иным путем: переложила все тяготы обработки сложных инструкций на специальный программный слой, а камень сделала максимально простым и компактным. Этот хитрый ход позволил инженерам компании на три четверти сократить количество используемых транзисторов по сравнению с аналогичным, но полностью аппаратным решением. Заметное упрощение структуры камня не замедлило сказаться на уменьшении площади кристалла, а вместе с тем и на его тепловыделении со стоимостью. Для примера: площадь кристалла процессора TM5400 составляла 73 мм2, а мобильный Pentium III, выполненный с применением того же техпроцесса, занимал на подложке уже 103 мм2, при том что кэш первого уровня у детища Intel был вчетверо меньше и он, в отличие от камня Transmeta, не включал в себя интегрированный северный мост.

В итоге Crusoe представлял собой не обычный процессор в привычном понимании этого слова, а целый программно-аппаратный комплекс. Сложная софтверная часть транслировала x86-инструкции в более простые команды, понятные примитивному камню. Технология получила название Code Morphing и теоретически позволяла преобразовать «на лету» команды не только IA-32, но и вообще любой существующей или будущей архитектуры, будь то ARM или IA-64, используемая в семействе Itanium. Кроме того, вполне реально было обновить сам код транслятора, увеличивая его производительность, исправить ошибки или наделить процессор новыми функциями, к примеру поддержкой SSE. «Родные» инструкции были запрятаны настолько глубоко, что даже BIOS работал исключительно с программным слоем, общаясь с камнем на привычном языке x86. Какое-никакое, а тоже подспорье в уменьшении стоимости готовых систем.
К тому же благодаря полной независимости внутренней системы команд от внешней можно свободно изменять архитектуру самого процессора, не опасаясь потерять совместимость с уже откомпилированными под старое ядро софтинами. Так, TM3120 и TM5400 являются по сути разными, совершенно несовместимыми камнями, однако софтовая прослойка полностью скрывает их различия от прикладных программ, оставляя инженерам больший простор для дальнейшей модернизации микроархитектуры Crusoe. Сам камень был построен по принципу VLIW. Длинное 128-битное слово, называемое «молекулой», включало в себя до четырех 32-битных команд-«атомов», выполняющихся параллельно. Каждая из этих RISC-подобных инструкций способна загрузить задачами одно из четырех исполнительных устройств процессора: блок целочисленных вычислений, блок вычислений с плавающей точкой, блок ветвлений и блок сохранения и загрузки из памяти.

Расположение «атома» в «молекуле» однозначно определяло, какому узлу камня предстоит выполнять работу. И если в классической VLIW-архитектуре за наполнением слова микрокомандами следит весьма продвинутый компилятор, то в случае с Crusoe эту ответственность берет на себя софт. Подсистема Code Morphing автоматически преобразует инструкции во внутренний формат, а так как это происходит в реальном времени, с живыми данными и регистрами процессора, теоретически она может более качественно оптимизировать код и плотнее загрузить исполнительные устройства камня. Все «молекулы» исполняются последовательно, поэтому камушек от Transmeta был лишен сложных блока внеочередного исполнения команд и буфера переупорядочивания памяти, используемых в суперскалярных процессорах.

Кроме отказа от сложного ядра Transmeta применила технологию энергосбережения под названием LongRun. Процессор совместно с софтовым преобразователем кода мог динамически изменять свою тактовую частоту и вольтаж в зависимости от текущей загрузки. Совершеннейшая обыденность в наши дни – и настоящая диковина почти десять лет назад. Разумеется, у системы в целом имеются и недостатки. Процессору приходится тратить некоторое количество тактов на преобразование кода из одной системы команд в другую и выделять память для хранения внутренних инструкций, уже готовых к выполнению VLIW-ядром. Это могло сказаться на общей производительности самым негативным образом. И таки сказалось.

Об умеренном питании
Большинство мобильных процессоров далекого 2000 года не могли похвастаться особо грамотным управлением собственным энергопотреблением. Так, технология Intel SpeedStep, впервые примененная в мобильных версиях Pentium III, могла снижать рабочую частоту камня в зависимости от того, к какому источнику питания он был подключен. «Высокопроизводительный» режим подразумевал питание от розетки, частоту 650 МГц и напряжение питания в 1,6 В. При переходе на батарейную «диету» процессор снижал собственную частоту до 500 МГц, а напряжение до 1,35 В, что приводило к уменьшению его аппетитов с 9 до 5 Вт. Аналогичная по идеологии разработка от AMD называлась AMD Power Now!

В отличие от своих именитых конкурентов, процессоры которых могли функционировать только в двух режимах экономии энергии, Transmeta разработала более гибкую схему питания камня. Ее технология LongRun позволяла ему динамически регулировать собственную частоту в зависимости от загрузки и выбирать наиболее подходящее напряжение для функционирования в этом режиме. Если работающему приложению хватает половины вычислительных мощностей процессора, то Code Morphing не будет требовать от камня большей частоты, чем необходимо в данный момент. Например, Crusoe TM5400 мог плавно понижать свою частоту с 633 до 300 МГц, а напряжение с 1,6 до 1,2 В.

Потребление энергии при этом так же плавно менялось с 6,5 до 1,5 Вт. Для воспроизведения DVD этому процессору хватало половины мощностей, что снижало его «аппетиты» всего до 1,6 Вт без какой-либо помощи со стороны софта. Аналогичную технологию под названием LongHaul представила и VIA, однако динамическое управление напряжением появилось только в ее второй версии.

Испытание реальностью
Хотя создатели Crusoe и обещали дать мобильным пользователям производительность, сравнимую с обычными процессорами, на деле все оказалось не так радужно, как живописал отдел маркетинга. Первые тесты быстро выявили отставание новичков от продукции матерых производителей. Чтобы сохранить лицо, компании пришлось еще пуще напирать на энергоэффективность своих изделий и позиционировать их как основу для пусть не самых скоростных, но зато компактных и по-настоящему мобильных устройств, способных трудиться от батарей целый день. Причин для «тормознутости» свежих камней отыскалось множество. Недостаточная пропускная способность интерфейса между северным и южным мостом служила причиной медлительности жестких дисков. Отсутствие поддержки AGP закрывало процу путь к игровым и рабочим станциям. Несовершенная структура кэша второго уровня, использовавшего 128-байтные строки, приводила к снижению эффективности на операциях с небольшими случайными массивами данных, а его объем оказался недостаточным для работы транслятора и одновременного хранения пользовательских данных.

Сам Code Morphing-движок тоже, как выяснилось, был отнюдь не таким совершенным, как в документации и пресс-релизах. 16 Мбайт оперативной памяти, резервируемой для кэширования уже «перекомпилированного» кода, зачастую не хватало для развесистых компонентов Windows. При переполнении приходилось конвертировать код заново с сопутствующей потерей драгоценных тактов и вытеснением из кэша полезных данных. Он также вносил свою негативную лепту в общее быстродействие системы и на более низком уровне, часто будучи не в состоянии полностью загружать исполнительные блоки процессора командами, особенно на реальном софте, а не на повторяющихся бенчмарках. Существует мнение, что именно периодический простой некоторых функциональных узлов Crusoe делал его таким «холодным». Совместимость с x86 тоже порой оказывалась не полной, что приводило к ошибкам в работе некоторых программ. Чтобы как-то выправить ситуацию, Transmeta начала постепенно поднимать частоту своих камней, с выпуском процессора TM5800 доведя ее до гигагерца. Как и следовало ожидать, это весьма негативно сказалось на его энергопотреблении и стабильности. Некоторые популярные бенчмарки даже отказывались на нем запускаться. Впрочем, даже если бы они и запустились, похвастать камешку все равно было нечем.

Работа над ошибками
В компании, тем не менее, не унывали. Проанализировав причины провала, в 2003 году Transmeta представила следующее поколение камней Efficeon, в которых инженеры выправили все, до чего смогли добраться. Встроенный контроллер памяти получил полноценную поддержку DDR SDRAM. В северный мост имплантировали интерфейс AGP. «Узенький» PCI для связи между северным и южным мостами заменили современной шиной HyperTransport. Размер «молекулы» VLIW-движка был увеличен вдвое, и теперь он в теории был способен просчитать сразу восемь 32-битных инструкций-«атомов» за такт. Как видно, особенность VLIW-процессоров, чрезмерно раскрывающих свое внутреннее устройство компилятору и препятствующих безболезненному изменению их архитектуры без потери обратной совместимости, никак не сказалась на масштабной модернизации Crusoe. Оболочка Code Morphing научилась работать с инструкциями SSE. Объем кэша L2 был увеличен до 1 Мбайт, а частота самого процессора достигла 1,6 ГГц. По грубым оценкам, новый камень превосходил Crusoe по производительности почти в два раза.

Казалось, теперь ничто не мешало Transmeta пробиться в высшую лигу. Но нет: бесплатно в процессор ничего не добавляется. Из-за всех нововведений увеличилась площадь кристалла, а вместе с ней выросла и себестоимость. Конкуренты не сидели сложа руки, а Intel как раз выкатила свою ноутбучную платформу Centrino, в которой основательно снизила энергопотребление, не сильно уронив производительность. Для этого компания специально разработала ядро, предназначенное для мобильных компьютеров, а не традиционно «доработала напильником» подходящий «домашний» процессор. По сути, Transmeta несколько опередила время, выпустив энергоэффективный процессор в эпоху гонок за частотой. Хвастаться не количеством гигагерц, а тем, у кого радиатор кулера меньше, производители будут позже. Пока же одни стремились к заветной планке в 4 ГГц, а другие из последних сил штурмовали вершину в два, не заостряя внимания на TDP и энергосбережении в целом. В результате экономный Efficeon не приглянулся потребителям, которые предпочитали более прожорливые, но при этом и более быстрые процессоры конкурентов, а до очередного веб-пузыря и нетбуков было еще далеко.

Горечь поражений
Несмотря на большую шумиху в прессе и экзотические технологии, бизнес Transmeta не был прибыльным. Многомиллионные убытки, которые несла компания, явно не добавляли ей сил и не укрепляли веру инвесторов в успех. Вместе с надеждами уходило и финансирование. Уже в июне 2002 года компания избавилась от 40% сотрудников. Попытав счастья в нескольких успешных и не очень проектах, Transmeta в феврале 2007 года объявила о том, что больше не будет производить и продавать железо, а сконцентрируется теперь на торговле интеллектуальной собственностью и разработке микросхем.

За время разработки Crusoe и Efficeon компания накопила солидный пакет патентов на технологии трансляции машинных команд и энергосбережения процессоров. Ей даже удалось заполучить от Intel в общей сложности $250 млн за их нарушение. В дальнейшем Transmeta лицензировала свои разработки таким крупным производителям полупроводниковых изделий, как AMD, Sony, NEC, Fujitsu, NVIDIA и Toshiba, однако это не уберегло ее от банкротства. 28 января 2009 года компания была приобретена производителем видеопроцессоров из Сан-Хосе, фирмой Novafora, прекратив свое самостоятельное существование.

К слову, сама Novafora ненадолго пережила поглощенную ею жертву, закрывшись в августе 2009 года. Более 140 патентов, полученных компанией при покупке Transmeta, были проданы Intellectual Ventures, занимающейся лицензированием различных технологий. И не исключено, что наследие одной из самых амбициозных высокотехнологичных компаний конца XX – начала XXI века все еще работает в каких-нибудь скромных чипах.

Занавес
На этой печальной, а может быть и не очень, ноте мы, пожалуй, и закончим. Неизвестно, как бы все повернулось, если бы «вебдваноль» случился чуть раньше, хай-тек подешевел чуть быстрее, а нетбуки появились в далеком 2003-м. Возможно, сейчас вместо Atom’ов в крохотных компьютерах трудились бы Efficeon’ы, тем более что по производительности они вполне сопоставимы. Но произошло то, что произошло. Во всяком случае, теперь мы знаем, что Intel отнюдь не всегда первая. Мораль же этой выдернутой из прошлого истории проста: всему свое время, и противостоять этому закону не могут ни блестящие идеи, ни талантливые инженеры. UP

Никто не прокомментировал материал. Есть мысли?