Первое знакомство с российским ARM-процессором Байкал-М и компьютером на его основе

Лет 25–30 назад рынок персональных компьютеров был в разы меньше, чем сейчас, зато вариантов персональных компьютеров было куда больше. Типовые «писишки» и тогда уже были самыми массовыми, но во многом потому, что в нижних ценовых сегментах у них не было конкурентов. А вот на верхних этажах «паслись» и топовые PC, и «маки», и разнообразные рабочие станции, работающие на самых разных центральных процессорах под управлением той или иной версии Unix. В общем, компьютерным журналам того времени не составляло большого труда устроить тестирование штук пяти несовместимых друг с другом компьютеров — о такой роскоши в мире современной унификации можно только мечтать.

А еще одной любимой темой прессы того времени были рассуждения о тупиковости CISC-процессоров (к которым традиционно относили х86) и о светлых перспективах RISC-систем. Дело в том, что крупнейшие клиенты либо ничего другого и не выпускали (например, Sun Microsystems мигрировала с процессоров Motorola 68к на собственные SPARC«и еще в 1987 году), либо как раз отказывались от старых разработок в пользу новых архитектур (та же Motorola сначала попробовала выпустить на рынок 88к, а потом вместе с Apple и IBM занялась PowerPC). Собственно, и в Intel тогда придерживались мнения, что запас модернизации х86 исчерпан, все равно придется переходить на что-то другое. На что конкретно — тогда еще ясности не было, поэтому Intel одновременно разрабатывала Itanium (совместно с Hewlett Packard), дорабатывала х86 (все дальше и дальше уходя от «классической» микроархитектуры) и даже собственные ARM-процессоры развивала (в 1997 году ей достались DEC StrongARM, позднее превратившиеся в Intel XScale). Производителям программного обеспечения эту неопределенность тоже приходилось учитывать, и именно тогда стала заметной тенденция на отделение операционных систем от конкретных аппаратных решений. В Microsoft, например, сразу делали Windows NT портируемой, поэтому версия NT 3.1 работала не только на х86, но и на DEC Alpha и на процессорах MIPS, а начиная с версии NT 4.0 добавилась поддержка PowerPC.

Сложно сказать, чем бы все это кончилось, не случись в 2000 году «краха доткомов». Лопнувший пузырь больнее всего ударил по технологическим компаниям, многие из которых так после этого и не восстановились. Часть тогдашних претендентов на лидерство потом доедали по кустам до самого начала «десятых», хотя поворотным моментом в какой-то степени можно считать переход Apple и Sun на х86 в середине «нулевых» (2005-й и 2004-й соответственно). Еще до этого основной целевой архитектурой для Windows стала х86–64 — начиная с Windows XP, вышедшей в 2001 году. Чуть позже (уже в 2006 году) Intel продала ARM-бизнес компании Marvell и решила полностью сконцентрироваться на х86, причем для более полного охвата разных сегментов рынка (в том числе и тех, где ранее использовался XScale) была придумана концепция «малых ядер» — линейка Atom. От разнообразия операционных систем тоже не осталось и следа: что-то ушло к «Wintel», что-то досталось бесплатному Linux, со временем покончившему со всеми коммерческими реализациями Unix.

В перспективе ситуация снова может измениться — благодаря тому, что подрос ARM. Началось это с мобильного рынка, сейчас дошло уже и до ПК с ноутбуками, и ничего неожиданного в этом нет. Как говорили в Intel лет пять назад:»Рано или поздно мы где-то встретимся —, но считаем, что наше положение в этот момент будет лучше благодаря лидерству в техпроцессах». Однако позднее как раз с техпроцессами не все оказалось гладко, так что в какой-то степени именно ARM пришел на встречу более подготовленным.

