Нововведение в редакторе. Вставка постов из Telegram

Опубликована система команд микропроцессоров «Эльбрус»

6 1655

На сайте АО «МЦСТ» появилась новость о доступности руководства по эффективному программированию на платформе Эльбрус; в нём также содержится глава с описанием системы команд «Эльбрус», ранее не публиковавшейся. Книга выпущена под лицензией Creative Commons (CC-BY 4.0) в форматах HTML (архив) и PDF; для удобства чтения HTML выложен мною в развёрнутом виде.

По сути это второй день рождения архитектуры «Эльбрус» — хотя и первый был в некотором смысле сразу двойным, ведь начало разработке было положено в семидесятых годах, уже после рокового правительственного решения 1967 года закрыть все существовавшие тогда в СССР линии развития отечественных ЭВМ и сосредоточиться на клонировании западной аппаратуры ради возможности копировать программное обеспечение.

Возможность понять особенности системы команд машины важна для любого профессионального программиста, не только «системщика»: по сути это возможность более вдумчиво оптимизировать даже обычные прикладные программы и библиотеки — простой, казалось бы, порядок обхода матрицы может сильно повлиять на зависимости по данным и конвейеризации циклов (за этим термином скрывается задействование возможностей параллельной обработки инструкций современными микропроцессорами, что на x86 началось с Pentium). Это особенно нужно для мультимедиа-кодеков, программ сжатия и шифрования данных, а также во многих других областях применения вычислительных алгоритмов.

Тем не менее исторически система команд вычислительных комплексов «Эльбрус» была закрытой и не документированной публично, поскольку эти машины активно применялись в военных системах и засекречивание всего и вся затронуло и их; при этом вторая линейка процессоров разработки МЦСТ (например, R500) начиналась как раз с открытой Sun Microsystems системы команд SPARC v8.

Соответственно единственным возможным разработчиком компиляторов под «Эльбрус» были сами создатели платформы; это и хорошо в плане взаимной оптимизации аппаратуры и средств разработки, и плохо в плане ограниченности ресурсов и необходимости отслеживать как более новые стандарты языков, так и получившие распространение расширения популярных компиляторов (в первую очередь GCC). Например, LCC 1.24 «умеет» C, C++ и Fortran, но трансляторы языков вроде Go, Rust, Objective C или D на его базе недоступны.

Стоит отметить, что в данный момент известны как документированные, но закрытые системы команд (x86, ARM, POWER), так и несколько открытых, доступных для воспроизведения силами сторонних компаний (SPARC, OpenRISC, RISC-V). Есть и пограничные случаи — например, отечественный процессор BE-T1000 (ранее «Байкал-Т1») построен на лицензированной системе команд MIPS (точнее, MIPS32r5 LE), следующая ревизия которой, r6, была положена в основу проекта MIPS Open, но затем вновь оказалась закрытой вместе с этим проектом в силу финансовых затруднений западной компании-владельца.

Сами программные наработки МЦСТ под «Эльбрус» пока остаются под соглашением о неразглашении, что не даёт частным лицам возможности приобретать такие компьютеры (хотя ИП уже её имеют); надеемся, публикация исходных кодов под соответствующими лицензиями будет давно ожидаемым следующим шагом к широкому распространению платформы в стране и мире.

Тем временем новое поколение разработчиков уже имеет материал для самообразования по актуальной и перспективной теме отечественной вычислительной техники; будем надеяться, что молодые таланты смогут применить полученные знания не только в рамках особых мероприятий (как ярославская «ПроеКТОриЯ»), а и в повседневной жизни — на домашнем и рабочем компьютере.

PS: новость традиционно отправлена с «Эльбруса» — двухместной 801-РС :)


shigorin©

Задержан нелегальный мигрант Азербайджана Шахин Аббасов убивший русского парня Кирилла Ковалёва в Москве

Кстати, азербайджанского убийцу задержали в Ростовской области. Говорят что бежал к границе. Скоро суд отправит его в СИЗО. Следственный комитет публикует фото двоих соучастников убийства Ки...

Израиль против всех, все против Израиля

Первый зампостпреда РФ при ООН Дмитрий Полянский отчитался в телеграм-канале: «Совет Безопасности ООН проголосовал по членству Палестины в ООН: 12 — за; 2 — воздержались (Велико...

Обсудить