Ada_Ru форум

Обсуждение языка Ада

Эмуляция x86 на ARM

Оставить новое сообщение

Сообщения

Иван Левашев
Эмуляция x86 на ARM
2012-10-18 15:37:24

Здравствуйте!

 

В связи с задержками появления компилятора для ARM, думаю, имеет смысл отслеживать разработки и в направлении эмуляции x86 на ARM:

 

http://www.russianelectronics.ru/leader-r/pechat/61130/

 

Компания Elbrus Technologies разработала эмуляционное программное обеспечение, которое на 40% обеспечивает собственную производительность ARM-ядер. Инженеры компании рассчитывают на то, что к концу 2014 г. им удастся довести этот показатель до 80%.

 

У Эльбрус уже имеются аналогичные наработки для архитектуры Sparc, которая используется в их микропроцессорах:

 

http://www.mcst.ru/b_13.shtml

 

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

MS-DOS, Windows, Linux, QNX, FreeBSD, без каких-либо дополнительных

модификаций на базе системы битовой компиляции. Комфортная работа с

современными графическими приложениями (Microsoft Office, Internet Explorer и др., просмотр видео в формате mpeg4 (DivX))

 

P. S. Иной раз поражает, насколько далеко наша страна от пропагандируемого состояния разрухи, когда дело доходит до оборонной отрасли. Свой Интернет, свои процессора, своё железо и своё ПО — более менее всё есть, просто не для широкой публики.

 

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

 

x86-windows, x86_64-windows, arm для android и ios, x86-linux, x86_64-linux, x86-darwin, x86_64-darwin, JavaScript, SWF, FlasCC, JVM, CLR, AVR, mipsel для роутеров.

 

Как хорошо было, когда хватало x86-windows.

 

-- If you want to get to the top, you have to start at the bottom

P. S. Иной раз поражает, насколько далеко наша страна от

пропагандируемого состояния разрухи, когда дело доходит до оборонной отрасли. Свой Интернет, свои процессора, своё железо и своё ПО — более менее всё есть, просто не для широкой публики.

LOL. Только что побывали на одной космической НТК, и должен вам сказать что мы в такой же степени далеки от разрухи, как далек человек, подлетая к дну ущелья, от края обрыва с которого сорвался. Большинство наших КА сегодняшнего дня летают на платформах, аналогичных ардвино и хуже, причем как правило с применением импортных компонентов и требующих для своего функционирования герметичных платформ. Сопоставьте положение дел по Глонасс и GPS скажем и все станет ясно. Первый запуск негерметичного Глонасс-К - это 2011 год, отставание от технического уровня США на 15 лет. При этом на глонасс брошено все вплоть до ламбрадора Кони, ни одна наша спутниковая программа подобным "высоким вниманием" похвастаться не может.

Я с НТК этой ушел во впечатлении что советская космонавтика умирает, а российской ей на замену в целом не появилось. Спасибо гигантам советского времени что у нас еще что-то летает.

 

ущелья, от края обрыва с которого сорвался. Большинство наших КА сегодняшнего дня летают на платформах, аналогичных ардвино и хуже, причем как правило с

 

 

А можно примерные характеристики? Ибо ардуино - это восьмибитка со 2 Кб ОЗУ и частотой 16 МГц.

А можно примерные характеристики? Ибо ардуино - это восьмибитка со 2 Кб ОЗУ и частотой 16 МГц.

Ну вот типа того, 20 МГц. Если взять БЦВС "МАРС 4" - это такие спутники как Экспресс МД1 и недолетевший (к некоторому облегчению его создателей) до орбиты МД2, Спектр, Электро и т.д. Весит чудо 8 кг (4 грани, т.е. 4-кратное резервирование), жрет 0,25 ампер на грань (в 10 раз больше среднего ардвино), диапазон рабочих температур -40..+50 (т.е. даже в заполярье надо обогревать, не то что в космосе). При этом как я уже сказал значительная доля компонентов импортные.

По объемам ОЗУ и ППЗУ она конечно среднюю ардвину превосходит (у нее 240К/2М), но это не показатель технического уровня - они на разных ардвино разные и определяются в основном их "микроконтроллерным" предназначением и соответствующей миниатюрностью. Тем более что как раз память - импорт ЕМНИП.

Справедливости ради не сказать что прямо вот это - полный предел, есть еще опытная БЦВС на архитектуре MIPS, с ней уже не так стыдно в глаза глядеть. Но она никуда не летала и в общем и целом все довольно ужасно.

ВФ

 

 

Ну вот типа того, 20 МГц. Если взять БЦВС "МАРС 4" - это такие спутники как

 

Ну, ты же понимаешь, что 20 МГц сами по себе ни о чем не

говорят? Быстродействие зависит от пачки показателей. Например от набора инструкций и сколько тактов на каждую инструкцию нужно. От латентности доступа к памяти и так далее. Так что при тех же 20 МГц разница в производительности легко может быть в 20 раз.

 

Я не пытаюсь оправдать как-то этот самый БЦВС МАРС, просто я довольно много вожусь в микроконтроллерами, и 20 МГц какого-нибудь msp430 это не те же 20 МГц что у атмела и не то же что у 8051, и тем более у какого-нибудь арма. А про dsp-процессора я вообще молчу.

 

 

Экспресс МД1 и недолетевший (к некоторому облегчению его создателей) до орбиты МД2, Спектр, Электро и т.д. Весит чудо 8 кг (4 грани, т.е. 4-кратное резервирование), жрет 0,25 ампер на грань (в 10 раз больше среднего ардвино),

 

 

 

Если им воткнуть столько же памяти, то будет примерно также :-) Она же дюже жручая. Вообще, я не знаю насколько остро стоит вопрос энергопотребления в КА. Может им там этот несчастный ампер на фоне всего остального вообще не заметен.

 

 

диапазон рабочих температур -40..+50 (т.е. даже в заполярье надо обогревать, не то что в космосе). При этом как я уже сказал значительная доля компонентов импортные.

 

Диапазон явно хреновый. +50 - это ж банально летом на асфальте легко будет выше. Собственно промышленный диапазон современный требует +85ти. А мягкий офисный - +70.

 

 

 

По объемам ОЗУ и ППЗУ она конечно среднюю ардвину превосходит (у нее 240К/2М), но это не показатель технического уровня - они на разных ардвино разные и определяются в основном их "микроконтроллерным" предназначением и соответствующей миниатюрностью. Тем более что как раз память - импорт ЕМНИП.

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

 

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

Ну и понятно что ардуину не послать на орбиту - оно загнется от радиации (память нужна для этого кошерная, да и процессор тоже. Собственно вот тут подробная статейка по этому поводу: http://habrahabr.ru/post/156049/

 

 

Справедливости ради не сказать что прямо вот это - полный предел, есть еще опытная БЦВС на архитектуре MIPS, с ней уже не так стыдно в глаза глядеть. Но она никуда не летала и в общем и целом все довольно ужасно.

 

 

 

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

 

Кстати, если бы у них было все хорошо, то, очевидно, у них были бы решения не только для военки и примкнувшего к нему космоса, но и для

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

On 11/18/2012 07:37 PM, Иван Левашев wrote:

 

В связи с задержками появления компилятора для ARM, думаю, имеет смысл отслеживать разработки и в направлении эмуляции x86 на ARM:

 

http://www.russianelectronics.ru/leader-r/pechat/61130/

 

А какой смысл? Эта контора много лет отмывает государственные деньги, но никто из нас их продукции не видел и не увидит.

 

Ну а если нужен компилятор GNAT для ARM, то открою страшную тайну - уже несколько лет в GNAT GPL входит компилятор для Lego Mindstorm - ARM в чистом виде.

 

P. S. Иной раз поражает, насколько далеко наша страна от

пропагандируемого состояния разрухи, когда дело доходит до оборонной отрасли. Свой Интернет, свои процессора, своё железо и своё ПО — более менее всё есть, просто не для широкой публики.

 

Так не бывает. Либо есть - и в первую очередь этим пользуется широкая общественность, а не мистическая оборонная промышленность - либо нет.

Ну а если нужен компилятор GNAT для ARM, то открою страшную тайну - уже несколько лет в GNAT GPL входит компилятор для Lego Mindstorm - ARM в чистом виде.

 

А он именно что под ARM собирает код для миндшторма, а не как все остапльные, которые компиляют в штормов байткод, который затем стандартной виртуальной миндштормовой машиной выполняется?

On 11/19/2012 03:34 PM, Alexey Veselovsky wrote:

 

 

Ну а если нужен компилятор GNAT для ARM, то открою страшную тайну - уже

 

несколько лет в GNAT GPL входит компилятор для Lego Mindstorm - ARM в чистом виде.

 

А он именно что под ARM собирает код для миндшторма, а не как все остапльные, которые компиляют в штормов байткод, который затем

стандартной виртуальной миндштормовой машиной выполняется?

 

Он генерирует код для ARM. При его использовании модуль перепрошивается с штатной операционной системы на какую-то другую.

Ну вот типа того, 20 МГц. Если взять БЦВС "МАРС 4" - это такие спутники как Экспресс МД1 и недолетевший (к некоторому облегчению его создателей) до орбиты МД2, Спектр, Электро и т.д. Весит чудо 8 кг (4 грани, т.е. 4-кратное резервирование), жрет 0,25 ампер на грань (в 10 раз больше среднего ардвино), диапазон рабочих температур -40..+50 (т.е. даже в заполярье надо обогревать, не то что в космосе). При этом как я уже сказал значительная доля компонентов импортные.

 

 

А 8 кг - это вместе с гермитичным корпусом/термостатикой, или без?

Если им воткнуть столько же памяти, то будет примерно также :-) Она же дюже жручая. Вообще, я не знаю насколько остро стоит вопрос энергопотребления в КА. Может им там этот несчастный ампер на фоне всего остального вообще не заметен.

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

Ну и понятно что ардуину не послать на орбиту - оно загнется от радиации

Дык и эта штука загнется, у нее элементы не защищенные. Пресловутые 8 кг в основном от этого - экранирование.

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

Полностью с вами согласен. Чуть что политика дает слабину, или просто корпорация такого размера что еще вопрос кто кого заставит - появляются такие интересные феномены как GAZPROM SPACE SYSTEMS - сырьевики, предпочитающие освоить производство коммуникационных спутников из купленнных COTS деталей, чем поручать это традиционным КБ советского периода. И я бы сказал, подозреваю что именно на основе такого рода вещей появится в итоге российский космос, а не на основе спасения старых обломков.

ВФ

А 8 кг - это вместе с гермитичным корпусом/термостатикой, или без?

Это с радиационным экраном и источниками питания (используются импортные MHD2805D (Interpoint)) но без термостатики.

Насчет производительности - я проверил, в качестве ЦП используются микроконтроллеры 8ХС196КС, но мне признаться это само по себе ничего не говорит. Сравнение с ардвино прозвучало в кулуарах, так что я просто цитирую автора высказывания (с.н.с.-а).

ВФ

Vadim Godunko пишет:

А какой смысл? Эта контора много лет отмывает государственные деньги, но

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

 

Может, где–то не конкурентноспособна, но не всё сразу. Где надо, чтоб без закладок было (чужих), там эту продукцию видят. А где желательна секретность, там и подавно наша осведомлённость не приоритетна.

 

Ну а если нужен компилятор GNAT для ARM, то открою страшную тайну - уже

несколько лет в GNAT GPL входит компилятор для Lego Mindstorm - ARM в

чистом виде.

 

Не надо придираться к словам. ARM на Raspberry Pi или PlugPC не аналогичен таргету Lego NXT. Я не вижу, как я смогу воспользоваться этим таргетом, чтобы модифицировать FreedomBox, например. Или чтобы на RouterOS что–то установить (имею в виду ARM версию RouterOS, которая на RouterBoard стоит)

 

А вот на картинках и в описаниях Эльбруса я вижу очень даже привычные x86 приложения в x86 OS'ах. И мне показалось логичным, что, если на современных микропроцессорах x86 посредством микрокода транскодируется в какую–то внутреннюю систему команд, то и явное транскодирование в SPARC или ARM может быть таким же естественным.

 

 

В конце концов, не Эльбрус, так кто–нибудь другой сделает. Я искал в Интернете «эмуляцию x86 на ARM», увидел, что интересно и свежачок, решил поделиться.

 

Было бы и на роутере здорово иметь транскодер в мипсель. Стоит дома легендарный ASUS WL-500g Premium V2 с прошивкой от Олега, а на своём языке ничего для него не пособирать. D-Link'и дешёвые чуть ли не в каждом доме, и такое разнообразие альтернативных прошивок. И ничем адским не разбавить сишный глюкотрон.

 

Какие самые дешёвые решения на x86 удаётся собрать, кстати? ALIX PC и Apple TV gen1 где–то в районе 8-10 т. р., ну явно дороже, чем PlugPC и ASUS WL-500g. До какой степени можно ужаться так, чтобы получить аналог, то есть, размеры, аналогичные роутеру и PlugPC, и внешние интерфейсы: Ethernet, USB?

 

Так не бывает. Либо есть - и в первую очередь этим пользуется широкая

общественность, а не мистическая оборонная промышленность - либо нет.

 

SSD сначала были очень дорогими, и их покупали только те, кому зачем–то очень надо было. И по мере того, как их покупали, и покупали, и покупали, они дешевели, и дешевели, и дешевели.

 

-- If you want to get to the top, you have to start at the bottom

Не надо придираться к словам. ARM на Raspberry Pi или PlugPC не аналогичен таргету Lego NXT.

Для Raspberry Pi можно писать на GNAT приложения тоже.

On 11/20/2012 12:00 AM, Иван Левашев wrote:

 

Не надо придираться к словам. ARM на Raspberry Pi или PlugPC не

аналогичен таргету Lego NXT. Я не вижу, как я смогу воспользоваться этим таргетом, чтобы модифицировать FreedomBox, например. Или чтобы на RouterOS что–то установить (имею в виду ARM версию RouterOS, которая на RouterBoard стоит)

 

С моей колокольни, если есть работающий генератор кода под архитектуру, то уже есть от чего оттолкнуться. Не исключено, что это потому, что я не сильно понимаю именно в потрохах компилятора и имею опыт портирования ранних версий GNAT на более современные (в те времена) варианты Linux. А следовательно, задача портирования RTL вполне выполнима при необходимости.

Какие самые дешёвые решения на x86 удаётся собрать, кстати? ALIX PC и Apple TV gen1 где–то в районе 8-10 т. р., ну явно дороже, чем PlugPC и ASUS WL-500g. До какой степени можно ужаться так, чтобы получить аналог, то есть, размеры, аналогичные роутеру и PlugPC, и внешние интерфейсы: Ethernet, USB?

 

А зачем на x86? Сегодня имеется масса вариантов систем на ARM, имеющих просто невероятные способности. Linux для них есть, GNAT - есть.

 

Так не бывает. Либо есть - и в первую очередь этим пользуется широкая общественность, а не мистическая оборонная промышленность - либо нет.

SSD сначала были очень дорогими, и их покупали только те, кому зачем–то очень надо было. И по мере того, как их покупали, и покупали, и

покупали, они дешевели, и дешевели, и дешевели.

 

Тут как бы сказать... Нужно капать в историю... Дело в том, что

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

сотовыми телефонами и регулярный двух-трёх летний цикл замены аппаратов. Даже если проворачиваемая финансовая масса будет сопоставима с объёмами финансирования оборонных проектов - в гражданской сфере она имеет намного больший, если так можно сказать, КПД; ибо не требует ТАКОГО объёма затрат на бумаготворческую работу, какая является необходимой для военного применения. Как результат весь мир достаточно давно успешно использует в специальных областях аппаратуру, основанную на обычных гражданских системах. А что в России? У нас была военная аппаратура, не хуже американской в те далёкие года. Потом мы "открыли" для себя x86, который зарыл и без того отсуствующие гражданские системы. Занавес...

