Αποκωδικοποιητές Μνημών Φθινόπωρο 2008 Γιώργος Δημητρακόπουλος Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Γ. Δημητρακόπουλος ΗΥ422 1
Η χρήση των αποκωδικοποιητών Η δομή της μνήμης (για λόγους πυκνότητας) επιβάλλει τη ενεργοποίηση μόνο μίας γραμμής (wordline) για κάθε διεύθυνση της εισόδου Η επιλογή του κατάλληλου wordline εξαρτάται αποκλειστικά από τον αποκωδικοποιητή γραμμής και τον τελικό οδηγητή Μην ξεχνάμε ότι η χωρητικότητα του wordline είναι σημαντική Σε περίπτωση διαμοίρασεις λέξεων στην ίδια γραμμή κάποια bits της διεύθυνσης πρέπει να αποκωδικοποιηθούν επίσης για την τελική επιλογή (πολυπλέκτης στήλης) Γ. Δημητρακόπουλος ΗΥ422 2
Λειτουργία αποκωδικοποιητών Για ένα αποκωδικοποιητή από n δυαδικά ψηφία σε 2 n εξόδους χρειαζόμαστε 2 n πύλες ΑΝD των n-εισόδων η καθεμία Θέλουμε επίσης η τελική κατασκευή να εμφανίζει ομοιόμορφο layout ώστε να ταιριάζει με το φυσικό σχέδιο της μνήμης 2-σε-4 Αποκωδικοποιητές Γ. Δημητρακόπουλος ΗΥ422 3
Προβλήματα με την απευθείας υλοποίηση Υλοποιώντας απευθείας τους αποκωδικοποιητές χρειαζόμαστε πύλες πολλών εισόδων ( πολλά τρανζίστορ σε σειρά δραματική αύξηση καθυστέρησης) Πρέπει να τους σπάσουμε σε επιμέρους στάδια Είτε στο τελικό στάδιο υλοποιώντας τελικές πύλες με πύλες με λιγότερες εισόδους (Λύση 1) Είτε εμφανίζοντας ένα στάδιο predecoding (προ-αποκωδικοποιήσης) Καλύτερο γιατί καταφέρνει να διαμοιράζει ενδιάμεσα αποτελέσματα (Λύση 2) Γ. Δημητρακόπουλος ΗΥ422 4
Απλοποίηση μόνο του τελικού σταδίου Σε ένα 6-σε-64 αποκωδικοποιητή στην απευθείας υλοποίηση θέλουμε πύλες AND 6 εισόδων Έχουμε πολλούς τρόπους να τις κατασκευάσουμε Σε διαδοχικές γραμμές της απευθείας υλοποίησης ενός αποκωδικοποιητή επαναυπολογίζουμε άσκοπα τους ίδιους όρους Παρατηρήστε ότι και στις δύο εξόδους από τις 64 - θέλουμε το Α5 ΑΝD Α4 και το ξαναπαράγουμε Πύλες AND 6 εισόδων WL63 WL62 Γ. Δημητρακόπουλος ΗΥ422 5
Επαναχρησιμοποιήσε ενδιάμεσα αποτελέσματα Predecoder Γέννησε όλα τους όρους που προκύπτουν από ζεύγη γειτονικών bits π.χ. (Α0, Α1), (Α2, Α3) και (Α4, Α5) Χρειάζονται 3 μικροί 2-σε-4 αποκωδικοποιητές οι οποίοι απαρτίζουν το στάδιο της προ-αποκωδικοποίησης (predecoding) Συνδίασε με πύλες ΑΝD 3 εισόδων τα 16 ενδιάμεσα αποτελέσματα ώστε να πάρεις τα τελικά ζητούμενα γινόμενα (τελικό στάδιο κωδικοποίησης) Γ. Δημητρακόπουλος ΗΥ422 6
Ανάλυση καθυστέρησης αποκωδικοποιητή Παράδειγμα 6-σε-64 αποκωδικοποιητή με 2-σε-4 predecoder και τελικό αποκωδικοποιητή φτιαγμένο με πύλες NAND 3 εισόδων (όπως προηγούμενο σχήμα) Γ. Δημητρακόπουλος ΗΥ422 7
Φυσικό σχέδιο αποκωδικοποιητών Συνήθως θέλουμε να φτιάξουμε μεγάλα arrays από κελιά SRAM Eπομένως θέλουμε να χωρέσουμε τον αποκωδικοποιητή στο μικρότερο δυνατό εμβαδό Σίγουρα πρέπει να περάσουμε τις γραμμές του αποκωδικοποιητή είτε από πάνω είτε από δίπλα από τις πύλες που τον υλοποιούν και να τοποθετήσουν γειτονικά στάδια αποκωδικοποιήσης το ένα δίπλα στο άλλο Γ. Δημητρακόπουλος ΗΥ422 8
Περισσότερη λεπτομέρεια Η έξοδος του predecoder πρέπει να οδηγήσει το τελικό στάδιο αποκωδικοποίησης Οι γραμμές αυτές εφόσον πρέπει να διανύσουν όλο το ύψος όλου του array έχουν μεγάλη χωρητικότητα Το ίδιο συμβαίνει και με τις wordlines Σε αυτές τις περιπώσεις πάντα συμφέρει να χρησιμοποιήσετε απλές NAND πύλες οι οποίες οδηγούν ένα αντιστροφέα Στη γενική δομή τα ψηφία της διεύθυνσης και της εξόδου του predecoder μοιράζονται από κάτω προς τα πάνω ενώ οι predecoders βρίσκονται αριστερά από τους τελικούς αποκωδικοποιητές Γ. Δημητρακόπουλος ΗΥ422 9
Γενική χωροθέτηση κυκλωμάτων μνήμης Γ. Δημητρακόπουλος ΗΥ422 10
Διάσπαση wordlines Για μεγάλα wordlines για να μειώσουμε την συνολική χωρητικότητα μπορούμε να τις διασπάσουμε στα δύο τοποθετώντας τον αποκωδικοποιητή στη μέση Κάθε row decoder βλέπει τις μισές στήλες Πρέπει να τοποθετήσουμε δύο φορές το κύκλωμα του τελικού row decoder ενώ ο predecoder μοιράζεται και από τις δύο πλευρές Γ. Δημητρακόπουλος ΗΥ422 11
Λεπτομέρειες φυσικού σχεδίου αποκωδικοποιητή Κακή λυση Καλύτερη προσέγγιση Τα τρανζίστορ μεγαλώνουν από τ αριστερά προς τα δεξιά Γ. Δημητρακόπουλος ΗΥ422 12
Εναλλακτική χωροθέτηση αποκωδικοποιητή A3 A3 A2 A2 VDD PMOS word NMOS GND 4-input NAND gate Folded inverter - Buffer Μπορούμε να χωρέσουμε τις πύλες και τους buffers του αποκωδικοποιητή έυκολα στο μικρό ύψος (απόσταση Vdd με Gnd) που έχουμε στη διάθεση μας Ομοιόμορφη σχεδίαση πολύ εύκολα μπορεί να αυτοματοποιηθεί Τα σύρματα της διεύθυνσης μοιράζονται σε υψηλότερο επίπεδο μετάλλου και συνδέονται τοπικά με τις πολυσιλικόνες που απαιτούνται για τα τρανζίστορ των πυλων Γ. Δημητρακόπουλος ΗΥ422 13
Κανόνες κατασκευής Για κάθε όρο που εμφανίζεται στο γινόμενο που θέλετε να φτιάξετε τοποθετείτε ένα ΝMOS τρανζίστορ Αυτά τα τρανζίστορ πρέπει να είναι σε σειρά με το ένα άκρο της σειράς στη γή και το άλλο στον κόμβο εξόδου Οπότε τοποθετείται κατάλληλα τις επαφές όπου χρειάζονται και συνδέεται με μεταλλο-1 Στους όρους που δε χρησιμοποιείται ουσιαστικά περνάτε γραμμές από μέταλλο-1 Ολοκληρώνεται κατάλληλα την παράλληλη σύνδεση των PMOS τρανζίστορ A3 A3 A2 A2 Το γινόμενο που θέλετε Vdd A3 A2 Gnd A3 A3 A2 A2 Τοποθέτηση ΝΜΟS τρανζίστορ Vdd A3 A2 Gnd Κόμβος εξόδου Σε σειρά σύνδεση τους Γ. Δημητρακόπουλος ΗΥ422 14
A3 Λεπτομέρεια φυσικού σχεδίου A3 A2 A2 Vdd A3 A2 Gnd A3 A2 Vdd A3 A2 Gnd Εναλλάσεται γραμμές Vdd και Gnd αντιστρέφοντας διαδοχικές γραμμές του αποκωδικοποιητή Επαναλαμβάνεται τους κανόνες σύνδεσης για κάθε όρο (wordline) που θέλετε να δημιουργήσετε Οι γραμμές των διευθύνσεων παιρνούν πάνω από τις πύλες μέταλλο-2 (Δε φαίνονται στο σχήμα) και κατεβαίνουν τοπικά σε πολυσιλικόνη Οι γραμμές πολυσιλικόνης ΔΕΝ πρέπει να είναι συνεχόμενες (στο σχήμα για λόγους ομοιομορφίας είναι) απαράδεκτα μεγάλη αντίσταση Γ. Δημητρακόπουλος ΗΥ422 15
Αποκωδικοποιητές για μεγάλες μνήμες Θέλουμε να φτιάξουμε μια 2Mbit SRAM Αρχική οργάνωση 1024 γραμμές με 2048 στήλες Πολύ μεγάλη χωρητικότητα στα wordlines Διαλέγουμε να τη χωρίσουμε σε 32 μπλοκς με 1024 γραμμές και 64 στήλες το καθένα Η αποκωδικοποίηση δι-επίπεδη Πρώτα αποφασίζουμε (global row decoder) σε ποια γραμμή ανήκουμε και στη συνέχεια διαλέγουμε σε ποιο μπλοκ είναι η λέξη που θέλουμε (low decoder) Για καλύτερη απόδοση μπορούμε να χωρίσουμε και τις γραμμές σε επιμέρους ομάδες Γ. Δημητρακόπουλος ΗΥ422 16
Σχηματική αναπαραστάση Ακολουθείτε ιεραρχική προσσέγγιση Η μνήμη χωρίζεται σε μπλοκς Το κύκλωμα υλοποιεί την αποκωδικοποίηση ιεραρχικά Πρώτα επιλέγεται η global wordline Στη συνέχεια η ζητούμενη local wordline Γ. Δημητρακόπουλος ΗΥ422 17