LINUX.ORG.RU

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

 , , ,


7

4

МЦСТ выпустила эмулятор QEMU для архитектуры E2K. Теперь программы для Эльбруса можно запускать на компьютерах с архитектурой x86‑64. Это откроет платформу для профессионалов, исследователей и энтузиастов, а также упростит разработчикам сборку и тестирование ПО.

Эмулятор qemu-e2k обеспечивает возможность, используя операционную систему семейства Linux запускать прикладные программы для операционных систем семейства Linux в машинных кодах Эльбрус (e2k) на компьютере архитектуры x86-64.

Предполагаемые сценарии использования эмулятора:

• Запуск готовых программ в машинных кодах процессоров Эльбрус для ознакомления с возможностями архитектуры и программной экосистемы, без использования физического оборудования с процессорами Эльбрус;

• Запуск компилятора для архитектуры Эльбрус в нативном окружении (в двоичных кодах процессоров Эльбрус), но на процессорах с архитектурой x86-64, без использования кросс-компиляции;

• Локальная или распределённая сборка на серверах с архитектурой x86-64 дистрибутивов операционных систем в машинных кодах процессоров Эльбрус, также без использования кросс-компиляции.

Подробное описание возможностей и ограничений первой версии эмулятора приведено в «Руководстве пользователя».

https://git.openelbrus.ru/mcst/qemu

Скачать материалы можно на сайте для разработчиков в разделе «Загрузки».

https://dev.mcst.ru/download/

QEMU — это универсальное средство эмуляции различных процессорных архитектур, а также средство запуска виртуальных машин (гипервизор). Для каждой целевой архитектуры предусматривается 2 варианта эмулятора:

  1. qemu-system — эмулятор уровня системы, позволяющий запустить целую операционную систему, такую как Linux;

  2. qemu-user (он же qemu-linux, он же просто qemu) — эмулятор уровня приложений, позволяющий запустить гостевое приложение внутри хозяйской операционной системы (Linux).

На данный момент поддержка архитектуры Эльбрус реализована во втором варианте — на уровне прикладных программ Linux; ведется работа над эмулятором уровня системы.

>>> Исходные тексты QEMU от АО "МЦСТ"



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

актуарная математика как пример почему оценка от и до хоть и «плоха» да позволяет интервальное размеривание

вроде как наука на том и построена: с не вполне адекватных входных данных извлечь инфу через обнаружаемые закономерности

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

Фактически Bochs - это интерфейс соединения компонет.

Авторы определяют его несколько иначе «Bochs is a portable IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS.»

Для простоты, он содержит в себе «стандартные» компоненты, но в этом и его сила. Можно делать совершенно безумные вещи, например определить двя ядра, один от Xeon Skylake, один от NVidia Grace. При этом нужно только соединить интерфейсы, которые могут быть с точностью до цикла, а могут и не быть.

С такой постановкой задачи конечно, нужно всего лишь реализовать микроархитектурную модель … чего угодно, так? И потом сынтегрировать ее со всей остальной (функциональной) хреновиной? Есть ли примеры чтобы кто-нибудь реально такое сделал на основе Bochs?

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

Авторы определяют его несколько иначе

Да, верно. При этом изначально для 286 он был точным.

It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS

а если его соединить с подсистемой памяти, то он уже будет system-level emulator.

нужно всего лишь реализовать микроархитектурную модель … чего угодно, так?

Так. Не чего угодно, а чего нужно cycle-accurate. Обычно всего не нужно. Если всё, то это будет дорого, долго, трудно.

И потом сынтегрировать ее со всей остальной (функциональной) хреновиной?

Вот это-то он и облегчает, поскольку представляет всю инфрастуктуру интеграции. Замену компонентов можно выполнять постепенно.

Есть ли примеры чтобы кто-нибудь реально такое сделал на основе Bochs?

Да, есть. Мы в своё время использовали комбинацию Bochs, mambo, и ROSE, каждый для разных компонент моделирования.

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

Да, есть. Мы в своё время использовали комбинацию Bochs, mambo, и ROSE, каждый для разных компонент моделирования

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

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

Да, круто. Мне есть чем гордиться, правда это результат работы большого коллектива людей из нескольких огрганизаций, но всё равно. Типа «мимо крокодил».

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

всякое проприетарное около-ML железо.

phoenix ★★★★
()

Нужна пояснительная бригада из МЦСТ

Вот в этом документе на странице 2 написано что ТБВ это 128битный дескриптор, и для «наглядности» приводится три одинаковых блока адресс+база+смещение которые никак на 128 не делятся.

Это не говоря уже о том что в каждом докладе кого-то из мцст этот дескриптор рисуют и описывают по разному.

Но на странице 3 вообще вместо дескрипторов два адреса - Address-Low и Address-High по которым, как я понимаю, вычисляются границы объектов на манер плюсовых итераторов, Ну и теги у них 4бита на каждый лонг вместо 2ух на каждый ворд.

Я правильно понимаю что вот эта система сейчас актуальна, а дескрипторы это теперь легаси? И с каких моделей вот этот улучшенный режим поддерживается?

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

C Olivetti Digital когда-то корифанился. Первые персоналки от DEC — это перебрендированные Olivetti были на европейском рынке. Я за такими работал и удивлялся красоте дизайна. А потом мне пояснили, кто там дизайном занимался. Итальянская машина может плохо ехать, но не быть красивой она не может. :) Персоналки, кстати, хорошо работали.

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

Итальянские Olivetti, кстати, тоже были.

Ты бы еще Правец с Мазовией вспомнил. Впрочем, что в Olivetti, что в перечисленных мной были или оригинальные Intel, или их советские клоны.

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

Не Макс, это ж 1994-1998. Нормальные 486е DX2, потом пентиумы. У нас такие в Анкее стояли в качестве рабочих мест. Ну, типа, шо продавали, то и имели.

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

для «наглядности» приводится три одинаковых блока адресс+база+смещение которые никак на 128 не делятся.

Документ на который вы ссылаетесь не читал, но адрес 64 бита, размер и позиция по 32 бита. Адрес - это адрес начала массива, если добавляете число к 128 бит адресу, то оно добавляется к позиции (или базе как они называют), 64 бит адрес и 32 бит размер при этом не меняются.

И с каких моделей вот этот улучшенный режим поддерживается?

Не знаю что вы называете улучшенным, режим с 128 бит указателями (ака защищённый) был всегда. Но эмулятор только 64-бит режим эмулирует.

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

Ну британских процессоров нет в природе.

Была такая славная британская компания ARM, потом пошла по рукам. Про железо, была такая славная британская компания Inmos. Слишком опередила своё время.

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

...Правец с Мазовией...

Не, эти девайсы прошли мимо меня. Клоны Intel'ов там были.

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

Не Макс, это ж 1994-1998. Нормальные 486е DX2, потом пентиумы. У нас такие в Анкее стояли в качестве рабочих мест. Ну, типа, шо продавали, то и имели.

Уверен? Я видел только клоны PC/XT от Olivetty, разве они дожили до 486/Pentium?

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

Абсолютно! См мою ссылку выше. И вообще, партнерство Olivetti и Digital — история известная.

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

Слишком сложный и большой, но да, много можно сделать. Чаще всего используется для моделирования потребления энергии, а не производительности.

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

Вы мне сейчас напомнили, что при проектировании той штуки, которая потом была известна под названием 3DXpoint, мы использовали Gem5. Там были жёсткие ограничения по электрике и тепловыделению, поскольку планировалась как совместимая с форм-фактром DRAM. Оптимизацию проводили в симуляторе.

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

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

Кто-то готов жертвовать производительностью в 2 раза. Кто-то в 5. А вот в 10+ - не готов ни кто.

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

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

Блин, указаны, ага. Да вы в жизни не просчитаете динамику системы наперёд, и не узнаете, где случится кеш мисс, а где - нет.

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

Именно поэтому самым популярным ЯП является известный своей резвостью Питон.

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

Да хоть 20+, если задачу решает.

В смысле, решает? Например, до этого задача решалась под нагрузкой от 1000 клиентов одновременно, а теперь - от 100. Или от 50. Задача решена?

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

Нет. А если до этого задача решалась, но с закладками, но теперь решается, по без закладок, задача решена.

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

Задача решена?

А у вас точно есть тысяча клиентов одновременно или вы просто мечтаете?

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

Нет. А если до этого задача решалась, но с закладками, но теперь решается

Так «нет» или «но теперь решается»?

по без закладок, задача решена.

ПО без закладок тут вообще не при чём. А кроме того, я уже объяснил, что материнки без BMC у нас давно уже делают, в тд и для интелов.

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

эммигранту с тридцатилетним стажем

Это какое-то новое развитие мема про инженера с тридцатилетним стажем?

i-rinat ★★★★★
()
Ответ на: комментарий от anonmyous

А если до этого задача решалась, но с закладками, а теперь решается, но без закладок, задача решена.

Если нет bmc, то и закладок нет, действительно (на самом деле нет).

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

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

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

А если до этого задача решалась, но с закладками, а теперь решается, но без закладок, задача решена.

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

Если нет bmc, то и закладок нет, действительно (на самом деле нет).

Биос тоже делают свой (на основе АМИшных СДК, но тем не менее).

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

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

Далеко не все задачи включают в себя обслуживание большого количества людей.

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

Далеко не все задачи включают в себя обслуживание большого количества людей.

А ничего что эльбрус позиционируют как серверный проц?

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

Так и делают, тебе никто не должен ничего предоставлять на каждом углу, а цена зависит от объёма производства, даже школота это знает!

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

Ты просто не умеешь пользоваться линейкой, не знаешь куда и как её прикладывать и выдаешь глупости уровня «дверь шкафа купэ туда-сюда ездит, невозможно просчитать ее ширину».

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

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

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

anonmyous ★★
()
В данной версии qemu-e2k не поддержаны следующие команды:

1. Операции беспереносного умножения целых без знака: CLMULL/CLMULH;
2. Сравнение значений fp80 и fp32/fp64/fp80 на {не} упорядочено с
результатом в виде предиката: FXCMPODsf, FXCMPODdf, FXCMPODxf,
FXCMPUDsf, FXCMPUDdf;
3. Операции выделения маски знаков: PMOVMSKPS, PMOVMSKPD;
4. Операции множественного сложения абсолютных значений разностей
упакованных целых в формате байт без знака: MPSADBH, QPMPSADBH;
5. Операции вставления байтов из операнда 2 в операнд 1: QPINSS, QPINSD;
6. Операции расширения двойного слова константой: QPCEXT;
7. Операции считывания/записи массива: {LD/ST}AA{B/H/W/D/Q/QP};
8. Операции считывания/записи по указателю массива:
{LD/ST}AP{B/H/W/D/Q/QP};
9. Операции считывания/записи глобалов и кода:
LD{GD/CUD}{B/H/W/D/Q/QP}, STGD{B/H/W/D/Q/QP};
10. Операции считывания/записи по сегментному дескриптору:
{LD/ST}{CS/DS/ES/FS/GS/SS}{B/H/W/D/Q/QP};
11. Операции непосредственного перехода/вызова процедуры с
динамическим адресом: IBRANCHD, ICALLD;
12. Операции непосредственного вызова процедуры со статическим
адресом, возврата из процедуры: ICALL/IRET;
13. Арифметические операции с флагами в формате IFL:
{ADDS/SUBS/INCS/DECS/UMULs/SMULs/}_FD,
{ADDD/SUBD/INCD/DECD/UMULX/SMULX/}_F{B/H/W};
14. Логические операции с флагами в формате IFL:
{ANDS/ANDNS/ORS/ORNS/XORS/XORNS/}_F{B/H/W},
ANDD/ANDND/ORD/ORND/XORD/XORND/}_D;
15. Операции сдвига с флагами в формате IFL:
{SHLS,SHRS,SCLS,SCRS,SARS}_F{B/H/W},
{SCLD,SCRD,SHLD,SHRD,SARD}_FD;
16. Операции преобразования целых флагов в логический предикат:
CCTO{PO/PB/PE/PBE/PS/PP/PL/PLE};
17. 80-разрядное умножение на целую степень двойки: FXSCALEsx;
18. Различные операции из системы команд elbrus-v7.


А с такими ограничениями будет работать что-то кроме программы начального старта? Пункты 7 и 8 вроде как нужны в любой программе, которая чуть сложнее 2+2?

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

Хорошо, тогда я вам скажу. В терминологии производителей CMOS-схем эти два термина используются взаимозаменяемо, независимо от упругости и твёрдости. Оба они означают одно и то же - ASIC-схему, а не её программный или FPGA эквивалент. И не надо умничать в теме про силикон, тут клуонов и без вас хватает.

Правда? Может всё-таки различие есть?

Silicon — не «силикон», а «кремний». А силикон это silicone. Долгие годы Silicon Valley неправильно называлась «Силиконовой долиной», чем раздражала программистов и прочих знатоков информационных технологий — ну Кремниевая это долина же! Настоящая «Силиконовая» долина (долина Сан-Фернандо) хотя и рядом в Калифорнии, но известна она вовсе не компьютерными технологиями, а порнографическими фильмами.

Источник

Mischutka ★★★★★
()

Наверное, мало оно кому надо. Недавно был демо доступ по ssh на сервера Эльбруса 16с

Пробовал компилировать на нем: спокойно собирает стандартный C код. Но только самый стандартный. ANSI. Или как оно там?!

AnonymUser
()
Последнее исправление: AnonymUser (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)