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

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

Download "ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΟΜΕΑΣ ΗΛΕKΤΡΟΝΙΚΗΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΟΜΕΑΣ ΗΛΕKΤΡΟΝΙΚΗΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σχεδιασμός επεξεργαστή RISC με VHDL Πανάρετου Αναστασία Επιβλέπων καθηγητής: κ. Νικολαΐδης Σπυρίδων ΘΕΣΣΑΛΟΝΙΚΗ 2017

2 Ευχαριστίες Για την ολοκλήρωση της πτυχιακής εργασίας θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή κ. Νικολαΐδη Σπυρίδων για τη συνεργασία και την πολύτιμη βοήθειά του. 1

3 ΤΙΤΛΟΣ: Σχεδιασμός επεξεργαστή RISC με VHDL ΠΕΡΙΛΗΨΗ: Για την παρούσα πτυχιακή εργασία υλοποιήθηκε ένας επεξεργαστής ο οποίος επεξεργάζεται δεδομένα των 16 bit. Η αρχιτεκτονική του βασίζεται στην RISC αρχιτεκτονική (Reduced Instruction Set Architecture) και πιο συγκεκριμένα υλοποιείται με αρχιτεκτονική συνόλου εντολών τύπου MIPS. Η αρχιτεκτονική συνόλου εντολών της συγκεκριμένης μονάδας επεξεργασίας περιγράφεται αναλυτικά στο πρώτο κεφάλαιο. Στη συνέχεια περιγράφονται πλήρως όλες οι επιμέρους μονάδες που αποτελούν τον επεξεργαστή. Για την καλύτερη λειτουργία και για βελτίωση της απόδοσης η υλοποίηση πραγματοποιήθηκε με εκτέλεση των εντολών σε στάδια δηλαδή για την ολοκλήρωσή της κάθε μιας απαιτείται πάνω από ένας κύκλος ρολογιού. Η τεχνική αυτή αναλύεται εκτενώς καθώς και ο τρόπος που επηρεάζει τη σχεδίαση, κυρίως τη μονάδα ελέγχου. Αφού περιγραφούν όλα τα απαραίτητα στοιχεία περιγράφεται η συνολική λειτουργία της μονάδας επεξεργασίας και παρουσιάζεται ως συνολικό κύκλωμα με τη μορφή σχηματικού διαγράμματος. Τέλος έχει γραφτεί ένα πρόγραμμα υπολογισμού τετραγωνικής ρίζας ακεραίων με σκοπό τη δοκιμή του επεξεργαστή. Το πρόγραμμα παρουσιάζεται αναλυτικά μαζί με τα κατάλληλα παραδείγματα και την περιγραφή της προσομοίωσης. Για την υλοποίηση χρησιμοποιήθηκε η γλώσσα περιγραφής υλικού VHDL (VHSIC Hardware Description Language). Το λογισμικό το οποίο χρησιμοποιήθηκε για την αναπαράσταση σε VHDL είναι η πλατφόρμα ISE Design (14.7 edition) της Xilinx. Για το σχεδιασμό τον σχηματικών διαγραμμάτων χρησιμοποιήθηκε το πρόγραμμα SmartDraw Software. Στις τελευταίες σελίδες της πτυχιακής εργασίας δίνεται ο κώδικας σε VHDL. TITLE: RISC processor design with VHDL ABSTRACT: For this thesis, a processor has been implemented that processes 16-bit data. Its architecture is based on RISC architecture (Reduced Instruction Set Architecture) and more specifically it is implemented with MIPS-style instruction set architecture. The instruction set architecture of this processing unit is described in detail in chapter one. After that, all the individual components that compose the processor are fully described. To succeed better operation and performance improvement, implementation was accomplished by executing the instructions in stages, that means more than one clock cycle is required for an instruction to complete. This technique is thoroughly analyzed along with the way that it affects the design, especially the control unit. After the components' description, the overall operation of the processing unit is described and represented as a complete circuit in the form of a block diagram. Finally, an integer square root calculating program is written to test the processor. The program is described in detail along with the appropriate examples and the description of the simulation. For the implementation, the hardware description language that has been used is VHDL (VHSIC hardware description language). The software that was used to represent the design with VHDL is the Xilinx ISE Design (14.7 edition) platform. SmartDraw Software was used to design the block diagrams. The code in VHDL is given in the last thesis' pages. 2

4 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή...4 Κεφ.1: Αρχιτεκτονική συνόλου εντολών Εντολές προσπέλασης της μνήμης Αριθμητικές και λογικές εντολές Εντολές διακλάδωσης...9 Κεφ.2: Περιγραφή των επιμέρους μονάδων Αριθμητική/λογική μονάδα και μονάδα ολίσθησης Αποκωδικοποιητής εντολών/ Instruction decoder Μετρητής προγράμματος/ Program counter Καταχωρητές γενικού σκοπού/ Register file Μνήμη εντολών/ Instruction memory Μνήμη δεδομένων/ Data memory...29 Κεφ.3: Κύκλος εντολής και συνολικό κύκλωμα επεξεργαστή Κύκλος εντολής Μονάδα ελέγχου/ Control unit Συνολικό κύκλωμα μονάδας επεξεργασίας...33 Κεφ.4: Δοκιμή του επεξεργαστή Υπολογισμός τετραγωνικής ρίζας ακεραίων Συγγραφή προγράμματος υπολογισμού ρίζας με τη μορφή ΜΙPS εντολών Εκτέλεση του προγράμματος Προσομοίωση Χρήση κυκλωμάτων του τσιπ...45 Παράρτημα: Κώδικας σε VHDL...46 i. Arithmetic - logic unit/ ALU...46 ii. 8 bit multiplier...52 iii. Instruction decoder...53 iv. Program counter...56 v. Register file...56 vi. Instruction memory...57 vii. Data memory...58 viii. Control unit...58 ix. Processing unit - Top module...59 x. Test bench...61 Κατάλογος σχημάτων...64 Βιβλιογραφία/ Πηγές

5 ΕΙΣΑΓΩΓΗ Στη σύγχρονη εποχή τα ψηφιακά ηλεκτρονικά συστήματα χρησιμοποιούνται ευρέως. Όσο η τεχνολογία εξελίσσεται όλο και περισσότερες συσκευές αποκτούν κάποια υπολογιστική ικανότητα με αποτέλεσμα να υπάρχει συνεχώς η ανάγκη για σχεδίαση πιο γρήγορων, πιο οικονομικών και συνολικά αποδοτικότερων υπολογιστικών μονάδων. Οι επεξεργαστές είναι από τα πιο σημαντικά στοιχεία ενός υπολογιστή και όλων των υπολογιστικών συστημάτων γενικότερα. Η κεντρική μονάδα επεξεργασίας - ΚΜΕ (central processing unit - CPU) είναι το πιο σημαντικό στοιχείο για έναν ηλεκτρονικό υπολογιστή μαζί με τη μνήμη και την μονάδα εισόδου/εξόδου. Είναι το σύστημα το οποίο επεξεργάζεται δεδομένα, ελέγχει τη λειτουργία ενός υπολογιστή και διαχειρίζεται τις εντολές. Επεξεργαστές βρίσκονται ενσωματωμένοι σε όλες τις ηλεκτρονικές συσκευές οι οποίες έχουν κάποια υπολογιστική ικανότητα. Αναφέρουμε χαρακτηριστικά τα κινητά, τις ψηφιακές κάμερες και άλλες παρόμοιες συσκευές. Η ΚΜΕ αποτελείται από τρία σημαντικά στοιχεία, τους καταχωρητές, την αριθμητική και λογική μονάδα (arithmetic and logic unit - ALU) και τη μονάδα ελέγχου (control unit). Οι καταχωρητές είναι μικρά στοιχεία μνήμης τα οποία αποθηκεύουν δεδομένα προσωρινά, όσο αυτά υφίστανται επεξεργασία. Μέσα σε μία μονάδα επεξεργασίας υπάρχουν πολλά είδη καταχωρητών όπως ο μετρητής προγράμματος, ο καταχωρητής των εντολών (ή μνήμη εντολών) κ.ά. Στην αριθμητική και λογική μονάδα (ALU) εκτελούνται όλες οι αριθμητικές και λογικές πράξεις. Η μονάδα ελέγχου ελέγχει τη ροή των δεδομένων που εισέρχονται και εξέρχονται από και προς το σύστημα. Η κύρια λειτουργία των επεξεργαστών είναι να εκτελούν διαδοχικά συγκεκριμένες εντολές. Για να μπορέσει να πραγματοποιηθεί αυτή η λειτουργία, είναι απαραίτητη η κωδικοποίηση των διαθέσιμων εντολών. Μία εντολή μπορεί να επεξεργαστεί δεδομένα ή να επηρεάσει τη ροή του προγράμματος. Κατα τη διάρκεια επεξεργασίας δεδομένων κατάλληλες εντολές προσθέτουν, αφαιρούν, πολλαπλασιάζουν δεδομένα και εκτελούν πολλές ακόμα πράξεις μεταξύ των δεδομένων. Οι εντολές που επηρεάζουν τη ροή της εκτέλεσης του προγράμματος είναι οι εντολές διακλάδωσης που ουσιαστικά είναι μία μορφή βρόχων επιλογής και επανάληψης. Κατα την κωδικοποίηση της εντολής πρέπει να λαμβάνονται υπόψην οι απαραίτητες πληροφορίες οι οποίες πρέπει να αντλούνται από αυτήν. Κάθε εντολή θα πρέπει να καθορίζει τη λειτουργία της, την πηγή των δεδομένων που είναι απαραίτητα καθώς και τη διεύθυνση στην οποία μπορεί να χρειαστεί να γραφτούν νέα δεδομένα. Η κωδικοποίηση των εντολών δίνεται σε ένα ή και παραπάνω bytes. Ένας σχεδιαστικός στόχος είναι να προκύψουν όσο γίνεται λιγότερα bytes. Συνήθως οι εντολές αποτελούνται από δύο τμήματα. Το πρώτο περιέχει τον κωδικό λειτουργίας (opcode) και ορίζει ποια λειτουργία θα συμβεί. Το δεύτερο μας δίνει διευθύνσεις καταχωρητών στους οποίους βρίσκονται τα δεδομένα προς επεξεργασία ή σε ποιους θα συμβεί αποθήκευση του αποτελέσματος. Πολλές φορές οι εντολές περιέχουν και απευθείας δεδομένα προς επεξεργασία. Ουσιαστικά οι εντολές είναι μία ακολουθία δυαδικών αριθμών οι οποίοι έχουν αντιστοιχηθεί σε μία λειτουργία. Αν θέλουμε να κάνουμε τις εντολές μας πιο κατανοητές μπορούμε να τις αναπαραστήσουμε σε δεκαεξαδικό σύστημα ή σε συμβολική γλώσσα. Το χρονικό διάστημα που απαιτείται από την έναρξη εκτέλεσης της εντολής μέχρι το τέλος της ονομάζεται κύκλος εντολής. Ο κύκλος εντολής περιέχει τέσσερα στάδια την ανάκληση της εντολής (fetch), την αποκωδικοποίησή της (decode), την εκτέλεση (execute) και τέλος την αποθήκευση/εγγραφή του αποτελέσματος (writeback). Κατα την ανάκληση καλείται η εντολή από τη θέση της μνήμης στην οποία βρίσκεται. Στο στάδιο της αποκωδικοποίησης η εντολή αποκωδικοποιείται, δηλαδή ενεργοποιούνται οι απαραίτητες μονάδες και ξεκαθαρίζεται ποια λειτουργία θα εκτελεστεί. Στη συνέχεια ακολουθεί η εκτέλεση εντολής. Κατα το στάδιο αυτό η λειτουργία η οποία έχει ήδη αποκωδικοποιηθεί εκτελείται από την κατάλληλη μονάδα. Τέλος, 4

6 κατά την αποθήκευση τα αποτελέσματα αποθηκεύονται στους καταχωρητές και αν κριθεί απαραίτητο αποθηκεύονται στη μνήμη με νέα εντολή. Έτσι ο κύκλος εντολής ολοκληρώνεται. Οι Οι επεξεργαστές είναι σύγχρονα κυκλώματα. Δηλαδή λειτουργούν σύμφωνα με το σήμα ρολογιού, το οποίο είναι ένα ηλεκτρικό σήμα χρονισμού. Το ρολόι είναι τετραγωνικός παλμός και εναλλάσσεται μεταξύ '0' και '1' περιοδικά. Περίοδος του ρολογιού είναι ο χρόνος που χρειάζεται το ρολόι για να πραγματοποιήσει έναν κύκλο ρολογιού δηλαδή να μεταβεί από το λογικό '0' σε λογικό '1' και ξανά σε λογικό '0'. Η συχνότητα με την οποία γίνεται αυτή η αλλαγή ονομάζεται συχνότητα του ρολογιού. Ως κύκλο ρολογιού ορίζουμε το μικρότερο χρονικό διάστημα στο οποίο μπορεί να συμβεί μια λειτουργία. Μία λειτουργία μπορεί να χρειάζεται έναν ή και περισσότερους κύλους ρολογιού για την ολοκλήρωσή της. Η συχνότητα ρολογιού για τη μονάδα επεξεργασίας που σχεδιάστηκε έχει οριστεί στα 1GHz (Τ = 1ns). δ Η μονάδα επεξεργασίας που σχεδιάστηκε χρησιμοποιεί αρχιτεκτονική συνόλου εντολών (instruction set architecture - ISA) σύμφωνα με το πρότυπο RISC (Reduced Instruction Set Architecture). Η αρχιτεκτονική συνόλου εντολών ενός υπολογιστή συνδέεται κυρίως με τον προγραμματισμό του και περιλαμβάνει τις εντολές και τις λειτουργίες του υπολογιστή, τους καταχωρητές, την αρχιτεκτονική της μνήμης, τον τρόπο με τον οποίο γίνεται η διευθυνσιοδότηση αλλά και τον τρόπο διασύνδεσης με εξωτερικές μονάδες εισόδου/εξόδου. Επίσης περιλαμβάνει και όλους τους κωδικούς λειτουργίας (opcode). Το πρότυπο RISC εντολών χρησιμοποιεί πολλές και σχετικά απλές εντολές, οι οποίες χρησιμοποιούν λίγους κύκλους ρολογιού για να πραγματοποιηθούν. Ο κύριος λόγος που επιλέχθηκε αυτό το πρότυπο είναι κυρίως για να γίνει το σύστημά μας πιο γρήγορο, δηλαδή για αύξηση της απόδοσης. Επίσης επειδή οι εντολές αρχιτεκτονικής RISC είναι σχετικά απλές η σχεδίασή μας και η συγγραφή προγράμματος γίνονται αυτόματα πιο κατανοητές διαδικασίες. δ δ Οι επεξεργαστές αποτελούνται από ένα σύνολο ψηφιακών κυκλωμάτων. Τα ψηφιακά κυκλώματα αποτελούνται από πολύ υλικό (hardware) και είναι σχετικά πολύπλοκα, πράγμα που καθιστά την "με το χέρι" σχεδίασή τους αδύνατη. Για το λόγο αυτό η σχεδίασή τους επιτυγχάνεται με το κατάληλο λογισμικό, τις γλώσσες περιγραφής υλικού (hardware description language - HDL). Μία γλώσσα περιγραφής υλικού είναι μία γλώσσα προγραμματισμού η οποία χρησιμοποιείται για την περιγραφή ψηφιακών ηλεκτρονικών κυκλωμάτων. Οι γλώσσες αυτές, είναι γλώσσες ταυτόχρονου προγραμματισμού κάτι που είναι λογικό αφού ο χρόνος είναι σημαντικός για οποιοδήποτε κύκλωμα/hardware. Οι κυρίαρχες γλώσσες περιγραφής υλικού σήμερα είναι η Verilog και η VHDL. Για τη σχεδίαση του συγκεκριμένου επεξεργαστή επιλέχθηκε η VHDL. Τα εργαλεία με τα οποία χρησιμοποιούνται οι γλώσσες αυτές για σχεδίαση διαθέτουν πάντα και λογισμικό προσομοίωσης (simulation) έτσι ώστε να μπορεί να δοκιμασθεί ψηφιακό κύκλωμα που σχεδιάστηκε. Το γεγονός αυτό μας προσφέρει ένα βασικό πλεονέκτημα, μπορούμε πάντα να ελέγξουμε αν το κύκλωμά μας λειτουργεί σωστά και στη συνέχεια να το υλοποίσουμε σε μία πλακέτα κατεβάζοντάς το σε αυτή. Ο επεξεργαστής που σχεδιάστηκε δεν υλοποιήθηκε σε αναπτυξιακή πλακέτα αλλά έχει ελεγχθεί πλήρως μέσω του λογισμικού που χρησιμοποιήθηκε για μελλοντική χρήση. σ Η VHDL (VHSIC hardware description language) επιλέχθηκε γιατί έχει πολλά πλεονεκτήματα. Το βασικό της πλεονέκτημα είναι ότι επιτρέπει τη μοντελοποίηση και την προσομοίωση του συστήματος πριν γίνει η "μετάφραση" σε φυσικό κύκλωμα με λογικές πύλες και γραμμές διασύνδεσης. Ένα επίσης πολύ σημαντικό πλεονέκτημα είναι ότι επιτρέπει τα ταυτόχρονα συστήματα (concurrent systems) αλλά διαθέτει και ακολουθιακή εκτέλεση εντολών, αν αυτό είναι επιθυμητό. Μία σύνθεση που έχει γραφτεί σε VHDL μπορεί να τροποποιηθεί και να μεταφερθεί εύκολα. 5

7 ΚΕΦΑΛΑΙΟ 1: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΥΝΟΛΟΥ ΕΝΤΟΛΩΝ Η μονάδα επεξεργασίας που έχει σχεδιαστεί ακολουθεί το πρότυπο της RISC αρχιτεκτονικής (Reduced Instruction Set Architecture). Χρησιμοποιεί εντολές προσπέλασης της μνήμης, αριθμητικές και λογικές εντολές και εντολές διακλάδωσης. Η κάθε εντολή αποτελείται από 24 bit με τα πρώτα 5 bit να αποτελούν τον κωδικό λειτουργίας της και τα υπόλοιπα για τη διευθυνσιοδότηση των καταχωρητών, όπου είναι απαραίτητο ή για απευθείας επεξεργασία δεδομένων. Συνολικά ο επεξεργαστής διαθέτει 28 εντολές. Όλα τα δεδομένα είναι ακέραιοι προσημασμένοι αριθμοί. 1.1 Εντολές προσπέλασης της μνήμης Εντολή LOAD: rd M(rA) opcode rd ra not used Η εντολή LOAD φορτώνει δεδομένα στους καταχωρητές γενικού σκοπού από τη μνήμη δεδομένων. O κωδικός λειτουργίας της εντολής LOAD έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα γραφτούν τα δεδομένα. Το πεδίο ra περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο βρίσκεται η διεύθυνση της θέσης μνήμης δεδομένων από την οποία αντλούνται τα δεδομένα. Οι θέσεις 10-0 δεν χρησιμοποιούνται. Εντολή STORE: M(rA) rβ opcode rα rβ not used Η εντολή STORE αποθηκεύει δεδομένα από τους καταχωρητές γενικού σκοπού στη μνήμη δεδομένων.o κωδικός λειτουργίας της εντολής STORE έχει οριστεί ως Το επόμενο πεδίο (rα) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο βρίσκεται η διεύθυνση της θέσης μνήμης δεδομένων στην οποία θα αποθηκευτούν τα δεδομένα τα οποία προέρχονται από τον καταχωρητή με αριθμό αναφοράς rb (14 11). Οι θέσεις 10-0 δεν χρησιμοποιούνται. Εντολή ΙΝ: opcode rd input Η εντολή ΙΝ φορτώνει δεδομένα στους καταχωρητές γενικού σκοπού από μία εξωτερική θύρα που λειτουργεί ως είσοδος. O κωδικός λειτουργίας της εντολής ΙΝ έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα γραφτούν τα δεδομένα της εισόδου. Το πεδίο 14 0 περιέχει τα δεδομένα εισόδου. Εντολή OUT: opcode rα not used Η εντολή OUT εμφανίζει δεδομένα ως έξοδο. O κωδικός λειτουργίας της εντολής OUT έχει οριστεί ως Το επόμενο πεδίο (ra) δίνει τον αριθμό αναφοράς του καταχωρητή ο οποίος περιέχει τα δεδομένα τα οποία θέλουμε να εμφανίσουμε σε μία πιθανή μονάδα εξόδου. Το πεδίο 14 0 δε χρησιμοποιείται. 1.2 Αριθμητικές και λογικές εντολές: Οι εντολές αυτές εκτελούν αριθμητικές και λογικές εντολές ή ολισθήσεις. Αριθμητικές εντολές: Εντολή ADD: rd ra + rb opcode rd ra rb not used Η εντολή ADD εκτελεί την πράξη της πρόσθεσης. O κωδικός λειτουργίας της εντολής ADD έχει 6

8 οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα της πράξης. Τα επόμενα δύο πεδία (ra και rb) περιέχουν τους αριθμούς αναφοράς των καταχωρητών στους οποίους βρίσκονται οι όροι της πρόσθεσης. Το πεδίο 6 0 δε χρησιμοποιείται. Εντολή SUB: rd ra - rb opcode rd ra rb not used Η εντολή SUB εκτελεί την πράξη της αφαίρεσης. O κωδικός λειτουργίας της εντολής SUB έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα της πράξης. Τα επόμενα δύο πεδία (ra και rb) δίνουν τους αριθμούς αναφοράς των καταχωρητών στους οποίους βρίσκονται ο αφαιρέτης και ο αφαιρετέος αντίστοιχα. Το πεδίο 6 0 δε χρησιμοποιείται. Εντολή MUL: rd ra(7 downto 0) * rb(7 downto 0) opcode rd ra rb not used Η εντολή MUL εκτελεί την πράξη του πολλαπλασιασμού. O κωδικός λειτουργίας της εντολής MUL έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα της πράξης. O πολλαπλασιασμός παρουσιάζει μία ιδιαιτερότητα. Χρησιμοποιεί δεδομένα των 8 bit. Έτσι από τα επόμενα πεδία (ra και rb), που περιέχουν τον πολλαπλασιαστή και τον πολλαπλασιαστέο, χρησιμοποιούνται μόνο τα 8 λιγότερο σημαντικά ψηφία τους. Με τον τρόπο αυτό καταφέραμε να αυξήσουμε κατά πολύ την ταχύτητα εκτέλεσης του πολλαπλασιασμού καθώς είναι μια χρονοβόρα πράξη. Έχουμε όμως απώλεια σε δεδομένα, η οποία όμως δεν μας επηρεάζει σε μεγάλο βαθμό αφού το αποτέλεσμα που θα προκύψει ειναι των 16 bit, δηλαδή προκύπτει ένα μεγάλο εύρος ακεραίων από -32,768 ως -32,767. Το πεδίο 6 0 δεν χρησιμοποιείται. Εντολή ADDΙ: rd ra + immediate opcode rd ra immediate Η εντολή ADDΙ εκτελεί την πράξη της πρόσθεσης. O κωδικός λειτουργίας της εντολής ADDΙ έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα της πράξης. Το επόμενο πεδίο (ra) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο βρίσκεται ο ένας όρος της πρόσθεσης. Το πεδίο immediate περιέχει τον άλλο όρο της πρόσθεσης και αυτή εκτελείται απευθείας. Επειδή τα δεδομένα είναι των 16 bit και ο όρος immediate των 11, γίνεται επέκταση προσήμου. Εντολή SUBΙ: rd ra - immediate opcode rd ra immediate Η εντολή SUBΙ εκτελεί την πράξη της αφαίρεσης. O κωδικός λειτουργίας της εντολής SUBΙ έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα της πράξης. Το επόμενο πεδίο (ra) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο βρίσκεται ο ένας όρος της αφαίρεσης. Το πεδίο immediate περιέχει τον άλλο όρο της αφαίρεσης και αυτή εκτελείται απευθείας. Επειδή τα δεδομένα είναι των 16 bit και ο όρος immediate των 11, γίνεται επέκταση προσήμου. Λογικές εντολές: Εντολή ΝΟΤ: rd not ra opcode rd ra not used Η εντολή ΝΟΤ εκτελεί τη λογική πράξη ΝΟΤ. O κωδικός λειτουργίας της εντολής ΝΟΤ έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα 7

9 αποθηκευτεί το αποτέλεσμα της πράξης. Τo επόμενο πεδίο (ra) περιέχει τον αριθμό αναφοράς του καταχωρητή στοον οποίο βρίσκεται ο όρος τον οποίο θα αντιστρέψουμε μέσω της NOT. Το πεδίο 10 0 δε χρησιμοποιείται. Εντολή AΝD: rd ra and rb opcode rd ra rb not used Η εντολή AΝD εκτελεί τη λογική πράξη AND. O κωδικός λειτουργίας της εντολής AΝD έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα της πράξης. Τα επόμενα δύο πεδία (ra και rb) περιέχουν τους αριθμούς αναφοράς των καταχωρητών στους οποίους βρίσκονται οι όροι της πράξης. Το πεδίο 6 0 δε χρησιμοποιείται. Τα πεδία 18 0 για όλες τις υπόλοιπες λογικές εντολές χρησιμοποιούνται με τον ίδιο ακριβώς τρόπο. Εντολή OR: rd ra or rb opcode rd ra rb not used Η εντολή OR εκτελεί τη λογική πράξη OR. O κωδικός λειτουργίας της εντολής OR έχει οριστεί ως Εντολή XOR: rd ra xor rb opcode rd ra rb not used Η εντολή XOR εκτελεί τη λογική πράξη XOR. O κωδικός λειτουργίας της εντολής ΧOR έχει οριστεί ως Εντολή NAΝD: rd ra nand rb opcode rd ra rb not used Η εντολή NAΝD εκτελεί τη λογική πράξη NAND. O κωδικός λειτουργίας της εντολής NAΝD έχει οριστεί ως Εντολή ΝOR: rd ra nor rb opcode rd ra rb not used Η εντολή ΝOR εκτελεί τη λογική πράξη ΝOR. O κωδικός λειτουργίας της εντολής ΝOR έχει οριστεί ως Εντολή XΝOR: rd ra xnor rb opcode rd ra rb not used Η εντολή ΧΝOR εκτελεί τη λογική πράξη XΝOR. O κωδικός λειτουργίας της εντολής ΧΝOR έχει οριστεί ως Εντολές ολίσθησης: Εντολή SRL: opcode rd ra immediate Η εντολή SRL εκτελεί λογική ολίσθηση δεξιά. O κωδικός λειτουργίας της εντολής SRL έχει οριστεί ως Το επόμενο πεδίο (rd) περιέχει τον αριθμό αναφοράς του καταχωρητή στον οποίο θα αποθηκευτεί το αποτέλεσμα της ολίσθησης. Τo επόμενο πεδίο (ra) περιέχει τον αριθμό αναφοράς του καταχωρητή στοον οποίο βρίσκεται ο όρος που θα ολισθήσει. Το πεδίο 10 0 (immediate) περιέχει το πλήθος των ψηφίων τα οποία θα ολισθήσουν. Στον όρο immediate γίνεται επέκταση προσήμου αφού έχει 11 bit ενώ θέλουμε 16 bit. Τα πεδία 18 0 για όλες τις υπόλοιπες εντολές ολίσθησης χρησιμοποιούνται με τον ίδιο ακριβώς 8

10 τρόπο. Εντολή SLL: opcode rd ra immediate Η εντολή SLL εκτελεί λογική ολίσθηση αριστερά. O κωδικός λειτουργίας της εντολής SRL έχει οριστεί ως Εντολή SRA: opcode rd ra immediate Η εντολή SRA εκτελεί αριθμητική ολίσθηση δεξιά. O κωδικός λειτουργίας της εντολής SRΑ έχει οριστεί ως Εντολή ROR: opcode rd ra immediate Η εντολή ROR εκτελεί κυκλική ολίσθηση δεξιά. O κωδικός λειτουργίας της εντολής ROR έχει οριστεί ως Εντολές διακλάδωσης Οι εντολές διακλάδωσης αλλάζουν τη ροή του προγράμματος είτε απευθείας είτε εαν ικανοποιείται μια συνθήκη. Εντολή JMP: opcode not used immediate Η εντολή JMP εκτελεί διακλάδωση χωρίς συνθήκη (unconditional branch). O κωδικός λειτουργίας της εντολής JMP έχει οριστεί ως Το πεδίο (18 16) δεν χρησιμοποιείται. Τα 5 τελευταία bit του πεδίου 15 0 (immediate) περιέχουν τη διεύθυνση της μνήμης εντολών στην οποία θα μεταπηδήσει ο μετρητής προγράμματος. Χρησιμοποιούνται μόνο 5 γιατί η μνήμη εντολών έχει 32 διευθύνσεις. Εντολή BRC: opcode not used immediate Η εντολή BRC εκτελεί διακλάδωση υπό συνθήκη (conditional branch). Η διακλάδωση συμβαίνει μόνο αν το carry flag (C_flag) είναι 0. O κωδικός λειτουργίας της εντολής BRC έχει οριστεί ως Το πεδίο (18 16) δεν χρησιμοποιείται. Το πεδίο 15 0 (immediate) λειτουργεί όπως και για την εντολή JMP και γενικότερα λειτουργεί με αυτόν τον τρόπο για όλες τις εντολές διακλάδωσης. Εντολή BRC': opcode not used immediate Η εντολή BRC' εκτελεί διακλάδωση υπό συνθήκη (conditional branch). Η διακλάδωση συμβαίνει μόνο αν το carry flag (C_flag) είναι 1. O κωδικός λειτουργίας της εντολής BRC' έχει οριστεί ως Το πεδίο (18 16) δεν χρησιμοποιείται. Εντολή BRV: opcode not used immediate Η εντολή BRV εκτελεί διακλάδωση υπό συνθήκη (conditional branch). Η διακλάδωση συμβαίνει μόνο αν το overflow flag (V_flag) είναι 0. O κωδικός λειτουργίας της εντολής BRV έχει οριστεί ως Το πεδίο (18 16) δεν χρησιμοποιείται. Εντολή BRV':

11 opcode not used immediate Η εντολή BRV' εκτελεί διακλάδωση υπό συνθήκη (conditional branch). Η διακλάδωση συμβαίνει μόνο αν το overflow flag (V_flag) είναι 1. O κωδικός λειτουργίας της εντολής BRV' έχει οριστεί ως Το πεδίο (18 16) δεν χρησιμοποιείται. Εντολή BRE: opcode ra rb immediate Η εντολή BRE εκτελεί διακλάδωση υπό συνθήκη (conditional branch). Η διακλάδωση συμβαίνει μόνο αν οι αριθμοί που βρίσκονται στους καταχωρητές με αριθμούς αναφοράς ra και rb είναι ίσοι. O κωδικός λειτουργίας της εντολής BRE έχει οριστεί ως Τα επόμενα δύό πεδία (18 15) και (14 11) περιέχουν τους αριθμούς αναφοράς των καταχωρητών στους οποίους βρίσκονται οι αριθμοί που συγκρίνονται για τον έλεγχο της συνθήκης. Εντολή BΝE: opcode ra rb immediate Η εντολή BΝE εκτελεί διακλάδωση υπό συνθήκη (conditional branch). Η διακλάδωση συμβαίνει μόνο αν οι αριθμοί που βρίσκονται στους καταχωρητές με αριθμούς αναφοράς ra και rb δεν είναι ίσοι. O κωδικός λειτουργίας της εντολής BΝE έχει οριστεί ως Τα επόμενα δύό πεδία (18 15) και (14 11) περιέχουν τους αριθμούς αναφοράς των καταχωρητών στους οποίους βρίσκονται οι αριθμοί που συγκρίνονται για τον έλεγχο της συνθήκης. Εντολή ΝΟΡ / Καμία λειτουργία Η εντολή ΝΟΡ (no operation) δεν εκτελεί καμία λειτουργία. Στην πράξη ο ρόλος της είναι να καθυστερεί τις διαδικασίες που πραγματοποιούνται κατά ένα κύκλο ρολογιού. Η μονάδα επεξεργασίας έχει σχεδιαστεί με την τεχνική μερικώς επικαλυπτόμενων λειτουργιών (pipeline) και η εντολή αυτή χρησιμοποιείται σε περίπτωση που θα εμφανιστούν εξαρτήσεις δεδομένων. 10

12 ΚΕΦΑΛΑΙΟ 2 : ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΕΠΙΜΕΡΟΥΣ ΜΟΝΑΔΩΝ Στην ενότητα αυτή περιγράφονται λεπτομερώς οι επιμέρους μονάδες που αποτελούν την μονάδα επεξεργασίας που σχεδιάστηκε. Για κάθε μονάδα εξηγείται πλήρως η λειτουργία της, η αρχιτεκτονική της καθώς και ο ρόλος της στο συνολικό αποτέλεσμα. 2.1 Αριθμητική/λογική μονάδα και μονάδα ολίσθησης Στην αριθμητική και λογική μονάδα (ALU) μίας μονάδας επεξεργασίας εκτελούνται οι περισσότερες πράξεις. Οι δυαδικοί αριθμοί που χειρίζεται είναι προσημασμένοι και των 16 bit. Τα δεδομένα παρέχονται στην ALU από τους καταχωρητές γενικού σκοπού (register file). Στη συνέχεια αφού αποκωδικοποιηθεί ο κωδικός λειτουργίας (opcode) εκτελείται η κατάλληλη πράξη. Τέλος, τα αποτελέσματα που προκύπτουν μεταφέρονται στους καταχωρητές γενικού σκοπού ή αποθηκεύονται στη μνήμη δεδομένων αν είναι απαραίτητο. Στη συγκεκριμένη ALU εκτελούνται όλες οι εντολές, δηλαδή εκτός από τις πράξεις που έχουν ήδη αναφερθεί ελέγχονται και οι συνθήκες διακλάδωσης. Αρχικά έχουμε σχεδιάσει έναν αποκωδικοποιητή 5-to-32 (5-to-32 decoder) όπου σαν είσοδο δέχεται τον κωδικό λειτουργίας και ανάλογα με την τιμή του εκτελεί την κατάλληλη πράξη. O κωδικός λειτουργίας έχει παραχθεί στο στάδιο της αποκωδικοποίησης της εντολής και εισέρχεται σαν είσοδος της ALU. Ο αποκωδικοποιητής της ALU φαίνεται στο σχήμα Σχήμα Αποκωδικοποιητής της ALU. Η ALU επίσης έχει μία είσοδο ενεργοποίησης (enable) η οποία όταν είναι '1' θέτει την ALU σε λειτουργία ενώ όταν είναι '0' δεν την ενεργοποιεί. Το σήμα εισόδου ενεργοποίησης παράγεται από τη μονάδα ελέγχου. H ALU έχει και μία είσοδο ρολογιού συχνότητας 1ns το οποίο ενεργοποιεί το κύκλωμά μας στη θετική ακμή του σήματός του. Επίσης σαν είσοδοι δίνονται τα δεδομένα που θέλουμε να επεξεργαστούμε τα οποία προέρχονται από τους καταχωρητές 11

13 (ra_data, rb_data) καθώς και ο δυαδικός αριθμός immediate ο οποίος χρησιμοποιείται για απευθείας υλοποίηση μιας πράξης. Όλες οι αριθμητικές και λογικές πράξεις εκτός από τον πολλαπλασιασμό υλοποιήθηκαν με τους ενσωματωμένους τελεστές του εργαλείου WebISE της Xilinx. Για τον πολλαπλασιασμό έχει προστεθεί κύκλωμα πολλαπλασιαστή. Ο πολλαπλασιαστής που έχει σχεδιαστεί δέχεται εισόδους των 8 bit και παράγει γινόμενο των 16 bit. Η αρχιτεκτονική του απεικονίζεται στο σχήμα Σχήμα Αρχιτεκτονική πολλαπλασιαστή με τρία επίπεδα από τα οποία το πρώτο πραγματοποιεί πολλαπλασιασμό αριθμών των 4 bit και τα υπόλοιπα προσθέσεις. Οι γραμμές διασύνδεσης αποτελούν αρτηρίες δεδομένων. Παρατηρούμε ότι ο πολλαπλασιαστής που σχεδιάσαμε αποτελείται από τρία επίπεδα πράξεων με το πρώτο να πραγματοποιεί πολλαπλασιασμό 4x4 και τα άλλα δύο προσθέσεις. 1ο επίπεδο: Σχήμα ο επίπεδο του πολλαπλασιαστή Αρχικά χωρίζουμε τον πολλαπλασιαστή και τον πολλαπλασιαστέο σε ομάδες των τεσσάρων bit 12

14 και τις πολλαπλασιάζουμε μεταξύ τους. Διαθέτουμε εισόδους των 8 bit η κάθε μία, οπότε με αυτήν την ομαδοποίηση θα προκύψουν οχτώ επιμέρους δυαδικοί αριθμοί των 4 bit που θα πολλαπλασιαστούν μεταξύ τους. Από τον κάθε 4x4 πολλαπλασιαστή θα προκύψει ένας δυαδικός αριθμός των 8 bit. To κύκλωμα του 4x4 πολλαπλασιαστή δίνεται στο σχήμα Σχήμα Αρχιτεκτονική 4x4 πολλαπλασιαστή Για να προχωρήσουμε πρέπει να εξηγηθεί πως λειτουργεί ακριβώς ο 4x4 πολλαπλασιαστής που έχει σχεδιαστεί. Αρχικά χωρίζουμε τις εισόδους σε ομάδες των 2 bit και τις πολλαπλασιάζουμε μεταξύ τους σε 2x2 πολλαπλασιαστές έτσι ώστε να προκύψει γινόμενο των 4 bit. (Σχήμα 2.1.5) Σχήμα Κύκλωμα 2x2 πολλαπλασιαστή υλοποιημένο με λογικές πύλες Στη συνέχεια οι έξοδοι που θα προκύψουν θα προστεθούν σε κυκλώματα αθροιστών των 4 και των 6 bit με τελικό αποτέλεσμα των έξι ψηφίων. Στο σχήμα έχουν μαρκαριστεί με ροζ χρώμα οι 6-bit-adders και με κίτρινο οι 4-bit-adders. Οι προσθέσεις στο κύκλωμά μας ακολουθούν 13

15 την παρακάτω λογική: Έστω τα πρακάτω γινόμενα Q3 Γινόμενο Β(3:2) x A(3:2) Q2 Γινόμενο Β(3:2) x A(1:0) Q1 Γινόμενο Β(1:0) x A(3:2) Q0 Γινόμενο Β(1:0) x A(1:0) Τα γινόμενα αυτά θα προστεθούν έχοντας κάνει επέκταση κατα 2 bit στο κάθε αποτέλεσμα ως εξής: Q3 3 Q3 2 Q3 1 Q Q2 3 Q2 2 Q2 1 Q2 0 + Q1 3 Q1 2 Q1 1 Q Q0 3 Q0 2 Q0 1 Q0 0 Res 7 Res 6 Res 5 Res 4 Res 3 Res 2 Res 1 Res 0 Τα έξι αυτά ψηφία αποτελούν τα έξι πιο σημαντικά ψηφία του γινομένου. Τα δύο λιγότερα σημαντικά ψηφία που περισσεύουν (Res 1 Res 0 ) είναι τα δύο λιγότερο σημαντικά ψηφία του γινομένου που προκύπτει από τον 2x2 πολλαπλασιαστή εισόδων Α(1:0) και Β(1:0). Έτσι προκύπτει το τελικό αποτέλεσμα των 8 bit. Σχήμα Διαχωρισμός αθροιστών 6 και 4 ψηφίων 2ο και 3ο επίπεδο: Στα επόμενα δύο επίπεδα του 8x8 πολλαπλασιαστή προσθέτουμε τα αποτελέσματα που προέκυψαν με την ίδια λογική που χρησιμοποιήθηκε στον 4x4 πολλαπλασιαστή. Δηλαδή χρησιμοποιούνται αθροιστές των 8 και 12 bit. Στο σχήμα έχουν μαρκαριστεί με ροζ χρώμα οι 12-bit-adders και με κίτρινο οι 8-bit-adders. Σχήμα Διαχωρισμός αθροιστών 12 και 8 ψηφίων 14

16 Ο δωδεκαψήφιος αριθμός που προκύπτει από τον τελευταίο κύκλωμα αθροιστή αποτελεί τα δώδεκα πιο σημαντικά ψηφία του τελικού γινομένου. Τα τέσερα λιγότερα σημαντικά ψηφία που περισσεύουν είναι τα τέσσερα λιγότερο σημαντικά ψηφία του γινομένου που προκύπτει από τον 4x4 πολλαπλασιαστή εισόδων Α(3:0) και Β(3:0). Έτσι προκύπτει το τελικό αποτέλεσμα των 16 bit. Οι αθροιστές που χρησιμοποιήθηκαν υλοποιήθηκαν με την ενσωματωμένη πρόσθεση του εργαλείου WebISE της Xilinx. Τέλος τα πρόσημα των δύο εισόδων θα οδηγηθούν σε μία πύλη XOR και το αποτέλεσμα της είναι το πρόσημο του τελικού μας αποτελέσματος. Αφού εκτελεστούν οι αριθμητικές ή οι λογικές πράξεις το αποτέλεσμα εξέρχεται από το κύκλωμα σαν έξοδος (DataOut). Όταν εκτελούνται αριθμητικές πράξεις είναι απαραίτητο να ελέγξουμε το carry flag και το overflow flag. Carry flag: Σε μία αριθμητική πράξη δυαδικών αριθμών θα προκύψει carry flag όταν προσθέτω δύο αριθμούς και σαν αποτέλεσμα θα έχω υπερχείλιση, δηλαδή ο αριθμός που προκύπτει ξεπερνάει το εύρος των διαθέσιμων bit. Το carry flag μας ενδιαφέρει για μη προσημασμένους αριθμούς. Επειδή στη μονάδα επεξεργασίας που σχεδιάστηκε έχω προσημασμένους πρέπει να αναφέρουμε ότι το υπόλοιπο δεν μας δίνει κάποια πληροφορία για το αν υπάρχουν σφάλματα. Ωστόσο το υπολογίζουμε και το μεταφέρουμε στην έξοδο C_flag. Για να το υπολογίσω θα οδηγήσω σε μία πύλη XOR τα δύο πιο σημαντικά ψηφία του αποτελέσματος και η έξοδός της θα είναι το carry flag. Overflow flag: Σε μία αριθμητική πράξη δυαδικών αριθμών θα προκύψει overflow flag όταν προσθέτω δύο αριθμούς ίδιου προσήμου και προκύπτει ένας αριθμός αντίθετου προσήμου. Στις πράξεις προσημασμένων αριθμών σε συμπλήρωμα ως προς 2 το overflow flag ορίζει αν έχω σφάλμα. Σε περίπτωση που αυτό είναι '1' σημαίνει ότι το αποτέλεσμα δεν είναι σωστό. Όταν συμβεί αυτό θα πρέπει να κόψω το LSB του τελικού αποτελέσματος για να μπορέσω να θέσω ως MSB το πραγματικό πρόσημο του αριθμού αυτού. Αφού το overflow flag υπολογιστεί το μεταφέρουμε στην έξοδο V_flag. Για να το υπολογίσω κατά την πράξη της πρόσθεσης αρχικά θα ελέγξω αν οι δύο προσθετέοι είναι ομόσημοι. Αν αυτοί είναι ομόσημοι το overflow flag θα είναι '1' μόνο αν το πρόσημο του αθροίσματος είναι διαφορετικό. Δηλαδή θα πρέπει να υλοποιηθεί η εξής συνάρτηση: overflow_flag = A n B n sum n ' + A n 'B n 'sum n. Όπου οι n όροι είναι τα πιο σημαντικά ψηφία για τους δύο όρους και το άθροισμα δηλαδή τα πρόσημα. Το κύκλωμα υπολογισμού του V_flag φαίνεται στο σχήμα Σχήμα Κύκλωμα υπολογισμού overflow_flag 15

17 Διακλαδώσεις: Στην ALU αναφέραμε ότι ελέγχονται και οι συνθήκες διακλάδωσης. Για το λόγο αυτό είναι απαραίτητο η ALU εκτός από την έξοδο του αποτελέσματος λογικών και αριθμητικών πράξεων να υπάρχει και μία έξοδος (BranchEn) η οποία θα ορίζει αν πραγματοποιείται διακλάδωση. Ο έλεγχος των συνθηκών διακλάδωσης και ο υπολογισμός του BranchEn πραγματοποιείται με πολυπλέκτες. Στην περίπτωση των BRE, BNE χρησιμοποιείται και αφαιρέτης για τον έλεγχο της συνθήκης. Όταν αυτή θα είναι '1' ο μετρητής προγράμματος θα πραγματοποιεί διακλάδωση και όταν είναι '0' η ροή του προγράμματος θα συνεχίζεται κανονικά. Η έξοδος BranchEn θα είναι '0' ούτως ή άλλως για όλους τους κωδικούς λειτουργίας που δεν αφορούν εντολές διακλάδωσης. Για την εντολή JMP (unconditional branch) έχω πάντα διακλάδωση και απλώς θα θέσω σε '1' την ενεργοποίηση διακλάδωσης (BranchEn). Όταν συμβαίνει μία από τις BRC, BRC', BRV, BRV' αρκεί να ελέγξω την τιμή του κατάλληλου flag. Δηλαδή: "10001" Branch if Carry_flag = '0' BranchEn = not (C_flag) "10010" Branch if Carry_flag = '1' BranchEn = C_flag "10011" Branch if Overflow_flag = '0' BranchEn = not (V_flag) "10100" Branch if Overflow_flag = '1' BranchEn = V_flag Απομένουν δύο εντολές διακλάδωσης που δεν αναλύσαμε, η BRE (Branch if Equal) και η BNE (Branch if Not Equal). Για να υπολογισθεί η ενεργοποίηση διακλάδωσης στις δύο αυτές εντολές θα πρέπει να ελέγξουμε τη διαφορά των δύο εισόδων δεδομένων (ra_data, rb_data). Οπότε θα πραγματοποιήσω αφαίρεση μεταξύ των δύο όρων και θα δώσω την κατάλληλη τιμή στο BranchEn ανάλογα με το αποτέλεσμα της πράξης ως εξής: "10101" BRE BranchEn = '1' if ra_data rb_data = Για να υλοποιηθεί σωστά η εντολή αυτή θα οδηγήσω σε μία πύλη NOR όλα τα bit του αποτελέσματος της αφαίρεσης με έξοδο το BranchEn το οποίο θα είναι ίσο με '1' μόνο αν όλα τα bit του αποτελέσματος είναι '0'. "10110" BΝE BranchEn = '1' if ra_data rb_data Ακολουθώ ακριβώς την ίδια λογική με την εντολή BRE και οδηγώ όλα τα bit του αποτελέσματος σε μία πύλη OR. Προσπέλαση της μνήμης: Για τις εντολές προσπέλασης της μνήμης αυτό που κάνει η ALU είναι να καθορίζει το σήμα ενεργοποίησης εγγραφής στη μνήμη των δεδομένων. Εγγραφή στη μνήμη δεδομένων έχω μόνο για τις εντολές STORE, IN οπότε μέσω αποκωδικοποιητή που δέχεται τον κωδικό λειτουργίας καθορίζει το σήμα ενεργοποίησης εγγραφής στο '1' όταν εκτελούνται αυτές οι δύο εντολές. Στην παρούσα σχεδίαση εμφανίζονται στην έξοδο τα δεδομένα που γράφτηκαν η διαβάστηκαν. Αυτό δεν ήταν κάτι απαραίτητο αλλά πραγματοποιήθηκε για να γίνει το περιβάλλον της σχεδίασης πιο κατανοητό και φιλικό προς το σχεδιαστή, ειδικά σε ό,τι αφορά τη δοκιμή του κυκλώματος. 16

18 Ολισθήσεις: Στην ALU εκτελούνται και οι ολισθήσεις των εισόδων. Για να πραγματοποιηθούν έχει σχεδιαστεί μία μονάδα ολίσθησης ως υπομονάδα της ALU. Η μονάδα ολίσθησης που σχεδιάστηκε δέχεται ως είσοδο τον αριθμό ο οποίος θα υποστεί ολίσθηση, έναν έλεγχο ο οποίος ορίζει τι είδους ολίσθηση θα πραγματοποιηθεί και έναν αριθμό ο οποίος ορίζει κατά πόσα ψηφία θα πραγματοποιηθεί η ολίσθηση. Η μονάδα ολίσθησης ενεργοποιείται με τους κατάλληλους κωδικούς λειτουργίας. Επίσης οι κωδικοί λειτουργίας λειτουργούν και σαν έλεγχος του είδους της ολίσθησης (Πίνακας 2.1.1) Πίνακας Λειτουργίες του ολισθητή opcode Ολίσθηση Λογική ολίσθηση δεξιά Λογική ολίσθηση αριστερά Αριθμητική ολίσθηση δεξιά Κυκλική ολίσθηση δεξιά Υπάρχουν αρκετοί τρόποι υλοποίησης της ολίσθησης. Ένας από τους πιο γνωστούς και απλούς ειναί o καταχωρητής ολίσθησης (shift register). Όμως αυτός ο τρόπος ολίσθησης είναι πολύ αργός οπότε δεν επιλέχθηκε. Στο κύκλωμά μας επιλέχθηκε η υλοποίηση της μονάδας ολίσθησης με πολυπλέκτες. Με τον τρόπο αυτό αυξάνονται αρκετά τα απαιτούμενα κυκλώματα αλλά αυξάνεται κατά πολύ και η ταχύτητα. Η μονάδα ολίσθησης που διαθέτουμε θα ολισθαίνει τα διαθέσιμα δεδομένα τα οποία είναι των 16 bit. Επίσης στο πεδίο εντολών immediate (βλέπε 1.2 αρχιτεκτονική συνόλου εντολών) θα ορίζεται κατα πόσα ψηφία θα πραγματοποιείται ολίσθηση. Το πεδίο immediate έχει διαθέσιμα 11 bit. Επειδή η ολίσθηση μπορεί να συμβεί μέχρι και για 15 ψηφία έχει νόημα να χρησιμοποιήσουμε μόνο τα 4 bit το πεδίου αυτού. Επίσης πραγματοποιούνται τέσσερα διαφορετικά είδη ολισθήσεων. Άρα ο έλεγχος απαιτεί μόνο 2 bit αντί για 5 που διαθέτει ο κωδικός λειτουργίας. Άρα είναι δυνατόν και αποδοτικότερο να χρησιμοποιηθούν ως έλεγχοι του είδους ολίσθησης μόνο τα 2 λιγότερο σημαντικά ψηφία του κωδικού λειτουργίας και όχι όλα. Έτσι ο πίνακας διαμορφώνεται ως εξής: Πίνακας Λειτουργίες του ολισθητή opcode(1) opcode(0) Ολίσθηση 0 0 Λογική ολίσθηση αριστερά 0 1 Αριθμητική ολίσθηση δεξιά 1 0 Κυκλική ολίσθηση δεξιά 1 1 Λογική ολίσθηση δεξιά Το κύκλωμά μας αποτελείται συνολικά από τέσσερα επίπεδα πολυπλεκτών. Το κάθε επίπεδο διαθέτει 16 πολυπλέκτες 4 σε 1 (4-to-1 multiplexers) οι οποίοι θα έχουν έλεγχο των 2 bit τα δύο λιγότερο σημαντικά ψηφία του κωδικού λειτουργίας και ελέγχουν το είδος της ολίσθησης που θα πραγματοποιηθεί. Επίσης στο κάθε επίπεδο υπάρχουν 16 πολυπλέκτες 2 σε 1 (2-to-1 multiplexers) οι οποίοι ελέγχουν κατα πόσα ψηφία θα γίνει η ολίσθηση. Για κάθε επίπεδο 2-to-1 πολυπλεκτών ως έλεγχος λειτουργεί το κάθε ψηφίο του πεδίου immediate, το οποίο καθορίζει κατα πόσα ψηφία θα γίνει η ολίσθηση. Το πλήρες κύκλωμα του ολισθητή φαίνεται στο σχήμα

19 Σχήμα Μονάδα ολίσθησης υλοποιημένη με πολυπλέκτες 18

20 Η αριθμητική/λογική μονάδα έχει περιγραφεί πλήρως. Στο σχήμα απεικονίζεται σαν σύνολο μαζί με όλες τις εισόδους και εξόδους της. Σχήμα Συνολική απεικόνιση της ALU 2.2 Αποκωδικοποιητής εντολών / Instruction decoder Ο αποκωδικοποιητής εντολών δέχεται σαν είσοδο δεδομένα από την μνήμη των εντολών και τις αποκωδικοποιεί. Δηλαδή απομονώνει τον κωδικό λειτουργίας άρα καθορίζει και την διαδικασία που θα εκτελεστεί. Επίσης αποκωδικοποιεί τους αριθμούς αναφοράς καταχωρητών δηλαδή καθορίζει απο ποιους καταχωρητές του register file θα διαβάσουμε δεδομένα και σε ποιον καταχωρητή του θα γράψουμε. Απομονώνει και το πεδίο immediate το οποίο μπορεί να χρησιμοποιηθεί για ορισμένες απ'ευθείας πράξεις. Τέλος, παράγει και σήμα εγγραφής για το register file το οποίο ορίζει αν έχουμε εγγραφή ('1') ή όχι ('0'). Διαθέτει επίσης είσοδο εγγραφής (enable/en) και είσοδο ρολογιού. Τα πρώτα 5 bit της εισόδου (InstructionSet) αποτελούν τον κωδικό λειτουργίας. Οπότε θα οδηγηθούν σε έναν αποκωδικοποιητή ώστε να καθοριστεί η εντολή που θα εκτελεστεί. Ο αποκωδικοποιητής είναι παρόμοιος με αυτόν που υπάρχει στην είσοδο της ALU και φαίνεται στο σχήμα Σχήμα Αποκωδικοποιητής του Instruction Decoder (Αποκωδικοποιητής εντολών). 19

21 Ανάλογα με το ποια έξοδος του αποκωδικοποιητή είναι '1' οι αριθμοί αναφοράς των καταχωρητών θα πάρουν τις κατάλληλες τιμές καθώς και το σήμα ενεργοποίησης εγγραφής στο register file. Για την υλοποίηση του αποκωδικοποιητή εντολών χρησιμοποιήθηκαν αρκετά κυκλώματα επειδή δόθηκε μεγαλύτερη σημασία στην ταχύτητα και όχι στο κόστος. Στον πίνακα απεικονίζονται οι εντολές και οι κατάλληλες τιμές για τους αριθμούς αναφοράς καταχωρητών. Εδώ είναι χρήσιμο να αναφέρουμε ότι έχω εγγραφή στους καταχωρητές με δείκτη αναφοράς rd_sel και ανάγνωση από τους ra_sel και rb_sel. Πίνακας Αποκωδικοποίηση εντολών στον αποκωδικοποιητή εντολών Εντολή InstrSet (23 19) rd_sel ra_sel rb_sel write enable immediate LOAD InstrSet (18 15) InstrSet (14 11) not used 1 not used STORE not used InstrSet (18 15) not used 0 not used IN InstrSet (18 15) InstrSet (14 11) not used 1 not used OUT not used InstrSet (18 15) not used 0 not used ADD InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used SUB InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used MUL InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used ADDI InstrSet (18 15) InstrSet (14 11) not used 1 InstrSet (10 0) SUBI InstrSet (18 15) InstrSet (14 11) not used 1 InstrSet (10 0) AND InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used OR InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used NOT InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used XOR InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used NAND InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used NOR InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used XNOR InstrSet (18 15) InstrSet (14 11) InstrSet (10 7) 1 not used JMP not used not used not used 0 InstrSet (10 0) BRC not used not used not used 0 InstrSet (10 0) BRC' not used not used not used 0 InstrSet (10 0) BRV not used not used not used 0 InstrSet (10 0) BRV' not used not used not used 0 InstrSet (10 0) BRE not used InstrSet (18 15) InstrSet (14 11) 0 InstrSet (10 0) BNE not used InstrSet (18 15) InstrSet (14 11) 0 InstrSet (10 0) SRL InstrSet (18 15) InstrSet (14 11) not used 1 InstrSet (10 0) SLL InstrSet (18 15) InstrSet (14 11) not used 1 InstrSet (10 0) SRA InstrSet (18 15) InstrSet (14 11) not used 1 InstrSet (10 0) ROR InstrSet (18 15) InstrSet (14 11) not used 1 InstrSet (10 0) not used not used not used not used NOP don't care don't care don't care 0 don't care Στον πίνακα παρατηρούμε ότι για κάθε έξοδο έχουμε δύο πιθανές τιμές. Έτσι το κύκλωμά μας θα υλοποιηθεί με 2-σε-1 πολυπλέκτες που θα χρησιμοποιούν ως έλεγχο την έξοδο του αποκωδικοποιητή, δηλαδή θα εξαρτώνται από την εντολή που εκτελείται. Όταν το πεδίο στο οποίο θα θέσουμε μία τιμή δεν χρησιμοποιείται τότε θα έχουμε αδιάφορες συνθήκες. Αυτό σημαίνει ότι δεν επηρεάζεται η λειτουργία του κυκλώματος ούτε και αυτή των μονάδων που ακολουθούν τον αποκωδικοποιητή εντολών στο συνολικό κύκλωμα από τις τιμές των εξόδων. Θα αναλύσουμε κάθε έξοδο ξεχωριστά και θα παρουσιάσουμε το κύκλωμά της. 20

22 Οι καταχωρητές με δείκτη αναφοράς rd_sel έχουν την τιμή του πεδίου της εντολής ή δεν χρησιμοποιούνται (αδιάφορες συνθήκες) δηλαδή δεν έχουμε εγγραφή. Έτσι μπορούμε μόνιμα να δώσουμε στον αριθμό αναφοράς καταχωρητή rd_sel την τιμή του πεδίου της εντολής (Instruction Set). Με τον ίδιο τρόπο, παρατηρούμε ότι όταν γίνεται ανάγνωση από καταχωρητή με αριθμό αναφοράς ra_sel τότε αυτός ορίζεται από το πεδίο όταν έχω και εγγραφή κάποιου αποτελέσματος ενώ όταν έχω μόνο ανάγνωση χωρίς εγγραφή, ο αριθμός αναφοράς ορίζεται από το πεδίο της εντολής. Όπως αναφέρθηκε και πριν, στην περίπτωση που δε χρησιμοποιείται ο αριθμός αναφοράς ra_sel θα έχω αδιάφορες συνθήκες. Έτσι ο ra_sel ορίζεται ως εξής: ra_sel InstrSet (18 15) αν δεν έχω εγγραφή (write enable = 0) ra_sel InstrSet (14 11) αν έχω εγγραφή (write enable = 1) Για να υλοποιηθούν σε κύκλωμα οι παραπάνω συνθήκες γίνεται χρήση πολυπλεκτών. Χρησιμοποιούνται τέσσερεις 2-σε-1 πολυπλέκτες με έλεγχο το σήμα ενεργοποίησης εγραφής (write enable) και εισόδους τα πεδία InstrSet (18 15) και InstrSet (14 11). Η έξοδος καθορίζει το πεδίο ra_sel. Το κύκλωμα φαίνεται στο σχήμα Σχήμα Καθορισμός αριθμού αναφοράς καταχωρητή ra_sel, μόνο για ανάγνωση. 21

23 Η ίδια λογική ακολουθείται και για το πεδίο rb_sel το οποίο χρησιμοποιείται επίσης μόνο για ανάγνωση. Στην περίπτωση αυτή ορίζεται από το πεδίο 10 7 όταν έχω και εγγραφή κάποιου αποτελέσματος ενώ όταν έχω μόνο ανάγνωση χωρίς εγγραφή, ο αριθμός αναφοράς ορίζεται από το πεδίο της εντολής. Στις περιπτώσεις όπου δεν χρησιμοποιείται υπάρχουν αδιάφορες συνθήκες. Δηλαδή: rβ_sel InstrSet (14 11) αν δεν έχω εγγραφή (write enable = 0) rβ_sel InstrSet (10 7) αν έχω εγγραφή (write enable = 1) Το σήμα ενεργοποίησης εγγραφής (write enable) χρησιμοποιείται και ως έξοδος αλλά και ως έλεγχος για όλα τα υπόλοιπα σήματα εξόδου. Άρα θα πρέπει να είναι bidirectional δηλαδή να μπορεί να λειτουργεί και ως είσοδος (έλεγχος στους πολυπλέκτες) και ως έξοδος του κυκλώματος. (Input/Output I/O). Για να οριστεί το σήμα ενεργοποίησης εγγραφής χρησιμοποιείται ένας 32-σε-1 πολυπλέκτης με έλεγχο των 5 bit (Σχήμα 2.2.3). Ως έλεγχος του μεγάλου αυτού πολυπλέκτη λειτουργεί ο κωδικός λειτουργίας. Οι είσοδοι του πολυπλέκτη είναι τα σήματα '0' και '1' τα οποία θα περάσουν στην έξοδο ανάλογα με την τιμή του ελέγχου. Σχήμα to-1 multiplexer για καθορισμό του σήματος ενεργοποίησης εγγραφής (write enable) 22

24 Τέλος, το πεδίο immediate θα χρησιμοποιεί πάντα τα 11 τελευταία bit της εντολής. Αν αυτό δε χρησιμοποιείται θα ορίζεται ως αδιάφορες συνθήκες. O αποκωδικοποιητής εντολών έχει περιγραφεί πλήρως. Στο σχήμα απεικονίζεται σαν σύνολο μαζί με όλες τις εισόδους και εξόδους του. Σχήμα Συνολική απεικόνιση του αποκωδικοποιητή εντολών (instruction decoder) 2.3 Μετρητής προγράμματος / Program Counter Ο μετρητής προγράμματος δέχεται σαν είσοδο έναν κωδικό λειτουργίας των 2 bit που καθορίζει τη λειτουργία του μετρητή προγράμματος (pc_opcode). Επίσης δέχεται σαν είσοδο μία διεύθυνση στην οποία θα μεταπηδήσει αν συμβεί διακλάδωση/branch (pc_in). Διαθέτει επίσης είσοδο ρολογιού. O μετρητής προγράμματος δε διαθέτει είσοδο ενεργοποίησης (enable) επειδή πάντα πρέπει να είναι ενεργοποιημένος και να μετράει τις εντολές που εκτελούνται. Η μόνη έξοδος που παράγει είναι η νέα διεύθυνση στην οποία βρίσκεται η προς εκτέλεση εντολή. Αρχικά ορίζεται ο κωδικός λειτουργίας του μετρητή προγράμματος (pc_opcode) και ποιες λειτουργίες εκτελούνται ανάλογα με την τιμή του. Ο τρόπος λειτουργίας του φαίνεται στον πίνακα Πίνακας Κωδικός λειτουργίας του μετρητή προγράμματος pc_opcode Λειτουργία 0 0 Καμία λειτουργία 0 1 Επόμενη εντολή 1 0 Διακλάδωση 1 1 Reset/Μηδενισμός Ο μετρητής προγράμματος έχει σχεδιαστεί σαν απλό ακολουθιακό κύκλωμα. Όταν ο pc_opcode είναι "00" η έξοδος θα παραμείνει στην ίδια τιμή. Όταν αυτός θα είναι "01" στην έξοδο θα προστεθεί 1 και θα προχωρήσουμε στην επόμενη διεύθυνση. Η πρόσθεση γίνεται μέσω της άθροισης η οποία χρησιμοποιεί την ενσωματωμένη άθροιση της VHDL. Όταν θα είναι "10" στην έξοδο θα περάσει η διεύθυνση της εισόδου pc_in δηλαδή η διεύθυνση στην οποία μεταπηδάμε σε περίπτωση διακλάδωσης και τέλος για "11" ο μετρητής μηδενίζεται (reset). To κύκλωμα του μετρητή προγράμματος το οποίο υλοποιείται με 16 πολυπλέκτες 4-σε-1 απεικονίζεται στο σχήμα Οι διευθύνσεις που χρησιμοποιούνται στις εισόδους και εξόδους είναι των 15 bit. 23

25 Σχήμα Μετρητής προγράμματος/program counter To σήμα current_address δεν είναι κάποια είσοδος αλλά ένα σήμα το οποίο λειτουργεί μόνο μέσα στο μετρητή καιέχει αρχικοποιηθεί στο '0'. Θα περάσει στην έξοδο με τις κατάλληλες τιμές του ελέγχου (pc_opcode). Το πότε και αν θα γίνεται reset ή πότε και αν θα έχουμε διακλάδωση καθορίζεται στη συνολική σχεδίαση της CPU και θα αναλυθεί αργότερα. Τέλος η διεύθυνση διακλάδωσης pc_in κανονικά χρησιμοποιεί 5 bit οπότε στους πολυπλέκτες 5 ως 15 στην είσοδο pc_in εισέρχεται το '0'. O μετρητής προγράμματος έχει περιγραφεί πλήρως. Στο σχήμα απεικονίζεται σαν σύνολο μαζί με όλες τις εισόδους και εξόδους του. Σχήμα Συνολική απεικόνιση του μετρητή προγράμματος (program counter) 24

26 2.4 Καταχωρητές γενικού σκοπού / Register file Το register file είναι ένα σύνολο καταχωρητών στους οποίους γράφονται δεδομένα είτε διαβάζονται δεδομένα από αυτούς. Οι καταχωρητές αποτελούνται από μία ομάδα flip-flop (στην περίπτωσή μας D f/f) τα οποία μπορούν να αποθηκεύσουν 1 bit. Στο συγκεκριμένο register file κάθε καταχωρητής αποτελείται από 16 flip-flop αποθηκεύει δηλαδή 16 bit. Το register file δέχεται ως είσοδο σήμα ενεργοποίησης εγγραφής (write enable) το οποίο όταν είναι '1' δηλώνει εγγραφή ενώ όταν είναι '0' δηλώνει ανάγνωση. Διαθέτει δύο πόρτες ανάγνωσης και μία εγγραφής. Επίσης δέχεται είσοδο εγγραφής (enable/en) και είσοδο ρολογιού. Όλα τα flip flops και κατά συνέπεια και όλοι οι καταχωρητές μοιράζονται το ίδιο ρολόι. Ανάγνωση: Οι καταχωρητές γενικού σκοπού διαθέτουν δύο εξόδους δεδομένων οι οποίες εμφανίζουν δεδομένα από κάποιους καταχωρητές σε περίπτωση που το σήμα ενεργοποίησης εγγραφής είναι '0', δηλαδή όταν συμβαίνει ανάγνωση. Τα δεδομένα εισόδου δεν χρησιμοποιούνται. Εγγραφή: Κατά την εγγραφή η μόνη διεργασία που πραγματοποιείται είναι να αποθηκευτούν τα δεδομένα εισόδου σε κάποιο καταχωρητή. Το σήμα ενεργοποίησης εγγραφής είναι '1' και τα σήματα εξόδου δεν χρησιμοποιούνται. Τέλος, πρέπει με κάποιο τρόπο να οριστούν οι αριθμοί αναφοράς καταχωρητών στους οποίους γίνεται ανάγνωση ή εγγραφή. Για το σκοπό αυτό έχουν οριστεί τρεις είσοδοι των 4 bit οι οποίες καθορίζουν σε ποιον καταχωρητή θα γίνει εγγραφή (rd_sel) και από ποιους θα γίνει ανάγνωση (ra_sel, rb_sel). Η μονάδα επεξεργασίας που έχει σχεδιαστεί χρησιμοποιεί 16 καταχωρητές των 16 bit. Δηλαδή συνολικά χρησιμοποιούνται 16x16 = 256 D flip-flops. Οι αριθμοί αναφοράς καταχωρητών έχουν εύρος από 0 (0000) ως 15 (1111) και είναι θετικοί ακέραιοι αριθμοί. Περνώντας στην υλοποίηση του κυκλώματος αρχικά χρησιμοποιείται ένας αποκωδικοποιητής 4-σε-16 (4-to-16 decoder) ο οποίος παίρνει σαν είσοδο τον αριθμό αναφοράς του καταχωρητή στον οποίο θα έχω εγγραφή (rd_sel). Στη συνέχεια οι γραμμές που προκύπτουν θα οδηγηθούν σε μία πύλη AND μαζί με το σήμα ενεργοποίησης εγγραφής. Έτσι θα έχω εγγραφή αν και μόνο αν το σήμα ενεργοποίησης εγγραφής είναι '1' και αν η γραμμή εξόδου του αποκωδικοποιητή είναι '1'. Τα δεδομένα εισόδου οδηγούνται σε όλους τους καταχωρητές αλλά γράφονται σε αυτόν που οδηγεί η έξοδος του αποκωδικοποιητή και το σήμα ενεργοποίησης εγγραφής. Για να "διαβάσω" από τους καταχωρητές γενικού σκοπού χρησιμοποιώ 16-σε-1 πολυπλέκτες (16-to-1 multiplexers). Οι έξοδοι των καταχωρητών θα περάσουν σε δύο τέτοιους πολυπλέκτες οι οποίοι δέχονται ως έλεγχο τους αριθμούς αναφοράς καταχωρητών από τους οποίους γίνεται ανάγνωση (ra_sel, rb_sel). Έτσι συνολικά έχω δύο τέτοιους πολυπλέκτες για κάθε bit άρα συνολικά 32 πολυπλέκτες 16-σε-1. Στην έξοδο εμφανίζονται τα δεδομένα των συγκεκριμένων καταχωρητών. Το κύκλωμα των καταχωρητών γενικού σκοπού απεικονίζεται στο σχήμα Στη συνέχεια θα περιγραφεί συνοπτικά και ο καταχωρητής για να δοθεί μια ολοκληρωμένη εικόνα της λειτουργίας των καταχωρητών γενικού σκοπού. 25

27 Σχήμα Καταχωρητές γενικού σκοπού/register file *Τα δεδομένα εισόδου (DataIn) εισέρχονται σε όλους τους καταχωρητές. Δεν σχεδιάστηκαν οι γραμμές διασύνδεσεις οι οποίες θα καθιστούσαν το σχήμα εξαιρετικά πολύπλοκο. Στο σχήμα το register file απεικονίζεται σαν σύνολο μαζί με όλες τις εισόδους και εξόδους του. Σχήμα Συνολική απεικόνιση του register file. 26

28 2.5 Μνήμη εντολών / Instruction memory Η μνήμη των εντολών διαθέτει 32 θέσεις μνήμης των 24 bit, δηλαδή είναι των 96 byte. Για την εκτέλεση ενός προγράμματος αποθηκεύονται σε διαδοχικές θέσεις οι εντολές. Με τον τρόπο αυτό εκτελούνται και διαδοχικά, δηλαδή η επόμενη προς εκτέλεση εντολή βρίσκεται στην αμέσως επόμενη θέση μνήμης. Στην περίπτωση που έχουμε διακλάδωση/branch εκτελείται η εντολή που βρίσκεται στη θέση μνήμης που ορίζει η εντολή διακλάδωσης. Σε ορισμένες περιπτώσεις μπορεί να δημιουργηθεί βρόχος οδηγώντας το πρόγραμμα σε προηγούμενη εντολή μέχρι να σταματήσει να ικανοποιείται η συνθήκη διακλάδωσης και να κλείσει ο βρόχος. Η μνήμη των εντολών έχει σχεδιαστεί ως μνήμη ROM. Η ROM (Read Οnly Μemory) είναι ένας τύπος μνήμης μόνο για ανάγνωση, δηλαδή δεν είναι δυνατόν να γράψουμε σε αυτήν την μνήμη. Είναι μη πτητική μνήμη, δηλαδή δεν χάνει τα δεδομένα της όταν διακοπεί η τροφοδοσία ρεύματος. Έτσι γράφονται οι εντολές του προγράμματος μας στη μνήμη ROM και εκτελούνται με τη σειρά. Αν θέλουμε να εκτελέσουμε άλλο πρόγραμμα θα πρέπει να επέμβουμε στη σχεδίαση της μνήμης ROM και να γράψουμε διαφορετικές εντολές. Στη μνήμη ROM που έχει σχεδιαστεί ως είσοδος εισέρχεται η διεύθυνση της μνήμης και ως έξοδος η εντολή που βρίσκεται στη θέση αυτή. Διαθέτει επίσης και είσοδο ρολογιού. Αφού η μνήμη αυτή έχει 32 θέσεις για τη διευθυνσιοδότηση χρειάζεται να χρησιμοποιηθούν 5 bit. H διεύθυνση θα προέλθει από το μετρητή προγράμματος ο οποίος ως έξοδο δίνει μία διεύθυνση των 16 bit. Αυτό δεν ενοχλεί, απλώς θα χρησιμοποιηθούν τα 5 τελευταία bit της διεύθυνσης. Η διεύθυνση εισέρχεται σε έναν αποκωδικοποιητή 5-σε-32 (5-to-32 decoder) και στη συνέχεια όλες οι έξοδοι του αποκωδικοποιητή θα συνδεθούν με πύλες OR. Οι πύλες OR δίνουν την έξοδο μας δηλαδή την εντολή που είναι των 24 bit. Άρα χρησιμοποιούνται 24 πύλες OR των 32 εισόδων. Το κύκλωμα της μνήμης ROM απεικονίζεται στο σχήμα Στο σχήμα η μνήμη εντολών απεικονίζεται σαν σύνολο μαζί με όλες τις εισόδους και εξόδους της. Σχήμα Συνολική απεικόνιση της μνήμης εντολών. 27

29 Σχήμα Μνήμη εντολών 32x24 ROM 28

30 2.6 Μνήμη δεδομένων/ Data memory Η μνήμη δεδομένων διαθέτει 16 θέσεις μνήμης των 16 bit, δηλαδή είναι των 32 byte. Στη μνήμη δεδομένων μπορούν να αποθηκευτούν δεδομένα με τις εντολές STORE, ΙΝ είτε να ανακτηθούν δεδομένα από αυτήν με την εντολή LOAD. Έτσι στη μνήμη αυτή πρέπει να μπορούμε και να γράψουμε αλλά και να διαβάσουμε από αυτήν. Για το λόγο αυτό θα πρέπει να δέχεται ως είσοδο δεδομένα προς εγγραφή, καθώς και είσοδο ενεργοποίησης εγγραφής (write enable) η οποία καθορίζει αν γίνεται εγγραφή (write enable = '1') ή ανάγνωση (write enable = '0'). Εκτός από αυτές τις εισόδους δέχεται επίσης και είσοδο ρολογιού και εννοείται ότι θα χρησιμοποιεί και είσοδο διεύθυνσης. Οι εντολές LOAD και STORE στη συγκεκριμένη μονάδα επεξεργασίας εκτελούνται στην ALU. Έτσι η ALU θα παράγει το σήμα ενεργοποίησης εγγραφής και θα δίνει τις διευθύνσεις και τα δεδομένα στην περίπτωση που θέλουμε να γράψουμε στη μνήμη δεδομένων ή να διαβάσουμε από αυτήν. Η μνήμη δεδομένων έχει σχεδιαστεί με τη χρήση flip-flops. Αρχικά χρησιμοποιείται ένας αποκωδικοποιητής 4-σε-16 (4-to-16 decoder) για διευθυνσιοδότηση με τον ίδιο τρόπο όπως και στην μνήμη εντολών. Στη συνέχεια οι έξοδοι του αποκωδικοποιητή θα οδηγηθούν σε πύλες AND μαζί με το σήμα ενεργοποίησης εγγραφής για να ενεργοποιούνται τα flip-flop όταν θέλουμε να γράψουμε στη μνήμη. Επίσης στα flip-flop εισέρχονται τα δεδομένα εισόδου (input_data) και το ρολόι. Οι έξοδοι των flip-flop οδηγούνται σε πολυπλέκτες 16-σε-1 (16-to-1 multiplexer) όπου καθένας από αυτούς σαν έλεγχο δέχεται τη διεύθυνση από την οποία θέλουμε να διαβάσουμε και εμφανίζει τα κατάλληλα δεδομένα στην έξοδο (output_data). Το κύκλωμα της μνήμης δεδομένων απεικονίζεται στο σχήμα Στο σχήμα η μνήμη δεδομένων απεικονίζεται σαν σύνολο μαζί με όλες τις εισόδους και εξόδους της. Σχήμα Συνολική απεικόνιση της μνήμης δεδομένων. 29

31 Σχήμα Πλήρες κύκλωμα της μνήμης δεδομένων Σε περίπτωση που έχουμε εγγραφή στην έξοδο εμφανίζονται τα δεδομένα εισόδου (output_data <= input_data). Η σχεδίαση έγινε έτσι καθαρά για λόγους προσομοίωσης ώστε να εμφανίζονται στην έξοδο τα δεδομένα που γράφτηκαν στη μνήμη. Στο σημείο αυτό έχουν περιγραφεί όλα τα επιμέρους στοιχεία της συγκεκριμένης μονάδας επεξεργασίας. Το μοναδικό στοιχείο που δεν έχει περιγραφεί είναι η μονάδα ελέγχου (control unit). Θεωρήθηκε σκόπιμο να αναλυθεί η μονάδα ελέγχου αφού περιγραφεί ο κύκλος εντολής. 30

32 ΚΕΦΑΛΑΙΟ 3 : ΚΥΚΛΟΣ ΕΝΤΟΛΗΣ ΚΑΙ ΣΥΝΟΛΙΚΟ ΚΥΚΛΩΜΑ ΕΠΕΞΕΡΓΑΣΤΗ 3.1 Κύκλος εντολής Η τεχνική που χρησιμοποιήθηκε δηλαδή η χρήση σταδίων για την ολοκλήρωση μίας εντολής ονομάζεται pipeline. To pipeline είναι ένα σύνολο στοιχείων που συνδέονται σε σειρά με τέτοιο τρόπο ώστε η έξοδος του ενός να είναι η είσοδος του επόμενου. Ο πιο συνηθισμένος τρόπος να πετύχουμε την τεχνική αυτή είναι με τη διαίρεση μίας πολύπλοκης διαδικασίας σε πιο απλές. Στο σημείο αυτό πρέπει να αναφέρουμε ότι η τεχνική αυτή μπορεί να ονομάζεται pipeline αλλά δεν πρέπει να συγχεέται με την τεχνική μερικώς επικαλυπτόμενων λειτουργιών (instruction pipelining). Στη συγκεκριμένη περίπτωση όταν αναφερόμαστε στο pipeline δεν εννοούμε την τεχνική αυτή, αλλά το διαχωρισμό των διαδικασιών σε απλούστερες. Θεωρούμε ότι κάθε εντολή αποτελείται από κάποια επιμέρους βήματα: προσκόμιση εντολής, αποκωδικοποίηση, εκτέλεση, προσπέλαση μνήμης, αποθήκευση αποτελεσμάτων. Το κάθε βήμα εκτελείται σε έναν κύκλο ρολογιού. Για τη συγκεκριμένη μονάδα επεξεργασίας χρησιμοποιούνται 4 στάδια ανα κύκλο εντολής: - Αποκωδικοποίηση εντολής - Ανάγνωση δεδομένων από τους καταχωρητές γενικού σκοπού - Εκτέλεση πράξης - Αποθήκευση αποτελεσμάτων στους καταχωρητές και προσκόμιση επόμενης εντολής Η μονάδα η οποία καθορίζει τον κύκλο εντολής είναι η μονάδα ελέγχου (control unit) η οποία περιγράφεται πλήρως στην επόμενη παράγραφο. Θεωρήθηκε σκόπιμο να μην περιγραφεί στην προηγούμενη ενότητα όπου αναλύθηκαν όλες οι επιμέρους μονάδες του επεξεργαστή γιατί για την πλήρη κατανόηση της λειτουργίας της είναι απαραίτητο να έχει προηγηθεί μία συνοπτική εξήγηση της τεχνικής μερικώς επικαλυπτόμενων λειτουργιών (pipeline). 3.2 Μονάδα ελέγχου/ Control unit Η μονάδα ελέγχου παράγει σήματα συγχρονισμού και τα στέλνει σε όποια μονάδα θέλουμε να λειτουργήσει. Γενικότερα ελέγχει τη ροή των δεδομένων. Στη συγκεκριμένη μονάδα επεξεργασίας δίνει ως έξοδο έναν αριθμό των 4 bit (state) που ορίζει σε ποιο βήμα της εντολής βρισκόμαστε και ποια μονάδα είναι ενεργοποιημένη. Το κάθε bit του σήματος αυτού ενεργοποιεί και μία μονάδα ως εξής: state(0) = 1 : Έχω ενεργοποίηση του αποκωδικοποιητή εντολών. Κατά το βήμα αυτό γίνεται προσκόμιση και αποκωδικοποίηση της εντολής. state(1) = 1 : Έχω ενεργοποίηση των καταχωρητών γενικού σκοπού. Κατά το βήμα αυτό διαβάζονται τα δεδομένα που θα χρησιμοποιηθούν στην πράξη. state(2) = 1 : Έχω ενεργοποίηση της αριθμητικής/λογικής μονάδας. Κατά το βήμα αυτό εκτελείται η πράξη. state(3) = 1 : Έχω ενεργοποίηση των καταχωρητών γενικού σκοπού αλλά αυτή τη φορά για εγγραφή των αποτελεσμάτων. Για τη σωστή εκτέλεση τα bit του παραγόμενου σήματος αλλάζουν διαδοχικά ανα ένα κύκλο ρολογιού από τη θέση 0 ως τη θέση 3 ως εξής: Πρώτος κύκλος: state "0001" Δεύτερος κύκλος: state "0010" Τρίτος κύκλος: state "0100" Τέταρτος κύκλος: state "1000" Οι μόνες είσοδοι που εισέρχονται στην μονάδα ελέγχου είναι φυσικά η είσοδος ρολογιού και μία είσοδος η οποία αρχικοποιεί τη μονάδα ελέγχου (reset). Η μονάδα ελέγχου μηδενίζεται για reset = '1'. Η μονάδα ελέγχου αρχικοποιείται στην κατάσταση "0001". Παρατηρώντας την 31

33 εναλλαγή των καταστάσεων παρατηρούμε ότι πρόκειται για καταχωρητή ολίσθησης με είσοδο reset. Στο σχήμα απεικονίζεται το κύκλωμα της μονάδας ελέγχου. Σχήμα Μνήμη ελέγχου/ Control unit υλοποιημένη ως barrel shifter Στο σχήμα η μονάδα ελέγχου απεικονίζεται σαν σύνολο μαζί με όλες τις εισόδους και εξόδους της. Σχήμα Συνολική απεικόνιση της μονάδας ελέγχου. 32

34 3.3 Συνολικό κύκλωμα μονάδας επεξεργασίας Στο σημείο αυτό έχουν περιγραφεί πλήρως όλες οι επιμέρους μονάδες του συγκεκριμένου επεξεργαστή. Στο τελευταίο αυτό στάδιο θα εξηγηθεί η λειτουργία της μονάδας επεξεργασίας συνολικά. Το ολοκληρωμένο κύκλωμα του επεξεργαστή απεικονίζεται στο σχήμα Σχήμα Αναπαράσταση του επεξεργαστή με block diagram Ο μετρητής προγράμματος αρχικά δίνει τη διεύθυνση της μνήμης ROΜ στη θέση της οποίας βρίσκεται η επόμενη προς εκτέλεση εντολή. Στη συνέχεια η εντολή αποκωδικοποιείται μέσω του αποκωδικοποιητή εντολών. Ο αποκωδικοποιητής εντολών παράγει τους αριθμούς αναφοράς των καταχωρητών στους οποίους θέλουμε να γράψουμε ή από τους οποίους θέλουμε να διαβάσουμε. Η ALU εκτελεί την απαραίτητη εντολή και παράγει τις εξόδους. Στη συνέχεια το αποτέλεσμα γράφεται στους καταχωρητές γενικού σκοπού. Σε περίπτωση που έχουμε εντολή LOAD ή STORE ενεργοποιείται και η μνήμη των δεδομένων με την οποία αλληλεπιδρά το σύστημά μας. Τέλος, μένει να εξηγήσουμε πως καθορίζεται η τιμή του pc_opcode δηλαδή ποια λειτουργία θα εκτελέσει ο μετρητής προγράμματος. Παρουσιάζουμε ξανά τον πίνακα για να θυμηθούμε τις λειτουργίες του μετρητή προγράμματος: **Πίνακας **Κωδικός λειτουργίας του μετρητή προγράμματος pc_opcode Λειτουργία 0 0 Καμία λειτουργία 0 1 Επόμενη εντολή 1 0 Διακλάδωση 1 1 Reset/Μηδενισμός 33

35 Άρα όταν η είσοδος reset της μονάδας ελέγχου είναι ίση με '1' θα πρέπει ο pc_opcode να έχει την τιμή "11". Στην περίπτωση διακλάδωσης θα πρέπει να ελεγχθεί η συνθήκη διακλάδωσης. Άρα θα πρέπει να ισχύει Branch_en = '1' και state(2) = '1'. Αυτό γιατί θα πρέπει να έχω ενεργοποίηση διακλάδωσης αλλά και ενεργοποίηση της ALU ώστε να ελεγχθεί η συνθήκη διακλάδωσης. Ακολουθώντας το ίδιο σκεπτικό συμπεραίνουμε ότι για να εκτελεστεί η αμέσως επόμενη εντολή θα πρέπει Branch_en = '0' και state(2) = '1'. Έτσι καταλήγουμε στο κύκλωμα του σχήματος Το κύκλωμα αυτό δεν σχεδιάστηκε στο συνολικό σχέδιο για να μην οδηγηθούμε σε εξαιρετικά πολύπλοκη ανάγνωση του σχήματος. Σχήμα Υπολογισμός pc_opcode για τη λειτουργία του μετρητή προγράμματος Η μονάδα επεξεργασίας που σχεδιάστηκε έχει περιγραφεί πλήρως. Το επόμενο βήμα είναι να βεβαιωθούμε για την σωστή λειτουργία της. Για το λόγο αυτό ο επεξεργαστής δοκιμάστηκε με δύο διαφορετικά προγράμματα που γράφτηκαν στη ROM, τα οποία παρουσιάζονται στην επόμενη ενότητα. 34

36 ΚΕΦΑΛΑΙΟ 4 : ΔΟΚΙΜΗ ΤΟΥ ΕΠΕΞΕΡΓΑΣΤΗ Στο στάδιο αυτό η σχεδίαση έχει ολοκληρωθεί. Όμως για να βεβαιωθούμε ότι η μονάδα επεξεργασίας που σχεδιάστηκε είναι πλήρως λειτουργική γράφτηκε ένα πρόγραμμα στη μνήμη ROM με σκοπό να ελεγχθεί η σωστή λειτουργία του επεξεργαστή μας. Το πρόγραμμα αυτό υπολογίζει την τετραγωνική ρίζα ακεραίων με χρήση του βαβυλωνιακού αλγόριθμου. 4.1 Υπολογισμός τετραγωνικής ρίζας ακεραίων Αρχικά, πριν περιγράψουμε τη διάταξη των εντολών μέσα στη μνήμη είναι σκόπιμο να εξηγήσουμε πολήρως τον αλγόριθμο που έχει χρησιμοποιηθεί για το συγκεκριμένο πρόγραμμα υπολογισμού ρίζας. Χρησιμοποιήθηκε ο βαβυλωνιακός αλγόριθμος. Ο λόγος που επιλέχθηκε ο συγκεκριμένος τρόπος είναι επειδή χρησιμοποιεί σχετικά απλές πράξεις. Έστω ότι θέλουμε να βρούμε την τετραγωνική ρίζα ενός τυχαίου αριθμού x. Αρχικά κάνουμε μία πρόβλεψη για το ποια μπορεί να είναι η ρίζα του x. Έστω ότι αυτή η πρόβλεψη είναι ο αριθμός x 0. Η επόμενη πρόβλεψη θα υπολογστεί από τον τύπο: x 1 = 1/2 (x 1 + x/x 1 ). Στη συνέχεια ελέγχουμε αν ο αριθμός x 1 είναι η τετραγωνική ρίζα του x. Αν δεν είναι προχωράμε στην επόμενη πρόβλεψη με τον ίδιο τρόπο. Μπορούμε να δώσουμε έναν γενικό τύπο για το βαβυλωνιακό αλγόριθμο που μας δίνει κάθε επόμενη πρόβλεψη: x n+1 = 1/2 (x n + x/x n ) Συνεχίζοντας τη διαδικασία αυτή κάποια στιγμή θα βρούμε την τετραγωνική ρίζα του αριθμού ή κάποια πολύ κοντινή τιμή. Για να μπορέσουμε να χρησιμοποιήσουμε τη μέθοδο αυτή στον επεξεργαστή μας πρέπει να κάνουμε κάποιες τροποποιήσεις. Αρχικά η συγκεκριμένη μονάδα επεξεργασίας διαχειρίζεται ακεραίους αριθμούς. Αυτό σημαίνει ότι όταν υπολογίζουμε την τετραγωνική ρίζα αριθμών που δεν είναι τέλεια τετράγωνα τα αποτελέσματα δεν είναι καθόλου ακριβή. Το συγκεκριμένο πρόβλημα όμως δεν μας εμποδίζει από το να διαπιστώσουμε την ορθή λειτουργία του επεξεργαστή, αλλά είναι κυρίως μαθηματικό πρόβλημα. Έτσι επιλέξαμε να τεστάρουμε το πρόγραμμά μας για τους αριθμούς 81 και 144. Ένα ακόμη πρόβλημα είναι η διαίρεση που περιέχει μέσα ο αλγόριθμος. Ο επεξεργαστής μπορεί να μη διαθέτει διαίρεση, διαθέτει όμως λογική ολίσθηση δεξιά που ισοδυναμεί με διαίρεση με το 2 ή τα πολλαπλάσια του. Λειτουργεί ως εξής: SRL (Λογική ολίσθηση δεξιά) 1 bit : Διαίρεση με το 2 SRL 2 bit : Διαίρεση με το 4 SRL 3 bit : Διαίρεση με το 8 SRL 4 bit : Διαίρεση με το 16 κ.ο.κ. Έτσι οι προβλέψεις που χρησιμοποιήσαμε για τον αλγόριθμο είναι πολλαπλάσια του 2. Λόγω περιορισμένων θέσεων μνήμης χρησιμοποιήσαμε τον αλγόριθμο μέχρι και την πρόβλεψη 16. Οι πράξεις που γίνονται είναι οι εξής: x 1 = 1/2 (2 + x/2) x 2 = 1/2 (4 + x/4) x 3 = 1/2 (8 + x/8) x 4 = 1/2 (16 + x/16) Η κάθε πράξη χρειάζεται σίγουρα 4 εντολές. Μία ολίσθηση για το βήμα x/x n, μία πρόσθεση για το x n + x/x n, μία ολίσθηση για διαίρεση με το 2 και τέλος έναν πολλαπλασιασμό για να ελεγχθεί αν η πρόβλεψή μας είναι η τετραγωνική ρίζα του αρχικού αριθμού. Στην πορεία προέκυψαν και άλλα προβλήματα τα οποία βασίζονται στην αρχιτεκτονική και κυρίως στο pipeline. Θα εξηγηθούν στην επόμενη παράγραφο όπως και όλες οι εντολές που χρησιμοποιήθηκαν αναλυτικά. 35

37 4.2 Συγγραφή προγράμματος υπολογισμού ρίζας με τη μορφή MIPS εντολών Πριν περάσουμε στις πράξεις το πρώτο βήμα που πρέπει να κάνουμε είναι να φέρουμε από τη μνήμη δεδομένων στους καταχωρητές γενικού σκοπού τον αριθμό του οποίου θέλουμε να υπολογίσουμε την τετραγωνική ρίζα. Αυτό θα γίνει με την εντολή LOAD. Στο σημείο αυτό θα ήταν χρήσιμο ο αναγνώστης να ανατρέξει στη σελίδα 6 ώστε να θυμηθεί πως λειτουργούν οι κωδικοί των εντολών. LOAD: XXXXXXXXXXX Με τον κωδικό λειτουργίας καλούμε την εντολή LOAD και στον καταχωρητή 1 (0001) γράφουμε τα δεδομένα που υπάρχουν στη θέση της μνήμης δεδομένων που περιέχει ο καταχωρητής0 (0000). Στη συνέχεια θα ξεκινήσουμε τις πράξεις μας για να ολοκληρωθεί ο αλγόριθμος. Βήμα 1ο : x 1 = 1/2 (2 + x/2) Αρχικά πραγματοποιείται η διαίρεση με το 2 (x/2) μέσω λογικής ολίσθησης δεξιά (SRL). SRL: Με τον κωδικό λειτουργίας καλούμε την εντολή SRL και στον καταχωρητή 2 (0010) γράφουμε τα δεδομένα που υπάρχουν στον καταχωρητή 1 (0001) ολισθημένο κατά 1 ( ) bit (διαίρεση με το 2). Έπειτα θέλουμε να προσθέσουμε το 2 στο αποτέλεσμα της ολίσθησης. Θα χρησιμοποιήσουμε την εντολή ADDI. ADDI: Με τον κωδικό λειτουργίας καλούμε την εντολή ADDI και στον καταχωρητή 3 (0011) γράφουμε τα δεδομένα που υπάρχουν στον καταχωρητή 2 (0010) αφού προσθέσουμε 2 ( ). Στη συνέχεια έχουμε πάλι διαίρεση με το 2 του αποτελέσματος. SRL: Με τον κωδικό λειτουργίας καλούμε την εντολή SRL και στον καταχωρητή 4 (0100) γράφουμε τα δεδομένα που υπάρχουν στον καταχωρητή 3 (0011) ολισθημένο κατά 1 ( ) bit (διαίρεση με το 2). Τώρα έχουμε υπολογίσει την πρόβλεψη x 1 και πρέπει να ελέγξουμε αν όντως είναι η τετραγωνική ρίζα που αναζητάμε. Έτσι θα την υψώσουμε στο τετράγωνο, πολλαπλασιάζοντας με τον εαυτό της. Άρα θα χρησιμοποιηθεί η εντολή του πολλαπλασιασμού MUL. MUL: XXXXXXX Με τον κωδικό λειτουργίας καλούμε την εντολή MUL και στον καταχωρητή 5 (0101) γράφουμε το γινόμενο που προκύπτει πολλαπλασιάζοντας τα δεδομένα που υπάρχουν στον καταχωρητή 4 (0100) με τον εαυτό τους. Αυτό συμβαίνει γιατί στα πεδία του πολλαπλασιαστή και του πολλαπλασιαστέου (ra και rb) έχουμε βάλει τον καταχωρητή 4. Στη συνέχεια θα χρησιμοποιήσω την εντολή διακλάδωσης BRE. Αν το τετράγωνο της πρόβλεψης που βρίσκεται στον καταχωρητή 5 είναι ίσο με τον αρχικό αριθμο που βρίσκεται στον καταχωρητή 1 τότε θα πραγματοποιηθεί η διακλάδωση και θα περάσουμε στη διεύθυνση 27 όπου υπάρχει η εντολή STORE ώστε να αποθηκευτεί το αποτέλεσμα. Εντολή διακλάδωσης: BRE: Με τον κωδικό λειτουργίας καλούμε την εντολή BRE. Μετά πρέπει να ελεγχθεί στην ALU η συνθήκη διακλάδωσης η οποία είναι: Αν ra (0001) - rb (0101) = 0 πήγαινε στη διεύθυνση της εντολής STORE ώστε να αποθηκευτεί το αποτέλεσμα και να τελειώσει το πρόγραμμα, αλλιώς στην επόμενη εντολή. Εδώ πρέπει να αναφερθεί ότι μετά την εντολή διακλάδωσης πρέπει να εισάγουμε μία εντολή NOP όπου τα 5 λιγότερο σημαντικά ψηφία της να περιέχουν την διεύθυνση διακλάδωσης. Αυτό είναι απαραίτητο γιατί κατά την εντολή BRE δεν προλαβαίνει να διαβαστεί η σωστή διεύθυνση λόγω μη έγκυρης ενημέρωσης του μετρητή προγράμματος. Αν συμβεί διακλάδωση και μεταπηδήσουμε στην εντολή STORE: 36

38 Αποθήκευση αποτελέσματος: STORE: XXXXXXXXXXX Με τον κωδικό λειτουργίας καλούμε την εντολή STORE και στη θέση μνήμης δεδομένων που περιέχει ο καταχωρητής 0 (0000) γράφουμε τα δεδομένα που υπάρχουν στον καταχωρητή 4 (0100). Αν δεν γίνει η διακλάδωση προχωράμε στο επόμενο βήμα. Βήμα 2ο : x 2 = 1/2 (4 + x/4) Αρχικά πραγματοποιείται η διαίρεση με το 4 (x/4) μέσω λογικής ολίσθησης δεξιά (SRL). SRL: Στη συνέχεια έχουμε πάλι μία εντολή ΝΟΡ και έπειτα θέλουμε να προσθέσουμε το 4 στο αποτέλεσμα της ολίσθησης. Θα χρησιμοποιήσουμε την εντολή ADDI. ADDI: Στη συνέχεια έχουμε διαίρεση με το 2 του αποτελέσματος μεσω λογικής ολίσθησης δεξιά: SRL: Έπειτα, όπως και πριν, ελέγχεται η πρόβλεψη. MUL: XXXXXXX Στη συνέχεια έχουμε εντολή διακλάδωσης BRE και μία NOP για την περίπτωση που πετύχαμε την τετραγωνική ρίζα. BRE: Αν δεν γίνει η διακλάδωση προχωράμε στο επόμενο βήμα. Βήμα 3ο : x 2 = 1/2 (8 + x/8) Αρχικά πραγματοποιείται η διαίρεση με το 8 (x/8) μέσω λογικής ολίσθησης δεξιά (SRL). SRL: Στη συνέχεια έχουμε πάλι μία εντολή ΝΟΡ και έπειτα θέλουμε να προσθέσουμε το 8 στο αποτέλεσμα της ολίσθησης. Θα χρησιμοποιήσουμε την εντολή ADDI. ADDI: Στη συνέχεια έχουμε διαίρεση με το 2 του αποτελέσματος μεσω λογικής ολίσθησης δεξιά: SRL: Έπειτα, όπως και πριν, ελέγχεται η πρόβλεψη. MUL: XXXXXXX Στη συνέχεια έχουμε εντολή διακλάδωσης BRE και μία NOP για την περίπτωση που πετύχαμε την τετραγωνική ρίζα. BRE: Αν δεν γίνει η διακλάδωση προχωράμε στο επόμενο βήμα. Βήμα 4ο : x 2 = 1/2 (16 + x/16) Αρχικά πραγματοποιείται η διαίρεση με το 16 (x/16) μέσω λογικής ολίσθησης δεξιά (SRL). SRL: Στη συνέχεια έχουμε πάλι μία εντολή ΝΟΡ και έπειτα θέλουμε να προσθέσουμε το 16 στο αποτέλεσμα της ολίσθησης. Θα χρησιμοποιήσουμε την εντολή ADDI. ADDI: Στη συνέχεια έχουμε διαίρεση με το 2 του αποτελέσματος μεσω λογικής ολίσθησης δεξιά: SRL: Έπειτα, όπως και πριν, ελέγχεται η πρόβλεψη. MUL: XXXXXXX Καθώς αυτό είναι το τελευταίο βήμα, δεν ακολουθεί διακλάδωση αλλά προχωράμε στην εντολή STORE. STORE: XXXXXXXXXXX 37

39 Κατά το βήμα αυτό στη θέση 0 της μνήμης δεδομένων αποθηκεύεται το σωστό αποτέλεσμα που υπάρχει στον καταχωρητή 4. Συνοψίζοντας το πρόγραμμα αυτό μπορεί να γραφτεί ως εξής με εντολές MIPS: LOAD r1, x SRL r2, r1, 1 ADDI r3, r2, 2 SRL r4, r3, 1 MUL r5, r4,r4 BRE r5, r1, 23 NOP SRL r2, r1, 2 ADDI r3, r2, 4 SRL r4, r3, 1 MUL r5, r4,r4 BRE r5, r1, 23 NOP SRL r2, r1, 3 ADDI r3, r2, 8 SRL r4, r3, 1 MUL r5, r4,r4 BRE r5, r1, 23 NOP SRL r2, r1, 4 ADDI r3, r2, 16 SRL r4, r3, 1 MUL r5, r4,r4 STORE result(r4), r0 38

40 Οι εντολές αυτές σε γλώσσα μηχανής αναπαρίστανται ως εξής: " ", --LOAD x " ", --SRL(1) x = x/2 " ", --ADDI x+2 " ", --SRL(1) x+2 = (x+2)/2 " ", --MUL [(x+2)/2]*[(x+2)/2)] " ", --BRE " ", --NOP " ", --SRL(2) x = x/4 " ", --ADDI x+4 " ", --SRL(1) x+4 = x+4/2 " ", --MUL [(x+4)/2]*[(x+4)/2)] " ", --BRE " ", --NOP " ", --SRL(3) x = x/8 " ", --ADDI x+8 " ", --SRL(1)x+8 = (x+8)/2 " ", --MUL [(x+8)/2]*[(x+8)/2)] " ", --BRE " ", --NOP " ", --SRL(4) x = x/16 " ", --ADDI x+16 " ", --SRL(1) x+16 = (x+16) " ", --MUL [(x+26)/2]*[(x+26)/2)] " ", --STORE RESULT 39

41 4.3 Εκτέλεση του προγράμματος Έγινε εκτέλεση του προγράμματος για τους αριθμούς 81 και 144. Αρχικά θα παρουσιάσουμε την εύρεση της τετραγωνικής ρίζας του 81. Παράδειγμα Εύρεση τετραγωνικής ρίζας του 81 Εντολές MIPS οι οποίες εκτελούνται: LOAD r1, 81 SRL r2, r1, 1 (81/2 = 40) ADDI r3, r2, 2 (40+2 = 42) SRL r4, r3, 1 (42/2 = 21) MUL r5, r4,r4 (21*21 = 441) BRE r1, r5, 23 ( => not branch) NOP SRL r2, r1, 2 (81/4 = 20) ADDI r3, r2, 4 (20+4 = 24) SRL r4, r3, 1 (24/2 = 12) MUL r5, r4,r4 (12*12 = 144) BRE r5, r1, 23 ( => not branch) NOP SRL r2, r1, 3 (81/8 = 10) ADDI r3, r2, 8 (10+8 = 18) SRL r4, r3, 1 (18/2 = 9) MUL r5, r4,r4 (9*9 = 81) BRE r5, r1, 23 (81 = 81 => branch to address 23) ΝΟΡ --Οι παρακάτω εντολές δεν εκτελούνται: SRL r2, r1, 4 (144/16 = 9) ADDI r3, r2, 8 (9+16 = 25) SRL r4, r3, 1 (25/2 = 12) MUL r5, r4,r4 (12*12 = 144) --Διακλάδωση στην εντολή STORE: STORE 9, r0 Παράδειγμα Εύρεση τετραγωνικής ρίζας του 144 Εντολές MIPS οι οποίες εκτελούνται: LOAD r1, 144 SRL r2, r1, 1 (144/2 = 72) ADDI r3, r2, 2 (72+2 = 74) SRL r4, r3, 1 (74/2 = 37) MUL r5, r4,r4 (37*37 = 1369) BRE r1, r5, 23 ( => not branch) NOP SRL r2, r1, 2 (144/4 = 36) ADDI r3, r2, 4 (36+4 = 40) SRL r4, r3, 1 (40/2 = 20) MUL r5, r4,r4 (20*20 = 400) BRE r5, r1, 23 ( => not branch) NOP 40

42 SRL r2, r1, 3 (144/8 = 18) ADDI r3, r2, 8 (18+8 = 26) SRL r4, r3, 1 (26/2 = 13) MUL r5, r4,r4 (13*13 = 169) BRE r5, r1, 23 ( => not branch) NOP SRL r2, r1, 4 (144/16 = 9) ADDI r3, r2, 8 (9+16 = 25) SRL r4, r3, 1 (25/2 = 12) MUL r5, r4,r4 (12*12 = 144) STORE 12, r0 4.4 Προσομοίωση/Simulation Για την επιβεβαίωση της ορθής λειτουργίας του κυκλώματός μας χρησιμοποιούμε το εργαλείο ISE Simulator (ISim) της Xilinx. Για τη χρήση του γράφουμε σε κώδικα ένα αρχείο test bench το οποίο περιέχει την αρχικοποίηση της μονάδας που θέλουμε να προσομοιώσουμε (unit under test), ένα πεδίο όπου ορίζουμε την περίοδο και τη λειτουργία του ρολογιού και τέλος κάποιες ενδεικτικές τιμές των εισόδων ώστε να πάρουμε κατάλληλη έξοδο. Το πρώτο βήμα για την προσομοίωση είναι να θέσουμε σε '0' όλα τα διαθέσιμα σήματα εισόδων. Στη συνέχεια είναι απαραίτητο να ορίσουμε τη λειτουργία και την περίοδο του ρολογιού. Για να βρούμε την πιο μεγάλη συχνότητα ώστε να πετύχουμε τη μέγιστη ταχύτητα του επεξεργαστή δοκιμάζουμε το test bench για διάφορες τιμές της περιόδου ρολογιού μέχρι να βρούμε την ελάχιστη. Στην περίπτωσή μας η περίοδος του ρολογιού είναι ίση με 1ns δηλαδή ο επεξεργαστής μας λειτουργεί με συχνότητα 1GHz. Στη συνέχεια θα πρέπει να ορίσουμε τη λειτουργία του ρολογιού. Αυτό το πετυχαίνουμε θέτοντας την τιμή του ρολογιού σε '0' και '1' εναλλάξ κάθε μισή περίοδο. Τέλος μας μένει να συνθέσουμε το κομμάτι του stimulus δηλαδή να ορίσουμε τιμές εισόδου ώστε να προχωρήσουμε στη δοκιμή. Ο επεξεργαστής μας οφείλει να είναι αυτοσυντηρούμενος οπότε το μόνο που κάναμε στο βήμα αυτό είναι να μηδενίσουμε τη μονάδα ελέγχου για μία περίοδο και ύστερα να τη θέσουμε σε λειτουργία. Στο σημείο αυτό είμαστε έτοιμοι να ξεκινήσουμε την προσομοίωση. Για να αρχίσει η προσομοίωση πρέπει να ρυθμίσουμε το χρονικό διάστημα για το οποίο θέλουμε να προσομοιώσουμε το κύκλωμά μας. Γνωρίζουμε ότι η μνήμη ROM χωράει μέχρι και 32 εντολές και η κάθε εντολή χρειάζεται 4 περιόδους ρολογιού για να εκτελεστεί. Άρα θα πρέπει να προσομοιώσουμε για 129ns τουλάχιστον. Έτσι ορίζουμε ως χρόνο προσομοίωσης τα 130ns. Η προσομοίωση στο ISim μας δίνει της κυματομορφές όλων των εισόδων και εξόδων του κυκλώματός μας. Θα παρουσιαστεί η προσομοίωση για το παράδειγμα εύρεσης τετραγωνικής ρίζας του αριθμού 81. Στο σχήμα και φαίνεται η προσομοίωση για τις εντολές φόρτωσης (LOAD) του 81 στον καταχωρητή r1 και η ολίσθησή του δεξιά κατά μία θέσεις, δηλαδή η διαίρεσή του με το δύο. 41

43 Σχήμα 4.4.1: Προσωμοίωση εντολής LOAD Κατά την εντολή LOAD παρατηρούμε ότι πριν εκτελεστεί περνάνε 5 κύκλοι ρολογιού. Αυτό συμβαίνει γιατί αρχικά μηδενίσαμε τη μονάδα ελέγχου και μετά άρχισε η εντολή να εκτελείται κανονικά. Βλέπουμε ότι όταν το σήμα "en" που δίνει η μονάδα ελέγχου είναι "0001" έχουμε αποκωδικοποίηση της εντολής στον αποκωδικοποιητή εντολών. Στη συνέχεια (μετά από έναν κύκλο ρολογιού) το σήμα ελέγχου έρχεται στην τιμή "0010". Στο στάδιο αυτό διαβάζονται τα δεδομένα από τους καταχωρητές γενικού σκοπού. Για την εντολή αυτή δε συμβαίνει αυτό. Στη συνέχεια εκτελείται η εντολή για σήμα ελέγχου "0100". Στην περίπτωσή μας φορτώνονται τα δεδομένα από τη μνήμη δεδομένων στους καταχωρητές. Τέλος τα απαραίτητα δεδομένα γράφονται στους καταχωρητές (en = "1000"). Μετά ο κύκλος ξεκινά από την αρχή για την εκτέλεση της νέας εντολής. O μετρητής προγράμματος βρίσκεται στην εντολή 0000 δηλαδή εκτελείται η εντολή που είναι στη θέση 0 της μνήμης ROM. Παρατηρούμε ότι η εντολή LOAD (πεδίο instruction) ορίζεται ως εξής: όπου το πεδίο είναι ο κωδικός λειτουργίας, 0001 είναι ο καταχωρητής στον οποίο γράφονται τα δεδομένα (seld) και 0000 είναι η θέση της μνήμης δεδομένων από την οποία αντλούνται τα δεδομένα. To πεδίο 10-0 όπως γνωρίζουμε δε χρησιμοποιείται. Ο δυαδικός αριθμός ο οποίος αποθηκεύεται στον καταχωρητή 1 είναι ο 81 ( ). To αποτέλεσμα αυτό φαίνεται στην έξοδο (outdata). Κάτι άλλο που μπορεί να φέρει απορίες στον αναγνώστη είναι το πεδίο sela δηλαδή ο αριθμός αναφοράς καταχωρητή από τον οποίο διαβάζουμε. Ο αριθμός αυτός τέθηκε στο 0000 αλλά στην πραγματικότητα δε διαβάζεται κάτι. Ο λόγος που έγινε αυτό είναι για να μη χρησιμοποιηθεί επιπλέον κύκλωμα στον επεξεργαστή. 42

44 Σχήμα Προσομοίωση της εντολής SRL Κατά την εντολή STORE σε ό,τι αφορά τη μονάδα ελέγχου τα βήματα είναι τα ίδια. O μετρητής προγράμματος βρίσκεται στην εντολή 0001 δηλαδή εκτελείται η εντολή που είναι στη θέση 1 της μνήμης ROM. Παρατηρούμε ότι η εντολή SRL (πεδίο instruction) ορίζεται ως εξής: όπου το πεδίο είναι ο κωδικός λειτουργίας, 0010 είναι ο καταχωρητής στον οποίο γράφονται τα δεδομένα (seld) και 0001 είναι ο καταχωρητής από τον οποίο διαβάζονται τα δεδομένα, δηλαδή ο καταχωρητής που περιέχει τον αριθμό τον οποίο θέλουμε να ολισθήσουμε. Στο επόμενο πεδίο υπάρχει το πλήθος των bit τα οποία θα ολισθήσουν. Εδώ είναι 1. Ο δυαδικός αριθμός ο οποίος αποθηκεύεται στον καταχωρητή 2 είναι ο 81/2=40 (101000). To αποτέλεσμα αυτό φαίνεται στην έξοδο (outdata). Τα πεδία c_flag και v_flag είναι στο 0 αφού δεν έχει εκτελεστεί κάποια αριθμητική πράξη ώστε να υπάρχει carry ή overflow flag. Με παρόμοιο τρόπο λειτουργούν όλες οι εντολές. Έχει όμως ενδιαφέρον να παρουσιάσουμε και την προσομοίωση της εντολής διακλάδωσης (BRE). Η προσομοίωσή της απεικονίζεται στα σχήματα και Έχουμε δώσει δύο παραδείγματα, ένα κατά το οποίο να ικανοποιείται η συνθήκη διακλάδωσης και ένα στο οποίο δεν ικανοποιείται. Σχήμα Προσομοίωση εντολής BRE. Η συνθήκη δεν ικανοποιείται. 43

45 Παρατηρούμε ότι η εντολή BRE (πεδίο instruction) ορίζεται ως εξής: όπου το πεδίο είναι ο κωδικός λειτουργίας και τα επόμενα δύο πεδία είναι οι αριθμοί αναφοράς των καταχωρητών στους οποίους βρίσκονται τα δεδομένα για τα οποία ελέγχεται η συνθήκη διακλάδωσης. Αν είναι μεταξύ τους ίσα τότε η διακλάδωση θα συμβεί. Στο επόμενο πεδίο ορίζεται η διεύθυνση στην οποία θα μεταπηδήσει ο μετρητής προγράμματος. Στο στάδιο αυτό βρισκόμαστε στην εντολή 5 (00101) όπου όπως βλέπουμε από το παράδειγμα στη σελίδα 43 δεν έχει βρεθεί ακόμα η ρίζα οπότε δεν ικανοποιείται η συνθήκη διακλάδωσης (BRE r1, r5, 23 ( => not branch)) Η έξοδος "branchen" καθορίζει αν θα συμβεί διακλάδωση και αφού δεν συμβαίνει παίρνει την τιμή '0'. Έτσι δε συμβαίνει διακλάδωση και το πρόγραμμά μας προχωράει στην επόμενη εντολή μετά τη NOP (εντολή ). Σχήμα Προσομοίωση εντολής BRE. Η συνθήκη ικανοποιείται. H εντολή BRE (πεδίο instruction) είναι ακριβώς η ίδια κάθε φορά. Στο στάδιο αυτό βρισκόμαστε στην εντολή 17 (10001) όπου όπως βλέπουμε από το παράδειγμα στη σελίδα 43 η ρίζα έχει βρεθεί οπότε και ικανοποιείται η συνθήκη διακλάδωσης (BRE r5, r1, 23 (81 = 81 => branch to address 23)). Η έξοδος "branchen" θα πάρει την τιμή '1' και αφού εκτελεστεί και η εντολή NOP έχουμε διακλάδωση στη διεύθυνση 23 (10111). Στο σχήμα φαίνεται η εκτέλεση της εντολής STORE όπου και αποθηκεύεται το σωστό αποτέλεσμα, ο αριθμός 9 (1001). 44

46 Σχήμα Εντολή STORE 4.5 Χρήση κυκλωμάτων του τσιπ Τελειώνοντας είναι χρήσιμο να παρουσιάσουμε πόσο χώρο πιάνει το κύκλωμα που σχεδιάσαμε πάνω στο τσιπ. Η πληροφορία αυτή μας δίνεται από το λογισμικό που χρησιμοποιήθηκε για τη σχεδίαση το Web ISE. Τα κυκλώματα που χρησιμοποιήθηκαν παρουσιάζονται στον πίνακα Πίνακας Device utilization summary Logic Utilization Used Available Utilization Number of Slice Flip Flops ,00% Number of 4 input LUTs ,00% Number of occupied Slices ,00% Number of Slices containing only related logic ,00% Number of Slices containing unrelated logic ,00% Total Number of 4 input LUTs ,00% Number used as logic 266 Number used as a route-thru 2 Number used as 16x1 RAMs 2 Number of bonded IOBs ,00% Number of FIFO16/RAMB16s ,00% Number used as RAMB16s 1 Average Fanout of Non-Clock Nets 4,21 Παρατηρούμε ότι χρησιμοποιείται μόνο ένα μικρό μέρος του ολοκληρωμένου κυκλώματος. Χρειάζονται 270 LUTs (λογικές πύλες) δηλαδή μόλις το 2% των συνολικών πυλών και 174 slices (σύνολο απο LUTs και flip-flops), επίσης 2%. 45

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

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

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

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

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

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

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

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

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΟΜΕΑΣ ΗΛΕKΤΡΟΝΙΚΗΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΟΜΕΑΣ ΗΛΕKΤΡΟΝΙΚΗΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σχεδιασμός επεξεργαστή RISC με VHDL MΕΡΕΤΗΣ ΕΥΑΓΓΕΛΟΣ-ΓΕΩΡΓΙΟΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η διασύνδεση Υλικού και λογισμικού 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 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το

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

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

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές

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

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

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

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ᄃ Σχεδίαση Ψηφιακών Συστημάτων Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ. ΤΕΙ ΚΡΗΤΗΣ / ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ mode mode(0) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εµµανουήλ Καπαρού Επιβλέπων : ρ Μηχ Νικόλαος

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

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

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

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

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Κεφάλαιο 7 i: Καταχωρητές Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές Ολίσθησης Σειριακή Φόρτωση Σειριακή Ολίσθηση Καταχωρητές Ολίσθησης Παράλληλης Φόρτωσης

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

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

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

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

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

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

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

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

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

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

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

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

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2009 Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit)

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

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

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

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

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

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

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

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

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

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

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

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

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017 Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017 Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα καταστάσεων,

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Δείγμα Τελικής Εξέτασης στο ΗΜΥ213 Διδάσκοντας: Γιώργος Ζάγγουλος Οδηγίες Διαβάστε Προσεκτικά! Αυτή η εξέταση γίνεται με

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

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

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεματική Ενότητα Ακαδημαϊκό Έτος 2010 2011 Ημερομηνία Εξέτασης Κυριακή 26.6.2011 Ώρα Έναρξης Εξέτασης

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου ΠΛΕ- 27 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου Αρης Ευθυμίου Δομή σύγχρονων υπολογιστών Κώδικας μηχανής Αρχιτεκτονικό συνόλο εντολών (InstrucDon Set Architecture ISA)

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

Πράξεις με δυαδικούς αριθμούς

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

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

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

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

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

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

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

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

Πράξεις με δυαδικούς αριθμούς

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

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

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΨΗΦΙΑΚΗΣ ΛΟΓΙΚΗΣ - ΙΙ Γ. Τσιατούχας 3 ο Κεφάλαιο 1. Γενική δομή CPU ιάρθρωση 2. Αριθμητική και λογική μονάδα 3. Πρόσθεση Πολλαπλασιασμός

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

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

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

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

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

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

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

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα επαναληπτικής εξέτασης 2016 Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα καταστάσεων,

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 4 ο Πράξεις με bits Δρ. Γκόγκος Χρήστος Κατηγορίες πράξεων με bits Πράξεις με δυαδικά ψηφία Αριθμητικές πράξεις

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

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

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

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

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

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

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

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

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

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

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

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

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

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 24-5 Πράξεις με δυαδικούς αριθμούς (λογικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης ; Ποιες κατηγορίες

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

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

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

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

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

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

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

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

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

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

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

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

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου Γιώργος Δημητρίου Μάθημα 3 ο ΜΕΔ απλού κύκλου Συνολική Δομή ΚΜΕ Μία ή περισσότερες μονάδες αριθμητικών και λογικών πράξεων Μονάδα ολίσθησης Φάκελος καταχωρητών γενικού σκοπού Κρυφή μνήμη (ενοποιημένη ή

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

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

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

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

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

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

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

8.1 Θεωρητική εισαγωγή

8.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 ΣΤΟΙΧΕΙΑ ΜΝΗΜΗΣ ΚΑΤΑΧΩΡΗΤΕΣ Σκοπός: Η µελέτη της λειτουργίας των καταχωρητών. Θα υλοποιηθεί ένας απλός στατικός καταχωρητής 4-bit µε Flip-Flop τύπου D και θα µελετηθεί

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

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A].

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A]. Κανονική μορφή συνάρτησης λογικής 5. Η κανονική μορφή μιας λογικής συνάρτησης (ΛΣ) ως άθροισμα ελαχιστόρων, από τον πίνακα αληθείας προκύπτει ως εξής: ) Παράγουμε ένα [A] όρων από την κάθε σειρά για την

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 4: Ψηφιακή Λογική, Άλγεβρα Boole, Πίνακες Αλήθειας (Μέρος B) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2 Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος Εργαστηριακή άσκηση 2 Σκοπός αυτής της εργαστηριακής άσκησης είναι να σας θυμίσει (ή να σας δείξει ανάλογα με το βαθμό εξοικίωσης σας) τον τρόπο

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 1 5. ΑΛΓΕΒΡΑ BOOLE ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΜΕΡΟΣ Β 2 Επαναληπτική

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. 5.1 Το ρολόι Κάθε μία από αυτές τις λειτουργίες της Κ.Μ.Ε. διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι.

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ & ΗΛΕΚΤΡΟΝΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & μ-υπολογιστων ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ Θεωρητικό Μέρος Οι σειριακές λειτουργίες είναι πιο

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

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

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

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

9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS)

9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS) 9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS) 9.. ΕΙΣΑΓΩΓΗ Όπως έχουμε ήδη αναφέρει για την αποθήκευση μιας πληροφορίας ενός ψηφίου ( bit) απαιτείται ένα στοιχείο μνήμης δηλαδή ένα FF. Επομένως για περισσότερα του ενός ψηφία

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

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Ο Επεξεργαστής TRN Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου ΚMΕ Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN IR (20 bits) X (20 bits) I

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Καθυστερήσεις και Εκκενώσεις Εντολών

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

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών: Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 23 Διάρκεια εξέτασης : 6 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών: Θέμα (,5 μονάδες) Στις εισόδους του ακόλουθου κυκλώματος c b a εφαρμόζονται οι κάτωθι κυματομορφές.

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & μ-υπολογιστων ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ ΤΟΥΣ ΜΕ FLIP-FLOP ΚΑΙ ΠΥΛΕΣ Θεωρητικό

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

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

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 5: Εντολές αλλαγής ροής. Διακλάδωση χωρίς συνθήκη. Διακλάδωση με συνθήκη. Δρ. Μηνάς Δασυγένης

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

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

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

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

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες) Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2016 Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το ανωτέρω διάγραμμα καταστάσεων,

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI

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

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

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

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

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

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

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

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

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

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

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΥΝΔΥΑΣΤΙΚΗ ΛΟΓΙΚΗ 2017, Δρ. Ηρακλής Σπηλιώτης Συνδυαστικά και ακολουθιακά κυκλώματα Τα λογικά κυκλώματα χωρίζονται σε συνδυαστικά (combinatorial) και ακολουθιακά (sequential).

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ 3/02/2019 ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ ΘΕΜΑ 1 ο 1. Να γράψετε στο τετράδιό σας το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή ή τη λέξη ΛΑΘΟΣ, αν είναι

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

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

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ 100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ 1) Να μετατρέψετε τον δεκαδικό αριθμό (60,25) 10, στον αντίστοιχο δυαδικό 11111,11 111001,01 111100,01 100111,1 111100,01 2)

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

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f. 6. Καταχωρητές Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f. Καταχωρητής 4 ψηφίων Καταχωρητής με παράλληλη φόρτωση Η εισαγωγή

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

Chapter 3 Αριθμητική Υπολογιστών

Chapter 3 Αριθμητική Υπολογιστών Chapter 3 Αριθμητική Υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία

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