Впрочем, производство топовых процессоров «упирается» в возможности TSMC, а на них уж больно много всего нагружено, так что компания может не справиться с заказами. И этот фактор тоже может сыграть неожиданным образом, оборвав все победные реляции — когда-то аналогично сработали сначала бум доткомов, а потом их крах. Но в те годы, как несложно заметить, проблем с производством не было — были бы идеи хорошие. Сейчас же идеи не всегда можно реализовать — во всяком случае, когда речь идет о топовых характеристиках, которые без тонких техпроцессов просто немыслимы. Плюс особенности ПО: все-таки слишком многие уже привыкли к глобальному х86 и полной (или почти полной) совместимости. Microsoft пытается «соскочить» с платформы Wintel еще со времен Windows 8, но пока все попытки совместной (с партнерами) разработки Windows-устройств на ARM оказываются не слишком успешными. Apple в этом плане проще, поскольку рынок более замкнутый и компактный, да и нынешний переход на ARM — уже третья смена архитектуры центральных процессоров в компьютерах компании, так что процесс в целом отработанный.

В общем, изменится ли что-то глобально в ближайшее время — только время и покажет. Главный момент: существуют ниши, для которых в принципе не требуются процессоры с топовыми характеристиками, а также нет необходимости в глобальной совместимости программного обеспечения. Например, идущий во многих странах (в том числе и в России) процесс импортозамещения ПО, используемого в государственных органах, по понятным причинам ориентирован на местные разработки, включая и операционные системы. Разработать ОС с нуля непросто, однако и не обязательно: в реестре отечественного ПО есть уже несколько [условно] «местных» ОС на базе Linux. Прикладное программное обеспечение может делаться под такой Linux, причем приложения общего назначения (типа офисных) — на базе существующего СПО, а уж разворачивание сложных информационных систем можно осуществлять и с нуля.

В идеале, конечно, под программную «надстройку» импортозамещающего компьютера стоит подвести и собственный аппаратный «базис». Хотя бы в той степени, в какой он сейчас вообще может быть собственным. Да, возможности местного производства полупроводниковой продукции фактически отсутствуют, так что за ним все равно придется обращаться в другие страны. Но вот разработка в немалой степени может быть собственной, хоть и на базе существующих процессорных архитектур. Опять же, это компромисс, причем не гарантирующий отсутствие внешних проблем (что случилось с ARM-процессорами Huawei, все прекрасно знают), но это лучше, чем ничего. Начинать в любом случае нужно с малого. Будут ли такие устройства конкурентоспособными? В совсем равных условиях — сомнительно, поскольку опыта у отечественных разработчиков меньше, объемы выпуска большими на старте точно быть не могут (а значит, и себестоимость будет выше) и т. п. Но разумный протекционизм при тех же госзакупках поможет подправить ситуацию и в конечном итоге выгоден государству: чем меньше денег уходит наружу, тем для него лучше. Со временем могут подключиться и крупные коммерческие заказчики: если им окажется удобнее использовать появившиеся готовые решения (к тому же, гарантированно сертифицированные), то за это можно и заплатить. Главное, чтоб вообще было за что платить. То есть что покупать.

Да, нужно понимать, что ПО-то может быть полностью российским, а вот с полностью российским оборудованием все на данный момент гораздо сложнее. Но, опять же, проблему выпуска готовых продуктов имеет смысл решать только в том случае, когда вообще есть что выпускать. А оно есть — и даже работает.

Байкал-M — интегральная схема отечественного производства

О начале разработки этих процессоров стало известно в середине 2010-х, хотя сама компания стала известна широкой публике чуть позднее — вместе с анонсом Байкал-Т1. Этот процессор основывался на MIPS-архитектуре, имел всего пару ядер и во многом оказался пробным камнем. Но все-таки он использовался в некоторых проектах — например, первым продуктом на его основе оказалась система управления станками с ЧПУ. Моноблоки на Байкал-Т1 тоже демонстрировались, но для такого применения чип все-таки был слабоват уже на момент выхода. Да и лучшие годы MIPS кончились еще в упомянутые 90-е — сейчас уже сложно ожидать для этой архитектуры нормальную поддержку со стороны производителей софта.

