А вдруг Вы использование механики подскажет Вам какую-либо удачную идею:? Такой вариант не исключён. Я имею в виду идею, которую легко реализовать в ПЛИС. С удовольствием посмотрю на Ваше устройство в действии.
Что касается прерываний — это не страшно. Прерывания отживают последние дни — им на смену спешат сообщения. В будущих архитектурах блоки вычислительных устройств будут обмениваться сообщениями.
Странно, вроде бы Ваша затея не имеет практического смысла, но интересно и страшно. Интересно, потому что необычно. Страшно, если вдруг получится удачная архитектура и Вы задумаете перенести реализацию в ПЛИС. Почему страшно? Потому что Вы не один.
— Папа, папа — водка подорожала! Это правда, что ты теперь будешь меньше пить?
— Нет, сынок, теперь ты будешь меньше есть.
Это к слову, за счей счёт «папа» компенсирует недополученные налоги. Мне казалось, что при одинаковых харакеристиках, качестве и цене, нормальный человек предпочтёт отечественный товар, а не зарубежный. Это такая форма молчаливого и некичливого патриотизма.
Остальную часть своего ответа удалил, так как она нарушает правила Хабра. Гильотина — не лучшее средство от перхоти
Спасибо, очень интересно. Не буду говорить за всех, но многие ждали когда же на Мультклете появится маленькая операционная система.
Несколько сопутствующих вопросов:
Сколько времени потратили на портирование? Какие планы на будущее — будете ли развивать проект дальше? Как разработчики Мултиклета отнеслись к новости? Наверняка узнали об этом первыми.
Интересно, BarsMonster сейчас не сожалеет, что свой чип вытравил кислотой :)
Грамотная, ювелирная декомпозиция способна творить чудеса, главное – это увидеть повторяющиеся фрагменты, выделять их в отдельные абстракции и затем упрощать.
В принципе, весьма близка к этому была технология Component Object Mode, особенно если исключить из неё технологию «позднего связывания». Т.е. инструмент для декомпозии всё же был (и никуда не делся), но он «вышел из моды» и оброс сверху множеством слоёв.
Впрочем, COM технология не единственный способ, пригодный для декомпозиции. Очень хороший и перспективный иинструмент — Inter-Process Communtications на основе сообщений микроядер. Если отбросить в сторону привычную парадигму построения систем, то от объектно-ориентированного программирования можно перейти к субъектно-ориентированному.
Я предложил первый параметр использовать как маску значимых параметров. То есть, после увеличение количества передаваемых параметров старые модули/программы так и будут заполнять только известные им поля.
При соглашении о вызовах в формате cdecl такой проблемы как бы не существует. Конструкция языка Си… (три точки) позволяет объявлять функции с произвольным числом параметров. При cdecl стек подчищает вызывющий код.
После чего начинаются свистопляски, а где же хранить это значения, потому что регистры нам нужны для работы, а их (регистров) всего 16? Или вдруг понадобилось добавить 17й параметр? Здравствуй стек.
Не факт. В случае 17 параметров, наверное, оптимальнее будет положить их в структуру и передавать указатель на неё. Причём, это будет справедливо как для языков высокого уровня, так и для ассемблера — Вы ведь сами утверждаете, что регистров не хватит. А в случае рекрурсии получится ещё и хорошая экономия — меньше работы со стеком.
Кстати, Ваша идея с первым параметром не так уж и нова. Много раз видел структуры данных, где первое поле описывает размер структуры и одновременно является версией протокола. Например, в Windows DDK и в формате TrueType шрифтов такое встречается нередко. В аккурат так, как Вы описываете — если размер, к примеру, 10 байт, то это первая версия и используются только поля этой структуры, а, скажем, значение 16 байт — это расширенная версия с дополнительными параметрами, где первые 10 байт соответствуют «старой» структуре, а новые 6 байт — расширение. В этом случае логика работы обработчика определяется как раз первым байтом, при этом новые версии библиотек свободно работают как со старыми форматами, так и с новыми. Возможно, в некоторых ситуациях возможна и обратная совместимость, если допустить что новый формат является надмножеством старого.
«тут и меньший расход памяти неизвестно на что»
Ну почему же неизвестно на что? Очень даже известно до каждого байта — C Run-Time Library, libc и, опционально, отладочная информация. Это для статически слинкованых бинарников. Так же многие линкёры любят добавлять информацию в исполняемый файл о себе любимом — версию ОС и версию компилятора. В случае использования функций из DLL всё немого сложнее.
В случае С++ к вышесказанному добавляются таблицы для вызовов конструкторов и деструкторов для статических объектов и код для обработки исключений. Так и растёт исполняемый файл. Но фишка в том, что практически все современные компиляторы дают нам возможность рулить тем, что и как генерировать. Можно отключить массу «ненужных» фич и получить на выходе чистый «незамутнённый» ассемблерный код.
отсутствие излишней нагрузки на исполнительные устройства процессора (что экономит немного электричества).
Это весьма спорный момент. Потянет на целое обсуждение.
Да в конце концов — удовольствие от работы. Вам нравится писать на С, мне приятно писать на ассемблере. Я не вижу ничего в этом плохого. :)
О да! О вкусах не спорят. Вот по этому пункту было бы глупо возражать.
Противоречивый пост. Есть интересные идеи, как будто бы подсмотренные у VLIW «Эльбруса» — если склероз мне не изменяет, то именно в нём используется раздельные стеки для аргументов и для адресов возврата. Хотя могу и ошибаться, поскольку систему команд «Эльбруса» в глаза не видел.
Что касается передачи структур вместо аргументов, то посмотрите как это сделано в С++ — при вызове нестатических методов класса, первый («нулевой») параметр и есть указатель на класс. Т.е. Ваша идея созвучна тому, как это реализовано в компиляторах С++. Кстати, можно и нужно раскритиковать предложенный Вами запрет на изменение полей структур — копирование структуры практически всегда будет менее трудоёмкой операцией, чем выделение памяти для новой структуры. Причём, если предагаете чтобы функция/процедура возвращала новую структуру, являющуюся копией входной структуры, но с изменённым полем/полями, то копирования не избежать.
Ещё момент по поводу передачи параметров функции. На архитектурах x86 32-х битный режим постепенно уходит в прошлое, а в 64-х битном режиме регистры активно используются для передачи параметров — en.wikipedia.org/wiki/X86_calling_conventions — обратите внимание на «Microsoft x64 calling convention» и «System V AMD64 ABI». Например, следующий код
на x86-64 не будет использовать стек для передачи параметров — все три аргумента поместятся в регистры.
Вообще, в наше время программировать на «чистом» ассемблере для архитектуры x86 особого смысла нет — во первых, оптимизаторы компиляторов весьма совершенны. Во вторых, не факт, что ручная оптмиизация кода под определённую модель процессора будет настолько же хороша для другой модели процессора. Вспомните хотя бы проблемы, которые не так давно решали разработчики игр, создавая критический по быстродействию код сразу для нескольких моделей процессоров.
Это было сообщение автору статьи, а чтобы не возникло ощущения, что я противник ассемблера, то приведу области где его использование действительно необходимо:
на устройствах с ограниченным количеством памяти, где нужно считать каждый байт
в системах с жестким реалтаймом, где приходится считать каждый такт
разработчикам операционных систем, компиляторов и системных библиотек (пример — функции setjmp/longjmp можно реализовать только на ассемблере)
ручная оптимизация многократо вызываемых функций в критичном ко времени исполнения коде
Наконец, знание ассемблера очень хорошо помогает при отладке — разработчику важно понимать код, который сгенерировал компилятор — objdump -S yourobjfile.o | less в помощь.
«Википедия сообщает, что Юйту — первый за 40 с лишним лет планетоход»
Всегда было интересно посмотреть на фотографии лунного пейзажа, сделанные современной цифровой фототехникой. Фотографии из поста уже отличаются от того, что мы привыкли видеть на кадрах хроники. Посему вопрос — где бы посмотреть на фотографии в полном размере и качестве?
Кстати, если у вас есть пожелания или может быть даже знакомые ученые в каких-то западных университетах — делитесь в комментариях.
Есть пожелания. Может быть эти учёные и не так известны, но всё же назову их — Uwe Dannowski и Jan Stoess — их довольно легко найти, если знать что вместе их связывает «Karlsruhe Institute of Technology». Если заинтересуетесь, то контакты могу передать в личном сообщении.
Интересны любые задачи, которыми занимаются/занимались эти учёные, но особенно интересен период их работы совместно c Jochen Liedtke, а так же интересна история разработки L4Ka Pistachio. Хотя… простите, наверное это слишком узкоспециализированное пожелание и такое интервью будет интересно узкому кругу специалистов.
Отдельное спасибо за кадры насекомых. Лапа мухи с большим увеличение нагоняет какое-то инстинктивное чувство то ли страха, то ли отвращения. Но явно не осталяет равнодошным.
Специальное оборудование для эксперимента было помещено в грузовой корабль «Альберт Эйнштейн» и сгорело вместе с ним над Тихим океаном.
Насколько можно понять, такова судьба грузового корабля — после использования сгореть в атмосфере. Посему вопрос, что мешает приземлять грузовые корабли? Не для повторного запуска, а для доставки на Землю результатов экспериментов.
Для небольших объемов данных подмешивать передаваемую информацию в IP заголовках в секцию Options. Например, использовав какю-либо опцию их разряда «Reserved for future use». Вроде бы маршрутизаторы не должны резать эти данные. Для совсем запущенных случаев передавать скрытые данные в поле Time Stamp, для достоверности используя лишь младшие биты — количество передваемой информации будет минимально, но и доказать такую передачу практически невозможно. Парой десятков обычных IP пакетов вполне можно передать номер кредитки с PIN кодом или GPS-коррдинаты или номер телефона.
Для большимх объёмов передаваемых данных имеет смысл подмешивать их в видеопоток — со стороны будет выглядеть как просмотр видеоролика, но при быстром канале вполне можно подмешать консольный ssh трафик. Эдакий вариант стеганографии для интерактивного трафика. Поскольку поток одосторонний, то может возникнутть проблема с передачей информации в обратную сторону, например консольного ввода. Я не уверен, но возможно управляющие команды можно попытаться передавать обратно через flow control — имитироватть потерю синхронизации, переполнение буфера, перетаскивание ползунка и т.д. Возможно со стороны анализатора трафика это будет выглядеть странно, но доказать передачу скрытых данных будет очень трудно.
«Скрепя сердце» положительно проголосовал за статью — боролись два чувства. Первое, это радость от того, что L4 шагает по планете, второе — эти ребята из Open Kerenl Labs и из Дрездена создают конкурирующий продукт. Не надо смеяться — я почти 12 лет в одиночку «пилю» операционную система на микроядре L4Ka Pistachio (о котором в статье ни слова), но разве может «сумасшедший инженер» соревноваться с несколькимим университами, компаниями и сообществами? Хотя, я не совсем одинок — мой компаньон поддерживает сайт и помогает во многих вопросах, но у него совершенно нет времени на кодирование.
К стыду своему не могу найти формулу, по которой можно рассчитать ускорение при полёте в режиме 3 / 24 / 3.
Сведующие люди, подскажите, пожалуйста, формулу — очень хочется узнать какие перегрузки испытают путешественники при условии 30 дней на полёт. При условии, что ускоряться и замедляться корабль будет равномерно. а так же при условии выбора оптимальной даты старта (расстояние 78 300 000 км).
Так же интересно, окажет ли ощутимое воздействие гравитация Солнца и других планет. Или ей можно пренебречь?
Волга Сайбер это не совсем российский автомобиль, это слегка модифицированный «Chrysler JR41 Sebring». Хотя признаю, из всех автомобилей, серийно выпускаемых российскими заводами, это был самый представительский.
«Фактически в 2010 году было произведено 5065 «Сайберов», а продано 5490 машин. Таким образом, суммарный объем выпуска Volga Siber по данным «АСМ-Холдинг» в 2008—2010 гг. составил 8933 ед.»
К сожалению у меня нет опыта обладания/вождения Нивы, поэтому и мнения нет. С точки зрения пассажира — двухдверная мне кажется тесной — трём пасажирам на заднем сиденьи некомфортно.
Однако, есть сомнения что среди внедорожников у Нивы есть конкуренты по цене. Специально сейчас поискал цены новых внедорожников — за 350 тыс. руб. — только Нива.
Я вот не уверен, что это в принципе возможно — догнать Штаты по уровню микропроцессорной техники.
Сложный вопрос. По техпроцессу почти невозмжно. Вероятно, США заблокирует покупку новейшего литографического оборудования российской компанией непосредственно у ASML. Ситуация в области САПР, похоже, немного лучше — вроде бы поставка САПР от Cadence Design Systems, Synopsys и Mentor Graphics в Россию не запрещена.
А вот на уровне HDL можно попробовать «догнать» — посмотрите в какую сторону развивает процессоры Intel — высокая параллельность, предсказатели, многоядерность, кэши и т.п. Слабое место у архитектуры x86 — система команд. Она изначально не была красивой (это подвердит любой специалист, знакомый с системой команд PDP11), а уже в 80386 можно обнаружить признаки «костылей». И чем дальше, тем костылей больше и больше. Можно лишь снять шляпу и поклониться пред инженерами Intel и пред производителями компиляторов, представляя какими усилиями им удаётся выжимать производительность из наследника архитектуры x86.
Собственно, две вещи, которые дают, пусть и призрачную, но надежду на возможность «догнать по уровню микропроцессорной техники»:
Первая возможность, это продуманная система команд. Сама по себе она не даст никаких преимуществ, но на уровне проектирования системы команд можно исключить многие проблемы — у разработчиков не будет груза совместимости, а это значит — более простая топология, более короткие маршруты, меньшее число транзисторов.
Вторая возможность, это аппаратное синхронное микроядро. Пока что никто из производителей микропроцессоров всерьёз не озаботился этой проблемлемой и особо не копал в эту сторону. Вот тут и появляется лазейка с возможностью «догнать». Причём, это не в прямом смысле гонка, которая подразумевает бег по одному пути, здесь другая аналогия — «срезать угол». Извините за аналогии, но лидеров индустрии можно сравнить с первопроходцами, которые идут по незнакомому маршруту, а догоняющий имеет возможность выбрать более короткий путь.
Т.е. синхронные микроядра, это другая парадимга построения систем. Сейчас всё сводится к тому, что новый базис подгоняется под существующие решения — любой программист, вооруженный синхронными сообщениями, первым делом пишет библиотеку, превращающую эти сообщения в асинхронные. Программисты так привыкли и даже самым опытным из программистов такое решение кажется наиболее естественным. Таким образом появляется новая «прослойка» в виде библиотеки, развязывающей синхронные сообщения в асинхроные, которая никоим образом не добавляет быстродействия системам, изначалаьно рассчитаным асинхронность.
Вы возразите: «Какое это имеет отношение к обсуждаемой теме и возможности догнать лидеров микроэлектроники?» Дело в том, что вся эта возня имела далеко идущие последствия и на много лет вперёд определила путь развития микроэлектроники. Как это ни странно звучит, немалую роль в этом сыгнал Линус Торвальдс, который однажды втоптал в грязь Эндрю Таненбаума, разрушив веру инженеров в микроядра. Благодаря потерес интереса к микроядрам появляется маленькая лазейка, дающая шанс догнать — поместить синхронное микроядро на кристалл.
С технической точки зрения я готов отстаивать свои утверждения до тех пор, пока они не будут приняты или до полного слива. Единственное, что рушит надежду догнать, так это то, что лидеры отрасли имеют огромные ресурсы в виде опыта, технологий и капитала — при малейшем успехе аппаратного микрояда, эта идея будет сразу же подхвачена, внедрена и растиражирована крупными игроками. Но всё же шанс есть.
А Вам не приходило в голову, что машины бывают разного класса и разного ценового сегмента? Тот, кто покупает машину представительского класса — никогда не купит малолитражку. А что из представительского класса производится в России?
Если брать продукцию ВАЗа, то лучшие его модели сравнимы с Рено Логан и Хендай Акцент. Но фишка в том, что у Логан и Акцент — одни из самых дешёвых представителей модельного ряда Рено и Хендай. Т.е. кто считатет, что ему «западло» ездить на Приоре, тот не купит ни Логан, ни Акцент.
Что касается прерываний — это не страшно. Прерывания отживают последние дни — им на смену спешат сообщения. В будущих архитектурах блоки вычислительных устройств будут обмениваться сообщениями.
— Нет, сынок, теперь ты будешь меньше есть.
Это к слову, за счей счёт «папа» компенсирует недополученные налоги. Мне казалось, что при одинаковых харакеристиках, качестве и цене, нормальный человек предпочтёт отечественный товар, а не зарубежный. Это такая форма молчаливого и некичливого патриотизма.
Остальную часть своего ответа удалил, так как она нарушает правила Хабра. Гильотина — не лучшее средство от перхотиНесколько сопутствующих вопросов:
Сколько времени потратили на портирование? Какие планы на будущее — будете ли развивать проект дальше? Как разработчики Мултиклета отнеслись к новости? Наверняка узнали об этом первыми.
Интересно, BarsMonster сейчас не сожалеет, что свой чип вытравил кислотой :)
В принципе, весьма близка к этому была технология Component Object Mode, особенно если исключить из неё технологию «позднего связывания». Т.е. инструмент для декомпозии всё же был (и никуда не делся), но он «вышел из моды» и оброс сверху множеством слоёв.
Впрочем, COM технология не единственный способ, пригодный для декомпозиции. Очень хороший и перспективный иинструмент — Inter-Process Communtications на основе сообщений микроядер. Если отбросить в сторону привычную парадигму построения систем, то от объектно-ориентированного программирования можно перейти к субъектно-ориентированному.
При соглашении о вызовах в формате cdecl такой проблемы как бы не существует. Конструкция языка Си… (три точки) позволяет объявлять функции с произвольным числом параметров. При cdecl стек подчищает вызывющий код.
Не факт. В случае 17 параметров, наверное, оптимальнее будет положить их в структуру и передавать указатель на неё. Причём, это будет справедливо как для языков высокого уровня, так и для ассемблера — Вы ведь сами утверждаете, что регистров не хватит. А в случае рекрурсии получится ещё и хорошая экономия — меньше работы со стеком.
Кстати, Ваша идея с первым параметром не так уж и нова. Много раз видел структуры данных, где первое поле описывает размер структуры и одновременно является версией протокола. Например, в Windows DDK и в формате TrueType шрифтов такое встречается нередко. В аккурат так, как Вы описываете — если размер, к примеру, 10 байт, то это первая версия и используются только поля этой структуры, а, скажем, значение 16 байт — это расширенная версия с дополнительными параметрами, где первые 10 байт соответствуют «старой» структуре, а новые 6 байт — расширение. В этом случае логика работы обработчика определяется как раз первым байтом, при этом новые версии библиотек свободно работают как со старыми форматами, так и с новыми. Возможно, в некоторых ситуациях возможна и обратная совместимость, если допустить что новый формат является надмножеством старого.
Ну почему же неизвестно на что? Очень даже известно до каждого байта — C Run-Time Library, libc и, опционально, отладочная информация. Это для статически слинкованых бинарников. Так же многие линкёры любят добавлять информацию в исполняемый файл о себе любимом — версию ОС и версию компилятора. В случае использования функций из DLL всё немого сложнее.
В случае С++ к вышесказанному добавляются таблицы для вызовов конструкторов и деструкторов для статических объектов и код для обработки исключений. Так и растёт исполняемый файл. Но фишка в том, что практически все современные компиляторы дают нам возможность рулить тем, что и как генерировать. Можно отключить массу «ненужных» фич и получить на выходе чистый «незамутнённый» ассемблерный код.
Это весьма спорный момент. Потянет на целое обсуждение.
О да! О вкусах не спорят. Вот по этому пункту было бы глупо возражать.
Что касается передачи структур вместо аргументов, то посмотрите как это сделано в С++ — при вызове нестатических методов класса, первый («нулевой») параметр и есть указатель на класс. Т.е. Ваша идея созвучна тому, как это реализовано в компиляторах С++. Кстати, можно и нужно раскритиковать предложенный Вами запрет на изменение полей структур — копирование структуры практически всегда будет менее трудоёмкой операцией, чем выделение памяти для новой структуры. Причём, если предагаете чтобы функция/процедура возвращала новую структуру, являющуюся копией входной структуры, но с изменённым полем/полями, то копирования не избежать.
Ещё момент по поводу передачи параметров функции. На архитектурах x86 32-х битный режим постепенно уходит в прошлое, а в 64-х битном режиме регистры активно используются для передачи параметров — en.wikipedia.org/wiki/X86_calling_conventions — обратите внимание на «Microsoft x64 calling convention» и «System V AMD64 ABI». Например, следующий код на x86-64 не будет использовать стек для передачи параметров — все три аргумента поместятся в регистры.
Вообще, в наше время программировать на «чистом» ассемблере для архитектуры x86 особого смысла нет — во первых, оптимизаторы компиляторов весьма совершенны. Во вторых, не факт, что ручная оптмиизация кода под определённую модель процессора будет настолько же хороша для другой модели процессора. Вспомните хотя бы проблемы, которые не так давно решали разработчики игр, создавая критический по быстродействию код сразу для нескольких моделей процессоров.
Это было сообщение автору статьи, а чтобы не возникло ощущения, что я противник ассемблера, то приведу области где его использование действительно необходимо:
Наконец, знание ассемблера очень хорошо помогает при отладке — разработчику важно понимать код, который сгенерировал компилятор — objdump -S yourobjfile.o | less в помощь.
Всегда было интересно посмотреть на фотографии лунного пейзажа, сделанные современной цифровой фототехникой. Фотографии из поста уже отличаются от того, что мы привыкли видеть на кадрах хроники. Посему вопрос — где бы посмотреть на фотографии в полном размере и качестве?
Есть пожелания. Может быть эти учёные и не так известны, но всё же назову их — Uwe Dannowski и Jan Stoess — их довольно легко найти, если знать что вместе их связывает «Karlsruhe Institute of Technology». Если заинтересуетесь, то контакты могу передать в личном сообщении.
Интересны любые задачи, которыми занимаются/занимались эти учёные, но особенно интересен период их работы совместно c Jochen Liedtke, а так же интересна история разработки L4Ka Pistachio. Хотя… простите, наверное это слишком узкоспециализированное пожелание и такое интервью будет интересно узкому кругу специалистов.
А вот кто точно будет инетерсен многим — Эндрю Таненбаум.
Насколько можно понять, такова судьба грузового корабля — после использования сгореть в атмосфере. Посему вопрос, что мешает приземлять грузовые корабли? Не для повторного запуска, а для доставки на Землю результатов экспериментов.
Для небольших объемов данных подмешивать передаваемую информацию в IP заголовках в секцию Options. Например, использовав какю-либо опцию их разряда «Reserved for future use». Вроде бы маршрутизаторы не должны резать эти данные. Для совсем запущенных случаев передавать скрытые данные в поле Time Stamp, для достоверности используя лишь младшие биты — количество передваемой информации будет минимально, но и доказать такую передачу практически невозможно. Парой десятков обычных IP пакетов вполне можно передать номер кредитки с PIN кодом или GPS-коррдинаты или номер телефона.
Для большимх объёмов передаваемых данных имеет смысл подмешивать их в видеопоток — со стороны будет выглядеть как просмотр видеоролика, но при быстром канале вполне можно подмешать консольный ssh трафик. Эдакий вариант стеганографии для интерактивного трафика. Поскольку поток одосторонний, то может возникнутть проблема с передачей информации в обратную сторону, например консольного ввода. Я не уверен, но возможно управляющие команды можно попытаться передавать обратно через flow control — имитироватть потерю синхронизации, переполнение буфера, перетаскивание ползунка и т.д. Возможно со стороны анализатора трафика это будет выглядеть странно, но доказать передачу скрытых данных будет очень трудно.
Сведующие люди, подскажите, пожалуйста, формулу — очень хочется узнать какие перегрузки испытают путешественники при условии 30 дней на полёт. При условии, что ускоряться и замедляться корабль будет равномерно. а так же при условии выбора оптимальной даты старта (расстояние 78 300 000 км).
Так же интересно, окажет ли ощутимое воздействие гравитация Солнца и других планет. Или ей можно пренебречь?
Спасибо.
Что из комплектующих производилось в России:
«Первичной локализации были подвергнуты фары (передние, задние), бамперы (передние, задние), панель приборов, уплотнительные элементы, дверные ручки, сиденья, панели интерьера.»
Не густо. Увы, уже не производится:
«Фактически в 2010 году было произведено 5065 «Сайберов», а продано 5490 машин. Таким образом, суммарный объем выпуска Volga Siber по данным «АСМ-Холдинг» в 2008—2010 гг. составил 8933 ед.»
Однако, есть сомнения что среди внедорожников у Нивы есть конкуренты по цене. Специально сейчас поискал цены новых внедорожников — за 350 тыс. руб. — только Нива.
Сложный вопрос. По техпроцессу почти невозмжно. Вероятно, США заблокирует покупку новейшего литографического оборудования российской компанией непосредственно у ASML. Ситуация в области САПР, похоже, немного лучше — вроде бы поставка САПР от Cadence Design Systems, Synopsys и Mentor Graphics в Россию не запрещена.
А вот на уровне HDL можно попробовать «догнать» — посмотрите в какую сторону развивает процессоры Intel — высокая параллельность, предсказатели, многоядерность, кэши и т.п. Слабое место у архитектуры x86 — система команд. Она изначально не была красивой (это подвердит любой специалист, знакомый с системой команд PDP11), а уже в 80386 можно обнаружить признаки «костылей». И чем дальше, тем костылей больше и больше. Можно лишь снять шляпу и поклониться пред инженерами Intel и пред производителями компиляторов, представляя какими усилиями им удаётся выжимать производительность из наследника архитектуры x86.
Собственно, две вещи, которые дают, пусть и призрачную, но надежду на возможность «догнать по уровню микропроцессорной техники»:
Первая возможность, это продуманная система команд. Сама по себе она не даст никаких преимуществ, но на уровне проектирования системы команд можно исключить многие проблемы — у разработчиков не будет груза совместимости, а это значит — более простая топология, более короткие маршруты, меньшее число транзисторов.
Вторая возможность, это аппаратное синхронное микроядро. Пока что никто из производителей микропроцессоров всерьёз не озаботился этой проблемлемой и особо не копал в эту сторону. Вот тут и появляется лазейка с возможностью «догнать». Причём, это не в прямом смысле гонка, которая подразумевает бег по одному пути, здесь другая аналогия — «срезать угол». Извините за аналогии, но лидеров индустрии можно сравнить с первопроходцами, которые идут по незнакомому маршруту, а догоняющий имеет возможность выбрать более короткий путь.
Т.е. синхронные микроядра, это другая парадимга построения систем. Сейчас всё сводится к тому, что новый базис подгоняется под существующие решения — любой программист, вооруженный синхронными сообщениями, первым делом пишет библиотеку, превращающую эти сообщения в асинхронные. Программисты так привыкли и даже самым опытным из программистов такое решение кажется наиболее естественным. Таким образом появляется новая «прослойка» в виде библиотеки, развязывающей синхронные сообщения в асинхроные, которая никоим образом не добавляет быстродействия системам, изначалаьно рассчитаным асинхронность.
Вы возразите: «Какое это имеет отношение к обсуждаемой теме и возможности догнать лидеров микроэлектроники?» Дело в том, что вся эта возня имела далеко идущие последствия и на много лет вперёд определила путь развития микроэлектроники. Как это ни странно звучит, немалую роль в этом сыгнал Линус Торвальдс, который однажды втоптал в грязь Эндрю Таненбаума, разрушив веру инженеров в микроядра. Благодаря потерес интереса к микроядрам появляется маленькая лазейка, дающая шанс догнать — поместить синхронное микроядро на кристалл.
С технической точки зрения я готов отстаивать свои утверждения до тех пор, пока они не будут приняты или до полного слива. Единственное, что рушит надежду догнать, так это то, что лидеры отрасли имеют огромные ресурсы в виде опыта, технологий и капитала — при малейшем успехе аппаратного микрояда, эта идея будет сразу же подхвачена, внедрена и растиражирована крупными игроками. Но всё же шанс есть.
Если брать продукцию ВАЗа, то лучшие его модели сравнимы с Рено Логан и Хендай Акцент. Но фишка в том, что у Логан и Акцент — одни из самых дешёвых представителей модельного ряда Рено и Хендай. Т.е. кто считатет, что ему «западло» ездить на Приоре, тот не купит ни Логан, ни Акцент.