Мы живём в золотой век процессоров с миллиардами транзисторов на борту, тактовая частота которых близка к 5 ГГц. «Место под солнцем» заняли такие гиганты, как Intel и AMD, сделавшие ставку на архитектуру x86_64, а также Apple, решившая занять пьедестал архитектуры ARM. Это был долгий и сложный путь конкурентной борьбы, пройти по которому до конца не удалось калифорнийской компании Transmeta, прекратившей существование в 2009 году.

Тем не менее она оставила значительный след в истории развития компьютерной техники, предложив процессоры на VLIW-архитектуре, которые были совместимы с существующими операционными системами при помощи технологии морфинга кода. Эти процессоры устанавливались в портативные компьютеры Elitegroup (в РФ эта компания использовала бренд iRu), Sony и Compaq. В руки автора этой статьи попал любопытный артефакт тех лет — TabletPC Compaq TC1000 с процессором Transmeta Crusoe TM5800. Так что устраивайтесь поудобнее, наливайте чаю — и добро пожаловать под кат.

Предыстория

Впервые о Transmeta я услышал слишком поздно. Интерес к этому удивительному решению инженеров проснулся у меня после прочтения статьи «Говорите длиннее: история процессоров компании Transmeta» хабраюзера @ereinion. Стало ясно, что удивительная архитектура прошла мимо меня. Так родилась идея найти любой живой компьютер с подобным процессором и самостоятельно его «пощупать».

Первый блин вышел комом. На одной из барахолок я обнаружил Sony Vaio C1 PictureBook со сгоревшим LCD-экраном. Отдавали его за копейки в идеальной комплектации, даже с оригинальной коробкой. Понадеявшись, что смогу запустить хотя бы материнскую плату без экрана с внешним монитором, купил железку и в тот же день разобрал до основания. Увы, не повезло.

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

Всё изменилось, когда на одном небезызвестном сайте по продаже разного рода новых и б/у вещей я увидел Compaq TC1000. Это уникальный TabletPC с сенсорным экраном Wacom и блоком из клавиатуры с трекпоинтом. Хотели за него всего лишь 2 500 рублей, так что внутренняя жаба осталась спокойной. Правда, продавец честно предупредил о «севшей» подсветке дисплея. Как потом выяснилось, он просто не разобрался, где её можно настроить. Спустя некоторое время железка уже была у меня и радовала глаз необычным видом.

Технические характеристики

Единственной характеристикой, которая меня действительно волновала, был процессор. Transmeta Crusoe (названный в честь Робинзона Крузо) TM5800 — это VLIW-процессор с тактовой частотой 1 ГГц, произведённый на фабрике TSMC по 130-нанометровому техпроцессу:

Родная утилита Transmeta, отображающая информацию о процессоре
Родная утилита Transmeta, отображающая информацию о процессоре

Стоит сразу же оговориться, что заявленную частоту в 1 ГГц нельзя сравнивать с 1 ГГц x86-процессоров. Процессор действительно работал на такой частоте, но его единственной программой был транслятор команд x86<>VLIW. И разумеется, такой транслятор был значительно медленнее, чем нативное исполнение x86-инструкций. Так что если сравнить технические характеристики Transmeta TM5800 и Intel Pentium III-M, то они будут очень похожи, за исключением энергопотребления и тепловыделения.

Transmeta TM5800

Intel Pentium III-M

Тактовая частота

1 000 Mhz

1 000 Mhz

Частота системной шины

125 Mhz

133 Mhz

Кэш L1

64 КБ (8-канальный для инструкций) + 64 КБ (16-канальный для данных)

16 КБ (4-канальный для инструкций) + 16 КБ (4-канальный для данных)

Кэш L2

512 КБ (4-канальный)

512 КБ (8-канальный)

Макс. энергопотребление

14,5 W

22,86 W

Макс. тепловыделение

8,5 W

20,5 W

Видно, что TM5800 более чем вдвое холоднее и потребляет гораздо меньше энергии. При этом его кэш первого уровня более ёмкий и производительный. Бонусом в процессорах Transmeta была собственная технология энергоэффективности LongRun. Тактовая частота процессора и подаваемое на него напряжение резко снижались при простое. Схожие по принципу работы технологии были у всех производителей процессоров того времени: Intel SpeedStep, AMD Cool’n’Quiet / PowerNow! и VIA LongHaul. Казалось бы, вот он — победитель… Увы, в реальности «третий пенёк» был значительно быстрее своего необычного конкурента.

Кому было нужно

