@Filipp42

Почему не выпускают процессоры на архитектуре виртуальной машины Java?

Я уже давно задаюсь вопросом, почему создают Байкалы, Эльбрусы и так далее. Почему нельзя просто реализовать в железе JVM, ведь для неё написано уже столько кода, компиляторов, всего такого?
  • Вопрос задан
  • 454 просмотра
Пригласить эксперта
Ответы на вопрос 5
1. А сборщик мусора и всё Java API тоже на уровне железа будешь реализовывать?
2. Что будешь делать, когда выйдет новая версия Java? Отказываться от нового софта? Отказываться от старого софта и переходить на новый железный процессор?
3. Что будешь делать со всем тем ПО, которое не для JVM создано?
4. Уверен ли ты, что сможешь создать аппаратную реализацию java-машины, которая будет эффективнее, чем классический процессор и JIT?
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Ну... это противоречит идее Java. Платформа ведь создавалась чтобы быть общим знаменателем для десятков аппаратных платформ для встраиваемой бытовой техники. Такая была идея по крайней мере.

И практика платформ показала что поменять софт в 1000 раз дешевле чем поменять оборудование.

UPD: Вот вики описывает 6 попыток реализовать Java-процессор в железе
https://en.wikipedia.org/wiki/Java_processor (3 исследовательских и 3 коммерческих продукта)
надо читать и разбираться что они сделали.
В каком статусе? Используется щас или нет?
Ответ написан
@rPman
Говорят внутри процессоры от intel и amd что то типа RISC (так было во времена intel pentium pro возможно и сейчас), но через биос или на заводе в процессор заливается прошивка, которая на лету преобразовывает команды x86 архитектуры в железную.

Так вот, если компании перестанут жаждать монополии (чего пока наша цивилизация не вылечится не будет), вполне возможно создание такой прошивки в том числе и для java vm. Что то мне говорит что скорость выполнения такого кода будет значимо выше чем через промежуточное представление x86 с тяжелым легаси.

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

Кстати одним из неплохих шагов к высокой производительности было бы стандартизация и популяризация FPGA решений с открытыми/доступными решениями по генерации прошивки для них, представьте типовые компиляторы, которые бы под вашу программу генерировали бы целые блоки, позволяющие бы параллельно проходить огромные подветви алгоритмов, да просто представьте создание специализированных инструкций под задачу? Но к сожалению сейчас это выглядит так - купи процессор с платой управления за десятки тысяч баксов, потом купи лицензию за не меньшее количество баксов и подпиши NDA и только тогда пользуйся opencl который универсально соберется в т.ч. для fpga.
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
такая дребедень уже создана :)
как минимум у вас есть 5-6 таких штук
https://en.wikipedia.org/wiki/Java_Card

И вот еще
https://en.wikipedia.org/wiki/Java_processor
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
Практически нет смысла.
Операционной системы на джава нет, и джава не сильно удачный выбор для системного программирования.
Было много инвестигейшенов о создании процессоров с хардварной поддержкой языков высокого уровня, но делать процессор который выполняет высокоуровневый код бессмысленно.
Немного проще внедрять поддержку отдельных фич для ускорения, но даже в этом уровне производителю выгоднее внедрять поддержку фич общего назначения (видео/аудио декодинг, шифрование, операции с плавающей запятой и др.).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы