ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 5: Μνήμες Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Σκοπός Ενότητας Εισαγωγή στις δομές μνήμες των ψηφιακών συστημάτων. Αρχές λειτουργίας και κατασκευής ROM EPROM EEPROM FLASH RAM. Ανάλυση και σχεδίαση κυκλωμάτων επέκτασης μνήμης. Περιγραφή σε VHDL
Περιεχόμενα Ενότητας Ταξινόμηση Μνημών Αρχιτεκτονική μνήμης Περιφερειακά μνημών
Ταξινόμηση Μνημών Volatile Read-Write Memory Non-Volatile Read-Write Memory Read-Only Memory Random Access SRAM DRAM Non-Random Access FIFO LIFO Shift Register CAM EPROM E 2 PROM FLASH FRAM (Ferroelectric) MRAM (Magnetoresistive) Mask-Programmed Programmable (PROM)
Ορισμοί σημάτων χρονισμού μνημών
Αρχιτεκτονική μνήμης M bits M bits S 0 S 1 S 2 Word 0 Word 1 Word 2 Storage cell A 0 A 1 S 0 Word 0 Word 1 Word 2 Storage cell S N - 2 Word N - 2 A K - 1 Word N - 2 S N - 1 Word N - 1 K = log 2 N Word N - 1 Input-Output ( M bits) Input-Output ( M bits) Απλή αρχιτεκτονική μιας μνήμης N x M Πολύ μεγάλος αριθμός σημάτων επιλογής N λέξεις == N σήματα επιλογής Ο αποκωδικοποιητής ελαττώνει τον αριθμό των σημάτων επιλογής K = log 2 N
Αρχιτεκτονική μνήμης Πρόβλημα της απλής αρχιτεκτονικής: ύψος >> πλάτος (aspect ratio) Ενίσχυση σε πλήρες εύρος (full swing) Αποκωδικοποιητής στήλης
Read-only memory (ROM) Sel 0 0/1 0/1 0/1 Sel 1 0/1 0/1 0/1 a 0 Sel 2 0/1 0/1 0/1 Address a 1 a m 1 decoder m -to-2 m Sel 2 m 1 0/1 0/1 0/1 Read Data d n 1 d n 2 d 0
ROM cells BL BL BL 1 WL WL V DD WL BL BL BL 0 WL WL WL GND Diode ROM MOS ROM 1 MOS ROM 2
MOS NOR ROM Όλες οι γραμμές επιλογής (WL) είναι 0 εκτός από την επιλεγμένη λέξη
MOS NAND ROM Όλες οι γραμμές επιλογής (WL) είναι 1 εκτός από την επιλεγμένη λέξη
Digital Rosetta Stone Αποτελείται από 4 δισκία Si 300 mm συγκολλημένα και διασυνδεδεμένα. Αποθηκεύει 2.5 terabits δεδομένων σε ROM. Κατασκευάζεται σε τεχνολογία CMOS 45-nm. Προγραμματίζεται με λιθογραφία ηλεκτρονικής δέσμης. Εκτιμώμενη διάρκεια ζωής 1000 έτη. Προστασία με ειδική μεμβράνη για αποφυγή διάβρωσης. Ανάκτηση των δεδομένων με ασύρματο σύστημα (RFID-like). Ολοκληρωμένα πηνία για συλλογή ενέργειας και αποστολή δεδομένων http://spectrum.ieee.org/semiconductors/memory/digital-data-written-in-stone/0
Non-Volatile Memories Floating-gate transistor (FAMOS) Source Floating gate Gate Drain D t ox G n + Substrate p t ox n +_ S Device cross-section Schematic symbol
Αρχή λειτουργίας EEPROM Προγραμματισμός: Ηλεκτρικός Σβήσιμο: Υπεριώδης ακτινοβολία (UV) ή ηλεκτρικό πεδίο (EEPROM, FLASH) 20 V 0 V 5 V 10 V 5 V 20 V 5 V 0 V 2.5 V 5 V S D S D S D Η τάση προγραμματισμού είναι μεγάλη (20 V) ώστε είναι δυνατή η διέλευση ηλεκτρονίων από το SiO2 και η συσσώρευσή τους στη floating gate Τα συσσωρευμένα ηλεκτρόνια παραμένουν στη floating gate και μετά την απομάκρυνση της τάσης προγραμματισμού Τα ηλεκτρόνια που βρίσκονται στη floating gate μεταβάλουν την τάση κατωφλίου ώστε με την κανονική τάση λειτουργίας να είναι δυνατή η ανίχνευση της αποθηκευμένης τιμής
Non-Volatile Memories -1
Non-Volatile Memories -2 Flash memory transistor
Cross-sections of NVM cells Flash Courtesy Intel EPROM
Ferroelectric FRAM Προγραμματισμός/Σβήσιμο: Ηλεκτρικό Μη Πτητική (αποθήκευση πληροφορίας ως αλλαγή πόλωσης κρυστάλλου) Ταχύτητα ανάγνωσης/εγγραφής ανάλογη με RAM Χαμηλή κατανάλωση ισχύος (δεν απαιτείται μεγάλη τάση προγραμματισμού Μικρή χωρητικότητα (max 4Mbits) http://www.fujitsu.com/emea/services/microelectronics/fr am/technology/ Texas Instruments (Lead-Zirconate-Titanate, 130 nm, 0.4μm 2, 4Mbits) http://techonline.com/article/pdf/showpdf.jhtml?id=1999013481
Magnetoresistive MRAM Προγραμματισμός/Σβήσιμο: Ηλεκτρικό Μη Πτητική (αποθήκευση ως προσανατολισμός μαγνητικού πεδίου) Ταχύτητα ανάγνωσης/εγγραφής ανάλογη με RAM Μικρή χωρητικότητα (max 4Mbits) http://www.freescale.com/files/memory/doc/white_paper/mramwp.pdf
Phase Change RAM Phase-change: Αλλαγή φάσης Κρυσταλλοποίηση με θέρμανση πάνω από συγκεκριμένη θερμοκρασία (SET), Αμορφοποίηση (λιώσιμο) (RESET) Εγγραφή με παλμούς ρεύματος μέτριας ισχύος, μεγάλης διάρκειας Διαγραφή με παλμούς ρεύματος υψηλής ισχύος μικρής διάρκειας Ανάγνωση με χαμηλή ισχύ για μέτρηση της αντίστασης (πέντε τάξεις μεγέθους διαφορά ανάμεσα σε '0' και '1') IBM J. RES. & DEV. VOL. 52 NO. 4/5 JULY/SEPTEMBER 2008 S. RAOUX ET AL.
Memristor Η ύπαρξή του είχε προβλεφθει το 1971 από τον Leon Chua, Univ. of California Berkeley. Υλοποιήθηκε το 2008 από ερευνητές της Hewlett-Packard. http://spectrum.ieee.org/semiconductors/design/the-mysterious-memristor
Memristor Κύβος 40-nm από δύο στρώματα διοξείδιο του τιτανίου (TiO 2 ) Στο ένα στρώμα TiO 2 υπάρχει αναλογία οξυγόνο τιτάνιο 2:1--> Μονωτής. Στο άλλο στρώμα TiO 2 layer υπάρχει 0.5% λιγότερο οξυγόνο--> Αγώγιμο. Προγραμματισμός με ηλεκτρικό πεδίο. Η μετακίνηση των ατόμων του οξυγόνου μεταβάλλει την αγωγιμότητα του στοιχείου. Μη Πτητική (τα άτομα του οξυγόνου δεν μετακινούνται) Οι εταιρίες Hynix και HP αναπτύσουν Resistive RAM http://spectrum.ieee.org/semiconductors/processors/how-we-found-the-missing-memristor/0
Read-Write Memories (RAM) ΣΤΑΤΙΚΗ ΜΝΗΜΗ (SRAM) Τα δεδομένα παραμένουν στη μνήμη όσο διατηρείται η τροφοδοσία Μεγάλο μέγεθος (6 transistors/cell) Γρήγορη απόκριση Διαφορικό σήμα ΔΥΝΑΜΙΚΗ ΜΝΗΜΗ (DRAM) Απαιτείται περιοδική ανανέωση των δεδομένων Μικρό μέγεθος (1-3 transistors/cell) Μικρότερη ταχύτητα Μονοπολικό σήμα (Single Ended)
Random access memory (RAM) Data inputs Write d n 1 d n 2 d 0 Sel 0 Sel 1 a 0 Sel 2 Address a 1 a m 1 decoder m -to-2 m Sel 2 m 1 Read Data outputs q n 1 q n 2 q 0
Static RAM Cells Data 1 Data 0 Sel Sel 0 Data Sel 1 RAM cell 2 x 2 array of SRAM cells
6-Transistor RAM Cell
1-Transistor DRAM Cell X Εγγραφή: Ο πυκνωτής Cs φορτίζεται ή εκφορτίζεται δίνοντας τιμές στο WL και BL Ανάγνωση: Ανακατανομή φορτίου μεταξύ της γραμμής δεδομένων (BL) και της χωρητικότητας αποθήκευσης. Η διαφορά δυναμικού μεταξύ 0 και 1 είναι πολύ μικρή ~ 250 mv
Advanced 1T DRAM Cells Word line Insulating Layer Cell plate Capacitor dielectric layer Cell Plate Si Capacitor Insulator Refilling Poly Transfer gate Storage electrode Isolation Storage Node Poly 2nd Field Oxide Si Substrate Trench Cell Stacked-capacitor Cell
Ζ-RAM http://www.hotchips.org/wp-content/uploads/hc_archives/hc18/2_mon/hc18.s3/hc18.s3t1.pdf Innovative Silicon Inc.
Πλεονάζοντα στοιχεία (Redundancy) Λόγω του πλήθους των στοιχείων μνήμης απαιτείται η χρήση πλεοναζόντων στοιχείων για αντικατάσταση των κατεστραμμένων
Σύγκριση τύπων μνήμης http://www.fujitsu.com/emea/services/microelectronics/fram/technology/
Περιφερειακά Μνημών
Περιφερειακά Μνημών ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ (DECODERS) ΕΝΙΣΧΥΤΕΣ (SENSE AMPLIFIERS) ΑΠΟΜΟΝΩΤΕΣ ΕΙΣΟΔΟΥ/ΕΞΟΔΟΥ (I/O BUFFERS) ΚΥΚΛΩΜΑΤΑ ΕΛΕΓΧΟΥ ΚΑΙ ΧΡΟΝΙΣΜΟΥ (CONTROL & TIMING)
Αποκωδικοποιητές Απαιτούνται 2 M σύνθετες λογικές πύλες (N)AND Decoder NOR Decoder
Αποκωδικοποιητές n inputs w 0 w n 1 y 0 2 n Enable En y 2 n 1 w 0 y 0 w 1 y 1 En w 1 w 0 y 0 y 1 y 2 y 3 1 1 1 1 0 0 0 1 1 x 0 1 0 1 x 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 En y 2 y 3 Αποκωδικοποιητής 2 σε 4
Ιεραρχικοί αποκωδικοποιητές Η υλοποίηση με πολλά στάδια βελτιώνει την απόδοση WL 1 WL 0 A 0 A 1 A 0 A 1 A 0 A 1 A 0 A 1 A 2 A 3 A 2 A 3 A 2 A 3 A 2 A 3 A 1 A 0 A 0 A 1 A 3 A 2 A 2 A 3 NAND decoder using 2-input pre-decoders
Αποκωδικοποιητής 4 σε 16 w 0 w 0 y 0 y 0 w 1 w 1 y 1 y 1 y 2 y 2 En y 3 y 3 w 2 w 3 w 0 y 0 w 1 y 1 w 0 y 0 w 1 y 1 y 2 En y 3 y 4 y 5 y 6 y 7 En En y 2 y 3 w 0 y 0 w 1 y 1 y 2 En y 3 y 8 y 9 y 10 y 11 w 0 y 0 w 1 y 1 y 2 En y 3 y 12 y 13 y 14 y 15
Μνήμη FLASH http://en.wikipedia.org/wiki/memory_card Κάρτες Μνήμης φωτογραφικών μηχανών Solid-State-Disk USB Flash Memories State-of-the-art το 2007 Samsung 64Gbits με χρήση 8 Ο.Κ. των 8Gbits Υπό κατασκευή Ολοκληρωμένο Κύκλωμα 64 Gbits http://www.samsung.com/products/ Semiconductor/FlashSSD/index.htm
H RAM στους προσωπικούς υπολογιστές FB-DIMM (fully buffered DIMM) www.kingston.com/newtech/default.asp SDRAM: Synchronous Dynamic RAM Ταχύτητα μνήμης: 66 MHz (PC66) - 133MHz (PC133). Μήκος λέξης: 64 bits, Μέγεθος: 128Kbytes 512 Kbytes DDR: Double Data Rate (2002) Ταχύτητα μνήμης: 200MHz (DDR200) 800 MHz (DDR800). Μήκος διαύλου: 128 bits, Μέγεθος: έως 2Gbytes
Σύγκριση ταχύτητας RAM
Επέκταση μνήμης
Επέκταση RAM -1 Data I/O Υλοποίηση RAM 256Κbytes με χρήση ολοκληρωμένων κυκλωμάτων 64 Kbytes
Επέκταση RAM -2 16 Data I/O lines Υλοποίηση RAM 64Κ λέξεων 16 ψηφίων με χρήση ολοκληρωμένων κυκλωμάτων 64 Kbytes
Περιγραφή RΟM σε VHDL (1) library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.all; entity ROM is port(addr : in unsigned (3 downto 0); data : out unsigned (7 downto 0); oe, cs : in std_logic); end ROM; architecture BHV of ROM is type ROM_TYPE is array (0 to 15) of unsigned (7 downto 0); constant PROGRAM : ROM_TYPE := ( "00000010", "00000000", "11001010", "10001011", "00010010, "00010010", "01110000", "11111010", "11001011", 11010010, 11110010", "01110100", "11011010", "10101011", 10010010, 11000111 );
Περιγραφή RΟM σε VHDL (2) begin process(cs, oe, addr) begin if ( cs = 0' and oe = 0 ) then data <= PROGRAM (conv_integer(addr)); elsif (CS = 1 ) then -- High Impendence data <= (others => Z ); end if; end process; end architecture;
Περιγραφή RAM σε VHDL (1) library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; entity ramchip is port (address : in std_logic_vector(3 downto 0); data : inout std_logic_vector(7 downto 0); CS, WE : in std_logic); end entity; architecture behaviour of ramchip is subtype byte is std_logic_vector(7 downto 0); type memo is array (0 to 15) of byte; variable memory: memo := (others => byte'(others=>'u'));
Περιγραφή RAM σε VHDL (2) begin process(address, CS, WE) begin if CS = '0' then if ( WE = 1 ) then -- Read operation data <= memory(conv_integer(address)); elsif WE = '0' then -- Write operation memory(conv_integer(address)) := data; end if; elsif (CS = 1 ) then -- High Impendence data <= (others => Z ); end if; end process; end architecture;
Τέλος Ενότητας