LINUX.ORG.RU

Опубликована ранняя версия неофициального эмулятора архитектуры Эльбрус 2000

 , , ,


7

2

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

На данный момент эмулятор поддерживает только 64-битные программы, скомпилированные под Linux. Реализованы почти 80% набора инструкций Эльбрус-8С.

Эмулятор был разработан используя:

Среди известных проблем:

  • эмулятор не является абсолютно точным. Полная документация на набор инструкций отсутствует, он был подвергнут методу обратной разработки, анализируя ассемблерный код, генерируемый компилятором, и его работу на реальном процессоре.
  • скорость работы эмулятора на Ryzen 2600X ниже Эльбрус-8С практически в 20 раз.
  • недостаток тестирования на реальных программах. На данный момент подтверждена работа busybox, coreutils, bash, некоторых бенчмарков и компилятора lcc.

Что примечательно, эмулятор разработан двумя участниками нашего форума: @numas13 и @a1batross.

>>> Исходный код

★★★★★

Ответ на: комментарий от Xintrea

Пользователя в процессоре общего назначения по большей части интересует производительность да, я помню этих чудесных людей, кто в 2003 покупал кипятильник PIV на 3ГГц, с общей производительностью системы потом хуже чем у рядового XP-2700

mumpster ★★★★★ ()
Ответ на: комментарий от mumpster

можешь мне объяснить - зачем его под капот пихать?

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

spbob ()
Ответ на: комментарий от sadko4u

Я думаю вы не правы, Эльбрусу и risc действительно не угнаться за процессорами AMD,Intel и Nvidia, но им это и не надо, потому что есть другая ниша: свободные от NDA безопасные процессоры с относительно простой и поддающеися публичному контролю архитектурой.
Таким процессорам не обязательно быть очень быстрыми, у них другие фича: прозрачная и не имеющая уязвимости архитектура и именно такая ниша сейчас является свободной.
И в этой нише не надо содержать кучу патентов, не надо быть сложным и быстрым, в ней надо быть надёжным и прозрачным.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от bonta

не может же быть юридически

Ты немного не так понимаешь «дух закона» в российском праве.

Shadow ★★★★★ ()
Ответ на: комментарий от a1batross

Эльбрусы как раз больше всех обмазаны NDA.

Пусть так, может действительно продвигать именно Эльбрус не стоит, но можно ведь тогда сделать отдельный процессор и продвигать на общий рынок именно его, делая простые платы вроде малинки.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от mumpster

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

Эх, разучились в обход санкций покупать :) В СССР много чего КОКОМ запрещал поставлять, но оно стояло, кое-где прям массово. Например, компы Dec или некоторые станки. Хотя сейчас с этими вашими интернетами и финансовой прозрачностью и контроль контролистее.

praseodim ★★★★★ ()
Ответ на: комментарий от torvn77

Эту нишу лихо занимает RISC-V и разные его реализации. Уже сегодня можно на открытой ISA хоть на FPGA себе процессор синтезировать, скачав исходники с гитхаба.

Работать будет небыстро, зато 100% без закладок, плюс весь софт уже есть в наличии и активно поддерживается толпой контрибьюторов.

Такими темпами, Эльбрус быстро отправится на свалку истории и останется с нами лишь в эмуляторах.

jekader ★★★★★ ()

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

ну и лучи проклятий в сторону МЦСТ, не хотите сами работаю с сообществом, ну что ж, ваш выбор. годы идут, ничего не меняется, только денег все больше и больше вам гос-во заносит.

sartakov ()
Ответ на: комментарий от sartakov

Насколько я слышал от МЦСТ, они рады-б всё открыть но набор инструкций разрабатывался в девяностые на деньги военных и Академии Наук, поэтому там много правообладателей с которыми сложно о чём-то договориться.

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

Недавно «приоткрыли» по мере возможности документацию на набор инструкций, результатом чего и явился $SUBJ. Очень надеюсь, однажды нарисуется и порт GCC, а там уже и полный FOSS не за горами!

jekader ★★★★★ ()
Ответ на: комментарий от jekader

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

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

yetanother ()
Ответ на: комментарий от yetanother

Бекенд в какой-то форме есть в виде liblccrt. Приходите в Яндекс.Музей (кстати спасибо им за предоставленную публичную машину), в /usr/include лежит хедер и теоретически с этим можно написать компилятор чего-нибудь.

LLVM сейчас вроде так и работает.

a1batross ★★★★★ ()
Ответ на: комментарий от Xintrea

В автомобилях вполне допустимо использовать индустриальный диапазон, если вычислительный модуль находится, например, в салоне

надо смотреть что за температурный диапазон указан у эльбруса

Расширенный температурный диапазон от −60 до +85 градусов
Условия эксплуатации −45…+100 °C

у NXP всё понятно

Automotive AEC-Q100 Grade 3 (-40° to 125° C Tj)

Grade 3 (-40°C to +85°C) относится к температуре окружающей среды, а Tj (-40° to 125° C) это температура кристалла

spbob ()
Последнее исправление: spbob (всего исправлений: 1)
Ответ на: комментарий от Samsonov

Сейчас Эльбрусы никто никому насильно не впаривает — заказчики сами приходят.

Не могли бы вы объяснить причины такого явления? Какие КОНКУРЕНТНЫЕ преимущества есть у Эльбруса по сравнению с теми же Интелами или АМД? Программное обеспечение? Очень-очень сильно сомневаюсь. Может быть цена? Отнюдь. Распространённость, наличие квалифицированного персонала? Нет же. Скорость вычислений? Не смешите мои тапочки. Тогда что?

DyadyushkaAU ()
Ответ на: комментарий от torvn77

Я думаю вы не правы, Эльбрусу и risc действительно не угнаться за процессорами AMD,Intel и Nvidia, но им это и не надо, потому что есть другая ниша

Так я не говорю, что кто-то за кем-то гонится. Если смотреть на тренды, то ARM сейчас догоняет x86 по производительности, но при этом куда более экономен по энергопотреблению. И последние достижения Apple говорят о том, что из ARM будут выжимать все соки. RISC V, как понимаю, метит занять нишу ARM, но быть открытой платформой (в отличие от лицензируемого ARM), MIPS для высокопроизводительных систем умер.

Меня удручает только тот факт: вот захотел я уже потихоньку знакомиться с архитектурой, а как человек, заинтересованный в DSP, я не могу обойтись без SIMD-инструкций. И что я вижу, когда дохожу до раздела по SIMD? А то, что этот набор инструкций ещё только в разработке. А тот набор сниппетов, который засветился в одной из статей, ничего кроме улыбки не вызывает. Поскольку сложить массив вещественных чисел с другим массивом вещественных чисел не так сложно. А вот сделать, например, FFT, в котором большое количество пермутаций данных, будет проблематично на том, что в этих статьях предлагается.

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

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

sadko4u ()
Ответ на: комментарий от torvn77

зато патенты могут содержать тебя!

и да - а как ты меряешь? ибо про 3ГГц кипятильник от Штеуда я уже писал, который легко топовый AMD XP делал.

там правда была проблема с kernel make -j но то такЭ!

mumpster ★★★★★ ()
Ответ на: комментарий от sadko4u

ты это, пермутатор получше мой!

а про наличие отсутствие в своё время был хороший ответ одному фидошнику от фирмы IBM: «This feature is supported but not implemented»

он раскопал в доке описание интересной и полезной фишки, попробовал, не работает! написал и в ответ вот это…

mumpster ★★★★★ ()
Ответ на: комментарий от mumpster

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

Чувак, ты утомил загадками. Гугл ничего про эти клоны не находит.
Давай ссылку, если есть что интересного показать.

Egor_ ()
Последнее исправление: Egor_ (всего исправлений: 2)
Ответ на: комментарий от yetanother

Согласен, хоть какой-то компилятор для начала необходим. Сейчас пролистал https://www.youtube.com/watch?v=Jwt5mSmtoXA - МЦСТ говорят, у них есть «неоптимизирующий» порт GCC - могут ведь его раздать сообществу, продолжая продавать свой LCC по примеру с того-же Интела.

jekader ★★★★★ ()
Ответ на: комментарий от a1batross

О, спасибо за информацию, попробую как-нибудь на досуге посвятить этому делу немного времени

yetanother ()
Ответ на: комментарий от jekader

У меня есть подозрения, что именно этот компилятор подразумевали @cxqdev, когда говорили о каком-то свободном компиляторе, который отдадут с исходниками.

a1batross ★★★★★ ()
Ответ на: комментарий от mumpster

А я помню точные модели, тем более с чужих слов и не факт что они назывались? Но запомнилось, что а)там были в большом количестве и чуть ли не в основном иностранные ЭВМ, б) это были PDP - Vax-ы и в СССР их официально не поставляли.

Всякие ibm pc тоже в госплане может самыми первыми в СССР оказались. Наряду с ваксами.

praseodim ★★★★★ ()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от a1batross

У меня есть доступ к Эльбрус-8С, компилятор на нем есть. Но есть инфа что существует кросскомпилятор, чтобы создавать e2k-бинари прямо на x86. Приходилось ли в сабжевой работе пользоваться подобным способом?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от robus

На стриме бенч выкладывали реалтайм, вряд ли согласованный. Потому что они просто взяли и сделали бенч. Если бы хотели как-то подыграть в результаты, они бы закрыли браузер, и прочие приложухи и запустили бенч на чистом рантайме, без конкурентов в виде браузера.

Например когда я запускал бенч (речь о 7zip) то с браузером и без (даже если в браузере никакой видео или музыки не воспроизводится и просто открыты как бы статические сайты) - показывает соврешенно разные результаты, браузер отъедает такты проца, не смотря на то что в системном мониторе типа система не нагружена.

bonta ★★★ ()
Ответ на: комментарий от anonymous

а что проще сделать? Сменить техпроцесс=поднять частоты? (да-да, до идентичных частот возможно e2k не дойдёт, в виду длинны конвеера или прочих разностей) - но до сравнимых, с разностью в +-600мгц - вполне дойдет.

Или проще архитектуру сменить чтобы при равной частоте выдавать большую производительность?

В плане производительности на такт (и герц) e2k несравнимо круче.

bonta ★★★ ()
Ответ на: комментарий от bonta

Ну есть такой орган, называется мозг. Он говорит, что расположенная снаружи чипа память никогда не будет сильно быстрой. Просто по физическим ограничениям. Следовательно повышая частоту CPU Эльбруса разработчики будут увеличивать разницу в таймингах между попаданием в кэш и промахом. Современные высокочастотные CPU не зря обладают многоуровневыми системами кэширования, не от хорошей жизни. Для борьбы с непредсказуемостью и используется сложная логика динамического параллелизма, которая набивает АЛУ готовыми к исполнению инструкциями из 2х потоков и из окна на несколько сотен инструкций. Для Эльбруса с шедулингом на этапе компиляции это неприемлемо, там где OoO ждёт готовности только тех данных, которые не готовы, компилятор для VLIW обязан обеспечить ожидание на всех возможных точках промаха, либо дорогое ядро будет стоять. Вот и придется Эльбрусу либо вечно отставать, либо память в себя встраивать.

khrundel ★★ ()
Ответ на: комментарий от luke

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

Очевидно - это потребует знаний и денег, но те кому это реально надо вполне такой базой обладают.

jekader ★★★★★ ()
Ответ на: комментарий от jekader

Эту нишу лихо занимает RISC-V и разные его реализации

он пока вообще ничего не заменяет, а относительно производительного процессора без уязвимостей Meltdown или Spectre наверно и не найти, в этом эльбрус рулит.

spbob ()
Ответ на: комментарий от nvidia

Хорошо, сравните 2 ядерный атом и 2 ядерный i3 последнего поколения на одинаковой частоте, скажем 1.5 ГГц. Видеокарты лишь пример иной архитектуры, что хоть в и разных задачах, дают несравненный результат в своей задаче, даже имея низкую частоту

Раз уж ник такой, RTX 3090 работает «всего лишь» на 1860 МГц (1890 МГц, в режиме Boost), по всей видимости наверное даже и не «гонится» как и Эльбрусы - ах какие отсталые и глупые инженеры там сидят, какую «медленную» архитектуру сделали

Ладно, не хочу опять этот бессмысленный словесный понос разводить, считайте как хотите, это вообще ничего не изменит никогда

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

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

Вот именно. RTX 3090 трассирует лучи и растеризует полигоны несравнимо быстрее любого Райзена. При этом, заметьте, Райзену частоту до 1860 МГц не придётся снижать для того чтобы это увидеть. Но почему-то когда тестируют Эльбрус, сравнивая с Райзеном, последнему частоты таки режут ;)

robus ★★★★ ()
Ответ на: комментарий от praseodim

это были PDP - Vax-ы и в СССР их официально не поставляли.

Домикропроцессорные PDP разве не поставлялись официально в составе импортных систем управления техпроцессами под ключ?

vM ()
Ответ на: комментарий от vM

А хз, что-то поставлялось, что-то было запрещено. Да и почему домикропроцессорные? Ваксы - вполне микропроцессорные были.

praseodim ★★★★★ ()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от praseodim

Но не сразу. В KA730 на трёх плата центрального процессора 8 секционных 4-разрядных микропроцессоров и 8085 для пульта http://www.vaxhaven.com/images/0/0f/EK-KA730-TD-001.pdf https://archive.org/details/bitsavers_decvax730ECPUTechnicalDescriptionMay82_12644614/page/n13/mode/2up

http://ummr.altervista.org/KA730boards.jpg А это первая половина 1980-х

vM ()
Ответ на: комментарий от normann

Ассемблер под e2k в секрете держится?

Смотря что называть «ассемблером». Синтаксис языка, обрабатываемого программой lasm, — не секрет и всегда был описан в пользовательской документации. А вот какие машинные инструкции туда можно писать — это уже другой вопрос, освещённый в другом документе, который выдаётся только под NDA. А кодировка инструкций в машинных кодах — это вообще top secret, который даже под NDA просто так не узнать. Что в этом может быть секретного? Скорее всего, этого не знает даже сам Заказчик, опасающийся публикации ISA чисто из принципа «Как бы чего не вышло»™.

Samsonov ()
Ответ на: комментарий от I-Love-Microsoft

У меня есть доступ к Эльбрус-8С, компилятор на нем есть. Но есть инфа, что существует кросскомпилятор, чтобы создавать e2k-бинари прямо на x86.

Конечно, есть. Запросить можно в техподдержке: при этом надо чётко указать, под какую целевую платформу он нужен — не только модель процессора, но и название и номер версии операционной системы. Потому что кросс-компилятор — он не абстрактный «для e2k», а парный для нативной версии, которая различается для Эльбрус-8С и 8СВ, например, или для Эльбрус Линукс и Астра Линукс.

А вот работать сам кросс-компилятор может практически на любой современной x86 Linux-системе. То есть кросс-разработкой для ОС Эльбрус не обязательно заниматься в среде ОС Эльбрус x86.

Samsonov ()
Ответ на: комментарий от jekader

МЦСТ говорят, у них есть «неоптимизирующий» порт GCC — могут ведь его раздать сообществу, продолжая продавать свой LCC по примеру с того же Интела.

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

Неофициальный порт GCC существует давно (всегда?) и работает в режиме без оптимизации вообще. Поэтому выпуск такого компилятора в массы будет разительно отличаться от ситуации на x86, где «для большинства достаточно GCC, а если хотите прям совсем круто — вот есть ICC». На Эльбрусе это получится так: «Вот есть LCC, который изо всех сил старается не очень сильно отставать от x86, а вот ещё представляющий чисто академический интерес GCC, который отстаёт на порядок-другой». С учётом того, что и при существующей ситуации люди крайне негативно воспринимают Эльбрус именно по части производительности («Либо ты #1 в мире, либо 0»), усугублять эту ситуацию нет смысла.

Вы ведь не думаете, что сообщество любителей допилит GCC так, что он станет быстрее фирменного LCC, при том что специалисты-компиляторщики МЦСТ считают фреймворки GCC и LLVM заведомо не очень подходящими для реализации всего потенциала архитектуры Эльбрус?

Samsonov ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей