Please use this identifier to cite or link to this item: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/14034
Title: Υλοποίηση Επεξεργαστή Java
Authors: Ισίδωρος Σιδερής
Πεκμεστζή Κιαμάλ
Keywords: εικονική μηχανή java
επεξεργαστής java
embedded java
hardware
java bytecodes
αντικειμενοστρεφής
picojava
ajile
stack based isa
class files
static linking
pipeline
Issue Date: 12-Jul-2004
Abstract: Η Java έχει γίνει γνωστή για την ανεξαρτησία της από την πλατφόρμα και την παρεχόμενη ασφάλεια. Επιπλεόν, το απλό μοντέλο αντικειμένων που έχει, διευκολύνει τον προγραμματισμό και μειώνει δραστικά τον χρόνο υλοποιήσης ενός project.Αυτό που κάνει τη java μεταφέρσιμη, είναι ότι το αποτέλεσμα της μεταγλώττισης ενός προγράμματος δεν είναι ένα αρχείο γλώσσας μηχανής ενός συγκεκριμένου επεξεργαστή. Αντιθέτως, είναι ένα αρχείο γλώσσας μηχανής μίας εικονικής μηχανής, της εικονικής μηχανής java (Java Virtual Machine). Τα προγράμματα java μπορούν να τρέχουν οπουδήποτε υπάρχει μία υλοποίηση αυτής της μηχανής.Η ύπαρξη μίας εικονικής μηχανής κάνει την εκτέλεση ενός προγράμματος πιο αργή. Κι αυτό γιατί τα java bytecodes (εντολές γλώσσας μηχανής java) χρειάζεται να μετατρέπονται σε εντολές του οικείου επεξεργαστή.Υπάρχουν πολλοί τρόποι για να καταπολεμηθεί αυτό το φαινόμενο. Η πιο αποδοτική λύση είναι αυτή του επεξεργαστή java. Αντί να έχουμε μετατροπή των java bytecodes, υλοποιούμε έναν επεξεργαστή που τα υλοποιεί απ' ευθείας σε hardware. Επιπρόσθετα, η λύση αυτή μας δίνει τη δυνατότητα να ενσωματώσουμε την τεχνολογία java και στο χώρο των embedded συστημάτων. Οι περιορισμένοι πόροι στα embedded συστήματα καθιστούν αδύνατη την υλοποιήση μίας εικονικής μηχανής java σε software. Στόχος της διπλωματικής αυτής είναι η σχεδίαση ενός επεξεργαστή java. Το specification της εικονικής μηχανής java μας αφήνει μεγάλη ευελιξία. Δεν υπάρχουν αυστηροί περιορισμοί ούτε καθοδηγήσεις για την εσωτερική δομή της εικονική μηχανής. Έτσι, πρέπει να πάρουμε πολλές σχεδιαστικές αποφάσεις.Όσον αφορά το επίπεδο μικροαρχιτεκτονικής του επεξεργαστή java, έχουμε ένα απλό datapath με ένα pipeline 5 σταδίων. Λόγω της διαφορετικής πολυπλοκότητας των εντολών, τις υλοποιούμε όλες με χρήση μικροπρογραμματισμού. Οι απλές εντολές θα παίρνουν 1 ή 2 κύκλους, ενώ οι πιο σύνθετες, όπως αυτές που κάνουν αντικειμενοστρεφείς λειτουργίες, μπορεί να παίρνουν πολύ περισσότερους.Στο κεφάλαιο 1 αναφερόμαστε γενικά στην εικονική μηχανή java. Την βλέπουμε σαν μία αφηρημένη μηχανή που ορίζεται από κάποιο specification.Στο κεφάλαιο 2 μελετάμε τη δυνατότητα χρησιμοποίησης της java σε embedded συστήματα, και μελετάμε την υλοποιήση της σε hardware. Αναφερόμαστε συνοπτικά και στην δική μας λύση.Στο κεφάλαιο 3 παρουσίαζουμε την μορφή και την οργάνωση των runtime περιοχών δεδομένων: της στοίβας, του σωρού και της method area. Η method area είναι η περιοχή όπου βρίσκονται αποθηκευμένες οι runtime αναπαραστάσεις των κλάσεων. Ως απλοποίηση, φορτώνουμε όλες τις κλάσεις πριν την εκτέλεση. Ένα πρόγραμμα που κάνει αυτή τη διαδικασία περιγράφεται στο παράρτημα A.Στο κεφάλαιο 4 αναλύουμε όλες τις εντολές της εικονικής μηχανής java που θα υλοποιηθούν. Η ανάλυση των εντολών γίνεται με βάση την μορφή των runtime περιοχών δεδομένων που επιλέχθηκε. Στο παράρτημα C περιγράφεται ένας προσομοιωτής του instruction set, ενώ το παράρτημα F περιέχει λίστα με τις εντολές που υποστηρίχθηκαν.Στο κεφάλαιο 5 παρουσιάζουμε το επίπεδο μικροαρχιτεκτονικής του επεξεργαστή java. Το παράρτημα D περιέχει την περιγραφή του επεξεργαστή σε VHDL, ενώ το παράρτημα E περιέχει μία προσομοίωση αυτού.Στο κεφάλαιο 6 μελετάμε υπάρχοντες επεξεργαστές java, ενώ στο κεφάλαιο 7 αναφερόμαστε στις δυνατότητες επέκτασης της δικής μας λύσης.
URI: http://artemis-new.cslab.ece.ntua.gr:8080/jspui/handle/123456789/14034
Appears in Collections:Διπλωματικές Εργασίες - Theses

Files in This Item:
File SizeFormat 
DT2004-0072.doc9.98 MBMicrosoft WordView/Open


Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.