Gibt es eine CPU, die Java im Mikrocode ausführt? [geschlossen]

7

Java ist eine wunderschön gestaltete OO-Sprache, aber das erste, was mir aufgefallen ist, ist, wie langsam es ist (im Vergleich zu C ++). Dies liegt wahrscheinlich daran, dass eine andere Übersetzungsschicht (die VM) durchlaufen werden muss, anstatt direkt im nativen Mikrocode der CPU ausgeführt zu werden.

Meine Frage: Kennen Sie irgendwelche Versuche, Java-spezifische CPUs zu erstellen, die Java nativ ausführen, ohne die software-implementierte VM zu benötigen?

    
Android Eve 05.12.2010, 14:55
quelle

4 Antworten

17

Sun hat vor etwa zehn Jahren den picoJava Prozessor entwickelt, aber es ging nie irgendwohin - dafür gab es keinen Markt Die Zeit und moderne VMs machen das Konzept ziemlich sinnlos.

Dann ist da noch die junge Architektur von ARM Jazelle .

    
skaffman 05.12.2010, 15:02
quelle
5

Azul Systems entwickelt Systeme von Grund auf mit Java (Java) im Hinterkopf, einschließlich hardwaregestützter Speicherbereinigung.

Es gibt auch GCJ zum Kompilieren von Java in nativen Code, obwohl es keine vollständige Implementierung von Java ist.

    
David Winslow 05.12.2010 15:15
quelle
5

Die einzige Referenz, die ich bisher zu diesem Rätsel gefunden habe, ist der folgende Artikel:

Ссылка

Während ich anfänglich interessiert war, zuerst zu wissen, ob es Java-CPUs gibt und was sie sind, wirft dieser Thread ein wenig Licht auf warum ich noch nichts davon gehört habe (bis ich die gelernten Antworten gelesen habe Hier). Der letzte Kommentar von Alex Besogonov scheint die beste Erklärung zu sein:

  

Java-Bytecode ist NICHT zur Ausführung geeignet   auf echter Hardware. Es ist Stack-basiert, also   Pipelining geht aus dem Fenster. Im   Theorie kann man on-the-fly machen   Übersetzung von Stack-basiert zu   Register-basierte Maschine, aber es wird   erfordern eine Menge von Transistoren.

     

Also in Wirklichkeit ist es IMMER mehr   effektiv JIT-kompilieren Java-Bytecode   und dann auf einer gemeinsamen CPU ausführen. Dort   ist eine Ausnahme JVMs für Low-Power   Geräte, bei denen die Geschwindigkeit der Hardware   JVM ist kein Problem (erinnere dich an Forth   CPUs).

     

Natürlich kann Hardware noch liefern   einige Funktionen, um JVMs zu beschleunigen. Mögen   Hardware-unterstützte Weiterleitungszeiger   die erlauben, schnelle Realzeit zu verursachen   pausenlosen GC verdichten (ich vermute Azul   Hardware hat diese Unterstützung).

Das ist sehr interessant. Vielen Dank für Ihre Antworten.

    
Android Eve 05.12.2010 15:03
quelle
0

Vielleicht möchten Sie JOP

ausprobieren

Es ist Open Source und Sie können es auf Ihrer eigenen Hardware versuchen.

    
xybrek 11.02.2013 11:52
quelle

Tags und Links