Jun. 2nd, 2016

mike_lambert: (я тебя вижу)
Щас меня какашками закидают, ну да ладно.
Нет, псто не о альпинистах, а о многострадальном отечественном процессоре.

Я не буду сейчас распыляться о попугаях и ценах.
Что есть "Эльбрус"? В контексте задач импортозамещения - это наш особенный путь запуска x86-кода. Операционных систем, приложений, и прочего.
В отличие от процессоров Intel, для которых система команд x86 родная и оптимальная, выполнение x86-кода на "Эльбрусе" - это натягивание совы на глобус. Исполнение кодов, отличающихся от кодов целевого процессора - то есть прежде всего издержки на трансляцию.
При этом целевой процессор СУЩЕСТВЕННО отличается по архитектуре от исходного. Например, у "Эльбруса" три стека - стек адресов возврата, стек сохранения регистрового файла, и пользовательский стек , причем два из них (возврата и сохранения) защищены. То есть управляются операционной системой. И вызов любой процедуры в пользовательском (! это важно) коде из пользовательского же кода ведет к провалу в ядро, проверкам безопасности, и прочему. Самое главное - к переключению контекста.  Что является очень дорогой операцией. Таких вызовов в типичной программе может быть сотни и тысячи. И все это катастрофически снижает эффективность выполнения и так неродного кода.
А "Эльбрус" - и так штука небыстрая. 800 МГц у массовых экземпляров.
И капризная - ему нужно чтобы вся аппаратура исполнения была загружена равномерно. Вот есть у него 4 исполняющих устройства. Условно - 4 ядра. Они все должны работать каждый такт. И если какой-то кусок кода не параллелится, то на те устройства, которые не нужны передается "холостая" команда NOP (No operation). Ядро работает. Но как бы не работает. Еще одна просадка - просто потому, что транслятор не имеет и не может иметь метаданных о вышележащей программе.

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

Что делать? Отказываться от x86. Есть нативная ОС, собранная под собственно "Эльбрус", на базе исходников Linux. Все, вот вам ось, вот вам компилятор, вот вам соглашение о неразглашении, и вы пять лет невыездной.
Да-да, система команд (то есть соответствие мнемоники кодов процессора их двоичному представлению) - секретная информация. И компилятор тоже секретный.

То есть чтобы счастье импортозамещения таки наступило надо сделать несколько простых вещей.
1. Открыть систему команд и компилятор.
2. Открыть исходные коды ОС.
3. Увеличить массовое производство чипов
4. Выбросить на рынок недорогие (1000 - 3000 рублей) developer kit-ы наподобие Raspberry Pi.
5. Контролировать стек не переключением в контекст супервизора а более эффективными и простыми способами.
6. Перепозиционировать продукцию на "Эльбрусах" с хреновых заменителей x86 на перспективную платформу для открытого софта.

Будет комьюнити - будет софт. Будут девкиты - будет комьюнити. А то, вон, НТЦ "Модуль" сделал дев-кит "убийцу распберри пи", у которого ресурсов в три раза меньше, а стоит столько же. Ну и нафиг он нужен?
"Байкал"? А что "Байкал"? "Байкал" не занимается натягиванием совы на глобус, у них перепиленный MIPS 5600, четкое понимание целевой продукции и потребителей, плюс вполне стандартный Linux и тулкит под него.
mike_lambert: (я тебя вижу)
... это всё, что вам нужно знать об инновациях в Новосибирске

Profile

mike_lambert: (Default)
Майк

April 2017

S M T W T F S
      1
2 345 678
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 19th, 2025 10:26 am
Powered by Dreamwidth Studios