Поэтому изначально больший интерес вызывал Байкал-М — он же BE-M1000. Здесь уже более современная (пусть и не рекордная) процессорная часть: восемь 64-разрядных ядер ARMv8-A (Cortex-A57) с частотой до 1,5 ГГц. И восьмиядерный же GPU Mali-T628 с частотой до 750 МГц. По характеристикам это похоже на некоторые мобильные или серверные процессоры середины прошлого десятилетия. Скорее — на вторые, благодаря развитой периферийной составляющей. Например, у Байкал-М есть 16 линий PCIe (конфигурация 8+4+4) и можно реализовать до четырех сетевых интерфейсов: к двум гигабитным можно «прикрутить» еще два 10-гигабитных (при помощи дополнительных PHY-контроллеров). Для сравнения: AMD Opteron A1100 2016 года — это те же восемь ядер Cortex-А57, но на частоте 2 ГГц, без видео, с PCIe x8, двумя встроенными интерфейсами Ethernet 10 Гбит/с и целыми 14 портами SATA. В общем и целом — решения сопоставимые, хотя у AMD такой процессор вышел гораздо раньше. Оба рассчитаны на 28-нанометровый техпроцесс TSMC — к сожалению, как уже было сказано, на данный момент полная локализация производства даже по таким нормам невозможна. Поэтому прошлой осенью Байкал-М получил статус интегральной схемы отечественного производства, но второго уровня (в терминологии Постановления Правительства РФ от 9 августа 2016 г. № 764) — до первого уровня, предполагающего, в частности, отсутствие использования готовых схемотехнических решений иностранного производства и производство на территории РФ, еще далеко. Всем разработчикам. Но если ничего не разрабатывать, то и производить будет нечего.

Так что сразу после сертификации компания объявила о том, что готовятся еще три новых чипа. Два из них представляют собой упрощенные модификации Байкал-М, в котором периферии оказалось… несколько избыточно для типового рабочего места, например. В итоге под нож частично пошла сетевая поддержка, линии PCIe, а в младшей модели — и часть процессорных ядер. Последнее тоже не страшно: все равно в интерактивной работе загрузить их все нечем, а бо́льшую часть времени система ждет действий пользователя. Зато тот же Байкал-М/2 компактнее, а стало быть — и дешевле в производстве.

Первоначальная модель Байкал-М не пропадет: она может оказаться отличной основой для микросервера или NAS, которые отечественным компаниям тоже нужны. Не сказать, что это очень большой рынок, но с учетом его специфики тут есть возможность даже на глобальный рынок выйти: все равно основную стоимость составляет программное обеспечение (которое можно писать на месте), а в бюджетных моделях обычным делом является использование процессоров с парой ARM-ядер и с одним гигабитным сетевым интерфейсом. Что-нибудь подобное Байкал Электроникс недавно пообещал разработать на замену Байкал-Т1, поскольку на перспективу лучше все-таки ограничиться одной архитектурой процессоров для всех сегментов — от тех же станков до серверов. Кстати, на серверное применение ориентирован также анонсированный прошлой осенью Байкал-S: уже 16-нанометровый процессор на 48 ядрах ARM-Cortex A75 и с кучей периферийных контроллеров. И с тремя межпроцессорными интерконнектами, что позволяет объединять на одной плате до четырех процессоров, так что многопроцессорные системы без внимания не остаются. Энергопотребление получается более серьезным, до 120 Вт, но по меркам серверного рынка это немного.

В общем, в планах компании полный охват всего необходимого спектра микропроцессоров: от простых и компактных встраиваемых двухъядерных моделей через персональные компьютеры и до серверов. Наработки для всего этого есть. Они базируются на импортных лицензиях, да и производство локализовать пока невозможно, но, как уже говорилось, с чего-то начинать все равно нужно. Байкал-S, Байкал-М/2 и Байкал-М/2+ «в железе» должны появиться в следующем квартале этого года. А вот Байкал-М уже доступен заказчикам. Равно как и прототипы систем на нем — с одним из которых нам удалось близко познакомиться.

