Перейти к содержимому
Калькуляторы

Система безопасности этого процессора В КОРНЕ отличатся от таковой в широко распространённых процессорах. В Корне! Именно по этому в папочке arch не будет подпапочки e2k. Для того, чтобы нативно воспользоваться всеми фишками этого процессора, пришлось переписАть пол ядра и либу pthreads. Сейчас работают на 3.2 ядром.

Т.е. процессор никогда не пойдет в коммерцию, а будет производится исключительно в интересах военных? И патчи действительно секретны?

Ибо если коммерческий потребитель получит от МЦСТ диск с патчами - он согласно GPL имеет право выложить исходники в открытый мир..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Неверная трактовка. Дело не в "патче". Если ЭТО вообще можно назвать "патчем".

 

Там реально пол ядра переписано.

 

3.1.4. Поддержка защищенного режима исполнения

программ в аппаратуре

 

Архитектура «Эльбрус» защищает контекст программного модуля, образо-

ванный объектами, которые допускается в нем использовать согласно пра-

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

к низкоуровневому представлению объекта в памяти или регистрах через

«проходную» его дескриптора — служебного слова, содержащего ссылку

и информацию об объекте, соответствующую его типу. Доступ возможен

только через дескриптор. Аппаратные операции создания и использования

дескрипторов специализированы таким образом, что не оставляют возмож-

ности непосредственного воздействия на объект.

Принципиальным фактором защиты, реализуемым через аппаратуру, яв-

ляется тегирование. Оно выполняется путем добавления к информацион-

ным разрядам дополнительного поля — тега, определяющего тип данных.

Каждое 4-байтовое слово в памяти, регистрах и шинах сопровождается

2-разрядным тегом.

Тег слова кодирует следующие признаки:

0 — слово содержит числовую информацию либо само по себе, либо

являясь фрагментом формата;

1 — слово содержит нечисловую информацию с форматом одинарного

слова;

2 — слово содержит фрагмент нечисловой информации формата

двойное слово;

3 — слово содержит фрагмент нечисловой информации формата

квадро.

Ни длина, ни тип числовых данных архитектурно не различимы. Се-

мантическое наполнение числовой переменной отслеживается компи-

лятором и проявляется, когда она становится операндом какой-либо

операции.

В отличие от числовых данных, нечисловые данные строго типизируются.

Прежде всего гарантируется целостность составных форматов (двойное

слово и квадро), что предполагает следующее:

все фрагменты должны иметь тип, соответствующий формату;

при любых манипуляциях фрагменты должны сохранять свой по-

рядок.

Второе качество реализуется выровненным расположением данных как в

памяти, так и в регистровом файле микропроцессора. Так, младшее слово

адресной переменной с форматом двойного слова всегда помещается по

адресу, кратному 8 байтам, а старшее — следом за ним, смежным обра-

зом. Пересылки отдельных фрагментов приводят к разрушению их типов

(превращению в неспециализированные данные). Операции, требующие

специализированных операндов (например, адресных данных), строго

контролируют их тип и целостность.

В рамках каждой из форматных групп конкретный тип специализирован-

ных данных определяется значением выделенной группы информационных

разрядов — внутреннего тега.

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

мяти, введены специальные дескрипторы, позволяющие описывать струк-

туры данных в соответствии с требованиями объектно-ориентированного

программирования. Это существенно упрощает доступ к таким данным.

Дескриптор объекта содержит описание открытых, защищенных и при-

ватных областей данных.

 

Вот куда это деть в стандартном ядре?! Чтобы с пользой воспользоваться этими механизмами надо, по хорошему, свою ОС делать.

Там в железе фактически реализован механизм ГАРАНТИРОВАННОГО обеспечения прав доступа к полям объекта В ПОНИМАНИИ ЯЗЫКА С++.

 

Даже его автокод (ассемблер, если угодно), Эль-76, это язык типа Алгола. Дело в том, что на "ассемблере" весьма глупо что либо писать под этот проц. Ведь основная идея в том, что планирование выполнения программ вынесено из процессора нахрен! НЕ СОДЕРЖИТ процессор планировщик. Совсем. Планирование выполняет компилятор. И может делать это хитрее и изворотливее, чем любой аппаратный планировщик. Компайлер и "видит дальше" и алгоритмически может быть сложнее и гибче. Он же в железе не высечен на века.

 

К стати, с системой идёт компактдиск с исходниками ядра и системой сборки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

К стати, с системой идёт компактдиск с исходниками ядра и системой сборки.

Т.е. можно обойтись без рекламы, а просто залить образ диска куда-то? :)

И сразу будет видно - что там реально внутри. Раз уж доступа к процессору не дают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а просто залить образ диска куда-то? :)
Мой особист не разрешает...)))) Разрешает только про второй эльбрус "заливать". Я его в 96 году застал в рабочем состоянии.

 

 

Раз уж доступа к процессору не дают.
Потерпите годик. Появится и в рознице. Вы судите продукт, не держа его в руках. Лисица и Виноград знаете, да?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Потерпите годик. Появится и в рознице. Вы судите продукт, не держа его в руках.Лисица и Виноград знаете, да?

Дык МЦСТ много лет выпускает процессоры, но в рознице ни один ни разу не появился. Почему Э. появится?

И что мешает выложить средства разработки и документацию до начала продаж?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

СОВСЕМ другая архитектура. Ни с чем не совместимая. Своя собственная. На каких то вопросах даст фору современному интелу.

И найдутся же люди, которые поверят...

Печаль.

 

Расскажите лучше, что из компонентов теорeтически может производиться массово в РФ в ближайшие 10-20 лет независимо от западаных технологий? Процессор не сможет, это понятно.

Изменено пользователем ttttt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Процессор не сможет, это понятно.

Процессор могут - линия для 90нм куплена, просто будет вариант Э. попроще.

Мы тут обсуждаем - почему он недоступен простым смертным..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И что там в этой линии не западного?

Я так понимаю туда нужны западные специалисты, западные комплектующие, западные материалы.

Изменено пользователем ttttt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Система безопасности этого процессора В КОРНЕ отличатся от таковой в широко распространённых процессорах. В Корне! Именно по этому в папочке arch не будет подпапочки e2k. Для того, чтобы нативно воспользоваться всеми фишками этого процессора, пришлось переписАть пол ядра и либу pthreads. Сейчас работают на 3.2 ядром.

Последствия:

1) При нахождении очередной ошибки повышения привилегий в ванильном ядре придется долго и мучительно понимать, применимо ли то же самое для e2k и при необходимости портировать исправляющий патч.

2) "Гражданские" специалисты всего мира на эти переписанные полядра смотреть на не будут, а критические ошибки будут искать только специалисты недружественных спецслужб. Найденными результатами они, разумеется, не поделятся.

 

Собственный, существенно отличающийся форк ядра - это совсем-совсем не здорово. Да еще компилятор, очевидно, нужно нетривиальным вещам обучать. Причем каждый, которые в родной код компилит. Не только C/C++, но и все остальные. Как насчет того кода, что JIT компиляторы для скриптовых языков делает? А без них будет весьма невесело.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

СОВСЕМ другая архитектура. Ни с чем не совместимая. Своя собственная. На каких то вопросах даст фору современному интелу.

И найдутся же люди, которые поверят...

Печаль.

А вы сами почитайте про Эль-76 и Эльбрус-2.

 

Я вот в 80-х читал когда выход на его появился а писать почему-то только в автокоде давали.

Плюнул и гонял программы медленно, но без мозговывертов на СМ-4 ;-).

Сейчас хоть компиляторы есть. Уже прогресс за 30-ть-то лет. :-)))

 

Расскажите лучше, что из компонентов теорeтически может производиться массово в РФ в ближайшие 10-20 лет независимо от западаных технологий? Процессор не сможет, это понятно.

Ответ очевиден: Если не купят Фаб-для-Фабов, то никакие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

Собственный, существенно отличающийся форк ядра - это совсем-совсем не здорово

Как будто есть предложения получше

 

Кстати, в голове всплыла мысль про виртуализацию. А что в Эльбрусе сделано на эту тему? Или еще никто не задумывался, других проблем хватает? В танке или ракете это не нужно, но мы же про потребительский рынок говорим

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да еще компилятор, очевидно, нужно нетривиальным вещам обучать. Причем каждый, которые в родной код компилит. Не только C/C++, но и все остальные.

Судя по тому, что я тут постил - они отказались от родных компиляторов и делают только трансляторы в C. Для фортрана именно так - что мне кажется очень странным - уж на фортране то наверняка написано куча кода для старых военных систем.

 

Вопрос, кстати, существует ли бинарная совместимость между разными процессорами в серии? А то может найтись простое объяснение, почему предпочитают делать трансляторы в C..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вы сами почитайте про Эль-76 и Эльбрус-2.

Вы о собственной архитектуре? Ну это да, можно назвать собственной.

Я о производительности. Как я понял у них такая особенность, что эта длинная широкая инструкция будет останавливать весь конвеер, если данные для одной из ее операций не готовы и будет пробовать снова выполнять и снова останавливать, пока для всех операций не прилетят данные.

У современных интелов же пока данные для какой-то операции не готовы, другие операции могут продолжать выполняться. Может навыполняться и сотня операций, в память на их частоте очень далеко ходить.

Т.е. разница где-то на порядок, а то и на два порядка.

 

Вот ребята из out of the box computing подобную проблему решали, пыхтели над архитектурой много лет, пока ничего кроме архитектуры не показали правда:

http://millcomputing.com/docs/memory/

 

Вопрос, кстати, существует ли бинарная совместимость между разными процессорами в серии?

Когда в компилятор зашиты тайминги выполнения операций, особенно с бинарной совместимостью не побалуешься.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Могу соврать, но как раз в Эльбрусах и была защита от вышеприведённого. Так что просто будет валиться, без повышения привелегий. Но таки pthreads и signals придётся переделывать, там финты с правкой стека.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, в голове всплыла мысль про виртуализацию. А что в Эльбрусе сделано на эту тему? Или еще никто не задумывался, других проблем хватает? В танке или ракете это не нужно, но мы же про потребительский рынок говорим

Смотря, что вы понимаете под виртуализацией. Делать виртуальные Эльбрусы на реальном Эльбрусе - это одно, а вот x86 можно только эмулировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я про первое

второе, в общем, уже есть

можно только упомянуть, а что если первое со вторым

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

openvz наверное должен работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Смотря, что вы понимаете под виртуализацией.

Определим тупо. Чтобы работал qemu с аппаратной поддержкой на уровне того, что линкусовый kvm обеспечивает.

 

openvz наверное должен работать.

Это не совсем виртуализация. Это такой шибко продвинутый chroot.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Смотря, что вы понимаете под виртуализацией.

Определим тупо. Чтобы работал qemu с аппаратной поддержкой на уровне того, что линкусовый kvm обеспечивает.

 

openvz наверное должен работать.

Это не совсем виртуализация. Это такой шибко продвинутый chroot.

Сергей, я шибко извиняюсь, но на Эльбрусах одна ОС...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я о производительности. Как я понял у них такая особенность, что эта длинная широкая инструкция будет останавливать весь конвеер, если данные для одной из ее операций не готовы и будет пробовать снова выполнять и снова останавливать, пока для всех операций не прилетят данные.

Ещё раз. У процессора е2к НЕТ планировщика. Совсем нет. Всё планирование делается ЯВНО и на этапе компиляции. В этой огромной инструкции есть предикаты, которые ЯВНО указывают зависимости по переходам и данным. И явно планируют использование АЛУ и прочих ресурсов процессора. В этом фишка е2к. Да и конвеер там...Хм. Как пипка у первокласника... Зато, там есть явное управление кэшами!

 

Когда в компилятор зашиты тайминги выполнения операций
Никакие "тайминги" никуда не "зашиты". Компилятор ЯВНО указывает аппаратуре, что и в какой последовательности выполнять. Именно эта особенность делает бессмысленным программизм на "ассемблере". Есть автокод, по своим свойствам больше напоминающий Алгол по русски.

 

Могу соврать, но как раз в Эльбрусах и была защита от вышеприведённого. Так что просто будет валиться, без повышения привелегий.
Если пользоваться правильно фичами этого процессора, то такая ситуация просто НЕ МОЖЕТ возникнуть. При корректной работе аппаратуры, само собой.

 

А виртуализация... Виртуализация ЧЕГО? Это не х86 совместимые процессор. Только эмуляция. Или то, что авторы зовут "двоичный транслятор". Это некий шибко умный компилятор (да да, именно компилятор), который "переводит" инструкции х86 в VLIW, шибко всё это оптимизируя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ещё раз. У процессора е2к НЕТ планировщика. Совсем нет. Всё планирование делается ЯВНО и на этапе компиляции. В этой огромной инструкции есть предикаты, которые ЯВНО указывают зависимости по переходам и данным.

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

 

А виртуализация... Виртуализация ЧЕГО?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Непонятно, как это работает. Скажем, если сегодня мне на вход подаются одни четные числа - у меня вычисление всегда идет по одной ветке. А завтра будут одни нечетные и все будет идти по другой ветке. Как это компилятор учитывать должен?
Да, в сущности также, как это учитывает простой Пентиум. Выполняет он обе ветки бранча одновременно, пока не определится, какая же ветка ДОЛЖНА БЫЛА выполняться. Когда наступает ясность, какая ветка была нужна, ненужная просто херится. Разница в том, что Пентиум должен догадываться сам о зависимостях кода, а тут эти зависимости указаны явно в теле команд. Что делает ненужным огромный и сложный блок предсказания. А также перекладывает ответственность за пенальти от срыва конвеера в случае ошибочного предсказания на компилятор.

 

Ну хотя бы создание экземпляра вирутальной машины с тем же эльбрусом внутри в качестве процессора, крутящей такую же 'родную' ось, но с полностью виртуальным железом.
Это ещё ЕС ЭВМ умели... Более того, это обычный способ генерации новой ОС на машину. Когда в виртуалке заработает - тогда на еальное железо переезжает. https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD

 

 

Видимо, и тут работает. Не видно препятствий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А виртуализация... Виртуализация ЧЕГО?

ну я не специалист чтобы правильными терминами все называть, но я говорю про Intel® Virtualization

http://www.intel.ru/content/www/ru/ru/virtualization/virtualization-technology/intel-virtualization-technology.html

Возможности виртуализации ЦП...

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

ну там и по другим пунктам

 

Возможности виртуализации памяти...

Возможности виртуализации систем ввода-вывода...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ещё раз. У процессора е2к НЕТ планировщика. Совсем нет. Всё планирование делается ЯВНО и на этапе компиляции. В этой огромной инструкции есть предикаты, которые ЯВНО указывают зависимости по переходам и данным. И явно планируют использование АЛУ и прочих ресурсов процессора. В этом фишка е2к. Да и конвеер там...Хм. Как пипка у первокласника... Зато, там есть явное управление кэшами!

Это не фишка, этому всему пятьдесят лет в обед. Это главная разница между интелами и такими процессорами. У интелов это планирование происходит ДИНАМИЧЕСКИ хардом. У этих - статически софтом. Традиционно у софта большая проблема - невозможно узнать, есть ли данные в кэше или нет. Харду в процессоре этого знать не надо, он просто отложит такую операцию, пока она ждет данные и возьмет следующую на очереди. Софт заранее такой финт ушами проделать не может. Кое-какие оптимизации в этом плане предлагает Mill (ссылку на видео выше для кого выложил?).

 

Никакие "тайминги" никуда не "зашиты". Компилятор ЯВНО указывает аппаратуре, что и в какой последовательности выполнять. Именно эта особенность делает бессмысленным программизм на "ассемблере". Есть автокод, по своим свойствам больше напоминающий Алгол по русски.
Что значит не зашиты тайминги? Я не думаю, что там все НАСТОЛЬКО плохо, скорее вы не поняли о чем я. Эта штука называется exposed pipeline, и компилятору очень нужно знать, сколько выполняется какая операция, чтобы их эффективно распараллеливать. Без этого в такую архитектуру лезть - это надо быть конкретными ламерами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Традиционно у софта большая проблема - невозможно узнать, есть ли данные в кэше или нет.
Там явное управление кэшем... Есть операция превентивной "подкачки".

 

сколько выполняется какая операция
Ну да. Два машинных цикла она выполняется. Нужные части кода/данных подкачиваются динамически и асинхронно. И явно, командой.

 

Блин, я документик выше давал. Почитайте про архитектуру с 88 странички. Типа, доступно и по русски.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.