Особенности компьютеров с vliw архитектурой выберите один или несколько ответов

Обновлено: 06.07.2024

Сейчас буду пояснять за Эльбрус.
1) Тактовая частота. Да, у Эльбрусов она в 2-3 раза ниже. Но их архитектура позволяет выполнять огромное количество операция в секунду при достаточно низком энергопотреблении, так что 3 ГГц у МЦСТ ГОРАЗДО больше, чем те же 3 ГГц у Интел.
2) Собственно архитектура. e2k и x86 максимально отличаются друг от друга. e2k это VLIW(Very Long Instruction Word), а x86 это CISC(Complex Instriction Set Computing). Преимущество VLIW в том, что одной инструкцией можно выполнять несколько операций параллельно. Это и позволяет Эльбрусу иметь большую производительность, чем есть у Интел.
3) Тесты. Официальный тест Doom 3 BFG на 8С был с немощной карточкой, что и урезало ФПС. Бачило же поставил хоть и не самую крутую, но всё же гораздо лучшую карту. Ну и ФПС вырос. А Вайс Сити на нем тормозит по той же причине, по которой будет тормозить ЛЮБОЙ софт, собранный под другой архитектурой - эмуляция этой самой архитектуры. Если собрать Вайс Сити под e2k, то лаги магическим(нет) образом пропадут.
В большинстве сравнений с Интелами и АМД, в которых Эльбрус проигрывает, он работал в режиме эмуляции x86, что сильно урезало производительность. Поставить их в равные условия, то есть без эмуляции и тогда, скорее всего, Эльбрус 8С будет выдавать более лучший результат(правда тогда хз где доставать исходники игор).
Почему выбрали Doom 3? Он опенсурс, и имеет форки с графическими наворотами.
4) Производство. Интелы с АМД тоже в Китаях и Малайзиях всё делают, что на них никто не вы***вается?
5) Доступность. Дешевизна x86 частично основана на бОльших объемах производства. Однако, те же BitBlaze, которые как раз предоставили Бачиле второй комп, продают такие за чуть больше, чем 100к. Да, софт только опенсурсный. Но производительность в этом софте в несколько раз выше, чем у x86. Оперативки достаточно(24 гб очень даже много), а видеокарту и с авито можно купить, тысяч за 30-40. За те же деньги можно купить комп, который будет по производительности не больше 8С(с оговоркой на архитектуру, при эмуляции x86 Эльбрус проигрывает).

З.Ы. Да, я не читала пост, мне первых абзацев хватило, чтобы понять что автор несет лютую шизофрению.
З.З.Ы. Всю информацию брала из Википедии, которая всё же более авторитетная, чем выкукареки либерашки. А связывала я эту инфу между собой как могла.
З.З.З.Ы. Прежде чем автор поста назовет меня "кремлевской подстилкой плюспятнядцатьрублей", скажу, что политику Кремля я не особо поддерживаю.

EPIC: явный параллелизм команд

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

Одна из целей, которые ставили перед собой при создании EPIC, состояла в том, чтобы сохранить реализованный во VLIW принцип статического создания POE, но и в то же время обогатить его возможностями, аналогичными возможностям суперскалярного процессора, позволяющими новой архитектуре лучше учитывать динамические факторы, традиционно ограничивающие параллелизм, свойственный VLIW. Чтобы добиться этих целей, «идеология» EPIC была построена на некоторых основных принципах.

Аппаратно-программный комплекс VLIW