20.11.2012 3:46, Vadim Godunko пишет:

On 11/20/2012 12:00 AM, Иван Левашев wrote:

 

Не надо придираться к словам. ARM на Raspberry Pi или PlugPC не

аналогичен таргету Lego NXT. Я не вижу, как я смогу воспользоваться этим

таргетом, чтобы модифицировать FreedomBox, например. Или чтобы на

RouterOS что–то установить (имею в виду ARM версию RouterOS, которая на

RouterBoard стоит)

 

С моей колокольни, если есть работающий генератор кода под архитектуру,

то уже есть от чего оттолкнуться. Не исключено, что это потому, что я не

сильно понимаю именно в потрохах компилятора и имею опыт портирования

ранних версий GNAT на более современные (в те времена) варианты Linux. А

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

 

Структурная обработка исключений, исключения нулевой стоимости, низкоуровневые особенности типа "какие регистры может портить вызываемый, какие — нет". У NucleusOS, Lego Mindstorms и Linux они могут отличаться.

 

Mac OS X и Linux — это x86, но в Mac OS X, как пишут разработчики Delphi for OS X, если перехватывать сигналы, они не работают в отладке, надо в отдельном потоке открывать порты Mach вместо этого. XBox, как я понял, тоже x86, но формат структуры по адресу fs:[0] отличается от того, что в Windows.

 

-- If you want to get to the top, you have to start at the bottom

20.11.2012 3:21, Vasiliy Fofanov пишет:

Не надо придираться к словам. ARM на Raspberry Pi или PlugPC не

аналогичен таргету Lego NXT.

 

Для Raspberry Pi можно писать на GNAT приложения тоже.

 

А как сейчас это лучше делать?

 

-- If you want to get to the top, you have to start at the bottom

 

отдельном потоке открывать порты Mach вместо этого. XBox, как я понял, тоже x86, но формат структуры по адресу fs:[0] отличается от того, что в Windows.

 

С точностью до наоборот :-) Там как раз не x86, но при этом Windows :-)

http://ru.wikipedia.org/wiki/Xbox_360

 

 

2012/11/21 Alexey Veselovsky <[email protected]>

21.11.2012 18:18, Alexey Veselovsky пишет:

 

 

отдельном потоке открывать порты Mach вместо этого. XBox, как я понял,

тоже x86, но формат структуры по адресу fs:[0] отличается от того,

что в

Windows.

 

С точностью до наоборот :-) Там как раз не x86, но при этом Windows :-)

 

 

http://www.caustik.com/cxbx/progress.htm

 

Since the Xbox uses an Intel Pentium processor, a large percentage of

the code

 

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

 

 

На сайте opendylan.org висит таблица:

 

Warning

 

The 32 bit version of Open Dylan does NOT work on 64 bit Windows. There is no workaround at this time, unfortunately. We hope to resolve this in an upcoming release.

 

Вероятно, как раз эта проблема.

 

-- If you want to get to the top, you have to start at the bottom

День добрый.

 

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

 

 

Потому, что сегментные регистры, с точки зрения разработчиков Intel (AMD) - Leagacy, и в режиме 64 битного адреса они решили их уже не поддерживать. Ведь они нужны были для преодаления лимитов адресного пространства, защиту памяти можно организовать и на уровне страниц.

On 11/21/2012 06:54 PM, Sergei Lodyagin wrote:

 

Потому, что сегментные регистры, с точки зрения разработчиков Intel (AMD) - Leagacy, и в режиме 64 битного адреса они решили их уже не поддерживать. Ведь они нужны были для преодаления лимитов адресного пространства, защиту памяти можно организовать и на уровне страниц.

Это не может быть правдой, ибо имеется минимум один механизм, активно их использующий. Называется он thread local storage и суть в том, что каждая нить имеет собственное значение одного из сегментных регистров, который и используется для доступа к сегменту данных локальных для этой нити.

Новое сообщение:
Страницы: 1 2

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти