В ленте прошла заметка-ретроэксперимент: человек запускает Cyrix MediaGX — процессор 1997 года, в котором на одном кристалле сидят ядро x86, «видяха», контроллер памяти и PCI. Автор заметки называет его «первым APU в мире» и удивляется, что о нём почти не помнят.
Зацепило другое: это «первым APU в мире». Слово APU придумала AMD — и придумала в 2011 году, четырнадцать лет спустя. То есть либо мы имеем дело с редким случаем, когда термин догнал реальность с двухзначным опозданием, либо с ретроспективной наклейкой на чужую работу. Разбираться в этом оказалось интереснее, чем в любом из двух процессоров.
Дальше по тексту будет три сюжета: что это было технически, почему рынок это отверг, и как получилось, что конструкция проиграла на десктопе и выиграла в промышленности.
MediaGX вышел 20 февраля 1997 года — Cyrix Corporation из Ричардсона, штат Техас. Внутри одного кристалла размером 120 мм² и на 2,4 млн транзисторов уместились: скалярное ядро Cx5x86, 16 КБ объединённого кэша первого уровня, контроллер DRAM, графический ускоритель и интерфейс PCI. Никакого north bridge в системе не осталось как класса.
Питался он от 3,3 вольта, выпускался в 0,44-микронном техпроцессе IBM на трёх слоях металла, стоил Cyrix около $35 в производстве и продавался за $79 (120 МГц) и $99 (133 МГц) в партиях от тысячи штук.
И этим он принципиально отличался от того, что делала Intel. У Pentium контроллер памяти, графика и PCI жили в отдельных чипах — MediaGX забрал их внутрь. Аналитик Linley Gwennap из Microprocessor Report, разбиравший новинку в марте 1997-го, сформулировал это прямо: Cyrix выкатила чип, который умеет больше любого продукта Intel.
Второй номер программы — спутник Cx5510. Внутри него жили ISA и USB, IDE, AC'97-аудио, RAMDAC и декодер MPEG-1. Связка из двух чипов заменяла десяток компонентов, из которых собирался обычный бюджетный ПК тех лет. В 1998 году журналист Byte Том Халфхилл описывал результат так: системная плата сжималась до пяти микросхем, и для сборки компьютера (без обвязки питания, памяти и диска) больше не требовалось ничего.
Звучит как триумф. Дальше начинаются детали, из-за которых триумфа не было.
У MediaGX не было кэша второго уровня. Совсем. Подключать его было физически некуда: контроллер памяти уже сидел внутри кристалла, а внешней шины, к которой цепляют кэш-память, эта конструкция не предусматривала.
Cyrix выкрутилась красиво. Раз контроллер памяти внутри и общается с ядром по внутренней 64-битной шине на тактовой частоте ядра, то промах по странице DRAM стоит примерно столько же, сколько обращение к L2 у Pentium-133. Логика звучала убедительно: если память и так под рукой, кэш ей не нужен.
Gwennap на это возразил в лоб: попадание в L2 у Pentium будет получше, чем попадание в буферы страниц DRAM у MediaGX, а значит без кэшей обоих уровней Cyrix-чип выигрывает только у Pentium, у которого L2 тоже нет. Что и подтвердилось на бумаге: в задачах, грузящих исключительно процессор, — пересчёт электронных таблиц, поиск в базе — 133-мегагерцовый MediaGX с треском проигрывал Pentium-133 той же частоты. Спасало то, что реальные домашние приложения мешают счёт с графикой, а в этом миксе чип сравнивался.
Вот здесь узел всего сюжета. MediaGX реализовал UMA — unified memory architecture: фреймбуфер перестал быть отдельной микросхемой памяти и переехал в обычную оперативную.
Cyrix подала это как экономию, и пресс-релиз гордо сообщал: 2 МБ фреймбуфера больше не нужно. Gwennap посмотрел на это трезво и написал, что экономия спрятана, а не получена: те же 2 МБ DRAM всё равно изъяты из общего объёма и заняты под графику. Компьютер Compaq Presario 2100 продавался с 24 МБ памяти, из которых софту доставалось 22. А поскольку дешёвый фреймбуфер делали из тех же самых чипов, что и основную память, выгода в деньгах оказывалась минимальной.
Второй нюанс был интереснее первого: UMA сама по себе ухудшает производительность, потому что процессор и графика начинают драться за одну и ту же шину. Отраслевой ориентир тех лет — падение на 10–15%. Cyrix решила это компрессией данных на лету: сжатый фреймбуфер занимает меньше места в памяти, и читать его надо меньше. В тесте Winstone 96 вышло 20:1 — то есть 95% обращений к фреймбуферу из основной памяти исчезли. Ход, который стоит признать изящным.
Но вот что важно: Gwennap в 1997-м назвал UMA решением, которое не приживается в ПК, — несколько чипсетов её поддерживали, а собирать на них машины никто не спешил. Ещё через два года, в разборе чипсета Intel 810, всё тот же Microprocessor Report написал, что UMA-революция образца 1995 года уже провалилась, и чипсет 430VX с UMA почти никогда не включали в этом режиме.
Теперь перенесём взгляд на четырнадцать лет вперёд. Ноябрь 2020 года, Apple рассказывает про M1 и отдельным пунктом пресс-релиза называет unified memory architecture — общий пул памяти в одном корпусе, к которому обращаются все блоки SoC, чтобы не копировать данные между ними. К этому моменту словосочетание «общая память» перестало быть ругательством и стало главным аргументом в презентации.
Одна и та же механика, один и тот же вопрос — «пусть графика живёт в общей памяти» — и два противоположных вердикта с разницей в двадцать три года.
Технических причин у провала на десктопе было три, и они шли одна за другой как домино.
Компрессия не масштабировалась. Приём, который спас UMA в эпоху двухмерной графики, почти ничего не даёт в трёхмерной, где через память гонят текстуры и буферы глубины. Intel в своём 810-м чипсете 1999 года трюк Cyrix не применила вовсе — Microprocessor Report констатирует это без объяснения, и я подозреваю, что сжатие фреймбуфера к тому моменту уже не спасало.
Пропала возможность апгрейда. MediaGX работал только на специально спроектированной под него плате, потому что процессор был слишком плотно связан с чипсетом. Ни поменять процессор, ни доставить видеокарту было нельзя: шины AGP в конструкции не предусматривалось в принципе.
Графика внутри не догоняла дискретную. Скорость отрисовки у встроенных решений была скромной, и в 1999-м, когда Intel выпустила 810, аналитики честно писали: встроенный 3D-движок медленнее «многих из сегодняшних самых дешёвых дискретных чипов».
И тогда произошло то, из-за чего про MediaGX забыли. Intel выпустила 810 — свой вариант той же идеи, с встроенной графикой, UMA и динамическим распределением памяти вместо жёсткого откусывания фреймбуфера на старте. Аналитики Microprocessor Report прямо связывали две вещи: UMA-подход MediaGX «привёл к появлению рынка ПК дешевле $1000», MediaGX «сошёл со сцены», и вот Intel бьёт в ответ своим решением. С брендом Intel, 810-й ушёл в массовый рынок, а первопроходец — нет.
В стане аналитиков при этом никто не обольщался: у 810 все «старые проблемы UMA» остались, и чтобы получить в UMA-системе производительность обычной машины, покупателю предлагалось взять процессор на одну ступень быстрее. Разница в цене ступени составляла $10–30 — и это ровно то, что съедало всю экономию чипсета.
Cyrix не дожила до этих разборов как самостоятельная единица. В августе 1997 года National Semiconductor купила её примерно за $550 млн акциями — не столько ради процессоров, сколько ради права на них: у National был кросс-лицензионный договор с Intel, без которого Cyrix, будучи fabless-разработчиком, юридически не могла свободно выпускать x86-совместимые чипы. Гендиректор National Брайан Халла при этом видел будущее не в соревновании с Intel, а в «PC-on-a-chip»: устройствах с полной совместимостью по цене $500, а в перспективе $200. Пресс-анонс сделки описывали как шизофренический: Cyrix настаивала на прямой конкуренции, National — на «компьютере на кристалле».
Через два года National переименовала результат в NS Geode. В 2003-м бизнес Geode ушёл к AMD. А дальше произошла вещь, которая для истории важнее всех маркетинговых споров: чип перестал обновляться и именно поэтому прожил двадцать два года.
Дальнейшая судьба Geode LX — набор отложенных обещаний. В 2009 году AMD объявила, что новый микропроцессор создавать не будет, но покупать Geode LX800 можно будет до 2015-го. В 2016-м срок сдвинули на 2019-й.
В начале 2018-го производители встраиваемых плат во главе с congatec выторговали продление ещё дальше — до 2021 года. Последние партии ушли в первом квартале 2022-го. Двенадцать лет анонсов собственных похорон.
Железно это объясняется цифрой, которую я нашёл в материалах дистрибьютора EMAC: AMD Geode LX800 при 500 МГц потребляет 1,8 Вт, вся линейка LX укладывается в 1,2–2,6 Вт при TDP 2,8–5,1 Вт. Такое тепловыделение можно рассеивать без вентилятора вообще, а значит ставить плату в терминал на складе, в тонкий клиент за стойкой, в медицинский прибор, куда никто не будет лазить годами.
Чип успел побывать косвенной причиной отдельной технической драмы. Тот же Geode LX сам контролирует регенерацию памяти, и его контроллер не тянет больше объёма: по данным EMAC, при 512 МБ DDR333 на это уходит 50% тактов, а при 1024 МБ — 70%. Отсюда прямое следствие: выше 512 МБ частоту DDR400 поднять нельзя, памяти просто не хватает времени.
MediaGX/Geode оказался не десктопным продуктом, а промышленным. Живым его держали три ниши.
Тонкие клиенты. Compaq T30 на NS Geode GX1 — устройство 2002 года, работавшее на Windows CE и дожившее до 2010-го на реальных рабочих местах. Отдельная ирония: внутри стоял вполне полноценный x86-компьютер с четырьмя USB, PS/2, COM, LPT, VGA и сетью, а штатная прошивка умела ровно одно — подключаться к удалённому рабочему столу. Ни проводника, ни блокнота. Мощность, задушенная закрытым софтом.
Учебный ноутбук. OLPC XO-1 — тот самый проект «ноутбук за $100 для детей развивающихся стран» — ушёл в производство в ноябре 2007 года на AMD Geode LX-700 с частотой 433 МГц и энергопотреблением 0,8 Вт. Выбор был продиктован не скоростью, а тем, что устройство должно было работать от солнечной панели и не иметь вентилятора.
Промышленные планшеты и PC/104-платы. Терминалы, киоски, бортовые системы. Geode LX800 стал заменой AMD K5 в этой роли, а его собственная замена — AMD G-Series — успела выйти в трёх поколениях и уйти на покой раньше, чем сам Geode.
И ещё одно неожиданное последствие: конструкция оказалась живучей настолько, что породила целый вторичный рынок её замещения. Тайваньская ICOP, производитель встраиваемых плат, до сих пор держит страницу с подбором «drop-in replacement» для LX800 — с оговоркой, что главная сложность не в производительности, а в том, что новые процессоры не поддерживают legacy I/O и старые ОС. В их сравнительной таблице Geode LX800 на 498 МГц набирает в CrystalMark 5791 балл против 24495 у замены — и люди всё равно годами не мигрируют, потому что на той стороне Windows XP и ISA-шина.
Возвращаюсь к тому, с чего начал. AMD выпустила первую линейку под словом APU — Brazos, E- и C-серии — 4 января 2011 года на CES. Старший вице-президент Рик Бергман в пресс-релизе назвал их «величайшим достижением в вычислениях после появления x86 более сорока лет назад». Через полгода, в июне, вышла A-серия «Llano», где формулировка дошла до «переломного момента для AMD и, возможно, крупнейшего архитектурного изменения в отрасли со времён изобретения микропроцессора».
Теперь сопоставляем даты. MediaGX с интегрированной графикой и контроллером памяти вышел в феврале 1997-го — за 14 лет до того, как для такой конфигурации придумали слово. Intel поставила графику рядом с процессором в Clarkdale в январе 2010-го, ещё на отдельном кристалле в одном корпусе, и только Sandy Bridge в 2011-м свёл оба на один кристалл. AMD пришла к однокристальной конфигурации последней из троих и назвала это первым появлением новой категории.
И вот неприятная часть. Называть MediaGX «первым APU» — это проекция задним числом. APU как категория включает объём маркетинга, экосистему и слово, которого в 1997-м не существовало. Корректнее так: Cyrix собрала архитектуру, которую отрасль догнала, и не пережила ожидания, потому что была слишком маленькой для той идеи, которую придумала.
Три места, где вопрос не закрывается до конца.
Первое — ценники. Я привёл запускные $79 и $99 по Microprocessor Report от 10 марта 1997 года. Но в пресс-релизе Cyrix от 30 июня того же года, где объявляют 166 и 180 МГц, ценник на 133 МГц указан уже как $63, а на 150 МГц — $75. За четыре месяца цена на более быстрый чип упала ниже, чем была на медленный, и я не знаю, объясняется это объёмными скидками, сменой техпроцесса или просто разными комплектациями. Для сюжета не важно, но подставлять одну цифру вместо другой без оговорки было бы враньём.
Второе — про «аппаратные баги». В популярных пересказах именно ими объясняют смерть MediaGX на десктопе. Gwennap в 1997-м, разбирая чип по косточкам, о багах не пишет вообще: он пишет про отсутствие L2, слабую производительность на плавающей точке, UMA и невозможность апгрейда. Ошибки, о которых говорят задним числом, — это скорее транспорт, на котором к 1999 году ехала репутация Cyrix, а не диагноз 1997 года. Где кончается реальный дефект и начинается фольклор, я не берусь сказать: внятного инженерного списка errata в открытом доступе нет.
Третье — ватты. «1,8 Вт» у Geode LX800 из материалов дистрибьютора — это типичное потребление ядра, а TDP всей линейки LX по официальной документации укладывается в 2,8–5,1 Вт. Разница втрое, и для рассказа про пассивное охлаждение она принципиальна: рассеивать 1,8 Вт без вентилятора просто, 5 Вт — уже нужен нормальный радиатор. Какое число честнее для конкретной платы, я не знаю.
Самая полезная мысль здесь, по-моему, про то, как читать отраслевые термины. «Первым» в индустрии объявляют не то, что появилось раньше, а то, что успело стать категорией с рабочим названием. MediaGX сделал всё технически за четырнадцать лет до того, как это стало называться APU, — и не попал в учебники, потому что иначе смотрел на задачу. Cyrix оптимизировала не скорость, а закупочную ведомость производителя компьютеров, и результат этой оптимизации измеряется не бенчмарками, а тем, что линейка жила двадцать два года на рынке, где двадцать два года — это шесть поколений Intel.