Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

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

Download "Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕΔΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕΓΑΛΗΣ ΚΛΙΜΑΚΑΣ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Καραγιάννης Δημητρίου Παναγιώτης Αριθμός Μητρώου: Θέμα «ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ NFC ΚΥΚΛΩΜΑΤΟΣ» Επιβλέπων Καθηγητής Οδυσσέας Κουφοπαύλου Αριθμός Διπλωματικής Εργασίας: Πάτρα, Ιούνιος

2 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ NFC ΚΥΚΛΩΜΑΤΟΣ» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Καραγιάννης Δημητρίου Παναγιώτης Αριθμός Μητρώου: Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 29 / 06 / 2015 Ο Επιβλέπων Οδυσσέας Κουφοπαύλου Καθηγητής Ο Διευθυντής του Τομέα Ευθύμιος Χούσος Καθηγητής 2

3 Αριθμός Διπλωματικής Εργασίας: Θέμα: «ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ NFC ΚΥΚΛΩΜΑΤΟΣ» Φοιτητής: Καραγιάννης Παναγιώτης Επιβλέπων: Καθηγητής Οδυσσέας Κουφοπαύλου Περίληψη Το αντικείμενο αυτής της διπλωματικής είναι η ανάλυση και ο σχεδιασμός ενός NFC κυκλώματος. Με άλλα λόγια αναπτύχθηκε ένας NAND Flash Controller με τη βοήθεια μια γλώσσας περιγραφής υλικού και συγκεκριμένα της γλώσσας VHDL. Η συγγραφή και ο έλεγχος της ορθής λειτουργίας του έγινε με τη χρήση του προγράμματος ModelSim και τέλος η σύνθεση του κυκλώματος πραγματοποιήθηκε με τη χρήση του προγράμματος Xilinx ISE. Σκοπός της διπλωματικής είναι να υλοποιηθούν οι βασικές λειτουργίες ενός ελεγκτή flash μνήμης με βάση το πρότυπο ONFI ο οποίος θα παίρνει κατάλληλες εντολές από κάποιον host και θα εκτελεί τις ανάλογες λειτουργίες στη μνήμη. Η παρούσα διπλωματική αποτελεί μέρος ενός IP Core της εταιρείας Noesis Technologies. 3

4 4

5 Ευχαριστίες Θα ήθελα να ευχαριστήσω τον κύριο Γεώργιο Κρίκη CEO της εταιρείας Noesis Technologies για την ευκαιρία που μου έδωσε να ασχοληθώ με ένα project της εταιρείας του και τον καθηγητή μου κύριο Οδυσσέα Κουφοπαύλου για το χρόνο που αφιέρωσε σε ό,τι χρειάστηκα και στις παρατηρήσεις του για τη συγκεκριμένη διπλωματική. Ιδιαίτερα θα ήθελα να ευχαριστήσω τον Φωκίωνα Αλεξανδρή, ASIC Designer Engineer της προαναφερθείσας εταιρείας, για την πολύτιμη βοήθεια του, τη στήριξή του και τη μεταλαμπάδευση γνώσεων και εμπειριών του τόσο σε επίπεδο τεχνικό γνώσεων όσο και σε επίπεδο γενικών εμπειριών πάνω στο αντικείμενο του Ηλεκτρολόγου Μηχανικού. Οι συμβουλές του και η καθοδήγηση του αποτέλεσαν καταλυτικό χαρακτήρα στην εκπόνηση της παρούσας διπλωματικής και της βελτιστοποίησης του κώδικα. Επιπλέον θα ήθελα να ευχαριστήσω την οικογένεια μου για τη στήριξη που μου προσφέρουν στις αποφάσεις και ιδιαίτερα τη μητέρα μου και την αδερφή μου χωρίς τη βοήθεια των οποίων η παρούσα διπλωματική δεν θα είχε ολοκληρωθεί. Τέλος θα ήθελα να ευχαριστήσω τους φίλους μου για τη βοήθειά και τη στήριξη τους σε όλα τα χρόνια της φοιτητικής μου πορείας και ιδιαίτερα την Ζίνα Φωτοπούλου για τη βοήθειά της στην εκπόνηση της διπλωματικής μου εργασίας. 5

6 1 Περιεχόμενα 1 Περιεχόμενα Κατάλογος Σχημάτων Κατάλογος Πινάκων Εισαγωγή Ενσωματωμένα Συστήματα Εισαγωγή στα FPGA Η ιστορία του FPGA Λειτουργία του FPGA Αρχιτεκτονική του FPGA Προγραμματισμός FPGA ASIC Διαφορές FPGA και ASIC Γλώσσα σχεδίασης υλικού VHDL Εισαγωγή Μεθοδολογία Σχεδίασης ModelSim Xilinx Suite Nonvolatile μνήμες Πρωταρχικές έννοιες Ιδιότητες Nonvolatile μνημών Αποθήκευση Μηχανισμοί αποθήκευσης Συγκράτηση Αντοχή Μνήμες Flash και παραλλαγές κελιών Flash μνήμες Βασική λειτουργικότητα Flash κελιού Εγγραφή κελιού Σβήσιμο κελιού Συμπίεση Διαδικασία Διαβάσματος Αρχιτεκτονική Flash Μνήμης Μνήμες NAND FLASH Γενική επισκόπηση μιας NAND-EEPROM μνήμης Διαχείριση NAND κελιών Δομή κελιού Διαδικασία σβησίματος

7 8.2.3 Λειτουργία εγγραφής Διάταξη προγραμματισμού Διαδικασία διαβάσματος NAND αρχιτεκτονική και λειτουργία Κλιμακωτός αποκωδικοποιητής γραμμής Σχέδιο αυτόματης αναστολής της διαδικασίας σβησίματος Σχέδιο αυτόματης αναστολής της διαδικασίας προγραμματισμού Διαδικασία διαβάσματος Πολυεπίπεδες μνήμες Επίτευξη μνήμης χαμηλού κόστους Η ιδέα αποθήκευσης πολλών bits Παρουσίαση των πολυεπίπεδων μνημών Λειτουργία πολυεπίπεδου κελιού Χαμηλού κόστους σχεδιασμός εφαρμογής Χαμηλού κόστους κατασκευαστική διαδικασία Χαρακτηριστικά πρότυπου προϊόντος Ταχύτητα προγραμματισμού Ταχύτητα διαβάσματος Ισχύς τροφοδοσίας Αξιοπιστία Κλιμάκωση της τεχνολογίας πολυεπίπεδης μνήμης Συμπεράσματα Υλοποίηση-Εξομοίωση-Σύνθεση Υλοποίηση Εισαγωγή Block Diagram Flash Memory Flash Interface Finite State Machine (FSM) Ενοποίηση των Blocks Test bench Script Files Εξομοίωση Page Program - Change write column Read Page Block Erase Read Status Register

8 Read ID Reset Σύνθεση Σύνθεση βασικού κυκλώματος Σύνθεση όλου του κυκλώματος Κατέβασμα σε FPGA Συμπεράσματα Μελλοντικές Επεκτάσεις Συμπεράσματα Μελλοντικές Επεκτάσεις Βιβλιογραφία

9 2 Κατάλογος Σχημάτων Σχήμα 1: Γενικό block Diagram του NFC Σχήμα 2: Καταστάσεις FSM ελεγκτή Σχήμα 3: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (1) Σχήμα 4: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (2) Σχήμα 5: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (3) Σχήμα 6: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (4) Σχήμα 7: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (5) Σχήμα 8: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (1) Σχήμα 9: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (2) Σχήμα 10: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (3) Σχήμα 11: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (4) Σχήμα 12: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (1) Σχήμα 13: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (2) Σχήμα 14: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (3) Σχήμα 15: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (4) Σχήμα 16: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (5) Σχήμα 17: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (6) Σχήμα 18: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (1) Σχήμα 19: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (2) Σχήμα 20: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (3) Σχήμα 21: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (4) Σχήμα 22: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (5) Σχήμα 23: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (1) Σχήμα 24: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (2) Σχήμα 25: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (3) Σχήμα 26: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (4) Σχήμα 27: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (5) Σχήμα 28: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (1) Σχήμα 29: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (2) Σχήμα 30: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (2) Σχήμα 31: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (3) Σχήμα 32: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (4) Σχήμα 33: Πλήθος components που χρειάζονται μετά την βελτιστοποιημένη σύνθεση του αλγορίθμου Σχήμα 34: Πλήθος αντικειμένων που χρησιμοποιήθηκαν από το FPGA Σχήμα 35: Γενικές πληροφορίες χρονισμού του FPGA Σχήμα 36: Αποτελέσματα σύνθεσης και τοποθέτησης του κυκλώματος πάνω στο FPGA Σχήμα 37: Πλήθος συγκεκριμένων κυκλωμάτων του FPGA που χρησιμοποιήθηκαν Σχήμα 38: Εντολές που στέλνονται από τον ελεγκτή στη μνήμη για την εγγραφή δεδομένων

10 3 Κατάλογος Πινάκων Πίνακας 1: Κατηγορίες Nonvolatile Μνημών Πίνακας 2: Όνομα, είδος και περιγραφή σημάτων μνήμης Πίνακας 3: Όνομα και περιγραφή σημάτων του Status Register Πίνακας 4: Όνομα, είδος και περιγραφή σημάτων του ελεγκτή από την πλευρά του host Πίνακας 5: Όνομα και περιγραφή καταστάσεων του flash interface Πίνακας 6: Όνομα και περιγραφή καταστάσεων της μνήμης Πίνακας 7: Όνομα και κωδικός για τις εντολές που στέλνει ο host στον ελεγκτή Πίνακας 8: Όνομα, κωδικός πρώτης και δεύτερης εντολής για τις βασικές λειτουργίες που εκτελεί η μνήμη Πίνακας 9: Διαφορές σε χωρικές και χρονικές απαιτήσεις που προσφέρουν οι διαφορετικές κωδικοποιήσεις των FSM Πίνακας 10: Επιπλέον λειτουργίες μνήμης

11 4 Εισαγωγή Στην παρούσα διπλωματική παρουσιάζεται η ανάπτυξη ενός ελεγκτή μνήμης. Ένας ελεγκτής μνήμης είναι υπεύθυνος για πολλές από τις λειτουργίες που πρέπει αυτή να επιτελέσει. Η λειτουργία του μπορεί να προσομοιωθεί από κάποια γλώσσα προγραμματισμού, ωστόσο εξ ορισμού επιβάλλεται η υλοποίησή του σε υλικό. Αυτό επιτυγχάνεται με τη χρήση ειδικών γλωσσών περιγραφής υλικού όπως είναι η VHDL, η Verilog και άλλες. Επιπλέον η προσομοίωση και η σύνθεσή τους για τον έλεγχο της ορθής λειτουργίας τους γίνεται από ειδικά προγράμματα όπως είναι το ModelSim και το Xilinx ISE. Τέλος η υλοποίησή τους σε υλικό γίνεται είτε με τη χρήση επαναπρογραμματιζόμενων, πολλαπλής χρήσης κυκλωμάτων (FPGAs) είτε με τη χρήση ειδικά σχεδιασμένων ολοκληρωμένων κυκλωμάτων (ASICs). Αρχικά στο πρώτο κεφάλαιο γίνεται μια εκτενής παρουσίαση στα ενσωματωμένα συστήματα γενικά. Έπειτα μια αναφορά ειδικότερα στα FPGAs και στα ASICs, στα τεχνικά χαρακτηριστικά τους, στις διαφορές τους, στα μειονεκτήματα και πλεονεκτήματα τους. Επιπλέον παρουσιάζονται τα εργαλεία ανάπτυξης που χρησιμοποιήθηκαν και η γλώσσα περιγραφής υλικού VHDL. Μετέπειτα, στο δεύτερο κεφάλαιο, γίνεται μια παρουσίαση γενικά στις nonvolatile μνήμες γενικά που υπάρχουν στην αγορά και έπειτα θα εστιάσουμε στις flash μνήμες. Θα αναλυθούν η ιστορία τους, οι βασικές αρχές λειτουργίας (εγγραφή, διαγραφή, ανάγνωση και άλλα), η δομή τους και άλλα. Έπειτα θα εστιάσουμε ακόμα περισσότερο στις NAND Flash μνήμες που είναι οι πιο διαδεδομένες μνήμες αναλύοντας πάλι τις βασικές λειτουργίες τους και τέλος θα αναφερθούμε στις πολυεπίπεδες μνήμες που αποτελούν την τελευταία εξέλιξη στον τομέα των Flash μνημών. Στο τρίτο κεφάλαιο θα γίνει μια εκτενής παρουσίαση της ανάπτυξης του αλγόριθμου, όχι μόνο του ελεγκτή αλλά και των περιφερειακών που χρησιμοποιήθηκαν για λόγους ελέγχου ορθής λειτουργίας. Επιπρόσθετα θα παρουσιαστούν εικόνες με τα αποτελέσματα προσομοίωσης του κώδικα και της σύνθεσής του. Στο τέταρτο κεφάλαιο θα παρουσιαστούν τα συμπεράσματα από την όλη ανάπτυξη καθώς και δυνητικές μελλοντικές επεκτάσεις που μπορούν να γίνουν στο συγκεκριμένο μοντέλο. 5 Ενσωματωμένα Συστήματα Ενσωματωμένα συστήματα ονομάζονται τα υπολογιστικά συστήματα τα οποία μπορούν να επιτελούν συγκεκριμένες λειτουργίες. Με άλλα λόγια ονομάζονται υπολογιστικά συστήματα ειδικού σκοπού που μπορούν να εκτελούν προκαθορισμένες εργασίες. Αυτό το επιτυγχάνουν εκτελώντας μία ή περισσότερες συναρτήσεις σε πραγματικό χρόνο. Αντίθετα τα υπολογιστικά συστήματα γενικού σκοπού μπορούν να επιτελούν πολλές και διαφορετικές εργασίες ανάλογα με το πώς έχουν προγραμματιστεί. Το πιο αντιπροσωπευτικό παράδειγμα υπολογιστικού συστήματος γενικού σκοπού είναι οι προσωπικοί υπολογιστές. Επομένως η κύρια διαφορά ανάμεσα στα συστήματα γενικού και ειδικού σκοπού είναι το πλήθος των στόχων που καλύπτει το καθένα και όχι το μέγεθός του. Τα ενσωματωμένα συστήματα, για να επιτελέσουν το σκοπό τους, συνήθως συνοδεύονται από επιπλέον περιφερειακό υλικό καθώς και μηχανικά μέρη. Στον πυρήνα τους βρίσκεται ένας μικροεπεξεργαστής, προγραμματισμένος να τρέχει έναν συγκεκριμένο αλγόριθμο παραμετροποιημένο κατάλληλα. Αυτό επιτρέπει στους μηχανικούς σχεδίασης να βελτιστοποιούν συγκεκριμένα χαρακτηριστικά του ενσωματωμένου συστήματος όπως είναι το μέγεθος, το κόστος, ο χρόνος εκτέλεσης των λειτουργιών του, η κατανάλωση ισχύος και άλλα χωρίς να τίθεται σε κίνδυνο η ορθότητα και η αποδοτικότητα της λειτουργίας τους. Αυτή η βελτιστοποίηση γίνεται με τη χρήση σύγχρονων αρχιτεκτονικών όπως για παράδειγμα είναι οι ARM, MIPS, PowerPC, Microblaze και X86. Η εξέλιξη των ενσωματωμένων συστημάτων μας έχει επιτρέψει να τα εισάγουμε σε πολλές από τις καθημερινές μας συσκευές, αναλαμβάνοντας τον έλεγχο τους. Οι εφαρμογές τους είναι πάρα πολλές. Ενδεικτικά αναφέρονται τα μηχανήματα αναλήψεως (ATMs), hardware/software 11

12 συστημάτων ελέγχου τάσεων, συστήματα αεροναυπηγικής, πύραυλοι, συσκευές GPS, ελεγκτές κινητήρων και τα ABS αυτοκινήτων, τα οικιακά προϊόντα αυτοματισμού (θερμοστάτες, κλιματιστικά, συστήματα συναγερμού, αριθμομηχανές), οι οικιακές συσκευές όπως φούρνοι μικροκυμάτων, οι συσκευές αναπαραγωγής DVD, τα μαγνητόφωνα, ιατρικός εξοπλισμός, οι παιχνιδομηχανές, τα περιφερειακά υπολογιστών όπως εκτυπωτές, routers και πολλά άλλα. Ωστόσο η εξέλιξη των ενσωματωμένων δεν μας έχει επιτρέψει μόνο να βελτιώσουμε πολλές από τις καθημερινές μας συσκευές. Με την εξέλιξη της τεχνολογίας έχουμε καταφέρει να διευρύνουμε το πεδίο εφαρμογής τους δημιουργώντας ένα σύνολο υποσυστημάτων μέσα σε ένα ολοκληρωμένο κύκλωμα. Αυτά τα ενσωματωμένα λέγονται συστήματα σε ένα μόνο chip και περιέχουν πολλούς επεξεργαστές, κρυφές μνήμες, διεπαφές και άλλα. Τέτοια συστήματα δημιουργούνται με τη βοήθεια ενός FPGA ή ενός ASIC. 5.1 Εισαγωγή στα FPGA Το FPGA είναι ένας τύπος ολοκληρωμένου κυκλώματος το οποίο διαθέτει πολλούς διασυνδεδεμένους πίνακες αναζήτησης (look up tables), ένα μεγάλο πλήθος τυποποιημένων πυλών, απαριθμητών, καταχωρητές μνημών και άλλα καθώς και σε πολλά από αυτά ενσωματώνονται αναλογικές λειτουργίες. Τα αρχικά FPGA προέρχονται από τον όρο Field Programmable Gate Array, δηλαδή συστοιχία επιτόπια προγραμματιζόμενων πυλών. Ανάλογα με την εφαρμογή που θέλουμε να υλοποιήσουμε, προγραμματίζουμε κατάλληλα το FPGA και χρησιμοποιεί συγκεκριμένες μονάδες, από το σύνολο των μονάδων που αναφέρθηκαν νωρίτερα και τις διασυνδέει μεταξύ τους έτσι ώστε να συμπεριφέρεται συνολικά σαν ολοκληρωμένο κύκλωμα. Το λογικό μπλοκ αποτελεί τη βασική δομική μονάδα του. Ένα FPGA έχει χιλιάδες τέτοια μπλοκ τα οποία διασυνδέονται μέσω διακλαδωτών ή σταθερών καλωδιώσεων. Επιπλέον κάποια από αυτά τα μπλοκ αναλαμβάνουν τα σήματα εισόδου και εξόδου. Όταν ένα FPGA προγραμματίζεται, το κάθε μπλοκ αναλαμβάνει να εκτελεί συγκεκριμένη λειτουργία, ανάλογα με το σχεδιασμό που έχει κάνει ο σχεδιαστής, ενώ ενεργοποιούνται και οι κατάλληλες διασυνδέσεις για να ενώσουν αυτά τα μπλοκ και τα δεδομένα να ακολουθήσουν την επιθυμητή πορεία επεξεργασίας. Όσον αφορά τα FPGA της εταιρείας Xilinx, αυτά αποτελούνται από slices και αποτελούν μικρότερες δομές των λογικών μπλοκ τους που ονομάζονται Configurable Logic Block (CLB). Κατεβαίνοντας πιο χαμηλά στην ιεραρχία, τα slices αποτελούνται από look up tables και ενδεχομένως από τμήματα λογικής που εκτελούν βασικές πράξεις όπως πρόσθεση με κρατούμενο και άλλα. Το κάθε CLB μπορεί να αποτελείται από 2,4 ή 6 slices ανάλογα την οικογένεια του FPGA, ενώ οι look up tables μπορεί να έχουν 4 εισόδους και 1 έξοδο ή 6 εισόδους και 2 εξόδους. Τα FPGA κυκλοφορούν είτε σαν μεμονωμένα chip και πρέπει ο αγοραστής να τα τοποθετήσει σε κάποια πλακέτα είτε να αγοραστούν ως πιο ολοκληρωμένες λύσεις, δηλαδή τοποθετημένα ήδη σε πλακέτα. Αυτές οι πλακέτες χρειάζονται γιατί διαθέτουν ένα σύστημα προγραμματισμού του FPGA καθώς και μια πληθώρα διεπαφών που μπορεί να χρησιμοποιήσει ο χρήστης όταν το προγραμματίζει όπως σειριακές θύρες, θύρες Ethernet και άλλες. Συγκριτικά με συμβατικές υλοποιήσεις σχεδιασμού, τα FPGA υπερέχουν γιατί: 1. Οι χρήστες μπορούν να προγραμματίζουν ένα FPGA ανεξάρτητα από την εταιρεία παραγωγής του FPGA και των εξαρτημάτων. Έτσι μπορεί να μεταφέρει τη διαμόρφωση που έχει κάνει σε άλλα FPGA χωρίς πολλές αλλαγές ή ειδική προσαρμογή 2. Έχει αυξηθεί σημαντικά η ανάπτυξη νέων πρωτότυπων και πρωτοποριακών κομματιών, των λεγόμενων Intellectual Property cores (IP cores), με την αύξηση της χρήσης τους. Με άλλα λόγια οι εταιρείες ανάπτυξης των FPGA δημιουργούν κομμάτια υλικού που μπορούν να χρησιμοποιήσουν οι σχεδιαστές, διευκολύνοντας τους και αυξάνοντας την ποιότητα του σχεδιασμού τους 3. Τα FPGA αποτελούν μια ανταγωνιστική εναλλακτική λύση για τη διεκπεραίωση σύνθετων εργασιών, με την κατάλληλη παραμετροποίηση, οι οποίες μέχρι τώρα γινόντουσαν με τη χρήση λογισμικού. 12

13 4. Αποτελούν ιδανική λύση για εφαρμογές όπου η υλοποίησή τους με τη χρήση λογισμικού δεν είναι γρήγορη ενώ η υλοποίησή τους με τη χρήση του ASIC είναι ακριβή. Αποτελούν με άλλα λόγια τη μέση λύση ανάμεσα στις υλοποιήσεις λογισμικού και ASIC. Ο προγραμματισμός ενός FPGA απαιτεί τη συγγραφή μιας ειδικής γλώσσας περιγραφής υλικού, Hardware Description Language (HDL), η οποία με τη χρήση ειδικού λογισμικού μεταφράζεται σε δεδομένα διαμόρφωσης FPGA (firmware). Επιπρόσθετα, ο προγραμματισμός του FPGA, γίνεται σε επίπεδο λογικών πυλών και ψηφιακών εξαρτημάτων, επιτρέποντας στον σχεδιαστή να χειρίζεται απευθείας το υλικό του ολοκληρωμένου. Η διαφορά με τους κλασσικούς μικροεπεξεργαστές είναι ότι δεν περιλαμβάνει το επίπεδο αφαίρεσης υλικού που αυτοί περιέχουν με τη χρήση της γλώσσας assembly. Τα ιδιαίτερα χαρακτηριστικά του FPGA είναι: 1. Το FPGA χάνει τον προγραμματισμό του κάθε φορά που διακόπτεται η τάση τροφοδοσίας του. Επομένως απαιτεί εξωτερικό μικροεπεξεργαστή ή μνήμη με μόνιμη συγκράτηση δεδομένων (non-volatile memory) από τα οποία θα προγραμματίζεται, κάθε φορά που επανέρχεται η τάση τροφοδοσίας. 2. Ο προγραμματισμός του FPGA μπορεί να αλλάζει κάθε φορά που τροποποιείται το λογισμικό του μικροεπεξεργαστή ή τα δεδομένα της μνήμης που το ελέγχει. 3. Δεν υπάρχει όριο στο πόσες φορές μπορεί να επαναπρογραμματιστεί. 4. Η κατανάλωση ισχύος είναι σημαντικά αυξημένη, σε σχέση με τα ASIC Η ιστορία του FPGA Τα FPGA προήλθαν από τις μνήμες PROM (Programmable Read Only Memory) και τα PLD (Programmable Logic Devices). Η διαφορά που είχαν τα FPGA και τα βοήθησε να έχουν διαφορετική εξέλιξη και πορεία σε σχέση με τις υπόλοιπες προγραμματιζόμενες λογικές συσκευές ήταν το γεγονός ότι μπορούσαν να προγραμματιστούν μαζικά σε ένα εργοστάσιο παρόλο που αυτή η λογική του προγραμματισμού εν γένει ήταν δύσκολη. Η ιστορία του FPGA ξεκινάει στα τέλη της δεκαετίας του 80, όπου ένα πείραμα με σκοπό τη δημιουργία ενός συστήματος με πύλες, που εισηγήθηκε ο Steve Casselman, χρηματοδοτήθηκε από το αμερικάνικο υπουργείο ναυτικών ενόπλων δυνάμεων. Αυτό το σύστημα τελικά δημιουργήθηκε και κατοχυρώθηκε η ευρεσιτεχνία το Από το 1985 μέχρι τα μέσα της δεκαετίας του 90, η Xilinx συνέχισε την ανάπτυξή του χωρίς ανταγωνισμό. Το πρώτο μοντέρνου τύπου FPGA το εισήγαγε η Xilinx το 1984, το οποίο περιείχε νέας τάξεως συστοιχίες σχεδιαζόμενων λογικών κυκλωμάτων. Το 1985 εφευρέθηκε το πρώτο εμπορικά εφαρμόσιμο FPGA από τους ιδρυτές της Xilinx, το XC2064. Το XC2064 διέθετε προγραμματιζόμενες πύλες και διασυνδέσεις μεταξύ τους και αποτέλεσε την απαρχή για μια καινούρια τεχνολογία και αγορά. Η ονομασία FPGA δόθηκε το 1989 από τον Stan Baker των EETimes. Είκοσι χρόνια μετά, ο Ross Freeman, ένας εκ των ιδρυτών της Xilinx, μπήκε στο National Inventors Hall of Fame των εφευρετών για την επινόησή του, που όπως συμφωνούν σημαντικοί κατασκευαστές ηλεκτρονικών και όχι μόνο συστημάτων, επηρέασε την πορεία της σύγχρονης τεχνολογίας. Μετά τα μέσα της δεκαετίας του ενενήντα άρχισαν να δημιουργούνται ανταγωνιστικές εταιρείες που προσπάθησαν να καταλάβουν μερίδιο αγοράς. Παρόλο που υπήρχαν πολλές αντάξιες εταιρείες όπως είναι η Altera, μέχρι σήμερα η Xilinx κατέχει το μεγαλύτερο μερίδιο αγοράς. Το 1993 η Actel κάλυπτε το 18% των αναγκών της αγοράς. Η δεκαετία του 90 υπήρξε μια περίοδος έντονης ανάπτυξης για το FPGA κυρίως λόγω της μεγάλης εξέλιξης του αλλά και λόγο του πλήθους των ατόμων που άρχισαν να ασχολούνται με αυτόν τον τομέα. Παρόλο που στην αρχή της δεκαετίας τα FPGA χρησιμοποιήθηκαν κυρίως στις τηλεπικοινωνίες και τα δίκτυα, προς το τέλος επεκτάθηκαν και σε άλλες εφαρμογές όπως είναι οι καταναλωτικές, βιομηχανικές και άλλες. Οι βασικές οικογένειες των κυκλωμάτων FPGA της εταιρίας Xilinx είναι οι εξής: 1. Spartan II/ IIE 2. Spartan 3/ 3L/ 3E 3. Spartan XL 13