Архитектура VLIW представляет собой одну из реализаций концепции внутреннего параллелизма в микропроцессорах. Их быстродействие можно повысить двумя способами: увеличив либо тактовую частоту, либо количество операций, выполняемых за один такт. В первом случае требуется применение «быстрых» технологий (например, использование арсенида галлия вместо кремния) и таких архитектурных решений, как глубинная конвейеризация (конвейеризация в пределах одного такта, когда в каждый момент времени задействованы все логические блоки кристалла, а не отдельные его части). Для увеличения количества выполняемых за один цикл операций необходимо на одном чипе разместить множество функциональных модулей обработки и обеспечить надежное параллельное исполнение машинных инструкций, что дает возможность включить в работу все модули одновременно. Надежность в таком контексте означает, что результаты вычислений будут правильными. Для примера рассмотрим два выражения, которые связаны друг с другом следующим образом: А=В+С и В=D+Е. Значение переменной А будет разным в зависимости от порядка, в котором вычисляются эти выражения (сначала А, а потом В, или наоборот), но ведь в программе подразумевается только одно определенное значение. И если теперь вычислить эти выражения параллельно, то на правильный результат можно рассчитывать лишь с определенной вероятностью, а не гарантировано.

Логический слой VLIW-процессора

Эта гипотетическая инструкция имеет восемь операционных полей, каждое из которых выполняет традиционную трехоперандную RISC-подобную инструкцию типа = — — (типа классической команды MOV AX BX) и может непосредственно управлять специфическим функциональным блоком при минимальном декодировании.

Для большей конкретности рассмотрим кратко IA-64 как один из примеров воплощения VLIW. Со временем эта архитектура способна вытеснить x86 (IA-32) не только на рынке, но вообще как класс, хотя это уже удел далекого будущего. Тем не менее, необходимость разработки для IA-64 весьма сложных компиляторов и трудности с созданием оптимизированных машинных кодов может вызвать дефицит специалистов, работающих на ассемблере IA-64, особенно на начальных этапах, как самых сложных.

Наиболее кардинальным нововведением IA-64 по сравнению с RISC является явный параллелизм команд (EPIC), вносящий некоторые элементы, напоминающие архитектуру сверхдлинного командного слова, которые назвали связками (bundle). Так, в обеих архитектурах явный параллелизм представлен уже на уровне команд, управляющих одновременной работой функциональных исполнительных устройств (или функциональных модулей, или просто функциональных устройств, ФУ).

В данном случае связка имеет длину 128bit и включает в себя 3 поля для команд длиной 41bit каждое, и 5-разрядный слот шаблона. Предполагается, что команды связки могут выполняться параллельно разными ФУ. Возможные взаимозависимости, препятствующие параллельному выполнению команд одной связки, отражаются в поле шаблона. Не утверждается, впрочем, что параллельно не могут выполняться и команды разных связок. Хотя, на основании заявленного уровня параллельности исполнения, достигающего шести команд за такт, логично предположить, что одновременно могут выполняться как минимум две связки.

Шаблон указывает какого непосредственно типа команды находятся в слотах связки. В общем случае однотипные команды могут выполняться в более чем одном типе функциональных устройств. Шаблоном задаются так называемые остановки, определяющие слот, после начала выполнения команд которого инструкции последующих полей должны ждать завершения. Порядок слотов в связке (более важные справа) отвечает и порядку байт (Little Endian), однако данные в памяти могут располагаться и в режиме Big Endian (более важные слева), который устанавливается специальным битом в регистре маски пользователя.

Вращение регистров является в некотором роде частным случаем переименования регистров, применяемого во многих современных суперскалярных процессорах с внеочередным спекулятивным («умозрительным») выполнением команд. В отличие от них, вращение регистров в IA-64 управляется программно. Использование этого механизма в IA-64 позволяет избежать накладных расходов, связанных с сохранением/восстановлением большого числа регистров при вызовах подпрограмм и возвратах из них, однако статические регистры при необходимости все-таки приходится сохранять и восстанавливать, явно кодируя соответствующие команды.

Принцип действия VLIW-компилятора

VLIW: обратная сторона медали

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

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

Вместо заключения

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

Оглядываясь назад, можно предположить с довольно большой вероятностью, что Transmeta «погубило» нежелание использовать в полной мере существующие современные технологии памяти. Вполне очевидно, что при динамической компиляции приложений нагрузка на ОЗУ увеличится в разы. Иными словами, используя подсистему памяти с невысокой пиковой пропускной способностью, Transmetа обрекла себя на огромный проигрыш в приложениях, интенсивно обращающихся к системному ОЗУ, тогда как в производительности приложений, большую часть времени проводящих внутри процессора, практически паритет. Будущий путь Transmeta, рассуждая логически, должен быть направлен на расширение количества функциональных устройств процессора с возможностью параллельного исполнения двух и более веток программы (разных программ) в одном ядре, используя более масштабируемую и быстродействующую системную память.


Несколько лет назад я беседовал с одним из наших заслуженных процессоростроителей, который, несмотря на преклонные годы, до сих пор активен в типичной организации с приставками "ФГУП" и "НИИ". Говорили мы о забытых достижениях в области высокопроизводительных вычислительных систем, речь шла о SIMD, VLIW и прочем. Мой собеседник посетовал, что о многих действительно оригинальных советских решениях в области спецвычислений до сих пор информация закрыта.

Есть и еще один проблемный момент с историей советских компьютеров. Как ни странно, речь о концентрации внимания историков на одних только характеристиках железа. Понятно, что устройство машины -- это важно и интересно, но ведь за каждой разработанной ЭВМ с передовой архитектурой стоит какая-то теория и методики разработки, которые устаревают значительно медленнее, чем сами разработанные машины. Хорошими примерами такого рода материалов являются "однородные вычислительные системы, структуры и среды" Евреинова или же теория "ярусно-параллельных форм" Поспелова. Но в целом подобной информации, увы, в открытом доступе очень немного.

Перехожу, наконец, к сути! В интернете можно найти обрывочные сведения о том, что "первой советской VLIW-машиной" является нереализованный проект M-9 или же вдохновленная им машина М-10.

На сайте ИНЭУМа о М-9 есть следующая информация:

". Дополнительный выигрыш в повышении производительности на 1-2 десятичных порядка мог быть получен за счет второй основной идеи, предложенной в проекте М-9. Она заключалась в синхронном объединении нескольких машин в одну вычислительную систему. При таком синхронном объединении все машины должны были работать от одного тактового генератора, выполнять операции за 1-2 такта. В конце операции и в начале следующей операции был возможен обмен между любыми арифметическими и запоминающими устройствами машин, объединенных в систему".

". Еще в конце 60-х годов М. А. Карцевым были предложены принципиальные новшества в архитектуре ЭВМ и вычислительных систем: архитектура типа RISC с сокращенным набором команд, выполняемых за 1 машинный такт, и архитектура типа VLIW с длинным командным словом, задающим коды операций над векторами той или иной длины, выполняемых одновременно в двух или более многопроцессорных арифметических устройствах".

При этом М-9 называют еще и векторной машиной, а иные авторы только добавляют путаницы в духе:

"Комплекс М-9 был одной из первых вычислительных систем, архитектура которых впоследствии получила название VLIW (very long instruction word —очень длинная машинная команда). ЭВМ М-10 и М-13, о которых речь пойдет далее, также часто приводятся, как пример отечественных VLIW-архитектур. В каждой команде такой системы содержится несколько операций, которые должны выполняться параллельно на разных процессорах. VLIW-машина лучше всего выполняет векторные операции, в которых одна и та же операция выполняется над множеством данных (компонентов вектора) -- такой процесс оптимизируется наиболее просто. Поэтому описываемую далее М-10 часто называют векторной (векторно-параллельной) машиной. ".

Как и всегда в подобных случаях, для прояснения картины я обратился к прямым источникам советского времени. В частности, я попытался выяснить, оставил ли после себя разработчик легендарных M-9/М-10, М.А. Карцев, какие-то книги по созданным им машинам. Удача мне улыбнулась в виде следующего учебника: "Карцев М. А., Брик В. А. Вычислительные системы и синхронная арифметика //М.: Радио и связь. – 1981. – Т. 6". Первые две главы в этой книге написаны Карцевым и могу уверенно сказать, что они представляют интерес не только для историков, но и для специалистов по архитектуре ЭВМ!

