Μελέτη και προσομοίωση του απλού επεξεργαστή xr16

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μελέτη και προσομοίωση του απλού επεξεργαστή xr16"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μελέτη και προσομοίωση του απλού επεξεργαστή xr6 Πτυχιακή Εργασία της Ζήση Χριστίνας (ΑΕΜ: 896) Επιβλέπουσα: Επίκουρη Καθηγήτρια κα Μήλιου Αμαλία ΘΕΣΣΑΛΟΝΙΚΗ ΟΚΤΏΒΡΙΟΣ 28

2 Πρόλογος Στην παρούσα εργασία υλοποιήθηκε η μελέτη και προσομοίωση του επεξεργαστή xr6 ο οποίος χρησιμοποιεί αρχιτεκτονική ομάδας εντολών τύπου RISC και διαχειρίζεται δεδομένα και εντολές μεγέθους 6 bit. Τα δεδομένα τα οποία επεξεργάζεται είναι ακέραιοι προσημασμένοι ή μη προσημασμένοι αριθμοί μεγέθους 6 bit. Ο επεξεργαστής xr6 είναι ενσωματωμένος στο σύστημα απλού υπολογιστή XSOC το οποίο είναι βασισμένο στην τεχνολογία SoC (System on a Chip). Ζήση Χριστίνα 9 Οκτωβρίου 28 -i-

3 Περιεχόμενα ΠΡΌΛΟΓΟΣ...I ΠΕΡΙΕΧΌΜΕΝΑ...II ΕΙΣΑΓΩΓΉ... 2 ΚΕΝΤΡΙΚΉ ΜΟΝΆΔΑ ΕΠΕΞΕΡΓΑΣΊΑΣ ΙΣΤΟΡΙΚΉ ΑΝΑΔΡΟΜΉ ΑΠΑΙΤΉΣΕΙΣ ΑΠΌ ΤΗΝ ΚΕΝΤΡΙΚΉ ΜΟΝΆΔΑ ΕΠΕΞΕΡΓΑΣΊΑΣ ΤΑ ΕΣΩΤΕΡΙΚΆ ΜΈΡΗ ΤΗΣ ΚΕΝΤΡΙΚΉΣ ΜΟΝΆΔΑΣ ΕΠΕΞΕΡΓΑΣΊΑΣ ΕΝΤΟΛΈΣ ΟΙ ΑΡΧΙΤΕΚΤΟΝΙΚΈΣ ΤΩΝ ΟΜΆΔΩΝ ΕΝΤΟΛΏΝ Η ΑΡΧΙΤΕΚΤΟΝΙΚΉ RISC Σωλήνωση εντολών... 4 ΔΙΆΤΑΞΗ ΠΥΛΏΝ ΠΡΟΓΡΑΜΜΑΤΙΖΌΜΕΝΟΥ ΠΕΔΊΟΥ - FPGA ΙΣΤΟΡΙΚΉ ΑΝΑΔΡΟΜΉ ΕΦΑΡΜΟΓΈΣ ΑΡΧΙΤΕΚΤΟΝΙΚΉ ΑΠΑΙΤΉΣΕΙΣ ΤΎΠΟΙ FPGA ΠΡΟΓΡΑΜΜΑΤΙΖΌΜΕΝΑ ΑΠΌ SRAM Στοιχεία λογικής Διασύνδεση στοιχείων λογικής Διαμόρφωση συστήματος PLATFORM FPGA ΜΕΛΈΤΗ ΤΟΥ XSOC - ΑΡΧΙΤΕΚΤΟΝΙΚΉ ΤΗΣ ΟΜΆΔΑΣ ΕΝΤΟΛΏΝ ΤΟ ΑΡΧΕΊΟ ΚΑΤΑΧΩΡΗΤΏΝ Ο ΜΕΤΡΗΤΉΣ ΠΡΟΓΡΆΜΜΑΤΟΣ Η ΜΝΉΜΗ Η ΟΜΆΔΑ ΕΝΤΟΛΏΝ η υποομάδα : rrr [register register register] ii-

4 η υποομάδα : rri [register register immediate] η υποομάδα : rr [register register] η υποομάδα : ri [register immediate] η υποομάδα: i2 [immediate:] η υποομάδα: br [branch] ΜΕΛΈΤΗ ΤΟΥ XSOC - Ο ΕΠΕΞΕΡΓΑΣΤΉΣ XR ΤΑ ΕΞΩΤΕΡΙΚΆ ΣΉΜΑΤΑ ΤΟΥ ΕΠΕΞΕΡΓΑΣΤΉ Η ΔΙΑΔΡΟΜΉ ΔΕΔΟΜΈΝΩΝ Η μονάδα εκτέλεσης της διαδρομής δεδομένων Ο Πολυπλέκτης αποτελεσμάτων Η Μονάδα διευθυνσιοδότησης / μετρητή προγράμματος Η ΜΟΝΆΔΑ ΕΛΈΓΧΟΥ (CONTROL UNIT) CTRL Σχεδίαση της Μονάδας Ελέγχου Control FSM Το στάδιο της αποκωδικοποίησης Το στάδιο της εκτέλεσης Τα εξωτερικά σήματα της μονάδας ελέγχου Εκτέλεση με διοχέτευση Διακλαδώσεις Διακοπές Προσπελάσεις της μνήμης ΕΚΤΈΛΕΣΗ ΠΡΆΞΗΣ ΣΤΟΝ XR ΕΠΊΛΟΓΟΣ...86 ΒΙΒΛΙΟΓΡΑΦΊΑ iii-

5 Εισαγωγή Ένας ψηφιακός υπολογιστής είναι ένα διασυνδεδεμένο σύστημα επεξεργαστών, μνημών και συσκευών εισόδου εξόδου[]. Το σύνολο των στοιχείων τα οποία ορίζουν τη λογική εκτέλεση ενός προγράμματος σε έναν υπολογιστή καθορίζουν την αρχιτεκτονική του. Ο τρόπος με τον οποίο υλοποιούνται οι αρχιτεκτονικές προδιαγραφές, δηλαδή η αναλυτική μελέτη του τρόπου με τον οποίο διασυνδέονται όλα τα μέρη υλικού και των περιφερειακών, οι λεπτομέρειες σχεδίασης τους, τα σήματα ελέγχου που ανταλλάσσουν, και η τεχνολογία της μνήμης που χρησιμοποιείται είναι αυτά τα χαρακτηριστικά τα οποία περιγράφουν τον τρόπο οργάνωσης του υπολογιστή. Παραδείγματα αρχιτεκτονικών χαρακτηριστικών περιλαμβάνουν το σύνολο των εντολών, το σύνολο των bit που χρησιμοποιούνται για την αναπαράσταση διαφόρων τύπων δεδομένων (πχ αριθμούς ή χαρακτήρες), τους μηχανισμούς εισόδου/ εξόδου (Ι/Ο), και τις τεχνικές διευθυνσιοδότησης μνήμης. Τα χαρακτηριστικά οργάνωσης είναι περιλαμβάνουν εκείνες τις λεπτομέρειες του υλικού μέρους του υπολογιστή οι οποίες είναι αόρατες στον προγραμματιστή, όπως είναι τα σήματα ελέγχου, οι διασυνδέσεις μεταξύ του υπολογιστή και των περιφερειακών του και η τεχνολογία μνήμης[2]. Στην παρούσα εργασία υλοποιήθηκε η μελέτη της αρχιτεκτονικής και της οργάνωσης ενός απλού επεξεργαστή καθώς και η προσομοίωση της λειτουργίας του. Η όλη διαδικασία της προσομοίωσης του επεξεργαστή έγινε με χρήση των εργαλείων της Xilinx Foundation 4.[3]. Ο απλός επεξεργαστής αποτελεί τμήμα του υπολογιστή XSOC τον οποίο σχεδίασε και υλοποίησε ο Jan Gray και το ίδρυμα Gray Research LLC [4] για εκπαιδευτικούς σκοπούς. Επίσης υλοποιήθηκε η μελέτη και ανάλυση των τεχνολογιών των ψηφιακών κυκλωμάτων βάσει των οποίων σχεδιάστηκε ο εν λόγω υπολογιστής καθώς η τεχνολογία των ψηφιακών κυκλωμάτων έχει πρωτεύοντα ρόλο στην ανάπτυξη της επιστήμης της υλοποίησης ψηφιακών συστημάτων. Η διάρθρωση της παρούσας πτυχιακής εργασίας ανά κεφάλαιο έχει ώς εξής: Στο o κεφάλαιο γίνεται μια σύντομη εισαγωγή του αντικειμένου της εργασίας. Στο 2o κεφάλαιο περιγράφονται οι κύριες λειτουργίες μιας Κεντρικής Μονάδας Επεξεργασίας καθώς και κάποια ιστορικά στοιχεία. Επίσης, γίνεται περιγραφή των συστατικών μερών μιας Κεντρικής Μονάδας Επεξεργασίας. --

6 Στο 3ο κεφάλαιο περιγράφονται τα βασικά χαρακτηριστικά της αρχιτεκτονικής ομάδων εντολών (Instruction Set Architectures ISAs) την οποία χρησιμοποιεί ο επεξεργαστής του XSOC. Το 4ο κεφάλαιο αφορά την τεχνολογία Διατάξεων Πυλών Προγραμματιζόμενου Πεδίου (FPGAs). Γίνεται μια συνοπτική ιστορική αναφορά και αναπτύσσονται τα πεδία εφαρμογών της εν λόγω τεχνολογίας. Επίσης, μελετώνται η αρχιτεκτονική και οι απαιτήσεις τους. Μελετώνται πιο αναλυτικά τα FPGA προγραμματιζόμενα από SRAM και γίνεται αναφορά στα Platform FPGA. Στο 5ο κεφάλαιο αναπτύσσεται η περιγραφή της αρχιτεκτονικής της ομάδας εντολών του XSOC, το αρχείο καταχωρητών του καθώς και η ομάδα εντολών τις οποίες εκτελεί. Δηλαδή, δίνονται το σύνολο των ορατών στον προγραμματιστή καταχωρητών, οι διάφορες μορφές που μπορεί να έχει μια εντολή που αυτός είναι σε θέση να εκτελέσει και επίσης οι τρόποι διευθυνσιοδότησης που αυτός υποστηρίζει. Στο 6ο κεφάλαιο γίνεται εκτεταμένη περιγραφή στον τρόπο λειτουργίας του επεξεργαστή xr6 ο οποίος είναι ο επεξεργαστής του συστήματος XSOC, ανάλυση των μερών του, περιγραφή της οργάνωσης του καθώς και παρουσίαση, σχολιασμός και ανάλυση των αποτελεσμάτων της προσομοίωσης. -2-

7 2 Κεντρική Μονάδα Επεξεργασίας Η κύρια λειτουργική μονάδα του υπολογιστή είναι η Kεντρική Μονάδα Επεξεργασίας (Central Processing Unit CPU) ή απλά επεξεργαστής και αποτελεί το ζωτικό όργανο του υπολογιστή. Μία CPU που κατασκευάζεται χρησιμοποιώντας ολοκληρωμένα κυκλώματα είναι γνωστή ως μικροεπεξεργαστής. Από τα μέσα της δεκαετίας του 97, οι μικροεπεξεργαστές έχουν αντικαταστήσει, σχεδόν εξ' ολοκλήρου, όλους τους άλλους τύπους επεξεργαστών. Αυτός είναι ο λόγος για τον οποίο σήμερα ο όρος επεξεργαστής εκφράζει συνήθως ένα ορισμένο τύπο μικροεπεξεργαστή. Οι σύγχρονοι υπολογιστές περιέχουν εκατομμύρια στοιχειωδών ηλεκτρονικών εξαρτημάτων. Ως εκ τούτου, για να επιτευχθεί η αναλυτική περιγραφή τους είναι απαραίτητο να τηρηθεί η ιεραρχική φύση των σύνθετων αυτών συστημάτων, κάνοντας έτσι χρήση της ιδιότητας των συστημάτων να αποτελούνται σε κάθε επίπεδο από ένα σύνολο εξαρτημάτων και διασυνδέσεων μεταξύ τους. Η συμπεριφορά σε κάθε επίπεδο εξαρτάται από τη δομή και τη λειτουργία του κατωτέρου επιπέδου. Χρησιμοποιώντας αυτή την ιδιότητα, και ακολουθώντας μεθόδους «από πάνω προς τα κάτω» (top- down) ή «από κάτω προς τα πάνω» (down- top) επιτυγχάνεται η μελέτη και η περιγραφή του συστήματος. 2. Ιστορική αναδρομή Η ορολογία «Kεντρική Mονάδα Eπεξεργασίας» είναι, σε γενικούς όρους, η περιγραφή ενός συγκεκριμένου τύπου λογικών μηχανών που μπορούν να εκτελούν σύνθετα προγράμματα υπολογιστή. Αυτός ο ευρύς ορισμός μπορεί εύκολα να εφαρμόζεται σε πολλούς παλαιότερους υπολογιστές, που υπήρχαν πολύ πριν ο όρος χρησιμοποιηθεί σε ευρεία κλίμακα. Ωστόσο, ο όρος αυτός χρησιμοποιείται στη βιομηχανία υπολογιστών τουλάχιστον από τις αρχές της δεκαετίας του 96. Η μορφή, το σχέδιο και η εφαρμογή των επεξεργαστών άλλαξαν έντονα από τα πρώτα - παλαιότερα παραδείγματα, αλλά η λογική της λειτουργίας τους έχει παραμείνει σε μεγάλο βαθμό η ίδια[5]. Οι παλαιότεροι επεξεργαστές ήταν ειδικά σχεδιασμένοι έτσι ώστε να αποτελούν μέρος ενός μεγαλύτερου, συνήθως μοναδικού στο είδος του, υπολογιστή. Ωστόσο, αυτή -3-

8 η ακριβή μέθοδος σχεδιασμού εξειδικευμένων επεξεργαστών για μία ειδική εφαρμογή έδωσε σε μεγάλο βαθμό τη θέση της στην ανάπτυξη μη ακριβών και συγκεκριμένων τύπων επεξεργαστών που είναι κατάλληλοι για έναν ή περισσότερους σκοπούς. Αυτή η τάση τυποποίησης ξεκίνησε αρχικά κατά την εποχή των διακριτών τύπων τρανζίστορ και έχει εξαπλωθεί γρήγορα με την ευρεία εφαρμογή των ολοκληρωμένων κυκλωμάτων. Η τεχνολογία των ολοκληρωμένων κυκλωμάτων επέτρεψε να σχεδιάζονται και να κατασκευάζονται αυξανόμενα σύνθετοι επεξεργαστές σε πολύ μικρό χώρο (της τάξης των milimeters). Τόσο η σμίκρυνση όσο και η τυποποίηση των επεξεργαστών αύξησε την παρουσία αυτών των ψηφιακών κυκλωμάτων στη σύγχρονη ζωή. 2.2 Απαιτήσεις από την Κεντρική Μονάδα Επεξεργασίας Ο επεξεργαστής είναι η κύρια λειτουργική μονάδα του υπολογιστή και συχνά παρομοιάζεται με τον εγκέφαλο του υπολογιστικού συστήματος. Αυτό σημαίνει πως είναι υποχρεωμένη να εκτελεί σωστά ένα σύνολο ενεργειών προκειμένου το συνολικό σύστημα να λειτουργεί ορθά. Οι απαιτήσεις που τίθενται σε έναν επεξεργαστή είναι[2]: Η ανάκτηση εντολών (instruction fetch): Ο επεξεργαστής διαβάζει μια εντολή που βρίσκεται αποθηκευμένη στην κύρια μνήμη. Ένα σύνολο εντολών αποτελεί ένα πρόγραμμα, οπότε ο επεξεργαστής είναι αρμόδιος να εκτελεί προγράμματα ανακαλώντας εντολές, εξετάζοντας τες, και στη συνέχεια εκτελώντας τες, τη μια μετά την άλλη. Η ανάκτηση δεδομένων (data fetch): προκειμένου να εκτελεστεί μια εντολή που επεξεργάζεται δεδομένα από τη μνήμη ή από κάποια μονάδα Ι/Ο απαιτείται η ανάκτηση των δεδομένων από τις συσκευές αυτές. Επεξεργασία δεδομένων: αφορά την εκτέλεση αριθμητικών και λογικών πράξεων επί των δεδομένων. Εγγραφή δεδομένων (write data): αποτελεί τη διαδικασία αποθήκευσης των δεδομένων ή των αποτελεσμάτων των πράξεων στην κύρια μνήμη ή της εγγραφής τους σε μονάδα Ι/Ο. Εντολή διακοπής (interrupt): η εντολή εκτελείται για να διακόψει τη γραμμική εκτέλεση των εντολών με σκοπό τη βελτίωση της απόδοσης. -4-

9 2.3 Τα εσωτερικά μέρη της Κεντρικής Μονάδας επεξεργασίας Ο επεξεργαστής είναι διαχωρισμένος εσωτερικά σε διάφορα μέρη, που το καθένα εκτελεί μια λειτουργία. Το πώς λειτουργούν, ποικίλλει από υπολογιστή σε υπολογιστή αλλά όλοι οι επεξεργαστές περιλαμβάνουν τα ακόλουθα βασικά μέρη. Πολλά από αυτά συχνά αποκαλούνται και μονάδες[6]. Θα αναφερθεί ο ρόλος τους, ενώ λεπτομερέστερη περιγραφή ακολουθεί αργότερα: Η μονάδα ελέγχου (Control Unit): είναι ένα κύκλωμα που ελέγχει τη ροή των πληροφοριών (δηλαδή των εντολών και των δεδομένων) προς τον επεξεργαστή με τη βοήθεια καθορισμένων σημάτων. Ο επεξεργαστής με τη σειρά του ελέγχει τον υπόλοιπο υπολογιστή. Η δομή μιας κλασικής μονάδας ελέγχου παρατίθεται στην εικόνα 2.. Εικόνα 2.: Τα κύρια μέρη μιας κλασικής Μονάδας Ελέγχου Η μονάδα ελέγχου εκδίδει τα σήματα ελέγχου στη μνήμη και στις μονάδες Ι/Ο ώστε να προκληθεί ανταλλαγή δεδομένων και στις εσωτερικές μονάδες του επεξεργαστή για τη μετακίνηση δεδομένων μεταξύ των καταχωρητών, για να προκαλέσει την εκτέλεση μια καθορισμένης λειτουργίας από την -5-

10 αριθμητική/ λογική μονάδα και για να ρυθμίσει άλλες εσωτερικές λειτουργίες. Οι λειτουργίες που εκτελούνται από τη μονάδα ελέγχου ποικίλλουν και εξαρτώνται δραστικά από την εσωτερική αρχιτεκτονική του επεξεργαστή, καθώς η μονάδα ελέγχου είναι αυτή η μονάδα που εκτελεί την κάθε αρχιτεκτονική. Διαδρομή Δεδομένων (Datapath): Υλοποιεί τις διάφορες πράξεις μεταξύ των δεδομένων. Ορίζεται από ένα σύνολο καταχωρητών, το σύνολο των λειτουργιών που εκτελούνται στα δεδομένα με τη βοήθεια των καταχωρητών και ένα σύνολο σημάτων ελέγχου. Η αριθμητική και λογική μονάδα (Arithmetic/Logic Unit - ALU): είναι η μονάδα που εκτελεί τους υπολογισμούς ή την επεξεργασία των δεδομένων. Εμπεριέχεται στη διαδρομή δεδομένων. Τα δεδομένα εισάγονται στην ALU με τη βοήθεια καταχωρητών και τα αποτελέσματα αποθηκεύονται σε καταχωρητές. H ALU μπορεί επίσης να ενεργοποιήσει λογικές σημαίες (flags) ως αποτέλεσμα μιας πράξης (π.χ. σημαία υπερχείλισης (overflow)).στην εικόνα 2.2 περιγράφονται αναφορικά οι είσοδοι και οι έξοδοι μιας αριθμητικής/ λογικής μονάδας. Εικόνα 2.2: Εξωτερική αναπαράσταση μιας αριθμητικής και λογικής μονάδας -6-

11 Εσωτερική Μνήμη : είναι μικρή μνήμη υψηλής ταχύτητας που χρησιμοποιείται για την αποθήκευση προσωρινών αποτελεσμάτων και ορισμένων πληροφοριών ελέγχου. Η μνήμη αυτή αποτελείται από καταχωρητές (registers) καθένας εκ των οποίων εκτελεί κάποια συγκεκριμένη λειτουργία[]. 2.4 Εντολές Η λειτουργία του επεξεργαστή καθορίζεται από το πλήθος και τη φύση των εντολών που εκτελεί οι οποίες ονομάζονται εντολές μηχανής (machine instructions). Το σύνολο των εντολών που είναι διαθέσιμες από τον επεξεργαστή ονομάζεται ομάδα εντολών (instruction set) του επεξεργαστή. Ο αριθμός του συνόλου των εντολών ποικίλει από μηχανή σε μηχανή. Ο επεξεργαστής εκτελεί κάθε εντολή ακολουθώντας μια σειρά βημάτων.. Ανάκτηση της εντολής από τη μνήμη και αποθήκευση της στον καταχωρητή εντολών. 2. Ανανέωση του μετρητή προγράμματος ώστε να δείχνει στην επόμενη εντολή. 3. Προσδιορισμός του τύπου της εντολής που μόλις ανακτήθηκε. 4. Αν η εντολή απαιτεί δεδομένα από τη μνήμη, προσδιορισμός της θέσης τους. 5. Ανάκτηση των δεδομένων και, αν χρειάζεται, αποθήκευση τους σε εσωτερικούς καταχωρητές της CPU. 6. Εκτέλεση της εντολής. 7. Αποθήκευση των αποτελεσμάτων. 8. Επιστροφή στο βήμα για να αρχίσει η εκτέλεση της επόμενης εντολής. Το σύνολο των βημάτων αυτών αποτελούν και τον κύκλο ανάκτησης-αποκωδικοποίησης -εκτέλεσης εντολής (fetch-decode-execute cycle) και είναι η βασική λειτουργία όλων των υπολογιστών[2]. -7-

12 3 Οι αρχιτεκτονικές των ομάδων εντολών Οι υπολογιστές έχουν τη δυνατότητα εκτέλεσης ενός συνόλου εντολών. Το σύνολο των εντολών επιτρέπει την εκτέλεση των διαφόρων αριθμητικών και λογικών πράξεων τις οποίες μπορεί να υλοποιεί ένας επεξεργαστής. Οι ομάδες εντολών διαφέρουν από υπολογιστή σε υπολογιστή. Παραδείγματος χάριν, ο δυαδικός κώδικας που ορίζεται στο πεδίο εντολής (opcode) και ορίζει την κάθε εντολή, ποικίλλει ευρέως για διαφορετικούς υπολογιστές. Επιπλέον, αν και υπάρχουν πρότυπα, το συμβολικό όνομα που δίνεται στις εντολές ποικίλλει για διαφορετικούς υπολογιστές. Η σημαντικότερη όμως διάκριση μεταξύ των υπολογιστών αφορά τις διάφορες αρχιτεκτονικές της ομάδας εντολών. Υπάρχουν δύο σημαντικοί τύποι τέτοιων αρχιτεκτονικών, οι οποίοι διαφέρουν εμφανώς όσον αφορά το υλικό (hardware) και το λογισμικό (software): Οι υπολογιστές μειωμένης ομάδας εντολών (RISCs) και οι υπολογιστές σύνθετης ομάδας εντολών (CISCs)[]. Στην παρούσα εργασία θα ασχοληθούμε με την αρχιτεκτονική μειωμένης ομάδας εντολών καθώς αυτή είναι η αρχιτεκτονική την οποία χρησιμοποιεί ο επεξεργαστής xr6 τον οποίο μελετούμε. 3. Η Αρχιτεκτονική RISC Ο όρος RISC είναι ακρωνύμιο του Reduced Instruction Set Computer (Υπολογιστής Μειωμένης Ομάδας Εντολών)[]. Η αρχή της φιλοσοφίας RISC έγινε όταν οι σχεδιαστές, υποστηρικτές της συγκεκριμένης αρχιτεκτονικής, ισχυρίστηκαν ότι ο τρόπος με τον οποίο αντιλαμβανόμαστε την αρχιτεκτονική των υπολογιστών χρίζει πλήρους αναθεώρησης. Υποστήριξαν ότι οι υπολογιστές έχουν γίνει υπερβολικά πολύπλοκοι με τα χρόνια και ότι θα πρέπει, εξ αρχής να αναθεωρήσουμε τον τρόπο με τον οποίο τους σχεδιάζουμε. Τα πρώτα δείγματα της αρχιτεκτονικής αυτής έγιναν από το Stanford (MIPS) και το Berkeley (RISC-I, RISC-II, SUN SPARC). Προκειμένου να κατανοήσουμε τον τρόπο σκέψης των υποστηρικτών RISC, θα ξεκινήσουμε μια σύντομη περίληψη των ιδιοτήτων εκτέλεσης εντολών. Τα θέματα που μας ενδιαφέρουν είναι τα παρακάτω: Οι εκτελούμενες πράξεις: Καθορίζουν τις λειτουργίες που εκτελούνται από τον επεξεργαστή και την αλληλεπίδρασή τους με τη μνήμη. -8-

13 Οι χρησιμοποιούμενοι τελεστέοι: Τα είδη των τελεστέων και η συχνότητα χρήσης τους καθορίζουν την οργάνωση μνήμης για την απομνημόνευσή τους και τους τρόπους διευθυνσιοδότησης για την προσπέλαση τους. Ακολουθία εκτέλεσης: Καθορίζει την οργάνωση ελέγχου και σωλήνωσης[7]. Αν και τα συστήματα RISC έχουν οριστεί και σχεδιαστεί με πολλούς τρόπους από διαφορετικές ομάδες, όλα έχουν κάποια κοινά βασικά στοιχεία σχεδίασης που τα χαρακτηρίζουν: Μεγάλο πλήθος καταχωρητών γενικής χρήσης, ή/και χρήση τεχνολογίας compiler για βελτιστοποίηση της χρήσης καταχωρητών. Περιορισμένη και σχετικά απλή ομάδα εντολών με σταθερή μορφοποίηση. Σωλήνωση των εντολών με μεγάλο αντίκτυπο στη βελτίωση της απόδοσης. Ποιο συγκεκριμένα, κατά τη σχεδίαση, εισάγονται τα εξής κοινά χαρακτηριστικά: Μια εντολή ανά κύκλο μηχανής: ο κύκλος μηχανής ορίζεται ως ο χρόνος που χρειάζεται για να προσαχθούν δυο τελεστέοι από καταχωρητές, να εκτελέσουν μια πράξη στη αριθμητική/ λογική μονάδα και να απομνημονεύσουν το αποτέλεσμα σε έναν καταχωρητή. Από αυτό συνεπάγεται ότι οι εντολές της μηχανής RISC θα πρέπει να είναι όσο το δυνατόν απλούστερες, σε τέτοιο βαθμό που η ανάγκη για μικροκώδικα είναι μικρή ή καθόλου. Αντιθέτως, μπορούν να υλοποιηθούν κυκλωματικά. Οι εντολές αυτές θα εκτελούνται ταχύτερα από συγκρίσιμες εντολές μηχανής σε άλλες μηχανές, επειδή δεν χρειάζεται προσπέλαση μνήμης ελέγχου μικροπρογράμματος κατά τη διάρκεια εκτέλεσης της εντολής. Πράξεις από καταχωρητή προς καταχωρητή: όπου μόνο απλές πράξεις ανάκτησης/ αποθήκευσης (load/ store) θα έχουν πρόσβαση στη μνήμη. Αυτό το χαρακτηριστικό σχεδίασης απλουστεύει την ομάδα εντολών και κατά συνέπεια τη μονάδα ελέγχου. Ακόμα ένα πλεονέκτημα του χαρακτηριστικού αυτού είναι ότι μια τέτοια αρχιτεκτονική ενθαρρύνει τη βελτιστοποίηση χρήσης καταχωρητών, έτσι ώστε οι τελεστέοι, οι οποίοι υφίστανται συχνή προσπέλαση να παραμένουν σε μνήμη μεγάλης ταχύτητας. Υψηλό επίπεδο σωλήνωσης: τεχνική κατά την οποία η συνολική διαδικασία ανάκτησης- εκτέλεσης εντολής χωρίζεται σε παράλληλα στάδια τα οποία -9-

14 εκτελούνται ταυτόχρονα. Με αυτόν τον τρόπο επιτυγχάνεται να φορτώνεται μια εντολή προς εκτέλεση σε κάθε κύκλο ρολογιού. Απλοί τρόποι διευθυνσιοδότησης: σχεδόν όλες οι εντολές RISC χρησιμοποιούν απλή διευθυνσιοδότηση καταχωρητών. Και πάλι αυτό το χαρακτηριστικό σχεδίασης απλοποιεί την ομάδα εντολών. Απλές μορφοποιήσεις εντολών: Γενικά, χρησιμοποιείται είτε μια μόνο μορφοποίηση ή μερικές. Το μήκος εντολής είναι σταθερό και στοιχισμένο σε σύνορα λέξης. Οι θέσεις πεδίων, ιδιαίτερα το πεδίο εντολής (opcode) είναι σταθερές. Αυτό το χαρακτηριστικό σχεδίασης υπάρχει γιατί προσφέρει ορισμένα οφέλη. Με τα σταθερά πεδία, η αποκωδικοποίηση του opcode και η προσπέλαση τελεστέων καταχωρητών μπορούν να γίνονται ταυτόχρονα. Απλοποιημένες μορφοποιήσεις απλοποιούν τη μονάδα ελέγχου. Η ανάκτηση εντολών βελτιστοποιείται επειδή επεξεργάζονται μονάδες μήκους λέξης. Είναι απαραίτητο, να γίνει μια εκτενής αναφορά στον τρόπο με τον οποίο η αρχιτεκτονική RISC χειρίζεται τον κύκλο ανάκτησης- εκτέλεσης εντολής. Η αρχιτεκτονική RISC χρησιμοποιεί την τεχνική της σωλήνωσης, ή αλλιώς διοχέτευσης (pipelining). Η τεχνική αυτή είναι μια βελτίωση οργανωτικού επιπέδου που μπορεί να χρησιμοποιηθεί παράλληλα με τις βελτιώσεις που μπορούν να επιτευχθούν σε τεχνολογικό επίπεδο, όπως για παράδειγμα την κατασκευή ταχύτερων εξαρτημάτων. Ταυτόχρονα, τα δυο αυτά επίπεδα μπορούν να βελτιώσουν σε μεγάλο βαθμό την απόδοση των συστημάτων. Άλλα παραδείγματα βελτιώσεων σε οργανωτικό επίπεδο είναι η χρήση πολλών καταχωρητών έναντι ενός απλού συσσωρευτή, η χρήση μνήμης cache κ.ο.κ Σωλήνωση εντολών Η τεχνική είναι εμπνευσμένη από τη γραμμή παραγωγής σε ένα βιομηχανικό εργοστάσιο. Εκμεταλλευόμενοι το γεγονός ότι ένα προϊόν προκειμένου να κατασκευαστεί περνά από διάφορα στάδια, μπορούμε να επιτύχουμε την ταυτόχρονη πρόοδο της διεργασίας σε όλα αυτά τα επίπεδα. Με την τοποθέτηση της διεργασίας στη γραμμή παραγωγής, μπορεί να γίνει ταυτόχρονη εργασία σε διάφορα στάδια. Η διεργασία έχει πάρει το όνομα της (σωλήνωση) από τη διαδικασία που συμβαίνει σε ένα σωλήνα, κατά την οποία, στο ένα άκρο γίνονται δεκτές είσοδοι πριν να εμφανιστούν ως έξοδοι οι προηγούμενες είσοδοι. --

15 Εάν λοιπόν μπορούμε να ισχυριστούμε ότι η εντολή προς εκτέλεση μπορεί να χωριστεί σε διακριτά στάδια, τότε μπορούμε να εκτελέσουμε την εν λόγω εντολή με την τεχνική της σωλήνωσης. Η πιο απλή περίπτωση είναι η διάκριση 2 σταδίων. Για μια εντολή, μπορούμε πολύ εύκολα να διακρίνουμε αυτά τα δύο στάδια. Το ένα μπορεί να είναι η ανάκτηση της εντολής από τη μνήμη και η άλλη η εκτέλεση της. Τη χρονική στιγμή που η εντολή περνά στη φάση εκτέλεσης, η μνήμη παραμένει αδρανής. Εκμεταλλευόμενοι την αδράνεια της μνήμης, μπορούμε να ανακτήσουμε την επόμενη εντολή, στο πρώτο στάδιο ενώ παράλληλα η αρχική εντολή εκτελείται στο δεύτερο στάδιο. Έχει αποδειχθεί ότι αυτή η διεργασία επιτυγχάνει την εκτέλεση εντολών. Αν οι κύκλοι ανάκτησης και εκτέλεσης είχαν την ίδια διάρκεια, η συνολική διάρκεια του κύκλου θα γινόταν η μισή. Όμως αυτό δεν μπορεί να επιτευχθεί εύκολα στη σωλήνωση με δύο στάδια για 2 λόγους:. Ο χρόνος ανάκτησης είναι σαφώς μικρότερος από το χρόνο εκτέλεσης. Αυτό συμβαίνει γιατί η εκτέλεση περιλαμβάνει την ανάγνωση και απομνημόνευση των τελεστέων και την εκτέλεση κάποιας πράξης. 2. Στην περίπτωση που η προς εκτέλεση εντολή είναι μια διακλάδωση υπό συνθήκη, δε γνωρίζουμε εκ των προτέρων τη διεύθυνση της επόμενης εντολής. Αυτό σημαίνει ότι το στάδιο ανάκτησης είναι υποχρεωμένο να περιμένει το στάδιο εκτέλεσης προκειμένου να πάρει τη διεύθυνση της επόμενης εντολής. Αυτοί οι δύο παράγοντες είναι αυτοί που περιορίζουν την επίδραση της σωλήνωσης στην απόδοση. Ένα πρώτο μέτρο που είναι δυνατό να ληφθεί είναι η εισαγωγή επιπλέον σταδίων. Αν αναλυθεί η διαδικασία σε περισσότερα των δύο σταδίων, μπορούμε να επιτύχουμε καλύτερη απόδοση. Έστω ότι κατά τη σχεδίαση, επιλέγουμε σωλήνωση τεσσάρων σταδίων:. Ανάκτηση εντολής (instruction fetch): Ανάγνωση της επόμενης αναμενόμενης εντολής. 2. Αποκωδικοποίηση εντολής (instruction decode): Προσδιορισμός του opcode και των τελεστέων. Υπολογισμός της ενεργούς διεύθυνσης κάθε τελεστέου πηγής. 3. Ανάκτηση τελεστέων (operands fetch): Ανάκτηση κάθε τελεστέου πηγής από τη μνήμη σε καταχωρητές. --

16 4. Εκτέλεση εντολής (execute instruction): εκτέλεση της καθορισμένης από την εντολή πράξης και απομνημόνευση του αποτελέσματος στον καθορισμένο καταχωρητή προορισμού. Με την παραπάνω ανάλυση, το κάθε στάδιο έχει περίπου την ίδια χρονική διάρκεια. Στην εικόνα 3. παρατηρούμε την εξέλιξη της σωλήνωσης εντολών σε ένα σύστημα τεσσάρων σταδίων, για 8 διαδοχικές εντολές. Για να περιγραφεί η παραπάνω ιδανική περίπτωση που προσφέρει τη μέγιστη δυνατή απόδοση, έχουν γίνει κάποιες συμβάσεις που στην πραγματικότητα επιδρούν στο σύστημα και προκαλούν τον περιορισμό της συνολικής απόδοσης. Αυτές μπορεί να είναι: (a) Υποθέτουμε ότι τα στάδια έχουν ίση χρονική διάρκεια. Εάν αυτό δε συνέβαινε θα έπρεπε να είναι δεδομένος ένας χρόνος αναμονής ανάμεσα στα διάφορα στάδια της σωλήνωσης. (b) Υποθέτουμε ότι δεν έχουν προσκομιστεί εντολές διακλάδωσης υπό συνθήκη ή εντολές διακοπής. Κάτι τέτοιο θα μπορούσε να ακυρώσει πολλές ανακτήσεις εντολών. (c) Υποθέτουμε ότι καμία εντολή που βρίσκεται στη σωλήνωση δεν εξαρτάται από το αποτέλεσμα προηγούμενης εντολής που βρίσκεται επίσης στη σωλήνωση[][2] [8]. Εικόνα 3.: Γραφική περιγραφή της τεχνικής της σωλήνωσης[9] -2-

17 4 Διάταξη πυλών προγραμματιζόμενου πεδίου - FPGA Μία διάταξη πυλών προγραμματιζόμενου πεδίου (Field Programmable Gate Array) είναι μία ημιαγωγική διάταξη που περιέχει λογικά προγραμματιζόμενα συστατικά και προγραμματιζόμενες διασυνδέσεις[]. Τα λογικά προγραμματιζόμενα συστατικά μπορούν να προγραμματιστούν για την αναπαραγωγή της λειτουργίας βασικών λογικών πυλών, όπως οι AND, OR, XOR, NOT, αλλά και περισσότερο σύνθετων συνδυαστικών συναρτήσεων όπως οι αποκωδικοποιητές ή οι απλές μαθηματικές συναρτήσεις. Στα περισσότερα FPGA αυτά τα προγραμματιζόμενα συστατικά περιέχουν επίσης στοιχεία μνήμης, τα οποία μπορεί να είναι απλά flip flops ή πιο πολύπλοκα τμήματα μνήμης. Μία ιεραρχία προγραμματιζόμενων διασυνδέσεων επιτρέπουν τη σύνδεση των λογικών τμημάτων του FPGA σύμφωνα με τις ανάγκες του σχεδιαστή. Τα λογικά τμήματα και οι μεταξύ τους διασυνδέσεις μπορούν να προγραμματιστούν μετά τη διαδικασία κατασκευής από τον πελάτη/ σχεδιαστή. Έτσι το FPGA μπορεί να εκτελέσει οποιαδήποτε λογική συνάρτηση χρειάζεται[]. Βέβαια, είναι γενικά πιο αργό και καταναλώνει περισσότερη ενέργεια από ένα κύκλωμα που έχει σχεδιαστεί, κατά παραγγελία (custom), έτσι ώστε να εκτελεί μια συγκεκριμένη εφαρμογή (Application-Specific Integrated Circuits - ASICs). Τα FPGAs δεν είναι κυκλώματα σχεδιασμένα για υλοποίηση μιας συγκεκριμένης λειτουργίας οπότε δεν φτάνουν την απόδοση ενός ASIC. Παραταύτα, τα μειονεκτήματα τους αντισταθμίζονται επειδή κατά ένα μεγάλο μέρος αποτελούνται από προτυποποιημένα μέρη. Έτσι : Τα FPGAs μπορούν να χρησιμοποιηθούν πολύ εύκολα ως πρωτότυπα. Όταν το FPGA χρησιμοποιείται στο τελικό σχέδιο, το άλμα από το πρωτότυπο στο προϊόν είναι πολύ μικρότερο και ευκολότερο να πραγματοποιηθεί. Το ίδιο FPGA μπορεί να χρησιμοποιηθεί πολλές φορές, σε εντελώς διαφορετική λειτουργία, γεγονός που μειώνει το κόστος σχεδιασμού[2]. -3-

18 4. Ιστορική Αναδρομή Οι ρίζες των FPGA βρίσκονται στις αρχές του 97 στις πολύπλοκες προγραμματιζόμενες λογικές διατάξεις (Complex Programmable Logic Device - CPLD). Τα CPLD και τα FPGA περιέχουν ένα μεγάλο αριθμό προγραμματιζόμενων λογικών συστατικών. Η πυκνότητα των λογικών πυλών στα CPLD κυμαίνεται από μερικές χιλιάδες σε δεκάδες χιλιάδες πύλες, ενώ στα FPGA το τυπικό εύρος είναι από δεκάδες χιλιάδες μέχρι και μερικά εκατομμύρια. Οι βασικές διαφορές μεταξύ των CPLD και FPGA είναι στην αρχιτεκτονική τους. Τα PLD χρησιμοποιούσαν δομές λογικής δύο επιπέδων για να υλοποιήσουν την προγραμματιζόμενη λογική. Το πρώτο επίπεδο λογικής, αποτελούνταν από πύλες AND, ενώ το δεύτερο επίπεδο από πύλες OR. Κάποιοι από τους τύπους PLDs είναι ο Προγραμματιζόμενος Λογικός Πίνακας (Programmable Logic Array - PLA) και ο Προγραμματιζόμενος Πίνακας Λογικής (PAL). Δεδομένου ότι τα ψηφιακά συστήματα έγιναν πιο σύνθετα, απαιτήθηκε πυκνότερη προγραμματιζόμενη λογική, και οι περιορισμοί των δύο επιπέδων λογικής PLDs έγιναν σαφείς[3]. Η αρχιτεκτονική των FPGA, από την άλλη, κυριαρχείται από τις διασυνδέσεις. Tα FPGAs παρέχουν προγραμματιζόμενη λογική χρησιμοποιώντας λογική πολλαπλών επιπέδων. Αυτό κάνει το FPGA πιο ελαστικό αλλά και πιο σύνθετο στη σχεδίαση. Η εφεύρεση των FPGA πιστώνεται γενικά στον Ross Freeman. Η πρότυπη εργασία του Configurable electrical circuit having configurable logic elements and configurable interconnects [4] δημοσιεύτηκε το Σεπτέμβριο του 989 και περιελάμβανε προγραμματιζόμενα στοιχεία λογικής και μια προγραμματιζόμενη δομή διασύνδεσης. Το FPGA του προγραμματιζόταν χρησιμοποιώντας στατικές μνήμες RAM (Static-RAM SRAM). Αυτό επέτρεψε να σχεδιαστούν τυποποιημένες διαδικασίες επεξεργασίας και προγραμματισμού, γεγονός που συμφέρει οικονομικά και παρέχει περισσότερες επιλογές σχεδιασμού. Μία σύγχρονη τάση είναι ο συνδυασμός των λογικών τμημάτων και των διασυνδέσεων ενός παραδοσιακού FPGA με μικροεπεξεργαστές και σχετικά περιφερειακά στο ίδιο chip. Τέτοια παραδείγματα υβριδικής τεχνολογίας μπορούν να βρεθούν στις διατάξεις της Xilinx, Virtex-II PRO και Virtex-4. Όπως αναφέρθηκε και προηγουμένως, πολλά μοντέρνα FPGA έχουν τη δυνατότητα επαναπρογραμματισμού κατά τη διάρκεια της εκτέλεσης και αυτό οδηγεί στην ιδέα για επαναπροσδιορίσιμους υπολογιστές ή επαναπροσδιορίσιμα συστήματα που -4-