14 4. Virtex II/ II Pro/ II ProX 5. Virtex E/ EM 6. Virtex Λειτουργία του FPGA Όπως έχει ήδη αναφερθεί ένα FPGA επιτελεί πολλές λειτουργίες μετά την κατασκευή του, ανάλογα με τον προγραμματισμό που έχει υποστεί. Αποτελείται από ένα πλέγμα βασικών ηλεκτρονικών λογικών κυκλωμάτων (αντιστροφείς, πολυπλέκτες, αθροιστές, flip-flops κ.α.), πολύπλοκων μονάδων (πιο μεγάλα FPGA περιέχουν επίσης μονάδες πολλαπλασιαστών, μνημών, ελεγκτών, επεξεργαστών) και μια ιεραρχία διασυνδέσεων με δυνατότητα επιλεκτικής συνδεσμολογίας. Η ειδοποιός διαφορά αυτού του κυκλώματος είναι ότι προγραμματίζοντας κατάλληλα το συγκεκριμένο υλικό γίνονται οι κατάλληλες διασυνδέσεις αυτών των βασικών κυκλωμάτων δημιουργώντας διαφορετικά κύκλωμα κάθε φορά, διευρύνοντας την περιοχή χρήσης του. Προφανώς η δημιουργία κυκλωμάτων με αυτό τον τρόπο δεν μπορεί να προσφέρει τη βέλτιστη απόδοση, προσφέρει όμως μεγάλη ευελιξία χρήσης. Οι διασυνδέσεις που δημιουργούνται μεταξύ των λογικών κυκλωμάτων έχουν τη μορφή διακοπτών on/off. Η πληροφορία της θέσης του διακόπτη, ανοιχτός/κλειστός, κατά τον προγραμματισμό αποθηκεύεται σε κύτταρα μνήμης RAM, όπου το κάθε κύτταρο αντιστοιχεί και σε έναν διακόπτη. Αυτοί οι διακόπτες μπορούν να είναι ένα απλό τρανζίστορ διέλευσης όπου η τιμή που έχει αποθηκευτεί στη μνήμη εφαρμόζεται στην πύλη του τρανζίστορ Αρχιτεκτονική του FPGA Ένα FPGA είναι οργανωμένο σε δισδιάστατες σειρές. Στις γραμμές και τις στήλες του βρίσκονται τα λογικά κυκλώματα. Αυτά συνδέονται με τις γραμμές διασύνδεσης που είναι οργανωμένες ανάμεσα στις γραμμές και τις στήλες των λογικών κυκλωμάτων σε οριζόντια και κατακόρυφα κανάλια δρομολόγησης. Τα κανάλια δρομολόγησης περιέχουν καλώδια αλλά και προγραμματιζόμενους διακόπτες, επιτρέποντας στα κυκλώματα την πολλαπλή σύνδεση. Οι προγραμματιζόμενοι διακόπτες βρίσκονται είτε δίπλα στα λογικά κυκλώματα είτε διαγώνια. Οι πρώτοι συνδέουν την είσοδο και την έξοδο των λογικών μονάδων με τα καλώδια διασύνδεσης ενώ οι δεύτεροι συνδέουν τα καλώδια διασύνδεσης μεταξύ τους. Κάθε ολοκληρωμένο κύκλωμα περιέχει διαφορετικό αριθμό καλωδίων και προγραμματιζόμενων διακοπτών. Οι διατάξεις προγραμματιζόμενων πυλών διακρίνονται σε διάφορες κατηγορίες, ανάλογα με το πώς έχουν τοποθετηθεί οι βασικές δομικές μονάδες και οι πόροι διασύνδεσης, όπως: 1. Αρχιτεκτονική νησίδας 2. Αρχιτεκτονική βασιζόμενη σε γραμμές 3. Θάλασσα από πύλες 4. Ιεραρχική αρχιτεκτονική 5. Διάταξη μιας διάστασης 6. Συστήματα πολλαπλών FPGA Προγραμματισμός FPGA Για να προγραμματιστεί ένα FPGA χρησιμοποιούνται ειδικές γλώσσες περιγραφής υλικού ή σχηματικές σχεδιάσεις. Το πλεονέκτημα των γλωσσών περιγραφής υλικού είναι ότι είναι καταλληλότερες για σχεδιασμό μεγάλων και απαιτητικών υλοποιήσεων, προσδιορίζοντας με μεγαλύτερη ακρίβεια τα διακριτά modules. Ωστόσο, η σχηματική σχεδίαση, έχει το πλεονέκτημα της οπτικής απεικόνισης της υλοποίησης. 14

15 Έπειτα δημιουργείται μία mapped netlist με τη χρήση ενός ειδικού εργαλείου ηλεκτρονικού σχεδιασμού αυτοματισμού. Στη συνέχεια μέσω της διαδικασίας place and route, η οποία πραγματοποιείται από κατάλληλο λογισμικό της εταιρείας που κατασκεύασε το FPGA, προσαρμόζεται η netlist στο FPGA. H χαρτογράφηση, η τοποθέτηση και η δρομολόγηση των αποτελεσμάτων αξιολογείται από το χρήστη μέσω διαφόρων τεχνικών όπως είναι η χρονική ανάλυση κι εξομοίωση. Όταν αυτές επαληθευθούν, παράγεται ένα δυαδικό αρχείο το οποίο πάλι με τη χρήση του ειδικού λογισμικού της εταιρείας, παραμετροποιεί το FPGA. Η μεταφορά του στο FPGA γίνεται μέσω σειριακής σύνδεσης και η αποθήκευσή του σε εξωτερική μνήμη EEPROM. Από τις πιο διαδεδομένες γλώσσες περιγραφής υλικού είναι η VHDL και η Verilog. Παρόλο που αυτές οι γλώσσες έχουν απλουστεύσει πολύ τη διαδικασία σχεδιασμού, γίνονται έντονες προσπάθειες να μειωθεί κι άλλο αυτή η πολυπλοκότητα καθώς αυτές οι γλώσσες συγκρίνονται με τις αντίστοιχες γλώσσες μηχανής στο λογισμικό. Με άλλα λόγια, όπως στις γλώσσες λογισμικού, γίνεται μια προσπάθεια να εισαχθεί ένα είδος αφαιρετικότητας, εισάγοντας εναλλακτικές γλώσσες. Τέλος, για μεγαλύτερη ευελιξία στην ανάπτυξη απλών εφαρμογών, ο σχεδιασμός μπορεί να γίνει και με τη χρήση microcontroller software cores. Ωστόσο αυτό μπορεί να χρησιμοποιηθεί κυρίως για εκπαιδευτικούς ή ερασιτεχνικούς σκοπούς και όχι για σοβαρή σχεδίαση από εταιρείες. 5.2 ASIC Όπως έχει ήδη ειπωθεί, το FPGA είναι πιο κατάλληλο σε εφαρμογές που έχουν συχνή αλλαγή στις παραμέτρους λειτουργίας τους ή σε εφαρμογές που δεν είναι για μαζική παραγωγή. Ωστόσο υπάρχει και μια άλλη τεχνολογία ενσωματωμένων συστημάτων, το ASIC, το οποίο είναι κατάλληλο για εφαρμογές όπου απαιτούνται μεγάλες ποσότητες και η λειτουργία τους είναι αυστηρά προκαθορισμένη και δεν αλλάζει Διαφορές FPGA και ASIC Για να γίνει πιο κατανοητός ο λόγος χρήσης των FPGA θα τα αντιπαραβάλλουμε με την άλλη μορφή ψηφιακών ενσωματωμένων κυκλωμάτων, τα ASIC. Τα αρχικά προέρχονται από τη φράση Application Specific Integration Circuit δηλαδή ολοκληρωμένο κύκλωμα συγκεκριμένης εφαρμογής. Όπως φαίνεται και από την ονομασία τους, τα ASIC είναι τα κυκλώματα που φτιάχνονται για να λειτουργούν σε συγκεκριμένες εφαρμογές χωρίς δυνατότητα περαιτέρω μορφοποίηση της μορφής ή της λειτουργίας του. Από την προηγούμενη ανάλυση είναι προφανές ότι τα ASIC είναι λιγότερο ευέλικτα σε σχέση με τα FPGA λόγω των γεγονότων ότι παίρνουν την τελική μορφή τους κατά την κατασκευή τους και ότι η εφαρμογή και τα χαρακτηριστικά τους πρέπει να είναι προαποφασισμένα, χωρίς να αφήνει περιθώρια για βελτιώσεις στο μέλλον. Για να αποφύγουν λοιπόν οι εταιρείες κατασκευής κυκλωμάτων πώληση ελαττωματικών προϊόντων στους πελάτες τους τα οποία δεν θα μπορούν να διορθωθούν, δοκιμάζουν πρώτα τα κυκλώματα που έχουν προς υλοποίηση σε FPGA για να ελεγχθεί η ορθή λειτουργίας και μετά περνάνε στα ASIC για την τελική κατασκευή. Ωστόσο, μπορεί κανείς να αναρωτηθεί γιατί μια εταιρεία να μην χρησιμοποιήσει μόνο FPGAs για την κατασκευή των τελικών κυκλωμάτων της. Η απάντηση είναι ότι τα ASIC τις βοηθούν να σχεδιάσουν βέλτιστα χωροταξικά και από άποψη ενέργειας κυκλώματα. Δηλαδή ένα κύκλωμα ASIC δεν περιέχει τόσα πολλά στοιχεία, πύλες και κανάλια όσα ένα FPGA τα οποία να μένουν αχρησιμοποίητα μέσα στο κύκλωμα, αλλά μόνο τόσα όσα χρειάζεται περιορίζοντας κατά πολύ τον χώρο που καταλαμβάνει το κύκλωμα. Επίσης δεν χρησιμοποιεί παραπάνω ενέργεια για να βγάλει αποτέλεσμα όπως συμβαίνει στο FPGA, που τροφοδοτούνται με ενέργεια παραπάνω στοιχεία απ ότι σε ένα ASIC κύκλωμα γιατί δεν θα υπήρχαν καν. Έτσι οι εταιρείες που δραστηριοποιούνται σε αυτό τον τομέα προτιμούν να βγάζουν τα τελικά προϊόντα τους σε ASIC λόγω βελτιστοποιημένης απόδοσης σε ένα πιο ολοκληρωμένο πακέτο. 15

16 Ένας άλλος παράγοντας που ωθεί τις εταιρείες στην προτίμηση υλοποίησης κυκλωμάτων πάνω σε ASIC κυκλώματα είναι το κόστος. Οι απλοί χρήστες που ασχολούνται ερασιτεχνικά με την ανάπτυξη ενσωματωμένων συστημάτων καθώς και μικρές επιχειρήσεις που κατασκευάζουν μεμονωμένα κυκλώματα για ίδια χρήση σχεδόν συνέχεια προτιμούν τα FPGA. Ωστόσο μεγάλες εταιρείες όπου τα μικροκυκλώματα που θέλουν να χρησιμοποιήσουν επαναλαμβάνονται ολόιδια, μπορεί και εκατομμύρια φορές, τότε αυτές προτιμούν τη λύση του ASIC. Τέλος αξίζει να σημειωθεί ότι καθώς η τεχνολογία εξελίσσεται, και οι δύο λύσεις βελτιώνονται η κάθε μία στο δικό της πεδίο. Τα ASIC βελτιώνονται στο επίπεδο της κατασκευής τους και στις μεθόδους με τις οποίες γίνεται αυτό, ενώ τα FPGA βελτιώνονται στο επίπεδο της δομής και σχεδίασής τους. Γενικότερα όμως, όποια τεχνολογία από τις δύο κι αν επιλέξει ένας σχεδιαστής, μπορεί να βρει τα κατάλληλα εργαλεία σχεδίασης που με την συνεχή εξέλιξή τους προσφέρουν στους σχεδιαστές νέες δυνατότητες αλλά και προκλήσεις. 5.3 Γλώσσα σχεδίασης υλικού VHDL Εισαγωγή Ο όρος VHDL προέρχεται από τα αρχικά VHSIC hardware description language ή γλώσσα περιγραφής υλικού VHSIC και είναι μια γλώσσα περιγραφής υλικού που χρησιμοποιείται στον αυτοματισμό ηλεκτρονικών σχεδιάσεων για την περιγραφή ψηφιακών και μεικτών συστημάτων, όπως τα FPGA και τα ολοκληρωμένα κυκλώματα. Το VHSIC με τη σειρά του προέρχεται από τα αρχικά Very High-Speed Integrated Circuit ή Ολοκληρωμένα Κυκλώματα Υψηλής Ταχύτητας. Σαν γλώσσα προγραμματισμού χρησιμοποιείται για να περιγράψει τη συμπεριφορά, την εφαρμογή και τη δομή ψηφιακών συστημάτων. Λαμβάνοντας αυτά τα χαρακτηριστικά υπόψη, η VHDL μπορεί να θεωρηθεί σαν εργαλείο Electronic Computer Aided Design (ECAD) ή εργαλείο ηλεκτρονικής σχεδίασης με τη βοήθεια του υπολογιστή. Βοηθά τους σχεδιαστές να κάνουν μια υψηλού επιπέδου περιληπτική σχεδίαση κι έπειτα μέσω των εργαλείων σύνθεσης την αυτόματη αποτύπωση σε ολοκληρωμένη μορφή πάντα μέσα στις προδιαγραφές που έχουν οριστεί από τους μηχανικούς σχεδίασης. Η ιστορία της VHDL ξεκινά στα μέσα της δεκαετίας του 80 όπου το αμερικάνικο υπουργείο εθνικής άμυνας και το IEEE χρηματοδότησαν τη δημιουργία μιας γλώσσας περιγραφής υλικού που θα βοηθούσε στην ανάπτυξη πολύ υψηλής ταχύτητας ολοκληρωμένα κυκλώματα. Πλέον αποτελεί μια πρότυπη βιομηχανική γλώσσα περιγραφής ψηφιακών κυκλωμάτων ενώ δεν είναι η μόνη αφού υπάρχουν κι άλλες γλώσσες περιγραφής υλικού εξίσου καλές όπως είναι η Verilog ή λιγότερο καλές όπως είναι η ABEL (Advanced Boolean Equation Language). Στα τέλη της δεκαετίας του 80 κυκλοφόρησε μια πρώτη έκδοση του προτύπου που έγινε γνωστή με το όνομα IEEE11076 ενώ αργότερα, το 1993, κυκλοφόρησε μια πιο βελτιωμένη έκδοση με την ονομασία IEEE1164. Η αρχική έκδοση της VHDL περιλάμβανε αρκετούς τύπους δεδομένων όπως τους αριθμητικούς ακέραιους (integer) και πραγματικούς (real), τους λογικούς (bit και Boolean), τους χαρακτήρες (character) και χρόνο (time), καθώς και πίνακες από bit (bit_vector) και από χαρακτήρες(string). Θα πρέπει επίσης να ειπωθεί ότι σαν γλώσσα μοιάζει πολύ με την ADA καθώς έχει κληρονομήσει πολλά στοιχεία της. Αυτό αποτελούσε απαίτηση του υπουργείου αμύνης έτσι ώστε να μην χρειαστεί να ξαναεφευρεθούν τεχνικές που είχαν ήδη εφευρεθεί και χρησιμοποιηθεί στην ADA. Με τον πέρασμα των χρόνων και με την αυξημένη διάδοση της γλώσσας δημιουργήθηκαν νέες εκδόσεις βελτιώνοντας πολλά από τα χαρακτηριστικά της. Ενδεικτικά αναβαθμίσεις του προτύπου το 2000 και το 2002 πρόσθεσαν τους προστατευμένους τύπους, ιδέα που μοιάζει με τις κλάσεις σε μια αντικειμενοστραφή γλώσσα, ενώ αφαιρέθηκαν κάποιοι περιορισμοί από τους κανόνες αντιστοίχισης θυρών. Αρχές του 2008, η Accellera, ενέκρινε την τέταρτη έκδοση της VHDL, η οποία διόρθωνε πάνω από 90 προβλήματα που είχαν εντοπιστεί και επισημανθεί κατά τη δοκιμαστική περίοδο της τρίτης έκδοσης. Η VHDL δίνει τη δυνατότητα στους σχεδιαστές να διαχειριστούν τον παραλληλισμό που διακρίνει τις σχεδιάσεις υλικού μέσω των διεργασιών που μπορούν να δημιουργήσουν. Ωστόσο αυτές οι δομές διαφέρουν συγκριτικά με τις αντίστοιχες της ADA ως προς τη σύνταξή τους. 16

17 Επιπλέον, όπως και στην ADA, η VHDL έχει ισχυρούς τύπους δηλαδή δεν κάνει διάκριση μεταξύ πεζών και κεφαλαίων. Ωστόσο η VHDL έχει πολλά χαρακτηριστικά που δεν υπάρχουν στην ADA λόγω της ιδιαιτερότητας του υλικού όπως είναι μερικές επιπλέον λογικές πράξεις που απαντώνται συχνά στο υλικό όπως είναι η NAND και η NOR ή επιτρέπει τη δεικτοδότηση ενός πίνακα από το μικρότερο δείκτη προς το μεγαλύτερο και αντίστροφα. Επιπλέον, στις δυνατότητες της VHDL περιλαμβάνονται και η είσοδος κι έξοδος σε αρχεία αλλά και η επεξεργασία κειμένου γενικά. Τα αρχεία χρησιμοποιούνται από ένα testbench προσομοίωσης για να οριστούν οι διεγέρσεις του κυκλώματος, για να αλληλεπιδράσει το κύκλωμα με το χρήστη και για να συγκριθούν τα τελικά αποτελέσματα με τα αντίστοιχα επιθυμητά. Ένα ολοκληρωμένο περιβάλλον ανάπτυξης για VHDL χρησιμοποιείται για να γίνει η σχεδίαση του υλικού όπου στην περίπτωση που η υλοποίηση αφορά FPGA αυτά τα περιβάλλοντα ανάπτυξης είναι το Xilinx ISE, το Altera Quartus, το Synopsys Synplify και το Mentor Graphics HDL Designer. Αυτά με τη σειρά τους παράγουν το σχηματικό διάγραμμα για το επιθυμητό κύκλωμα και με τη χρήση λογισμικού προσομοίωσης ελέγχεται η ορθότητα των κυματομορφών των σημάτων εισόδου, εξόδου αλλά και των εσωτερικών σημάτων με τη δημιουργία του κατάλληλου testbench. Η δημιουργία του σωστού testbench για ένα κύκλωμα ή έναν κώδικα σε VHDL είναι μείζονος σημασίας αφού ελέγχει την ορθότητα όλου του κυκλώματος και γι αυτό πρέπει να ορίζονται σωστά οι είσοδοι. Ένα μοντέλο σε VHDL μεταφράζεται σε πύλες και γραμμές που αντιστοιχούν σε ένα FPGA, δεν εκτελείται ο κώδικας σε κάποιου τύπου επεξεργαστή όπως συμβαίνει με τις κλασσικές γλώσσες προγραμματισμού. Το βασικό της πλεονέκτημα είναι ότι επιτρέπει την περιγραφή και την προσομοίωση του επιθυμητού κυκλώματος πριν αυτό μεταφραστεί σε πραγματικό υλικό από τα εργαλεία σύνθεσης. Ένα άλλο πλεονέκτημα της VHDL είναι η δυνατότητα που δίνει σε ένα σχεδιαστή να ορίσει ταυτόχρονα συστήματα σε αντίθεση με τις διαδικαστικές γλώσσες προγραμματισμού όπως είναι η C στις οποίες η μία εντολή διαδέχεται την άλλη, γιατί η VHDL αποτελεί γλώσσα ροής δεδομένων. Ένα άλλο πλεονέκτημα της VHDL είναι η επαναχρησιμοποίηση παλιών υλοποιήσεων. Με άλλα λόγια αν ένας σχεδιαστής υλικού έχει φτιάξει ένα μπλοκ υπολογισμού, τότε μπορεί να το χρησιμοποιήσει και σε άλλα έργα. Μάλιστα έχει τη δυνατότητα να δημιουργήσει διάφορες παραμέτρους, που θα τις ορίζει κάθε φορά σε κάθε υλοποίηση, όπως είναι για παράδειγμα η χωρητικότητα μιας μνήμης, η σύνθεση ενός μπλοκ και άλλα. Συνοψίζοντας αξίζει να αναφερθεί ότι η VHDL αποτελείται από τρία διαφορετικά αλλά άμεσα εξαρτώμενα μοντέλα: 1. Μοντέλο συμπεριφοράς 2. Μοντέλο χρονισμού 3. Μοντέλο δομής Με τη χρήση αυτών των τριών μοντέλων, ένα ψηφιακό κύκλωμα μπορεί να αναπαρασταθεί σε διαφορετικά επίπεδα αφαίρεσης καθιστώντας διαχειρίσιμη την περιγραφή και το σχεδιασμό σύνθετων κυκλωμάτων. Τέλος αναφέρονται συνοπτικά τα χαρακτηριστικά που διακρίνουν την VHDL: 1. Ταυτόχρονη δήλωση λειτουργίας των επί μέρους στοιχείων του συστήματος, αφού θα πρέπει να είναι δυνατόν όλα να λειτουργούν ταυτόχρονα, όπως σε οποιοδήποτε ψηφιακό σύστημα. 2. Σειριακή δήλωση λειτουργίας, ώστε να είναι δυνατή η διαδοχική εκτέλεση διαδικασιών που ορίζονται από τις απαιτήσεις του συστήματος. 3. Υποστήριξη ιεραρχικής σχεδίασης. 4. Υποστήριξη βιβλιοθηκών, προκειμένου να χρησιμοποιούνται μοντέλα που έχουν οριστεί από τον χρήστη και έχουν μεταφραστεί με τη βοήθεια του συμβολομεταφραστή (compiler) που παρέχει η γλώσσα. 5. Δήλωση τύπων, ώστε να μην περιορίζεται η VHDL μόνο σε τύπους bit ή Boolean. 6. Χρήση υποπρογραμμάτων, προκειμένου να καθορίζονται εύκολα οι λειτουργίες (functions) και οι υπορουτίνες (procedures). 17

18 7. Έλεγχος του χρονισμού, ώστε να είναι δυνατός ο καθορισμός της καθυστέρησης ενός σήματος ή της αναμονής για ένα σήμα ή γεγονός (event). 5.4 Μεθοδολογία Σχεδίασης Η συγγραφή, ο έλεγχος του πηγαίου κώδικα, η λειτουργική εξομοίωσή πραγματοποιήθηκε με το εργαλείο ModelSim ενώ για τη σύνθεση του κώδικα και τη βελτιστοποίησή του χρησιμοποιήθηκε το εργαλείο Xilinx ISE Design Suite, απλοποιώντας κατά πολύ τη δική μας δουλειά. Αρχικά ορίζεται το σχέδιο με την χρήση της VHDL. Έπειτα εξετάζεται η λειτουργικότητα του σχεδίου με τη βοήθεια της εξομοίωσης και όταν αυτή διαπιστωθεί δημιουργείται το επίπεδο gate level με τη βοήθεια των εργαλείων σχεδίασης, αφήνοντας στο σχεδιαστή με την οργάνωση και τη λειτουργικότητα του σχεδίου του και αυτοματοποιώντας κάποιες διεργασίες πάντα όμως υπό τον έλεγχο του σχεδιαστή. Γενικότερα η σχεδιαστική προσέγγιση που ακολουθείται είναι top-down προσέγγιση. Δηλαδή, με βάση αυτή τη μέθοδο, η σχεδίαση ξεκινάει από ένα υψηλό και γενικό επίπεδο περιγραφής και συνεχίζει στο αμέσως επόμενο πιο απλουστευμένο και λεπτομερές επίπεδο. Αυτή η διαδικασία συνεχίζεται μέχρι αυτό να αποτελείται από πρωταρχικά ηλεκτρονικά στοιχεία. Η μεθοδολογία επομένως που μπορεί να ακολουθήσει ένας σχεδιαστής είναι η εξής: Αρχικά καθορίζονται οι απαιτήσεις και οι προδιαγραφές του σχεδίου του κυκλώματος που θα υλοποιηθεί. Αυτό το βήμα δεν έχει συγκεκριμένη μέθοδο για την περιγραφή του σχεδίου και τον έλεγχο της ορθής λειτουργίας του αλλά βασίζεται στην εμπειρία του σχεδιαστή στο πόσο αξιόπιστο ή λεπτομερές μπορεί να είναι. Έπειτα, αφού έχουν αναλυθεί οι βασικές λειτουργίες, αυτές διασπώνται σε μικρότερες και πιο απλούστερες λειτουργίες για να μπορούν να αναπαρασταθούν με τη χρήση της VHDL. Στο επόμενο βήμα ο σχεδιαστής με τη χρήση της VHDL κι ενός περιβάλλοντος ανάπτυξης υλοποιεί αυτές, τις απλουστευμένες πλέον, λειτουργίες. Ακολούθως, με τη χρήση του ModelSim, γίνεται λειτουργική εξομοίωση όπου ο κώδικας ελέγχεται για συντακτικά λάθη και ο συμβολομεταφραστής δημιουργεί ένα μοντέλο του κυκλώματος που ελέγχεται από το χρήστη αν έχει την αναμενόμενη συμπεριφορά. Αυτό γίνεται μέσω του ελέγχου των χρονικών κυματομορφών των σημάτων εισόδου κι εξόδου, αν έχουν την αναμενόμενη συμπεριφορά και αν ανταποκρίνεται χωρίς καθυστέρηση όπως έπρεπε. Επόμενο βήμα είναι η σύνθεση και βελτιστοποίηση του σχεδίου με τη χρήση του εργαλείου Xilinx ISE Design Suite. Το πρώτο μέρος αυτού του βήματος, η σύνθεση, επιτυγχάνεται μέσω της ανάλυσης του κώδικα και της δημιουργίας του αντίστοιχου ψηφιακού ολοκληρωμένου κυκλώματος που υλοποιεί τη συμπεριφορά του μοντέλου που περιγράφεται από την VHDL. Το δεύτερος μέρος αυτού του βήματος, η βελτιστοποίηση, γίνεται μέσω της βελτίωσης του κυκλώματος που έχει δημιουργηθεί καλύπτοντας ένα συγκεκριμένο χαρακτηριστικό όπως είναι η ταχύτητα, η κατανάλωση ή η επιφάνεια. Το επόμενο βήμα, αφού έχουμε το βελτιστοποιημένο κύκλωμα στη διάθεσή μας, είναι η πιστοποίηση ορθής λειτουργίας. Το κύκλωμα προσομοιώνεται με τη χρήση χρονισμένων ηλεκτρονικών στοιχείων, για να διαπιστωθεί ότι το κύκλωμα μπορεί να ανταποκριθεί σωστά σε πραγματικές χρονικές απαιτήσεις και με τη χρήση test vectors. Τέλος, το τελικό στάδιο είναι ο έλεγχος πληρότητας των αρχικών απαιτήσεων ModelSim Το ModelSim είναι ένας από τους πιο ευρέως χρησιμοποιούμενους προσομοιωτές. Έχει άμεση διασύνδεση με το ISE, έτσι ώστε να μην χρειάζεται να περιλάβουμε χειροκίνητα τις βιβλιοθήκες της Xilinx. Ακόμη παρέχει ένα σύστημα αυτοματοποίησης της προσομοίωσης, βασισμένο στην γλώσσα TCL, δίνοντας ευελιξία στον σχεδιαστή κατά την αποσφαλμάτωση και τον έλεγχο του design. Η υλοποίηση και η εξομοίωση των επιμέρους μονάδων του κυκλώματος έγινε με τη χρήση του εργαλείου ModelSim 10.1c. Αφού ολοκληρώθηκε η περιγραφή του κυκλώματος με την VHDL, 18

