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



@Filipp42

Я уже давно задаюсь вопросом, почему создают Байкалы, Эльбрусы и так далее. Почему нельзя просто реализовать в железе JVM, ведь для неё написано уже столько кода, компиляторов, всего такого?


Решения вопроса 0


Ответы на вопрос 5



@vabka

1. А сборщик мусора и всё Java API тоже на уровне железа будешь реализовывать?
2. Что будешь делать, когда выйдет новая версия Java? Отказываться от нового софта? Отказываться от старого софта и переходить на новый железный процессор?
3. Что будешь делать со всем тем ПО, которое не для JVM создано?
4. Уверен ли ты, что сможешь создать аппаратную реализацию java-машины, которая будет эффективнее, чем классический процессор и JIT?



@mayton2019

Ну… это противоречит идее 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

такая дребедень уже создана 🙂
как минимум у вас есть 5-6 таких штук
https://en.wikipedia.org/wiki/Java_Card

И вот еще
https://en.wikipedia.org/wiki/Java_processor



@saboteur_kiev

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *