Архитектура и микроархитектура процессора в чем разница
Архитектура и микроархитектура процессоров
Под архитектурой процессора понимается его программная модель, то есть программно-видимые свойства. Под микроархитектурой понимается внутренняя реализация этой программной модели. Для одной и той же архитектуры IA-32 разными фирмами и в разных поколениях применяются существенно различающиеся микроархитектурные реализации, при этом, естественно, стремятся к максимальному повышению производительности (скорости исполнения программ).
В микроархитектуре процессоров Pentium (MMX) и их близких аналогов, Pentium Pro, Pentium II/III, Celeron, Pentium 4 – существенное значение имеет реализация различных способов конвейеризации и распараллеливания вычислительных процессов, а также других технологий, не свойственных процессорам прежних поколений. Рассмотрим основные процессы, реализуемые в современных процессорах.
Конвейеризация предполагает разбивку выполнения каждой инструкции на несколько этапов, причем каждый этап выполняется на своей ступени конвейера процессора. При выполнении инструкция продвигается по конвейеру по мере освобождения последующих ступеней. (Как только очередная команда переходит на следующий этап, начинает выполняться новая.) Таким образом, на конвейере одновременно может обрабатываться несколько последовательных инструкций, и производительность процессора можно оценивать темпом выхода вы полненных инструкций со всех его конвейеров. Для достижения максимальной производительности процессора – обеспечения полной загрузки конвейеров с минимальным числом лишних штрафных циклов – программа должна составляться с учетом архитектурных особенностей процессора. Конечно, и код, сгенерированный обычным способом, будет исполняться на процессорах классов Pentium достаточно быстро. Конвейер «классического» процессора Pentium имеет пять ступеней. Конвейеры процессоров с суперконвейерной архитектурой имеют большее число ступеней, что позволяет упростить каждую из них и, следовательно, сократить время пребывания в них инструкций. Гиперконвейер Pentium 4 имеет уже 20 ступеней.
Скалярным называют процессор с единственным конвейером, к этому типу относятся все процессоры Intel до 486 включительно. Суперскалярный процессор имеет более одного (Pentium II) конвейера, способных обрабатывать инструкции параллельно.
При введении второго конвейера возникает проблема зависимости данных. Если последующая инструкция выполняется быстрее предыдущей в параллельном конвейере, то она может закончиться раньше, нарушив очередность выполнения. Тем не менее, это возможно. При этом возникают ситуации, когда выполнение очередной команды зависит от результата предыдущей. В этом случае выполнение такой команды приостанавливается до тех пор, пока не будет получен требуемый результат, что снижает производительность процессора.
Переименование регистров позволяет обойти архитектурное ограничение на возможность параллельного исполнения инструкций (доступно всего восемь общих регистров). Процессоры с переименованием регистров фактически имеют более восьми общих регистров, и при записи промежуточных результатов устанавливается соответствие логических имен и физических регистров. Таким образом, одновременно могут исполняться несколько инструкций, ссылающихся на одно и то же логическое имя регистра, если, конечно, между ними нет фактических зависимостей по данным. Например, при параллельном выполнении команд
mov ax, bx
mov bx, cx
возникает подобная ситуация – запись в регистр bx может быть выполнена только после завершения операции записи его содержимого в ax. Переименование регистров позволяет для регистра bx использовать два внутренних регистра – Reg0 и Reg1. После такого дублирования можно одновременно и читать и записывать в него.
В ситуации, когда первая команда выполняет операцию, связанную с чтением из регистра, а вторая использует эти данные, но выполняется раньше, то процессор выполняет операцию чтения, посылая результат на оба конвейера.
Продвижение данных подразумевает начало исполнения инструкции до готовности всех операндов. При этом выполняются все возможные действия, и декодированная инструкция с одним операндом помещается в исполнительное устройство, где дожидается готовности второго операнда, выходящего с другого конвейера.
Предсказание переходов позволяет продолжать выборку и декодирование потока инструкций после выборки инструкции ветвления (условного перехода), не дожидаясь проверки самого условия. В процессорах прежних поколений инструкция перехода приостанавливала конвейер (выборку инструкций) до исполнения собственно перехода, на чем, естественно, терялась производительность. Предсказание переходов направляет поток выборки и декодирования по одной из ветвей. Статический метод предсказания работает по схеме, заложенной в процессор, считая, что переходы по одним условиям, вероятнее всего, произойдут, а по другим – нет. Динамическое предсказание опирается на предысторию вычислительного процесса – для каждого конкретного случая перехода накапливается статистика поведения, и переход предсказывается, основываясь именно на ней.
Исполнение по предположению, называемое также спекулятивным, идет дальше – предсказанные после перехода инструкции не только декодируются, но и по возможности исполняются до проверки условия перехода. Если предсказание сбывается, то труд оказывается ненапрасным, если не сбывается – конвейер оказывается недогруженным и простаивает несколько тактов (как минимум столько, сколько ступеней у конвейера).
Исполнение с изменением последовательности. При этом изменяется порядок внутренних манипуляций данными, а внешние (шинные) операции ввода-вывода и записи в память выполняются в порядке, предписанном программным кодом. Однако эта способность процессора в наибольшей степени может блокироваться несовершенством программного кода, если он генерируется без учета возможности изменения порядка исполнения инструкций.
Благодаря совершенствованию микроархитектуры от поколения к поколению возрастает производительность процессоров, причем этот рост обеспечивается двумя факторами. Во-первых, растет тактовая частота ядра. Каждая микроархитектура имеет свои пределы роста частоты. Во-вторых, сокращается число тактов процессорного ядра, требуемых на выполнение одной инструкции (в пересчете с темпа схода инструкций с конвейера). Так в среднем процессоры 1, 2, 3, 4, 5 и 6 поколений на одну инструкцию тратят 12, 5, 4, 2, 1 и 0,5 тактов. Полтакта на инструкцию – звучит, конечно, странно. Но если вспомнить о 8-байтной шине данных, позволяющей за один такт загрузить «кусок» кода, содержащего несколько команд, и о нескольких исполнительных устройствах, одновременно приступающих к их выполнению, то вопросы рассеиваются. Кроме того, в процессоры вводят все более мощные команды, позволяющие сокращать число инструкций, требуемое для решения одних и тех же задач.
Технология Hyper-Threading (HTT)
Технология Hyper-Threading представляет собой сравнительно недорогой с точки зрения увеличения площади процессорного ядра способ увеличения производительности процессоров.
В настоящее время, рынок полностью завоевали многозадачные операционные системы, идеология которых построена на одновременном существовании нескольких вычислительных потоков (threads), относящихся к одному или разным активным приложениям, либо к самой операционной системе. Если на многопроцессорных системах эти потоки могут выполняться одновременно (по одному на процессор), то в однопроцессорных системах CPU вынуждены непрерывно переключаться между потоками, квантуя процессорное время между исполнением их различных частей.
В частности, хотя Pentium 4 и содержит четыре параллельных блока для операций с целыми числами, два блока для работы с вещественными числами и два блока для работы с памятью, одновременно все эти ресурсы практически никогда не используются. В подавляющем большинстве случаев существенная часть процессора простаивает либо в ожидании данных, либо из-за ее ненужности при исполнении очередной операции.
Таким образом, если разрешить процессору одновременное выполнение более чем одного потока, его мощности можно загрузить более эффективно. Именно в этом и состоит основная идея Hyper-Threading. Благодаря технологии Hyper-Threading один физический процессор воспринимается операционной системой и приложениями как два логических процессора. Соответственно, операционная система и приложения предполагают, что CPU с технологией Hyper-Threading может одновременно выполнять два потока и загружает такой процессор работой гораздо сильнее.
Сам же процессор при этом подвергнут лишь незначительным изменениям и использует для выполнения второго потока свои простаивающие блоки. Hyper-Threading – технология действенна только в многозадачных и многопоточных средах.
Поскольку физический процессор с технологией Hyper-Threading представляет собой два логических CPU, в таких процессорах продублированы некоторые блоки. Причем, дубляжу подверглись лишь отдельные управляющие элементы, основные же исполнительные ресурсы остались теми же – теперь они попросту загружаются более плотно и эффективно.
Таким образом, технология Hyper-Threading действительно позволяет загрузить исполнительные устройства процессора значительно сильнее за счет одновременного выполнения двух потоков. Однако эффект от такого приема может быть положительным, если выполняемые потоки не похожи по типу выполняемых инструкций.
Поддержка технологии Hyper-Threading необходима не только со стороны программного обеспечения и операционной системы, но и со стороны аппаратного обеспечения (поддержка со стороны материнской платы и BIOS).
Что такое архитектура процессора?
С появлением электронно-вычислительных машин произошла лишь одна, по-настоящему крупная революция и прогресс в технологиях. Так, на смену старым, вакуумным лампам пришли новые, полупроводниковые технологии, которые навсегда отпечатались в современной электронике. Сегодня, большинство мобильных устройств работают на всё тех же, но совершенно доработанных полупроводниковых изобретениях – процессорах. Сейчас мы расскажем, что такое архитектура процессора и для чего она нужна.
Архитектурой называют совокупность главных принципов конструирования процессора, в которой общая схема располагается на кремниевом кристалле, а также схему взаимодействия ПО вместе с чипом. Простыми словами, архитектурой называют схему, по которой собран процессор.
За всё время существования микропроцессорной техники, было множество различных видов архитектур. Наиболее популярными являются CISC, MISC, VLIW и RISC. Отличия между ними заключаются лишь в том, как они взаимодействуют с данными, которые поступают к процессору, и которые из него исходят.
Схема работы архитектуры процессора несколько сложнее. Так, данные в схеме обрабатываются последовательным путем. К примеру, в начале, процессор получает инструкцию, затем производит чтение данных, после производит необходимые вычисления, а в конце выдает полученный результат. Но, это всё очень абстрактно, на самом деле, работа микропроцессора куда сложнее.
Количество таких процессов и операций может достигать десятки тысяч. Естественно, в процессе всего этого могут возникать ошибки, но чем меньше их будет, тем качественнее и стабильнее будет работать система. Существенно меньше ошибок происходит в процессорах с архитектурой RISC. В ней предусмотрены намного более простые команды, которые улучшают производительность в целом.
Также не следует путать понятия архитектуры и микроархитектуры процессора, это несколько разные определяющие. Так, архитектурой называют принцип устройства микропроцессора, микроархитектурой лишь 1 из способов её реализации, в котором есть собственные особенности.
Одной из самых известных серий архитектур, считается «Cortex». В первых смартфонах присутствовала архитектура Cortex А7, которая сегодня считается устаревшей. Наиболее производительными сегодня считаются Cortex А72 и А73. Компания Apple в своих устройствах использует модифицированную архитектуру ARMv8.
Архитектура процессора — что это за хитрое понятие??
Доброго времени суток.
В этой статье вы получите развернутый ответ на вопрос «что такое архитектура процессора». Также после ее прочтения вы узнаете о разновидностях архитектуры и научитесь различать их обозначения.
Объяснение термина
Под архитектурой процессора понимается комбинация из:
Если рассматривать архитектуру со стороны программистов, то его можно объяснить как совместимость с определенным набором команд (допустим, девайсы, соответствующие командам Intel x86), их структуру (например, как организована система адресации или регистровая память), а также метод исполнения (к примеру, счетчик команд).
Смотря на архитектуру как на аппаратную составляющую компьютера, мы увидим другую картину. Это определенный набор характеристик, которому соответствует целое семейство процессоров, то есть их внутренняя конструкция.
Классификация архитектур
По скорости и количеству выполняемых команд архитектуры делятся на:
Также существует классификация процессоров, и соответственно архитектур, по назначению:
С физической точки зрения девайсы разделяются по количеству ядер, которые отвечают за выполнение команд. Если их больше одного, устройства называются многоядерными.
Разбор обозначений
В теме о процессорах вы можете столкнуться с их цифровыми обозначениями типа x64, x86 и пр. Давайте разберемся, что все это значит. Разложу по полочкам.
8086 и компания
В 1978 году компания Intel выпустила 16-битный процессор, получивший название 8086.
После него выходили другие модели, в наименованиях которых первые две цифры оставались прежними, а последние менялись на 88, 186, 286, 386, 486 и прочие.
Как вы заметили, почти все имена заканчиваются одинаково, поэтому все семейство объединили под условное обозначение x86. Оно устоялось среди пользователей и применялось даже когда Интел начала давать своим продуктам словарные названия типа Пентиум, Кор, Атом и т. д. Переняли эту «моду» и другие производители устройств, совместимых с этим семейством, — IBM, VIA, AMD, Cyrix и др.
Чаще всего это обозначение сейчас используется по отношению к 32-битным процессорам. Они также могут называться, к примеру, i386, i486, i586, когда требуется дать более точные сведения о наборе инструкций.
Совершенствование до 64 бит
Компания Intel модернизировала процессоры с 16-битной шиной до 32 бит. Однако AMD приложила усилия к усовершенствованию их до х64. Первый такой продукт она выпустила в 2003 году, не став заморачиваться над названием — просто «AMD64».
Чтобы показать повышенную разрядность процессоров, стали к обозначению «x86» добавлять «64», к примеру, x86_64.
Интел решила выделиться, помечая такие устройства сначала как «IA-32e», а потом «EM64T». Но сейчас чаще можно встретить «Intel 64».
Как узнать архитектуру?
В случае с новыми ЦП прочитать их характеристики можно в инструкции или непосредственно на коробке. Но что делать, если вы берете устройство с рук? Или может быть хотите знать, какая архитектура у вашего проца? Выяснить это можно несколькими способами.
Средства системы
Выполните следующие действия:
Перед вами появятся сведения об операционке, среди которой будет и архитектура процессора.
И тоже получите все данные о нем.
Сторонние программы
Она бесплатная и распространенная, поэтому вы без проблем ее отыщите и скачаете.
Вам нужно лишь установить и запустить ее, чтобы посмотреть необходимую информацию.
Получить сведения о процессоре через нее можно, перейдя по разделам «Компьютер — Системная плата — ЦП».
На этом буду заканчивать.
Чтобы не забывать заглядывать ко мне чаще и узнавать больше новой интересной информации, подписывайтесь на обновления.
Виды популярных архитектур процессоров
Авторизуйтесь
Виды популярных архитектур процессоров
Прежде чем рассмотреть основные виды архитектур процессоров, необходимо понять, что это такое. Под архитектурой процессора обычно понимают две совершенно разные сущности.
С программной точки зрения архитектура процессора — это совместимость с определённым набором команд (Intel x86), их структуры (система адресации, набор регистров) и способа исполнения (счётчик команд).
Говоря простым языком, это способность программы, собранной для архитектуры x86, работать практически на любой x86-совместимой системе. При этом такая программа не будет работать, например, на ARM системе.
С аппаратной точки зрения архитектура процессора — это некий набор свойств и качеств, присущий целому семейству процессоров (Skylake – процессоры Intel Core 5 и 6 поколений).
Если тема кажется сложной, можно начать со статьи о том, чем CPU отличается от GPU.
Виды архитектур
В этой статье мы рассмотрим самые распространенные и актуальные архитектуры с программной точки зрения, кроме узкоспециализированных (графических, математических, тензорных).
CISC (англ. Complex Instruction Set Computer — «компьютер с полным набором команд») — тип процессорной архитектуры, в первую очередь, с нефиксированной длиной команд, а также с кодированием арифметических действий в одной команде и небольшим числом регистров, многие из которых выполняют строго определенную функцию.
Самый яркий пример CISC архитектуры — это x86 (он же IA-32) и x86_64 (он же AMD64).
В CISC процессорах одна команда может быть заменена ей аналогичной, либо группой команд, выполняющих ту же функцию. Отсюда вытекают плюсы и минусы архитектуры: высокая производительность благодаря тому, что несколько команд могут быть заменены одной аналогичной, но большая цена по сравнению с RISC процессорами из-за более сложной архитектуры, в которой многие команды сложнее раскодировать.
RISC (англ. Reduced Instruction Set Computer — «компьютер с сокращённым набором команд») — архитектура процессора, в котором быстродействие увеличивается за счёт упрощения инструкций: их декодирование становится более простым, а время выполнения — меньшим. Первые RISC-процессоры не имели даже инструкций умножения и деления и не поддерживали работу с числами с плавающей запятой.
По сравнению с CISC эта архитектура имеет константную длину команды, а также меньшее количество схожих инструкций, позволяя уменьшить итоговую цену процессора и энергопотребление, что критично для мобильного сегмента. У RISC также большее количество регистров.
Примеры RISC-архитектур: PowerPC, серия архитектур ARM (ARM7, ARM9, ARM11, Cortex).
В общем случае RISC быстрее CISC. Даже если системе RISC приходится выполнять 4 или 5 команд вместо одной, которую выполняет CISC, RISC все равно выигрывает в скорости, так как RISC-команды выполняются в 10 раз быстрее.
Отсюда возникает закономерный вопрос: почему многие всё ещё используют CISC, когда есть RISC? Всё дело в совместимости. x86_64 всё ещё лидер в desktop-сегменте только по историческим причинам. Так как старые программы работают только на x86, то и новые desktop-системы должны быть x86(_64), чтобы все старые программы и игры могли работать на новой машине.
Для Open Source это по большей части не является проблемой, так как пользователь может найти в интернете версию программы под другую архитектуру. Сделать же версию проприетарной программы под другую архитектуру может только владелец исходного кода программы.
MISC (англ. Minimal Instruction Set Computer — «компьютер с минимальным набором команд»).
Ещё более простая архитектура, используемая в первую очередь для ещё большего уменьшения итоговой цены и энергопотребления процессора. Используется в IoT-сегменте и недорогих компьютерах, например, роутерах.
Для увеличения производительности во всех вышеперечисленных архитектурах может использоваться “спекулятивное исполнение команд”. Это выполнение команды до того, как станет известно, понадобится эта команда или нет.
VLIW (англ. Very Long Instruction Word — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно.
По сути является архитектурой CISC со своим аналогом спекулятивного исполнения команд, только сама спекуляция выполняется во время компиляции, а не во время работы программы, из-за чего уязвимости Meltdown и Spectre невозможны для этих процессоров. Компиляторы для процессоров этой архитектуры сильно привязаны к конкретным процессорам. Например, в следующем поколении максимальная длина «очень длинной команды» может из условных 256 бит стать 512 бит, и тут приходится выбирать между увеличением производительности путём компиляции под новый процессор и обратной совместимостью со старым процессором. Опять же, Open Sourсe позволяет простой перекомпиляцией получить программу под конкретный процессор.
Примеры архитектуры: Intel Itanium, Эльбрус-3.
Виртуальные архитектуры
Из минусов виртуальных архитектур можно выделить меньшую производительность по сравнению с реальными архитектурами. Этот минус нивелируется с помощью JIT- и AOT-компиляции. Однако большим плюсом будет кроссплатформенность.
Дальнейшим развитием этих архитектур стали гибридные архитектуры. Например современные x86_64 процессоры хотя и CISC-совместимы, но являются процессорами с RISC-ядром. В таких гибридных CISC-процессорах CISC-инструкции преобразовываются в набор внутренних RISC-команд. Какое дальнейшее развитие получат архитектуры процессора, покажет только время.
Отечественный процессор — так каким он должен быть?
Предыдущая статья про микропроцессор Эльбрус вызвала живой отклик читателей Хабра. Изначально я планировал написать только статью о технических проблемах VLIW-архитектур на конкретном примере Эльбруса и имел мало желания углубляться в вопрос дальше, ввиду его куда большой скользкости и дискуссионности. Но сказать «А» и не сказать «Б» было бы, наверное, не совсем правильно. Поэтому в данной статье я попытаюсь изложить исключительно СВОЙ взгляд на проблематику того, какие процессорные Архитектуры (в контексте general purpose CPU) надо развивать и поддерживать рублем в России.
Сразу скажу – данная статья куда более дискуссионная, чем предыдущая. Если тупиковость VLIW для GP CPU – это просто научный факт, давно известный экспертам в индустрии (вот мнение Линуса Торвальдса, вот Хеннеси и Паттерсона), то пути развития отечественных процессоров в целом имеют множество неопределённостей, рисков и проблем, которые не всегда можно предугадать или правильно оценить. Поэтому убедительная просьба воспринимать данную статью как отправную точку для профессиональной дискуссии, а не готовое бесспорное решение. Конструктивная критика и вообще любые значимые дополнения – крайне приветствуются.
Но перед тем как погрузиться в техническую сторону вопроса необходимо сделать лирическое отступление на тему «отечественности» чего-либо и конкретно процессоров. К сожалению, на этом вопросе происходит такое количество спекуляций, манипуляций и откровенной дезинформации, что дискуссия как правило просто тонет в каких-то оторванных от реальности и полностью лишённых понимания ситуации аргументах. А серия выступлений и видео от популярных блогеров в последнее время сделали настолько актуальной данную тему, что не оставили мне шанса не пройтись по ней.
Что надо, чтобы собрать более-менее приличный сервер, который не стыдно поставить на реальное предприятие? Процессор, память, диски и куча мелкой комплектухи, на которую можем пока даже не обращать внимание. Память в России мы не производим. Диски тоже. Т.е. это не просто какая-то критическая зависимость в компонентах от зарубежных поставщиков – просто не производим ни в каком виде. Как и видеокарты, если мы говорим о десктопах или каких-то HPC вычислениях. Т.е. даже если не брать в рассмотрение процессоры, то по ключевым компонентам компьютера в целом у нас пока полная зависимость. И по некоторым пунктам наладить собственное производство – едва ли не сложнее, чем с процессорами. Но в данной статье мы не будем углубляться в проблемы с другими компонентами и сконцентрируемся именно на процессорах.
Для начала давайте попробуем на верхнем уровне разобраться, а что нужно, чтобы сделать более-менее современный процессор? Как выглядит та работа, которую выполняют передовые дизайн-центры в мире (такие как Apple, AMD, Qualcomm, Nvidia, HiSilicon), проектирующие процессоры?
В крайне схематичном виде, процесс выглядит как-то так:
В скобках указаны примерные затраты в человеко-годах для создания данного этапа производства процессора в условиях России. Понятно, что это крайне приблизительно, но важно, чтобы читатель примерно понимал порядки цифр. Синим цветом выделены этапы, которыми может заниматься дизайн-центр (а может не заниматься). Оранжевым – те этапы, которые в России отсутствуют, если речь идёт о создании передовых процессоров.
Что мы видим, исходя из этой картинки? Непосредственное производство у любого отечественного дизайн-центра будет на Тайване на TSMC. Вопрос с заводом в России, который будет способен производить чипы по передовым технологиям, это настолько большая проблема, что пока она выглядит просто нерешаемой, и про неё пока можно забыть. Некоторые технологические процессы можно пытаться локализовать (например, корпусирование), но в целом производство – это пока из другой вселенной.
Создание процессоров в наше время невозможно без кучи специализированного программного обеспечения, необходимого для процесса проектирования. Поэтому все разработчики будут использовать САПР (или EDA tools – общее название таких программ, используемое в индустрии) от Synopsys/Cadence – ведущих компаний в данной отрасли. И применение каких-то отечественных средств проектирования хоть и выглядит чуть менее страшно, чем история с заводом, но по сути о каком-либо импортозамещении сейчас речи идти не может, а разработка аналогов – это даже не годы, а десятилетия.
Для симуляций (необходимого процесса проверки корректности логики проектируемого процессора) необходимы современные ПЛИС (FPGA). Все они – импортные. Места для разработки и сервера – x86 (на другом Synopsys/Cadence не работает).
Все разработчики будут использовать сторонние IP-блоки, просто кто-то больше, а кто-то меньше ( IP-блоки – это своего рода библиотеки, которые можно не писать самому, а использовать уже в готовом виде для создания процессора. Т.е., например, вы можете разрабатывать само ядро процессора, но контроллер памяти или PCI купить в готовом виде и интегрировать в свой SOC, т.к. их разработка потребует много времени и ресурсов).
К чему это всё? А к тому, что современная индустрия производства процессоров настолько колоссальна и сложна, что на данный момент ни одно государство в мире не имеет здесь полный цикл производства «от песка до MS Word» в контексте самого передового техпроцесса. Поэтому «импортозаместить» весь цикл производства процессоров в России – нереально в сколь-либо обозримой перспективе в масштабах человеческой жизни. Возможно, сейчас я разрушил вашу веру в деда Мороза, но взросление – иногда тяжёлый процесс. Но для того, чтобы понять, что делать, первое с чего стоит начинать – это без прикрас обрисовать ситуацию.
Означает ли это, что не стоит тогда мучаться, а надо просто покупать Intel’а, если нам их соизволят продать? Конечно же нет, ибо дорогу осилит идущий. Но надо чётко понять, что сейчас реально достижимо, и поставить адекватную цель. А потом понять, как к ней оптимально двигаться.
Данные дизайн-центры сразу должны иметь потенциал для выхода на международный рынок. Чем больше рынок – тем больше партии и доходы. Рынок России сейчас априори слишком мал для окупаемости таких продуктов. Текущая поддержка от государства должна рассматриваться лишь как помощь в контексте затрат, неминуемо связанных с освоением новых рынков. Иначе вся эта история превращается бесконечную мыльную оперу – «мы такие бедные и несчастные, посмотрите сколько вкладывает Intel, дайте нам денег».
Т.е. главной целью должно быть создание конкурентноспособного на мировом рынке продукта. И для этого должны использоваться все доступные на данный момент технологии и разработки, если надо – то зарубежные. Потому что на текущий момент мы всё равно критически завязаны на импортные технологии. Да, тут возможны эксцессы, санкции, нечестная конкуренция и т.д. Но выбора у нас нет. Хорошая новость заключается в том, что мир сейчас настолько глобален и взаимосвязан, а стремление к прибыли у капиталистов настолько неистребимо, что полностью исключить Россию из мировых цепочек не получится (иначе это уже варианты, где будет говорить РВСН), и у нас всегда будет пространство, чтобы искать способы решения возникающих проблем и находить их.
Что ещё показывает вышеприведённая схема? Что разработка Архитектуры – процесс несложный и в общем не представляющий особого интереса в плане компетенций. Здесь я хочу ещё раз повторить написанное в прошлой статье:
Ключевые и критические компетенции в разработке процессоров находятся в проектировании микроархитектуры и её реализации в кремнии, а не в разработке архитектуры. Фактически, спор об отечественности архитектуры аналогичен обсуждению – «а стоит ли для разработки отечественного софта использовать язык Си или любой другой, разработанный за рубежом?»
В то же время разработка собственной архитектуры имеет один крайне неприятный минус – необходимо полностью создавать программную экосистему с нуля, что по суммарным затратам может существенно превышать ресурсы, потраченные непосредственно на разработку процессора. А главное – на это потребуется много времени (годы), а до этого ваш процессор будет никому не нужен, потому что «silicon without software is just a sand».
Поэтому в данном вопросе как раз нет никакого смысла гнаться за абстрактной «отечественностью». Надо просто выбрать из тех вариантов, которые уже существуют и удовлетворяют нашим требованиям(об этом ниже).
Итак, с лирикой, можно закончить. Перейдём к конкретике. Из каких архитектур мы можем выбирать на данный момент? Каковы должны быть критерии выбора?
Мой тезис заключается в том, что массовая архитектура должна быть RISC/CISC (почему, объяснялось в прошлой статье) и в первую очередь удовлетворять двум основным требованиям:
Лицензионная чистота (т.е. возможность легально производить процессоры данной архитектуры, с минимальными рисками этой возможности лишиться)
Размер существующей программной экосистемы.
Все остальные аспекты можно рассматривать только в том случае, если по данным двум критериям сравниваемые архитектуры эквивалентны. И точка.
X86-64
В нише серверов и десктопов архитектура от компании Intel – безусловный лидер. Поэтому по критерию развитости программной экосистемы у x86 нет конкурентов. Но всё заканчивается на вопросе лицензирования – это практически невозможно. Компания Intel полностью эксплуатирует факт доминирования x86-го софта на рынке и не горит желанием плодить себе конкурентов. Наличие лицензий у компаний вроде AMD и VIA есть результат бурной молодости в эпоху становления гегемонии x86. Сейчас же единственный шанс получить лицензию на архитектуру x86 – это купить компанию наподобие AMD. Думаю, достаточо очевидно, что это нереально по многим причинам, в том числе политическим. Поэтому архитектура x86 не может стать базисом для отечественных процессоров.
По размеру программной экосистемы архитектура ARM находится на текущий момент на 2-ом месте, уступая только конкурентам из Intel. Это безусловный плюс. Минусом является то, что это лицензируемая архитектура, правами на которую владеет британская комания Arm Ltd. И хотя бизнес-моделью Arm Ltd. является как раз зарабатывание на лицензировании своей архитектуры, и в общем случае, нет особых сложностей эту лицензию получить, для нас важно понимать, что может происходить в случаях частных. А в них, например, есть история про то, как компания Байкал Электроникс имела сложности с лицензированием Arm, из-за чего первый процессор, который она выпустила, был чип на основе MIPS архитектуры. И даже если вы лицензию получили, понятно, что её можно потом и отозвать. Тут крайне важно, как юристы пропишут договор, но понятно, что молодая компания из России вряд ли сможет диктовать условия контракта гиганту вроде Arm Ltd. Поэтому риск потенциальных проблем с лицензированием Arm всегда существует, и это является большим минусом.
В России процессоры на базе архитектуры Arm разрабатывают как минимум компании Байкал Электроникс, Элвис, Миландр (хотя не все эти разработки нацелены на нишу выскопроизводительных процессоров, но тем не менее).
Sparc
В России процессоры архитектуры Sparc выпускает МЦСТ.
MIPS
Когда-то архитектура MIPS была исключительно популярной, фактически, бросая вызов x86. Но те времена давно минули, а буквально недавно компания, владеющая правами на MIPS, объявила, что она прекращает развитие архитектуры и «переходит» на RISC-V. Программная экосистема MIPS достаточно развита, с лицензией до конца непонятно, т.к. переход в полностью открытую хотя и был объявлен, но судя по всему, завершён не был. А теперь и непонятно, будут ли её вообще выдавать. В любом случае, делать ставку на архитектуру, от поддержки которой отказались сами владельцы, достаточно бессмысленно на мой взгляд.
В России процессоры на базе архитектуры MIPS разрабатывает НИИСИ
PowerPC
Архитектура из недр компании IBM, которая имеет достаточно большую долю рынка серверов даже сейчас. Т.е. с экосистемой всё неплохо. Более того, 2 года назад компания IBM, следуя за веяниями моды, сделала свою архитектуру открытой, передав все права Linux Foundation. Таким образом, архитектура PowerPC вполне удовлетворяет базовым требованиям для архитектуры, которую можно использовать для разработки отечественного процессора и широкого использования в дальнейшем.
Но опять-таки, минус архитектуры заключается в том, что она «не в тренде». Новые процессоры на её базе не появляются, экосистема не растёт, индустрия смотрит в сторону других архитектур. При этом IBM является founding member некоммерческой организации RISC-V International, которая занимается развитием архитектуры RISC-V. В каком-то смысле, история аналогична MIPS, с той разницей, что IBM как компания куда более финансово устойчива и успешна, и поэтому, в состоянии совсем уж не бросать своё детище.
RISC-V
Новомодная архитектура, целью которой заявляется «создание Linux для мира hardware». Несмотря на небольшой возраст, экосистема уже достаточно объёмная, и что главное, растёт быстрыми темпами, в то время как «старожилы» давно застопоролись в своём развитии. Главная прелесть RISC-V – это полностью лицензионно открытая архитектура. Т.е. брать и делать чип на базе RISC-V можно прямо сейчас, не нужно никаких бюрократических действий или выплат. Собственно, именно появление RISC-V привело к фактической смерти MIPS, заставило IBM сделать PowerPC открытым, добивает Sparc и даже заставлет нервничать гигантов из Arm и Intel, что приводит к появлению такого рода новостей.
В целом, RISC-V также можно признать отличным кандидатом для создания базовой отечественной платформы.
На текущий момент мне известно о 2-х компаниях в России, занимающихся разработкой RISC-V ядер – это Syntacore (приобретённая в 2019-ом году компанией Yadro) и CloudBear (Миландр выпустил микроконтроллер на базе ядра от CloudBear).
RISC архитектура собственной разработки
Было бы справедливо упомянуть и данный вариант. Главный его минус – это полное отсутствие экосистемы и необходимость создавать её с нуля. В силу того, что вряд ли стоит рассчитывать, что популярность новой архитектуры выйдет за пределы России, нам придётся всё тащить самим. Т.к. разработка новой архитектуры сама по себе никакой практической ценности не несёт, а вот проблем добавляет множество, мне этот путь видится неправильным. Он проигрывает любому варианту из уже существующих архитектур со свободной лицензией.
Что касается лицензирования – то новая архитектура не должна принадлежать никакой частной компании. Она должна быть открыта для всех наподобие RISC-V.
Эльбрус
Хотя мы уже выяснили, что VLIW не может быть основой для GP CPU на широком рынке, мне кажется полезным для понимания рассмотреть архитектуру Эльбрус в контексте вышеозначенных требований, предъявляемых для RISC/CISC архитектур. С программной экосистемой всё понятно – это вариант 7, помноженный на сложности портирования на VLIW и закрытость архитектуры.
А вот про лицензируемость стоит поговорить отдельно. Компания МЦСТ постоянно заявляет об отечественной архитектуре. Нет сомнения, что архитектуру E2K разработали люди в России (сам к этому приложил руку). Но в таких делах гражданство или национальность разработчиков имеет мало значения. Две трети жителей Силиконовой Долины – азиаты, но вряд ли можно чипы от Apple или Qualcomm назвать индийскими. Главный вопрос – кому юридически принадлежат права на архитектуру Эльбрус? И вопрос этот, вообще говоря, совсем непраздный. Секретом Полишинеля является тот факт, что всеми патентами, связанными с разработкой Эльбрусов, владеет компания Elbrus International Ltd., зарегистрированная на Каймановых Островах. Какова тогда структура владения прав на архитектуру Эльбрус? И кто является конечным бенефициаром тех юридических структур? Даже если это МЦСТ в конечном итоге, то это частная компания, которая принадлежит вполне определенным лицам. Что произойдёт в случае, если они захотят компанию продать иностранцам, как это уже было сделано в 2004-ом году? И что будет, если во владение МЦСТ вступят люди с иностранными паспортами, хотя бы по праву наследования?
Вообще, ситуация с закрытостью архитектуры Эльбрус, чем дальше, тем вызывает всё больше вопросов. Массово в масштабах страны внедрять в производство архитектуру с закрытой системой команд – это даже уже не маразм, это где-то на грани госизмены. Поэтому первое, с чего надо начинать, если рассматривать её в качестве базовой отечественной платформы – это выяснение юридического статуса архитектуры и её открытие. Иначе мы можем получить ситуацию, когда вложив миллиарды, получим иски от компаний с иностранной юрисдикцией и все затраты по созданию программной экосистемы под E2K вылетят в трубу. И никакие ссылки на могущественного «заказчика», которыми любят оправдывать закрытость архитектуры спикеры от МЦСТ, здесь уже не спасут – иностранным судам будет всё равно.
Для меня очевидно, что базовая отечественная архитектура не должна принадлежать одной частной компании без простой возможности её лицензирования (в идеале, вообще должна быть открытой архитектурой). Какой бы мы вариант в итоге не выбрали, архитектура должна быть свободно доступна для любого желающего, кто захочет создавать процессоры для отечественного рынка, или разрабатывать под него ПО. Потому что это избавляет от множества рисков: что конкретно эта компания попадёт под санкции, что пользуясь своим доминированием начнёт диктовать условия потребителям и государству или работать спустя рукава. Общедоступная и открытая архитектура даёт гарантию, что всегда можно будет переориентироваться на другого разработчика, возникнет та самая конкуренция на уровне коллективов разработки, и что все те усилия, которые государство и разработчики софта будут вкладывать в создание программной экосистемы, не пойдут прахом.
Если суммировать вышеизложенные пункты, лично моё мнение будет таким: на текущий момент «здесь и сейчас», лучший вариант – это архитектура ARM. Она имеет наиболее развитую из доступных вариантов экосистему (не только программную, но и аппаратную), при этом, есть возможность её лицензирования.
Если же смотреть на перспективу, то это RISC-V. Данная архитектура не имеет лицензионных рисков ARM, хотя на данный момент и уступает по размеру экосистемы (но это будет стремительно меняться в ближайшие годы).
По большому счёту, обсуждение должно идти, какую комбинацию из этих 2-х архитектур нужно выбирать. На мой взгляд, упор надо делать на развитие именно RISC-V, т.к. это, помимо прочего, и новый рынок, на который наши компании имеют возможность зайти, ввиду его текущего бурного развития. Рынок ARM уже куда более забронзовел и там меньше возможностей. При этом, с учётом того, что программная экосистема ARM сама по себе очень широкая, нам не потребуется больших усилий по её развитию, по-большей части, мы можем пользоваться уже готовым. Да, некоторым локальным производителям программного обеспечения, возможно, придётся портировать свои продукты не на одну архитектуру, а на две (ARM и RISC-V), но это уже неизбежные издержки, на которые придётся пойти, т.к. идеальных вариантов всё равно нет.
Выбор, каким путем идти и какую из 2-х вышеуказанных архитектур использовать для создания своих процессоров каждый дизайн-центр должен уже решать сам. Риски, преимущества и недостатки каждого варианта в целом изложены выше. А какой путь окажется более успешным будет зависеть уже от множества факторов. Но по-крайней мере, если придерживаться такого пути, имеющиеся ресурсы и усилия людей будут работать на дальнейшее развитие отрасли максимально эффективно.