19 χρησιμοποιήθηκε ο compiler του ModelSim για τον έλεγχο των συντακτικών λαθών. Όταν διορθώθηκαν κι αυτά, έγινε η λογική εξομοίωση από τον κώδικα περιγραφής VHDL. Το ModelSim μπορεί να παρακολουθεί τις χρονικές κυματομορφών των σημάτων που χρησιμοποιούνται στο σύστημα καθώς και των τιμών που παίρνουν σε συγκεκριμένα χρονικά διαστήματα. Επίσης επιτρέπει στους σχεδιαστές να χρησιμοποιήσουν έτοιμες βιβλιοθηκών ή να φτιάξουν νέες για μελλοντική χρήση Xilinx Suite Για την σχεδίαση του και τη σύνθεση του συστήματος, χρησιμοποιήθηκε η σουίτα εργαλείων της Xilinx, το Xilinx ISE Design Suite Για την προσομοίωση του σχεδιασμού χρησιμοποιήθηκε ο προσομοιωτής ModelSim, λόγω των δυνατοτήτων του και της άμεσης ενσωμάτωσης του με τα εργαλεία της Xilinx. Το Xilinx ISE είναι ένα σύνολο εργαλείων της Xilinx τα οποία συνεργάζονται μεταξύ τους και έτσι μπορεί ο σχεδιαστής να εκτελέσει όλη τη σχεδίαση, από την συγγραφή και σύνθεση υλικού ενός κώδικα HDL (VHDL ή Verilog) έως τον «προγραμματισμό» μιας πλακέτας FPGA. Με άλλα λόγια η σουίτα δίνει τη δυνατότητα συγγραφής της γλώσσας περιγραφής υλικού, του συντακτικού ελέγχου της, της άμεσης προσομοίωσης με τον επιλεγμένο προσομοιωτή και τέλος της σύνθεσης του υλικού ώστε να γίνει έπειτα ο προγραμματισμός του FPGA. Ένα πολύ σημαντικό εργαλείο του ISE είναι το Embedded Development Kit (EDK) το οποίο βοηθάει στον σχεδιασμό συστήματος, επιτρέποντας σε έναν σχεδιαστή να διαλέξει επεξεργαστή, μια πληθώρα περιφερειακών, ακόμα και έτοιμα κομμάτια υλικού από άλλες υλοποιήσεις (custom IP cores), που θέλει να περιέχει το σύστημα που σχεδιάζει. Τα πιο πάνω κομμάτια μπορούν να παραμετροποιηθούν π.χ. μέγεθος cache του επεξεργαστή, διευθυνσιοδότηση των περιφερειακών, δημιουργία bus και διασύνδεση με τους επεξεργαστές και τα περιφερειακά και άλλα. Ακόμη ένα πολύ σημαντικό εργαλείο είναι το Software Development Kit (SDK) το οποίο μας επιτρέπει να διαχειριστούμε το λογισμικό του συστήματος μας, από την υλοποίηση μια απλής ρουτίνας μέχρι την φόρτωση λειτουργικού συστήματος στον επεξεργαστή (π.χ. Xilkernel, embedded Linux), επιτρέποντάς μας την δυνατότητα προγραμματισμού του σε C, C++ ή ακόμα και σε assembly. Επιπλέον με τη χρήση του SDK αποσφαλματώνεται, κατεβαίνει και εκτελείται το λογισμικό στο ήδη κατεβασμένο κύκλωμά μας. Τέλος παρακολουθεί μια σειριακή θύρα μέσω της οποίας λαμβάνουμε τα μηνύματα του προγράμματος. 19

20 6 Nonvolatile μνήμες Στη σύγχρονη εποχή, η κατασκευή μνημών εξαρτάται στενά από την τεχνολογία των ημιαγωγών η οποία, όπως όλες οι τεχνολογίες πυριτίου, με την πάροδο του χρόνου ακολουθεί το νόμο του Moore. Οι μνήμες nonvolatile είναι μια κατηγορία μνημών που έχουν την ικανότητα να συγκρατούν τα δεδομένα στα κύτταρά τους ακόμα και όταν δεν τροφοδοτούνται με ρεύμα. Στο παρόν κεφάλαιο θα αναλυθούν οι nonvolatile μνήμες, οι φυσικές τους ιδιότητες, η αρχιτεκτονική τους, η κατασκευή τους καθώς και η αξιοπιστία τους με την πάροδο του χρόνου. 6.1 Πρωταρχικές έννοιες Οι μνήμες είναι ιδιαίτερα απαραίτητες στις επικοινωνιακές διαδικασίες για να κρατάνε αποθηκευμένα τα στοιχεία ενδιαφέροντος, τουλάχιστον για το χρονικό διάστημα που λαμβάνουν χώρα οι εργασίες, για να διευκολύνουν τη χρήση δεδομένων και για να συλλέγουν τα αποτελέσματα. Τα δεδομένα αυτά μπορούν να μείνουν ανέπαφα σε μία μνήμη για ένα χρονικό διάστημα που ονομάζεται retention time. Για τις nonvolatile μνήμες αυτός ο χρόνος είναι τα 10 χρόνια, ενώ ενδεικτικά αναφέρεται ότι σε μια volatile μνήμη το ίδιο χρονικό διάστημα ανέρχεται στο 1 δευτερόλεπτο. Φυσικά οι συγκεκριμένοι χρόνοι είναι ενδεικτικοί, καθώς εξαρτώνται σημαντικά από πολλούς παράγοντες όπως είναι η τεχνολογία κατασκευής, η εφαρμογή και άλλους. Όπως φαίνεται και στον επόμενο πίνακα υπάρχουν πολλά είδη nonvolatile μνημών. Οι σημερινές μνήμες flash ανήκουν στην οικογένεια των EEPROM μνημών, στις οποίες μπορεί να σβηστεί είτε ολόκληρο το chip είτε ένα μέρος τους και υπάρχουν κυρίως δύο είδη: NAND Flash και NOR Flash. Το πρώτο είδος εστιάζει στην αποθήκευση δεδομένων σε μπλοκ ενώ το δεύτερος εστιάζει στην αποθήκευση δεδομένων τα οποία διευθυνσιοδοτούνται κατά κώδικα και κατά λέξη. Nonvolatile Μνήμες Ακρωνύμιο Ορισμός Περιγραφή ROM Μνήμη μόνο ανάγνωσης Τα περιεχόμενα της μνήμης καθορίζονται κατά την κατασκευή και δεν τροποποιούνται EPROM Μνήμη ROM δυνατότητας σβησίματος / προγραμματισμού EEPROM E 2 PROM Μνήμη δυνατότητας ηλεκτρονικού σβησίματος / προγραμματισμού Μνήμη δυνατότητας ηλεκτρονικού σβησίματος / προγραμματισμού Πίνακας 1: Κατηγορίες Nonvolatile Μνημών Η μνήμη αυτή μπορεί να σβηστεί με την έκθεση σε ακτινοβολία UV και να προγραμματιστεί ηλεκτρονικά Η μνήμη αυτή μπορεί να σβηστεί και να προγραμματιστεί ηλεκτρονικά. Η χρήση του EE προδιαθέτει σβήσιμο σε επίπεδο block και όχι byte Η μνήμη αυτή μπορεί να σβηστεί και να προγραμματιστεί ηλεκτρονικά όπως και η EEPROM, αλλά η χρήση του E 2 προδιαθέτει σβήσιμο σε επίπεδο byte Στον πυρήνα κάθε μνήμης υπάρχουν κάποιες μετρήσιμες συμπεριφορές που αποδίδουν δύο διακριτές καταστάσεις: το γράψιμο και το διάβασμα. Η πρώτη κατάσταση, που λέγεται και διαδικασία αποθήκευσης, είναι η διαδικασία που τίθεται τάση στα κύτταρα μνήμης και φορτίζεται 20

21 ενώ η δεύτερη κατάσταση, που λέγεται και διαδικασία επανάκλησης, είναι η διαδικασία εντοπισμού των ήδη φορτισμένων κελιών. Η διαρκής αποθήκευση των δεδομένων στις μνήμες flash γίνεται με τη φόρτιση της floating πύλης. Το ηλεκτρόδιο της floating πύλης αποτελείται από ένα πολυεπίπεδο στρώμα πυριτίου. Αυτό βρίσκεται στο εσωτερικό της πύλης ενός μονωτή. Το φαινόμενο του πεδίου παρουσιάζεται μεταξύ του ηλεκτροδίου gate και του καναλιού. Κατά τη διαδικασία του διαβάσματος, εφαρμόζεται μια ποσότητα φορτίου στην floating πύλη, η οποία καθορίζει το σημείο πάνω από το οποίο το τρανζίστορ θα άγει. Δεδομένου ότι η floating πύλη είναι τελείως μονωμένη, το φορτίο διατηρείται για μεγάλο χρονικό διάστημα είτε υπάρχει τάση στο κύκλωμα είτε όχι, επιτρέποντας στο διάβασμα της μνήμης να γίνεται χωρίς να χάνονται τα δεδομένα. Μέσα στις flash μνήμες, η πληροφορία αποθηκεύεται με τη μορφή δυαδικών ψηφίων. Στις περισσότερες μνήμες κάθε bit πληροφορίας αποθηκεύεται σε ένα τρανζίστορ, ωστόσο στις σύγχρονες μνήμες υπάρχει η τεχνολογία των πολυεπίπεδων μνημών, όπου δηλαδή περισσότερα του ενός bit πληροφορίας αποθηκεύεται σε ένα τρανζίστορ. Η πρώτη περίπτωση μας δίνει τη δυνατότητα να έχουμε πιο αξιόπιστες και εύρωστες μνήμες, αφού η διαδικασία διαβάσματος απλά απαιτεί το τρανζίστορ να βρίσκεται πάνω ή κάτω από μία τιμή για να ανιχνεύσει το λογικό ένα ή μηδέν. Ωστόσο στη δεύτερη περίπτωση, όπου η μνήμη αποθηκεύει 2 bits σε κάθε τρανζίστορ, κατά τη διαδικασία διαβάσματος πρέπει η μνήμη να μπορεί να διακρίνει τέσσερεις καταστάσεις ενώ το κύκλωμα εξόδου θα πρέπει να μεταφράζει την κάθε κατάσταση σωστά σε 2 ψηφιακά bits. Επομένως, όπως γίνεται κατανοητό, αυτή η παραπάνω πληροφορία και τα διαφορετικά επίπεδα πρέπει να διατηρούνται ανέπαφα υπό οποιεσδήποτε συνθήκες. Δεδομένου ότι οι nonvolatile μνήμες έχουν retention time 10 χρόνια, αυτή η διατήρηση αποτελεί μια πρόκληση για τους μηχανικούς που κατασκευάζουν flash μνήμες, η οποία πρόκληση γίνεται πιο μεγάλη όταν αυξάνεται η πληροφορία που αποθηκεύεται ανά κελί, όταν για παράδειγμα σχεδιάζουν μια μνήμη που αποθηκεύει 4 bit ανά τρανζίστορ δηλαδή να χωρέσουν σε ένα τρανζίστορ 16 διαφορετικά επίπεδα φόρτισης. Εκτός από τα κελιά-τρανζίστορ, που αποτελούν τον πυρήνα μιας μνήμης μεγάλη σημασία στο κόστος και στην αξιοπιστία μιας μνήμης έχουν τα περιφερειακά. Τα κελιά είναι τοποθετημένα σε ορθογώνια πλαίσια, όσο κοντά επιτρέπουν τα ενσωματωμένα κυκλώματα να βρίσκονται. Αυτή η δισδιάστατη πλάκα εκτός από τα κελιά περιέχει και τις αγώγιμες γραμμές που επιτρέπουν την πρόσβαση σε αυτά. Οι οριζόντιες γραμμές ονομάζονται wordlines ενώ οι κατακόρυφες ονομάζονται bitlines. Στην αρχιτεκτονική NOR oι wordlines συνδέονται στις πύλες ελέγχου των κελιών και βοηθούν στην επιλογή μιας γραμμής, ενώ τα bitlines συνδέονται στους εκπομπούς των τρανζίστορ και βοηθούν στην επιλογή μιας στήλης. Η άλλη άκρη του bitline συνδέεται στην τροφοδοσία, οδηγώντας μέσω του πίνακα στα κυκλώματα αισθητήρων και εγγραφής. Επομένως οι wordlines ενεργοποιούν μια γραμμή στο πλαίσιο που περιέχει ένα σύνολο κελιών και οι bitlines συνδέουν σε κάθε στήλη εκείνα τα κελιά που χρειάζονται για το διάβασμα, την εγγραφή κλπ. Στη NOR αρχιτεκτονική οι απολήξεις των εκπομπών των κελιών μιας στήλης είναι συνδεδεμένα παράλληλα σε μια bitline ενώ όλες οι απολήξεις των πηγών συνδέονται σε μια κοινή γραμμή γείωσης. Σε αυτή τη δομή λοιπόν, όταν όλες οι wordlines είναι στα 0V, η διαδικασία ανάγνωσης θετικής τάσης μιας γραμμής wordline οδηγεί σε μία συγκεκριμένη bitline που είναι συνάρτηση των επιλεγμένων κελιών της γραμμής. Στην αρχιτεκτονική NAND οι bitlines είναι οργανωμένες σε σειρές συνδεδεμένων κελιών χωρίς να αφήνουν κενά διασύνδεσης και εκμεταλλευόμενες καλύτερα τις διαστάσεις του υλικού. Μία σειρά μπορεί να περιέχει 8, 16 ή 32 κελιά. Αν θέλουμε επιπλέον σειρά κελιών να συνδεθεί σε μια υπάρχουσα bitline τότε αυτή συνδέεται παράλληλα μεταξύ bitline και γείωσης όπως συνδέονται ατομικά κελιά στην αρχιτεκτονική NOR. Το διάβασμα και η εγγραφή σε μια τέτοια συσκευή είναι πολυπλοκότερες σε σχέση με την NOR αρχιτεκτονική. Οι wordlines χρησιμοποιούνται για την επιλογή του τρανζίστορ στη σειρά. Για να έχει πρόσβαση το κύκλωμα ανάγνωσης/εγγραφής στα δεδομένα πρέπει όλα τα μη επιλεγμένα τρανζίστορ να είναι on, ενώ τα επιλεγμένα τρανζίστορ θα επηρεάζουν τη ροή δεδομένων μέσα στη σειρά. Για να επιλεγεί στη μνήμη μια wordline και μια bitline, τροφοδοτείται από ένα εξωτερικό κύκλωμα μια λέξη διεύθυνσης. Έπειτα ένα κύκλωμα 21

22 αποκωδικοποίησης τροφοδοτείται με αυτή τη διεύθυνση, και αυτό με τη σειρά του την οδηγεί στις wordlines και bitlines. Στην περίπτωση μεγάλων chip μνήμης, αυτά διαιρούνται σε μικρότερους πίνακες για λόγους καλύτερης διαχείρισης. Στα σύγχρονα ολοκληρωμένα συστήματα μνήμης οι διαδικασίες ανάγνωσης κ εγγραφής ενεργοποιούνται από χρονικά σήματα. Ειδικά συστήματα ελέγχου παίρνουν σαν είσοδο απλές εντολές και παράγουν αυτά τα χρονικά σήματα. Επιπλέον αυτές οι λειτουργίες απαιτούν τάσεις η οποίες μπορεί να είναι διαφορετικές από την τάση τροφοδοσίας και γι αυτό το λόγο οι απαραίτητες τάσεις παράγονται πάνω στο chip εξασφαλίζοντας ότι όλο το κύκλωμα θα λειτουργεί με τις ενδεδειγμένες τάσεις χωρίς την παρέμβαση του χρήστη. Τα δεδομένα στέλνονται στη μνήμη σε μορφή δυαδικών λέξεων με συγκεκριμένη έκταση και δομή, ενώ εσωτερικά η μνήμη διαχειρίζεται αυτές τις λέξεις σε ομάδες που ονομάζονται μπλοκ ή sectors. Οι είσοδοι της μνήμης εκτός από δεδομένα περιλαμβάνουν διευθύνσεις καθώς και σήματα ελέγχου. Οι έξοδοι περιλαμβάνουν μόνο δεδομένα και σήματα κατάστασης, για παράδειγμα λειτουργία εγγραφής ή ανάγνωσης και άλλα. Η κυριότερη εκτελεστική παράμετρος είναι ο χρόνος μεταξύ εισόδου διεύθυνσης και εξόδου δεδομένων. Αν μια μνήμη είναι προσανατολισμένη σε επίπεδο λέξης, αυτή η διαφορά ονομάζεται χρόνος πρόσβασης. Αν μια μνήμη είναι προσανατολισμένη σε επίπεδο μπλοκ τότε η απόδοση της εξαρτάται και από τη ροή δεδομένων, η οποία μετράει το ρυθμό εμφάνισης της πρώτης λέξης ή του πρώτου byte μέχρι να προκύψουν έγκυρες λέξεις ή bytes. Τέλος οι μνήμες περιέχουν κι ένα σήμα ελέγχου κατάστασης ready/busy το οποίο πρέπει να προηγείται πριν εκτελέσει η μνήμη μια νέα λειτουργία. Τα δεδομένα μέσα σε μια μνήμη είναι οργανωμένα με πολλούς τρόπους. Η πιο συνηθισμένη πρακτική είναι η χρήση chip που έχουν εύρος εξόδου ένα bit και η χρήση ξεχωριστών chip που δημιουργούν λέξεις. Αυτή η πρακτική είναι πιο αξιόπιστη για τις περιπτώσεις όπου χρειάζεται να προστεθούν bits και κατ επέκταση chips, για τη δημιουργία κωδικοποιημένης λέξης και την ανίχνευση σε επίπεδο bit λαθών. Έτσι αυξάνεται η αξιοπιστία του συστήματος. Ωστόσο, για chip μνήμης με μεγάλη χωρητικότητα, αυτή η προσέγγιση δεν είναι ιδιαίτερα βολική, δηλαδή για chip εύρους πιο μεγάλου από τα 16 bits. Τα chip που προσανατολίζονται σε επίπεδο μπλοκ ή sector, χρησιμοποιούνται πιο συχνά σειριακές είσοδοι και έξοδοι εύρους 8bit. Μετά τη λήψη των bytes, εσωτερικά η μνήμη τα συγκεντρώνει σε λέξεις και τις αποθηκεύει στα αντίστοιχα sectors. Οι λειτουργίες εγγραφής/ανάγνωσης πραγματοποιούνται φορτώνοντας αρχικά εντολές και διευθύνσεις και έπειτα ακολουθεί μια αυτοματοποιημένη διαδικασία που μετακινεί και μορφοποιεί τα δεδομένα. 6.2 Ιδιότητες Nonvolatile μνημών Όλες οι nonvolatile τεχνολογίες χρησιμοποιούν συγκεκριμένες ιδιότητες για τη συγκράτηση δεδομένων για μεγάλο χρονικό διάστημα που είναι η αποθήκευση, οι μηχανισμοί αποθήκευσης, η συγκράτηση και η αντοχή Αποθήκευση Για να γίνει κατανοητή η λειτουργία της floating πύλης στη μνήμη πρέπει να παρουσιαστούν τα ενεργειακά επίπεδά της. Η Ν-τύπου πύλη βρίσκεται ανάμεσα σε δύο επίπεδα διοξειδίου του πυριτίου, δηλαδή ανάμεσα σε δύο μονωτές. Αυτοί οι μονωτές είναι που εμποδίζουν την είσοδο και την έξοδο φορτίου από την πύλη λόγω του υψηλού φράγματος μεταξύ της ζώνης μεταβίβασης των στρωμάτων του διοξειδίου του πυριτίου. Για να αλλάξει το φορτίο που είναι αποθηκευμένο στην floating πύλη πρέπει να αλλάξει το δυναμικό στην αντίθετη πλευρά του κάθε μονωτή. Έτσι κάποια μηχανική μεταβίβαση θα μπορέσει να ξεπεράσει ή να βρει δρόμο μέσω σήραγγας. Για να υπερπηδηθεί το ενεργειακό αυτό φράγμα των μονωτών χρησιμοποιούνται διάφορες τεχνικές όπως είναι η έγχυση ηλεκτρονίων στο κανάλι ή η τεχνική σήραγγας. Στην πρώτη περίπτωση 22

23 προστίθενται ηλεκτρόνια στην floating πύλη για να γίνει η διαδικασία εγγραφής ενώ στη δεύτερη περίπτωση αφαιρούνται και προστίθενται ηλεκτρόνια από και προς την floating πύλη για τις διαδικασίες διαγραφής και ανάγνωσης. Οι μνήμες τύπου NOR χρησιμοποιούν συνήθως την πρώτη τεχνική για την εγγραφή και τη δεύτερη για τη διαγραφή, ενώ οι μνήμες τύπου NAND χρησιμοποιούν τη δεύτερη και για τις δύο λειτουργίες. Η διαδικασία εγγραφής δεδομένων στα κελιά μιας μνήμης flash χωρίζεται σε δύο υπολειτουργίες. Στην πρώτη όλα τα κελιά ενός τομέα διαγράφονται για λόγους αρχικοποίησης απομακρύνοντας κάθε φόρτιση από την floating πύλη, ενώ η δεύτερη όλα τα κελιά που έχουν επιλεγεί προγραμματίζονται σε λογικό μηδέν ή ένα. Τέλος αξίζει να σημειωθεί πως η διαδικασία διαγραφής οδηγεί την τάση κατωφλιού προς την αρνητική κατεύθυνση ενώ η διαδικασία εγγραφής προς τη θετική Μηχανισμοί αποθήκευσης Όλες οι τεχνολογίες nonvolatile μνήμης χρησιμοποιούν κάποια χημική προσέγγιση ή φυσική ιδιότητα για να συγκρατεί και να διατηρεί την πληροφορία στη μνήμη. Οι flash μνήμες, όπως προειπώθηκε, χρησιμοποιεί την ιδιότητα αιχμαλώτισης της φόρτισης στην floating πύλη, περιβάλλοντάς την από μονωτές. Άλλες παραλλαγές όπως η μνήμη νανοκρυστάλλων χρησιμοποιούν παρόμοιες τεχνικές Συγκράτηση Όπως ήδη αναφέρθηκε κάθε μνήμη nonvolatile χρησιμοποιεί το δικό της μηχανισμό συγκράτησης. Στις μνήμες Flash ο μηχανισμός αυτός είναι να παρουσιάζονται δεδομένα από ποσότητες φορτίου αποθηκευμένα στην floating πύλη. Επιπλέον παρουσιάζουν κάποια στοιχεία εσωτερικής φθοράς δεδομένων, τα οποία καθορίζουν την τελική δυνατότητα αποθήκευσης. Ωστόσο η φυσική φθορά είναι πολύ αργή και δεν επηρεάζει τις δυνατότητες συγκράτησης της μνήμης. Επιπλέον ο χρόνος συγκράτησης εξαρτάται και από άλλες παραμέτρους όπως είναι το υλικό (οι ατέλειες του, η γεωμετρία του ή ο κυκλικός σχεδιασμός του). Κάθε ένα από τα προβλήματα προσθέτει ή αφαιρεί ποσό φορτίου στην floating πύλη. Επιπρόσθετα μείωση στο χρόνο συγκράτησης μπορεί να δημιουργηθεί από προβλήματα στις ζώνες μόνωσης, δεδομένου ότι αυτές είναι υπεύθυνες για τη συγκράτηση δεδομένων. Άλλοι παράγοντες που μπορούν να δυσκολέψουν τη συγκράτηση είναι η ιονική μόλυνση ή οι παγίδες. Οι διαχείριση όλων αυτών των παραγόντων είναι συνάρτηση της γενικής κατάστασης της μνήμης καθώς και των πρακτικών και εξοπλισμών που παρέχουν οι κατασκευαστές Αντοχή Η συγκράτηση των δεδομένων, ακόμα και όταν η μνήμη δεν τροφοδοτείται με ρεύμα, στηρίζεται σε ορισμένα φυσικά φαινόμενα που εκμεταλλεύεται μια τεχνολογική προσέγγιση. Οι επαναλαμβανόμενες διεργασίες εγγραφής/ανάγνωσης των κελιών μπορούν να υποβαθμίσουν τις ιδιότητες της μνήμης ή να επηρεάσουν το περιεχόμενο των κελιών της μνήμης. Η αντοχή περιγράφει την ικανότητα της συσκευή να μην υφίσταται φθορά από τον οποιοδήποτε αίτιο επηρεάζει την σωστή λειτουργία της. Αυτός ο όρος ποσοτικοποιείται ως ο μικρότερος αριθμός κύκλων εγγραφής-διαγραφής χωρίς να επηρεαστεί η ορθή λειτουργία της συσκευής και ο ελάχιστος αριθμός που απαιτούν οι βιομηχανίες είναι της τάξης των κύκλων. Τόσο η αντοχή όσο και η συγκράτηση δύσκολα μπορούν να δοκιμαστούν ή να επαληθευθούν εξαιτίας πολλών παραγόντων όπως είναι οικονομικοί λόγοι ή ο περιορισμός της διάρκειας της ανθρώπινης ζωής. Η εξέταση τέτοιων συστημάτων γίνεται μέσω επαναληπτικών διεργασιών που καταναλώνουν την μεγαλύτερη χρήσιμη διάρκεια ζωής του προϊόντος εξάγοντας έτσι συμπεράσματα. 23

24 6.3 Μνήμες Flash και παραλλαγές κελιών Πρακτικά η κάθε αρχιτεκτονική flash μνήμης διαθέτει τη δική της παραλλαγή κελιών και η κάθε μία από αυτές έχει τα πλεονεκτήματα και τα μειονεκτήματά της. Όπως ήδη αναφέρθηκε η κοινή NOR αρχιτεκτονική προτιμάται για αποθήκευση κώδικα και δεδομένων ενώ η NAND για μαζική αποθήκευση. Το πρώτο μοντέλο Flash EEPROM προτάθηκε από τον Mashoka et al της Toshiba το 1984 IEEE International Electron Device Meeting. Ο ονομασία flash δόθηκε για να τονιστεί η ικανότητα κατά την οποία ολόκληρη η μνήμη μπορεί να σβηστεί ταχύτατα. Η εξέλιξη των flash μνημών χαρακτηρίζεται από μια διαρκή προσπάθεια βελτίωσης της πυκνότητας, του κόστους, της επίδοσης και της αξιοπιστίας. 24