Ключевой в контексте моего поиска является глава 2 под названием "Структуры вычислительных систем". Карцев, как и многие другие ученые, не был в восторге от знаменитой классификации Флинна (SISD/SIMD/MISD/MIMD) и поэтому предложил свой вариант. Как вы уже, возможно, догадались, нашлось в новой классификации место и VLIW-машинам.

Итак, речь идет о системах "типа III" и это "многопроцессорные системы с общим управлением, ориентированные на параллелизм смежных операций". Параллелизм смежных операций это, разумеется, параллелизм команд. Карцев рассматривает два варианта организации таких систем. Первый состоит в том, что "прочитав очередную инструкцию, устройство управления анализирует, имеются ли условия для того, чтобы начать ее исполнение, если возможно, -- поручает ее исполнение любому свободному процессору". Здесь речь идет о внеочередном исполнении или даже о dataflow-подобных архитектурах. Второй случай как раз рассматривает VLIW. Судите сами:

"Во втором варианте устройство управления прочитывает из памяти непосредственно векторы-инструкции. Один вектор-инструкция содержит в пределе n компонент -- по числу процессоров, каждая из которых указывает, какую операцию должен выполнить соответствующий процессор".

Да, "вектор-инструкция" это и есть та самая широкая команда. По поводу процесса распараллеливания:

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

Судя по всему, Карцев был знаком с алгоритмами планирования инструкций, но, говоря о компиляции для VLIW-архитектур, ограничивался общим термином "локальная оптимизация".

Эффективность VLIW-машин далее в книге детально анализируется и Карцев, в частности, пишет, что "целесообразная величина n (количество процессоров) для вычислительных систем типа III лежит в пределах 2-6".

Наконец, в учебнике Карцева четко сказано о еще одном важном признаке VLIW-архитектуры:

"В многопроцессорной системе типа III, работающей с вектором-инструкцией, желательно, чтобы длительность выполнения операции не зависела не только от операндов, но и от типа операции, потому что цикл работы системы и здесь подстраивается под наибольшее время работы любого из n процессоров, но теперь эти процессоры выполняют, может быть, разные операции".

На мой взгляд, уже по приведенным цитатам видно, что перед нами содержательное теоретическое введение в VLIW-архитектуры. Обсуждаемая книга вышла в 1981 году, за два года до знаменитой статьи Фишера. Сама же классификация, включая те самые машины типа III, была предложена в статье Карцева 1970 года: "Вопросы построения многопроцессорных вычислительных систем. Вопр. радиоэлектроники, сер. Электронная вычислительная техника, 1970, вып. 5—6, 3—19".

Осталось сравнить подходы к определению VLIW у Карцева и признанного автора VLIW -- Фишера. Как и в случае первых RISC-машин, здесь важную роль играет поддержка в виде компилятора. У Фишера VLIW-архитектура со стороны компилятора проработана детальнее, чем у Карцева и представлена, в частности, знаменитая техника trace scheduling. Тем не менее по тексту учебника "Вычислительные системы и синхронная арифметика" видно, что Карцев прекрасно понимал важность роли компилятора для рассматриваемой архитектуры. При этом с точки зрения проработки теории аппаратной стороны VLIW Карцев, на мой взгляд, ни в чем не уступает Фишеру.

Я очень надеюсь, что упомянутая выше статья Карцева 1970-го года когда-нибудь появится в свободном доступе в интернете. Что же касается путаницы у процитированных выше авторов с классификацией архитектуры M-9, то, затруднение, очевидно, произошло потому, что машина М-9, в терминологии Карцева, представляла собой проект с комбинированной архитектурой. Конечно же, о комбинированных архитектурах (включающих в себя элементы SIMD, VLIW, . ) тоже подробно написано в книге "Вычислительные системы и синхронная арифметика".

Ниже я привожу схему комбинированной архитектуры, о которой Карцев пишет, что она послужила прообразом для машины М-10:


На верхнем уровне это массово-параллельный компьютер с распределенной памятью. Каждая связка представляет собой отдельный элемент вычислительного кластера. Связка -- это мультипроцессор с общей памятью. Элементы в составе мультипроцессора -- это VLIW-процессоры. Операции VLIW-процессора в составе вектора-инструкции являются, в свою очередь векторными, они выполняются сразу над целой линией АЛУ. Согласитесь, эта схема выглядит весьма современно!