19 προσαρμόζονται ανάλογα με την απαιτούμενη διαδικασία. Τα σημερινά FPGA, όμως δεν υποστηρίζουν απολύτως αυτή τη μεθοδολογία. Πρέπει να σημειωθεί εδώ ότι καινούργιες, μη FPGA αρχιτεκτονικές ξεκινούν την εμφάνισή τους. Λογικά διαμορφωμένοι μικροεπεξεργαστές όπως ο Stretch S5 υιοθετούν μία υβριδική προσέγγιση παρέχοντας μία σειρά τμημάτων επεξεργαστών και προγραμματιζόμενων τμημάτων όπως τα FPGA στο ίδιο chip. Άλλες συσκευές (όπως τα Mathstar's Field Programmable Object Array, ή FPOA) παρέχουν ένα υψηλότερο επίπεδο προγραμματιζόμενων αντικειμένων που βρίσκονται μεταξύ ενός FPGA και ενός πιο σύνθετου επεξεργαστή. Κάποια χαρακτηριστικά που ορίζουν ένα chip ως FPGA είναι : Αποτελούνται από τυποποιημένα μέρη. Δεν σχεδιάζονται για κάποια ιδιαίτερη λειτουργία αλλά προγραμματίζονται από το χρήστη για έναν ιδιαίτερο σκοπό. Ενσωματώνουν πολλαπλών επιπέδων λογική 4.2 Εφαρμογές Οι εφαρμογές των FPGA περιλαμβάνουν πολλούς τομείς όπως στα συστήματα άμυνας, στη διαστημική, στα ASIC prototyping, στην ιατρική απεικόνιση, στην αναγνώριση ταχύτητας, στην κρυπτογραφία, στην κατασκευή του hardware και επίσης έχουν ένα μεγάλο εύρος εφαρμογών σε άλλους τομείς. Τα FPGA ξεκίνησαν αρχικά ως ανταγωνιστές των CPLD και διαγωνίζονταν σε ένα κοινό χώρο, αυτόν την προσκόλλησης λογικής στα PCB. Καθώς το μέγεθος, οι δυνατότητες και η ταχύτητα μεγάλωναν, άρχισε η επέκταση των εφαρμογών τους σε ολοένα και μεγαλύτερες συναρτήσεις μέχρι το σημείο σήμερα να προσφέρονται ως ολοκληρωμένα συστήματα chips. Τα FPGA, ειδικότερα βρήκαν εφαρμογές σε κάθε περιοχή ή αλγόριθμο που μπορεί να κάνει χρήση του παραλληλισμού που προσφέρεται από την αρχιτεκτονική τους. 4.3 Αρχιτεκτονική Τα FPGA στη γενική τους μορφή αποτελούνται από τρία βασικά μέρη : Συνδυαστική Λογική. Δομή Διασύνδεσης. -5-

20 Σημεία Εισόδου/ Εξόδου (I/O pins). Το πρώτο μέρος της συνδυαστικής λογικής αποτελείται από σχετικά μικρές μονάδες οι οποίες καλούνται στοιχεία λογικής (Logic Elements - LEs) ή μπλοκ συνδυαστικής λογικής (Combinational Logic Blocks - CLBs). Το LE ή CLB μπορεί να διαμορφωθεί έτσι ώστε να υλοποιεί μια συνάρτηση η οποία θα απαιτούσε πολλές λογικές πύλες. Η διασύνδεση των στοιχείων λογικής μεταξύ τους είναι προγραμματιζόμενη. Τα FPGAs διαθέτουν διάφορους τύπους διασυνδέσεων ανάλογα με την απόσταση μεταξύ των στοιχείων λογικής που πρόκειται να συνδεθούν. Τα σήματα ρολογιού παρέχονται επίσης μαζί με το δίκτυο διασύνδεσής τους. Τα σημεία I/O καλούνται επίσης μπλοκ I/O (I/O Blocks - IOBs). Τα IOBs προγραμματίζονται έτσι ώστε να είναι είσοδοι ή έξοδοι και να παρέχουν συχνά άλλα χαρακτηριστικά όπως χαμηλή κατανάλωση ισχύος ή γρήγορες συνδέσεις. Στην εικόνα 4 φαίνεται η βασική δομή ενός FPGA. Οι συνδέσεις μεταξύ των στοιχείων λογικής μπορεί να ακολουθούν σύνθετες πορείες δεδομένου ότι τα CLBs τακτοποιούνται σε κάποιο είδος δισδιάστατης δομής όπως φαίνεται στην παρακάτω εικόνα (4.). Επομένως οι συνδέσεις δεν γίνονται μόνο μεταξύ των CLBs και των καλωδίων αλλά και μεταξύ των καλωδίων των ίδιων. Τα καλώδια οργανώνονται συνήθως σε κανάλια καλωδίων (wiring channels) ή κανάλια δρομολόγησης (routing channels) τα οποία διατρέχουν το τσιπ οριζόντια και κάθετα. Κάθε κανάλι Εικόνα 4.: Η βασική δομή ενός FPGA -6-

21 περιέχει πολλά καλώδια. Επίσης, προκειμένου να γίνουν όλες οι απαραίτητες συνδέσεις μεταξύ των στοιχείων λογικής, τα κανάλια παρέχουν καλώδια ποικίλων μηκών. Όταν ένα οριζόντιο και ένα κάθετο κανάλι διασταυρώνονται υπάρχει ένα κουτί διακοπτών. Όταν ένα κανάλι βρίσκει ένα τέτοιο κουτί υπάρχουν τρεις προγραμματιζόμενοι διακόπτες που επιτρέπουν τη σύνδεσή του με τρία άλλα καλώδια σε παρακείμενα τμήματα. Το πρότυπο των διακοπτών το οποίο χρησιμοποιείται σε αυτή την αρχιτεκτονική είναι η βασική τοπολογία των διακοπτών. Μία τέτοια τοπολογία διακοπτών φαίνεται στην εικόνα 4.2. Εικόνα 4.2: Τοπολογία κουτιού διακοπτών[8] 4.4 Απαιτήσεις Πέρα από τη λειτουργικότητα του σχεδίου πάνω σε ένα FPGA πρέπει να επιτευχθούν και άλλες απαιτήσεις έτσι ώστε να κρίνουμε το σχέδιο ως επιτυχές. Κάποιες από αυτές τις απαιτήσεις είναι: Απόδοση. Η λογική πρέπει να μπορεί να τρέξει με μια συγκεκριμένη ταχύτητα μια εντολή. Δηλαδή ο χρόνος που μεσολαβεί από τη στιγμή που τα δεδομένα εισόδου θα δοθούν στο σύστημα μέχρι το χρόνο που το σύστημα να παράξει τα αναμενόμενα δεδομένα εξόδου πρέπει να είναι ο ελάχιστος δυνατός, -7-

22 έτσι ώστε να ικανοποιούνται οι ανάγκες για τις οποίες το σύστημα σχεδιάστηκε. Διάφοροι τρόποι μέτρησης της απόδοσης είναι ο ρυθμός εκτέλεσης (throughput) και ο χρόνος εκτέλεσης (latency) εντολής. Επίσης, η ελάχιστη διάρκεια ενός κύκλου ρολογιού χρησιμοποιείται συχνά ως μέτρο της απόδοσης. Κατανάλωση Ενέργειας. Μία από τις κρισιμότερες παραμέτρους του συστήματος είναι η κατανάλωση ενέργειας, ειδικά στα συστήματα που λειτουργούν με μπαταρίες. Έτσι το τσιπ πρέπει συχνά να καταναλώνει όσο το δυνατόν λιγότερη ενέργεια. Επίσης, όσο περισσότερη ενέργεια καταναλώνει ένα σύστημα, τόσο περισσότερη θερμότητα απελευθερώνει. Η θερμότητα είναι ένας αρνητικός παράγοντας που δημιουργεί προβλήματα στα ψηφιακά συστήματα. Χρόνος σχεδιασμού. Η διαδικασία σχεδιασμού δεν μπορεί να διαρκέσει πολύ μεγάλο χρονικό διάστημα. Τα FPGAs, επειδή αποτελούνται από τυποποιημένα μέρη, παρουσιάζουν διάφορα πλεονεκτήματα όσον αφορά στο χρόνο σχεδιασμού. Μπορούν να χρησιμοποιηθούν ως πρωτότυπα, μπορούν να προγραμματιστούν γρήγορα και επίσης να χρησιμοποιηθούν ως μέρη του τελικού σχεδίου. Κόστος σχεδίου. Ο χρόνος σχεδιασμού είναι ένας σημαντικός παράγοντας του κόστους, αλλά υπάρχουν και άλλοι, όπως τα απαραίτητα εργαλεία σχεδιασμού και υλοποίησης του σχεδίου. Κόστος παραγωγής. Τα FPGAs είναι γενικά ακριβότερα από τα ASICs λόγω των εξόδων που οφείλονται στον προγραμματισμό τους. Εντούτοις, το γεγονός ότι είναι τυποποιημένα μέρη, βοηθά να μειωθεί το κόστος τους. Επίσης υπάρχουν κάποιες απαιτήσεις που πρέπει να καλυφθούν κατά τη διάρκεια σχεδιασμού, όπως: oτα πολλαπλά επίπεδα ιεραρχίας. Ξεκινώντας από μια προδιαγραφή αυτού που το τσιπ πρέπει να κάνει, ο σχεδιαστής πρέπει να δημιουργήσει μια αρχιτεκτονική που να εκτελεί την απαραίτητη λειτουργία, και έπειτα να επεκτείνει την αρχιτεκτονική σε ένα σχέδιο λογικής. oτα πολλαπλά και συγκρουόμενα κόστη. oο σύντομος χρόνος σχεδίου. Η αγορά ηλεκτρονικών συστημάτων εξελίσσεται με αλματώδεις ρυθμούς. Η παραγωγή ενός σχεδίου γρήγορα μπορεί να έχει πολ- -8-

23 λά οικονομικά οφέλη ενώ η αργοπορημένη παραγωγή μπορεί να μην έχει καθόλου.[2] 4.5 Τύποι Διάφορες τεχνολογίες χρησιμοποιούνται για τον προγραμματισμό των FPGAs. Μερικά FPGAs είναι μόνιμα προγραμματισμένα ενώ άλλα μπορούν να επαναπρογραμματιστούν. Τα επαναπρογραμματιζόμενα (reprogrammable) FPGAs είναι επίσης γνωστά ως αναδιαμορφώσιμες (reconfigurable) συσκευές. Αυτές γενικά προτιμούνται στον τομέα διαμόρφωσης πρωτοτύπων επειδή η συσκευή δεν χρειάζεται να πεταχτεί κάθε φορά που γίνεται μια αλλαγή. Τα αναδιαμορφώσιμα συστήματα μπορούν επίσης να επαναπρογραμματιστούν άμεσα (on-the-fly) κατά τη διάρκεια της λειτουργίας τους. Αυτό επιτρέπει σε ένα μέρος του υλικού να εκτελεί διαφορετικές λειτουργίες. Φυσικά, αυτές οι λειτουργίες δεν μπορούν να εκτελεσθούν συγχρόνως, αλλά η ικανότητα αναδιαμόρφωσης μπορεί να είναι πολύ χρήσιμη όταν λειτουργεί ένα σύστημα σε διαφορετικές καταστάσεις (modes). Μερικοί τύποι FPGA είναι: SRAM: βασίζεται σε μία στατική μνήμη (static memory technology). Είναι επαναπρογραμματιζόμενα και απαιτούν εξωτερικές συσκευές ενέργειας. Συνήθως CMOS. Antifuse: προγραμματίζεται μόνο μία φορά. CMOS. EPROM: Διαγράψιμη προγραμματιζόμενη ROM τεχνολογία. συνήθως προγραμματίζονται μία φορά κατά την παραγωγή λόγω του πλαστικού περιβλήματος. Συσκευές παραθύρου μπορούν να τη διαγράψουν μέσω υπεριώδους ακτινοβολίας. CMOS. EEPROM: Electrically Erasable Programmable Read-Only Memory. Μπορεί να διαγραφεί ακόμα και μέσα σε πλαστικές συσκευασίες. Μερικές, αλλά όχι όλες, οι συσκευές EEPROM μπορούν να προγραμματιστούν μέσα στο σύστημα. CMOS. Flash-erase EPROM: Μπορεί να διαγραφεί και σε πλαστικές συσκευασίες. Συνήθως ένα τμήμα flash είναι μικρότερο από το ισοδύναμο EEPROM και γι αυτό λιγότερο ακριβό στην κατασκευή. CMOS. Fuse: μη επαναπρογραμματιζόμενη τεχνολογία. Bipolar.[2] -9-

24 4.6 FPGA προγραμματιζόμενα από SRAM Η στατική μνήμη είναι η ευρύτερα διαδεδομένη μέθοδος διαμόρφωσης των FPGAs. Η έξοδος του κάθε κυττάρου μνήμης συνδέεται άμεσα με ένα άλλο κύκλωμα και έτσι η κατάσταση του ελέγχει συνεχώς το κύκλωμα το οποίο διαμορφώνεται. Η χρησιμοποίηση της στατικής μνήμης έχει διάφορα πλεονεκτήματα: Το FPGA μπορεί να επαναπρογραμματιστεί εύκολα. Επειδή τα τσιπ μπορούν να επαναχρησιμοποιηθούν, και να επαναπρογραμματιστούν γενικά χωρίς να αφαιρεθούν από το κύκλωμα, είναι γενικά η πιο αποδεκτή επιλογή για τη διαμόρφωση πρωτοτύπων. Το FPGA μπορεί να επαναπρογραμματιστεί κατά τη διάρκεια της λειτουργίας του συστήματος, υλοποιώντας δυναμικά αναδιαμορφώσιμα συστήματα. Τα κυκλώματα που χρησιμοποιούνται στο FPGA μπορούν να κατασκευαστούν με ήδη τυποποιημένες διαδικασίες που χρησιμοποιούνται σε κυκλώματα πολύ μεγάλης κλίμακας ολοκλήρωσης (Very Large Scale Integration - VLSI). Η Δυναμική Μνήμη RAM, αν και έχει μεγαλύτερη πυκνότητα, πρέπει συνεχώς να ενημερώνεται, γεγονός το οποίο θα καθιστούσε τα στοιχεία του κυκλώματος διαμόρφωσης λιγότερο ευέλικτα. Τα FPGAs αυτού του τύπου έχουν και κάποια μειονεκτήματα: Η μνήμη διαμόρφωσης SRAM καταναλώνει αρκετή ενέργεια ακόμη και όταν το πρόγραμμα παραμένει αμετάβλητο. Τα ψηφία διαμόρφωσης SRAM μπορούν εύκολα να υποκλαπούν. Ένας μεγάλος αριθμός ψηφίων πρέπει να καθοριστεί προκειμένου να προγραμματιστεί ένα FPGA. Κάθε συνδυαστικό στοιχείο λογικής απαιτεί πολλά ψηφία προγραμματισμού και κάθε προγραμματιζόμενο σημείο διασύνδεσης απαιτεί το ψηφίο του.[2] 4.6. Στοιχεία λογικής Η βασική μέθοδος που χρησιμοποιείται για να υλοποιηθεί ένα στοιχείο λογικής (LE ή CLB) FPGA διαμορφώσιμο από SRAM είναι με τη βοήθεια ενός πίνακα οποίος ονομάζεται lookup table (LUT). Ο LUT είναι μια μνήμη SRAM που χρησιμοποιείται -2-

25 για να υλοποιήσει έναν πίνακα αλήθειας. Κάθε διεύθυνση της SRAM αντιπροσωπεύει ένα συνδυασμό εισόδων στο στοιχείο λογικής. Η τιμή που αποθηκεύεται σε εκείνη τη διεύθυνση αντιπροσωπεύει την τιμή της λογικής συνάρτησης που υλοποιείται για αυτό το συνδυασμό εισόδων. Μια συνάρτηση n εισόδων απαιτεί μια μνήμη SRAM με 2n διευθύνσεις. Επειδή μια SRAM διαμόρφωσης δεν έχει είσοδο ρολογιού, ο LUT λειτουργεί ως μια λογική πύλη : όταν οι είσοδοι της αλλάζουν, αλλάζουν και οι έξοδοι της με κάποια στοιχειώδη χρονική καθυστέρηση. Αντίθετα όμως από μια λογική πύλη, η συνάρτηση που υλοποιεί το στοιχείο λογικής, CLB, μπορεί να αλλάζει με την αλλαγή των τιμών των ψηφίων που αποθηκεύονται στην SRAM. Ως αποτέλεσμα, ένα CLB n εισόδων μπορεί να αντιπροσωπεύσει 22 n συ- ναρτήσεις (αν και μερικές από αυτές είναι αντιμετάθεση η μια της άλλης). Ένα τυπικό στοιχείο λογικής έχει τέσσερις εισόδους. Σημειώνεται ότι η καθυστέρηση μέσω του LUT είναι ανεξάρτητη από τα ψηφία που αποθηκεύονται στην SRAM. Έτσι, η καθυστέρηση μέσω ενός στοιχείου λογικής είναι η ίδια για όλες τις συναρτήσεις που αυτό υλοποιεί. Τα στοιχεία λογικής περιέχουν γενικά καταχωρητές, flip-flops και μανδαλωτές (latches), καθώς επίσης συνδυαστική λογική. Ένα flip-flop ή ένας μανδαλωτής έχουν μικρό μέγεθος σε σύγκριση με το συνδυαστικό στοιχείο λογικής, οπότε δεν δημιουργείται πρόβλημα αν προστεθούν στο CLB. Η χρήση ενός ξεχωριστού κυττάρου για το στοιχείο μνήμης θα δέσμευε απλά τους πόρους δρομολόγησης (routing resourses - θα δέσμευε περισσότερα καλώδια). Το στοιχείο μνήμης είναι συνδεμένο με την έξοδο του CLB. Το λογικό στοιχείο μπορεί επίσης να έχει πιο περίπλοκη δομή. Παραδείγματος χάριν, πολλά CLB περιέχουν ειδικά κυκλώματα για υλοποίηση της πρόσθεσης. Το κρίσιμο συστατικό ενός αθροιστή είναι η αλυσίδα του κρατουμένου, η οποία μπορεί να υλοποιηθεί πολύ αποτελεσματικότερα με εξειδικευμένη λογική παρά χρησιμοποιώντας LUTs.[2] Διασύνδεση στοιχείων λογικής Τα στοιχεία λογικής πρέπει να μπορούν να διασυνδεθούν για να υλοποιηθούν σύνθετες συναρτήσεις. Το FPGA χρησιμοποιεί τη μνήμη SRAM για να φυλάξει την -2-

26 πληροφορία που χρησιμοποιείται για να προγραμματιστούν οι διασυνδέσεις. Κατά συνέπεια, η διασυνδέσεις μπορούν να διαμορφωθούν, ακριβώς όπως τα στοιχεία λογικής. Ένα σημείο διασύνδεσης (interconnection point) καλείται συχνά κουτί σύνδεσης (connection box). Μια προγραμματιζόμενη σύνδεση μεταξύ δύο καλωδίων μπορεί να γίνει με χρήση ενός τρανζίστορ CMOS που λειτουργεί ως διακόπτης (pass transistor). Η πύλη του τρανζίστορ ελέγχεται από ένα ψηφίο στατικής μνήμης. Όταν η πύλη του τρανζίστορ είναι up, αυτό άγει και συνδέει τα δύο καλώδια ενώ όταν η πύλη είναι down, το τρανζίστορ δεν άγει και τα δύο καλώδια δεν συνδέονται[5]. Μια εναλλακτική προσέγγιση στην υλοποίηση προγραμματιζόμενων σημείων διασύνδεσης είναι η χρήση πυλών τριών καταστάσεων ως μονάδες προσωρινής αποθήκευσης (tri-state buffers). Η καλωδίωση ενός FPGA με προγραμματιζόμενες διασυνδέσεις είναι πιο αργή από την τυπική καλωδίωση για δύο λόγους :(a) το τρανζίστορ και (b) το μήκος των καλωδίων. Το τρανζίστορ δεν είναι ένας τέλειος διακόπτης και έτσι ένα προγραμματιζόμενο σημείο διασύνδεσης είναι κάπως πιο αργό από ένα ζευγάρι καλωδίων που συνδέονται μόνιμα. Επιπλέον, τα καλώδια στο FPGA είναι γενικά μακρύτερα από ότι σε ένα ASIC και σχεδιάζονται έτσι για να μπορούν να συνδέουν ποικίλα στοιχεία λογικής και άλλους πόρους πάνω στο τσιπ. Ένα FPGA απαιτεί ένα μεγάλο αριθμό προγραμματιζόμενων καλωδίων προκειμένου να εκμεταλλευθεί πλήρως τα CLB. Τα καλώδια αυτά έχουν ποικίλα μήκη προκειμένου να ελαχιστοποιηθεί η καθυστέρηση. Ο διαχωρισμός των τύπων καλωδίων γίνεται συχνά με βάση τη δομή και τη χρήση για την οποία προορίζονται : Τα κοντά καλώδια (short wires) συνδέουν μόνο γειτονικά CLBs. Αυτά τα καλώδια δεν καταλαμβάνουν πολύ χώρο και εισάγουν τη λιγότερη καθυστέρηση. Οι αλυσίδες κρατουμένου μέσω των CLBs είναι ένα παράδειγμα της σύντομης διασύνδεσης. Τα καθολικά καλώδια (global wires) σχεδιάζονται ειδικά για επικοινωνία σημείων που απέχουν μεγάλη απόσταση. Τα ειδικά καλώδια (special wires) αφιερώνονται σε ειδικές λειτουργίες όπως να διανείμουν το σήμα ρολογιού ή άλλα σήματα ελέγχου.[2] Διαμόρφωση συστήματος Τα FPGAs με SRAMs αναδιαμορφώνονται με την αλλαγή του περιεχομένου των μνημών διαμόρφωσης που ενσωματώνουν. Μερικά σημεία στο τσιπ είναι δυνατόν να -22-

27 χρησιμοποιηθούν για τη διαμόρφωση της μνήμης και έπειτα να ελευθερωθούν και να μπορούν να χρησιμοποιηθούν ως σημεία I/O. Κατά τη διάρκεια της διαμόρφωσης πρωτοτύπων και της αποσφαλμάτωσης ενός σχεδίου, αλλάζουμε τη διαμόρφωση συχνά. Ένα καλώδιο ανάκτησης (download cable) μπορεί να χρησιμοποιηθεί για να φορτώσει τον τρόπο διαμόρφωσης (configuration) άμεσα από έναν υπολογιστή. Όταν το σχέδιο περάσει στη μαζική παραγωγή, ειδικές προγραμματιζόμενες μνήμες ανάγνωσης-μόνο (Programmable ROMs - PROMs) χρησιμοποιούνται συνήθως για να αποθηκεύσουν τον τρόπο διαμόρφωσης. Μόλις το FPGA τροφοδοτηθεί με ρεύμα τρέχει τον τρόπο διαμόρφωσης του μέσω των σημείων διαμόρφωσης με τη βοήθεια ενός πρωτοκόλλου. Η ειδική μνήμη PROM έχει ένα μικρό ποσό πρόσθετης λογικής ώστε να έχει τη δυνατότητα να παρέχει ένα σήμα ρολογιού και να απαντήσει στο πρωτόκολλο διαμόρφωσης του FPGA. Πολλά σύγχρονα FPGAs ενσωματώνουν αλυσίδες σάρωσης αναδιαμόρφωσης (reconfiguration scan chains) στα κυκλώματα ελέγχου τους. Τα κυκλώματα ελέγχου χρησιμοποιούνται για να εξασφαλίσουν ότι το τσιπ κατασκευάστηκε σωστά. Το πρότυπο JTAG (Joint Test Action Group) δημιουργήθηκε για να μπορούν τα τσιπ να ελέγχονται ευκολότερα. Το JTAG καλείται συχνά σάρωση ορίου (boundary scan) επειδή έχει ως σκοπό να σαρώσει τα σημεία (pins) στο όριο μεταξύ του τσιπ και του περιβάλλοντος του. Το JTAG εντοπίζεται στα σημεία Ι/Ο και τα σημεία διαμόρφωσης του τσιπ. Κατά τη διάρκεια του ελέγχου, αυτά τα σημεία μπορούν να αποσυνδεθούν από τις κανονικές λειτουργίες τους και να χρησιμοποιηθούν ως καταχωρητές ολίσθησης. Ένας καταχωρητής ολίσθησης (shift register) επιτρέπει στις τιμές εισόδου να τοποθετηθούν σε αυτά τα σημεία και στις τιμές εξόδου να διαβαστούν από αυτά. Η διαδικασία ελέγχεται από τον ελεγκτή της θύρας ελέγχου πρόσβασης (Test Access Port - TAP - controller). Ο ελεγκτής συνδέεται σε τέσσερα σημεία: την είσοδο του καταχωρητή ολίσθησης (TDI), την έξοδο του (TDO), το ρολόι ελέγχου (TCK) και τον τρόπο ελέγχου (TMS) και προαιρετικά μια είσοδο μηδενισμού - reset (TRST). Ο TAP περιλαμβάνει έναν καταχωρητή εντολών (IR) που καθορίζει ποιες ενέργειες θα εκτελεστούν κατά τον έλεγχο. Ένας καταχωρητής παράκαμψης (Bypass Register - BP) χρησιμοποιείται ώστε είτε να μπορούν ψηφία να μετατοπιστούν στον IR είτε το περιεχόμενο του να παραμένει αμετάβλητο. Κάθε pin στο τσιπ τροποποιείται για να περιλάβει τη λογική του καταχωρητή μετατόπισης που ορίζει το πρότυπο JTAG. Με αυτόν τον τρόπο, μια εξωτερική μονάδα μπορεί να παρακολουθεί και να ελέγχει όλα τα σημεία διασύνδεσης του τσιπ με το περιβάλλον του. Στην εικόνα 4.3 φαίνεται η αρχιτεκτονική του προτύπου JTAG.[2] -23-

28 Εικόνα 4.3: Αρχιτεκτονική του προτύπου JTAG[9] 4.7 Platform FPGA Μία σχετικά καινούργια κατηγορία τσιπ είναι τα Platform FPGAs (πλατφόρμες FPGA). Αυτή συνδυάζει διαφορετικούς τύπους προγραμματιζόμενων συστατικών. Ένα FPGA αυτού του τύπου έχει όλα τα απαραίτητα συστατικά για να υλοποιηθεί άμεσα ένα πλήρες σύστημα και απαιτεί λίγα, και ενδεχομένως καθόλου, πρόσθετα τσιπ. Φυσικά, ακριβώς από τι αποτελείται ένα πλήρες σύστημα είναι κάτι που το αποφασίζει ο σχεδιαστής οπότε υπάρχουν σημαντικές διαφορές στα στοιχεία τα οποία περιλαμβάνουν διαφορετικά Platform FPGAs. Σαφώς περιλαμβάνουν κάποια βασική δομή (fabric) όπως περιγράφηκε παραπάνω. Μπορούν επίσης να περιλάβουν Κεντρικές Μονάδες Επεξεργασίας, να ενσωματώνουν μνήμη, διεπαφές μνήμης, σειριακές διασυνδέσεις μεγάλης ταχύτητας ή διεπαφές λεωφόρων. -24-

29 Το προφανέστερο πλεονέκτημα ενός platform FPGA είναι τα υψηλά επίπεδα ολοκλήρωσης. Η υλοποίηση περισσότερων συναρτήσεων πάνω στο ίδιο τσιπ παρέχει διάφορα πλεονεκτήματα: Μικρότερο φυσικό μέγεθος. Πιο μικρή κατανάλωση ισχύος. Υψηλότερη αξιοπιστία. Η υλοποίηση διάφορων συναρτήσεων είναι επίσης σημαντική στην πραγματοποίηση πιο σύνθετων συναρτήσεων. Κάποιες διασυνδέσεις υποσυστήματος σε -υποσύστημα απαιτούν μεγάλο αριθμό συνδέσεων που μπορεί να μην είναι εφικτός στις συνδέσεις τσιπ- σε- τσιπ αλλά είναι αρκετά πιθανό να είναι εφικτός αν οι διασυνδέσεις πραγματοποιηθούν πάνω στο ίδιο τσιπ. Η μετακίνηση των συνδέσεων τσιπ- σε- τσιπ πάνω στο ίδιο τσιπ τις κάνει επίσης πολύ γρηγορότερες[2]. -25-

30 5 Μελέτη του XSOC - Αρχιτεκτονική της ομάδας εντολών Στην παρούσα εργασία υλοποιήθηκε η μελέτη και προσομοίωση του επεξεργαστή xr6 ο οποίος χρησιμοποιεί αρχιτεκτονική ομάδας εντολών τύπου RISC, διαχειρίζεται δεδομένα και εντολές μεγέθους 6 bit και εκτελεί πράξεις μεταξύ ακεραίων αριθμών, δηλαδή τα δεδομένα τα οποία επεξεργάζεται είναι όλα ακέραιοι προσημασμένοι ή μη προσημασμένοι αριθμοί μεγέθους 6 bit. Ο επεξεργαστής xr6 είναι ενσωματωμένος στο σύστημα απλού υπολογιστή XSOC το οποίο, βασισμένο στην τεχνολογία SoC (System on a Chip), περιλαμβάνει επιπλέον έναν ελεγκτή μνήμης, μια εσωτερική μνήμη RAM 6x6, ένα χειριστή βίντεο και ελεγκτές περιφερειακών συσκευών εισόδου/ εξόδου. Η αρχιτεκτονική της ομάδας εντολών (ορατή στον προγραμματιστή) απαρτίζεται από το αρχείο καταχωρητών (Register File), τη μνήμη (memory) που αποθηκεύει δεδομένα αλλά και εντολές, το Μετρητή Προγράμματος (Program Counter PC),καθώς και την όμαδα εντολών (instruction set)[6]. 5. Το αρχείο καταχωρητών Για την εκτέλεση μίας εντολής πολλές φορές είναι αναγκαία η μεταφορά ενός ή περισσοτέρων δεδομένων από τη μνήμη, η εύκολη πρόσβαση σε κάποια συγκεκριμένη διεύθυνση της μνήμης (π.χ. κατά την επιστροφή στην κανονική ροή του προγράμματος μετά από διακοπή), η επεξεργασία τους και η αποθήκευση του αποτελέσματος. Για να είναι σε θέση να πραγματοποιήσει τέτοιου είδους εντολές ο επεξεργαστής απαιτούνται καταχωρητές για να αποθηκεύουν τα δεδομένα που προσκομίζονται από τη μνήμη καθώς επίσης και τα αποτελέσματα των πράξεων μεταξύ αυτών των δεδομένων. Για το σκοπό αυτό διατηρεί αρχείο καταχωρητών που μπορεί να αποθηκεύσει 6 λέξεις των 6-bit. Οι καταχωρητές αυτοί έχουν καθορισμένο ρόλο ο καθένας που φαίνεται στον πίνακα 5.. Για την ελαχιστοποίηση του κόστους κλήσης των συναρτήσεων, τρία το πολύ -26-

31 ορίσματα, η διεύθυνση επιστροφής και το αποτέλεσμα κάθε πράξης περνούν κατευθείαν σε καταχωρητές.[7] Πίνακας 5.: Οι καταχωρητές Καταχωρητές (registers) r πάντα μηδέν r κατειλημμένος από τον assembler r2 το αποτέλεσμα της συνάρτησης r3-r5 τα ορίσματα της συνάρτησης r6-r9 πρόχειροι καταχωρητές r-r2 καταχωρητές μεταβλητών r3 δείκτης στοίβας (stack pointer-sp) r4 διεύθυνση επιστροφής από διακοπή r5 διεύθυνση επιστροφής 5.2 Ο μετρητής προγράμματος Ο μετρητής προγράμματος (Program Counter - PC) είναι ένα flip-flop μεγέθους 6 bit και αποθηκεύει τη διεύθυνση μνήμης της επόμενης εντολής που πρόκειται να εκτελεστεί. Το λιγότερο σημαντικό bit του μετρητή προγράμματος, το PC είναι καλωδιωμένο με το. Κατά την επαναφορά (reset), ο PC επιστρέφει στην τιμή. Κατά τη διαδοχική εκτέλεση των εντολών, ο μετρητής προγράμματος αυξάνει την τιμή του κατά 2 κάθε φορά, έτσι ώστε η εκτέλεση των εντολών να συμβαίνει διαδοχικά στη μνήμη. Οι εντολές διακλάδωσης (branch instructions) προσθέτουν μια μετατόπιση διακλάδωσης στο μετρητή προγράμματος κι έτσι επηρεάζουν την ομαλή ροή του προγράμματος. Οι εντολές άλματος (jal, call) φορτώνουν στο μετρητή προγράμματος την ενεργό διεύθυνση προορισμού και αποθηκεύουν τη διεύθυνση επιστροφής (τη διεύθυνση της επόμενης εντολής) στον αρμόδιο καταχωρητή (r5). Σε μια διακοπή, ο μετρητής προγράμματος παίρνει την τιμή της διεύθυνσης που ορίζει ο χειριστής διακοπών, ενώ η διεύθυνση της εντολής που διακόπηκε αποθηκεύεται στον αρμόδιο καταχωρητή (r4).[4] -27-

32 5.3 Η μνήμη Ο χώρος αποθήκευσης απαρτίζεται από πίνακα των 26 8-bit, bytes. Οι ακολουθίες των bit στη μνήμη μπορούν επίσης να μεταφραστούν ως λέξεις των 6-bit διάταξης μεγάλου άκρου ή 32 bit μεγάλες λέξεις. Οι εντολές αποθηκεύονται και φορτώνονται στη μνήμη, σε διάταξη μεγάλου άκρου (big endian). Για τη διεύθυνσιοδότηση των περιεχομένων της μνήμης ακολουθείται η μέθοδος διευθυνσιοδότησης κατά bit.[4] 5.4 Η ομάδα εντολών Το σύνολο των εντολών που μπορεί να εκτελέσει ο επεξεργαστής είναι γενικού σκοπού. Συνολικά οι εντολές που υποστηρίζονται είναι 4. Είναι όλες σταθερού μεγέθους των 6-bit, αποθηκεύονται και φορτώνονται στη μνήμη και έχουν σχεδιαστεί με σκοπό να αποκωδικοποιούνται και να ανακτώνται εύκολα και γρήγορα, κάτι που θα εξηγηθεί παρακάτω. Επίσης, διευθυνσιοδοτούνται κατά bit, κάτι που σημαίνει ότι υποστηρίζεται ανάκτηση και αποθήκευση bit και λέξεων, ενώ ο τρόπος διευθυνσιοδότησης είναι ένας, η διευθυνσιοδότηση καταχωρητή. Για την υποστήριξη μεγάλων ακεραίων (long ints) υπάρχει κρατούμενο αθροίσματος/ αφαίρεσης και ένας δεξιός/ αριστερός ολισθητής. Οι εντολές που χειρίζεται ο επεξεργαστής έχουν κάποια συγκεκριμένα χαρακτηριστικά βάσει της συχνότητας χρησιμοποίησης τους προκειμένου να ελαχιστοποιηθούν οι προσβάσεις στη μνήμη, και να αξιοποιηθούν όσο το δυνατό περισσότερο οι καταχωρητές που είναι γρήγορα προσβάσιμοι. Τα χαρακτηριστικά αυτά είναι: Οι εντολές add, sub και addi είναι τριών τελεστέων. 2 Λιγότερο συνηθισμένες εντολές (λογικές πράξεις, πρόσθεση/ αφαίρεση με κρατούμενο, και ολισθήσεις) είναι 2 τελεστέων προκειμένου να εξοικονομηθεί χώρος στην κωδικοποίηση. 3 Ο καταχωρητής r διαβάζει πάντα. 4 Χρησιμοποιούνται πεδία άμεσης προσπέλασης των 4-bit. 5 Για σταθερές μεγέθους 6-bit, ένα προαιρετικό άμεσο πρόθεμα (imm) των 4-bit επαληθεύει τα πιο σημαντικά 2 bits που ακολουθούν. -28-

33 6 Δεν υπάρχουν κώδικες συνθήκης, αντιθέτως χρησιμοποιείται διασυνδεδεμένη σύγκριση και ακολουθία συνθηκών διακλάδωσης. 7 Η εντολή jal (jump and link) μεταπηδά σε μια ενεργό διεύθυνση και σώζει τη διεύθυνση επιστροφής σε έναν καταχωρητή. 8 Η συνάρτηση call αποκωδικοποιεί την εντολή jal στον καταχωρητή r5,δηλαδή την jal func σε μια εντολή των 6-bit (δεδομένου ότι η συνάρτηση είναι διαμορφωμένη στα 6 byte) Η ομάδα εντολών του επεξεργαστή μπορεί να χωριστεί σε 6 διακριτές υποομάδες ανάλογα με τη σύνταξη, τη λειτουργία και τη φύση των τελεστέων.[4] 5.4. η υποομάδα : rrr [register register register]. Η μορφή (format) έχει ως εξής: Τα τέσσερα πιο σημαντικά bit καθορίζουν την πράξη που θα εκτελεστεί (op). Τα επόμενα τέσσερα καθορίζουν τον καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα (rd). Τα επόμενα τέσσερα καθορίζουν τον καταχωρητή του ενός τελεστέου (ra) και τα 4 λιγότερο σημαντικά bit τον καταχωρητή του άλλου τελεστέου (rb), όπως φαίνεται και στον πίνακα 5.2. Bits Format [5:2] op [:8] rd [7:4] ra [3:] rb Πίνακας 5.2: Το format της πρώτης υποομάδας της ομάδας εντολών Η πρώτη υποομάδα αποτελείται από τις αριθμητικές πράξεις πρόσθεσης και αφαίρεσης μεταξύ 2 καταχωρητών (ra και rb). Η διαμόρφωση των εντολών αυτών παρατίθεται στον πίνακα 5.3. Το αποτέλεσμα αποθηκεύεται στον καταχωρητή rd. Εντολή add sub [5:2] [:8] rd rd [7:4] ra ra [3:] rb rb Πίνακας 5.3: Οι εντολές πρόσθεσης και αφαίρεσης Κατά τη διάρκεια εκτέλεσης των εντολών αυτών η δυνατότητα διακοπής απενεργοποιείται. Η συμπεριφορά της εντολής είναι ακαθόριστη αν το rb είναι το αποτέλεσμα της προηγούμενης πράξης.[4] -29-

34 η υποομάδα : rri [register register immediate] Η μορφή (format) έχει ως εξής: Τα τέσσερα πιο σημαντικά bit καθορίζουν την πράξη που θα εκτελεστεί (op). Τα επόμενα τέσσερα καθορίζουν τον καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα (rd). Τα επόμενα τέσσερα καθορίζουν τον καταχωρητή του ενός τελεστέου (ra) και τα 4 λιγότερο σημαντικά bit τον άμεσο καταχωρητή (imm), όπως φαίνεται και στον πίνακα 5.4. Bits Format [5:2] op [:8] rd [7:4] ra [3:] imm Πίνακας 5.4: Το format της δεύτερης υποομάδας της ομάδας εντολών Η δεύτερη υποομάδα αποτελείται από εντολές που συσχετίζουν το περιεχόμενο του καταχωρητή ra και το περιεχόμενο του άμεσου καταχωρητή imm. Υποστηρίζεται η αριθμητική πρόσθεση μεταξύ των δύο, η ανάκτηση της λέξης που βρίσκεται στην ενεργό διεύθυνση που καθορίζεται προσθέτοντας τον ra και τον imm και αποθήκευση της στον rd (lw), η αποθήκευση λέξης στην ενεργό διεύθυνση που καθορίζεται προσθέτοντας τον ra και τον imm (sw), η ανάκτηση του bit που βρίσκεται στην ενεργό διεύθυνση που καθορίζεται προσθέτοντας τον ra και τον imm, συμπλήρωση των πιο σημαντικών bit με και αποθήκευση του στον rd (lb), η αποθήκευση του λιγότερο σημαντικού bit του rd στην ενεργό διεύθυνση που καθορίζεται προσθέτοντας τον ra και τον imm και η jal (jump and link) κατά την οποία η εκτέλεση των εντολών μεταπηδά στην ενεργό διεύθυνση που καθορίζεται προσθέτοντας τον ra και τον imm και η διεύθυνση επιστροφής (η διεύθυνση της επόμενης εντολής) αποθηκεύεται στον rd. Η διαμόρφωση των εντολών αυτών παρατίθεται στον πίνακα 5.5. Εντολή addi lw sw lb sb jal [5:2] A [:8] rd rd rd rd rd rd [7:4] ra ra ra ra ra ra [3:] imm imm imm imm imm imm Πίνακας 5.5: Οι εντολές πρόσθεσης με άμεσο τελεστέο, ανάκτησης και αποθήκευσης bit και λέξης και μεταπήδησης -3-

35 Κατά τη διάρκεια εκτέλεσης της εντολής addi, η δυνατότητα διακοπής απενεργοποιείται. H συμπεριφορά των εντολών sw και sb είναι ακαθόριστη αν το rd είναι το αποτέλεσμα της προηγούμενης πράξης.[4] η υποομάδα : rr [register register] Η μορφή (format) έχει ως εξής: Τα τέσσερα πιο σημαντικά bit είναι το χαρακτηριστικό της συγκεκριμένης μορφής εντολών, καθορίζει δηλαδή ότι πρόκειται για εντολή τύπου rr. Τα επόμενα τέσσερα καθορίζουν τον καταχωρητή από όπου θα φορτωθεί ο πρώτος τελεστέος και ταυτόχρονα τον καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα (rd). Τα επόμενα τέσσερα καθορίζουν την πράξη που θα εκτελεστεί μεταξύ των δύο τελεστέων, και τα 4 λιγότερο σημαντικά bit καθορίζουν τον καταχωρητή του ενός τελεστέου (rb), όπως φαίνεται και στον πίνακα 5.6. Bits Format [5:2] 3 [:8] rd [7:4] fn [3:] rb Πίνακας 5.6: Το format της τρίτης υποομάδας της ομάδας εντολών Η τρίτη υποομάδα αποτελείται από πράξεις μεταξύ του περιεχομένου του καταχωρητή rd και του περιεχομένου του καταχωρητή rb. Οι πράξεις που υποστηρίζονται είναι οι λογικές πράξεις AND, OR, XOR, AND-NOT (η λογική πράξη AND μεταξύ του rd και του συμπληρώματος του rb) και οι αριθμητικές πράξεις πρόσθεσης και αφαίρεσης με κρατούμενο εισόδου. Η διαμόρφωση των εντολών αυτών παρατίθεται στον πίνακα 5.7. Εντολή and or xor andn adc sbc [5:2] [:8] rd rd rd rd rd rd [7:4] [3:] ra ra ra ra ra ra Πίνακας 5.7: Οι εντολές τέλεσης λογικών πράξεων και πρόσθεσης και αφαίρεσης με κρατούμενο -3-

36 Κατά τη διάρκεια εκτέλεσης των εντολών adc και sbc η δυνατότητα διακοπής απενεργοποιείται. Επίσης για όλες της εντολές αυτής της υποομάδας, η συμπεριφορά είναι ακαθόριστη αν το rb είναι το αποτέλεσμα της προηγούμενης πράξης.[4] η υποομάδα : ri [register immediate] Η μορφή (format) έχει ως εξής: Τα τέσσερα πιο σημαντικά bit είναι το χαρακτηριστικό της συγκεκριμένης μορφής εντολών, καθορίζει δηλαδή ότι πρόκειται για εντολή τύπου ri. Τα επόμενα τέσσερα καθορίζουν τον καταχωρητή από όπου θα φορτωθεί ο πρώτος τελεστέος και ταυτόχρονα τον καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα (rd). Τα επόμενα τέσσερα καθορίζουν την πράξη που θα εκτελεστεί μεταξύ των δύο τελεστέων, και τα 4 λιγότερο σημαντικά bit καθορίζουν τον άμεσο καταχωρητή (imm), όπως φαίνεται και στον πίνακα 5.8. Bits Format [5:2] 4 [:8] rd [7:4] fn [3:] imm Πίνακας 5.8: Το format της τέταρτης υποομάδας της ομάδας εντολών Η τέταρτη υποομάδα αποτελείται από πράξεις μεταξύ του περιεχομένου του καταχωρητή ra και του περιεχομένου του άμεσου καταχωρητή imm. Σε αυτές περιλαμβάνονται οι λογικές πράξεις AND, OR, XOR, AND-NOT μεταξύ των καταχωρητών rd και imm, οι αριθμητικές πράξεις πρόσθεσης και αφαίρεσης με το κρατούμενο του αποτελέσματος της προηγούμενης πράξης και των καταχωρητών rd και imm, και πράξεις λογικής ολίσθησης (που σημαίνει ότι συμπληρώνει με τα κενά bit) του καταχωρητή rd αριστερά (slli) ή δεξιά (srli) κατά τον αριθμό των bits που περιγράφεται από τον imm και αριθμητική ολίσθηση (που σημαίνει ότι συμπληρώνει τα κενα bit με το πρόσημο του καταχωρητή προορισμού) δεξιά, κατά τον αριθμό των bits που περιγράφεται από τον imm. Η διαμόρφωση των εντολών αυτών παρατίθεται στον πίνακα 5.9. Εντολή andi ori xori -32- [5:2] [:8] rd rd rd [7:4] 2 [3:] imm imm imm

37 Εντολή andni adci sbci srli srai slli [5:2] [:8] rd rd rd rd rd rd [7:4] [3:] imm imm imm imm imm imm Πίνακας 5.9: Οι εντολές τέλεσης λογικών πράξεων με τον άμεσο τελεστέο, πρόσθεσης και αφαίρεσης με κρατούμενο εισόδου με τον άμεσο τελεστέο και οι εντολές ολίσθησης Κατά τη διάρκεια εκτέλεσης των εντολών adci και sbci η δυνατότητα διακοπής απενεργοποιείται. Για τις εντολές slli, srli και srai η συμπεριφορά είναι ακαθόριστη αν ο imm δεν ισούται με.[4] η υποομάδα: i2 [immediate:] Η μορφή (format) έχει ως εξής: Τα τέσσερα πιο σημαντικά bit καθορίζουν την εντολή που θα εκτελεστεί. Τα επόμενα 2 bit καθορίζουν τον imm2, όπως φαίνεται και στον πίνακα 5.. Bits Format [5:2] op [:] imm Πίνακας 5.: Το format της πέμπτης υποομάδας της ομάδας εντολών Η τέταρτη υποομάδα αποτελείται από 2 εντολές. Η call προκαλεί τη ολίσθηση στη συνάρτηση που προσδιορίζεται από το imm2 και αποθήκευση της διεύθυνσης επιστροφής (η διεύθυνση της επόμενης εντολής) στον r5. H εντολή immediate prefix (imm) εγκαθιστά τα 2 πιο σημαντικά bit του 6-bit immediate τελεστέου της εντολής που έπεται. Κατά τη διάρκεια εκτέλεσης της εντολής imm, η δυνατότητα διακοπής απενεργοποιείται. Η διαμόρφωση των εντολών αυτών παρατίθεται στον πίνακα 5..[4] Εντολή call imm [5:2] C D [:] imm imm Πίνακας 5.: Οι εντολές ολίσθησης βάσει του imm και προσδιορισμού του imm -33-

38 η υποομάδα: br [branch] Η μορφή (format) έχει ως εξής: Τα τέσσερα πιο σημαντικά bit είναι το χαρακτηριστικό της συγκεκριμένης μορφής εντολών, καθορίζει δηλαδή ότι πρόκειται για εντολή τύπου br. Τα επόμενα 4 bit καθορίζουν τη συνθήκη που θα διερευνηθεί, και τα λιγότερο σημαντικά 8 bit δείχνουν στην ετικέτα του προορισμού (disp), στην περίπτωση που η συνθήκη είναι TRUE, όπως φαίνεται και στον πίνακα 5.2. Bits Format [5:2] op [:8] condition [7:] disp Πίνακας 5.2: Το format της έκτης υποομάδας της ομάδας εντολών Η τέταρτη υποομάδα αποτελείται από εντολές διακλάδωσης βάσει συνθήκης. Εκτός από την εντολή br που είναι εντολή διακλάδωσης χωρίς συνθήκη, όλες οι υπόλοιπες, για την εκτέλεσή τους απαιτούν η προηγούμενη εντολή να είναι ένα πρόθεμα διακλάδωσης. Οι εντολές που εκτελούν είναι, διακλάδωση σε ετικέτα (disp) εάν οι τελεστέοι του προθέματος διακλάδωσης είναι ίσοι (beq), δεν είναι ίσοι (bne), αν το άθροισμα τους παράγει κάποιο υπόλοιπο (λαμβανόμενοι ως μη προσημασμένοι ακέραιοι) (bc), αν το άθροισμα τους δεν παράγει κάποιο υπόλοιπο (λαμβανόμενοι ως μη προσημασμένοι ακέραιοι) (bnc), αν το άθροισμα τους προκαλεί υπερχείλιση (λαμβανόμενοι ως προσημασμένοι ακέραιοι) (bv), αν το άθροισμα τους δεν προκαλεί υπερχείλιση (λαμβανόμενοι ως προσημασμένοι ακέραιοι) (bnv), αν ο πρώτος τελεστέος σε σχέση με το δεύτερο είναι μικρότερος (blt), μεγαλύτερος ή ίσος (bge), μικρότερος ή ίσος (ble), μεγαλύτερος (bgt) (λαμβανόμενοι ως προσημασμένοι 6-bit ακέραιοι), αν ο πρώτος τελεστέος σε σχέση με το δεύτερο είναι μικρότερος (bltu), μεγαλύτερος ή ίσος (bgeu), μικρότερος ή ίσος (bleu), μεγαλύτερος (bgtu) (λαμβανόμενοι ως μη προσημασμένοι 6-bit ακέραιοι). Η διαμόρφωση των εντολών αυτών παρατίθεται στον πίνακα 5.3.[4] Εντολή br beq -34- [5:2] B B [:8] 2 [7:] disp disp

39 Εντολή bne bc bnc bv bnv blt bge ble bgt bltu bgeu bleu bgtu [5:2] B B B B B B B B B B B B B [:8] A B C D E F [7:] disp disp disp disp disp disp disp disp disp disp disp disp disp Πίνακας 5.3: Οι εντολές διακλάδωσης -35-

40 6 Μελέτη του XSOC - Ο επεξεργαστής xr6 Ο xr6 είναι ένας απλός επεξεργαστής που χειρίζεται δεδομένα των 6 bit. Η λειτουργία του βασίζεται στις αρχές της αρχιτεκτονικής RISC με τον τρόπο που περιγράφηκε παραπάνω. Λειτουργεί στη συχνότητα των 33 MHz[7]. Ο επεξεργαστής δέχεται ένα σύνολο σημάτων ελέγχου από τη μονάδα ελέγχου, τα οποία ορίζονται ανάλογα με την εντολή που δέχεται ο επεξεργαστής προς εκτέλεση από τη μνήμη. 6. Τα εξωτερικά σήματα του επεξεργαστή Το σήμα «κλειδί» για την ορθή λειτουργία του επεξεργαστή είναι το σήμα ρολογιού (Clock Signal - CLK), ένα τετραγωνικό περιοδικό σήμα με συχνότητα λειτουργίας τα 33 ΜHz που συντονίζει όλες τις λειτουργίες του συστήματος αλλά και τις μονάδες που εκτελούν αυτές τις εργασίες. Το ρολόι του συστήματος είναι αρμόδιο να φροντίζει ώστε να ελαχιστοποιούνται ή ακόμα και να απαλείφονται οι συγκρούσεις μεταξύ δεδομένων που κινούνται μέσα στις αρτηρίες του συστήματος. Το επόμενο σημαντικό σήμα που ειδοποιεί τη μονάδα ελέγχου για το γεγονός ότι η μνήμη είναι έτοιμη να φορτώσει εντολές ή δεδομένα προς τη διαδρομή δεδομένων ή να αποθηκεύσει δεδομένα από τη διαδρομή δεδομένων προς τη μνήμη είναι το RDY (ready). Αν είναι ενεργοποιημένο (λογική κατάσταση ), η λειτουργία ανάκτησης/ αποθήκευσης (load/store) από και προς τη μνήμη μπορεί να εκτελεστεί, αλλιώς (λογική κατάσταση ) επιβάλλεται αναμονή της διαδικασίας έως ότου η μνήμη να ολοκληρώσει την τρέχουσα εργασία και να τεθεί σε ετοιμότητα για την επόμενη. Όταν ολοκληρωθεί επιτυχώς η εργασία προς τη μνήμη, ο τρέχων κύκλος εντολής ολοκληρώνεται. Το 6-bit σήμα εισόδου INSN5: είναι η λέξη εντολής η οποία πρόκειται να εκτελεστεί και η οποία φορτώνεται από τη μνήμη ως είσοδος στη μονάδα ελέγχου προκειμένου να ενεργοποιηθούν τα σήματα που απαιτούνται για την εκτέλεση της εντολής. Έπεται η διπλής κατεύθυνσης λεωφόρος δεδομένων από και προς τη μνήμη για τη ανάκτηση/ αποθήκευση δεδομένων, μεγέθους 6 bit D5:. -36-

41 READN είναι το σήμα με το οποίο ειδοποιεί η μονάδα ελέγχου τον ελεγκτή μνήμης ότι η επόμενη προσπέλαση είναι read, ενώ WORDN είναι αυτό το οποίο ειδοποιεί ότι η επόμενη προσπέλαση είναι 6-bit δεδομένα. AN5: είναι η επόμενη διεύθυνση μνήμης που πρόκειται να προσπελαστεί. ACE είναι το σήμα που οδηγεί την ενεργοποίηση του ρολογιού διευθύνσεων. Εφ όσον τα σήματα είναι έγκυρα, καλεί τη μνήμη να ξεκινήσει την επόμενη προσπέλαση. Ο ελεγκτής μνήμης/ λεωφόρου δεδομένων (memory/ bus controller) αποκωδικοποιεί τη διεύθυνση και ενεργοποιεί τη μνήμη ή το περιφερειακό που έχει επιλεγεί. Αργότερα ενεργοποιεί το σήμα RDY προκειμένου να δείξει ότι η πρόσβαση στη μνήμη ολοκληρώθηκε. Ο xr6 εμπεριέχει τη μονάδα ελέγχου (Control Unit), CTRL6 και τη διαδρομή δεδομένων (Datapath) DP6. Θα μπορούσαμε να ισχυριστούμε ότι ο xr6 είναι απλά ένα μονοπάτι δεδομένων που καθοδηγείται από τα σήματα που παράγει η μονάδα ελέγχου. Η μονάδα ελέγχου δέχεται την εντολή, ενεργοποιεί τις κατάλληλες συνδέσεις με τη μνήμη και οδηγεί τα κατάλληλα δεδομένα και σήματα της διαδρομής δεδομένων προκειμένου αυτή με τη σειρά της να εκτελέσει την τρέχουσα εντολή. Επίσης διαχειρίζεται τα τρία στάδια της διοχέτευσης προκειμένου να μην δημιουργηθούν συγκρούσεις ή άσκοπες καθυστερήσεις[7]. 6.2 Η διαδρομή δεδομένων Σκοπός της συγκεκριμένης λειτουργικής μονάδας είναι να εκτελεί μια εντολή ανά κύκλο ρολογιού. Η εντολή προσκομίζεται από τη μνήμη στη μονάδα ελέγχου, η οποία με τη σειρά της οδηγεί τα σήματα ελέγχου στη μνήμη και στη διαδρομή δεδομένων. Οι τελεστέοι, οι διευθύνσεις μνήμης, οι διευθύνσεις επιστροφής, και τα αποτελέσματα φυλάσσονται στο αρχείο καταχωρητών. Όλες οι διαδικασίες συγχρονίζονται με τη βοήθεια του χτύπου του ρολογιού του συστήματος. Αναλυτικότερα, για την εκτέλεση μιας εντολής ανά κύκλο χρησιμοποιείται ένα αρχείο καταχωρητών (register file) 6 εισόδων των 6 bit με δύο θύρες ανάγνωσης (read ports) και μια θύρα εγγραφής (write port) (γιατί όπως αναφέρθηκε και παραπάνω μία εντολή μπορεί να χρειαστεί το πολύ 2 τελεστέους πηγής και έναν τελεστέο αποτελέσματος, π.χ. η εντολή add r3,r,r2), έναν πολυπλέκτη (multiplexer - mux) άμεσου τελε- -37-

42 στή (immediate operand) για να επιλέγει το άμεσο πεδίο ως τελεστή, μία αριθμητική/ λογική μονάδα (ALU), έναν ολισθητή (shifter) και έναν αθροιστή ενεργού διεύθυνσης ώστε να υπολογίζει καταχωρητή + ολίσθηση. Χρειαζόμαστε επίσης έναν πολυπλέκτη αποτελέσματος (Result Multiplexer) για να επιλέγει το αποτέλεσμα από τον αθροιστή, τη λογική μονάδα, τον αριστερό ή δεξιό ολισθητή, τη διεύθυνση επιστροφής, ή τη ανάκτηση δεδομένων, μια λογική μονάδα για ελέγχει αν το αποτέλεσμα είναι, αρνητικό, εάν υπάρχει κρατούμενο εξόδου ή υπερχείλιση, ένα μετρητή προγράμματος, μια μονάδα που θα αυξάνει τον αθροιστή προγράμματος, έναν αθροιστή μετατόπισης διακλάδωσης, έναν πολυπλέκτη που θα φορτώνει το μετρητή προγράμματος με τη διεύθυνση προορισμού σε εντολή ολίσθησης, και έναν πολυπλέκτη να διαμοιράζει τη θύρα μνήμης μεταξύ της ανάκτησης εντολής (instruction fetch, addr<- PC) και ανάκτησης/ αποθήκευσης δεδομένων από ενεργό διεύθυνση (addr<-effective address).[4][7] Υπάρχουν τρεις τύποι πόρων: Η μονάδα εκτέλεσης (execution unit): είναι η καρδιά του επεξεργαστή. Στην εικόνα 6. φαίνονται τα συστατικά του μέρη. Φορτώνει τις εντολές από το αρχείο καταχωρητών και τα άμεσα πεδία του καταχωρητή εντολής, τις υποβάλλει στην αριθμητική/ λογική μονάδα, και (συνήθως) στις μονάδες ολίσθησης και γράφει το αποτέλεσμα στο αρχείο καταχωρητών. Εικόνα 6.: Η δομή της μονάδας εκτέλεσης -38-

43 Ο πολυπλέκτης αποτελέσματος (result muptiplexer): Ο πολυπλέκτης αποτελέσματος (result muptiplexer) επιλέγει ένα αποτέλεσμα από τις πολλές λειτουργικές μονάδες Η δομή του φαίνεται στην εικόνα 6.2. Εικόνα 6.2: Η δομή του πολυπλέκτη αποτελέσματος Μονάδα διευθυνσιοδότησης/ μετρητή προγράμματος (address/pc unit): οδηγεί την επόμενη διεύθυνση μνήμης και περιέχει το μετρητή προγράμματος, τον αθροιστή του μετρητή προγράμματος, και τον πολυπλέκτη διεύθυνσης. Η δομή της μονάδας διευθυνσιοδότησης/ μετρητή προγράμματος φαίνεται στην εικόνα

44 Εικόνα 6.3: Η δομή της μονάδας διευθυνσιοδότησης και μετρητή προγράμματος 6.2. Η μονάδα εκτέλεσης της διαδρομής δεδομένων Αρχείο Καταχωρητών Κάθε αρχείο καταχωρητών REGFILE είναι ένα μπλοκ RAM 6x6. Εφ όσον κάθε CLB έχει 2 4-LUTs, καθένα από τα οποία μπορεί και λειτουργεί ως 6x-bit RAM, κάθε REGFILE είναι μια στήλη από 8 CLBs. Επίσης, κάθε REGFILE έχει έναν εσωτερικό καταχωρητή εξόδου των 6-bit που λαμβάνει την έξοδο της RAM σε κάθε αρνητική αιχμή του ρολογιού.[4] Κατά τη διάρκεια κάθε κύκλου, πρέπει να διαβάζουμε δύο τελεστές καταχωρητών και να γράφουμε ένα αποτέλεσμα. Έχουμε δυο θύρες ανάγνωσης (AREG, BREG) κρατώντας δυο αντίγραφα του 6x6-bit αρχείου καταχωρητών REGFILE, και διαβάζουμε έναν τελεστέο από το καθένα. Σε κάθε κύκλο πρέπει να γράφουμε την ίδια τιμή αποτελέσματος και στα δυο αντίγραφα. Οπότε, για κάθε αρχείο καταχωρητών και κάθε κύκλο ρολογιού, πρέπει να γίνεται μια προσπέλαση ανάγνωσης και μία προσπέλαση εγγραφής. Η ανάγνωση και εγγραφή του REGFILE χρειάζονται δυο κύκλους ρολογιού. Για να επιτευχθεί η ανάγνωση και εγγραφή σε έναν κύκλο ρολογιού, εξαναγκάζουμε το REGFILE σε λειτουργία διπλάσιου κύκλου. Στο πρώτο μισό κάθε κύκλου η μονάδα -4-

45 ελέγχου παρουσιάζει έναν αριθμό καταχωρητή τελεστέου πηγαίας θύρας ανάγνωσης στην είσοδο διευθύνσεων RAM. Ο επιλεγμένος καταχωρητής διαβάζεται και κρατιέται στον καταχωρητή εξόδου του REGFILE, στην αρνητική αιχμή του ρολογιού. Αυτό φαίνεται στην εικόνα 6.4 με την προσομοίωση του AREG. Στη θετική αιχμή του ρολογιού το αρχείο καταχωρητών διαβάζει την είσοδο D=()2 στη διεύθυνση Α=()2. Στην αρνητική αιχμή του ρολογιού η είσοδος φαίνεται στην έξοδο Q. Εικόνα 6.4: Προσομοίωση της διαδικασίας εγγραφής και ανάγνωσης στο αρχείο καταχωρητών AREG Αυτό σχεδιαστικά επιτυγχάνεται ως εξής: Ο χτύπος του ρολογιού διοχετεύεται στη διάταξη RAM6xs που χρησιμοποιείται για την αποθήκευση κάθε bit κάθε λέξης, και αντεστραμμένος στο flip-flop για να το εξαναγκάσει στη διαδικασία της εξόδου, με τον τρόπο που φαίνεται και στην εικόνα 6.5. Εικόνα 6.5: Η δομή του αρχείου καταχωρητών Στο δεύτερο μισό του κύκλου, η μονάδα ελέγχου οδηγεί τον αριθμό καταχωρητή της θύρας εγγραφής. Στη θετική αιχμή του ρολογιού, το RESULT5: έχει γραφτεί στον καταχωρητή προορισμού.[4][7] -4-

46 Επιλογή τελεστέων Εφ όσον έχουμε τους δυο πηγαίους καταχωρητές, AREG και BREG, επιλέγουμε τώρα τους τελεστέους Α και Β και τους συνδέουμε στους Α και Β καταχωρητές. Ο τελεστέος Α είναι ο AREG αν η εντολή δεν εξαρτάται από την προηγούμενη. Ο FWD, ένας 6-bit πολυπλέκτης που επιλέγει μεταξύ του AREG ή του RESULT, επιτρέπει στο RESULT να συμμετέχει στην πράξη. Αποτελείται από 6 x -bit πολυπλέκτες, καθένας από τους οποίους έχει εισόδους που υλοποιούνται από ένα 4LUT και διατίθενται ως μια στήλη των 8-CLBs. Το αποτέλεσμα του FWD κρατιέται από τον Α καταχωρητή τελεστέου, ο οποίος αποτελείται από 6 flip-flops στο ίδιο CLB. Όσον αφορά το Β τελεστέο, επιλέγεται είτε η θύρα εξόδου του BREG καταχωρητή, είτε η άμεση σταθερά.[4][7] Παρακάτω, στην εικόνα 6.6 φαίνεται η λειτουργία της ανάκτησης των τελεστέων από το αρχείο καταχωρητών, ο υπολογισμός των αποτελεσμάτων από τη λογική και την αριθμητική μονάδα και η επιλογή του αποτελέσματος από τον πολυπλέκτη αποτελεσμάτων. Στον πρώτο χτύπο του ρολογιού δίνουμε τιμή στο αρχείο καταχωρητών, Α = ()2 και Β = ()2 και τα κατάλληλα σήματα ελέγχου, προκειμένου να γίνει εγγραφή στο αρχείο, RFWE =, να υπαγορευτεί το είδος της πράξης που θα γίνει από την αριθμητική μονάδα (ADD = άρα θα γίνει πρόσθεση), το είδος της πράξης που θα γίνει από τη λογική μονάδα (LOGICOP = άρα θα εκτελεστεί η λογική πράξη AND). Επειδή ο επιλογέας του πολυπλέκτη FWD είναι, η πράξη εκτελείται με πρώτο τελεστή το περιεχόμενο του καταχωρητή AREGS. Στο δεύτερο κύκλο ρολογιού υπολογίζονται τα αποτελέσματα των πράξεων της αριθμητικής και λογικής μονάδας και τα σήματα ενεργοποίησης επιτρέπουν μόνο στο αποτέλεσμα της αριθμητικής μονάδας να περάσει στη λεωφόρο του αποτελέσματος (όλα τα σήματα ενεργοποίησης των buffer τριών καταστάσεων είναι στη λογική κατάσταση, εκτός από το SUMT που είναι ). Στον τρίτο κύκλο ρολογιού ενεργοποιούμε το σήμα FWD με αποτέλεσμα ο πρώτος τελεστέος της επόμενης πράξης να είναι το αποτέλεσμα της προηγούμενης. Στη θετική αιχμή του ρολογιού, το νέο αποτέλεσμα φτάνει στo pin RESULT5:. Παρατηρούμε επίσης, ότι στον πρώτο κύκλο ρολογιού, που δεν υπάρχει προηγούμενο αποτέλεσμα, η τιμή του RESULT5: είναι, ο ανιχνευτής μηδέν (ZERODET) είναι. Ο Ζ, ZERODET (zero-detector), ανιχνεύει εάν η έξοδος SUM5: είναι μηδέν. Αν είναι ενεργοποιείται. -42-

47 Εικόνα 6.6: Η προσομοίωση της διαδικασίας επιλογής τελεστέων από τα αρχεία καταχωρητών και από το αποτέλεσμα της προηγούμενης πράξης Ενεργοποιώντας τους buffers τριών καταστάσεων UDBUF και LDBUF παίρνουμε ως αποτέλεσμα το περιεχόμενο του καταχωρητή DOUT. Η προσομοίωση αυτής της διαδικασίας φαίνεται στην εικόνα 6.7. Το RESULT5:8 αντλείται από την έξοδο του UDBUF και το RESULT7: αντλείται από την έξοδο του LDBUF οι οποίες είναι οι είσοδοι DOUT5:8 και DOUT7:. Στο δεύτερο κύκλο ρολογιού, ενεργοποιούμε τους buffers UDBUF και UDLDBUF με αποτέλεσμα το RESULT5:8 και το RESULT7: παίρνεται από την έξοδο των UDBUF και UDLDBUF οι οποίες είναι η είσοδος DOUT5:8. Στον επόμενο κύκλο, ενεργοποιούμε τους buffers ZHBUF και UDLDBUF με αποτέλεσμα το RESULT5:8 και το RESULT7: παίρνεται από την έξοδο των ZHBUF και UDLDBUF οι οποίες είναι το και η είσοδος DOUT5:8. Στον τελευταίο κύκλο ρολογιού ενεργοποιούμε τους buffers ZHBUF και LDBUF με αποτέλεσμα το RESULT5:8 και το RESULT7: παίρνεται από την έξοδο των ZHBUF και LDBUF οι οποίες είναι το και η είσοδος DOUT7:. -43-

48 Εικόνα 6.7: Η προσομοίωση της διαδικασίας επιστροφής αποτελέσματος από τους tristate buffers LDT, UDT και UDLDT Για τις εντολές των μορφών, rri και ri, το Β είναι το 4-bit - ή πρόσημο- άμεσο πεδίο του καταχωρητή εντολής. Αλλά, αν υπάρχει άμεσο πρόθεμα, φορτώνει το Β5:4 με το 2-bit imm2 πεδίο, και έπειτα φορτώνει το Β3:, όταν αποκωδικοποιεί τις rri ή ri εντολές που έπονται. Οπότε, ο πολυπλέκτης Β τελεστέου IMMED επιλέγει μεταξύ του μεγέθους 6-bit είτε BREG 5:4 IR3:, sign5:4 IR3:, είτε IR5:4 3:. Για τη λειτουργία της συμπλήρωσης με /πρόσημο, χρησιμοποιήθηκε ένας πολυπλέκτης 2- με τετραπλή είσοδο σταθεράς εξαναγκασμού (force constant), κυρίως γιατί ταιριάζει με ένα 4-LUT. Ομοίως με το FWD, το IMMED είναι μια στήλη 8 CLBs. Ο καταχωρητής τελεστέου Β χρησιμοποιεί τα 6 flip-flops του CLB του IMMED. Ο καταχωρητής τελεστέου έχει διαφορετική ενεργοποίηση ρολογιού για τα Β5:4 και Β3:, ώστε να επιτυγχάνεται η ξεχωριστή ανάκτηση των πιο σημαντικών και των λιγότερο σημαντικών bit του άμεσου προθέματος. Για τις εντολές sw και sb διαβάζεται ο καταχωρητής που είναι να αποθηκευτεί με τη βοήθεια του BREG στο DOUT5: που είναι ακόμα μια στήλη των 8 CLB flip-flops. -44-

49 Αριθμητική Λογική Μονάδα - ALU Η αριθμητική λογική μονάδα αποτελείται από έναν 6-bit αθροιστή/ αφαιρέτη και μια 6-bit λογική μονάδα, που παράλληλα κάνουν υπολογισμούς με τους Α και Β τελεστέους. Η ADDSUB προσθέτει το Β στο Α ή αφαιρεί το B από το Α, ανάλογα με την τιμή της εισόδου του σήματος ADD. Διαβάζει το κρατούμενο εισόδου (CI) και οδηγεί το κρατούμενο εξόδου (CO) και την υπερχείλιση (V). Το ADDSUB είναι ένα παράδειγμα χρήσης του συμβόλου βιβλιοθήκης ADSU6, και αποτελείται από CLBs, ένα για να διαδίδει το κρατούμενο στον αθροιστή/ αφαιρέτη, 8 για να εκτελούν πρόσθεση/ αφαίρεση μεταξύ των Α και Β, και ένα για να υπολογίζει το κρατούμενο εξόδου ή την υπερχείλιση. Στην εικόνα 6.8 φαίνεται η προσομοίωση του 6-bit αθροιστή/ αφαιρέτη για διάφορες τιμές εισόδου. Εικόνα 6.8: Η προσομοίωση του 6-bit αθροιστή/ αφαιρέτη για διάφορες τιμές εισόδου Η LOGIC υπολογίζει το 6-bit αποτέλεσμα του Α AND B, A OR B, A XOR B ή A ANDNOT B, ανάλογα με το σήμα επιλογής LOGICOP:. Κάθε έξοδος της λογικής μονάδας είναι μία έξοδος των τεσσάρων εισόδων Ai, Bi και LOGICOP: και συμπεριλαμβάνεται σε ένα 4-LUT. Έτσι, η 6-bit λογική μονάδα είναι μια στήλη των 8 CLB. Στην εικόνα 6.9 φαίνεται η προσομοίωση της LOGIC για διάφορες τιμές εισόδου και για τις τέσσερις διαφορετικές λογικές πράξεις που υποστηρίζονται. -45-

50 Εικόνα 6.9: Η προσομοίωση της LOGIC Ο ολισθητής παράγει είτε τη δεξιά ολίσθηση του Α (Α>>) είτε την αριστερή ολίσθηση (Α<<). Γι αυτή τη λειτουργία δε χρειάζεται λογική μονάδα, οπότε ένας πολυπλέκτης επιλέγει απλά είτε το SRI Α5: είτε το Α4:. Το SRI προσδιορίζει εάν η ολίσθηση είναι αριθμητική () ή λογική (). Παρακάτω στην εικόνα 6. φαίνονται τα τρία είδη ολίσθησης που υποστηρίζονται, δηλαδή αριθμητική δεξιά ολίσθηση, λογική αριστερή ολίσθηση και λογική δεξιά ολίσθηση. Εικόνα 6.: Προσομοίωση των ολισθητών Ο Πολυπλέκτης αποτελεσμάτων Ο πολυπλέκτης αποτελεσμάτων επιλέγει το αποτέλεσμα μεταξύ των εξόδων του αθροιστή/ αφαιρέτη, της λογικής μονάδας, του δεξιού ή αριστερού ολισθητή κατά, της ανάκτησης δεδομένων ή της επιστροφής διεύθυνσης. Ο 6-bit πολυπλέκτης 7- υλοποιείται με τη χρήση πολλών buffers τριών καταστάσεων (tri-state buffers -TBUFs). Σε κάθε κύκλο, η μονάδα ελέγχου στέλνει το σήμα -46-

51 ενεργοποίησης ενός από τα σήματα-επιλογής, οδηγώντας έτσι, το αποτέλεσμα της εντολής που εκτελέστηκε στο RESULT5:. Σε όλα τα παραπάνω σχήματα φαίνεται η λειτουργία κατά την προσομοίωση του πολυπλέκτη αποτελεσμάτων Η Μονάδα διευθυνσιοδότησης / μετρητή προγράμματος Αυτή η μονάδα δημιουργεί διευθύνσεις μνήμης για τη ανάκτηση των εντολών, ανάκτηση/ αποθήκευση και DMA προσβάσεις στη μνήμη. Για κάθε θετικό παλμό του ρολογιού, ο μετρητής προγράμματος (PC) αυξάνεται κατά δύο (η χρονική στιγμή t στην εικόνα 6. της προσομοίωσης) προκειμένου να φορτώσει την επόμενη εντολή. Για μια διακλάδωση (branch instruction) προσθέτουμε στο τρέχον PC, 2 x disp8 (η χρονική στιγμή t2 στην εικόνα 6. της προσομοίωσης). Για τις εντολές jal και call, φορτώνουμε τον PC με την ενεργό διεύθυνση SUM από την ADDSUΒ (η χρονική στιγμή t4 στην εικόνα 6.2 της προσομοίωσης). Ο PCINCR προσθέτει τον PC και την έξοδο του πολυπλέκτη PCDISP (ή το 2 ή τη μεταπήδηση διακλάδωσης) και δίνει το PCNEXT. Ο ADDRMUX επιλέγει το PCNEXT ή το SUM ως την επόμενη διεύθυνση μνήμης. Εάν η επόμενη πρόσβαση στη μνήμη είναι μια ανάκτηση εντολής, το ADDR παίρνει την τιμή του PCNEXT και PCCE (PC clock enable) ετοιμάζεται να αναβαθμίσει τoν PC με τον PCNEXT (η χρονική στιγμή t στην εικόνα 6. της προσομοίωσης). Εάν η επόμενη πρόσβαση στη μνήμη είναι ανάκτηση/ αποθήκευση, τα SELPC και PCCE είναι και το ADDR παίρνει την τιμή του SUM, χωρίς την αναβάθμιση του PC (η χρονική στιγμή t3 στην εικόνα 6.2 της προσομοίωσης). Το PCDISP είναι ένας 6-bit πολυπλέκτης που επιλέγει μεταξύ του +25: και του 2 x disp8, μια στήλη των 5 CLBs.Ο PCINCR είναι ένα παράδειγμα χρήσης του συμβόλου βιβλιοθήκης ADD6, μια στήλη των 9 CLBs. Ο ADDRMUX είναι ένας 6-bit 2- πολυπλέκτης με μία τέταρτη είσοδο ZERO, για να επανεκινεί το μετρητή προγράμματος (η χρονική στιγμή t5 στην εικόνα 6.2 της προσομοίωσης). -47-

52 Εικόνα 6.: Προσομοίωση της λειτουργίας της μονάδας διευθυνσιοδότησης (από 38ns ως 57ns) Εικόνα 6.2: Προσομοίωση της λειτουργίας της μονάδας διευθυνσιοδότησης (από 57ns ως 83ns) 6.3 Η μονάδα ελέγχου (Control Unit) CTRL Σχεδίαση της Μονάδας Ελέγχου Κάποια ονόματα σημάτων της μονάδας ελέγχου έχουν προθέματα και καταλήξεις για να αναγνωρίζεται η λειτουργία ή το περιεχόμενο τους. Τα περισσότερα σήματα είναι του σταδίου DC. -48-

53 Nsig: not-signal. Αντεστραμμένο σήμα. DCsig: σήμα του σταδίου DC. EXsig: σήμα του σταδίου EX. sign: σήμα στον επόμενο κύκλο. Είσοδος σε flip-flop του οποίου η έξοδος είναι sig. sigce: ενεργοποίηση ρολογιού του flip-flop. sigt: ενεργοποίηση εξόδου χαμηλή ενός buffer τριών καταστάσεων. Η κάθε εντολή περνά μέσα από τα τρία στάδια της σωλήνωσης της μονάδας ελέγ- χου. Στο στάδιο IF, όταν η ανάγνωση ανάκτησης εντολής ολοκληρώνεται η νέα εντολή στο INSN5: μανταλώνεται στον IR. Στο στάδιο αποκωδικοποίησης εντολής DC, η DECODE αποκωδικοποιεί τον IR για να παράγει τα εσωτερικά σήματα ελέγχου. Στο πρώτο μισό του κύκλου ρολογιού, η CTRL οδηγεί τα RNA3: και RNB3: με τους πηγαίους καταχωρητές προς ανάγνωση και οδηγεί το FWD και το IMM5: για να επιλέξουν τους τελεστέους Α και Β. Εάν η εντολή είναι διακλάδωση, η CTRL καθορίζει το που θα μεταπηδήσει το πρόγραμμα. Αργότερα, όσο εξελίσσεται η σωλήνωση, η εντολή προχωρά στο EXIR. Στο EX στάδιο, η CTRL6 οδηγεί την ALU και τους πολυπλέκτες αποτελέσματος. Αν η εντολή είναι ανάκτησης/ αποθήκευσης, εισάγει μια προσπέλαση στη μνήμη. Στο τελευταίο μισό του κύκλου, τα RNA και RNB μαζί οδηγούν το νούμερο καταχωρητή προορισμού για να αποθηκευτεί το αποτέλεσμα στο αρχείο καταχωρητών.[4][7] Control FSM H Control Fine State Machine έχει τρία στάδια: IF: η τρέχουσα προσπέλαση στη μνήμη είναι ένας κύκλος ανάκτησης εντολής. DMA: η τρέχουσα προσπέλαση είναι προσπέλαση DMA. LS: η τρέχουσα προσπέλαση είναι ανάκτηση/ αποθήκευση. Η FSM λειτουργεί όταν μια συναλλαγή με τη μνήμη ολοκληρωθεί και μία άλλη ξεκινάει (RDY). Η CTRLFSM έχει και διάφορα άλλα διακριτά στάδια. DCANNUL: ακύρωση του σταδίου DC. EXANNUL: ακύρωση του σταδίου ΕΧ. DCINT: int στο στάδιο DC. ΙΝΤP: διακοπή σε αναμονή. -49-

54 Τα DCANNUL και EXANNUL ενεργοποιούνται μετά την εκτέλεση μιας ολίσθησης ή διακλάδωσης. Έτσι εμποδίζεται κάθε συνέπεια που μπορεί να προκύψει από δυο εντολές στη σκιά της διακλάδωσης, συμπεριλαμβανομένης της εγγραφής στο αρχείο καταχωρητών και προσπελάσεις μνήμης ανάκτησης/αποθήκευσης. Οπότε, μια εντολή πρόσθεσης που ακυρώνεται, εξακολουθεί να φορτώνει και να προσθέτει τους τελεστέους, αλλά τα αποτελέσματά της, δεν καταλήγουν στο αρχείο καταχωρητών. Το DCINT τίθεται στον κύκλο σωλήνωσης, ακολουθώντας την εισαγωγή της εντολής διακοπής (int). Αυτό εμποδίζει την πρόοδο του ρολογιού του RET για ένα κύκλο, έτσι ώστε η εντολή διακοπής να πάρει τη διεύθυνση επιστροφής της εντολής που διακόπηκε αντί για την εντολή μετά από αυτή. Το σημαντικότερο σήμα εξόδου ελέγχου είναι το PCE, το σήμα ενεργοποίησης ρολογιού της σωλήνωσης. Οι περισσότεροι καταχωρητές της διαδρομής δεδομένων ενεργοποιούνται από αυτό το σήμα. Αυτό υποδηλώνει ότι όλα τα στάδια της σωλήνωσης είναι σε ετοιμότητα και ότι η σωλήνωση μπορεί να προχωρήσει. Το PCE ενεργοποιείται τη στιγμή την οποία τα σήματα RDY ολοκληρώνουν τον κύκλο στον τελευταίο κύκλο εντολής του τρέχοντος κύκλου σωλήνωσης. Εάν η μνήμη δεν είναι έτοιμη, το PCE δεν ενεργοποιείται και ο κύκλος σωλήνωσης αναβάλλεται για ένα κύκλο. Επίσης, η Control FSM χειρίζεται τη διεπαφή μνήμης μέσω των παρακάτω σημάτων: RDY: ολοκληρώνεται ο κύκλος μνήμης (διοχετεύεται ως είσοδος από τον ελεγκτή μνήμης). READN: ο επόμενος κύκλος μνήμης είναι μια εκτέλεση ανάγνωσης (είναι αληθές, εκτός των περιπτώσεων αποθήκευσης). WORDN: ο επόμενος κύκλος μνήμης είναι 6- bit δεδομένων (είναι αληθές, εκτός των περιπτώσεων ανάκτησης/αποθήκευσης). DBUSN: ο επόμενος κύκλος μνήμης είναι ανάκτηση/ αποθήκευση (load/store) και απαιτείται ο δίαυλος δεδομένων του τσιπ. ACE- (address clock enable): η επόμενη διεύθυνση AN5: (έξοδος της διαδρομής δεδομένων) και τα σήματα εξόδου ελέγχου είναι όλα έγκυρα, οπότε δίνεται εντολή να ξεκινήσει νέα συναλλαγή με τη μνήμη στον επόμενο κύκλο ρολογιού. Το ACE είναι ισοδύναμο με το RDY γιατί, εάν η μνήμη είναι έτοιμη η CPU είναι πάντα έτοιμη να ξεκινήσει μία επόμενη συναλλαγή με τη μνήμη. -5-

55 Για το στάδιο ανάκτησης εντολής, δεν υπάρχουν σήματα εξόδου. Εσωτερικά στη μονάδα ελέγχου, τρία σήματα ελέγχουν τους πόρους αυτού του σταδίου: PCE: ενεργοποίηση του ρολογιού των καταχωρητών IR και EXIR. IF: ενεργοποιείται σε εντολή ανάκτησης του κύκλου μνήμης. IFINT: εξαναγκάζει την επόμενη εντολή να είναι int = jal r4, (r)=xae. Εάν εκκρεμεί μια πρόσβαση DMA ή ανάκτηση/ αποθήκευση, το στάδιο ανάκτησης εντολής ενεργοποιεί τον καταχωρητή NEXTIR ώστε να σώσει την εντολή που φορτώθηκε στον προηγούμενο κύκλο ανάκτησης εντολής. Διαφορετικά, η ανάκτηση εντολής είναι η μοναδική προσπέλαση μνήμης στο στάδιο της σωλήνωσης. Άρα, το στάδιο ανάκτησης εντολής ενεργοποιείται με το PCE, και το IRMUX επιλέγει ως είσοδο την εντολή INSN5: ως την επόμενη προς εκτέλεση εντολή.[4][7] Το στάδιο της αποκωδικοποίησης Το πιο σημαντικό και εκτενές σημείο της μονάδας ελέγχου είναι το στάδιο της αποκωδικοποίησης της εντολής. Ο ρόλος του είναι να αποκωδικοποιήσει την επόμενη εντολή, να χειρίζεται το αρχείο καταχωρητών, τους πολυπλέκτες των Α και Β τελεστέων και να προετοιμάσει τα περισσότερα από τα σήματα του σταδίου εκτέλεσης. Ο καταχωρητής εντολής IR μανταλώνει τη νέα λέξη εντολής στην αρχή του σταδίου αποκωδικοποίησης. Οι buffers ΙΡΒ και IMMB διασπούν την εντολή, ξεχωρίζοντας τα πεδία εντολής OP, RD κ.ο.κ. (το πεδίο IR5:2 μετονομάζεται σε OP3: κτλ). Ο αποκωδικοποιητής εντολών DECODE είναι μια απλή συσκευή, που αποτελείται από 3 διατάξεις ROM 6xs και τέσσερα flip-flops. Η κάθε ROM δέχεται ως είσοδο τον opcode OP3: ή τον EXOP3: και δίνει ως έξοδο κάποιο αποκωδικοποιημένο σήμα. Ο αποκωδικοποιητής είναι σχετικά συνεκτικός γιατί ο xr6 έχει σχετικά απλή ομάδα εντολών των οποίων οι 4-bit opcodes ταιριάζουν απόλυτα στα 4-LUTs του FPGA.[4][7] Τα σήματα που παράγονται από τη μονάδα DECODE διοχετεύονται ως είσοδοι στις υπόλοιπες υπομονάδες του σταδίου αποκωδικοποίησης, στο στάδιο της εκτέλεσης και στην Control FSM. Για κάθε διαφορετική είσοδο παράγονται και τα αντίστοιχα σήματα όπως προέκυψε από την προσομοίωση της DECODE και παρατίθεται στον πίνακα

56 Πίνακας 6.: Οι έξοδοι της DECODE ανάλογα με την είσοδο Προς το υποστάδιο της επιλογής τελεστέων και συγκεκριμένα για τον προσδιορισμό του RNA διοχετεύονται τα σήματα RRRI, CALL, EXRESULTS και EXCALL, -52-

57 ενώ για τον προσδιορισμό του RNB διοχετεύονται τα σήματα ST και EXCALL. Για τον προσδιορισμό του αμέσου τελεστέου χρησιμοποιούνται τα σήματα IMM_4, IMM_2, SEXTIMM4, WORDIMM4, EXIMM. Το σήμα EXRESULTS είναι όταν περιμένουμε από την προς εκτέλεση εντολή κάποιο αποτέλεσμα. Προς το υποστάδιο των διακλαδώσεων υπό συνθήκη διοχετεύονται τα σήματα BR, το οποίο στην περίπτωση που έχουμε εντολή διακλάδωσης είναι, και το EXJAL αφορά τον υπολογισμό του JUMP. Προς την Control FSM διοχετεύονται τα σήματα DCINTINH, EXLDST, EXST, EXLBSB. Προς το στάδιο της εκτέλεσης διοχετεύονται τα εξής σήματα: Στην υπομονάδα Τ διοχετεύονται τα σήματα NSUM, NLOGIC, NLW και NLD, ενώ στην Τ2 τα NLB, NSR, NSL και NJAL. Στον υπολογισμό του CI συμμετέχουν τα σήματα ADCSBC και NSUB. Το σήμα EXNSUB αφορά τον υπολογισμό του σήματος ADD, το EXFNSRA αφορά το SRI. Όπως φαίνεται και από τα αποτελέσματα της προσομοίωσης, η έξοδος RRRI είναι για τις εντολές των λογικών πράξεων, της πρόσθεσης και της αφαίρεσης με κρατούμενο εισόδου, λογικές πράξεις μεταξύ περιεχομένου καταχωρητή και αμέσου τελεστέου και στις ολισθήσεις. Η έξοδος SEXTIMM4 είναι ενεργοποιημένη στις παραπάνω και επιπλέον στην εντολή της πρόσθεσης μεταξύ περιεχομένου καταχωρητή και αμέσου τελεστέου, ενώ η IMM_4 σε όλες τις παραπάνω και επιπλέον στις εντολές ανάκτησης/αποθήκευσης λέξης ή byte και jump-and-link. Η έξοδος IMM_2 είναι στις εντολές που ανήκουν στη διαμόρφωση imm2. Το σήμα WORDIMM4 ενεργοποιείται στις εντολές ανάκτησης και αποθήκευσης λέξης και jump-and-link. Το σήμα ADDSUB είναι στις πράξεις πρόσθεσης και αφαίρεσης χωρίς κρατούμενο εισόδου και πρόσθεσης μεταξύ περιεχομένου καταχωρητή και αμέσου τελεστέου. Το σήμα SUB χαρακτηρίζει μοναδικά την πράξη της αφαίρεσης χωρίς κρατούμενο εισόδου, το σήμα ST χαρακτηρίζει τις εντολές αποθήκευσης και το σήμα CALL την ομώνυμη εντολή. Το σήμα NSUM είναι για όλες τις εντολές πρόσθεσης ή αφαίρεσης και το NLOGIC αντίστοιχα είναι για όλες τις εντολές των λογικών πράξεων. Το NLW είναι μόνο στην εντολή ανάκτησης λέξης, το NLB είναι μόνο στην εντολή ανάκτησης byte, ενώ το NLD είναι και στις δύο περιπτώσεις εντολών ανάκτησης. Το σήμα NSR είναι για της εντολές που υπαγορεύουν δεξιά ολίσθηση και το σήμα NSL είναι για την εντολή της αριστερής ολίσθησης. Το σήμα NJAL είναι για τις εντολές τύπου jump-and-link, δηλαδή τις jal και call. Το σήμα BR είναι για όλες τις εντολές διακλάδωσης. Το ADCSBC είναι για όλες τις εντολές πρόσθεσης και αφαίρεσης με κρατούμενο εισόδου. Το NSUB είναι -53-

58 μόνο στην περίπτωση των εντολών αφαίρεσης. Το DCINTINH είναι για όλες τις εντολές πρόσθεσης και αφαίρεσης, την εντολή αποθήκευσης λέξης και επιπλέον για τις εντολές που ανήκουν στη διαμόρφωση imm2. Τα υπόλοιπα σήματα αφορούν το στάδιο της εκτέλεσης και αναλυτικά είναι: Το EXNSUB το οποίο είναι για τις πράξεις της αφαίρεσης, το EXFNSRA το οποίο είναι μόνο για την πράξη της δεξιάς αριθμητικής ολίσθησης, το EXIMM το οποίο είναι μόνο για την εντολή imm. Τα σήματα που αφορούν την ανάκτηση/ αποθήκευση: Το EXLDST το οποίο είναι για όλες τις εντολές ανάκτησης/αποθήκευσης δεδομένων, το EXST το οποίο είναι για τις εντολές ανάκτησης, το EXLBSB το οποίο είναι για τις εντολές ανάκτησης/αποθήκευσης byte. Το σήμα EXRESULTS είναι για όλες τις εντολές εκτός από τις εντολές αποθήκευσης δεδομένων, τις εντολές διακλάδωσης και την εντολή imm. To σήμα EXCALL είναι μόνο για την εντολή call, ενώ το σήμα EXJAL είναι και για τις δύο εντολές τύπου jump-and-link, call και jal. Τα σήματα ελέγχου του αρχείου καταχωρητών που διαμοιράζονται μεταξύ των σταδίων αποκωδικοποίησης και εκτέλεσης είναι τα σήματα: RNA3: : Θύρα του Α καταχωρητή. RNB3: : Θύρα του Β καταχωρητή. RFWE : Ενεργοποίηση εγγραφής του αρχείου καταχωρητών. Στο θετικό χτύπο του παλμού ρολογιού, η μονάδα ελέγχου οδηγεί τα RNA και RNB στον αριθμό των πηγαίων καταχωρητών που προκύπτουν από το στάδιο αποκωδικοποίησης. Στον αρνητικό παλμό ρολογιού η μονάδα ελέγχου οδηγεί τα RNA και RNB στον αριθμό των καταχωρητών προορισμού που προκύπτουν από το στάδιο εκτέλεσης. Το RFWE ενεργοποιείται μέσω του PCE όταν υπάρχει αποτέλεσμα προς εγγραφή. Δεν ενεργοποιείται σε εντολές που δεν παράγουν αποτέλεσμα. [4][7] Το στάδιο της εκτέλεσης Τα σήματα εξόδου ελέγχου για την αριθμητική/ λογική μονάδα και τους ολισθητές είναι: ADD: το σήμα ενεργοποιείται μόνο όταν η εντολή είναι sub ή sbc. CI: κρατούμενο εισόδου. Είναι για προσθέσεις add και για αφαιρέσεις sub, εκτός και αν είναι με κρατούμενο (adc, sbc). Σε αυτή την περίπτωση εκτελούμε -54-

59 XOR λογική πράξη μεταξύ των παραπάνω και των προηγούμενων κρατουμένων. LOGICOP:: επιλέγει μεταξύ των πράξεων and, or, xor και andn. Το σήμα αυτό τροφοδοτείται από το EXIR5:4. SRI: είσοδος δεξιάς ολίσθησης. Είναι για την εντολή srli και Α5 για την αριθμητική δεξιά ολίσθηση (srai). Τα σήματα εξόδου που ελέγχουν τον πολυπλέκτη αποτελέσματος (SUMT, LO- GICT, SLT, SRT, SXT και RETADT) ενεργοποιούν τους buffers τριών καταστάσεων οι οποίοι συνδέονται όλοι με το δίαυλο RESULT. Σε κάθε κύκλο εκτέλεσης όλες οι μονάδες εκτέλεσης παράγουν κάποιο αποτέλεσμα. Ένα όμως σήμα Τ σε κάθε κύκλο ενεργοποιεί κάποιον buffer ο οποίος στέλνει το αποτέλεσμα στο RESULT. Το σήμα ZXT μηδενίζει το RESULT5:8 κατά τη διάρκεια της load byte (lb). Τα παρακάτω σήματα εξόδου της μονάδας ελέγχου ενεργοποιούν τη μονάδα διευθυνσιοδότησης: BRANCH: αν είναι ενεργοποιημένο, προστίθεται η 2xdisp8 στον PC, αλλιώς προστίθεται στο PC +2. SELPC: αν είναι ενεργοποιημένο, η επόμενη διεύθυνση είναι PCNEXT5: αλλιώς είναι η SUM5:. ZEROPC: εάν είναι ενεργοποιημένο η επόμενη διεύθυνση είναι. PCCE- (PC Clock Enable): ανανεώνει το PCi. DMAPC: εάν είναι ενεργοποιημένο, φορτώνει και ανανεώνει το PC (διεύθυνση DMA), αλλιώς μένει στο PC (PC). Η μονάδα ελέγχου επιλέγει την επόμενη τοποθεσία μνήμης με το να ενεργοποιεί διαφορετικούς συνδυασμούς σημάτων εξόδου, ανάλογα πάντα με τον επόμενο κύκλο μνήμης και την τρέχουσα εντολή που βρίσκεται στο στάδιο της εκτέλεσης.[4][7] Τα εξωτερικά σήματα της μονάδας ελέγχου Η μονάδα ελέγχου είναι το διευθύνον κομμάτι του XSOC. Δέχεται την εντολή και ειδοποιεί τις υπόλοιπες λειτουργικές μονάδες με τη βοήθεια των σημάτων ελέγχου που ενεργοποιεί σε αυτές, για το ποιες ενέργειες απαιτείται να εκτελέσουν. [4][7] -55-

60 Τα σήματα εισόδου της μονάδας ελέγχου είναι: Η 6-bit λέξη INSN5: είναι η λέξη επόμενης εντολής που προσκομίζεται από τη μνήμη προκειμένου να εκτελεστεί. Σήματα που ενεργοποιούνται από τον ελεγκτή μνήμης (MEMCTRL). Το σήμα RDY έρχεται από τον ελεγκτή μνήμης για να ειδοποιήσει τη μονάδα ελέγχου ότι η μνήμη είναι έτοιμη για επόμενη λειτουργία ανάκτησης/ αποθήκευσης και για το αν έχει δεχθεί έγκυρα σήματα. Το IREQ το οποίο ειδοποιεί τη μονάδα ελέγχου για το εάν υπάρχει αίτηση διακοπής. Το DMAREQ που ειδοποιεί τη μονάδα ελέγχου για το εάν υπάρχει αίτηση για λειτουργία μνήμης άμεσης προσπέλασης (DMA). To ZERODMA το οποίο ειδοποιεί για το εάν υπάρχει αίτηση μηδενισμού της μνήμης άμεσης προσπέλασης. Σήματα που ενεργοποιούνται από τη διαδρομή δεδομένων (DATAPATH). Τα Ζ, Ν, V, C (zero, negative, overflow, carry) είναι σήματα ελέγχου που έρχονται ως έξοδοι από τη διαδρομή δεδομένων. Τα σήματα εξόδου της μονάδας ελέγχου: Οι έξοδοι της μονάδας ελέγχου καθοδηγούν τη διαδρομή δεδομένων (τους καταχωρητές, τη λειτουργία του άμεσου τελεστή, την αριθμητική/ λογική μονάδα και τους ολισθητές, τη μονάδα διευθυνσιοδότησης) και τον ελεγκτή μνήμης. Σ αυτές τις εξόδους περιλαμβάνονται τα σήματα ενεργοποίησης του ρολογιού της διοχέτευσης, οι επιλογείς των καταχωρητών και των τελεστέων, τα σήματα ελέγχου της ALU και τα σήματα ενεργοποίησης εξόδου του πολυπλέκτη αποτελέσματος. Σήματα προς τον ελεγκτή μνήμης (MEMCTRL). To READN το οποίο ειδοποιεί τη μονάδα ελέγχου μνήμης για το εάν ο επόμενος κύκλος μνήμης αφορά ανάγνωση. Το σήμα αυτό είναι πάντα εντός από την περίπτωση αποθήκευσης στη μνήμη. Το WORDN το οποίο ειδοποιεί τη μονάδα ελέγχου μνήμης για το εάν ο επόμενος κύκλος μνήμης είναι 6-bit δεδομένα. Το σήμα αυτό είναι πάντα εντός από την περίπτωση ανάκτησης/αποθήκευσης από/ προς τη μνήμη. -56-

61 To DBUSN το οποίο είναι όταν ο επόμενος κύκλος μνήμης είναι ανάκτησης/αποθήκευσης από/ προς τη μνήμη και πρόκειται να χρησιμοποιηθεί ο onchip δίαυλος δεδομένων. To DMA το οποίο εάν είναι δηλώνει ότι ο τρέχων κύκλος μνήμης είναι κύκλος άμεσης προσπέλασης μνήμης. Το ACE είναι το σήμα, αντίστοιχο του RDY, που ειδοποιεί τον ελεγκτή μνήμης ότι η επόμενη διεύθυνση μνήμης ΑΝ5: και τα σήματα εξόδου ελέγχου είναι έγκυρα, οπότε μπορεί να ξεκινήσει νέα συναλλαγή με τη μνήμη στον επόμενο κύκλο. Σήματα προς τη διαδρομή δεδομένων (DATAPATH). Σήματα που αφορούν το αρχείο καταχωρητών. Το RNA3: στο οποίο περιέχεται ο αριθμός του καταχωρητή του πρώτου τελεστέου για την εντολή που πρόκειται να εκτελεστεί. Το RNΒ3: στο οποίο περιέχεται ο αριθμός του καταχωρητή του δεύτερου τελεστέου για την εντολή που πρόκειται να εκτελεστεί. Το RFWE ενεργοποιείται όταν υπάρχει κάποιο δεδομένο που απαιτείται να γραφτεί στο αρχείο καταχωρητών (το αποτέλεσμα μιας πράξης). Σήματα που αφορούν την επιλογή του πρώτου τελεστέου. Το FWD λειτουργεί ως επιλογέας στον πολυπλέκτη που επιλέγει μεταξύ του τελεστέου που προέρχεται από το AREGS (όταν το FWD είναι ) και του αποτελέσματος της προηγούμενης εντολής (όταν το FWD είναι ). Σήματα που αφορούν το δεύτερο τελεστέο. Το IMM: είναι το άμεσο πρόθεμα To IMMOP5: ελέγχει τη μονάδα IMMED της διαδρομής δεδομένων βάσει των σημάτων που παράγονται κατά την αποκωδικοποίηση WORDIMM, SEXTIMM4, IMM_2 και IMM_4. Το PCE είναι το σήμα ενεργοποίησης του flip-flop που διατηρεί το δεύτερο τελεστέο, αλλά μόνο για το πεδίο Β3:, ενώ για το πεδίο του τελεστέου B5:4 αρμόδιο είναι το BCE5_4. Σήματα που αφορούν την αριθμητική λογική μονάδα και τους ολισθητές. Το ADD ενεργοποιείται όταν πρόκειται να εκτελεστεί πράξη πρόσθεσης. Στην άλλη περίπτωση πρόκειται να εκτελεστεί πράξη αφαίρεσης. -57-

62 Το CI είναι όταν πρόκειται να εκτελεστεί πράξη πρόσθεσης και όταν πρόκειται να εκτελεστεί πράξη αφαίρεσης. Για τις πράξεις πρόσθεσης και αφαίρεσης με κρατούμενο εισόδου, εφαρμόζουμε την πράξη XOR μεταξύ αυτού και του κρατουμένου εισόδου. Το LOGICOP: καθορίζει τη λογική πράξη που θα εφαρμοστεί μεταξύ των δύο τελεστέων. Οι δυνατές λογικές πράξεις είναι οι Α AND B ()2, A OR B ()2, A XOR B ()2 ή A ANDNOT B ()2. Τα σήματα SUMT, LOGICT, ZXT, SRT, SLT, RETADT είναι τα σήματα που καθοδηγούν τον πολυπλέκτη αποτελεσμάτων όπως έχει αναλυθεί παραπάνω. Το SRI μπορεί να έχει είτε την τιμή είτε την τιμή του A5. Στην πρώτη περίπτωση εκτελεί δεξιά λογική ολίσθηση ενώ στη δεύτερη, αριστερή λογική ολίσθηση. Σήματα που αφορούν τη μονάδα διευθυνσιοδότησης. Το BRANCH είναι το σήμα το οποίο ειδοποιεί τη μονάδα διευθυνσιοδότησης για το εάν η εντολή που πρόκειται να εκτελεστεί είναι εντολή διακλάδωσης. Εάν είναι, ο PC αυξάνει κατά δύο, ενώ εάν είναι, ο PC μεταπηδά κατά BRDISP7: ώστε να δείχνει στο σωστό σημείο του προγράμματος, όπως υπαγορεύει η εντολή. To SELPC λειτουργεί ως ο επιλογέας στον πολυπλέκτη που επιλέγει ως επόμενη διεύθυνση (ADDRMUX) μεταξύ του αποτελέσματος του PCINCR και του αποτελέσματος της αριθμητικής μονάδας. To ZEROPC παίρνοντας την τιμή μηδενίζει τον ADDRMUX. To PCCE είναι σήμα ενεργοποίησης εγγραφής του καταχωρητή ο οποίος διατηρεί τον τρέχοντα μετρητή προγράμματος. To RETCE είναι το σήμα ενεργοποίησης του D flip-flop που διατηρεί τη διεύθυνση επιστροφής (RET). Προσομοίωση εκτέλεσης εντολών πρόσθεσης και αφαίρεσης(add, addi, adc, adc i, sub, sbc, sbc i). Δίνουμε ως είσοδο στη μονάδα ελέγχου μια εντολή πρόσθεσης, έστω την (254)6 ή ( )2. Αυτό σημαίνει ότι πρόκειται να εκτελεστεί μια πράξη πρόσθεσης μεταξύ του περιεχομένου του καταχωρητή με αριθμό 5 και του περιεχομένου του καταχωρητή με αριθμό 4 και το αποτέλεσμα να αποθηκευτεί ως περιεχόμενο στον καταχωρητή με αριθμό 2. Τα εξωτερικά σήματα που παράγονται είναι τα εξής: Σήματα που ενεργοποιούνται από τον ελεγκτή μνήμης (MEMCTRL). -58-

63 Η μνήμη είναι σε ετοιμότητα, οπότε το RDY είναι, ενώ αιτήσεις διακοπής, DMA, ή μηδενισμού της DMA δεν έχουν συμβεί, οπότε τα αντίστοιχα σήματα IREQ, DMAREQ και ZERODMA είναι (εικόνα 6.3). Εικόνα 6.3: Τα σήματα που ενεργοποιούνται από τον ελεγκτή μνήμης προς τη μονάδα ελέγχου κατά την εκτέλεση μιας εντολής προσθεσης Σήματα προς τον ελεγκτή μνήμης (MEMCTRL). Τα σήματα READN, WORDN είναι για να ειδοποιήσει τη μνήμη ότι ο επόμενος κύκλος μνήμης είναι ανάγνωση 6-bit δεδομένων. Το σήμα ACE είναι για να ειδοποιήσει τον ελεγκτή μνήμης ότι η επόμενη διεύθυνση μνήμης ΑΝ5: και τα σήματα εξόδου ελέγχου είναι έγκυρα, οπότε μπορεί να ξεκινήσει νέα συναλλαγή με τη μνήμη στον επόμενο κύκλο. Το σήμα DMA είναι γιατί δεν απαιτείται άμεση προσπέλαση μνήμης, ενώ το σήμα DBUSN είναι γιατί ο επόμενος κύκλος μνήμης δεν είναι ανάκτησης/αποθήκευσης από/ προς τη μνήμη και δεν απαιτείται να χρησιμοποιηθεί ο on-chip δίαυλος δεδομένων (εικόνα 6.4). Εικόνα 6.4: Tα σήματα εξόδου της μονάδας ελέγχου προς τον ελεγκτή μνήμης -59-

64 Σήματα προς τη διαδρομή δεδομένων (DATAPATH). Σήματα που αφορούν το αρχείο καταχωρητών και τους τελεστέους. Τα RNA και RNB παίρνουν τιμές σε κάθε μισό κύκλο ρολογιού, όπως έχει περιγραφεί παραπάνω. Έτσι για τον πρώτο κύκλο ρολογιού, στο θετικό παλμό, τα RNA και RNB περιέχουν τους αριθμούς των καταχωρητών των δύο τελεστέων της πρόσθεσης και παίρνουν τις τιμές ()2 και ()2 αντίστοιχα. Επειδή η εκτέλεση της πράξης δεν έχει ολοκληρωθεί, στον αρνητικό παλμό, το περιεχόμενο των RNA και RNB έχουν τις προηγούμενες τιμές τους. Στον αρνητικό παλμό του επόμενου κύκλου, παίρνουν την τιμή του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα. Αφού γίνει η παραπάνω αρχικοποίηση, το RFWE γίνεται κι έτσι επιτρέπεται η ορθή εγγραφή του αποτελέσματος στο αρχείο καταχωρητών. Το σήμα FWD είναι έτσι ώστε ο πρώτος τελεστέος να φορτωθεί από το AREGS και όχι το αποτέλεσμα της προηγούμενης πράξης. Τα σήματα PCE και BCE5_4 που καθορίζουν το δεύτερο τελεστέο είναι, κι έτσι φορτώνεται ως δεύτερος τελεστέος το περιεχόμενο του BREGS. Οι τιμές των σημάτων IMM: και IMMOP5: δε μας αφορούν για τη συγκεκριμένη εντολή (εικόνα 6.5). Εικόνα 6.5: Σήματα που αφορούν το αρχείο καταχωρητών και τους τελεστέους προς τη διαδρομή δεδομένων Σήματα που αφορούν την αριθμητική λογική μονάδα και τους ολισθητές. Το σήμα ADD γίνεται και το σήμα CI γίνεται καθώς έχουμε πράξη πρόσθεσης, ενώ όλα τα σήματα που ελέγχουν τον πολυπλέκτη αποτελέσματος είναι εκτός από το σήμα SUMT που είναι προκειμένου να διοχετευτεί το αποτέλεσμα της αριθμη-6-

65 τικής μονάδας ως αποτέλεσμα της εντολής. Τα σήματα LOGICOP: και SRI είναι αδιάφορα για τη συγκεκριμένη εντολή (εικόνα 6.6). Εικόνα 6.6: Σήματα που αφορούν τη λογική μονάδα και τους ολισθητές προς τη διαδρομή δεδομένων Σήματα που αφορούν τη μονάδα διευθυνσιοδότησης. Η εντολή δεν είναι διακλάδωσης, οπότε το σήμα BRANCΗ είναι. Το σήμα ενεργοποίησης εγγραφής του στοιχείου μνήμης όπου αποθηκεύεται ο μετρητής προγράμματος είναι ώστε να εγγραφεί η επόμενη τιμή. Το σήμα SELPC είναι ώστε η επόμενη τιμή του μετρητή προγράμματος να προέρχεται από τη μονάδα PCINCR (εικόνα 6.7). Εικόνα 6.7: Σήματα που αφορούν τη μονάδα διευθυνσιοδότησης προς τη διαδρομή δεδομένων -6-

66 Για την πράξη της πρόσθεσης με κρατούμενο εισόδου, στην προκειμένη περίπτωση (3244)6 τα σήματα εξόδου είναι παρόμοια με τη μόνη διαφορά ότι ο προσδιορισμός του πρώτου τελεστέου δεν συμμετέχει στην εντολή αλλά είναι το αποτέλεσμα της προηγούμενης πράξης. Ως αποτέλεσμα, το FWD γίνεται. Ο δεύτερος τελεστέος προσδιορίζεται μέσα στην εντολή, και λαμβάνεται από το BREGS αρχείο καταχωρητών. Στην εικόνα 6.8 φαίνεται η προσομοίωση εκτέλεσης αυτής της εντολής καθώς και οι έξοδοι που παράγει η μονάδα ελέγχου. Εικόνα 6.8: Προσομοίωση εκτέλεσης μιας εντολής πρόσθεσης με κρατούμενο εισόδου -62-

67 Στην επόμενη εικόνα 6.9 φαίνονται τα σήματα εξόδου από την προσομοίωση της πράξης addi (2254)6. Παρατηρούμε ότι τα σήματα είναι όμοια με αυτά της πράξης add εκτός από το περιεχόμενο του IMMOP5:. Εικόνα 6.9: Προσομοίωση εκτέλεσης της εντολής addi Το ίδιο ισχύει και για την πράξη της πρόσθεσης με κρατούμενο εισόδου μεταξύ του αποτελέσματος της προηγούμενης πράξης και του άμεσου τελεστέου (adc i). Τα σήματα εξόδου κατά την προσομοίωση εκτέλεσης της εντολής είναι, ως συνδυασμός όλων των παραπάνω, τα εξής (εικόνα 6.2): -63-

68 Εικόνα 6.2: Προσομοίωση εκτέλεσης της εντολής adci Κατά την προσομοίωση της πράξης της αφαίρεσης χωρίς κρατούμενο εισόδου (εικόνα 6.2), δηλαδή δίνοντας ως είσοδο τη δεκαεξαδική τιμή (254)6 η συμπεριφορά των εξόδων της μονάδας ελέγχου είναι η ίδια, με τη μόνη διαφορά ότι το σήμα ADD έχει την τιμή και το σήμα CI την τιμή. -64-

69 Εικόνα 6.2: Προσομοίωση εκτέλεσης της εντολής της αφαίρεσης Στην προσομοίωση της πράξης της αφαίρεσης με κρατούμενο εισόδου (εικόνα 6.22), στην προκειμένη περίπτωση (3254)6, τα σήματα εξόδου είναι παρόμοια με τη μόνη διαφορά ότι ο προσδιορισμός του πρώτου τελεστέου δεν συμμετέχει στην εντολή αλλά είναι το αποτέλεσμα της προηγούμενης πράξης. Ως αποτέλεσμα, το FWD γίνεται. Ο δεύτερος τελεστέος προσδιορίζεται μέσα στην εντολή, και λαμβάνεται από το BREGS αρχείο καταχωρητών. -65-

70 Εικόνα 6.22: Προσομοίωση εκτέλεσης της εντολής αφαίρεσης με κρατούμενο εισόδου Το ίδιο ισχύει και για την πράξη της αφαίρεσης με κρατούμενο εισόδου μεταξύ του αποτελέσματος της προηγούμενης πράξης και του άμεσου τελεστέου (sbc i)(εικόνα 6.23). Τα σήματα εξόδου κατά την προσομοίωση εκτέλεσης της εντολής είναι, ως συνδυασμός όλων των παραπάνω, τα εξής: -66-

71 Εικόνα 6.23: Προσομοίωση εκτέλεσης της εντολής αφαίρεσης με κρατούμενο εισόδου μεταξύ του αποτελέσματος της προηγούμενης πράξης και του άμεσου τελεστέου (sbc i) -67-

72 Από την προσομοίωση εκτέλεσης των εντολών που αφορούν την πρόσθεση και την αφαίρεση, μπορούμε να συγκεντρώσουμε τα σήματα εξόδου της μονάδας ελέγχου στον πίνακα 6.2: Εντολή OP[3:] FN[3:] Περιγραφή Add Addi Adc Adc i Sub Sbc Sbc i Έξοδοι READN WORDN DBUSN DMA ACE RNA[3:] RNB[3:] RFWE FWD IMM[:] IMMOP[5:] PCE BCE5_4 ADD CI LOGICOP[:] SUMT LOGICT ZXT SRI SRT SLT RETADT BRDISP[7:] BRANCH SELPC ZEROPC DMAPC PCCE RETCE C C C Πίνακας 6.2: Τα αποτελέσματα της προσομοίωσης εκτέλεσης των εντολών που αφορούν την πρόσθεση και την αφαίρεση Προσομοίωση εκτέλεσης εντολών οι οποίες αφορούν λογικές πράξεις (and, or, xor, andnot, and i, or i, xor i, andnot i). Δίνουμε ως σήμα εισόδου στη μονάδα ελέγχου μια εντολή λογικής πράξης and, έστω (324)6. Δηλαδή πρόκειται να εκτελεστεί η λογική πράξη and μεταξύ του αποτελέσματος της προηγούμενης πράξης που είναι καταχωρημένο στον καταχωρητή με -68-

73 αριθμό 2 και του περιεχομένου του καταχωρητή με αριθμό 4 και το αποτέλεσμα να αποθηκευτεί ως περιεχόμενο στον καταχωρητή με αριθμό 2. Σήματα που ενεργοποιούνται από τον ελεγκτή μνήμης (MEMCTRL). Η μνήμη είναι σε ετοιμότητα, οπότε το RDY είναι, ενώ αιτήσεις διακοπής, DMA, ή μηδενισμού της DMA δεν έχουν συμβεί, οπότε τα αντίστοιχα σήματα IREQ, DMAREQ και ZERODMA είναι (εικόνα 6.24). Εικόνα 6.24: Σήματα από τον ελεγκτή μνήμης προς τη μονάδα ελέγχου κατά την εκτέλεση μιας εντολής and Σήματα προς τον ελεγκτή μνήμης (MEMCTRL). Τα σήματα READN, WORDN είναι για να ειδοποιήσει τη μνήμη ότι ο επόμενος κύκλος μνήμης είναι ανάγνωση 6-bit δεδομένων. Το σήμα ACE είναι για να ειδοποιήσει τον ελεγκτή μνήμης ότι η επόμενη διεύθυνση μνήμης ΑΝ5: και τα σήματα εξόδου ελέγχου είναι έγκυρα, οπότε μπορεί να ξεκινήσει νέα συναλλαγή με τη μνήμη στον επόμενο κύκλο. Το σήμα DMA είναι γιατί δεν απαιτείται άμεση προσπέλαση μνήμης, ενώ το σήμα DBUSN είναι γιατί ο επόμενος κύκλος μνήμης δεν είναι ανάκτησης/αποθήκευσης από/ προς τη μνήμη και δεν απαιτείται να χρησιμοποιηθεί ο on-chip δίαυλος δεδομένων (εικόνα 6.25). Εικόνα 6.25: Σήματα προς τον ελεγκτή μνήμης -69-

74 Σήματα προς τη διαδρομή δεδομένων (DATAPATH). Σήματα που αφορούν το αρχείο καταχωρητών και τους τελεστέους. Το σήμα FWD είναι εφόσον η εντολή χρησιμοποιεί ως πρώτο τελεστέο το αποτέλεσμα της προηγούμενης πράξης. Γι' αυτό και το RNA3: έχει την τιμή 2 δηλαδή τον αριθμό του καταχωρητή όπου αποθηκεύεται το αποτέλεσμα. Τα RNA και RNB παίρνουν τιμές σε κάθε μισό κύκλο ρολογιού, όπως έχει περιγραφεί παραπάνω. Το RNB3: περιέχει το 4 για το θετικό παλμό του ρολογιού και το 2 για τον αρνητικό παλμό, δηλαδή τη διεύθυνση του αρχείου καταχωρητών όπου θα αποθηκευτεί το αποτέλεσμα. Το σήμα RFWE σήμα ενεργοποίησης εγγραφής είναι ώστε να εγγραφεί το αποτέλεσμα στο αρχείο καταχωρητών. Τα σήματα PCE και BCE5_4 που καθορίζουν το δεύτερο τελεστέο είναι, κι έτσι φορτώνεται ως δεύτερος τελεστέος το περιεχόμενο του BREGS. Οι τιμές των σημάτων IMM: και IMMOP5: δε μας αφορούν για τη συγκεκριμένη εντολή. Σήματα που αφορούν την αριθμητική λογική μονάδα και τους ολισθητές. Το σήμα LOGICOP γίνεται καθώς η εντολή υπαγορεύει λογική πράξη and, ενώ όλα τα σήματα που ελέγχουν τον πολυπλέκτη αποτελέσματος είναι εκτός από το σήμα LOGICT που είναι προκειμένου να διοχετευτεί το αποτέλεσμα της λογικής μονάδας ως αποτέλεσμα της εντολής. Τα σήματα ADD, CI και SRI είναι αδιάφορα για τη συγκεκριμένη εντολή (εικόνα 6.26). Εικόνα 6.26: Σήματα προς τη διαδρομή δεδομένων που αφορούν την αριθμητική λογική μονάδα και τους ολισθητές Σήματα που αφορούν τη μονάδα διευθυνσιοδότησης. Η εντολή δεν είναι διακλάδωσης, οπότε το σήμα BRANCΗ είναι. Το σήμα ενεργοποίησης εγγραφής του στοιχείου μνήμης όπου αποθηκεύεται ο μετρητής προγράμματος εί-7-

75 ναι ώστε να εγγραφεί η επόμενη τιμή. Το σήμα SELPC είναι ώστε η επόμενη τιμή του μετρητή προγράμματος να προέρχεται από τη μονάδα PCINCR (εικόνα 6.27). Εικόνα 6.27: Σήματα προς τη διαδρομή δεδομένων που αφορούν τη μονάδα διευθυνσιοδότησης Για τις εντολές or, xor και andnot η έξοδος των σημάτων είναι παρόμοια με τη μόνη διαφορά ότι αλλάζει η τιμή του σήματος LOGICOP: το οποίο υπαγορεύει και την πράξη η οποία θα εκτελεστεί. Αυτό είναι, και αντίστοιχα. Παρακάτω, στίς εικόνες 6.28, 6.29 και 6.3 φαίνονται οι έξοδοι για τις εντολές (324) 6, (3224)6 και (3234)6 αντίστοιχα. Εικόνα 6.28: Προσομοίωση εκτέλεσης της εντολής or και των εξόδων που παράγει η μονάδα ελέγχου -7-

76 Εικόνα 6.29: Προσομοίωση εκτέλεσης της εντολής xor και των εξόδων που παράγει η μονάδα ελέγχου Εικόνα 6.3: Προσομοίωση εκτέλεσης της εντολής and not και των εξόδων που παράγει η μονάδα ελέγχου -72-

77 Για τις εντολές που εκτελούν τις λογικές πράξεις μεταξύ του αμέσου τελεστέου και του αποτελέσματος της προηγούμενης πράξης ισχύουν οι ίδιες αρχές, με τη διαφορά ότι η τιμή του IMMOP5: αλλάζει σε C ώστε ο δεύτερος τελεστέος να φορτωθεί από το άμεσο πεδίο. Έτσι για τις εντολές and i, or i, xor i, andnot i οι οποίες εκτελούνται θέτοντας ως είσοδο (424)6, (424)6, (4224)6, και (4234)6, τα αποτέλεσματα της προσομοίωσης έχουν την εξής μορφή όπως φαίνονται στις εικόνες 6.3, 6.32 και 6.33: Εικόνα 6.3: Προσομοίωση εκτέλεσης της εντολής and i και των εξόδων που παράγει η μονάδα ελέγχου -73-

78 Εικόνα 6.32: Προσομοίωση εκτέλεσης της εντολής or i και των εξόδων που παράγει η μονάδα ελέγχου Εικόνα 6.33: Προσομοίωση εκτέλεσης της εντολής xor i και των εξόδων που παράγει η μονάδα ελέγχου -74-

79 Από την προσομοίωση εκτέλεσης των εντολών που αφορούν τις λογικές πράξεις, μπορούμε να συγκεντρώσουμε τα σήματα εξόδου της μονάδας ελέγχου στον πίνακα 6.3: Εντολή OP[3:] FN[3:] Περιγραφή And And i Or Or i Xor Xor i Andnot Andot i Έξοδοι READN WORDN DBUSN DMA ACE RNA[3:] RNB[3:] RFWE FWD IMM[:] IMMOP[5:] PCE BCE5_4 ADD CI LOGICOP[:] SUMT LOGICT ZXT SRI SRT SLT RETADT BRDISP[7:] BRANCH SELPC ZEROPC DMAPC PCCE RETCE Πίνακας 6.3: C C C C προσομοίωση εκτέλεσης των εντολών που αφορούν τις λογικές πράξεις και τα αντίστοιχα σήματα εξόδου -75-

80 Προσομοίωση εκτέλεσης εντολών ολίσθησης (srli, srai, slli). Η εντολή srli εκτελεί λογική δεξιά ολίσθηση κατά immed θέσεις στο αποτέλεσμα της προηγούμενης πράξης που είναι καταχωρημένο στον καταχωρητή του αρχείου καταχωρητών rd και επιστρέφει το αποτέλεσμα στον ίδιο καταχωρητή. Κατά την προσομοίωση εκτέλεσης μιας τέτοιας εντολής, έστω (4264)6, τα σήματα εξόδου της μονάδας ελέγχου έχουν ως εξής (εικόνα 4): Εικόνα 6.34: Προσομοίωση εκτέλεσης της εντολης srli -76-

81 Αξίζει να δώσουμε ιδιαίτερη σημασία στα σήματα IMMOP5:, FWD, SRI και SRT, τα οποία είναι σήματα προς τη διαδρομή δεδομένων και περιγράφουν την πράξη. Τα δύο πρώτα σήματα αφορούν τους τελεστέους της πράξης. Η τιμή του IMMOP 5: καθορίζει ότι υπάρχει πεδίο άμεσου τελεστέου, και δηλώνει ποιο είναι αυτό (C) 6, ώστε ο δεύτερος τελεστέος (δηλαδή η απόσταση ολίσθησης) να φορτωθεί από εκεί και όχι από το περιεχόμενο του BREGS. Το FWD είναι ώστε ο πρώτος τελεστέος, δηλαδή ο ακέραιος αριθμός στον οποίο θα εφαρμοστεί η ολίσθηση να είναι το αποτέλεσμα της προηγούμενης πράξης. Τα υπόλοιπα δύο σήματα καθορίζουν τη φύση της πράξης που θα εκτελεστεί. Το σήμα SRI είναι για να καθοδηγήσει τον buffer στον πολυπλέκτη αποτελεσμάτων ώστε να εκτελέσει λογική ολίσθηση, ενώ το σήμα SRT οδηγεί το αποτέλεσμα του δεξιού ολισθητή στον καταχωρητή του αποτελέσματος και στην έξοδο. Το ίδιο συμβαίνει και για την αριστερή λογική ολίσθηση (εικόνα 4), με τη μόνη διαφορά ότι το σήμα SRT γίνεται ενώ το σήμα SLT γίνεται προκειμένου τώρα να οδηγηθεί Εικόνα 6.35: Προσομοίωση εκτέλεσης της εντολής slli -77-

82 στον καταχωρητή αποτελεσμάτων και στην έξοδο ως αποτέλεσμα, το αποτέλεσμα του αριστερού ολισθητή. Οι έξοδοι της μονάδας ελέγχου κατά την προσομοίωση εκτέλεσης μιας εντολής αριστερής λογικής ολίσθησης (4284)6 φαίνονται στην εικόνα Στην περίπτωση της δεξιάς αριθμητικής ολίσθησης, η συμπεριφορά των σημάτων είναι παρόμοια με αυτή της δεξιάς λογικής ολίσθησης, με τη μόνη διαφορά ότι το σήμα SRI είναι για να καθορίσει ότι απαιτείται αριθμητική και όχι λογική ολίσθηση Εκτέλεση με διοχέτευση Για την αύξηση της απόδοσης, ο xr6 υποστηρίζει σωλήνωση 3 σταδίων. Στο πρώτο στάδιο έχουμε τη ανάκτηση των εντολών (Instruction Fetch) στο δεύτερο αποκωδικοποίηση της εντολής και ανάκτηση τελεστέων (DC) και στο τρίτο εκτέλεση (Execute EX). Στο πρώτο στάδιο (IF), διαβάζεται η μνήμη στην τρέχουσα διεύθυνση του PC, φορτώνεται η αντίστοιχη λέξη εντολής στον καταχωρητή εντολής (Instruction Register - IR) και αυξάνεται o PC ώστε να δείχνει στην επόμενη εντολή. Στο δεύτερο στάδιο (DC) η εντολή αποκωδικοποιείται, και οι τελεστέοι της διαβάζονται από το αρχείο καταχωρητών ή εξάγονται από το άμεσο πεδίο στον IR. Στο τρίτο στάδιο (EX) οι λειτουργικές μονάδες επιδρούν πάνω στους τελεστέους. Ένα μόνο αποτέλεσμα οδηγείται μέσω των tri-state buffers στη λεωφόρο αποτελέσματος και γράφεται πίσω στο αρχείο καταχωρητών καθώς ο κύκλος εντολής τελειώνει.[4] [7] Στην περίπτωση που εκτελείται ένα σύνολο εντολών, καταφέρνουμε να μην έχουμε καθυστερήσεις στη μνήμη. Σε κάθε κύκλο διοχετευμένης εντολής, φορτώνεται μια νέα εντολή και το αποτέλεσμα της γράφεται στο αρχείο καταχωρητών δύο κύκλους αργότερα. Ταυτόχρονα προετοιμάζεται η διεύθυνση της επόμενης εντολής αυξάνοντας τον PC κατά 2, φορτώνεται η εντολή ΙPC, αποκωδικοποιείται η IPC-2 και εκτελείται η IPC Διακλαδώσεις Θα ασχοληθούμε με την περίπτωση κατά την οποία πρόκειται να εκτελεστεί μια εντολή διακλάδωσης (br) ή ολίσθησης (οι εντολές call και jal). Λόγω της σωλήνωσης, -78-

83 τη στιγμή που κάποια από αυτές τις εντολές εκτελείται στο EX στάδιο (έστω ότι η εντολή αυτή είναι η Ij), o PC έχει αυξηθεί κατά δύο, η εντολή Ιj+ βρίσκεται στο στάδιο της αποκωδικοποίησης, και η εντολή Ιj+2 στο στάδιο της ανάκτησης. Όμως, εφόσον πρόκειται να εκτελεστεί μια εντολή ολίσθησης, που σημαίνει ότι η εκτέλεση εντολών θα μεταφερθεί σε άλλο σημείο του προγράμματος, οι Ιj+ και Ιj+2 πρέπει να ακυρωθούν[7]. Για τις εντολές οι οποίες είχαν εισέλθει στον κύκλο εκτέλεσης, προτού διαπιστωθεί ότι πρόκειται να εκτελεστεί μια διακλάδωση ή ολίσθηση, και ακυρώνονται οι μέχρι στιγμής πρόοδοι αλλά και τα μετέπειτα βήματα προς την εκτέλεσή τους, λέμε ότι βρίσκονται στη σκιά της διακλάδωσης. Ο κύκλος εντολής συνεχίζει από το στάδιο ανάκτησης της εντολής στην οποία έδειχνε η εντολή διακλάδωσης που εκτελέστηκε (έστω ΙΤ). Η συγκεκριμένη διαδικασία επαναλαμβάνεται κάθε φορά που πρόκειται να εκτελεστεί μια εντολή διακλάδωσης. Άρα οι κύκλοι ρολογιού που απαιτούνται από την εκτέλεση αυτής της εντολής, μέχρι την ανάκτηση της εντολής προορισμού, είναι τρεις, εφόσον προστίθενται και οι κύκλοι που απαιτούνται για την ακύρωση των εντολών σκιάς. Επίσης, οι εντολές μεταπήδησης σώζουν τη διεύθυνση επιστροφής, στον καταχωρητή διεύθυνσης επιστροφής. Αυτό επιτυγχάνεται με τη χρήση του καταχωρητή RET (return), ο οποίος διατηρεί τη διεύθυνση της εντολής η οποία βρίσκεται στο στάδιο αποκωδικοποίησης, όταν η εντολή μεταπήδησης βρίσκεται στο στάδιο της εκτέλεσης Διακοπές Όταν προκαλείται μια αίτηση διακοπής, το σύστημα είναι υποχρεωμένο να μεταφερθεί στον ελεγκτή διακοπής, να φυλάξει τη διεύθυνση επιστροφής από τη διακοπή, να αποσύρει τις τρέχουσες διαδικασίες που λαμβάνουν μέρος στη διαδικασία της σωλήνωσης, να προκαλέσει τη λειτουργία τον ελεγκτή, και έπειτα να επιστρέψει στην εκτέλεση της εντολής που διακόπηκε. Όταν ενεργοποιείται το σήμα INTREQ (Interrupt Request), η εντολή στο στάδιο της ανάκτησης εξουδετερώνεται και στη θέση της εκτελείται η εντολή int δηλαδή jal r4, (r) μέσω του IRMUX. Η εντολή αυτή είναι μια εντολή ολίσθησης στη διεύθυνση του ελεγκτή διακοπών, δηλαδή στη διεύθυνση x, ενώ ταυτόχρονα σώζει τη διεύθυνση επιστροφής από τη διακοπή στον αρμόδιο καταχωρητή, δηλαδή στον r4. Μετά την ολοκλήρωση του χειρισμού της διακοπής, εκτελείται η εντολή iret (κατά την οποία εκτελείται η jal r, (r4)) και η εκτέλεση των εντολών συνεχίζεται από το ση- -79-

84 μείο στο οποίο είχε προκληθεί η διακοπή. Στην περίπτωση των διακοπών υπάρχουν κάποια ζητήματα που αφορούν τη σωλήνωση[7]. Το πρώτο είναι ότι υπάρχει περιορισμός όσον αφορά το ποιες εντολές μπορούν να διακοπούν και ποιες όχι. Υπάρχουν κάποιες ακολουθίες εντολών οι οποίες δεν επιτρέπουν εκτέλεση διακοπής κατά την εκτέλεσή τους. Αυτές είναι οποιεσδήποτε μεταξύ των add, sub, shift, ή imm ακολουθούμενες από κάποια άλλη εντολή. Αν κάποια από αυτές τις εντολές βρίσκεται στο στάδιο αποκωδικοποίησης, η διακοπή παρατείνεται κατά ένα κύκλο ρολογιού. Το δεύτερο είναι ότι η εντολή int που εκτελείται με το που γίνεται γνωστή μια αίτηση διακοπής δεν πρέπει να εισαχθεί σε σημείο που θα αποτελεί σκιά κάποιας εντολής διακλάδωσης γιατί, στην περίπτωση αυτή θα ακυρωθεί. Εάν μια εντολή διακλάδωσης ή ολίσθησης βρίσκεται στο στάδιο της αποκωδικοποίησης ή στο στάδιο της εκτέλεσης, η διακοπή παρατείνει την εκτέλεσή της. Ο αριθμός των κύκλων ρολογιού που απαιτούνται από τη στιγμή που μια αίτηση διακοπής γίνεται αντιληπτή μέχρι και τη στιγμή που επιστρέφει στη διεύθυνση επιστροφής μετά από έναν κενό χειρισμό διακοπής, είναι μόνο έξι κύκλοι. Το τελευταίο ζήτημα που αφορά στη σωλήνωση είναι αυτό της DMA (Direct Memory Access). Η μονάδα Μετρητή προγράμματος/ διευθύνσιοδότησης λειτουργεί και ως μηχανή μνήμης άμεσης προσπέλασης. Με τη χρήση μιας διάταξης RAM 6x6 ως αρχείου καταχωρητών PC μπορεί να ανακτηθεί είτε εντολή (ΑΝ <- PC +=2), είτε μια λέξη άμεσης προσπέλασης της μνήμης (ΑΝ <- PC +=2) ανά κύκλο μνήμης. Τη στιγμή που ανακτάται μια εντολή, αν ενεργοποιηθεί το σήμα DMAREQ (Direct Memory Access Request), αιτείται ένας κύκλος DMA μνήμης. Αυτό το αρχείο καταχωρητών του PC απαιτεί 8 CLBs για τη διάταξη RAM, και εξοικονομεί κάποια νανοδευτερόλεπτα για το κρίσιμο μονοπάτι του συστήματος, σε σχέση με την άλλη εναλλακτική περίπτωση στην οποία θα χρησιμοποιούσαμε έναν ξεχωριστό μετρητή διευθύνσεων DMA και έναν 2 - πολυπλέκτη διεύθυνσης.[4] Προσπελάσεις της μνήμης Ο επεξεργαστής έχει μια θύρα από και προς τη μνήμη για εντολές ανάγνωσης, ανάκτησης και αποθήκευσης δεδομένων. Οι περισσότερες προσπελάσεις της μνήμης γίνονται για την ανάκτηση εντολών. O επεξεργαστής είναι επίσης η μηχανή άμεσης προ-8-

85 σπέλασης μνήμης (DMA). Ένας κύκλος ανανέωσης της DMA συμβαίνει κάθε 8 κύκλους ρολογιού.[4][7] Επομένως, για κάθε κύκλο ρολογιού, ο επεξεργαστής εκτελεί είτε μια ανάκτηση εντολής, είτε ένα κύκλο μνήμης DMA, είτε ένα κύκλο μνήμης ανάκτησης/ αποθήκευσης. Οι συναλλαγές με τη μνήμη είναι κι αυτές σωληνωμένες. Σε κάθε κύκλο μνήμης, ο επεξεργαστής οδηγεί τη διεύθυνση και τα σήματα ελέγχου του επόμενου κύκλου μνήμης και περιμένει το RDY, που θα επιβεβαιώνει ότι η προσπέλαση ολοκληρώθηκε. Όταν η μνήμη δεν είναι έτοιμη για την επόμενη εντολή, η σωλήνωση σταματάει για τον τρέχοντα κύκλο. Η μονάδα ελέγχου παύει να στέλνει σήματα ενεργοποίησης ρολογιού στα PCE, ACE κ.ο.κ., και αυτό παρατείνει όλα τα στάδια σωλήνωσης κατά ένα κύκλο. Προσομοίωση εκτέλεσης εντολών ανάκτησης και αποθήκευσης δεδομένων (lw, lb, sw, sb). Κατά την προσομοίωση εκτέλεσης μιας εντολής τύπου lw, έστω την (5264)6, ανακτάται μία 6-bit λέξη από την ενεργό διεύθυνση που προκύπτει από το άθροισμα του περιεχομένου του καταχωρητή 6 και του άμεσου τελεστέου και αποθηκεύεται ως περιεχόμενο στον καταχωρητή αποτελέσματος 2. Η διαδικασία που ακολουθεί η μονάδα ελέγχου, όπως προκύπτει από τα σήματα εξόδου είναι η εξής: Σήματα προς τον ελεγκτή μνήμης (MEMCTRL). Τα σήματα READN, WORDN είναι για να ειδοποιήσει τη μνήμη ότι ο επόμενος κύκλος μνήμης είναι ανάγνωση 6-bit δεδομένων. Το σήμα ACE είναι για να ειδοποιήσει τον ελεγκτή μνήμης ότι η επόμενη διεύθυνση μνήμης ΑΝ5: και τα σήματα εξόδου ελέγχου είναι έγκυρα, οπότε μπορεί να ξεκινήσει νέα συναλλαγή με τη μνήμη στον επόμενο κύκλο. Το σήμα DMA είναι γιατί δεν απαιτείται άμεση προσπέλαση μνήμης. Το σήμα DBUSN είναι στον πρώτο κύκλο ρολογιού κατά τη διάρκεια της ανάκτησης της εντολής, ενώ στο δεύτερο κύκλο, αυτόν της αποκωδικοποίησης γίνεται γιατί ο επόμενος κύκλος μνήμης είναι ανάκτησης από τη μνήμη και απαιτείται να χρησιμοποιηθεί ο on-chip δίαυλος δεδομένων (εικόνα 6.36). -8-

86 Εικόνα 6.36: Τα σήματα εξόδου της μονάδας ελέγχου προς τον ελεγκτή μνήμης κατα την προσομοίωση εκτέλεσης μιας εντολής lw Σήματα προς τη διαδρομή δεδομένων (DATAPATH). Σήματα που αφορούν το αρχείο καταχωρητών και τους τελεστέους. Τα RNA και RNB παίρνουν τιμές σε κάθε μισό κύκλο ρολογιού, όπως έχει περιγραφεί παραπάνω. Έτσι για τον πρώτο κύκλο ρολογιού, στο θετικό παλμό, τα RNA και RNB περιέχουν τους αριθμούς των καταχωρητών των δύο τελεστέων και παίρνουν τις τιμές 6 και 4 αντίστοιχα. Στον αρνητικό παλμό, τα RNA και RNB παίρνουν την τιμή του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα. Κατά τον κύκλο της αποκωδικοποίησης το RFWE γίνεται ενώ στον επόμενο κύκλο ρολογιού, αυτόν της εκτέλεσης φορτώνεται η λέξη από τη μνήμη και αποθηκεύεται στο αρχείο καταχωρητών. Στον κύκλο της αποκωδικοποίησης το PCE γίνεται και ταυτόχρονα γίνεται και το BCE5_4, προκειμένου να μη φορτωθεί στο δεύτερο καταχωρητή Β κάποιο νέο περιεχόμενο, ώστε να φορτωθεί από τη μνήμη η λέξη. Η τιμή του IMMOP5: καθορίζει ότι υπάρχει πεδίο άμεσου τελεστέου. Το σήμα FWD είναι έτσι ώστε ο πρώτος τελεστέος να φορτωθεί από το AREGS και όχι το αποτέλεσμα της προηγούμενης πράξης (εικόνα 6.37). Εικόνα 6.37: Σήματα προς τη διαδρομή δεδομένων που αφορούν το αρχείο καταχωρητών και τους τελεστέους -82-

87 Σήματα που αφορούν την αριθμητική λογική μονάδα και τους ολισθητές. Τα σήματα που μας αφορούν είναι το σήμα ADD το οποίο είναι και το σήμα CI το οποίο είναι. Αυτό συμβαίνει ώστε να υπολογίσει η αριθμητική μονάδα το άθροισμα του πρώτου τελεστέου με τον άμεσο τελεστέο, και να το παραχωρήσει στο επόμενο στάδιο της μονάδας διευθυνσιοδότησης (εικόνα 6.38). Εικόνα 6.38: Σήματα προς τη διαδρομή δεδομένων που αφορούν την αριθμητική/ λογική μονάδα και τους ολισθητές Σήματα που αφορούν τη μονάδα διευθυνσιοδότησης. Στον κύκλο αποκωδικοποίησης της εντολής, το SELPC γίνεται ώστε να φορτωθεί η τιμή του αποτελέσματος της αριθμητικής μονάδας, όπως περιγράφηκε παραπάνω ως τιμή στο μετρητή προγράμματος. Τα σήματα PCCE και RETCE γίνονται προκειμένου να μη φορτωθεί στο PC κάποιο νέο περιεχόμενο και να γίνει η συναλλαγή με τη μνήμη. 6.4 Εκτέλεση πράξης στον xr6 Θα μελετήσουμε τώρα τον τρόπο με τον οποίο λειτουργεί ο επεξεργαστής xr6 ως σύνολο κατά την εκτέλεση μιας απλής εντολής. Κατά την εκκίνηση λειτουργίας θα πρέπει να λάβουμε υπόψιν μας μια καθυστέρηση 2 κύκλων μέχρι να αρχίσουν να εκτελούνται οι εντολές που διοχετεύουμε. Αυτό συμβαίνει γιατί ο xr6 ακολουθεί την -83-

88 εκτέλεση εντολών με σωλήνωση τριών σταδίων. Οπότε μέχρι η πρώτη εντολή να φτάσει στο στάδιο της εκτέλεσης προηγούνται 2 κύκλοι κατά τους οποίους δεν έχουμε κάποια έξοδο. Αυτό συμβαίνει μόνο στην πρώτη εντολή σε κάθε εκκίνηση λειτουργίας του xr6 ενώ από τη δεύτερη εντολή και έπειτα, οι εντολές εκτελούνται ανά ένα κύκλο ρολογιού. Εστω οτί θέλουμε να καταχωρήσουμε δύο ακέραιους αριθμούς στο αρχείο καταχωρητών, έπειτα να τους προσθέσουμε και τέλος να αποθηκεύσουμε το αποτέλεσμα της πράξης στο αρχείο καταχωρητών. Χρειάζεται να γράψουμε το πρόγραμμα σε γλώσσα μηχανής, εφόσον θα το διοχετεύσουμε απ' ευθείας στον xr6 χωρίς τη μεσολάβηση κάποιου assembler. Επίσης να φροντίσουμε για το συγχρονισμό, δηλαδή να εισάγουμε καθυστερήσεις όπου αυτό είναι απαραίτητο. Οι εντολές που εκτελούμε είναι οι εξής: Εντολή (hex) Ψευδο-assembly D7FF imm 7FF 2A2 addi r(), r(), 2 2B addi r(), r(), 2B addi r(), r(), CAB add r(2), r(), r() 2B addi r(), r(), Τα αποτελέσματα της προσομοίωσης εκτέλεσης φαίνονται στην εικόνα Το σήμα XDIN5: είναι η εντολή η οποία διοχετεύεται προς εκτέλεση στον επεξεργαστή. Εικόνα 6.39: Προσομοίωση εκτέλεσης μιας εντολης και καταγραφή του αποτελέσματος στο αρχείο καταχωρητών Η πρώτη εντολή που δίνουμε προς εκτέλεση αφορά την αρχικοποίηση του imm. Έπειτα εισάγουμε τιμές στους καταχωρητές πηγής. Ο ένας είναι ο r() στον οποίο καταχωρούμε την τιμή 2, και ο άλλος ο r() στον οποίο καταχωρούμε την τιμή. Ύστε- -84-

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

Μνήμη και Προγραμματίσιμη Λογική

Μνήμη και Προγραμματίσιμη Λογική Μνήμη και Προγραμματίσιμη Λογική Η μονάδα μνήμης είναι ένα στοιχείο κυκλώματος στο οποίο μεταφέρονται ψηφιακές πληροφορίες προς αποθήκευση και από το οποίο μπορούμε να εξάγουμε αποθηκευμένες πληροφορίες

Διαβάστε περισσότερα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 3 η :

Διαβάστε περισσότερα

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 4 η :

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

Κυκλωμάτων» Χειμερινό εξάμηνο

Κυκλωμάτων» Χειμερινό εξάμηνο «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Εισαγωγή στα Συστήματα Ολοκληρωμένων Κυκλωμάτων Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής http://diceslab.cied.teiwest.gr E-mail: pkitsos@teimes.gr

Διαβάστε περισσότερα

5 η Θεµατική Ενότητα : Μνήµη & Προγραµµατιζόµενη Λογική. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

5 η Θεµατική Ενότητα : Μνήµη & Προγραµµατιζόµενη Λογική. Επιµέλεια διαφανειών: Χρ. Καβουσιανός 5 η Θεµατική Ενότητα : Μνήµη & Προγραµµατιζόµενη Λογική Επιµέλεια διαφανειών: Χρ. Καβουσιανός Μνήµη Η µνήµη καταλαµβάνει το µεγαλύτερο µέρος ενός υπολογιστικού συστήµατος Δύο τύποι: ROM - RAM RΟΜs CPU

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

Διαβάστε περισσότερα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17 ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ Μνήμες (Memory) - Είναι ημιαγώγιμα κυκλώματα που μπορούν να αποθηκεύσουν ένα σύνολο από δυαδικά ψηφία (bit). - Μια μνήμη αποθηκεύει λέξεις (σειρές από bit). - Σε κάθε

Διαβάστε περισσότερα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 1. Εισαγωγή Η λειτουργία της CPU καθορίζεται από τις εντολές που εκτελεί, και που ονομάζονται εντολές μηχανής (machine instructions) ή εντολές υπολογιστή (computer

Διαβάστε περισσότερα

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

Διαβάστε περισσότερα

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2 Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές... Περιεχόμενα Πρόλογος... XI Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA... 1 1.1 Εισαγωγή... 1 1.2 Βασικές Αρχές... 1 1.2.1 Boolean Άλγεβρα... 1 1.2.2 Σχηματικά και Λογικά Σύμβολα... 6 1.3 Ψηφιακή Σχεδίαση

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ ΕΘΝΙΚΟΝ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟΝ ΠΑΝΕΠΙΣΤΗΜΙΟΝ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΠΣ Πληροφορικής και Τηλεπικοινωνιών, E Εξάμηνο

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 201 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

Διαβάστε περισσότερα

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2018-2019 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα ολοκληρωμένα κυκλώματα

Διαβάστε περισσότερα

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα

Διαβάστε περισσότερα

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Α Γενικού Λυκείου Κεφάλαιο 1 1.1 Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Ιδιαίτερη θέση έχουν οι Υπολογιστικές συσκευές. Μηχανισμός

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

Διαβάστε περισσότερα

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 1 η :

Διαβάστε περισσότερα

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

, PAL PA, ΜΝΗΜΕΣ ROM)

, PAL PA, ΜΝΗΜΕΣ ROM) 10 Εό Ενότητα ΔΙΑΤΑΞΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΗΣ ΛΟΓΙΚΗΣ (PLA, PAL, ΜΝΗΜΕΣ ROM) Γενικές Γραμμές PLA PAL Μνήμες ROM Βλέπε: Βιβλίο Wakerly Παράγραφοι 5.3.1, 5.3.2, 10.1, 10.1.1, 10.1.4 Βιβλίο Mano Παράγραφοι 7.5,

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Μονάδες Μνήμης και Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Μονάδες Μνήμης - Προγραμματιζόμενη Λογική Μια μονάδα μνήμης είναι ένα

