В продаже появились компьютеры «Эльбрус» на процессорах российского производства
Российский разработчик персональных компьютеров МЦСТ Эльбрус, которого одно время опасались как возможного конкурента Intel, выпустил ПК на основе микропроцессоров собственного производства
Процессор Эльбрус-4С работает на 64-разрядном коде x86, написанном для микропроцессоров AMD и Intel. Хотя чип содержит 4 ядра, но они работают на частоте 800 МГц — которую Intel Pentium III использовал, соперничая с AMD Athlon, ещё в 1999 году. Чип Эльбрус, выпускаемый на основе древней 65-нм технологии (последние чипы Intel используют технологию 14 нм) не может выполнять исходный код, а способен лишь интерпретировать его.
Между тем, благодаря наличию 2 Мбт кэш-памяти на каждое ядро, Эльбрус обеспечивает производительность 50 Гфлопс, приближаясь к Intel Core i7-975 Extreme Edition (53 Гфлопс). Его потребляемая мощность при этом составляет всего 45 Вт.
http://communitarian.ru/upload/medialibrary/c0d/c0de6537a6830103a65c8ae6b6056e1e.jpg
РОЖДЕНИЕ «УБИЙЦЫ INTEL» И ЕГО СКУПКА
Команду инженеров, занимавшихся разработкой перспективного микропроцессора, возглавил Борис Арташесович Бабаян. На фоне тотальной разрухи, 90-х работа над архитектурой процессора продолжалась вяло до 1998 г. Именно в этом году все мировое сообщество узнало о том, что в России разработан современный процессор Elbrus-2000. О чём со сцены Microprocessor Forum заявил сам Борис Арташесович, отметив, что на выпуск пробной партии потребуется $60 млн. По его словам, Elbrus должен был стать самым производительным процессором в мире или, как тогда говорили, «убийцей Intel».
Участники форума насторожились — мало ли чего там опять изобрели у себя в берлоге русские. Но инвестировать такую сумму в разработку Бабаяна никто так и не решился. До тех пор, пока в 2001 г. напрягшаяся корпорация Intel не объявила о создании Itanium’а.
Через год после этого Бабаян опять привел некоторые характеристики нового процессора и заявил, что нужно отыскать лишь каких-то $100 млн. для изготовления тестовой партии. Стоит отметить, что новый микропроцессор общего назначения должен был быть выполнен по 100-нанометровому техпроцессу, иметь частоту 3,0 ГГц (потом, правда, оную снизили до 1,2 ГГц) и кэш 3-го уровня. Характеристики по тем временам были довольно впечатляющие.
Новыми разработками заинтересовались военные. Резервы запчастей старых ВК, принятых «на вооружение» еще в советские годы, стремительно истощались — необходимо было переходить на новую элементную базу. Но выбор военных пал не на современный процессор, а на
слабый во всех отношениях R-100 разработки той же организации. Первая опытная партия этих микропроцессоров была изготовлена во Франции на фабрике ATMEL ES2 по технологии 0,5 мкм. Тестирование процессор прошел на рабочих станциях SPARCstation 10 и 20.
Однако заказчик решил не запускать его в серию, а сделать редизайн на технологию 0,35 мкм, в ходе которого был разработан R-150 (с частой 150 МГц), который и был запущен в серийное производство. Но из-за отсутствия в России предприятий, способных производить электронику по 0,35-микронной технологии, изготовлением этой модели занялись иностранные заводы.
В 2003 г. Бабаян дал интервью журналу «Домашний компьютер», в котором заявил, что с Intel не стоит даже пытаться конкурировать, как говорится — «присоединись или умри». Уже через год печатные издания пестрели заголовками: «„Эльбрус“ сдан!», «Intel приобретает „Эльбрус“».
Скупку мозгов разработчиков русского процессора/компьютера Эльбрус / УниПро – в пользу Intel произвели российское представительство американской компании Russia Partners (о которой мы расскажем отдельно). В МЦСТ стало меньше на 550 рядовых сотрудников и одного академика РАН. Борис Арташесович не просто так рассуждал об утечке мозгов, перейдя в американскую компанию. Большинство из ушедших вместе с Бабаяном людей являлись разработчиками двоичных компиляторов, которые были коньком предприятия.
С остатками сотрудников МЦСТ решило сначала выпустить «урезанную» версию мегапроцессора. под названием E3K. Характеристики он имел гораздо более скромные: вместо 1,2 ГГц — всего 300 МГц, кэш 3-го уровня решили убрать. В 2007 году прошли госприемку процессоры R-500S и Elbrus, заканчивалась разработка системы на кристалле Elbrus-S.
Разработчикам удалось достичь довольно-таки хорошего отношения производительности к рассеиваемой мощности — 0,50 Гфлопс/Вт (у четырехъядерного Intel Core i7-920 составляет 0,46 Гфлопс/Вт), а широкое командное слово допускает одновременное выполнение 23 операций за такт(Itanium – 6 операций). Однако тактовая частота оставалась маленькой, а техпроцесс грубым — целых 130 нм.
Именно техническая норма производства стала основной причиной скромности характеристик E3K. Поэтому решили обновить техпроцессы.
http://communitarian.ru/upload/medialibrary/8a1/8a1ae859a1635e2c110e18f8b37ea565.jpg
RISC, CISC И ВСЯКОЕ ТАКОЕ
Все выпускаемые сегодня процессоры делятся на два больших класса: процессоры с сокращённым набором команд, или RISC (Reduced Instruction Set Computing), и процессоры с полным набором команд, или CISC (Complete Instruction Set Computing). Набор команд первых из них отличается аскетичностью, сами команды однотипны и выполняются за небольшое фиксированное время, что позволяет эффективнее наращивать тактовую частоту. В CISC-системе команды более универсальны, что несколько упрощает написание программного кода.
С точки зрения программиста, все x86-совместимые процессоры являются CISC-процессорами, хотя все современные модели спроектированы на основе RISC-ядра. Выполнение CISC-команд эмулируется аппаратурой процессора путём их преобразования «на лету» в команды RISC-ядра с помощью специального блока декодирования инструкций и микропрограммы-транслятора.. Такой подход позволяет повысить эффективность работы при сохранении совместимости, а также позволяет исправлять некоторые ошибки проектирования уже после выпуска чипа в серийное производство. Это достигается путём изменения кода микропрограммы-транслятора, обычно выполняемого средствами BIOS той системной платы, куда установлен процессор (именно об этом идёт речь, когда производители выпускают модификации BIOS, «совместимые с процессором таким-то»: то есть, в него внесена модифицированная версия микропрограммы для этой модели процессора, исправляющая некоторые ошибки, тогда как сам процессор будет прекрасно работать и на «несовместимом» BIOS’е).
Когда программист или компилятор создаёт программу в виде последовательности ассемблерных инструкций, то подразумевается, что они будут исполняться последовательно, одна за другой, и исполнение каждой инструкции полностью завершается перед запуском на исполнение следующей инструкции. Так устроены системы команд всех RISC и CISC процессоров. Первые модели процессоров были способны выполнять не больше одной инструкции за один такт, и это ограничение не создавало неудобств. Но со временем технология позволила делать всё более сложные чипы, и тогда для увеличения производительности стали «учить» процессор выполнять по нескольку инструкций за такт. Это свойство называется суперскалярностью. Но есть проблема: нельзя просто так запускать параллельно несколько операций, потому что среди них могут быть зависимости. Например, одна инструкция читает число из памяти в регистр, а следующая – инкрементирует полученное значение в регистре. Их можно запускать только последовательно, но в самих инструкциях нет информации об их взаимозависимости. Поэтому нужна специальная и сложная аппаратура, детектирующая зависимости и гарантирующая корректность исполнения инструкций «вне очереди».
Все современные x86-совместимые микропроцессоры – суперскалярные. Например, самые современные чипы на архитектуре Haswell выполняют до 8 операций за такт. Но объём аппаратуры анализа зависимостей для такого числа операций весьма велик, и поэтому чипы получаются сложными и «горячими».
Заметим, что речь идёт именно о микрооперациях RISC-ядра, а вовсе не об инструкциях x86, да ещё и на их вид наложены некоторые ограничения (например, арифметических операций и операций с памятью может быть не более половины от этого числа).
Процессоры архитектуры «Эльбрус» построены по принципу VLIW, или очень широкого командного слова (Very Large Instruction Word). Этот подход можно считать разновидностью RISC – коротких команд с фиксированным временем выполнения, с тем отличием, что каждая команда содержит не одну, а много элементарных операций (вплоть до 23-х). Загрузить такой широкий конвейер на 100% непросто, поэтому разработчики переложили выделение зависимостей и оптимизацию порядка выполнения команд на плечи компилятора.
И в самом деле: компилятор, запускающийся на этапе перевода программы, написанной на языке высокого уровня (или ассемблере), в машинные коды, обладает гораздо большими ресурсами, а также большим доступным временем (в разумных пределах, конечно), поэтому эффективность его работы может быть выше, чем у аппаратного блока анализа зависимостей. Используя алгоритмы, имеющие много независимых операций (и поэтому хорошо поддающиеся оптимизации), программист может получить производительность, заметно превосходящую предел возможностей процессора AMD/Intel, работающего на той же частоте. Кристалл процессора в результате получается проще и надёжнее, и потребляет меньшую мощность.
Объём написанного на сегодня кода в среде x86 столь велик, что игнорировать его не может себе позволить ни один, даже самый крупный, производитель процессоров. Компания Intel однажды смогла «провернуть» такой фокус, отказавшись от аппаратной поддержки процессоров 8080 и перейдя на новую на тот момент архитектуру 386, но суммарный объём существующего кода был тогда на несколько порядков меньше. Повторить этот смертельный трюк вряд ли удастся кому-либо в обозримом будущем, удел смельчака – узкоспециализированная ниша, занять которую он обречён в этом случае (ARM-процессоры, доминирующие на смартфонах, лучшее тому подтверждение).
ЧЕМ ЕЩЁ ИНТЕРЕСЕН «ЭЛЬБРУС»
Внутри процессор «Эльбрус» устроен следующим образом. Имеется 6 каналов исполнения операций, работающих параллельно, при этом до 4 каналов могут быть использованы для чтения из памяти и до 2 – для записи в память. Во всех 6 каналах можно исполнять целочисленные арифметико-логические операции, в 4 – операции с плавающей запятой. Каждый такт процессор может запустить по одной операции в каждый канал. У Эльбруса универсальный регистровый файл из 256 84-разрядных регистров; при этом есть отдельный регистровый файл для предикатов (однобитных значений) на 32 регистра. Имеется аппаратная поддержка циклов, в том числе с конвейеризацией, что повышает эффективность использования ресурсов процессора. Интересной особенностью Эльбруса является программируемое асинхронное устройство предварительной подкачки данных. У него есть встроенный буфер объемом 4 кБ для сокрытия задержек от доступа к памяти, и оно не задействует каналы исполнения операций, что позволяет освободить их для вычислний. Поддержка спекулятивных и условных (предикатированных) вычислений позволяет уменьшить число переходов и параллельно исполнять несколько ветвей программы. Широкая команда может при максимальном заполнении задавать в одном такте до 23-х операций (и более 33-х операций при упаковке операндов в векторные команды).
Чтобы более эффективно использовать возможности аппаратуры процессора, в компилятор введена поддержка Intrinsic-функций (это специальные аппаратно-зависимые функции, заменяющие отдельные ассемблерные инструкции и позволяющие избавиться от inline-ассемблера, т.к. его использование часто нежелательно или невозможно).
Также «Эльбрус» имеет несколько уникальных особенностей, выгодно отличающих его от зарубежных аналогов. Одна из них — специальное оборудование для работы в составе многопроцессорных систем. Это контроллер межъядерных взаимодействий и контроллер запросов MAU, передающий запросы от каждого из ядер в системный коммутатор, и контроллер когерентных сообщений, анализирующий запросы от коммутатора и передающий их нужным ядрам. В свою очередь, системный коммутатор осуществляет обслуживание абонентов согласно политике приоритетов, обеспечивая максимально возможную загрузку межпроцессорных линков, и независимость пакетных потоков между различными парами абонентов и независимость потоков командных пакетов различного типа друг от друга. Каждый кристалл имеет три канала межпроцессорного обмена, а также возможность работать в многопроцессорной системе с общей памятью – до 4 процессоров «Эльбрус-4С» в одной системе без дополнительных схем, и до 16 – с помощью выделенного чипа-коммутатора.
Обслуживание внешних интерфейсов организовано «классическим» способом – с помощью Контроллера Периферийных Интерфейсов (КПИ), играющего роль «южного моста». Он соединяется с процессором по выделенной шине с пропускной способностью 2 Гбит/с в каждую сторону и предоставляет как привычные всем PC-интерфейсы, так и специализированные интерфейсы для промышленного применения.
http://communitarian.ru/upload/medialibrary/6d4/6d4c1d56a83fcacb42d09fb871dd2929.jpg
Но самой важной особенностью процессора «Эльбрус» является обеспечение безопасности. В частности, не секрет, что некоторые системы могут оснащаться супервизором на основе BIOS, позволяющим осуществлять удалённые контроль и управление компьютером через сеть, а также перехват произвольных данных. Не только работа, но и само наличие такого супервизора не поддаются определению практически никакими современными средствами, так как его функционирование осуществляется на уровне микрокодов RISC-ядра. Если ПК приобретается для домашнего применения, подобными проблемами можно не «заморачиваться» – вас защищает факт несущественности ваших данных, которые просто никому не нужны.
Но даже в этом случае будет обидно, если кто-то за океаном нажмёт некую «красную кнопку», после чего ваш ПК превратится в бесполезную груду железа. Учитывая текущее обострение внешнеполитической ситуации, подобный сценарий не представляется таким уж невероятным.
А вот если вы собираете сеть для управления атомной электростанцией, или хотя бы металлургическим заводом, то даже самую малую возможность подобного развития событий желательно исключить в принципе. Конструируя парк ПК на основе «Эльбрус», заказчик получает всю техническую документацию, по которой можно проконтролировать отсутствие нежелательных модулей, и исходные тексты всего программного обеспечения, начиная от ОС, драйверов, и до приложений прикладного уровня.
Помимо этого, существуют отдельные аппаратные средства управлением безопасностью. Речь не только о брешах в системе Windows и прикладных программах (последние, впрочем, не сильно афишируются). Наиболее частая причина – ошибки переполнения буфера, позволяющие злоумышленнику запустить на атакуемой системе произвольный код. Причина кроется в общей памяти, позволяющей хранить и данные, и код. Ппопытки решить проблему предпринимаются, например, такие, как широко разрекламированный Execute Disable Bit в процессорах Intel (или его аналог – No eXecute Bit в процессорах AMD), но даже эта защита обходится «на раз-два».
Кроме того, неразделяемый стек – ахиллесова пята всех AMD/Intel систем. Вариант, предложенный МЦСТ, – защищённый режим исполнения программ. Работа в нём происходит только с инициализированными данными, все обращения в память проверяются на принадлежность к допустимому диапазону адресов, обеспечивается межмодульная защита. Для поддержки такого режима имеется компилятор C/C++ и библиотека runtime (libc). В этом режиме обнаруживается более 98% ошибок времени выполнения, которые не удаётся диагностировать другими способами. Это позволяет не только создавать устойчивый ко взлому код, но и заметно облегчает написание любых программ, поскольку многие ошибки программирования, которые в ином случае остались бы незамеченными и привели бы к нестабильной работе программы, здесь обнаруживают себя на уровне аппаратуры и вызывают прерывание.
Недостатком защищённого режима является снижение производительности примерно на 20%, что в отдельных случаях может быть нежелательно. Есть и другая проблема: практически весь существующий в среде open source код написан так, что использует приёмы программирования, не регламентированные стандартом языка Си. Поэтому запустить ядро ОС или приложения типа LibreOffice полностью в защищённом режиме пока что невозможно – и из-за стиля программирования, и из-за наличия в коде скрытых ошибок, которые придётся исправлять. Но можно запускать в защищённом режиме отдельные небольшие программы, наиболее критичные с точки зрения информационной безопасности, и они будут работать со стопроцентной надёжностью.
Даже в обычном, «незащищённом» режиме работы «Эльбруса», надёжность системы ко взлому значительно повышается, поскольку стек связующей информации (цепочка адресов возврата при процедурных вызовах) отделен в нём от стека пользовательских данных и недоступен из программного кода. Это заметно затрудняет такой популярный вид атаки, как подмена адреса возврата.
http://communitarian.ru/upload/medialibrary/0fa/0fa31cf630b946985a42c46b340106f5.jpg
ОФИСНЫЙ КОМПЬЮТЕР С СОБСТВЕННОЙ ОС
Эльбрус начал продавать персональный компьютер АРМ Эльбрус-401 в корпусе Mini-Tower в прошлом месяце с перечнем, казалось бы, современных спецификаций: Gigabit Ethernet, SATA 2.0, IDE, USB 2.0, RS-232, DVI, даже слот x16 PCI Express, где можно разместить графический чип AMD Radeon 6000. Но его основной микропроцессор всё же снижает возможности всей системы.
При этом производитель представляет данную модель как простой офисный компьютер. Основной средой выполнения прикладных программ на системе «Эльбрус» служит ОС «Эльбрус», являющаяся доработанной разновидностью ОС Linux с ядром 2.6.33, скомпилированной целиком из общедоступных исходников. Хотя это ядро является достаточно старым, оно поддерживает работу подавляющего большинства современных библиотек, кроме того, полным ходом идёт адаптация для ОС нового ядра 3.10.
Чтобы обеспечить работу существующих приложений на процессоре «Эльбрус», применяется механизм двоичной трансляции 64-разрядных кодов компаний Intel и AMD. Он существует в 2 вариантах: уровня системы и уровня приложений. Первый из них начинает работу сразу после включения питания, с загрузкой в память компактного транслятора, хранящегося в микросхеме флеш-памяти, расположенной на системной плате. При этом для всех загружаемых позже программ, включая ОС, процессор становится неотличим от любого x86-совместимого процессора, позволяя запускать хоть Windows, хоть Mac OS, хоть Linux, или любую другую операционную систему, например, такую экзотическую, как Колибри ОС, или IBM OS/2.
ПК поставляется в комплекте с несколькими программными пакетами с открытыми исходными кодами: LibreOffice, Firefox, Sylpheed, Linphone и GIMP.
В настоящее время персональные компьютеры Эльбрус остаются диковинкой. Вполне вероятно, что они никогда не отправятся за пределы России-матушки, а если это произойдёт, то пока в полной мере все же не смогут конкурировать с современными процессорами американских производителей AMD и Intel.
ПЕРСПЕКТИВНЫЕ СЕРВИСНЫЕ ПРОЦЕССОРЫ
Очередная порция бредятины для стада.
Умничка, дегенерат! Сходи в кассу, получи пару шекелей.
ну ты даёшь!!!
Есть совет для таких как ты – прочитай ещё раз – если опять не поймёшь – прочитай ещё раз.
Ну а если совсем ну никак – тогда извини.
Я например всё понял.
кстати я работал в итм и вт и видел БОРИСА БАБАЯНА.