Роман Артемьев и Сергей Андреенко — Особенности реализации Java на процессоре «Эльбрус»

Роман Артемьев и Сергей Андреенко, Унипро — Особенности реализации Java на процессоре «Эльбрус»
Конференция JBreak 2016
Новосибирск, 19.03.2016

Процессор «Эльбрус» — российский процессор VLIW-архитектуры с повышенными требованиями к безопасности. JVM — сложная динамичная система, которая подразумевает определенную свободу в реализации и исполнении. Эти вещи всегда вступают в противоречие друг с другом.

В докладе я расскажу про:

— особенности архитектуры и принципиальные отличия от x86,
— портирование OpenJDKZero и реализации LLVMбэкенда для Эльбруса,
— разработку VLIWкодогенератора, способного работать в условиях JITкомпилятора,
— «сращивание» кодогенератора и Optoкомпилятора,
— сборку мусора «напрямую» в регистрах процессора,
— обработку исключений и деоптимизацию при закрытых адресах возврата,
— неявные проверки границ массивов, а также про многое другое.

В результате слушатели узнают про подходы и нетривиальные решения, которые были применены при портировании JVM под «экзотическую» архитектуру, про то, каким образом использование, казалось бы, незначительных особенностей архитектуры может дать куда большее ускорение, нежели различные классические оптимизации, а также почему все говорят, что Эльбрус медленный, и насколько это является правдой.