25 7 Flash μνήμες Οι Flash μνήμες είναι σύνθετα συστήματα όσο αφορά την αρχιτεκτονική. Τις περισσότερες φορές ένα chip flash μνήμης είναι φτιαγμένο από τα εξής μέρη: έναν ευμεγέθη πίνακα αποτελούμενο από nonvolatile κελιά μνήμης, ενισχυτικούς αισθητήρες ώστε να ανακτούνται τα αποθηκευτικά δεδομένα του πίνακα μνήμης, κυκλώματα που αποκωδικοποιούν τον πίνακα, αναλογικά υποσυστήματα ούτως ώστε να παράγονται και να ρυθμίζονται οι απαιτούμενες τάσεις για την εγγραφή και τη διαγραφή των κελιών, συστήματα ελέγχου και κυκλώματα εισόδου-εξόδου. Οι Flash μνήμες αφομοιώνουν πλήθος κυκλωμάτων, με σκοπό να μην εμφανίζονται στον τελικό χρήστη οι τρόποι ελέγχου, εξακρίβωσης, εύρεσης και απάλειψης των λαθών. Σκοπός του κεφαλαίου είναι να παρουσιαστεί εκτενώς η τεχνολογία αυτή, δηλαδή η αρχιτεκτονική Flash. 7.1 Βασική λειτουργικότητα Flash κελιού Από αρχιτεκτονικό πρίσμα όπως έχει ήδη αναφερθεί, το Flash κελί είναι ένα τρανζίστορ floating πύλης. Υπάρχει η δυνατότητα να ρυθμίσουμε τη χαρακτηριστική καμπύλη ρεύματος-τάσης, μέσω ελέγχου των τάσεων που ασκούνται στην πύλη, την πηγή και τον εκπομπό του τρανζίστορ, για να αποθηκεύσουμε τη nonvolatile πληροφορία. Από τις περιφερειακές κυκλωματικές διατάξεις του chip μνήμης πραγματοποιούνται οι τέσσερις κύριες λειτουργίες του flash κελιού: η εγγραφή, η διαγραφή, η συμπίεση και η ανάγνωση Εγγραφή κελιού Για να εγγραφεί το κελί flash κατά το πλείστον γίνεται χρήση της έγχυσης ηλεκτρονίων (CHE) και του μηχανισμού σήραγγας Fowler-Nordheim (FN). Στην πρώτη περίπτωση ασκείται μια σχετικά υψηλή τάση (4-6V) στον εκπομπό του κελιού, στην πύλη (8-11V).Αντιθέτως, στην πηγή και το μέσο η τάση είναι μηδενική. Ως αποτέλεσμα, ένα αρκετό μεγάλο ρεύμα (0,3-1mA) διαπερνά το κελί και τα παραγόμενα στο κανάλι ηλεκτρόνια αποκτούν ενέργεια τέτοια που να υπερπηδούν το φράγμα της πύλης οξειδίου και να παγιδεύονται στην floating πύλη. Με τον CHE προγραμματίζονται οι πιο πολλές από τις NOR-τύπου Flash αρχιτεκτονικές. Αρκούν μόνο λίγα microseconds στην διαδικασία CHE για την μετακινηθεί στην τιμή προγραμματισμού η τάση κατωφλίου του κελιού από την τιμή σβησίματος ( 2 Volts), (< 7V). Από σύμβαση ένα εγγεγραμμένο κελί αποθηκεύει την τιμή λογικού 0. Η δεύτερη περίπτωση προγραμματισμού (FN), εφαρμόζεται στις NAND-τύπου, AND-τύπου και DIVOR-τύπου αρχιτεκτονικές και βασίζεται σε τάση περίπου 20V που ασκείται στην πύλη του κελιού. Και σε αυτή την περίπτωση ο εκπομπός, η πηγή και μέσος παραμένουν γειωμένοι. Ο προγραμματισμός FN είναι πιο χρονοβόρος από τον CHE, αφού είναι τάξης millisecond. Ο FN προγραμματισμός υπερτερεί ως προς το ότι για κάθε κελί απαιτούνται πολύ μικρότερα ρεύματα προγραμματισμού (<1nA). Έτσι, είναι δυνατό να προγραμματίζονται πολλά κελιά ταυτόχρονα Σβήσιμο κελιού Η διαγραφή του κελιού πραγματοποιείται με το μηχανισμό σήραγγας FN. Για να γίνει αυτό πιο κατανοητό παρατίθεται το ακόλουθο παράδειγμα. Σε έναν πίνακα flash μνήμης που συγκροτείται βάση NOR, η πύλη τίθεται σε τάση υπό του μηδενός περίπου -10V (να συμφωνεί με το δυναμικό του μέσου). Στον εκπομπό εφαρμόζεται τάση 4-6V, η πηγή φορτίζεται εντελώς ενώ ο μέσος είναι γειωμένος. Με τη φόρτιση αυτή ένα ισχυρό ηλεκτρικό πεδίο τίθεται κάθετα στο στρώμα του οξειδίου. Αυτό ωθεί ηλεκτρόνια έξω από την floating πύλη και με αυτό τον τρόπο μειώνεται η τάση στο κατώφλι της συσκευής. Ένα κελί που έχει διαγραφεί αποθηκεύει την τιμή λογικού 1. Η διαδικασία σβησίματος μέσω του μηχανισμού FN δεν ξεπερνά τα μερικά milliseconds. 25

26 7.1.3 Συμπίεση Η floating πύλη ενδέχεται ενίοτε να καταλήξει μέσω του σβησίματος σε κατάσταση over deplete. Τα ηλεκτρόνια τότε εξάγονται από την floating πύλη πέρα από την ουδέτερη κατάσταση (μηδενική φόρτιση) και ισοδυναμεί με τη δημιουργία οπών (holes) πράγμα ανάλογο της θετικής φόρτισης στην floating πύλη. Υπό την παρουσία του φαινόμενου αυτού η τάση που εφαρμόζεται στο κατώφλι του κελιού πέφτει σε μεγάλο βαθμό (αντιστρόφως ανάλογη της θετικής φόρτισης) έως ότου να επιτρέπει τη δίοδο στο κελί ακόμα και αν η τάση στην πύλη είναι 0V. Η ύπαρξη του over erasure (δηλαδή της υπέρμετρης απομάκρυνσης ηλεκτρονίων από την floating πύλη) στους πίνακες NOR-αρχιτεκτονικής δύναται να καταστρέψει την αποθηκευμένη πληροφορία. Λόγω αυτού, η φόρτιση των κελιών ελέγχεται από αλγόριθμους σβησίματος μετά από κάθε διαδικασία σβησίματος, ασκώντας τάση 0V στην πύλη των κελιών και ανιχνεύοντας το ρεύμα των κελιών. Στην περίπτωση που το ρεύμα είναι μεγαλύτερο από το μηδέν εφαρμόζεται η συμπιεστική διαδικασία με σκοπό την αντικατάσταση της ουδετερότητας της floating πύλης κατά ένα βαθμό αρκετό ώστε να διασφαλίζει την χρηστικότητα του πίνακα μνήμης. Η διαδικασία της συμπίεσης είναι ελαφρύς προγραμματισμός και υπό την έννοια αυτή χρησιμοποιεί είτε το μηχανισμό προγραμματισμού CHE είτε το μηχανισμό προγραμματισμού FN σηράγγωσης. Συμπίεση σημαίνει ότι η διαδικασία αυτή ως επί το πλείστον εφαρμόζεται σε μια στήλη κελιών μνήμης ή σε όλη την έκταση του πίνακα της μνήμης και ύστερα η διανομή της τάσης κατωφλίου των κελιών που ανήκουν στην στήλη είναι πιο περιορισμένη απ ότι ήταν πριν η μέθοδος αυτή. Ειδικά, στη συμπίεση που στηρίζεται στον FN προγραμματισμό η πύλη είναι φορτισμένη με υψηλή τάση σε αντίθεση με τον εκπομπό, την πηγή, τη floating πύλη και το μέσο που είναι γειωμένοι. Η τάση της πύλης είναι ελάχιστα πιο χαμηλή από την αναγκαία για τον εξολοκλήρου προγραμματισμό του κελιού. Από την άλλη, στη συμπίεσης κατά CHE η τάση που εφαρμόζεται στην πύλη είναι υψηλή, ενδιάμεση στον εκπομπό και μηδενική στην πηγή και το μέσο. Και αυτή τη φορά είναι απαραίτητες ελάχιστα πιο μικρές φορτίσεις για να μη μετατοπιστεί η τάση του κατωφλίου. Στις Flash NAND- τύπου μνήμες όπως συμβαίνει και στις μνήμες EEPROM που υπάρχει η δυνατότητα μόνο ηλεκτρικού σβησίματος, τα διαγραπτέα κελιά ηθελημένα θέτονται σε κατάσταση over deplete για να επιτευχθεί αρνητική τάση. Και εδώ επίσης η συμπίεση δεν είναι απαραίτητη Διαδικασία Διαβάσματος Κατά το διάβασμα, στην πύλη του κελιού εφαρμόζεται τάση περίπου 5V, στον εκπομπό περίπου 1V, στην πηγή και το μέσο 0V. Επιβάλλεται, τα κυκλώματα διαβάσματος να σχεδιάζονται με τρόπο που η τάση στον εκπομπό να μην ξεπερνά το 1-1,5V. Σε αντίθετη περίπτωση το κελί από μόνο του υφίσταται ενόχληση (read-disturb). Κατά τη φάση αυτή ενόχληση μπορεί να προκαλέσει και η παραγωγή θερμών ηλεκτρονίων καναλιού. Αν είναι μικρότερο (10-50mA) σε σεβασμό προς το ρεύμα του CHE προγραμματισμού πρέπει να υπογραμμιστεί ότι ένα flash κελί χρειάζεται πιο πολύ στη διαδικασία διαβάσματος. Εξαιτίας του ότι οι flash μνήμες είναι κατά κύριο λόγω συσκευές διαβάσματος, η ακεραιότητα των δεδομένων μπορεί να καταστραφεί ακόμη και από μικρές ποσότητες ενόχλησης διαβάσματος 7.2 Αρχιτεκτονική Flash Μνήμης Όπως αναφέρθηκε και παραπάνω οι flash μνήμες είναι κατά βάση συσκευές διαβάσματος σε αντίθεση με την στατική RAM (SRAM) και τη δυναμική μνήμης τυχαίας-πρόσβασης (DRAM), πράγμα που οφείλεται στο γεγονός ότι η εγγραφή των δεδομένων στον πίνακα μιας flash μνήμης, στην οποία έχουν προγραμματιστεί και σβηστεί τα κελιά της, είναι πολύ πιο χρονοβόρα από το διάβασμα των υπαρχόντων πληροφοριών. Για την εγγραφή ενός byte ή μιας λέξης χρειάζονται 26

27 μόλις λίγα microseconds, για τη διαγραφή του flash πίνακα κάποια microseconds, για να καταλήξουμε στο διάβασμα ενός byte ή μιας λέξης που αρκούν μόνο 20 με 100 ns. Κι αυτό γιατί το σβήσιμο είναι μια εξαιρετικά μεγάλη διεργασία που κάθε πίνακας πρέπει να διαγραφεί εξολοκλήρου ακόμα και αν είναι απαραίτητο μόνο 1 bit να μετατραπεί από 0 σε 1, εν αντιθέσει με την εγγραφή που εκτελείται σε τάξη bit, byte ή λέξης, Ύστερα από τη διαδικασία του σβησίματος ένας πίνακας flash μνήμης αποθηκεύει όλα τα 1, ενώ στη διαδικασία του προγραμματισμού μπορεί επιλεκτικά να αλλαχτεί το 1 σε 0. Ο προγραμματισμός 1 σε θέση μνήμης αφήνει την θέση αφόρτιστη. Όπως προειπώθηκε η φάση σβησίματος πραγματοποιείται μόνο σε επίπεδο πίνακα μεγάλων διαστάσεων. Οι πίνακες flash μνημών διαιρούνται σε μικρότερα κομμάτια (υποπίνακες), τα οποία ονομάζονται blocks ή sectors. Τις περισσότερες φορές το μέγεθός τους είναι 64 bytes, ενώ στην αγορά κυκλοφορούν και μικρότερου μεγέθους blocks (το ένα block χωρίζεται σε περισσότερα blocks (συνήθως 8 Kbytes το ένα). Ο σχεδιασμός του κυκλώματος, των αισθητήρων και του σβησίματος γίνεται πιο εύκολος λόγω της τμηματοποίησης με τη μείωση της παρασιτικής φόρτισης καθώς παρέχεται ευελιξία. Η βασική δομή της flash μνήμης περιλαμβάνει τριών τάξεων σήματα για να επικοινωνεί το σύστημα με τον έξω κόσμο: 1. Διεύθυνση: Είναι ένα κανάλι που έχει μήκος το λογάριθμο του μεγέθους της μνήμης. Ο επεξεργαστής θέτει σε αυτό το κανάλι τη διεύθυνση του byte ή της λέξης που θέλει να διαβαστεί ή να εγγραφεί ή την διεύθυνση του τομέα που θέλει να σβηστεί. 2. Έλεγχος: Αποτελεί τα σήματα εισόδου ελέγχου του chip και είναι τα εξής: reset, chip enable και output enable. 3. Δεδομένα: Αμφίδρομο κανάλι με εύρος 8 ή 16 bit. Ο επεξεργαστής ανταλλάσει δεδομένα και εντολές με το chip της μνήμης μέσω αυτού του καναλιού. 4. Αποκωδικοποιητής Τομέα: Ενεργοποιεί τον αποκωδικοποιητή γραμμής τομέα που δίνεται μέσω της εφαρμοζόμενης διεύθυνσης. Οι υπόλοιποι τομείς απομονώνονται με την εφαρμογή τάσης 0V στις αντίστοιχες γραμμές. Η λειτουργικότητά τους παρουσιάζεται συνοπτικά παρακάτω: 1. Κυκλώματα εισόδου/εξόδου: Σκοπός τους είναι όχι μόνο να διαχειρίζονται τις διαδικασίες εσόδου/εξόδου αλλά και να προστατεύουν τα chip ενάντια σε ηλεκτρικές φορτίσεις που είναι ικανές να τα καταστρέψουν κατά τον χειρισμό τους ή ενώ είναι τοποθετημένα στην τελική πλατφόρμα εφαρμογής. 2. Πίνακας κελιών: Πίνακας, ο οποίος αποτελείται από κελιά μνήμης flash. Διαμερίζεται σε μικρότερα blocks ή sectors που μπορούν να διαγραφούν ανεξάρτητα. 3. Αποκωδικοποιητής γραμμής: Ο πίνακας wordline αποκωδικοποιητής εφαρμόζεται στην πύλη των κελιών που ανήκουν στην επιλεγμένη wordline. Οι τάσεις διαβάσματος κι εγγραφής εξαρτώνται από την φάση λειτουργίας. Στις περισσότερες flash αρχιτεκτονικές, στην φάση σβησίματος, όλες οι wordline του επιλεγμένου τομέα οδηγούνται σε αρνητική τάση. 4. Αποκωδικοποιητής τομέα (sector decode): Καθιστά ενεργό τον αποκωδικοποιητή γραμμής του τομέα που δίνεται μέσω της εφαρμοζόμενης διεύθυνσης. Οι εναπομείναντες τομείς απομονώνονται με την εφαρμογή τάσης 0V στις αντίστοιχες γραμμές. 5. Αποκωδικοποιητής στήλης και διαδρομή προγραμματισμού: Κατά τη διεργασία του διαβάσματος, ενώνει τις στήλες διεύθυνσης (ή bitlines) διαμέσου ενός ενισχυτικού αισθητήρα, ενώ κατά τη διαδικασία της εγγραφής απομονώνει τον ενισχυτικό αισθητήρα από τον πίνακα και μεταφέρει τις τάσεις προγραμματισμού και σβησίματος στον πίνακα μνήμης. 6. Λογικός έλεγχος: Είναι το βασικό εσωτερικό chip του ελεγκτή. Αποκωδικοποιεί τις εντολές που στέλνει ο επεξεργαστής και εκτελεί τους αλγορίθμους εγγραφής και σβησίματος. Εκεί ελέγχονται τα αναλογικά κυκλώματα μέσω των διαδικασιών της ενεργοποίησης και της 27

28 απενεργοποίησης των γεννητριών των εσωτερικών τάσεων προγραμματισμού και σβησίματος καθώς επίσης και μέσω του προσδιορισμού της διάρκειας των παλμών τάσης προγραμματισμού/σβησίματος. 7. Αναλογικό: Είναι το δομοστοιχείο στο οποίο ενυπάρχουν οι απαραίτητες, για το διάβασμα, γράψιμο και σβήσιμο των θέσεων μνήμης, αναλογικές διατάξεις. Με άλλα λόγια, τους πολλαπλασιαστές τάσης ώστε να παραχθούν εσωτερικές υψηλές τάσεις και ρυθμιστικά κυκλώματα. Σύμφωνα με μια ακόμη αρχιτεκτονική ο πίνακας μνήμης αποτελείται από δύο μέρη. Ο διαχωρισμός αυτός επιτρέπει στον επεξεργαστή να εκτελεί δύο λειτουργίες ταυτόχρονα, να διαβάζει και να εγγράφεται ή σβήνεται. Έτσι, ενώ ο χρόνος που απαιτείται να περιμένει ο επεξεργαστής ώστε να περαιωθούν οι διεργασίες εγγραφής/σβησίματος, αυξάνεται η ολοκληρωτική ικανότητα των πληροφοριών της μνήμη. Για επιπλέον αύξηση της διεκπεραιωτικής ικανότητας, καθώς επιβάλλεται από πληθώρα επικοινωνιακών εφαρμογών, διαδικασίες διαβάσματος σελίδας αρκετές φορές υποστηρίζονται από τα flash chip. Ο πίνακας μνήμης διαβάζει κάποια δεδομένα στις αρχιτεκτονικές σελίδες τα οποία αποθηκεύονται σε ένα page buffer. Ακολουθιακές προσβάσεις, στα πλαίσια που επιβάλλει η εκάστοτε διεύθυνση σελίδας, είναι δυνατόν να πραγματοποιηθούν ακόμα πιο σύντομα. Για προσβάσεις μέσα στην σελίδα απαιτούνται 30-40ns, ενώ συγκεκριμένα για την αρχιτεκτονική πρόσβαση στην σελίδα γύρω στα 100ns. H flash εκμεταλλεύεται κάποιους φυσικούς μηχανισμούς με σκοπό την αποθήκευση λογικών επιπέδων στα κελιά μνήμης, Αυτοί είναι αποτέλεσμα του φυσικού ανάλογου της μετατόπισης της τάσης κατωφλίου των κελιών κατά τη διάρκεια του προγραμματισμού/σβησίματος ως προς το εισαγόμενο ποσό της φόρτισης στην floating πύλη. Η συγκεκριμένη θεώρηση είχε ως απότοκο να βελτιωθούν τα πολυεπίπεδα flash μνημών των οποίων γνώρισμα είναι η αποθήκευση 2 bits ανά κελί. Με τη σειρά του αυτό οδήγησε σε διπλασιασμό του πίνακα μνήμης. Αυτές οι πολυεπίπεδες αρχιτεκτονικές δομές είναι κατάλληλες για εφαρμογές μαζικής αποθήκευσης καθώς είναι γνώρισμά τους η μεγάλη πυκνότητα, μία χαμηλή προς μέση ταχύτητα εκτέλεσης και τέλος το χαμηλό κόστος. 28

29 8 Μνήμες NAND FLASH 8.1 Γενική επισκόπηση μιας NAND-EEPROM μνήμης Άρρηκτα συνδεδεμένο με τα επίκαιρα ηλεκτρονικά συστήματα είναι η μνήμη, η οποία δύναται να φυλάσσει τις πληροφορίες της ακόμη κι αν σταματήσει η λειτουργία της τροφοδοσίας. Αν και οι σχεδιαστές συστημάτων έχουν μεγάλο όφελος όταν διαθέτουν μια nonvolatile EEPROM μνήμη, η οποία μπορεί να σβηστεί και να προγραμματιστεί ηλεκτρονικά, το εύρος της περιοχής των κελιών παράλληλα με το μεγάλο κόστος ανά bit που συνδέεται με τη δυναμική μνήμη τυχαίας προσπέλασης (DRAM) δυσχεραίνει τη διάδοση καθώς και τη χρηστικότητά της. Το 1987 εφευρέθηκε από τον Fujio Masuoka το NAND-δομής EEPROM κελί. Ένα κελί που αποτελείται από 8 transistors μνήμης στην σειρά με σκοπό τη δημιουργία ενός EEPROM chip μνήμης και αποτέλεσε μία οικονομικά συμφέρουσα επιλογή. Αργότερα, μία άλλη έρευνα είχε ως αποτέλεσμα να παραχθεί NAND EEPROM συσκευή με μεγαλύτερη πυκνότητα η οποία θα οφειλόταν στη σταδιακή χρήση ακριβέστερων διεργασιών διαστασιοποίησης. Το γεγονός ότι η συγκεκριμένη τεχνολογία χρησιμοποιεί το διαθέσιμο χώρο καλύτερα οφείλεται στο ότι το κελί NAND-δομής χωρίζει πόρους με άλλα κελιά. Συγκρίνοντας κανείς τα κελιά NANDδομής και NOR EEPROM-δομής καταλήγει ότι επειδή η περιοχή κελιού στην πρώτη περίπτωση περιλαμβάνει την επαφή, την επιλεγμένη πύλη και τις περιοχές γείωσης και συμπεραίνει ότι αυτή είναι η αιτία που όσες περιοχές βρίσκονται σε ένα μόνο bit ότι το ένα μέρος τους είναι μια περιοχή transistor μνήμης 1/8 περιοχής επιλεγμένου transistor και 1/30 της συνολικής περιοχής σύνδεσης. Ακόμη η NAND EEPROM χρησιμοποιεί τον ομοιόμορφο μηχανισμό Fowler-Nordheim (FN) tunneling μεταξύ υποστρώματος floating πύλης με σκοπό την εγγραφή και τη διαγραφή. Η έγχυση ηλεκτρονίων δεν είναι απαραίτητη μιας και η παραγωγή ρεύματος από ζώνη σε ζώνη δεν είναι υπαρκτή και δεν παρατηρείται γενική αύξηση της ισχύος τροφοδοσίας για τον προγραμματισμό ακόμα και αν αυξάνεται ο αριθμός των κελιών μνήμης που πρόκειται να προγραμματιστούν. Έτσι, η NAND EEPROM μνήμη έχει τη δυνατότητα να προγραμματιστεί με εύκολο τρόπο σε μια μεγάλη σελίδα και κατ επέκταση ο απαιτούμενος χρόνος για προγραμματισμού ανά byte είναι αρκετά μικρός (τυπικά 200ms). Για παράδειγμα, μια τέτοια μνήμη χωρητικότητας 56 nm 8GB χρειάζεται σελίδα προγραμματισμού 8Kbyte για να επιτύχει 10MB/s διαμεταγωγή προγράμματος με πολυεπίπεδα κελιά (MLC) όπου στο καθένα από αυτά αποθηκεύονται 2bits. Το αρνητικό βρίσκεται στο ότι η ταχύτητα τυχαίας προσπέλασης δεν είναι μεγάλη (ίσως και πολλά δέκατα του microsecond (25μs)) διότι περιορίζεται το ρεύμα διαβάσματος κελιού σε 1 ή 2 μa από την αντίσταση των κελιών μνήμης και των επιλεγμένων transistor που είναι συνδεδεμένα σε σειρά τυπικά. Για να αποφευχθεί κάτι τέτοιο γρήγορα page buffers ενσωματώνονται. Λόγου χάρη, ο σειριακός κύκλος χρόνου των page buffer μειώνεται από 50 σε 30ns χάρη σε μία τέτοια ενσωμάτωση. Οι αποκωδικοποιητές γραμμής χωρίζονται συμμετρικά σε τομείς δεξιά και αριστερά με στόχο την αποδοχή wordline μήκους 0,76μ m και οι page buffers σε άνω και κάτω καθενός από τους οποίους η κάθε μονάδα αισθητήρα και μανδάλωσης συνδέεται σε μια bitline. Οι ζυγές bitline είναι συνδέονται στον επάνω page buffer, ενώ οι μονές στον κάτω. Αυτός ο τρόπος τμηματοποίησης των page buffers τελικά αυξάνει την ταχύτητα της σειριακής διεργασίας διαβάσματος. Οι μέθοδοι προγραμματισμού και διαβάσματος εφαρμόζονται σε μια μονάδα σελίδας bytes κάθε μία από τις οποίες αντιστοιχεί σε μια γραμμή από κελιά. Η μονάδα σβησίματος και κάθε block αντιστοιχεί σε 16 σελίδες ή bytes. 8.2 Διαχείριση NAND κελιών Στην ενότητα αυτή παρουσιάζονται τις διεργασίες σβησίματος, προγραμματισμού και διαβάσματος ενός βασικού NAND κελιού. 29

30 8.2.1 Δομή κελιού Εάν βλέπαμε ένα ισοδύναμο κυκλωματικό διάγραμμα και την κάτοψη ενός NAND κελιού θα διακρίναμε πως 16 κελιά είναι σειριακά συνδεδεμένα μεταξύ δυο επιλογών transistor, ενώ θα βλέπαμε πως το μέγεθος του κελιού NAND-τύπου είναι μικρότερο από αυτό του NOR-τύπου και είναι κατάλληλη για την ελαχιστοποίηση του μεγέθους των κελιών. Ακόμη λόγω του ότι τα κελιά προγραμματίζονται και διαγράφονται μέσω ρεύματος FN σηράγγωσης είναι κατάλληλα και για την λειτουργία μέσω μιας μοναδικής εφαρμοζόμενης τάσης. Συνεπώς, καθώς η NAND EEPROM μνήμη υπερτερεί μιας απλής λογικής σύνδεσης των κελιών μνήμης ικανοποιεί διαφορετικές ανάγκες από την NOR EEPROM σεβόμενη τα χαρακτηριστικά της συσκευής, την κατανάλωση ισχύος και το κόστος Διαδικασία σβησίματος Οι φάσεις σβησίματος εκτελούνται σε μια μονάδα block των 8KB.Συγκεκριμένα, στην πύλη εφαρμόζεται τάση ελέγχου σχεδόν 0V. Αυτό συνεπάγεται την έξοδο των ηλεκτρονίων από την floating πύλη του επιλεγμένου block και την είσοδό τους στην Ρ-ζώνη, για να τεθεί από τα θετικά προς τα αριστερά η τάση κατωφλίου της πύλης του transistor (φαινόμενο FN σηράγγωσης). Το κελί μνήμης μπορεί ανεξάρτητα να τεθεί σε μια τάση της τάξεως των -3V με ένα μόνο παλμό σβησίματος αφού στην τεχνολογία NAND EEPROM υπάρχει ανησυχία για over case. Προκειμένου να υλοποιηθεί αυτή η διεργασία σβησίματος πάνω στο chip, η κάθε Ρ-ζώνη του υλικού απομονώνει τα περιφερειακά κυκλώματα τύπου Ρ που συμβάλλουν στη διεργασία σβησίματος γειώνονται. Για να αποτραπεί το σβήσιμο ενός block και επομένως το φαινόμενο FN σηράγγωσης οι πύλες ελέγχου διπλασιάζουν τη χωρητικότητά των πυλών ελέγχου και της Ρ-ζώνης για να ενισχυθούν στα 20V. Τέλος για να επαληθευτεί η διαδικασία σβησίματος όλες οι wordlines του επιλεγμένου block γειώνονται και έτσι επιτρέπουν να επαληθευθούν παράλληλα όλα τα 16x4096 κελιά Λειτουργία εγγραφής Η διαδικασία του προγραμματισμού μπορεί να διαιρεθεί σε 3 επιμέρους διαδικασίες. Στην πρώτη φορτώνονται τα δεδομένα, δηλαδή μετακινούνται σειριακά από τους Ι/Ο buffers στους καταχωρητές δεδομένων. Στη δεύτερη διεργασία περιλαμβάνεται ο βασικός προγραμματισμός. Όλα τα 528x8 κελιά που είναι συνδεδεμένα με την ίδια wordline προγραμματίζονται παράλληλα και τα κανάλια της NANDδομής κελιών φορτίζονται στα 8V για προγραμματισμό 1 ή στα 0V για προγραμματισμό 0. Ο προγραμματισμός ολοκληρώνεται όταν στην επιλεγμένη πύλη ελέγχου εφαρμόζεται τάση 20V και στις μη επιλεγμένες 10V. Στον προγραμματισμό 1, το κελί μνήμης παραμένει στην ίδια κατάσταση που βρισκόταν πριν τον προγραμματισμό. Αυτό συμβαίνει επειδή η τάση πάνω από το φράγμα οξυγόνου που βρίσκεται κάτω της floating πύλης δεν είναι αρκετά υψηλή ώστε να δημιουργήσει ρεύμα σήραγγας. Στον προγραμματισμό 0 ηλεκτρόνια εκχύνονται στην floating πύλη από το ανάστροφο επίπεδο μέσω FN σηράγγωσης και η τάση κατωφλίου των κελιών μνήμης γίνεται θετική αφού πριν κατά το σβήσιμο είχε γειωθεί. Σειρά έχει μια διαδικασία επαλήθευσης διαβάσματος. Σε κάθε NAND string τα κελιά μνήμης είναι συνδεδεμένα σε σειρά ώστε η τάση κατωφλίου κάθε προγραμματιζόμενου κελιού να είναι μεγαλύτερη της τάσης της επιλεγμένης πύλης ελέγχου και μικρότερη της τάσης του διαβάσματος. Σε περίπτωση που ξεπεράσει την τάση διαβάσματος τα υπόλοιπα κελιά του ίδιου string καθίσταται αδύνατο να διαβαστούν. Για να αποφευχθεί περίπτωση υπερπρογραμματισμού και να εξασφαλιστεί μια σταθερή κατανομή τάσης κατωφλίου για υψηλής ταχύτητας διάβασμα σελίδας είναι απαραίτητη η επαλήθευση προγραμματισμού. 30

31 8.2.4 Διάταξη προγραμματισμού Σε έναν πίνακα με NAND τρανζίστορ, όταν θέλουμε να προγραμματίσουμε ένα συγκεκριμένο κελί, τα υπόλοιπα μπορεί να δέχονται παρεμβολές στις οποίες μεταξύ του καναλιού του NAND κελιού και της floating πύλης μπορεί να τεθούν μερικά Volts. Αυτές οι παρεμβολές μπορούν να είναι δύο τύπων. Για να ελαχιστοποιηθούν και οι δύο τύποι παρεμβολών πρέπει η ενδιάμεση τάση που εφαρμόζεται στις πύλες των μη επιλεγμένων κελιών να είναι σε μια κατάλληλη τιμή. Αν αυτή η τιμή αυξηθεί στα 20V τότε το κελί θα προγραμματιστεί ενώ αν τεθεί σε χαμηλή τιμή, υποθέτοντας ότι το προγραμματιζόμενο κελί έχει τάση κατωφλιού για το λογικό μηδέν και η τάση στην bitline είναι 7V, τότε η τάση του κελιού πρέπει να έχει μια τιμή μεταξύ των 7V και της διαφοράς της ενδιάμεσης τάσης και τις τάσης κατωφλιού. Ένα αξιοσημείωτο περιθώριο μπορεί να εξασφαλιστεί όταν η ενδιάμεση τάση τίθεται μεταξύ 6-11V Διαδικασία διαβάσματος Η φάση διαβάσματος δε διαφέρει από αυτή της ROM μνήμης NAND-τύπου. Αρχικά, ασκείται μηδενική τάση στην πύλη των επιλεγμένων κελιών μνήμης ενώ στα υπόλοιπα κελιά μια τάση διαβάσματος γύρω στα 4,5V, που ξεπερνά την τάση συλλέκτη 3.3V. Έτσι, όταν γράφεται 1, το transistor μνήμης βρίσκεται σε depletion mode και ρέει ρεύμα. Διαφορετικά, όταν γράφεται 0 δεν έχω ροή ρεύματος καθώς το transistor μνήμης βρίσκεται στην φάση απορρόφησης enhancement mode. Η διάκριση μεταξύ 0 και 1 γίνεται από έναν ενισχυτικό αισθητήρα, που συνδέεται στην bitline και εξαρτάται από το αν η αρνητική φόρτιση έχει αποθηκευτεί στην floating πύλη. Αν ναι, τότε η τάση κατωφλίου αυξάνει για να βρίσκεται το transistor μνήμης στην enhancement mode. 8.3 NAND αρχιτεκτονική και λειτουργία Κλιμακωτός αποκωδικοποιητής γραμμής Τα φωτολιθογραφικά όρια του υλικού των επαναλαμβανόμενων πυλών ελέγχου καθορίζουν το μέγεθος τάσης της wordline σε ένα NAND-τύπου κελί. Για το λόγο αυτό, το στενό φράγμα της πύλης ελέγχου είναι δύσκολο το σχέδιο εξόδου (layout) του αποκωδικοποιητή γραμμής. Οι αποκωδικοποιητές χωρίζονται ασύμμετρα σε κύριους και δευτερεύοντες. Υπάρχει περίπτωση, ο κύριος και ο δευτερεύον αποκωδικοποιητής γραμμής καθώς και το NAND-string να έχουν το ίδιο ύψος τάση. Ενώ όταν μιλάμε για 64 Mbit NAND EEPROM οι αποκωδικοποιητές γραμμής είναι εναλλασσόμενοι και κάθε ένας έχει ύψος τάσης 2 NAND-string. Ο συνδυασμός BSEL M και των ζυγών κοινών πυλών (S0,S2,S4, S14) εντοπίζουν τις ζυγές wordlines μιας μονάδας NAND-STRING. Ωστόσο, είναι ο συνδυασμός BSEL M και των μονών κοινών πυλών (S1,S3,S5, S15) που εντοπίζουν τις μονές worldliness. Ο δευτερεύον αποκωδικοποιητής αποτελείται από το τοπικό κύκλωμα φόρτισης ενώ τον κύριο αποτελούν ένα τοπικό κύκλωμα φόρτισης και ένα κύκλωμα αποκωδικοποίησης με σκοπό την παροχή φόρτισης τέτοιας που να άγουν transistor. Ένα string των επιλεγμένων γραμμών (SSL) μεταφέρουν την αποκωδικοποιημένη πληροφορία του κύριου αποκωδικοποιητή γραμμής στο δευτερεύοντα αποκωδικοποιητή και το SSL σήμα ενεργοποιείται από το σήμα BSELS με αποτέλεσμα το σήμα να καθυστερήσει και η διαφορά χρόνου μετάβασης ανάμεσα στις ζυγές και τις μονές wordline να είναι 600ns. Στην αρχιτεκτονική εναλλασσομένων αποκωδικοποιητών, αυτή η διαφορά του χρόνου μετάβασης αφαιρείται μέσω του συνδυασμού του BSEL και των γραμμών κοινών πυλών (S0-S15). Αυτή λοιπόν η αρχιτεκτονική βελτιώνει την καθυστέρηση στις wordlines κατά 30% σε αντιδιαστολή με την παραδοσιακή αρχιτεκτονική αποκωδικοποιητών. 31

32 8.3.2 Σχέδιο αυτόματης αναστολής της διαδικασίας σβησίματος Η φάση του σβησίματος γίνεται σε επίπεδο μπλοκ. Στην πύλη ελέγχου (CG) εφαρμόζεται μηδενική τάξη και στο στρώμα P-τύπου τάση περίπου 20V, με αποτέλεσμα τη μεταφορά ηλεκτρονίων από την floating πύλη προς το επιλεγμένο block του Ρ-στρώματος (φαινόμενο FN σηράγγωσης). Oι πύλες ελέγχου (CGs) των μη επιλεγμένων block τίθενται στην ίδια τάση με την απαιτούμενη για την προσωρινή διακοπή της διεργασίας του σβησίματος, αφού ο NAND flash πίνακας διαθέτει πολλά blocks σε ένα Ρ-στρώμα. Μια πύλη ελέγχου ανάλογα με το αν είναι επιλεγμένη ή όχι κατά τη φάση του σβησίματος διαθέτει δύο διαφορετικά επίπεδα τάσης. Έτσι και οι αποκωδικοποιητές block χωρίζονται σε δύο μέρη, για να τροφοδοτούν την υψηλή τάση αναστολής του σβησίματος. Παρόλα ταύτα, αυτός ο χωρισμός μειονεκτεί ως προς τον χώρο σχεδίασης και μία επιπλέον αντλία φόρτισης μεγάλου μεγέθους απαιτείται για την τροφοδότηση των μη επιλεγμένων CGs με την τάση αναστολής του σβησίματος. Τα προαναφερθέντα μειονεκτήματα μπορούν να ξεπεραστούν εάν αντί για την άμεση εφαρμογή της τάσης αναστολής σβησίματος στις πύλες ελέγχου των μη επιλεγμένων NAND blocks εφαρμοστεί ένα σχέδιο αυτόματης αναστολής της διαδικασίας σβησίματος που θα χρησιμοποιήσει την χωρητική σύζευξη των κελιών μεταξύ των CGs και του P-στρώματος. Πριν ακόμα εφαρμοσθεί η τάση σβησίματος στο P-στρώμα, όλες οι CGs των μη επιλεγμένων block δεν επιτρέπουν τη δίοδο στο επιλεγμένο σήμα (0 V) προς τον αποκωδικοποιητή καθώς οι CGs των επιλεγμένων blocks γίνονται 0V. Στη συνέχεια, προκειμένου με αυτόματο τρόπο τα μη επιλεγμένα blocks να αναστέλλονται από το σβήσιμο, το δυναμικό του Ρ-στρώματος ανεβαίνει στην τάση σβησίματος και όλες οι CGs των μη επιλεγμένων blocks συνδέονται. Ως αποτέλεσμα, η σχεδίαση διευκολύνεται, η περιοχή γίνεται συμπαγής και καθώς δεν υπάρχει επιπρόσθετη αντλία φόρτισης η κατανάλωση ισχύος μειώνεται Σχέδιο αυτόματης αναστολής της διαδικασίας προγραμματισμού Με την αλλαγή κάποιων κελιών που βρίσκονται στην κατάσταση σβησίματος, σε κατάσταση προγραμματισμού ή ακόμη με τη διατήρηση των υπολοίπων σε κατάσταση σβησίματος, τα 528- byte κελιά που συνδέονται στην ίδια wordline μπορούν να προγραμματιστούν ταυτόχρονα. Όσο αφορά τα κελιά που αναστέλλουν τον προγραμματισμό είναι απαραίτητα να τεθούν σε μια τάση αναστολής προγραμματισμού ικανή να προβλέψει το φαινόμενο FN σηράγγωσης, ενώ τα κανάλια των κελιών NAND αρχιτεκτονικής να τεθούν σε μηδενική τάση. Παλαιότερα σε μια NAND flash μνήμη, μια υψηλή τάση (8V) εφαρμοζόταν στο κανάλι NANDstring άμεσα μέσω των bitlines για να ανασταλεί ο προγραμματισμός. Η διαδικασία αυτή μειονεκτεί ως προς κάποια σημεία: 1. Είναι απαραίτητη μία αντλία φόρτισης μεγάλης τάσης για να τροφοδοτεί την υψηλή τάση των bitlines, η οποία καταλαμβάνει μεγάλο μέρος του chip. 2. Η bitline, προκειμένου να τεθεί σε τάση αναστολής προγραμματισμού, απαιτεί περισσότερο χρόνο αλλά και ρεύμα 3. Για τον χειρισμό μεγάλων τάσεων πρέπει να αυξηθεί το μέγεθος του transistor και το μέγεθος του buffer σελίδας λόγω της μεγάλης τάσης διαδρομής. 4. Παρόλα ταύτα η απαιτούμενη τάση αναστολής του προγραμματισμού ( 8VV) παρέχεται από το σχέδιο αυτόματης ακόμα και στην περίπτωση που όλες οι bitlines τεθούν σε Vcc. 5. Οι συνθήκες για την τροφοδότηση της τάσης αναστολής προγραμματισμού στο κανάλι των κελιών Εν αντιθέσει με την τάση της bitline για τον προγραμματισμό των κελιών που γειώνεται όταν τα SSL transistor είναι ανοιχτά και τα GSL transistor κλειστά, η τάση της bitline των κελιών 32

33 αναστολής προγραμματισμού εφαρμόζεται στην πύλη ελέγχου των επιλεγμένων κελιών. Ακόμη, προκαλείται FN-tunneling των ηλεκτρονίων στα κελιά προγραμματισμού λόγω της διαφοράς δυναμικού που είναι μεγάλη ανάμεσα στην floating πύλη και το κανάλι. Στα κελιά που ευθύνονται για την αναστολή προγραμματισμού η Vcc bitline στην αρχή φορτίζει το αντίστοιχο κανάλι. Τέλος, οι χωρητικότητες σειράς, διαμέσου πύλης ελέγχου floating gate καναλιού και μέσου (bulk) συνδέονται και το δυναμικό του καναλιού, ωθούνται αυτομάτως καθώς οι wordlines της μονάδας NAND-string εγείρονται. Η ωθούμενη τάση καναλιού υπολογίζεται ως εξής: Για να φτάσουν οι τάσεις που εφαρμόζονται στα κανάλια των κελιών αναστολής προγραμματισμού και περάσματος τα 10V η τάση floating καναλιού εγείρεται περίπου στα 80% της τάσης που ασκείται στην πύλη ελέγχου. Στην περίπτωση που η ένωση διαρροής ρεύματος δεν ξεπερνά το 1nA αυτή η αυτόματη τάση καναλιού αρκεί ώστε να προστατευτούν από το φαινόμενο σηράγγωσης FN τα κελιά αναστολής. Κατά τη λειτουργία του προγραμματισμού σελίδας οι bitlines που έχουν προγραμματιστεί να είναι γειωμένες φορτίζονται σε τάση καναλιού, ενώ η bitline συγκράτησης του 1 γειώνεται επειδή τα data φορτώνονται στους buffers σελίδας. Τότε, οι BL0 αντιπροσωπεύουν bitline προγραμματισμένη σε 0 και η BL1 σε 1. Όταν η wordline WL1 στο επιλεγμένο block έχει προγραμματιστεί η τάση προγραμματισμού V καθίσταται από την κοινή πύλη γραμμής S1 καθώς η τάση περάσματος V καθίσταται από τις υπόλοιπες κοινής πύλης γραμμές (S0,S2,S3 S15). Ο επιλεγμένος κόμβος block BSEL ωθείται πάνω από την τάση προγραμματισμού συν την τάση κατωφλιού από το κύκλωμα τοπικής φόρτισης που έχει διανεμηθεί σε κάθε block αποκωδικοποιητή. Σε αυτό το σημείο, με σκοπό η τάση προγραμματισμού να τίθεται ομαλά στην WL1 και οι πύλες μεταφοράς να ανοίγουν στην γραμμική περιοχή η τάση κατωφλιού αντιστοιχεί στην τάση κατωφλίου για τις πύλες μεταφοράς wordline. Οι υπόλοιπες wordline στα μηεπιλεγμένα block είναι low floating, ωστόσο το επιλεγμένο string των γραμμών SSL και GSL στα μη-επιλεγμένα blocks γειώνεται λόγω των γειώσεων transistor Tr1 και Tr Διαδικασία διαβάσματος Στη φάση του διαβάσματος τόσο η wordline που έχουμε επιλέξει, όσο και οι wordlines περάσματος στο block που έχει επιλεγεί γειώνονται και τίθενται στην τάση ανάγνωσης, η οποία μέσω των γραμμών κοινής πύλης είναι λίγο πιο υψηλή από την τάση του συλλέκτη των 3.3V. Ακόμη, η τάση ανάγνωσης εφαρμόζεται στην 64-Mbit NAND EEPROM στα 4V. Ενώ στα blocks που δεν έχουν επιλεγεί οι υπόλοιπες wordlines είναι low floating, το επιλεγμένο string των γραμμών SSL και GSL είναι 0V δια μέσω των γειωμένων transistor Tr1 και Tr2 και αυτός είναι ο λόγος που στο μη-επιλεγμένο NAND string το ρεύμα που ρέει είναι ανύπαρκτο. 33

34 9 Πολυεπίπεδες μνήμες Οι flash μνήμες τα τελευταία χρόνια έχουν εξελιχθεί ιδιαίτερα και έχουν εισαχθεί σε πάρα πολλές ηλεκτρονικές συσκευές. Απόδειξη αυτής της ανάπτυξης είναι η επιχειρηματικότητα των flash μνημών ότι το 2002 είχε φτάσει τα δισεκατομμύρια δολάρια, όταν στα τέλη του 80 ήταν περίπου στα 50 εκατομμύρια. Γι αυτό το λόγο οι μηχανικοί ήθελαν να βελτιώσουν την απόδοσή τους μειώνοντας παράλληλα το κόστος τους. Αυτό επετεύχθη με την ανακάλυψη της τεχνολογίας πολυεπίπεδου κελιού. Αρχικά, οι προσπάθειες των μηχανικών είχαν εστιάσει στη μείωση του κόστους μέσω επιθετικής κλιμάκωσης. Ωστόσο στις αρχές της δεκαετίας του 90 άρχισε ένα ερευνητικό πρόγραμμα για την ανάπτυξη μεθόδων με τις οποίες θα αποθηκεύονται αξιόπιστα περισσότερα του ενός bit δεδομένων σε ένα μόνο κελί. Με την αποθήκευση 2 bits ανά κελί μνήμης, ο χώρος που καταλαμβάνει η μνήμη μειώνεται στο μισό ή στον ίδιο χώρο μνήμη έχουμε διπλάσια αποθηκευτική ικανότητα. Στο παρόν κεφάλαιο θα παρουσιαστεί η ιδέα της αποθήκευσης 2 bit δεδομένων σε κάθε κελί από την αρχική σύλληψη ως την τελική υλοποίηση καθώς και οι προκλήσεις που προέκυψαν. Η γενική ιδέα του κελιού βασίζεται στην αποθήκευση φορτίου σε μια μονωμένη πύλη. Το ποσό αυτού του φορτίου καθορίζει τα χαρακτηριστικά του τρανζίστορ των flash κελιών. Οι πολυεπίπεδες μνήμες προϋποθέτουν την ύπαρξη 3 χαρακτηριστικών. Πρώτα απ όλα, πρέπει να υπάρχει αυστηρός έλεγχος της φόρτισης που αποθηκεύεται στην floating πύλη για να μπορούν να υπάρξουν πολλαπλά επίπεδα φόρτισης σε μια διαδικασία που ονομάζεται τοποθέτηση. Δεύτερον, πρέπει να υπάρχει αυστηρή μέτρηση στα χαρακτηριστικά του τρανζίστορ που ρυθμίζουν τα επίπεδα φόρτισης μέσω μιας διαδικασίας που λέγεται εντοπισμός. Τρίτον πρέπει να υπάρχει ακριβής αποθήκευση του φορτίου έτσι ώστε το επίπεδο φόρτισης να μένει αναλλοίωτο με την πάροδο του χρόνου μέσω μιας διαδικασίας που ονομάζεται συγκράτηση. 9.1 Επίτευξη μνήμης χαμηλού κόστους Η μέχρι τώρα πορεία της αγοράς των μνημών έχει αποδείξει ότι καθώς η τιμή τους μειώνεται και η πυκνότητα τους αυξάνεται, οι εφαρμογές τους και η ζήτησή τους θα αυξάνεται. Το κόστος των μνημών πυριτίου εξαρτάται σε μεγάλο βαθμό από το ποσοστό του πυριτίου που χρησιμοποιείται για την αποθήκευση ενός bit πληροφορίας. Οι flash μνήμες πετυχαίνουν υψηλότερη πυκνότητα με μικρότερο κόστος μέσω παραδοσιακών τεχνικών κλιμάκωσης πυριτίου, καθιστώντας τες ικανές να αποθηκεύουν περισσότερων του ενός bit ανά κελί, μέσω της καλύτερης εκμετάλλευσης του μέσου και της μείωσης της περιοχής του πυριτίου, που οδηγεί και σε μείωση κόστους. Η ραγδαία ανάπτυξη των μνημών έχει ως αποτέλεσμα τη δημιουργία νέων εφαρμογών οι οποίες με την εμφάνισή τους μειώνουν ακόμα περισσότερο την τιμή τους και ωθούν την περαιτέρω ανάπτυξή τους. 9.2 Η ιδέα αποθήκευσης πολλών bits Όπως έχει ήδη περιγραφεί, μια flash μνήμη αποτελείται από τρανζίστορ που περιέχουν απομονωμένες floating πύλες, ικανές να αποθηκεύσουν φορτίο. Κατά τη διαδικασία εγγραφής στη μνήμη, στην περιοχή του καναλιού του τρανζίστορ παράγονται ηλεκτρόνια, ένα μέρος των οποίων έχει αρκετή ενέργεια ώστε να ξεπεράσει το φράγμα των 3.2 ev του στρώματος πυριτίου και παγιδεύονται στην floating πύλη. Στις μνήμες που αποθηκεύουν ένα bit ανά κελί, αν η floating πύλη έχει μικρή φόρτιση τότε αποθηκεύει το λογικό ένα, αλλιώς αν έχει μεγάλη αποθηκεύει το λογικό μηδέν. Για να διαβαστεί η μνήμη, πρέπει να εντοπιστεί η απουσία ή η παρουσία φόρτισης στην floating πύλη και να παρατηρηθεί η αλλαγή συμπεριφοράς του τρανζίστορ με βάση την αποθηκευμένη φόρτιση. Η τελευταία εκδηλώνεται μέσω της μετακίνησης της τάσης κατωφλιού στο τρανζίστορ. Ύστερα από το σβήσιμο ή την εγγραφή, η τάση κατωφλιού κάθε τρανζίστορ μετράται 34

35 και παρουσιάζεται ένα ιστόγραμμα αποτελεσμάτων. Τα σβησμένα κελιά έχουν τάση κατωφλιού μικρότερη των 3.1V ενώ τα εγγεγραμμένα κελιά έχουν τάση κατωφλιού μεγαλύτερη των 5V. Το κλειδί για την αποθήκευση πολλών bit σε ένα μόνο κελί είναι η αποθηκευτική ικανότητα φορτίου των κελιών. Το κελί μιας μνήμης είναι συσκευή αναλογικής αποθήκευσης με την έννοια ότι αποθηκεύει ηλεκτρικό φορτίο και όχι bits. Μέσα από μια ελεγχόμενη διαδικασία εγγραφής της μνήμης μπορεί να εγχυθεί συγκεκριμένη ποσότητα ηλεκτρονίων, οδηγώντας τη μνήμη σε μία από τις τέσσερεις τάξεις φόρτισης. Με αυτή τη λογική μπορούμε να πούμε ότι στο κελί μπορούμε να αποθηκεύσουμε 2 bit πληροφορίας. Υψηλότερες αποθηκευτικές πυκνότητες μπορούν να επιτευχθούν αυξάνοντας την ακρίβεια έγχυσης ηλεκτρονίων στην πύλη. Έτσι για να αποθηκεύσουμε 3 bit πληροφορίας χρειαζόμαστε 8 διακριτές τάξεις φόρτισης, για να αποθηκεύσουμε 4 bit πληροφορίας χρειαζόμαστε 16 και πάει λέγοντας. Για να επιτευχθεί όμως αυτή η ακρίβεια στη φόρτιση της πύλης και αντίστοιχα στην μέτρηση αυτής της φόρτισης για να διαβαστεί η μνήμη, απαιτούνται πολλές καινοτομίες και εκτενής μελέτη της φυσικής του κελιού, του σχεδιασμού και του ελέγχου της μνήμης. 9.3 Παρουσίαση των πολυεπίπεδων μνημών Οι σύγχρονες πολυεπίπεδες μνήμες παρόλο που έχουν υιοθετήσει τόσες καινοτομίες και βελτιώσεις, λειτουργικά δεν διαφέρουν από τις αντίστοιχες μνήμες αποθήκευσης 1 bit ανά κελί. Τα κύρια κοινά στοιχεία είναι ο τυχαίος χρόνος πρόσβασης σε επίπεδο byte ότι είναι μικρότερος από 90ns, η τάση συλλέκτη είναι 1.8V και ιδιαίτερες λειτουργίες όπως η ταυτόχρονη εγγραφή και ανάγνωση διαφορετικών κελιών Λειτουργία πολυεπίπεδου κελιού Συμπεραίνοντας από τα προηγούμενα κεφάλαια που έχει παρατεθεί ο τρόπος λειτουργίας μιας Flash μνήμης 1 bit/κελί (1B/C) καταλήγουμε ότι μέσω της τεχνολογίας MLC επιτυγχάνεται η φόρτιση στην floating πύλη και η διάκριση της σε επίπεδα, κάθε ένα από τα οποία διαθέτει λιγότερα από ηλεκτρόνια ούτως ώστε να είναι εφικτή η απόσπαση των ενδιάμεσων καταστάσεων, δηλαδή των ενδιάμεσων επιπέδων φόρτισης από το κελί. Αυτές εκπροσωπούν τέσσερις διακριτές καταστάσεις 11, 10, 01 και 00 δηλαδή 2B/C. Τοποθετώντας έναν μηχανισμό εντοπισμού και συγκράτησης της φόρτισης μπορούν να επιτευχθούν οι ενδιάμεσες αυτές καταστάσεις. Ακριβής έγχυση φόρτισης. Απαραίτητο είναι να βρεθεί μία διαδικασία ακριβούς προγραμματισμού σε ένα κελί MLC τεχνολογίας. Για ένα προϊόν 1 bit/κελί αρκεί με τον προγραμματισμό να το αλλάζει από 1 σε 0. Σε αντίθεση με την τεχνολογία MLC που ο υπερπρογραμματισμός ενός κελιού σε υψηλότερη τάση μπορεί να έχει ως αποτέλεσμα μία ενδιάμεση κατάσταση να οδηγηθεί στην κατάσταση του επόμενου επιπέδου, για ένα προϊόν 1 bit/κελί δεν δημιουργεί πρόβλημα. Όσο αφορά την τεχνολογία MLC, αν λόγου χάρη επιθυμούμε να φορτιστεί σε 10, αλλά αν υπερφορτιστεί τότε ενδέχεται να οδηγηθεί στην κατάσταση 01, και να δώσει εσφαλμένα δεδομένα. Καταληκτικά, μια ακριβής μέθοδος ελέγχου του ποσού φόρτισης που μεταφέρεται στην floating πύλη είναι απαραίτητη. Αυτός ο έλεγχος επιτυγχάνεται ως εξής: Ένα flash κελί αποτελείται α) από τη γραμμική περιοχή όπου η λογαριθμική μεταβολή της τάσης προγραμματισμού σε συνάρτηση με το χρόνο είναι σχεδόν γραμμική και η τάση της πύλης ελέγχου (control gate) δεν επηρεάζει ιδιαίτερα τον ρυθμό προγραμματισμού, και β) την περιοχή κόρου που η μεταβολή της τάσης προγραμματισμού σε συνάρτηση με το χρόνο είναι μικρή αναλογικά με την χαρακτηριστική I-V ενός transistor (MOS) και από αυτή εξαρτάται πολύ ο ρυθμός προγραμματισμού. Τέλος, ο προγραμματισμός του Flash κελιού καθυστερεί περισσότερο όσο πιο ισχυρή είναι η φόρτιση που εφαρμόζεται στην floating πύλη. 35

36 Στην γραμμική περιοχή, η floating πύλη έλκει ηλεκτρόνια που έχουν κάποια ενέργεια και είναι κοντά στον εκπομπό. Στη φάση του προγραμματισμού μέχρι η floating πύλη να έχει το ίδιο δυναμικό με την τάση του εκπομπού φορτίζεται αρνητικά. Τα ηλεκτρόνια απωθούνται εξαιτίας αυτής της φόρτισης και η πραγματοποίηση του προγραμματισμού καθυστερεί διότι τα ηλεκτρόνια που βρίσκονται κοντά στον εκπομπό χτίζουν σήραγγα μέσω του φράγματος SiO 2 ή ηλεκτρόνια μικρότερου ενεργειακού περιεχομένου υπερπηδούν το φράγμα. Όλα αυτά είναι εξαρτώμενα από το όριο στην ένταση του κατακόρυφου πεδίου. Πολλές είναι οι μέθοδοι ελέγχου της φόρτισης που μεταφέρεται στην floating πύλη και πρέπει να πληρούν τα εξής κριτήρια: Αρχικά να είναι αξιόπιστες, δηλαδή να μην αλλάζει η κατάστασή τους εξαιτίας του υπερπρογραμματισμού, ο έλεγχός τους να είναι εύκολος (με άλλα λόγια να επιδέχονται βελτίωσης και προσθήκες) και να είναι γρήγορες για να διασφαλίζεται η συμβατότητα με τα αρχικά χαρακτηριστικά των προϊόντων Flash μνήμης. Όταν όμως ο προγραμματισμός στην γραμμική περιοχή είναι γρήγορος δεν ελέγχεται εύκολα. Ο χρόνος, και η κατανομή της ενέργειας των ηλεκτρονίων, (ο εκπομπός, το πλάτος καναλιού και άλλοι παράγοντες) επηρεάζουν την τάση προγραμματισμού. Μικρές αλλαγές προκαλούν μεγαλύτερες στην τάση κατωφλιού του κελιού και ως αποτέλεσμα οδηγείται διαφορετική κατάσταση. Άρα, ενδέχεται ο προγραμματισμός να μην είναι αξιόπιστος. Αυτές οι μεταβολές δύσκολα μπορούν να αποφευχθούν. Σε αντίθεση, στην περιοχή κόρου ο έλεγχος είναι πιο εύκολος αφού η τάση προγραμματισμού του κελιού εξαρτάται από την εφαρμοζόμενη τάση ελέγχου της πύλης. Όσο καλύτερος ο έλεγχος, τόσο πιο γρήγορος ο προγραμματισμός. Γι αυτόν αναπτύσσεται ένας αλγόριθμος προγραμματισμού σε αυτή την περιοχή και έτσι εκμεταλλευόμαστε τις σταθερές περιοχές λειτουργίας της, δηλαδή τον προγραμματισμό στον κόρο και ικανοποιούνται τα τρία κριτήρια. Ακριβής εντοπισμός φόρτισης. Στο εσωτερικό του αλγορίθμου υπάρχει η έννοια της ανίχνευσης της επιθυμητής τάσης προγραμματισμού, χωρίς την οποία θα ήταν αδύνατη η ακριβής τοποθέτηση φόρτισης. Ο ακριβής εντοπισμός φόρτισης εξαρτάται από την τάση ελέγχου και λειτουργίας του εκπομπού, της πύλης και τη χωρητικότητα ελέγχου της ζώνης οξειδίου. Αν εφαρμόσουμε μία αρκετά μεγάλη τάση για να λειτουργεί κόρος του οποίου οι μεταβολές στον εκπομπό δεν έχουν μεγάλες επιπτώσεις μπορεί να επιτευχθεί ο έλεγχος της τάσης εκπομπού. Ο έλεγχος της τάσης πύλης, επιτυγχάνεται μέσω ενός κυκλώματος ρύθμισης της διαδικασίας διαβάσματος το οποίο και βρίσκεται πάνω στο chip. Προκειμένου η μνήμη τύπου Flash να συγκρατεί τα δεδομένα ακόμη και χωρίς φόρτιση πρέπει το γράψιμο των δεδομένων (τοποθέτηση) να γίνεται υπό συγκεκριμένες συνθήκες που αφορούν την περιβάλλουσα θερμοκρασία και την τροφοδοσία. Για το διάβασμα των δεδομένων (εντοπισμός) από την άλλη δεν απαιτείται η ίδια περιβάλλουσα θερμοκρασία και τροφοδοσία συστήματος. Στην ουσία το ρεύμα του εκπομπού είναι ένα MOS transistor και το Flash κελιού είναι συνάρτησή τους. Γι` αυτό, προκειμένου να καλυφθεί μεγάλο μέρος διεργασιών, είναι απαραίτητος ο ακριβής εντοπισμός φόρτισης. Flash κελιά αναφοράς που βρίσκονται πάνω στο chip είναι υπεύθυνα για την παραγωγή επιπέδων αναφοράς που ξεχωρίζουν τις καταστάσεις φόρτισης Τα επίπεδα τάσης προγραμματισμού των κελιών αυτών έχουν ρυθμιστεί με ακρίβεια κατόπιν κατασκευαστικών ελέγχων σε προρυθμισμένο περιβάλλον. Τα κελιά αναφοράς και τα Flash κελιά του πίνακα θα συμπεριφέρονται με τον ίδιο τρόπο στον εντοπισμό με την θερμοκρασία και την τροφοδοσία. Ωστόσο η συμπεριφορά τους δεν θα είναι ίδια με τα επίπεδα αναφοράς, τα οποία έχουν δημιουργηθεί από transistor άλλων τύπων (όπως NMOS ή PMOS), αφού η θερμοκρασία και η τάση αναφοράς τους δεν είναι ίδια με αυτή του κελιού Flash μνήμης. Ακριβής συγκράτηση φόρτισης. Επειδή είναι απαραίτητη η ακριβής συγκράτηση της φόρτισης στην flash μνήμη, όποια φόρτιση κι αν εφαρμόζεται, η floating πύλη δεν πρέπει να υποστεί τροποποίηση για πολύ καιρό, θεωρητικά χρόνια. Αυτό συνεπάγεται απώλεια, μικρότερη του ενός ηλεκτρονίου την ημέρα, από την floating πύλη. Στη μείωση της απώλειας συμβάλλει το εσωτερικό στρώμα διοξειδίου του πυριτίου που δρα ως μονωτής. Συνήθως, επιτρέπεται αποθήκευση φόρτισης ενέργειας οξειδίου από το ενεργειακό φάσμα. Η ενέργεια οξειδίου ή διαφορετικά εγγενής απώλεια 36

37 φόρτισης ευθύνεται για τις μετατοπίσεις του κατωφλίου, οι οποίες είναι αρκετά μικρές και ισορροπούν όσο γίνονται οι κατασκευαστικοί έλεγχοι. Αν και σχεδόν ανύπαρκτες οι ατέλειες στα στρώματα των μονωτών, στη συγκεκριμένη τεχνολογία, κατά τη φάση του ελέγχου δεν παραβλέπονται καθώς ευθύνονται για απώλειες φόρτισης. Αυτές οι απώλειες οδηγούνται σε αρκετά χαμηλά επίπεδα στις flash μνήμες όπου η διόρθωση λαθών (ECC) είναι απαραίτητη. Απώλειες φόρτισης ακόμη μπορούν να προκληθούν εξαιτίας λειτουργιών της συσκευής καθώς αστοχούν οι μονωτές οξειδίου. Υπό κανονικές συνθήκες εφαρμογής, ένα flash κελί υφίσταται ισχυρά πεδία. Εξαιτίας της μακρόχρονης εφαρμογής τους, η ικανότητα της συσκευής να διατηρεί την αποθηκευμένη φόρτιση μπορεί να υποβιβαστεί, επειδή ελαττώνεται το ενεργειακό φράγμα ή επειδή δημιουργούνται θέσεις παγίδες στο οξείδιο, οι οποίες έχουν την ικανότητα και ενεργούν όπως και οι ενδιάμεσες τοποθεσίες σηράγγωσης. Ο προγραμματισμός μέσω έγχυσης ηλεκτρονίων καναλιού μειώνει την πιθανότητα καταστροφής του οξειδίου, συγκριτικά με τον προγραμματισμό ισχύος, λόγω της δημιουργίας εσωτερικών πεδίων. Προκειμένου όμως η LC φόρτιση να είναι σταθερή δεν πρέπει να ξεχνάμε ότι ενδέχεται να υπάρξει εν μέρει καταστροφή. Γι αυτό και η αποφυγή απωλειών ενέργειας του μονωτικού οξειδίου χρειάζεται περεταίρω μελέτη κάτω από διαφορετικές καταστάσεις διεργασιών και πεδίων. 9.4 Χαμηλού κόστους σχεδιασμός εφαρμογής Όπως είναι γνωστό, ένα bit πληροφορίας σε μια μνήμη είναι ένα στοιχείο αποθήκευσης. Για να διπλασιαστεί η μνήμη είναι απαραίτητο πρώτα να διπλασιαστεί ο πίνακας μνήμης ή τα στοιχεία της μνήμης αποθήκευσης καθώς και κάποια κυκλώματα διεπαφής της μνήμης. Ειδικότερα, χρειάζονται αποκωδικοποιητές wordline και bitline για τον πίνακα. Μάλιστα, σε ένα τυπικό transistor μονής αποθήκευσης Flash EPROM γίνεται σχεδόν χρήση κατά 20% της περιοχής πυριτίου προκειμένου να καλυφθούν οι απαιτούμενες ανάγκες των κυκλωμάτων διεπαφών για την είσοδο στον πίνακα, τα οποία κυκλώματα δεν κλιμακώνονται αναλογικά σύμφωνα με τον ρυθμό του πίνακα μνήμης μιας και είναι απαραίτητες μεγάλες τάσεις και αναλογικές απαιτήσεις. Τις περισσότερες φορές όμως διπλασιασμός των δεδομένων αποθήκευσης δεν συνεπάγεται πάντα και το διπλασιασμό του πίνακα μνήμης και των κυκλωμάτων αποκωδικοποίησης. Για να συμβούν και αυτοί οι διπλασιασμοί είναι απαραίτητες πρόσθετες κυκλωματικές διατάξεις προκειμένου να αποθηκευτούν πολλά bits σε κάθε κελί. Το μειονέκτημα είναι ότι καταλαμβάνουν έναν σχετικά μικρό πρόσθετο χώρο της περιοχής του υλικού στον οποίο περιλαμβάνονται πρόσθετοι ενισχυτικοί ανιχνευτές, κυκλώματα αναφοράς και παραγωγής τάσης ή αντλίες φόρτισης. Η προστιθέμενη περιοχή πυριτίου που χρειάζεται για αυτές τις νέες διατάξεις χρειάζονται μία προστιθέμενη περιοχή πυριτίου, 5% πιο λίγο συγκριτικά με την περιοχή που καταλαμβάνει μια συσκευή 1 bit/κελί. Οι εφαρμογές που χρειάζονται εξωτερικά στοιχεία εφοδιασμού, όπως για παράδειγμα μικροελεγκτές, ECC και ρυθμιστές τάσης, έχουν κέρδος ως προς το κόστος υιοθετώντας την ελαττωμένη περιοχή περιφερειακών της τεχνολογίας MLC, οι μνήμες της οποίας φτάνουν πυκνότητα έως 2 bits/κελί, σχεδόν δηλαδή 1 bit/κελί. 9.5 Χαμηλού κόστους κατασκευαστική διαδικασία Η χρόνια επιτυχία της MLC τεχνολογίας οφείλεται στο στόχο της για την αποφυγή λαθών σε μια Flash μνήμη 1bit/κελί. Το χαμηλό κόστος κατασκευής οφείλεται στο ότι έχουν κατανοηθεί οι απαιτήσεις των MLC σχετικά με τον σχεδιασμό της βασικής αρχιτεκτονικής. Τα στενά κατασκευαστικά όρια που απαιτούνται για την MLC τεχνολογία είναι αποτέλεσμα της μελέτης κατασκευής της τεχνολογίας 1bit/κελί, χωρίς λάθη, βάσει της κατασκευής, του εξοπλισμού και της διεκπεραιωτικής ικανότητας. 37

38 9.6 Χαρακτηριστικά πρότυπου προϊόντος Το δυσκολότερο όσο αφορά τη βελτίωση εφαρμογών MLC είναι να διατηρηθεί η απόδοση, η χρησιμότητα, καθώς και η αξιοπιστίας του νέου προϊόντος όπως και το πρότυπο Flash μνήμης. Εάν το νέο προϊόν ικανοποιεί το τρίπτυχο απόδοση, χρησιμότητα, αξιοπιστία τότε αυτό θα προωθηθεί στην αγορά. Η ταχύτητα προγραμματισμού, η ταχύτητα διαβάσματος, οι απαιτήσεις σε τροφοδοσία ισχύος και η αξιοπιστία είναι τα κύρια γνωρίσματα μιας nonvolatile μνήμης Ταχύτητα προγραμματισμού Προκειμένου να βελτιστοποιηθούν οι κυκλωματικές επιδόσεις, με κάποιους περιορισμούς που θέτει η λειτουργία της Flash συσκευής, επιλέγεται ένα αλγόριθμος. Ο αλγόριθμος εκμεταλλεύεται σταθερά λειτουργικά σημεία της συσκευής. Έτσι, επιτυγχάνεται η ταχύτητα στον προγραμματισμό. H μείωση του χρόνου εκτέλεσης του αλγορίθμου επιτυγχάνεται μέσω του παράλληλου προγραμματισμού (32 ή 64 bits). Κι ενώ ο αλγόριθμος περιλαμβάνει μεθόδους εντοπισμού ανίχνευσης της φόρτισης, η επιλογή της βέλτιστης καθορίζει την ταχύτητα προγραμματισμού. Όμως, μπορούν να χρησιμοποιηθούν και προσεγγίσεις ανίχνευσης φόρτισης όπως η ανίχνευση της διαφορετικής τάσης ελέγχου της πύλης για να καθοριστεί άμεσα η τάση κατωφλιού. Παρόλο που η άμεση μέτρηση της φόρτισης της floating πύλης επωφελείται και από την ικανότητα διέγερσης ρεύματος του Flash κελιού που εντοπίζει την ταχύτητα επίδοσης, η ανίχνευση της διαφορετικής τάσης ελέγχου της πύλης δεν το κάνει. Τελικά, αν ο προγραμματισμός της MLC τεχνολογίας θα είναι εξίσου καλός ή ακόμη και καλύτερος από των μνημών flash 1 bit/κελί εξαρτάται από τους αλγορίθμους, των βελτιώσεων αλλά και της αρχιτεκτονικής που θα επιλεγούν Ταχύτητα διαβάσματος Η γρήγορη ταχύτητα διαβάσματος επιτυγχάνεται χάρη στη χρήση της ικανότητας διέγερσης ρεύματος των Flash κελιών αλλά και σε συγκεκριμένη μέθοδο εντοπισμού τάσης της πύλης ελέγχου που θα επιλεγεί. Παράλληλα επιτρέπεται γρήγορη αποκωδικοποίηση του λογικού επιπέδου λόγω του εντοπισμού φόρτισης η οποία προκαλεί μια ελάχιστη κυκλωματική επιβάρυνση. Τελικά, η ταχύτητα διαβάσματος συμφωνεί με την ταχύτητα διαβάσματος των Flash μνημών 1 bit/κελί για πυκνότητα bit Ισχύς τροφοδοσίας Η MLC τεχνολογία εφαρμόζεται με την παραγωγή και τη ρύθμισης της τάσης στο chip. Είναι εφικτός ο προσδιορισμός ενός MLC προϊόντος με εξωτερική τροφοδότηση πράγμα όμως που δεν συμφέρει οικονομικά. Με την παραγωγή και τη ρύθμιση των τάσεων στο chip η MLC μνήμη συνδέεται κατευθείαν με τις υπάρχουσες εφαρμογές. Τα MLC προϊόντα που σήμερα είναι σε λειτουργία έχουν σταθερή τάση τροφοδοσίας 1.8V Αξιοπιστία Η λεπτομερής μελέτη των μηχανισμών και των διαδικασιών του κελιού μίας εφαρμογής MLC οδηγεί σε συγκράτηση και μεγάλη αξιοπιστία χωρίς απαιτήσεις σε ECC σύστημα on-chip. Ως αποτέλεσμα, η διεπαφή του χρήστη θα διακρίνεται για την τυχαία είσοδο στην μνήμη, στην περιοχή που θα έχει μεγάλη παραγωγικότητα και ελάχιστες ατέλειες. Σε συνδυασμό με τον οικονομικό κυκλωματικό σχεδιασμό και διάφορες κατασκευαστικές εφαρμογές, οι χρήστες 38

39 επωφελούνται από το χαμηλό κόστος της MLC μνήμης στην αγορά χωρίς να χάνουν χρήσιμα χαρακτηριστικά ή μέρος της απόδοσής της. 9.7 Κλιμάκωση της τεχνολογίας πολυεπίπεδης μνήμης Ο νόμος του Moore υποστηρίζει ότι ο αριθμός των τρανζίστορ σε ένα μικροεπεξεργαστή θα διπλασιάζεται κάθε 18 μήνες. Το νόμο αυτόν ακολουθεί όσο αφορά τη βελτίωση και η τεχνολογία. Παρόλο που για πολλά χρόνια ακόμη θα κυριαρχεί η πρωταρχική ανάπτυξη της MLC είναι απαραίτητες κάποιες μελέτες πάνω σε νέες κυκλωματικές μεθόδους και νέους τύπους υλικών ηλεκτρικών υποβιβασμών που συνδέονται με την κλιμάκωση. Μολονότι, οι βελτιωμένες MLC flash μνήμες περιέχουν τις αρχές ακρίβειας στην ανίχνευση φόρτισης, προκειμένου να διασφαλιστεί επαρκές περιθώριο του λόγου σήματος προς θόρυβο κατά τη φάση του εντοπισμού στον πίνακα της flash μνήμης πρέπει να αναπτυχθεί ο κυκλωματικός σχεδιασμός. Καθώς υπάρχει τεχνολογική εξέλιξη, πρώτης τάξης επίδραση γίνεται η δεύτερης ή η τρίτης τάξης. Για παράδειγμα, κατά τη φάση της φόρτισης επειδή κατά την επαληθευτική λειτουργία το σήμα είναι υποβιβασμένο, εάν εισαχθεί τυχαίος θόρυβος στα κελιά μνήμης της συσκευής, αυτό γίνεται με προβληματικό τρόπο. Επιπλέον κατά τη διαδικασία της εφαρμογής φόρτισης, ο αποθηκευτικός χώρος της floating πύλης είναι διπλάσιος. Έτσι, ενώ η flash μνήμη καταλαμβάνει λίγο χώρο, υπάρχει αλληλεπίδραση των τρανζίστορ της. Καθώς υπάρχουν φυσικά εμπόδια της συσκευής που πρέπει να ξεπεραστούν, επιτακτική είναι η ανάγκη για δημιουργία καινοτόμων κυκλωμάτων και η αλλαγή στην αρχιτεκτονική του chip όπως το να προστεθούν ECC αλγόριθμοι. Πολλές τεχνολογικές εξελίξεις προσθέτουν παραλληλισμό και ταχύτερες τεχνικές εντοπισμού και προγραμματισμού για να βελτιωθεί η απόδοση της συσκευής. Τις βελτιώσεις που αφορούν την απόδοση της συσκευής της πολυεπίπεδης flash μνήμης δεν χρησιμοποιούν μόνο οι λύσεις που αφορούν την περιθωριοποίηση της κλιμακούμενης μείωσης των ηλεκτρονικών ιδιοτήτων της μνήμης αλλά και καινούριες εφαρμογές του συστήματος. Προκειμένου να βελτιωθεί η απόδοση της συσκευής, πράγμα που θα συμβάλλει στην ταχύτητα προγραμματισμού και ανίχνευσης αλλά και στον παραλληλισμό, καθίστανται απαραίτητοι αλγόριθμοι καθώς και ανάπτυξη της τεχνολογίας. 9.8 Συμπεράσματα Η μείωση του κόστους μια MLC μνήμης επιτυγχάνεται μέσω της αποθήκευσης πολλών bits ανά κελί σε συνδυασμό με παραδοσιακές διαδικασίες κλιμάκωσης. Τα σταθερά σημεία λειτουργίας της συσκευής και η άμεση είσοδος εάν εκμεταλλευτούν κατάλληλα συμβάλλουν στον εντοπισμό, τη συγκράτηση φόρτισης αλλά και την ακριβή τοποθέτηση. Τέλος, μία σειρά από ιδιότητες συμβάλλουν καθοριστικά στη μείωση της τιμής των Flash μνημών στην αγορά. 39

40 10 Υλοποίηση-Εξομοίωση-Σύνθεση 10.1 Υλοποίηση Εισαγωγή Όπως έχει ήδη αναφερθεί σκοπός του NFC κυκλώματος είναι η ανάληψη και εκτέλεση όλων εκείνων των λειτουργιών που απαιτούνται για να επικοινωνήσει ένας host με μια flash μνήμη. Λαμβάνοντας αυτό υπόψη θα αναλυθούν παρακάτω όλα τα στάδια δημιουργίας αυτού του κυκλώματος, τα προγράμματα που χρησιμοποιήθηκαν καθώς και τα test benches που χρησιμοποιήθηκαν για τον έλεγχο της σωστής λειτουργίας του κυκλώματος. Αρχικά θα γίνει μια εκτενής αναφορά στο block diagram του κυκλώματος και ποιο μέρος αυτού υλοποιήθηκε, έπειτα θα παρουσιαστεί το πρότυπο πάνω στο οποίο βασίστηκε η υλοποίηση και ποιες παραδοχές έγιναν για την υλοποίηση του κυκλώματος. Τέλος θα αναλυθεί η εξομοίωση και η σύνθεση του κυκλώματος Block Diagram Ένα από τα πρώτα πράγματα που πραγματοποιήθηκαν είναι η δημιουργία ενός γενικού και καθολικού block diagram. Όπως φαίνεται και στo Σχήμα 1 ένα γενικό κύκλωμα NFC πρέπει να περιέχει τα εξής blocks: ΑΗΒ/ΑΧΙ interface, User Interface, DMA, Buffers, ECC, Control Registers, Flash Interface και AES-256bit. Το block ΑΗΒ/ΑΧΙ interface βασίζεται στο πρωτόκολλο επικοινωνίας ΑΗΒ/ΑΧΙ και έχει σαν στόχο την επικοινωνία του controller με τον host σε χαμηλό επίπεδο. Είναι επομένως υπεύθυνο για την σωστή μεταφορά των εντολών και των δεδομένων που ανταλλάζει ο host από και προς τη μνήμη (μέσω του controller). Το user interface είναι το block που έχει σαν στόχο την επικοινωνία του controller με τον host σε υψηλό επίπεδο. Επομένως επιτρέπει στο χρήστη να αλληλεπιδράσει σωστά με τη μνήμη πάλι μέσω του controller. Το DMA block είναι υπεύθυνο για την απευθείας επικοινωνία του host με τη μνήμη (direct memory access) σε ειδικές περιπτώσεις που χρειάζεται να παρακαμφθούν οι υπόλοιπες λειτουργίες του ελεγκτή. Το ECC block αποτελεί την καρδιά του ελεγκτή κάνοντας όλους τους απαραίτητους ελέγχους για τη σωστή μεταφορά των δεδομένων (Error Correction Code). Ο αλγόριθμος ελέγχου θα βασίζεται στον αλγόριθμο Reed-Solomon και αφού κάνει τους απαραίτητους ελέγχους θα προσθέτει κάποια επιπλέον bit ελέγχου στη βασική πληροφορία που στέλνει ο host πριν αυτή αποθηκευτεί στη μνήμη. Επικουρικά θα υπάρχουν δύο άλλα block, buffers block και Control Registers block, τα οποία o Reed-Solomon θα χρησιμοποιεί για να αποθηκεύει προσωρινά κάποια πληροφορία. Επιπλέον το Flash Interface block βασίζεται στο πρότυπο Open Nand Flash Interface Standard (ONFI standard) και είναι υπεύθυνο για την σωστή επικοινωνία του controller με τα κύτταρα μνήμης μεταφέροντας τις εντολών και τα δεδομένα που στέλνει ο host από και προς τη μνήμη. Τέλος το AES-256bit block είναι υπεύθυνο για την κρυπτογράφηση των δεδομένων πριν αυτά αποθηκευτούν στη μνήμη. Όπως είναι φυσικό αυτό το block diagram παρουσιάζει μια γενική περίπτωση ελεγκτή που περιλαμβάνει όλες τις λειτουργικότητες που έχουν οι σημερινοί ελεγκτές. Ωστόσο στα πλαίσια αυτής της διπλωματικής δεν ήταν δυνατόν να υλοποιηθούν όλες αυτές οι λειτουργίες λόγω της μεγάλης πολυπλοκότητας του κυκλώματος, της έλλειψης εμπειρίας από πλευράς του φοιτητή για τη δημιουργία του καθώς και λόγω χρονικών περιορισμών. Επομένως στα πλαίσια αυτής της διπλωματικής αναπτύχθηκε ένα πρώτο λειτουργικό μοντέλο με δυνατότητα μελλοντικής επέκτασης από άλλες διπλωματικές. Τα βασικά μπλοκ που δημιουργήθηκαν ήταν αυτό του flash interface για την επικοινωνία του ελεγκτή με τη μνήμη καθώς κι ένα απλό μπλοκ επικοινωνίας με τον host στη θέση του ΑΗΒ/ΑΧΙ interface. Επίσης δημιουργήθηκαν κάποια μικρότερα μπλοκ που δεν είναι ορατά στο ιεραρχικό επίπεδο που αναλύθηκε προηγουμένως καθώς και τα μπλοκ μνήμης και host για λόγους ελέγχου ορθής λειτουργίας του κυκλώματος (testbench). 40

41 Σχήμα 1: Γενικό block Diagram του NFC Flash Memory Αρχικά δημιουργήθηκε το μπλοκ της μνήμης. Στα πρώτα στάδια δημιουργήθηκε ένα απλό array για λόγους εξοικείωσης και υλοποιήθηκαν κάποιες αρχικές λειτουργίες διαχείρισης της (εγγραφή, ανάγνωση και διαγραφή των στοιχείων του πίνακα). Έπειτα βασιζόμενοι σε αυτό το απλό μοντέλο προστέθηκαν επιπλέον λειτουργίες και έγιναν κάποιες βασικές αλλαγές στα buses και στη διευθυνσιοδότηση. Με άλλα λόγια, έχοντας βασιστεί στο τρόπο που παρουσιάζονται οι μνήμες στο πρότυπο ONFI, οργανώθηκε η μνήμη σε έναν αριθμό από Logical Units (LUNs) (ως LUN ορίζεται η μικρότερη μονάδα που μπορεί ανεξάρτητα να εκτελεί εντολές και να αναφέρει σε τι κατάσταση βρίσκεται μέσα στη μνήμη) που περιέχουν έναν αριθμό από Blocks (ως block ορίζεται η μικρότερη μονάδα που μπορεί να διαγραφεί από τη μνήμη) που περιέχουν έναν αριθμό από Pages (ως page ορίζεται η μικρότερη μονάδα που μπορεί να διευθυνσιοδοτηθεί, να εγγραφεί και να διαβαστεί στη μνήμη). Κάθε συσκευή μπορεί να περιέχει ένα ή περισσότερα LUNs (στην παρούσα διπλωματική για λόγους ευκολίας χρησιμοποιήθηκε ένα LUN), κάθε LUN μπορεί να περιέχει οποιονδήποτε αριθμό block (στην παρούσα διπλωματική χρησιμοποιήθηκαν δύο blocks) και κάθε block μπορεί να περιέχει οποιοδήποτε αριθμό pages αρκεί να είναι πολλαπλάσιο του 32. Επίσης ο αριθμός των δεδομένων που αποθηκεύονται σε ένα page πρέπει να είναι δύναμη του 2 και στην παρούσα διπλωματική χρησιμοποιήθηκαν 32 bits per page. Επιπλέον στην αρχική μνήμη προστέθηκε κι ένα Page Register μεγέθους ενός page που λειτουργεί σαν προσωρινή μνήμη πριν τα δεδομένα αποθηκευτούν στην μνήμη από τον host ή πριν αυτά σταλούν στον host κατά την ανάκτηση τους από τη μνήμη. Όσον αφορά τη διευθυνσιοδότηση, υπάρχουν δύο ειδών διευθύνσεις: η διεύθυνση στήλης και η διεύθυνση γραμμής. Η πρώτη διεύθυνση χρησιμοποιείται σαν αναφορά της θέσης του bit μέσα στον page register και κατ επέκταση μέσα στο αντίστοιχο page της μνήμης. Η διεύθυνση γραμμής αφορά τη θέση του page που θέλουμε να αναφερθούμε, η οποία βρίσκεται μέσα σε συγκεκριμένο block, το οποίο βρίσκεται μέσα σε συγκεκριμένο LUN. Επομένως συνολικά χρησιμοποιούνται, 41

42 πάντα με βάση το πρότυπο, 5 bytes για τη διευθυνσιοδότηση (2 bytes για τη διεύθυνση στήλης και 3 bytes για τη διεύθυνση γραμμής όπου το καθένα από τα 3 bytes αναφέρεται στη διεύθυνση του page, του block και του LUN αντίστοιχα) τα οποία στέλνονται όταν χρειάζεται σε 5 διαδοχικούς κύκλους ρολογιού. Η αποστολή των 5 αυτών bytes γίνεται με την ακόλουθη σειρά: πρώτα στέλνονται οι διευθύνσεις στήλης και μετά οι διευθύνσεις γραμμής ενώ προηγούνται τα λιγότερο σημαντικά bytes. Σε εξαιρετικές περιπτώσεις (όπως είναι η διαγραφή ενός block) δεν χρειάζεται να χρησιμοποιηθούν και τα 5 bytes αλλά μόνο τα bytes της διεύθυνσης γραμμής. Επιπλέον στη μνήμη προστέθηκε ένα bidirectional bus το οποίο χρειάζεται, όπως φαίνεται και στο block διάγραμμα, για την αμφίδρομη επικοινωνία της μνήμης με το flash interface για την ανταλλαγή δεδομένων, λειτουργιών και διευθύνσεων. Έτσι δημιουργήθηκε ένα ξεχωριστό entity το οποίο προστέθηκε σαν component στη μνήμη το οποίο είχε 2 ports, ένα εισόδου κι ένα εξόδου, ένα bidirectional bus κι ένα σήμα ελέγχου. Όταν το σήμα ελέγχου είναι 1 τότε οδηγείται το bidirectional bus με τα δεδομένα εισόδου. Αλλιώς, αν το σήμα ελέγχου είναι 0, τότε οδηγείται το bus σε υψηλή εμπέδηση και περιμένει για εισερχόμενα δεδομένα. Όταν αυτά έρθουν προωθούνται στο port εξόδου. Με αυτό τον απλό τρόπο ήταν δυνατός ο έλεγχος της εγγραφής και ανάγνωσης δεδομένων από το bus αφού το σήμα ελέγχου ήταν μόνιμα στην τιμή 0 θέτοντας το bus σε κατάσταση αναμονής δεδομένων, ενώ όταν έστελνε το flash interface μια εντολή, διεύθυνση ή δεδομένα για κείνους τους κύκλους ρολογιού έθετε το σήμα ελέγχου στην τιμή 1. Εκτός από το bidirectional bus προστέθηκαν κι άλλα σήματα εισόδου κι εξόδου πάντα με βάση το πρότυπο ONFI. Ο Πίνακας 2 δείχνει ποια σήματα προστέθηκαν στην μνήμη, αν είναι σήματα εισόδου ή εξόδου (ως προς τη μνήμη) και μια περιγραφή του κάθε σήματος. Όνομα Σήματος Είσοδος/Έξοδος Μνήμης Περιγραφή clk Είσοδος Μνήμης Σήμα ρολογιού μνήμης rst_n Είσοδος Μνήμης Σήμα ασύγχρονου reset μνήμης R_B_n Έξοδος Μνήμης Σήμα που υποδηλώνει την κατάσταση της μνήμης. Όταν έχει τιμή 0 τότε μία ή περισσότερες λειτουργίες λαμβάνουν χώρα σε κάποιο LUN RE_n Είσοδος Μνήμης Το Read Enable σήμα επιτρέπει την σειριακή έξοδο δεδομένων από τη μνήμη REc Είσοδος Μνήμης Το Read Enable Complement σήμα είναι το συμπληρωματικό σήμα του Read Enable WP_n Είσοδος Μνήμης Το Write Protect σήμα απενεργοποιεί τις λειτουργίες της εγγραφής και διαγραφής δεδομένων από τη flash μνήμη W_R_n Είσοδος Μνήμης Το σήμα Write/Read καθορίζει ποίος ελέγχει το αμφίδρομο κανάλι. CE_n Είσοδος Μνήμης Το σήμα Chip Enable επιλέγει ποια μνήμη θα λειτουργεί μέσα σε μια συσκευή. Όταν είναι 1 τότε η μνήμη είναι σε κατάσταση αναμονής χαμηλής ενεργειακής κατάστασης. Όταν είναι 0 τότε η μνήμη είναι επιλεγμένη CLE Είσοδος Μνήμης Το Command Latch Enable σήμα είναι ένα από τα σήματα που χρησιμοποιεί ο host για να καθορίσει τι τύπου είναι τα δεδομένα στο bus (εντολή, διεύθυνση ή πληροφορία) ALE Είσοδος Μνήμης Το Address Latch Enable σήμα είναι ένα από τα σήματα που χρησιμοποιεί ο host για να καθορίσει τι τύπου είναι τα δεδομένα στο bus (εντολή, διεύθυνση ή πληροφορία) WE_n Έξοδος Μνήμης Το Write Enable σήμα εκτελεί το «μαντάλωμα» των εντολών και των διευθύνσεων από το bus κατά την ανερχόμενη 42

43 παρυφή του DQS Έξοδος Μνήμης Το Data Strobe σήμα καθορίζει ένα «παράθυρο» έγκυρων δεδομένων όταν είναι 1 DQSc Έξοδος Μνήμης Το Data Strobe Complement σήμα είναι το συμπληρωματικό του Data Strobe σήματος IO1_mem Είσοδος/Έξοδος Μνήμης Το κύριο bus εισόδου και εξόδου δεδομένων, διευθύνσεων και εντολών από και προς τη μνήμη. Είναι το μόνο σήμα που έχει πλάτος 8 bit Πίνακας 2: Όνομα, είδος και περιγραφή σημάτων μνήμης Επιπλέον χρησιμοποιήθηκαν κάποιες generic μεταβλητές που καθόριζαν κάποια μεταβλητά μεγέθη στη μνήμη (όπως είναι ο αριθμός των blocks και των pages) και οι οποίες μεταβλητές χρησιμοποιήθηκαν μέσα στον κώδικα σε διάφορα σημεία. Εκτός από τον page register υλοποιήθηκαν και άλλοι δύο registers: ο address register και ο status register. Ο σκοπός του address register είναι ουσιαστικά να αποθηκεύσει σε έναν register μήκους 40 bits τις 5 διευθύνσεις που έχει ήδη ειπωθεί ότι θα στείλει ο host. Ο status register είναι ένας register μήκους 8 bits. Ο Πίνακας 3 δείχνει αναλυτικά τι σήματα περιέχονται στον status register και τι λειτουργία έχει το καθένα. Όνομα Αριθμός Περιγραφή Σήματος bit FAIL 0 Αν είναι 1 τότε η τελευταία εντολή που εκτελέστηκε στη μνήμη απέτυχε να ολοκληρωθεί. Αν είναι 0 τότε εκτελέστηκε με επιτυχία FAILC 1 Αν είναι 1 τότε η εντολή που εκτελέστηκε στη μνήμη πριν την τελευταία απέτυχε να ολοκληρωθεί. Αν είναι 0 τότε εκτελέστηκε με επιτυχία R 2 Δεσμευμένη θέση CSP 3 Είναι bit συνδεδεμένο με συγκεκριμένη εντολή. Για όλες τις υπόλοιπες είναι απλά 0 VSP 4 Είναι bit συνδεδεμένο με τον πωλητή. Ο καθένας το χρησιμοποιεί διαφορετικά. ARDY 5 Αν είναι 1 τότε δεν εκτελείται καμία λειτουργία στην μνήμη. Αν είναι 0 τότε εκτελείται κάποια λειτουργία RDY 6 Αν είναι 1 τότε η μνήμη είναι έτοιμη να δεχθεί νέες εντολές και όλα τα υπόλοιπα σήματα είναι έγκυρα. Αν είναι 0 τότε η τελευταία εντολή δεν έχει ολοκληρωθεί οπότε τα υπόλοιπα σήματα (5:0) δεν είναι έγκυρα κ δεν πρέπει να λαμβάνονται υπόψη WP_n 7 Αν είναι 1 τότε η συσκευή δεν έχει προστασία εγγραφής. Αν είναι 0 τότε η συσκευή έχει προστασία εγγραφής Πίνακας 3: Όνομα και περιγραφή σημάτων του Status Register Τέλος, για λόγους συγχρονισμού της μνήμης με τον controller, χρησιμοποιήθηκαν κάποια fifo components. Η λογική αυτού του component είναι ότι κρατάει μια λίστα των εισερχόμενων εντολών, διευθύνσεων ή δεδομένων στη μνήμη. Η εισαγωγή αυτών των bytes γίνεται με το ρολόι του controller και υπάρχει ένας write pointer ο οποίος αυξάνεται κάθε φορά που ένα καινούργιο byte εισέρχεται στη μνήμη. Η εξαγωγή αυτών των bytes και η περαιτέρω αξιοποίηση τους μέσα στη μνήμη γίνεται με το ρολόι της μνήμης και υπάρχει ένας read pointer ο οποίος αυξάνεται κάθε φορά που κάποιο byte φεύγει από τη fifo. Επίσης υπάρχουν κάποια σήματα ελέγχου που ενεργοποιούν την εγγραφή και την ανάγνωση στη fifo καθώς και σήματα που ελέγχουν τη διαφορά των δύο pointers και στην περίπτωση της μη μηδενικής διαφοράς, όταν δηλαδή υπάρχει ένα νέο byte στη fifo που περιμένει να εισέλθει και να υποστεί επεξεργασία στο κύκλωμα της μνήμης, ενημερώνουν την μνήμη για την ύπαρξη νέων bytes σε αναμονή. 43

44 Flash Interface Το component του Flash Interface βασίστηκε στο πρότυπο ONFI. Τα βασικά σήματα από τη μεριά της μνήμης είναι τα ίδια με τη μνήμη αλλά αντεστραμμένα (οι είσοδοι έγιναν έξοδοι και το αντίστροφο). Από την πλευρά του host, μιας και το ΑΗΒ/ΑΧΙ interface block δεν υλοποιήθηκε, δημιουργήθηκαν κάποια βασικά σήματα για να παίρνει εντολές και δεδομένα ο controller από το host. Στον Πίνακας 4 φαίνονται ποια σήματα χρησιμοποιήθηκαν, αν είναι σήματα εισόδου εξόδου και μια περιγραφή. Όνομα Σήματος Είσοδος/Έξοδος Controller Περιγραφή cmd Είσοδος Αυτό των 4 bit σήμα ρυθμίζει ποια λειτουργία θα εκτελέσει ο controller και κατ επέκταση η μνήμη cmd_wen Είσοδος Το cmd_wen όταν είναι λογικό 1, ο host έχει στείλει νέα εντολή στο cmd bus din_wen Είσοδος To din_wen όταν είναι λογικό 1, ο host στέλνει στο input1_host bus νέα data input1_host Είσοδος Αυτό το 8-bit bus είναι η κύρια είσοδος δεδομένων και διευθύνσεων στον controller από τον host output1_host Έξοδος Αυτό το 8-bit bus είναι η κύρια έξοδος δεδομένων και διευθύνσεων από τον controller στον host dout_dval Έξοδος Όταν το dout_dval σήμα είναι λογικό 1 τότε ο controller στέλνει νέα δεδομένα στον host από το output1_host bus Πίνακας 4: Όνομα, είδος και περιγραφή σημάτων του ελεγκτή από την πλευρά του host Όπως και στην περίπτωση της μνήμης χρησιμοποιήθηκαν components για το bidirectional bus και τη fifo για λόγους συγχρονισμού με τον host. Συγκεκριμένα χρησιμοποιήθηκαν fifo components για τα σήματα cmd και input1_host για να είμαστε βέβαιοι ότι δε θα χαθούν εντολές ή δεδομένα από τον host. Από κει και πέρα είναι δουλεία του controller να προωθήσει τα δεδομένα, τις εντολές και τις διευθύνσεις στη μνήμη ενεργοποιώντας τα αντίστοιχα σήματα Finite State Machine (FSM) Και στα δύο blocks, αυτό της μνήμης και του flash interface, για καλύτερο έλεγχο και εναλλαγή των καταστάσεων χρησιμοποιήθηκαν FSMs με συγκεκριμένες καταστάσεις. Στην περίπτωση του flash interface σε κάθε κατάσταση γινόταν κατάλληλη ρύθμιση των σημάτων που οδηγούσαν τη μνήμη ενώ στην περίπτωση της μνήμης, σε κάθε κατάσταση της μηχανής η μνήμη έκανε τις κατάλληλες ενέργειες (διάβασμα διευθύνσεων, δεδομένων, εγγραφή ή διαγραφή δεδομένων κοκ). Η εναλλαγή των καταστάσεων στην περίπτωση του flash interface εξαρτιέται από τον κωδικό της εντολής που έστελνε ο host στο σήμα cmd. Μια λίστα με την αντιστοιχία των εντολών και των καταστάσεων περιγράφεται στον Πίνακας 7. Σε μερικές καταστάσεις αυτή η εναλλαγή εξαρτάται και από άλλα σήματα όπως είναι το σήμα R_B_n της μνήμης (αν η μνήμη ήταν σε κατάσταση busy o controller δεν διαβάζει από τη στοίβα του fifo άλλη εντολή) καθώς και από το σήμα ελέγχου της fifo που αποθηκεύει της εντολές από τον host (αν στη στοίβα της fifo δεν υπάρχει νέα εντολή για να προωθηθεί στη μνήμη τότε η FSM μένει στην ίδια κατάσταση). Στην περίπτωση της μνήμης, η εναλλαγή καταστάσεων βασίζεται κυρίως από τις εντολές που είναι αποθηκευμένες στη στοίβα της FIFO. Σε μερικές καταστάσεις, αυτές της διευθυνσιοδότησης, η εναλλαγή καταστάσεων ελέγχεται 44

45 από ένα σήμα ελέγχου από τη στοίβα των διευθύνσεων που υποδηλώνει ότι υπάρχουν στη στοίβα διαθέσιμες διευθύνσεις καθώς επίσης μερικές καταστάσεις εναλλάσσονται με τον έλεγχο βοηθητικών-εσωτερικών σημάτων. Στον επόμενο πίνακα (Πίνακας 5) φαίνονται οι καταστάσεις του flash interface και στον Πίνακας 6 φαίνονται οι καταστάσεις τις μνήμης και μια μικρή περιγραφή της κάθε κατάστασης. Επίσης στο Σχήμα 2 φαίνεται το διάγραμμα καταστάσεων του ελεγκτή και τα σήματα στα οποία βασίζεται η εναλλαγή τους. Όνομα κατάστασης του flash interface Standby Idle command1, command2, command3 address1,address2 read1,read2,read3 program1,program2 Erase readsr readparameter Περιγραφή κατάστασης του flash interface Αρχική κατάσταση του ελεγκτή. Όταν πάρει την κατάλληλη εντολή από το host θέτει το σήμα CE_n στο λογικό 1 για να ενεργοποιήσει τη μνήμη Κατάσταση στην οποία ο ελεγκτής περιμένει τη μνήμη να ολοκληρώσει προηγούμενες λειτουργίες της πριν της στείλει εκ νέου εντολές Καταστάσεις στις οποίες ο ελεγκτής περιμένει μια εντολή από τον host και την προωθεί στη μνήμη. Επίσης προετοιμάζει την μνήμη να δεχθεί νέες εντολές Διαδοχικές καταστάσεις αποστολής στη μνήμη διευθύνσεων από τον host. Η αποστολή 5 διαφορετικών διευθύνσεων γίνεται με τη χρήση ενός counter ο οποίος μειωνόταν κάθε φορά που ο host έστελνε ένα νέο byte διεύθυνσης, κατά ένα, μέχρι να μηδενιστεί Καταστάσεις στις οποίες ο ελεγκτής διάβαζε δεδομένα από την μνήμη από κάποια προκαθορισμένη διεύθυνση και τα προωθούσε προς τον host Καταστάσεις στις οποίες ο ελεγκτής μετέφερε δεδομένα, από τον host στη μνήμη, προς αποθήκευση σε κάποια προκαθορισμένη διεύθυνση Κατάσταση στην οποία στέλνονταν από τον ελεγκτή στη μνήμη η κατάλληλη εντολή για να διαγράψει από τη μνήμη ένα block που βρισκόταν σε μια προκαθορισμένη διεύθυνση Κατάσταση στην οποία ο ελεγκτής διαβάζει τον status register της μνήμης Κατάσταση στην οποία ο ελεγκτής διαβάζει τη σελίδα παραμέτρων της μνήμης Πίνακας 5: Όνομα και περιγραφή καταστάσεων του flash interface 45

46 Όνομα κατάστασης της μνήμης Standby Idle address1,address2,address3,address4,address5 read1,read2,read3 program1,program2 erase1, erase2 Reset readsr readparameter Περιγραφή κατάστασης μνήμης Αρχική κατάσταση της μνήμης. Με βάση το πρότυπο η μνήμη ήταν σε αυτή όταν πρωτοξεκινούσα να δουλεύει ή όταν το σήμα CE_n ήταν λογικό 1 Κατάσταση στην οποία η μνήμη μπορούσε και περίμενε να διαχειριστεί εντολές από τον controller Διαδοχικές καταστάσεις αποθήκευσης διευθύνσεων στον address register της μνήμης. Η εναλλαγή γινόταν όταν υπήρχε διαθέσιμη διεύθυνση προς αποθήκευση στον address register από τη στοίβα fifo των διευθύνσεων Καταστάσεις στις οποίες η μνήμη μετέφερε δεδομένα από ένα page της στον page register κι έπειτα στον ελεγκτή. Επίσης γινόντουσαν οι απαιτούμενες ενέργειες όταν ο page register άδειαζε να μεταφέρονται εκ νέου δεδομένα σε αυτόν καθώς επίσης να ενημερώνεται και η διεύθυνση ανάγνωσης στον address register Καταστάσεις στις οποίες η μνήμη μετέφερε δεδομένα από τη στοίβα fifo δεδομένων στον page register. Επίσης γινόντουσαν οι απαιτούμενες ενέργειες όταν ο page register γέμιζε να μεταφέρονται τα δεδομένα σε κάποιο page της μνήμης καθώς επίσης να ενημερώνεται και η διεύθυνση εγγραφής στον address register Καταστάσεις στις οποίες ένα block μνήμης διαγραφόταν. Επίσης άδειαζαν οι page και address registers Κατάσταση στην οποία γινόταν σύγχρονο reset των registers της μνήμης και διάφορων εσωτερικών σημάτων Κατάσταση στην οποία ο ελεγκτής διαβάζει τον status register της μνήμης Κατάσταση στην οποία ο ελεγκτής διαβάζει τη σελίδα παραμέτρων της μνήμης Πίνακας 6: Όνομα και περιγραφή καταστάσεων της μνήμης 46

47 Σχήμα 2: Καταστάσεις FSM ελεγκτή 47

48 Επίσης στον πίνακα που ακολουθεί (Πίνακας 7) φαίνονται οι κωδικοί που στέλνει ο host στον ελεγκτή για να εκτελέσει τις διάφορες λειτουργίες ενώ στον Πίνακας 8 φαίνονται οι υποχρεωτικές λειτουργίες που πρέπει να εκτελεί ένας ελεγκτής με βάση το πρότυπο ONFI καθώς και οι εντολές που πρέπει να στείλει ο ελεγκτής στη μνήμη για να εκτελέσει την αντίστοιχη λειτουργία. Στη δεύτερη στήλη φαίνεται η εντολή αρχής της λειτουργίας μιας κατάστασης ενώ μερικές καταστάσεις θέλουν και μια δεύτερη εντολή περάτωσης της κατάστασης που φαίνεται στην τρίτη στήλη. Βασικές Λειτουργίες Ελεγκτή Idle Command Page Program Change write column Read Page Change read column Block Erase Read Status Register Read ID Reset Κωδικός εντολής που στέλνει ο host 0001b 0010b 0011b 0011b 0100b 0100b 0101b 0110b 0111b 1111b Πίνακας 7: Όνομα και κωδικός για τις εντολές που στέλνει ο host στον ελεγκτή Βασικές Λειτουργίες Μνήμης Κωδικός πρώτης εντολής που στέλνει ο ελεγκτής Κωδικός δεύτερης εντολής που στέλνει ο ελεγκτής Read Page 00h 30h Change read column 05h E0h Block Erase 60h D0h Read Status Register 70h - Page Program 80h 10h Change write column 85h - Read ID 90h - Reset FFh - Πίνακας 8: Όνομα, κωδικός πρώτης και δεύτερης εντολής για τις βασικές λειτουργίες που εκτελεί η μνήμη Ενοποίηση των Blocks Δημιουργήθηκε ένα επιπλέον αρχείο σε vhdl κώδικα το οποίο ουσιαστικά ένωνε τα διαφορετικά components μεταξύ τους με τη χρήση εσωτερικών σημάτων. Αυτό χρειαζόταν ουσιαστικά για να τεθούν όλα τα components σε ένα κοινό test bench και να βεβαιωθεί η ορθή λειτουργία τους Test bench Δημιουργήθηκε ένας αριθμός από διαφορετικά test benches. Το πρώτο test bench δημιουργήθηκε για να ελέγχει και να στέλνει διάφορες εντολές στην πρώτη έκδοση μνήμης. Όσο αυξανόταν η πολυπλοκότητα της μνήμης τόσο προστίθεντο νέες λειτουργίες στο test bench και όταν ολοκληρώθηκε η μνήμη το memory test bench που είχε δημιουργηθεί ουσιαστικά εκτελούσε το ρόλο του ελεγκτή θέτοντας συγκεκριμένες τιμές στη μνήμη και ελέγχοντας όλες τις λειτουργίες της αν εκτελούνται σωστά. Όταν ολοκληρώθηκε η μνήμη σαν component, ξεκίνησε η δημιουργία του ελεγκτή και του αντίστοιχου test bench. Το πρώτο test bench είχε σαν στόχο να δοκιμάζει τον ελεγκτή από τη μεριά της μνήμης. Όταν η ανάπτυξη του ελεγκτή είχε προχωρήσει αρκετά και είχαν 48

49 υλοποιηθεί κάποιες βασικές λειτουργίες της μνήμης (εγγραφή, ανάγνωση, διαγραφή) δημιουργήθηκε ένα γενικό component το οποίο ένωνε τα σήματα του ελεγκτή με αυτά της μνήμης μέσω εσωτερικών σημάτων. Επίσης δημιουργήθηκε ένα γενικό test bench που είχε το ρόλο του host και το οποίο έστελνε κατάλληλα σήματα στον ελεγκτή για να υλοποιήσει τις διάφορες λειτουργίες του. Καθώς η ανάπτυξη του ελεγκτή προχωρούσε, το test bench μεγάλωνε καλύπτοντας όλο και περισσότερες από τις λειτουργίες του ελεγκτή που θα υλοποιούνταν, μέχρι την περάτωση του Script Files Επιπλέον χρησιμοποιήθηκε ένας αριθμός από μικρά αρχεία scripts τα οποία εκτελούνταν στο ModelSim και είναι γνωστά ως.do files. Αυτά είναι μικρά script αρχεία που εκτελούνταν μέσω του transcript του ModelSim για να επιταχύνουν τη διαδικασία του compilation και του simulation των απαραίτητων αρχείων, να εκτελέσουν ένα άλλο.do script το οποίο περιείχε πληροφορίες για το wave του κυκλώματος και να τρέξουν το κύκλωμα για συγκεκριμένο χρονικό διάστημα. Όπως είναι κατανοητό αυτές οι διαδικασίες θα μπορούσαν να εκτελεστούν μέσω των κουμπιών του και των μενού του ModelSim, αλλά γράφοντας σε μια γραμμή μια απλή εντολή που έτρεχε το αντίστοιχο script, όλες αυτές οι διαδικασίες εκτελούνταν διαδοχικά αυτόματα καθιστώντας τον έλεγχο του αλγορίθμου πιο εύκολο. 49

50 10.2 Εξομοίωση Όταν ολοκληρώθηκε η συγγραφή του κώδικα VHDL ελέγχθηκε με τη βοήθεια του ModelSim η ορθή λειτουργία του κυκλώματος και συγκεκριμένα ελέγχθηκαν οι βασικές λειτουργίες της μνήμης και παρουσιάζονται στις παρακάτω εικόνες Page Program - Change write column Αρχικά βλέπουμε ότι ο host στέλνει εντολή εγγραφής στη μνήμη, μετά για πέντε κύκλους ρολογιού τη διεύθυνση που θα αποθηκευτούν τα δεδομένα και μετά τα δεδομένα. Κάποια στιγμή ο host στέλνει εντολή αλλαγής στήλης εγγραφής οπότε ο ελεγκτής μπαίνει σε address state και περιμένει τη νέα διεύθυνση από τον host κι έπειτα συνεχίζει την εγγραφή μέχρι να έρθει η εντολή περάτωσης. Πιο αναλυτικά φαίνεται στην επόμενη εικόνα οι εντολές που στέλνει ο host στον ελεγκτή και στη μνήμη, 4bit (κόκκινο πλαίσιο) και 8bit (κίτρινο πλαίσιο) αντίστοιχα καθώς και τα σήματα ενεργοποίησης των στοιβών στις οποίες θα αποθηκευτούν αυτά τα σήματα. Επίσης στην επόμενη εικόνα (καφέ πλαίσιο) βλέπουμε τον ελεγκτή να μπαίνει σε κατάσταση idle κι έπειτα σε command έτοιμος να διαβάσει από τον host την εντολή που πρέπει να εκτελέσει. Μόλις γίνει η κατάλληλη επεξεργασία της εντολής μπαίνει σε address state όπου βλέπουμε τον μετρητή που διαβάζει 5 διευθύνσεις κι έπειτα μπαίνει σε programming state όπου στέλνει στη μνήμη τα δεδομένα που διάβασε από τον host. Έπειτα δέχεται την εντολή αλλαγής στήλης εγγραφής οπότε μπαίνει σε address mode ξανά να διαβάσει αυτή τη φορά 3 διευθύνσεις. Όταν διαβάσει τη νέα διεύθυνση μπαίνει πάλι σε κατάσταση programming όπου διαβάζει τα υπόλοιπα δεδομένα μέχρι να λάβει την εντολή τερματισμού. Σχήμα 3: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (1) Στην επόμενη εικόνα βλέπουμε τα δεδομένα που έρχονται από τον host στον ελεγκτή και αποθηκεύονται σε δύο στοίβες, μία για τις 4bit εντολές (κόκκινο πλαίσιο) και μία για τα 8bit δεδομένα (κίτρινο πλαίσιο). Οι 4 bit εντολές τοποθετούν τον ελεγκτή στην αντίστοιχη κατάσταση και μετά προωθεί στη μνήμη τα 8bit δεδομένα, εντολές ή διευθύνσεις για να εκτελέσει τις αντίστοιχες λειτουργίες αυτή. 50

51 Σχήμα 4: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (2) Στο Σχήμα 5 βλέπουμε μέρος του πίνακα που προσομοιώνει την μνήμη (κόκκινο πλαίσιο) καθώς και τις καταστάσεις τις μνήμης (κίτρινο πλαίσιο). Επομένως βλέπουμε ότι η μνήμη γεμίζει με δεδομένα (άσσους) σε κάποιες θέσεις της, ενώ όταν κάνουμε αλλαγή διεύθυνσης οι υπόλοιπες θέσεις της μένουν μηδέν (καφέ κύκλος). Σχήμα 5: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (3) 51

52 Στην επόμενη εικόνα φαίνονται οι στοίβες που αποθηκεύει η μνήμη τις εντολές του ελεγκτή και τις διευθύνσεις που τις στέλνει. Στο κόκκινο πλαίσιο φαίνονται οι 3 εντολές που στέλνει ο ελεγκτής: 80h για την εγγραφή, 85h για την αλλαγή στήλης και 10h για την περάτωση της εγγραφής. Στο κίτρινο πλαίσιο φαίνονται οι 7 διευθύνσεις που στέλνει ο ελεγκτής, πέντε για την πρώτη εγγραφή και δύο για την δεύτερη μετά την αλλαγή στήλης. Πολλές από τις διευθύνσεις είναι μηδέν οπότε η αποθήκευση στη στοίβα φαίνεται από την αύξηση του δείκτη στο κάτω μέρος του πλαισίου. Σχήμα 6: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (4) Τέλος στο Σχήμα 7 φαίνεται η στοίβα που αποθηκεύονται προσωρινά τα δεδομένα που στέλνονται στη μνήμη πριν αυτά αποθηκευτούν στα κύτταρά της. Στο κόκκινο πλαίσιο φαίνονται τα δεδομένα και η είσοδό τους στη στοίβα με την αύξηση του δείκτη εγγραφής ενώ στο κίτρινο πλαίσιο φαίνεται ο δείκτης ανάγνωσης εσωτερικά από τη μνήμη Read Page Σχήμα 7: Χρονισμοί σημάτων για την λειτουργία εγγραφής στη μνήμη (5) Στις επόμενες εικόνες αναλύεται η λειτουργία της ανάγνωσης σελίδων. Στο πάνω μέρος φαίνονται τα σήματα που στέλνει ο host σε ελεγκτή και μνήμη (κόκκινο πλαίσιο) και δεξιά φαίνονται τα 4 bytes της σελίδας που απαντάει η μνήμη (κίτρινο πλαίσιο). Για να είναι πιο αξιόπιστο το αποτέλεσμα αρχικά εκτελείται η διαδικασία εγγραφής για να γεμίσει η μνήμη με δεδομένα και να μην μας επιστρέψει h. 52

53 Σχήμα 8: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (1) Επιπλέον, στην επόμενη εικόνα φαίνονται οι διαφορετικές καταστάσεις που περνάει ο ελεγκτής (κόκκινο πλαίσιο). Αρχικά εγγράφεται με δεδομένα σε συγκεκριμένες θέσεις όπως αναλύθηκε πιο πάνω κι ύστερα ενεργοποιείται η διαδικασία ανάγνωσης αφού όμως πρώτα σταλούν οι 5 διευθύνσεις που χρειάζεται. Όταν η μνήμη στείλει όλη τη σελίδα (32 bit σε αυτή την περίπτωση) επιστρέφει ο ελεγκτής σε κατάσταση idle περιμένοντας την επόμενη εντολή. Επιπλέον διακρίνεται το bidirectional bus (κίτρινο πλαίσιο) και η στοίβα που αποθηκεύει τις 4bit εντολές που στέλνει ο host (καφέ πλαίσιο) Σχήμα 9: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (2) 53

54 Στην επόμενη εικόνα διακρίνονται τα δεδομένα που στέλνει ο host και πρέπει να προωθήσει ο ελεγκτής στη μνήμη (κόκκινο πλαίσιο) καθώς και οι καταστάσεις που περνάει η μνήμη (κίτρινο πλαίσιο). Σχήμα 10: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (3) Στην τελευταία εικόνα φαίνονται οι 3 στοίβες (εντολών, διευθύνσεων και δεδομένων) και τα δεδομένα που αποθηκεύονται σε αυτές σε κόκκινο, κίτρινο και καφέ πλαίσιο αντίστοιχα. Σχήμα 11: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης από τη μνήμη (4) 54

55 Block Erase Μια άλλη λειτουργία που εκτελεί ο ελεγκτής είναι αυτή της διαγραφής ενός ολόκληρου μπλοκ από τη μνήμη. Αρχικά στέλνονται οι κατάλληλες εντολές από τον host (κόκκινο πλαίσιο), αυτές αποθηκεύονται στις στοίβες του ελεγκτή, έπειτα στέλνονται οι κατάλληλες εντολές στη μνήμη και τελικά η μνήμη εκτελεί την εντολή. Πάλι για να ελεγχθεί η ορθή λειτουργία της διαγραφής πρώτα εκτελείται η λειτουργία της εγγραφής με τυχαία δεδομένα σε κάποιες σελίδες του μπλοκ και μετά εκτελείται η εντολή διαγραφής. Σχήμα 12: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (1) 55

56 Στο Σχήμα 13 φαίνεται η αλλαγή καταστάσεων στον ελεγκτή (κόκκινο πλαίσιο) όπου στην αρχή γίνεται η διευθυνσιοδότηση, μετά η εγγραφή δεδομένων και στη συνέχεια η διαγραφή τους. Επιπλέον φαίνεται η δραστηριότητα του bidirectional bus καθώς ο ελεγκτής στέλνει δεδομένα στη μνήμη (κίτρινο πλαίσιο) και η στοίβα εντολών όπου αποθηκεύονται οι εντολές από τον host στον ελεγκτή (καφέ πλαίσιο). Σχήμα 13: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (2) 56

57 Επίσης στην επόμενη εικόνα φαίνεται η στοίβα όπου αποθηκεύονται οι εντολές, οι διευθύνσεις και τα δεδομένα που στέλνει ο host στη μνήμη (κόκκινο πλαίσιο). Σχήμα 14: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (3) Στην επόμενη εικόνα, στο κόκκινο πλαίσιο φαίνονται αρχικά οι σελίδες μνήμης που γεμίζουν στην αρχή με δεδομένα και μετά βλέπουμε που διαγράφεται όλο το μπλοκ και επιστρέφουν στις αρχικές μηδενικές τιμές τους. Ακόμα στον κίτρινο πλαίσιο φαίνονται οι διαδοχικές καταστάσεις της μνήμης. Σχήμα 15: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (4) 57

58 Επιπλέον στο κόκκινο πλαίσιο (Σχήμα 16) βλέπουμε τη δραστηριότητα του bidirectional bus από την πλευρά της μνήμης και στο κίτρινο πλαίσιο φαίνονται αποθηκευμένες σε στοίβα οι εντολές που στέλνει ο host στη μνήμη. Σχήμα 16: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (5) Τέλος στο κόκκινο πλαίσιο παρουσιάζονται οι διευθύνσεις που στέλνονται στην μνήμη όπως αυτές αποθηκεύονται στη στοίβα της μνήμης κι έπειτα ανακαλούνται από κει ενώ στο κίτρινο πλαίσιο φαίνονται τα δεδομένα που αποθηκεύονται προσωρινά στη στοίβα δεδομένων πριν αυτά σταλούν στη μνήμη. Σχήμα 17: Χρονισμοί σημάτων για την λειτουργία διαγραφής από τη μνήμη (6) 58

59 Read Status Register Αρχικά ο host στέλνει κατάλληλη εντολή ανάγνωσης του status register για τη μνήμη καθώς και τα κατάλληλα σήματα για να τον θέσει σε command mode και read status register mode (κόκκινο πλαίσιο). Μετά από κάποιους κύκλους ρολογιού η μνήμη απαντάει (κίτρινο πλαίσιο) θέτοντας στο λογικό 1 και το αντίστοιχο σήμα ειδοποιώντας τον host ότι υπάρχουν νέα δεδομένα στο bus ανάγνωσης. Επιπλέον στην εικόνα φαίνονται οι διαδοχικές καταστάσεις που περνάει ο ελεγκτής μέχρι να σταλεί επιτυχώς ο status register από τη μνήμη (καφέ πλαίσιο). Σχήμα 18: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (1) 59

60 Στην επόμενη εικόνα φαίνεται το bidirectional bus και πως αυτό λειτουργεί όταν στέλνει δεδομένα ο ελεγκτής στη μνήμη και όταν λαμβάνει (κόκκινο πλαίσιο). Επίσης πάλι φαίνεται η στοίβα που αποθηκεύει τις 3 εντολές που στέλνει ο host (προηγούμενη εικόνα κόκκινο πλαίσιο) και η μία εντολή που θα στείλει στη μνήμη (κόκκινο και κίτρινο πλαίσιο αντίστοιχα). Σχήμα 19: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (2) Στην επόμενη εικόνα φαίνεται η αλλαγή κατάστασης της μνήμης (κόκκινο πλαίσιο) και ο status register που στέλνεται προς τον ελεγκτή (κίτρινα πλαίσια) Σχήμα 20: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (3) 60

61 Επίσης φαίνεται η λειτουργία του bidirectional bus από την πλευρά της μνήμης (κόκκινο πλαίσιο) και η στοίβα εντολών που η μνήμη δέχθηκε (κίτρινο πλαίσιο) που εν προκειμένω είναι μία εντολή. Σχήμα 21: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (4) Τέλος στην επόμενη εικόνα φαίνονται οι στοίβες που αποθηκεύει η μνήμη δεδομένα και διευθύνσεις (κόκκινο και κίτρινο πλαίσιο αντίστοιχα) που είναι άδειες μιας και για τη συγκεκριμένη λειτουργία ο ελεγκτής δεν στέλνει τίποτα από τα δύο. Σχήμα 22: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του Status Register από τη μνήμη (5) 61

62 Read ID Κατά τη διάρκεια αυτής της λειτουργίας ο host στέλνει μια συγκεκριμένη εντολή στη μνήμη για να ελέγξει αν είναι συμβατή με το πρότυπο ONFI. Η απάντηση από τη μνήμη είναι οι 4 ASCII χαρακτήρες τις λέξης ONFI (δηλαδή 4F, 4E, 46 και 49). Επομένως στο κόκκινο πλαίσιο βλέπουμε τις εντολές που στέλνει στον ελεγκτή και στη μνήμη ο host ενώ στο κίτρινο πλαίσιο βλέπουμε την απάντηση της μνήμης με τα τέσσερα byte. Επιπλέον στο καφέ πλαίσιο φαίνονται οι διαφορετικές καταστάσεις που περνάει ο ελεγκτής. Σχήμα 23: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (1) 62

63 Στο κόκκινο πλαίσιο φαίνεται η δραστηριότητα του bidirectional bus, στο κίτρινο πλαίσιο φαίνονται οι εντολές συγκεντρωμένες στην αντίστοιχη στοίβα του ελεγκτή και στο καφέ πλαίσιο φαίνεται η μία εντολή μνήμης που αποθηκεύεται στη στοίβα του ελεγκτή πριν σταλεί στη μνήμη. Σχήμα 24: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (2) Στην επόμενη εικόνα, το κόκκινο πλαίσιο, δείχνει τις καταστάσεις της μνήμης. Σχήμα 25: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (3) 63

64 Ενώ σε αυτή την εικόνα διακρίνεται στο κόκκινο πλαίσιο η δραστηριότητα του bidirectional bus από την πλευρά της μνήμης και στο κίτρινο πλαίσιο διακρίνεται μία εντολή που έχει στείλει ο host και είναι προσωρινά αποθηκευμένη στη στοίβα εντολών μνήμης. Σχήμα 26: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (4) Επιπλέον στο κόκκινο και στο κίτρινο πλαίσιο διακρίνονται οι στοίβες διεύθυνσης και δεδομένων που είναι άδειες αφού για την συγκεκριμένη λειτουργία δεν χρειάζονται Σχήμα 27: Χρονισμοί σημάτων για την λειτουργία ανάγνωσης του ID της μνήμης (5) 64

65 Reset Στη τελευταία λειτουργία, αυτή του ασύγχρονου reset, οι τιμές των σημάτων παρουσιάζονται στις επόμενες εικόνες. Τα πιο σημαντικά σήματα, στο Σχήμα 28 φαίνονται στο κόκκινο πλαίσιο, είναι οι εντολές που στέλνει ο host στον ελεγκτή. Σχήμα 28: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (1) 65

66 Στην επόμενη εικόνα στο κόκκινο πλαίσιο φαίνονται οι αλλαγές κατάστασης του ελεγκτή, στο κίτρινο πλαίσιο η δραστηριότητα του bidirectional bus και στο καφέ η στοίβα προσωρινής αποθήκευσης εντολών ελεγκτή. Σχήμα 29: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (2) Στο Σχήμα 30 φαίνεται η στοίβα προσωρινής αποθήκευσης εντολών μνήμης του ελεγκτή και η μοναδική εντολή (FFh) που έχει στείλει ο host αποθηκευμένη. Επιπλέον διακρίνονται και οι διαδοχικές καταστάσεις της μνήμης. Σχήμα 30: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (2) 66

67 Στην επόμενη εικόνα φαίνεται το bidirectional bus από την πλευρά της μνήμης και η στοίβα προσωρινής αποθήκευσης εντολών μνήμης όπου αποθηκεύεται η εντολή FFh= b. Σχήμα 31: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (3) Τέλος βλέπουμε ότι οι στοίβες διευθύνσεων και δεδομένων στη μνήμη είναι άδειες. Σχήμα 32: Χρονισμοί σημάτων για την λειτουργία ασύγχρονου reset της μνήμης (4) 67

68 10.3 Σύνθεση Σύνθεση βασικού κυκλώματος Όπως έχει ήδη ειπωθεί το πρόγραμμα που χρησιμοποιήθηκε για τη σύνθεση του κυκλώματος ήταν το Xilinx ISE και τα αποτελέσματα αυτής της σύνθεσης φαίνονται στα επόμενα σχήματα. Αρχικά να αναφερθεί ότι οι παράμετροι που χρησιμοποιήθηκαν στον Xilinx γενικά ήταν οι προεπιλεγμένοι με εξαίρεση το επιλεγμένο FPGA που ήταν το kintex 7 480t, ο βαθμός ταχύτητας που τέθηκε στο -3 δηλαδή η πιο μεγάλη και ότι η σύνθεση θέλαμε να είναι βέλτιστη ως προς την ταχύτητα του κυκλώματος κι όχι ως προς το χώρο. Αρχικά λοιπόν γίνεται μια πρώτη σύνθεση και εκτιμάται πόσα και ποια components θα χρησιμοποιηθούν από το FPGA. Τα αποτελέσματα της πρώτης σύνθεσης διακρίνονται στις επόμενες εικόνες. Συγκεκριμένα στο Σχήμα 33 φαίνεται το πλήθος των components που χρησιμοποιεί το Xilinx μετά τη βελτιστοποιημένη σύνθεση του αλγορίθμου μας. Σχήμα 33: Πλήθος components που χρειάζονται μετά την βελτιστοποιημένη σύνθεση του αλγορίθμου 68

69 Στο Σχήμα 34 φαίνονται πιο γενικές πληροφορίες για τη γενική σύνθεση στο FPGA όπως το πλήθος των slices που χρησιμοποιήθηκαν, το πλήθος των εισόδων/εξόδων και άλλα ενώ στο Σχήμα 35 εμφανίζονται κάποιες γενικές πληροφορίες χρονισμού όπως είναι η μέγιστη συχνότητα στην οποία μπορεί να δουλέψει το κύκλωμα. Σχήμα 34: Πλήθος αντικειμένων που χρησιμοποιήθηκαν από το FPGA Σχήμα 35: Γενικές πληροφορίες χρονισμού του FPGA Έπειτα, μετά τη σύνθεση, ακολουθεί η διαδικασία της μετάφρασης του συνθέσιμου κυκλώματος, η βελτιστοποίηση του και η ακριβής αντιστοίχιση του στα στοιχεία του FPGA παρουσιάζοντας πόσα από αυτά εν τέλει θα χρησιμοποιηθούν στο Σχήμα 36, ενώ στο Σχήμα 37 φαίνονται τα συγκεκριμένα κυκλώματα του FPGA που θα χρειαστούν για την υλοποίηση του κυκλώματος. Από την πρώτη εικόνα (Σχήμα 36) εστιάζουμε κυρίως στα slice LUTs και τα slice registers του FPGA που θα χρησιμοποιηθούν τελικά ενώ προσέχουμε ιδιαίτερα το κύκλωμά μας να μην έχει latches τα οποία δημιουργούν διάφορα προβλήματα όπως χρονικές καθυστερήσεις. Από το Σχήμα 37 δίνουμε ιδιαίτερη σημασία στο ότι δεν χρησιμοποιήθηκε κανένα είδος RAM (RAMB36 ή RAMB18) και κανένα DSP48E1 που αποτελούν κυκλωματικές διατάξεις που αναλαμβάνουν να εκτελέσουν αριθμητικές πράξεις. 69

70 Σχήμα 36: Αποτελέσματα σύνθεσης και τοποθέτησης του κυκλώματος πάνω στο FPGA Σχήμα 37: Πλήθος συγκεκριμένων κυκλωμάτων του FPGA που χρησιμοποιήθηκαν 70

71 Σύνθεση όλου του κυκλώματος Για λόγους ελέγχου ορθής λειτουργίας του κυκλώματος έγινε η σύνθεση και το κατέβασμα σε FPGA κύκλωμα όχι μόνο του ελεγκτή αλλά και όλων των περιφερειακών που δημιουργήθηκαν για την εξομοίωση, δηλαδή τις μνήμης και του testbench. Το FPGA που χρησιμοποιήθηκε τόσο για τη σύνθεση όσο και για το κατέβασμα ήταν το Spartan 3E της εταιρείας Xilinx και συγκεκριμένα η συσκευή xc3s500e-4-fg320 με ταχύτητα λειτουργίας -4. Μετά από κατάλληλη τροποποίηση του υπάρχοντος κώδικα έγινε η σύνθεση του και ελέγχθηκαν τα αποτελέσματα αυτής της σύνθεσης παραμετροποιώντας διαφορετικά κάθε φορά τις FSM. Στον Πίνακας 9 φαίνονται τα αποτελέσματα αυτής της διαφοράς ως προς τα παραγόμενα slices, δηλαδή το χώρο που πιάνει το κύκλωμα, αλλά και ως προς τη μέγιστη συχνότητα λειτουργίας που επιτυγχάνει. Όπως φαίνεται και από τον πίνακα όταν η κωδικοποίηση των FSM είναι στο αυτόματο τότε καταλαμβάνουν μικρότερο χώρο αλλά γίνονται και λιγότερο γρήγορα τα κυκλώματα. Όταν ακολουθείται κάποια άλλη κωδικοποίηση βελτιώνεται η συχνότητα λειτουργίας αλλά μεγαλώνουν και οι χωρικές απαιτήσεις. Κωδικοποίηση FSM Αριθμός χρησιμοποιούμενων slices/ Αριθμός συνολικών slices Μέγιστη συχνότητα λειτουργίας Auto 2995/ % MHz Grey 3238/ % MHz Sequential 3253/ % MHz Johnson 3245/ % MHz Πίνακας 9: Διαφορές σε χωρικές και χρονικές απαιτήσεις που προσφέρουν οι διαφορετικές κωδικοποιήσεις των FSM Κατέβασμα σε FPGA Αφού ολοκληρώθηκε το κατέβασμα του κυκλώματος σε FPGA, ορίστηκε ένα κουμπί να ενεργοποιεί μια μικρή FSM που έχει το ρόλο του testbench και στέλνει δεδομένα στoν ελεγκτή. Με τη χρήση του προγράμματος ChipScope Analyzer μπορούμε να παρακολουθούμε το bus που στέλνει δεδομένα από τον ελεγκτή στη μνήμη (IO1_mem bus) όταν πατιέται το κουμπί που ορίσαμε. Όταν συμβεί αυτό ενεργοποιείται η FSM που για διαδοχικούς κύκλους ρολογιού ενεργοποιεί τον ελεγκτή και στέλνει τα κατάλληλα δεδομένα στη μνήμη. Όπως φαίνεται στο Σχήμα 38 αρχικά στέλνεται από τον ελεγκτή η εντολή προγραμματισμού (80h), έπειτα για πέντε κύκλους ρολογιού οι 5 διαδοχικές διευθύνσεις (00h, 00h, 05h, 00h, 00h), ακολουθούν τα δεδομένα (FFh) και τέλος η εντολή περάτωσης εγγραφής δεδομένων (10h). Σχήμα 38: Εντολές που στέλνονται από τον ελεγκτή στη μνήμη για την εγγραφή δεδομένων 71

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι ΗΜΥ 2: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 25 Φεβ-5 ΗΜΥ-2: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 25 Κεφάλαιο 3 -i: Σχεδιασµός Συνδυαστικών Κυκλωµάτων Περίληψη Αρχές σχεδιασµού Ιεραρχία σχεδιασµού Σχεδιασµός

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

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

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

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

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

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

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

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

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

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

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

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

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

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

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

Τεχνολογίες Κύριας Μνήμης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 2: Τεχνικές για Σχεδιασμό Χαμηλής Κατανάλωσης Ισχύος στα MPSoCs Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

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

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

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

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: Σελίδα 1 από 11 Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: την επικοινωνία, µε τα υπόλοιπα ολοκληρωµένα κυκλώµατα του υπολογιστικού συστήµατος. την παροχή τροφοδοσίας

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

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

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

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

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

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

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

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

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

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

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

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

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

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών (ΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (ΙI) (κύρια και κρυφή μνήμη) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

Εισαγωγή στην Αρχιτεκτονική Η/Υ

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

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

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

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

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

.Λιούπης. Ψηφιακά Ηλεκτρονικά - Ηµιαγωγικές Μνήµες 1

.Λιούπης. Ψηφιακά Ηλεκτρονικά - Ηµιαγωγικές Μνήµες 1 Ψηφιακά Ηλεκτρονικά Ηµιαγωγικές µνήµες.λιούπης Ψηφιακά Ηλεκτρονικά - Ηµιαγωγικές Μνήµες 1 Τυπική εσωτερική οργάνωση µνήµης γραµµές λέξης wordlines () κύκλωµα προφόρτισης (pre-charge circuit) γραµµές ψηφίου

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

Ενσωματωμένα Συστήματα

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

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

Mέσα στερεάς κατάστασης

Mέσα στερεάς κατάστασης Πηγή: http://www.ipet.gr Mέσα στερεάς κατάστασης Τα αποθηκευτικά μέσα στερεής κατάστασης είναι συσκευές αποθήκευσης δεδομένων κλειστού τύπου, χωρίς κινούμενα μέρη, στις οποίες τα δεδομένα αποθηκεύονται

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

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

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Τα τμήματα ενός ηλεκτρονικού υπολογιστή είναι: 1. Επεξεργαστής 2. Μνήμη RAM και ROM 3. Κάρτα γραφικών 4. Μητρική Πλακέτα 5. Σκληρός Δίσκος 6. DVD / Blue Ray 7. Τροφοδοτικό

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

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Στην 4 η εργαστηριακή άσκηση θα ασχοληθούμε με την ιεραρχική σχεδίαση. Συγκεκριμένα θα μάθουμε να σχεδιάζουμε απλές οντότητες τις οποίες

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

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

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

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

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

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

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

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

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

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

Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD Χειμερινό Εξάμηνο 2009 2010 Design flow? ΗΥ220 University of Crete 2 Ροή Σχεδίασης (Design Flow) Requirements Verilog, VHDL

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

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου ΚΕΦΑΛΑΙΟ 1 Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου Υπολογιστικά συστήματα σχεδιάστηκαν για να καλύψουν συγκεκριμένες ανάγκες σε συγκεκριμένη χρονική στιγμή και βοηθούν στη συνολική πρόοδο της τεχνολογίας Φουκαράκη

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

Βασικές Έννοιες της Πληροφορικής

Βασικές Έννοιες της Πληροφορικής Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Προγραμματιζόμενη Λογική Γιατί;

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Προγραμματιζόμενη Λογική Γιατί; ΗΜΥ 20: Σχεδιασμός Ψηφιακών Συστημάτων Αυγ- ΗΜΥ-20: Σχεδιασμός Ψηφιακών Συστημάτων Συνδυαστικές Λογικές ιατάξεις Διδάσκουσα: Μαρία Κ. Μιχαήλ Περίληψη Λογικές ιατάξεις (Programmable Logic Devices PLDs)

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

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL 3.1 Εισαγωγή στα FLIP FLOP 3.1.1 Θεωρητικό Υπόβαθρο Τα σύγχρονα ακολουθιακά κυκλώματα με τα οποία θα ασχοληθούμε στο εργαστήριο των Ψηφιακών συστημάτων

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

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

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

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή Δοκιμή ολοκληρωμένων κυκλωμάτων με χρήση του Inovys Personal Ocelot και

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

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

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

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

Εγκατάσταση του Arduino IDE

Εγκατάσταση του Arduino IDE ΑΣΠΑΙΤΕ Συλλογή και Επεξεργασία Δεδομένων Εργαστήριο ΠΕΡΙΕΧΟΜΕΝΑ: Πώς να κατεβάσετε και να εγκαταστήσετε το Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE), για το προγραμματισμό του Arduino. Χρησιμοποιώντας το

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

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

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

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

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

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

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

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος Δρ. Μηνάς Δασυγένης mdasyg@ieee.org 1 1 Οι εταιρείες παραγωγής IC διαφημίζουν εκτός από τους επεξεργαστές και τα chipset τους 2 2 Τι είναι όμως

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

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

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

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

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

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

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

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος Γιώργος Δημητρακόπουλος Δημοκρίτειο Πανεπιστήμιο Θράκης Φθινόπωρο 2013 Ψηφιακά ολοκληρωμένα κυκλώματα 1 Οργάνωση του φυσικού σχεδίου Αποφασίζουμε

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

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

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

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

3. Περιγράμματα Μαθημάτων Προγράμματος Σπουδών

3. Περιγράμματα Μαθημάτων Προγράμματος Σπουδών 3. Περιγράμματα Μαθημάτων Προγράμματος Σπουδών Στην ενότητα αυτή παρουσιάζονται τα συνοπτικά περιγράμματα των μαθημάτων που διδάσκονται στο Πρόγραμμα Σπουδών, είτε αυτά προσφέρονται από το τμήμα που είναι

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

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

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

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

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

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

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

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

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

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

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

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

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

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5 Ρυθμίζοντας τη Φορά Περιστροφής DC Κινητήρα. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο Πλαίσιο (front

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

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

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

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

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

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

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

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 -

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 - Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL Γενικά χαρακτηριστικά, σύνταξη και τύποι Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 - Περίγραµµα διάλεξης Τι είναι η VHDL? Πλεονεκτήµατα της VHDL στη σχεδίαση κυκλωµάτων

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

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΡΟΜΠΟΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΜΠΑΝΤΗΣ ΑΝΤΩΝΙΟΣ 533 ΤΣΙΚΤΣΙΡΗΣ ΔΗΜΗΤΡΙΟΣ 551 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΡΟΜΠΟΤ LEGO NXT Το ρομπότ

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

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects) ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Τίτλος Μαθήματος Μικροελεγκτές και Ενσωματωμένα συστήματα Ανάπτυξη και Εφαρμογές Κωδικός Μαθήματος Μ2 Θεωρία / Εργαστήριο Θεωρία + Εργαστήριο Πιστωτικές μονάδες 4 Ώρες Διδασκαλίας 2Θ+1Ε

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

ΕΙ Η ΜΝΗΜΩΝ ΠΤΥΤΙΚΕΣ ΜΗ ΠΤΥΤΙΚΕΣ

ΕΙ Η ΜΝΗΜΩΝ ΠΤΥΤΙΚΕΣ ΜΗ ΠΤΥΤΙΚΕΣ ΜΝΗΜΕΣ ΕΙ Η ΜΝΗΜΩΝ ΠΤΥΤΙΚΕΣ ΜΗ ΠΤΥΤΙΚΕΣ 2 ΠΤΥΤΙΚΕΣ vs ΜΗ ΠΤΥΤΙΚΕΣ Πτητική είναι η µνήµη η οποία χάνει το περιεχόµενο της µε το σβήσιµο του ηλεκτρονικού υπολογιστή (διακοπή τροφοδοσίας), ενώ µη πτητική

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 2 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Υπολογιστής Συνοπτικό λεξικό Οξφόρδης -> «ηλεκτρονική υπολογιστική μηχανή»

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

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΣΑΒΒΑΤΟ 16/04/2016 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ (ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ) ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΠΕΝΤΕ (5) ΕΝΔΕΙΚΤΙΚΕΣ

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

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

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

Μελλοντικές Κατευθύνσεις

Μελλοντικές Κατευθύνσεις Ψηφιακά Ηλεκτρονικά Μελλοντικές Κατευθύνσεις.Λιούπης Ψηφιακά Ηλεκτρονικά Μελλοντικές Κατευθύνσεις 1 Ψηφιακά Ηλεκτρονικά Μελλοντικές Κατευθύνσεις 2 Σύγχρονα Τρανζίστορ Αύξηση της απόδοσης Μίγµα silicon

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

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

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

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

VHDL Εισαγωγικές έννοιες

VHDL Εισαγωγικές έννοιες VHDL Εισαγωγικές έννοιες ρ. Κ. Καραφασούλης ckaraf@aegean.gr Σχεδίαση Αρχικά ψηφιακά κυκλώµατα µπορούν να σχεδιασθούν µε το κατάλληλο λογισµικό. Μεγαλύτερα κυκλώµατα µπορούν να σχεδιασθούν ιεραρχικά από

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

Το μάθημα συνοπτικά (1) Το μάθημα συνοπτικά (2) Τι είναι ένα υπολογιστικό σύστημα ;

Το μάθημα συνοπτικά (1) Το μάθημα συνοπτικά (2) Τι είναι ένα υπολογιστικό σύστημα ; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2017-18 Εισαγωγή στην Αρχιτεκτονική (θεμελιώδεις αρχές λειτουργίας των υπολογιστών) http://mxstef.gthub.o/courses/comparch/ Μ.Στεφανιδάκης

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

ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ. Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε:

ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ. Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε: Ενότητα 2.6 Κεφάλαιο 2 ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ ΣΤΟΧΟΙ Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε: Να αιτιολογείτε την αναγκαιότητα χρησιμοποίησης κάθε είδους αυτοματισμού. Να διακρίνετε

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