Персональный компьютер на базе Байкал-М

Скажем сразу: выбор корпуса нас несколько удивил: Thermaltake Suppressor F1 — достаточно пафосное (и недешевое) решение для сборки мощных ПК со всякими излишествами типа дискретных видеокарт. Впрочем, на выставках смотреться будет достаточно эффектно, а для реальных проектов, естественно, будет взято нечто покомпактнее и попроще.

И без такого количества пустого места, разумеется.

Главная идея: это абсолютно стандартная плата Mini-ITX, полностью подходящая ко всей существующей инфраструктуре. Ничего придумывать не нужно — достаточно установить ее в корпус, в слоты вставить 1–2 абсолютно стандартных DDR4 DIMM и найти какой-нибудь SATA-накопитель (можно и NVMe). Из «внешней» периферии потребуются мышь, клавиатура и монитор —, но и для них используются стандартные интерфейсы. То есть вполне сравнимо с разнообразными игрушками для рынка «сделай сам», которые недороги, но со стандартными форм-факторами и со стандартной же периферией там не все так уж гладко. Скажем, у них может быть ограничен объем оперативной памяти, обычно просто напаянной на плату — в отличие от обычных DIMM, суммарной емкостью до 64 ГБ, у компьютера на Байкал-М.

Во всяком случае, это верно для существующих на данный момент системных плат линейки TF307 — появившейся в прошлом году TF307-MB-S-C или попавшей к нам в руки TF307-MB-S-D (внешне они практически не различаются, хотя внутренних коннекторов на второй ревизии чуть больше). Отличий от других плат данного форм-фактора с интегрированными процессорами внешне практически никаких — даже аудиотракт по современной моде изолирован.

Производится плата, как и положено, в России, но пока мелкими сериями — в итоге даже заглушку для портов задней панели оказалось проще распечатать на 3D-принтере, нежели заказывать штамповку.

Единственный компонент, производство которого пока невозможно локализовать полностью — сам процессор в BGA-исполнении. Но это не его особенность, а общее положение дел на полупроводниковом рынке: даже такие (уже не слишком новые) техпроцессы доступны на данный момент немногим. С этим тоже со временем придется что-то делать, причем даже безотносительно вопросов обороноспособности и прочего —, но пока так: «узким местом» стало именно производство.

Изначально мы предполагали «погонять» на системе тесты, но в конечном итоге от этой идеи отказались. Разработчики, в общем-то, ничего не скрывают, публикуя подробные отчеты о производительности Байкал-М. Скорее всего, нам пришлось бы повторить эти тесты или придумать что-то похожее, поскольку специальной методики тестирования для Linux-систем у нас все равно нет. Повторять же — не слишком интересно, поскольку открытий ожидать сложно. На деле однопоточная производительность Байкал-М находится на уровне Atom семейств Bay Trail / Braswell, то есть пяти-семилетней давности. При полной загрузке всех ядер, благодаря их количеству,  Байкал-М может обогнать и более современные Atom, и многие двухъядерные Core (впрочем, из современных моделей это тоже в основном уже только Celeron). Но подобное применение кажется не слишком реалистичным: для ресурсоемких приложений проще подобрать что-нибудь более быстрое (как минимум — подождать Байкал-S). Для обычных повседневных нагрузок тоже есть более простые и привычные варианты. Основное же применение Байкал-М — когда такого выбора нет, поскольку требуется сертификация аппаратной и программной составляющей в госорганах и пр. В случае реализации крупных ИТ-проектов большая часть программ может писаться совсем на месте: не просто в стране, а вообще в конкретной крупной организации, в расчете на выбранное оборудование и с оптимизацией под него, включая производительность. А в таком случае сравнивать разные системы вообще не имеет смысла.

Программная составляющая

Посмотреть на то, что работает и доступно из коробки, тем не менее, было интересно. По умолчанию нас встретила Astra Linux Special Edition — действительно специфическая система, рассчитанная на обеспечение защиты обрабатываемой информации вплоть до уровня гостайны включительно. То есть основные потенциальные потребители — Минобороны, например, или ФСБ, которыми данный релиз полностью сертифицирован. При этом системой давно уже заинтересовались в «Газпроме» и РЖД.

В данном случае особой свободы с выбором релиза ОС нет, поскольку Common Edition (рассчитанный на более массовое использование) пока существует исключительно в версии для x86–64. Но если не требуется чего-то специфического, то никаких особенностей в работе Special Edition невооруженным глазом не заметно: Linux и Linux. Репозитарий, естественно, свой — физически расположенный на территории РФ. Наполнение — достаточно ограниченное, хотя базовый «джентльменский набор» в виде «браузер+офис+GIMP» доступен сразу же в комплекте. Увидеть какие-то принципиальные отличия от той же «Астры», но под х86, нам не удалось.

Решили немного усложнить задачу и поставить ОС самостоятельно. Остановились на максимально альтернативном варианте — Simply Linux («Базальт СПО»), благо эта система тоже работает на ARM-процессорах, да и с Байкал-М совместима официально. У нее есть небольшие ограничения: в частности, не работают PS/2-клавиатуры и мыши, а также блок аппаратного декодирования видео. Но больше ничего заслуживающего внимания не случилось: дистрибутив был скачан, записан на флэшку, дальше загрузка с той же флэшки, пара простых вопросов, и…

Еще один Linux как Linux. Выглядит немного иначе, но основные принципы в дизайне оболочек современных ОС давно уже остаются неизменными, а по мелочи что-то может поменяться и между обновлениями Windows. Собственно, мелочи-то пользователю обычно и видны, но отличить тот же Simply Linux 9.1, работающий на Байкале, от версии для обычного «писюка» почти невозможно. Особенно когда предполагается использование ограниченного набора специализированных программ, как это чаще всего и бывает на рабочих местах в крупных компаниях. А тогда отличить рабочий процесс даже от Windows будет сложновато. При этом никаких проблем от задекларированного отсутствия аппаратной поддержки декодирования видео обнаружить не удалось: ролики на YouTube, к примеру, крутятся одинаково.

То есть работать можно. Зависит от конкретных задач, конечно, но эта статья целиком и полностью подготовлена непосредственно на компьютере с Байкал-М — без каких-либо сложностей. Ну, а нужно это или нет — зависит больше не от самого компьютера, а от других факторов, в том числе не относящихся к технической составляющей.

Итого

В современных условиях переход на отечественное (со всеми особенностями) программное обеспечение, по крайней мере в государственных органах и крупных корпорациях, не просто возможен: для его эксплуатации есть и подходящие аппаратные средства. Они на данный момент еще более ограниченно российские, но это общая полупроводниковая беда, которую за ограниченный период времени победить сложно. Могут ли процессоры линейки Байкал-М оказаться конкурентоспособными на открытом рынке? Вряд ли. Понятно, что в ближайшее время ничего радикально выделяющегося технически разработчики выдать не смогут, цены же при мелкосерийном производстве всегда будут выше, чем у аналогичных продуктов, выпускающихся на тех же заводах крупными сериями. Так что чисто коммерческой компании в этой нише «ловить» было бы нечего. При государственной же поддержке расклад оказывается немного иной, причем обоюдовыгодный. Государству, в конце концов, нужны «свои» разработчики и максимально «свои» продукты (в той степени, в которой это можно обеспечить прямо сейчас). Даже если это увеличит затраты, они становятся внутренними, «подталкивая» сопутствующие сферы. Осязаемый же результат есть — и не на бумаге, а в работающем железе. Что получится в перспективе — покажет время.

Полный текст статьи читайте на iXBT