Διαβάστε περισσότερα

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το

Διαβάστε περισσότερα

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 5 η :

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

Συστοιχία Επιτόπια Προγραμματιζόμενων Πυλών Field Programmable Gate Arrays (FPGAs)

Συστοιχία Επιτόπια Προγραμματιζόμενων Πυλών Field Programmable Gate Arrays (FPGAs) Συστοιχία Επιτόπια Προγραμματιζόμενων Πυλών Field Programmable Gate Arrays (FPGAs) Οι προγραμματιζόμενες λογικές διατάξεις (PLDs Programmable Logic Devices) είναι ψηφιακά ολοκληρωμένα κυκλώματα (ICs) που

Διαβάστε περισσότερα

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. *Τα φυσικά μέρη που μπορούμε να δούμε και να αγγίξουμε ονομάζονται συνολικά υλικό (hardware). * * υπερυπολογιστές

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

Διαβάστε περισσότερα

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΔΙΑΡΚΕΙΑ: 1 περίοδος Σε αυτό το μάθημα θα μάθετε να: 1. Αναφέρετε τα διάφορα είδη μνήμης και συσκευές που τις περιέχουν. 2. Περιγράφετε τα σημαντικά χαρακτηριστικά

Διαβάστε περισσότερα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών 1 Οργάνωση υπολογιστών ΚΜΕ Κύρια Μνήμη Υποσύστημα εισόδου/εξόδου 2 Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) R1 R2 ΑΛΜ

Διαβάστε περισσότερα

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.3 : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών Στόχοι Μαθήματος: Να γνωρίσετε τις βασικές αρχές αριθμητικής των Η/Υ. Ποια είναι τα κυκλώματα

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 3 ο ΛΕΙΤΟΥΡΓΙΚΗ ΔΟΜΗ ΥΠΟΛΟΓΙΣΤΗ ΒΑΣΙΚΗ ΜΟΝΑΔΑ ΜΝΗΜΗ & CPU Λειτουργική Δομή Αρχιτεκτονική Von Neumann Όλοι οι υπολογιστές ακολουθούν την αρχιτεκτονική κατά Von-Neumann

Διαβάστε περισσότερα

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 17: Αναδιατασσόµενη Λογική Προγραµµατιζόµενο Υλικό

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 17: Αναδιατασσόµενη Λογική Προγραµµατιζόµενο Υλικό ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 17: Αναδιατασσόµενη Λογική Προγραµµατιζόµενο Υλικό ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy) Προγραµµατιζόµενες

Διαβάστε περισσότερα

Αρχιτεκτονικη υπολογιστων

Αρχιτεκτονικη υπολογιστων ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked

Διαβάστε περισσότερα

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

Ψηφιακή Σχεδίαση Ενότητα 11:

Ψηφιακή Σχεδίαση Ενότητα 11: Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 11: Μνήμη και Προγραμματίσιμη Λογική Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Κεφάλαιο 8. Αριθμητική Λογική μονάδα Κεφάλαιο 8 Αριθμητική Λογική μονάδα 8.1 Εισαγωγή Στη μηχανική υπολογιστών η αριθμητική/λογική μονάδα (ALU) είναι ένα ψηφιακό κύκλωμα το οποίο εκτελεί αριθμητικούς και λογικούς υπολογισμούς. Η ALU είναι

Διαβάστε περισσότερα

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος Κλήμης Νταλιάνης Λέκτορας Π.Δ.407/80 Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Αρχιτεκτονική

Διαβάστε περισσότερα

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

Διαβάστε περισσότερα

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 4: Αρχιτεκτονική των Embedded Μικροεπεξεργαστών Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΕΙΣΑΓΩΓΗ Παρουσιάζεται

Διαβάστε περισσότερα

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή 6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή Εισαγωγή Η σχεδίαση ενός ψηφιακού συστήµατος ως ακολουθιακή µηχανή είναι εξαιρετικά δύσκολη Τµηµατοποίηση σε υποσυστήµατα µε δοµικές µονάδες:

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση Αρης Ευθυμίου Απόδοση απλής υλοποίησης Υλοποίηση ενός κύκλου είναι πολύ αργή κάθε κύκλος είναι τόσο μεγάλος όσο χρειάζεται

Διαβάστε περισσότερα

Ψηφιακή Λογική Σχεδίαση

Ψηφιακή Λογική Σχεδίαση Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

Αρχιτεκτονική Μνήμης

Αρχιτεκτονική Μνήμης ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

Διαβάστε περισσότερα

Σχεδίαση της Μονάδας Ελέγχου

Σχεδίαση της Μονάδας Ελέγχου ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 5 Σχεδίαση της Μονάδας Ελέγχου Καθηγητής Αντώνης Πασχάλης 2017 Γενικές Γραμμές Σχεδίαση

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 1 : Οργάνωση και Αρχιτεκτονική υπολογιστών Καρβούνης Ευάγγελος Εισαγωγή Τεράστια ποικιλία προϊόντων ως προς

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;

Διαβάστε περισσότερα

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1.1 ΕΙΣΑΓΩΓΙΚΗ ΑΝΑΦΟΡΑ ΣΤΑ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ 1 1.1.1 Σήματα ψηφιακών συστημάτων 1 1.1.2 Παράλληλη και σειριακή μεταφορά πληροφορίας 2 1.1.3 Λογική τριών

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών

Αρχιτεκτονικές Συνόλου Εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο

Διαβάστε περισσότερα

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήµη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή Θα δούµε την οργάνωση ενός υπολογιστή Στον επόµενο µάθηµα θα δούµε πως συνδέονται πολλοί Η/Υ για να σχηµατίσουν

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες Πρώτο Κεφάλαιο Εισαγωγή στα Ψηφιακά Συστήματα 1.1 Αναλογικά και Ψηφιακά Σήματα και Συστήματα... 1 1.2 Βασικά Ψηφιακά Κυκλώματα... 3 1.3 Ολοκληρωμένα κυκλώματα... 4 1.4 Τυπωμένα κυκλώματα... 7 1.5 Εργαλεία

Διαβάστε περισσότερα

Εντολές γλώσσας μηχανής

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΕΣ ΥΛΟΠΟΙΗΣΗΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΤΕΧΝΟΛΟΓΙΕΣ ΥΛΟΠΟΙΗΣΗΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΕΣ ΥΛΟΠΟΙΗΣΗΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Υλοποίηση ΥΛΟΠΟΙΗΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔΙΑΚΡΙΤΑ ΣΤΟΙΧΕΙΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ ΑΝΑΔΙΑΜΟΡΦΩΣΙΜΟ ΥΛΙΚΟ Ο.Κ. ΕΙΔΙΚΟΥ ΣΚΟΠΟΥ (VLSI) FULL CUSTOM (Reconfigurable

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ.

Διαβάστε περισσότερα

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ Δρ. Γκόγκος Χρήστος Εκτέλεση προγραμμάτων Πρόγραμμα: Ένα σύνολο από εντολές.

Διαβάστε περισσότερα

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφάλαιο 7.4 Ε/Ε Οδηγούμενη από Διακοπές Το πρόβλημα με την προγραμματιζόμενη Ε/Ε είναι ότι ο επεξεργαστής πρέπει να περιμένει ώστε η μονάδα Ε/Ε που τον ενδιαφέρει

Διαβάστε περισσότερα

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΗΜΙΑΓΩΓΙΚΩΝ ΜΝΗΜΩΝ. ΒΑΣΙΚΗ ΛΕΙΤΟΥΡΓΙΑ RAM CMOS. ΤΥΠΟΙ ΚΥΤΤΑΡΩΝ ΑΡΧΕΣ

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

Αρχιτεκτονική Μνήµης

Αρχιτεκτονική Μνήµης ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Μνήµης Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

Διαβάστε περισσότερα

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ 2. Μαθησιακοί Στόχοι : Οι θεμελιώδεις αρχές λειτουργίας των υπολογιστών. Τύποι υπολογιστικών συστημάτων και στόχοι της αρχιτεκτονικής

Διαβάστε περισσότερα

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: Σελίδα 1 από 12 Απαντήσεις στο φυλλάδιο 55 Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: (α) Κεντρική Μονάδα Επεξεργασίας. (β) Κύρια Μνήµη. (γ) Μονάδες εισόδου. (δ) Μονάδες εξόδου. (ε) Βοηθητική

Διαβάστε περισσότερα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας Μονάδα επεξεργασίας δεδομένων Μονάδα ελέγχου Μονάδα επεξεργασίας δεδομένων Δομή Αριθμητικής Λογικής Μονάδας

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή Στόχοι Μαθήματος: Να γνωρίσετε τις βασικές λειτουργίες ενός Η/Υ. Να γνωρίσετε τις έννοιες δεδομένα, πληροφορία, επεξεργασία,

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 5 : Η Εσωτερική Μνήμη Καρβούνης Ευάγγελος Τρίτη, 01/12/2015 Οι τύποι μνήμης με ημιαγωγούς 2 2 Η λειτουργία

Διαβάστε περισσότερα

Οργάνωση Η/Υ. Γλώσσα Assembly. Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Οργάνωση Η/Υ. Γλώσσα Assembly. Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Γλώσσα Assembly Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Δομή του TRN KME Μνήμη Διάδρομος Δεδομένων Διάδρομος Διευθύνσεων Διάδρομος Ελέγχου Μονάδα

Διαβάστε περισσότερα

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχιτεκτονική Eckert-von Neumann εισόδου μεταφορά δεδομένων από έξω προς τον Η/Υ εξόδου μεταφορά δεδομένων από τον Η/Υ προς τα έξω ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Κύκλος Μηχανής κεντρικός έλεγχος/πράξεις

Διαβάστε περισσότερα