Ну и зачем, вы скажете, создавать столь странный гибрид ежа и ужа? Он явно был медленнее своих «коллег по цеху». Тому есть несколько причин. Первая заключалась в том, что VLIW-архитектура позволяла строить более простые процессоры с меньшим количеством транзисторов. Это самым благоприятным образом отражалось на стоимости производства и проектирования. Бонусом был значительно меньший нагрев и сниженное энергопотребление.

Вторая причина — универсальность. Поскольку все инструкции закладывались программно, добавление какой-нибудь новой не требовало переделки аппаратной части процессора. Было достаточно обновить код транслятора — и на этом всё, старый процессор начинал исполнять новую инструкцию. Покопавшись в интернет-архиве среди драйверов TC1000, удалось лишь найти багфикс, который менял программу транслятора, исправляя поведение USB. Транслятор хранится в чипе Flash ROM, так что багфикс фактически перепрошивал его по аналогии с BIOS.

Помимо создания процессоров для потребительских устройств, Transmeta целилась выйти на серверный рынок. Низкое тепловыделение и энергоэффективность процессоров позволяли создавать блейд-серверы с очень высокой, на тот момент, плотностью. Процессоры от Intel были быстрее, но и значительно горячее. Более медленные, но холодные процессоры Transmeta создавали серьёзную конкуренцию:

«Лезвие» с процессором Transmeta (источник изображения)
«Лезвие» с процессором Transmeta (источник изображения)

В одно стандартное 3U-шасси для 19” стойки входило 24 таких лезвия. Поместив в одну 42U-стойку несколько шасси, можно было собрать кластер, содержащий 240 таких процессоров, и при этом не испытывать проблем с охлаждением:

Blade server by RLX Technologies (источник изображения)
Blade server by RLX Technologies (источник изображения)

Как работает морфинг кода

Уровни абстракции VLIW-архитектуры в процессорах Transmeta (источник изображения)
Уровни абстракции VLIW-архитектуры в процессорах Transmeta (источник изображения)

Расскажу коротко о том, что происходило при запуске такого процессора, как TM5800. После подачи питания процессор начинает выполнять загрузочный код из Flash ROM. Вначале выполняются все основные операции POST, а затем считываются данные OEM-конфигурации. В них процессору сообщается, как настроить оперативную память системы и подготовиться к копированию в неё основного образа CMS (Code Morphing Software).

Как только DRAM-контроллер и кэши настроены, основной образ CMS передаётся в ядро, распаковывается и копируется в заранее подготовленную область оперативной памяти. Там CMS и будет находиться всё время, пока компьютер включён. Именно из-за этого, кстати, в операционной системе отображается меньше памяти, чем фактический объём модуля. Образ кода CMS невелик, всего лишь 1,7 Мб в распакованном виде, и отображается по смещению 0x8e000. Суммарно же подготовленная область составляет 16 Мб.

CMS в этом процессе крайне важен, так что разработчики предусмотрели механизм отказоустойчивости. Внутри Flash ROM находится не одна, а две копии транслятора. При запуске ожидается, что корректно работающая CMS установит внутренний «сторожевой» регистр в течение первых нескольких миллионов циклов. Если этого не произошло, то при перезапуске будет использована резервная копия.

Каждая 128-битная инструкция (в терминологии Transmeta — молекула) выполняет до четырёх 32-битных инструкций x86 (атомов) за раз. Программный интерпретатор пристально следит за производительностью. Когда какой-либо кусок кода выполняется много раз подряд, система отключает интерпретацию и пробует исполнить JIT-скомпилированную версию этого куска кода. Для этого выделена специальная область памяти, так называемый Tcache (кэш трансляции). Кстати, JIT-компилятор настроен так, чтобы иметь возможность менять порядок исполнения инструкций для увеличения производительности на уровне VLIW-архитектуры.

С точки зрения пользователя это выглядит странно. Если одно и то же приложение запускать несколько раз, то сначала старт будет происходить медленно. Тот же «Проводник Windows» весьма неохотно отрисовывается первые 3-5 раз. Но затем, как только система распознала, что запускает всё время один и тот же кусок кода, происходит «магия», и запуск идёт мгновенно.

Не каждое приложение выдержит подобное издевательство, так что предусмотрен механизм отката. Если в Tcache возникает исключение, то CMS отправляет команду на восстановление предыдущего состояния, а затем происходит попытка послать в интерпретатор регион памяти целиком, без изменения порядка выполнения инструкций. В случае, если это решало проблему, приложение продолжало работать. А если нет, то это означало генерацию исключения уже на уровне x86.

Теоретически можно было делать морфинг кода не только для x86, но и для других архитектур. Сразу представляется, как можно одним движением превращать его в какой-нибудь процессор PowerPC или ARM. Мечта энтузиастов и исследователей. Увы, но топ-менеджмент считал иначе и видел успех именно в x86-совместимости.

Внешний вид и интерфейсы

Внешний вид док-станции для Compaq TC1000 (изображение из официальной документации)
Внешний вид док-станции для Compaq TC1000 (изображение из официальной документации)

Достаточно теории, пора переходить к практике. Увы, но мой экземпляр Compaq TC1000 за свою долгую жизнь где-то потерял активное перо Wacom (с редкой батарейкой типоразмера АААА), док-станцию с приводом оптических дисков и оригинальное зарядное устройство. Мне же достался лишь сам планшет, универсальный зарядник и хитрый тандем из клавиатуры, трекпоинта и поворотного механизма с креплением.

Внешний вид моего Compaq TC1000
Внешний вид моего Compaq TC1000

Крепление, кстати, имеет неудачную конструкцию и за время эксплуатации разболтало посадочные отверстия в планшете. Одно из них вообще сломалось и перестало держать. За счёт большого веса планшет больше отклоняется назад, что приводит к отключению разъёма, соединяющего его с клавиатурой. Так что штатной клавиатурой пользовался всего пару раз. В остальное время к планшету подключена обычная внешняя клавиатура с тачпадом.

Крепление слева сломано, восстановить его проблематично
Крепление слева сломано, восстановить его проблематично

Внутри планшета установлено 256 Мб оперативной памяти типа DDR. Она не распаяна на плате, но и заменить её просто так не получится. Инженеры поместили разъём с ней на обратную сторону материнской платы. Но при этом можно добавить ещё один модуль, буквально открутив пару болтов на задней крышке. Объясняется это обстоятельство очень просто. Планшет поддерживает только 768 Мб оперативной памяти суммарно. Так что максимальный размер модуля, который пользователь может установить самостоятельно, не должен превышать 512 Мб. Так что разбирать планшет полностью, чтобы добраться до второго разъёма с ОЗУ, нет никакой реальной надобности:

Пустой разъём для установки дополнительного модуля ОЗУ справа
Пустой разъём для установки дополнительного модуля ОЗУ справа

Роль постоянного хранилища выполняет 2.5” жёсткий диск от Hitachi размером 30 Гб. Подключён он к интерфейсу ATA (IDE) и не блещет производительностью. Скорость вращения шпинделя всего лишь 4 200 об/мин, да и badblock’ов на нём уже прилично. Так что заказал переходник mSATA<>IDE и сам твердотельный накопитель. Это должно существенно увеличить скорость обмена данными. Да и перемещать планшет можно будет менее аккуратно, не переживая о сохранности данных.

Из беспроводных интерфейсов здесь есть Wi-Fi, правда, только версии 802.11b. Поддерживается устаревшее WEP-шифрование, так что разумнее использовать обычное проводное соединение по витой паре. Максимальная скорость ограничена набором стандартов Fast Ethernet, то есть 100 Мбит/с. Инфракрасного порта или Bluetooth нет. Зато есть аналоговый модем, позволяющий подключаться к интернету по DialUp, и аж целых три порта аудиокарты: выход на наушники, моновход и стереовход для подключения микрофона.

Красная кнопка между esc и tab — Ctrl + Alt + Del
Красная кнопка между esc и tab — Ctrl + Alt + Del

Всего у TC1000 есть 7 физических кнопок и 3 сенсорные, активировать которые можно лишь «родным» пером. Создатели решили выделить отдельную клавишу для вызова сочетания клавиш Ctrl + Alt + Del и защитили её от случайного нажатия, спрятав между двумя другими кнопками. Таким образом, её можно нажать только пером. Но самый крутой здесь элемент управления — поворотный переключатель Jog dial, одновременно представляющий собой кнопку. Причём работает он даже до загрузки в BIOS.

Также отдельной кнопкой вызывается меню быстрого вызова (Q-Menu). Само по себе меню представляет собой отдельно устанавливаемое приложение. Именно с его помощью регулируется подсветка экрана. Вначале вызываете меню, выбираете пункт Brightness и с помощью поворотного переключателя Jog dial увеличиваете или уменьшаете яркость. Неудивительно, что прошлый владелец до этого не догадался.

Выбор и установка ОС

Старая добрая Windows XP TabletPC Edition плюс Talisman Desktop 2
Старая добрая Windows XP TabletPC Edition плюс Talisman Desktop 2

Заявленная совместимость с x86 может создать ложное впечатление, что на этой «таблетке» можно запустить буквально всё, лишь бы хватило оперативной памяти. Вот только есть большая проблема — родные драйверы есть лишь для Windows XP, а вот препятствием для установки более современных ОС станет отсутствие режима PAE (Physical Address Extension). Если условное ядро Linux было собрано с поддержкой PAE, то его запуск на Transmeta TM5800 будет невозможен. В этом случае при попытке запуска ядро впадает в панику, и этим всё заканчивается.

Damn Small Linux
Damn Small Linux

Самым идеальным вариантом, разумеется, будет сборка собственного ядра Linux, например Gentoo. Но это потребует значительного количества времени и знаний. Без проблем завелась лишь последняя сборка DSL (Damn Small Linux) и старые версии Ubuntu x32. Ну и не стоит забывать про Windows 2000, которая отлично работает, если не считать проблемой необходимость поиска правильных драйверов на видеокарту (Nvidia GeForce 2 Go). Такое инженерное решение вызывает отдельное восхищение, ведь фактически это одна из первых «геймерских» встроенных видеокарт:

Неплохой результат для столь необычного устройства
Неплохой результат для столь необычного устройства

Отдельно стоит отметить, что некоторые «родные» драйверы, такие как драйвер дополнительных кнопок, драйвер сенсорного экрана и драйвер, распознающий правильную ориентацию экрана при установке в док-станцию, заточены исключительно на Windows XP TabletPC Edition. При попытке установки на обычную версию Windows XP они не проходят проверку версии ОС и завершают работу.

Ещё один любопытный момент: если в процессе установки Windows XP после первой перезагрузки будет включена USB-клавиатура, то на этапе определения устройств вылетает BSOD и не остаётся ничего, кроме как перезагрузить планшет. Решением станет отключить USB-клавиатуру сразу после того, как будет выполнена первая перезагрузка. Как только этап определения устройств будет пройден и система запросит задать языковые параметры, можно вернуть USB-клавиатуру на место — и она заработает спустя пару секунд.

Использование

Вполне логичным вопросом читателей будет следующий. Железка интересная, раритетная и с красивым внешним видом. Но что она может в 2023 году, когда производительность даже плохонького Android-смартфона будет существенно выше, а о количестве оперативной памяти и говорить не приходится?

Это удобный и компактный эмулятор терминала. Если стоит задача что-либо настраивать на удалённом сервере или виртуальной машине, то подобный девайс с выделенной клавиатурой легко с этим справится. На него можно вывести SSH-сессию или RDP-подключение.

Ещё он годится на роль простейшего медиацентра, позволяющего слушать музыку, онлайн-радио или даже смотреть фильмы с какого-нибудь сетевого хранилища, поддерживающего перекодировку «на лету». Наконец, на такой планшет легко установить старенький MS Office 2007 и использовать в качестве простой печатной машинки.

Заключение

Напоследок пару слов о том, что произошло с Transmeta. Несмотря на все усилия, компания так и не стала прибыльной. Линус Торвальдс, проработавший там чуть более 5 лет, уволился в 2003 году. А уже в 2005 Transmeta решила полностью переориентироваться с производства процессоров на продажу патентов и исключительных прав на разработанные технологии. Параллельно они попытались сорвать куш с Intel, подав на последнюю в суд по поводу нарушения десятка патентов. Инженерный отдел за ненадобностью распустили.

Такой «эффективный менеджмент» привёл к плачевным последствиям. Даже несмотря на экстренные вливания средств со стороны AMD, в 2008 году компания была поглощена. Стартап Novafora приобрёл Transmeta, заплатив за неё $225 млн. У них были грандиозные планы по выпуску собственных видеопроцессоров. Но судьба повернулась к ним пятой точкой. В 2009 году они не смогли получить дополнительное венчурное финансирование, уволили всех сотрудников и навсегда закрыли двери офиса в Сан-Хосе.

Так закончилась история компании, которую в своё время называли «самой важной в Кремниевой долине». А процессоры работают и поныне, исполняя не самую важную, но приятную роль раритетов среди почитателей истории компьютерных технологий.

Комментарии (3)


  1. Samodelkin333
    02.10.2023 14:37
    +1

    Я припоминаю более распространенные ноутбуки Rover PC на этом процессоре, модели не помню. Их проще найти если охота поэкспериментировать. Ещё видел брошенный тонкий клиент и там работал Arch Linux у товарища, такой вот шлюз для загрузки программ в ЧПУ по сети.


  1. Samodelkin333
    02.10.2023 14:37
    +1

    Уточнение: существуют планшеты RoverPC Partner T210 и др, так же ноутбуки iRu Stilo. Найти это можно, брендовые устройства стоят сверх всякой меры.


  1. xoid555
    02.10.2023 14:37
    +1

    у меня есть ноутбук iRu с процессором Трансмета, он работает. Ему почти 20 лет