В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения между ними работы решается аппаратно. Это сильно усложняет дизайн процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство должно выполнять какую команду.

VLIW можно считать логическим продолжением идеологии RISC, расширяющей её на архитектуры с несколькими вычислительными модулями. Так же, как в RISC, в инструкции явно указывается, что именно должен делать каждый модуль процессора. Из-за этого длина инструкции может достигать 128 или даже 256 бит.

Содержание

Пример

Рассмотрим работу модельного VLIW-процессора с двумя арифметическо-логическими устройствами (АЛУ). Пусть нам надо сложить четыре числа, находящиеся в регистрах R1, R2, R3 и R4. Тогда псевдокод может выглядеть так:

Преимущества и недостатки

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

В то же время, код для VLIW обладает невысокой плотностью. Из-за большого количества пустых инструкций для простаивающих устройств программы для VLIW-процессоров могут быть гораздо длиннее, чем аналогичные программы для традиционных архитектур.

Архитектура VLIW выглядит довольно экзотической и непривычной для программиста. Из-за сложных внутренних зависимостей кода, программирование на уровне машинных кодов для VLIW-архитектур человеком вручную является достаточно сложным. Приходится полагаться на оптимизацию компилятора.

Реализации

Одни из первых VLIW-процессоры появились в конце 1980-х и были разработаны компанией Cydrome. [1]

В чистом виде архитектуру VLIW имеют процессоры TriMedia фирмы Philips и семейство DSP C6000 фирмы Texas Instruments. [2]

Микропроцессор Transmeta Crusoe содержит слой двоичной совместимости с архитектурой x86, который компилирует инструкции во внутренний формат процессора (code morphing). Ядро Crusoe является VLIW-процессором. [3]

Микропроцессор Intel Itanium имеет 64-битную систему команд EPIC-процессора с явным параллелизмом, которая является одним из вариантов VLIW.

Многопроцессорный вычислительный комплекс «Эльбрус-3» и микропроцессоры серии «Эльбрус» («Эльбрус 2000», «Эльбрус S») являются VLIW-процессорами. [4]

Процессоры, выпускаемые фирмой Tilera, также имеют VLIW-архитектуру. [5]

VLIW также получила хорошее распространение на рынке GPU, так, видеопроцессоры AMD/ATI Radeon начиная с R600 и до современных имеют VLIW архитектуру. [6] [7] В последнем поколении (Southern Islands) компания AMD/ATI отошла от подхода VLIW [8]

См. также

Ссылки

Примечания

  • Технологии процессоров
  • Обработка команд

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое "VLIW" в других словарях:

VLIW — noun A very long instruction word; an explicitly created set of processor instructions to be executed simultaneously … Wiktionary

VLIW — Very Long Instruction Word (Academic & Science » Electronics) * Very Large Instruction Word (Computing » Assembly) … Abbreviations dictionary

VLIW — Very Long/Large Instruction Words, Prinzip von RISC Prozessoren, die sehr grosse Instruktionsworte benutzen, Gegenteil von LIW … Acronyms

VLIW — ● ►en sg. m. ►ARCHI Very Long Instruction Word. Technique consistant à faire passer plusieurs instruction en même temps au processeur, sous la forme d un mot de 128 bits. Mis en œuvre par Intel dans ses Pentiums. Cette architecture était utilisée … Dictionnaire d'informatique francophone

VLIW — Very Long/Large Instruction Words, Prinzip von RISC Prozessoren, die sehr grosse Instruktionsworte benutzen, Gegenteil von LIW … Acronyms von A bis Z

VLIW — Very Long Instruction Word Contributor: CASI … NASA Acronyms

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

С программной точки зрения архитектура процессора — это совместимость с определённым набором команд (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-команд. Какое дальнейшее развитие получат архитектуры процессора, покажет только время.

Читайте также: