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
()

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

Вот в этом документе на странице 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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.