Jump to content



Mtron Mobi SSD 3525 εμπειρίες.


mariosalice

Recommended Posts

Στοιχεία SSD

1. NAND Flash μνήμη

2. Ελεγκτής

3. Dram cache

4. Sata bridge (σε παλιότερες υλοποιήσεις)

Mtron352532GB2.png

Εικόνα 1: Mtron 3525 SSD 32GB

NAND Flash

Η NAND Flash μνήμη είναι ένας ημιαγωγός που αποθηκεύει ένα bit πληροφορίας, «0» ή «1» ακόμα κι όταν δεν τροφοδοτείται με ρεύμα.

Μπορούμε να διαβάσουμε, να προγραμματίσουμε ή να σβήσουμε την πληροφορία αυτή.

Δουλεύει όπως μια αυτόματη πόρτα. Πατάμε ένα κουμπί και ελέγχουμε αν άνοιξε.

Με αυτό τον τρόπο ελέγχουμε την αποθηκευμένη πληροφορία.

Περίπτωση 0, η πόρτα ανοίγει. Το καταλαβαίνουμε από το ρεύμα. Η αποθηκευμένη πληροφορία είναι «0»

Περίπτωση 1, η πόρτα δεν ανοίγει. Δεν περνάει ρεύμα. Η αποθηκευμένη πληροφορία είναι «1»

Control Gate

Αντιστοιχεί στο κουμπί που ανοίγει την αυτόματη πόρτα. Όταν πατάμε το κουμί, εφαρμόζουμε μια τάση. Από την τάση παράγεται κάποιο ρεύμα. Αν είναι αρκετό, η πόρτα ανοίγει.

Float Gate

Πρόκειται για μια κυψέλη, που έχει τη δυνατότητα να αποθηκεύσει ηλεκτρόνια και να τα διατηρήσει χωρίς ρεύμα για δέκα περίπου χρόνια. Όταν μια κυψέλη γεμίσει με ηλεκτρόνια, απαιτείται μεγαλύτερη τάση για να πετύχουμε το κατώφλι του ρεύματος που ανοίγει την πόρτα.

Drain και Bitline

Όταν ανοίξει η πόρτα, ρέουν ηλεκτρόνια από τη γείωση προς το τούνελ και την πηγή (bitline).

Το υπόστρωμα σιλικόνης

Εμποδίζει τη ροή των ηλεκτρονίων όπως μια κλειστή πόρτα. Όταν το διαπεράσει ρεύμα πάνω από ένα όριο, ανοίγει ένα τούνελ και τα ηλεκτρόνια ρέουν.

Tunneling

Το tunneling είναι ένα φυσικό φαινόμενο που επιτρέπει τη ροή ηλεκτρονίων μέσα από ένα μονωτικό υλικό, όταν διαπεραστεί από ρεύμα.

Οι λειτουργίες εγγραφής και διαγραφής (Hot-electron injection και quantum tunneling) στηρίζονται σ' αυτό το φαινόμενο

Προγραμματισμός (hot-electron injection)

Για να προγραμματίσουμε τις μνήμες NAND flash εγχύουμε ηλεκτρόνια μέσα στις κυψέλες μέσω του υποστρώματος σιλικόνης, εφαρμόζοντας τάση 20v στην πύλη ελέγχου (control gate).

Λειτουργία διαγραφής (quantum tunneling)

Για να διαγράψουμε τη μνήμη NAND flash αφαιρούμε ηλεκτρόνια από την κυψέλη εφαρμόζοντας τάση 20v στο υπόστρωμα σιλικόνης.

FLash6.jpg

Εικόνα 2: Διάγραμμα του ρεύματος σε σχέση με την τάση στην πύλη ελέγχου, όταν έχουμε άδεια και γεμάτη κυψέλη.

Οποιαδήποτε τάση στην πύλη ελέγχου (control gate) ανάμεσα στα 3 και στα 5v υπερβαίνει το κατώφλι που ανοίγει το κανάλι ροής ηλεκτρονίων μόνο στην περίπτωση που η κυψέλη είναι άδεια. Αν η κυψέλη είναι φορτισμένη, απαιτείται τάση μεγαλύτερη από 5v για να ανοίξει το κανάλι και να ανιχνεύσουμε ηλεκτρόνια στο bitline.

Any voltage on the control gate between 3v and 5v, meets the current threshold that opens the tunnel, only in case of an empty floating gate. In case of a charged floating gate we need more than 5v to open the tunnel and detect electrons in the bitline.

NANDflashHell.png

Figure 3: Τρόπος προσδιορισμού της αποθηκευμένης πληροφορίας σε μια σειρά από τρεις ημιαγωγούς μνήμης NAND Flash. Σε περίπτωση που χαλάσει ένας ημιαγωγός η πληροφορία εξακολουθεί να ανιχνεύεται.

Link to comment
Share on other sites

  • Replies 125
  • Created
  • Last Reply

Τα παραπάνω παραδείγματα ισχύουν και για MLC.

Η μόνη διαφορά είναι ότι στην ανάγνωση αντί να δοκιμάζουμε μόνο μια τάση, δοκιμάζουμε τρεις.

Το ίδιο και στην εγγραφή, αντί να προγραμματίζουμε μια κατάσταση (γεμάτη), προγραμματίζουμε τρεις, γεμάτη μισογεμάτη και μισοάδεια.

Αυτό φαίνεται καλύτερα αν δούμε το διάγραμμα ρεύματος - τάσης, όπου μπορούμε να προσθέσουμε ενδιάμεσα τις καταστάσεις μισογεμάτη και μισοάδεια κυψέλη.

Με αυτό τον τρόπο εκεί που δοκιμάζαμε μόνο με 3v, τώρα δοκιμάζουμε επιπλέον και με 3,7v και 4,3v.

Όποιες κυψέλες ανοίξουν σε κάθε περίπτωση, έχουμε δύο bits από κάθε κυψέλη ως εξής:

3,0v =1-1 bits

3,7v =1-0 bits

4,3v = 0-1 bits

5,0v = 0-0 bits

Τα νούμερα τα έβαλα στην τύχη (αν και τα 3v ισχύουν).

Το πλεονέκτημα είναι ότι εκεί που θέλαμε 16 κυψέλες στη σειρά wordline για ένα word (16bits), σε mlc θέλουμε 8.

Με αυτό τον τρόπο, διπλασιάζουμε τη χωρητικότητα αλλά και την εγγραφή, αφού γίνεται σε 8 βήματα αντί για 16 για ίδιο αριθμό bit.

Εν τούτοις, τα σφάλματα είναι περισσότερα, οι προσπάθειες εγγραφής τριπλάσιες και το ίδιο και οι αναγνώσεις.

Έτσι τελικά η μειώνονται οι ταχύτητες, ενώ φθείρεται πολύ γρηγορότερα το chip.

Τελικά μειώνεται σημαντικά η ζωή της μνήμης, αφού κάποια στιγμή, πέρα από την καταστροφή των κυψελών, θα έχουμε και μόνιμη φόρτιση του υποστρώματος, οπότε δεν θα γίνεται διαγραφή του eraseblock.

Link to comment
Share on other sites

NAND Flash matrix

This is a 3D schematic representation of the NAND flash matrix as found on SSD pages.

The first row of wordlines got attention and checked by applying 3v on 16 control gates.

The results travel through the bitlines.

To program (write by hot injection) certain cells on a wordline, we ground the corresponding bitlines and apply 20v on all the control gates of the selected wordline.

NANDflashEng12.png

This work is based on the original US patent 4612212 (Sep. 16, 1986) by Dr. Fujio Masuoka et. al. titled Method for manufacturing EEPROM.

Other sources

http://www.driveyourlaptop.com/video/ssd-and-hdd-architecture-and-terminology

http://en.wikipedia.org/wiki/Flash_memory#NAND_flash

Not sure whether wiring is for NAND flash memory though.

I've seen different publications saying different things.

There are many ways to do the same think though.

Enjoy

Mariosalice

Link to comment
Share on other sites

Sorry για τα απανωτά σβησίματα, αλλά διαπίστωσα ότι το τρισδιάστατο σχέδιο που βασίστηκε στην περιγραφή του Dr. Fujio Masuoka, δεν είχε την κλασσική συνδεσμολογία NAND αλλά άλλη που μοιάζει περισσότερο με NOR. Η wikipedia αναφέρει ότι με την πατέντα του 1986 ανακοινώθηκε για πρώτη φορά το NAND flash.

Οι διαφορά είναι ότι στο πρώτο σχέδιο είχαμε ξεχωριστά flash ενώ στο τωρινό μια σειρά ενιαία σε κάθε bitline.

Αν ενδιαφέρει κάποιον και το προηγούμενο σχέδιο το ανεβάζω για σύγκριση.

Link to comment
Share on other sites

Στην τελευταία φωτογραφία, οριζόντια, είναι η σειρά bitline, όπου στην τελευταία κυψέλη έδωσα νούμερο 1024.

Κάθε Page μέσα στο eraseblock, στα chip που χρησιμοποιούν οι κατασκευαστές SSD, έχει συνήθως μέγεθος 2048 ή 4096 bytes. Αν υπολογίσουμε ότι κάθε 16bit wordline έχει 16κυψέλες, δηλαδή δύο bytes, σε SLC, έχουμε 4096bytes/2=2048 ή 2048/2=1024. Άρα κάθε bitline έχει 1024 ή 2048 κυψέλες (αποθήκες ηλεκτρονίων) συν κάποιες επιπλέον για πληροφορίες (metafiles).

Άρα κάθε page 4Κ (4096Bytes) μέσα σε ένα eraseblock, έχει 16bitlinesX1024wordlines σε SLC και 8bitlinesX1024 wordlines σε MLC. Στο σχέδιο τα bitline είναι οι οριζόντιες γραμμές και έχουμε 16 οριζόντιες γραμμές και τα wordline είναι 1024, φαίνονται κάθετα στο σχέδιο και οι 16 κυψέλες κάθε wordline συνδέονται με μια κίτρινη γραμμή.

Τι συμπεράσματα μπορούμε να βγάλουμε από το τελευταίο σχέδιο?

Αρχικά βλέπουμε ότι η ανάγνωση ενός page 4K γίνεται σειριακά, word by word.

Δηλαδή διαβάζει ταυτόχρονα 16bits (ένα word), δίνοντας ρεύμα 3V στο πρώτο wordline, μετά ελέγχει το δεύτερο, το τρίτο κτλ μέχρι να φτάσει στο τελευταίο που είναι το 1024ο.

Για να γράψει ένα block κάνει το εξής.

Έστω ότι όλα τα float gates είναι άδεια από ηλεκτρόνια και θέλουμε να γράψουμε τα παρακάτω words.

1011011111111111

1011011111111111

1011011111111111

Θέλουμε να φορτίσουμε με ηλεκτρόνια τις εξής κυψέλες

1ο wordline: 2,5

2o wordline: 2,5

3o wordline: 2,5

Γειώνουμε τα 2,5 bitlines και δίνουμε 20v σε όλα τα control gates του πρώτου wordline.

Γειώνουμε τα 2,5 bitlines και δίνουμε 20v σε όλα τα control gates του δεύτερου wordline.

Γειώνουμε τα 2,5 bitlines και δίνουμε 20v σε όλα τα control gates του τρίτου wordline.

Θα μπορούσε όμως να γίνει και το εξής.

Γειώνουμε 2ο και 5ο bitlines και δίνουμε 20v σε όλα τα control gates στα τρία πρώτα wordlines ταυτόχρονα.

Στην περίπτωση αυτή αναγνωρίσαμε ένα pattern και δεν ακολουθήθηκε η τυπική διαδικασία εγγραφής.

Αν λοιπόν ένας controller είναι έξυπνος, μπορεί να μειώσει την ταχύτητα εγγραφής με αλγόριθμους, όπως στο παράδειγμα που η εγγραφή έγινε τρεις φορές πιο γρήγορα.

Ένα άλλος τρόπος διπλασιασμού της ταχύτητας είναι τα Planes.

Στην περίπτωση αυτή, ένα chip αντί να έχει ένα Plane, έχει δύο, χωρίζοντας τα eraseblocks σε μονά ζυγά. Μονά στο ένα Plane, ζυγά στο άλλο.

Έτσι όταν θέλουμε να γράψουμε ένα αρχείο 8Κ, γράφονται ταυτόχρονα τα δεδομένα σε δύο pages που έχουν ίδια αρίθμιση. Το πρώτο word στο πρώτο Plane, το δεύτερο στο 2ο κτλ. Αν δούμε το σχέδιο στο θέμα «How SSDs work - Eraseblocks» τα pages ορίζονται ως A1(1) κτλ. Για να μην υπάρξει λοιπόν μπέρδεμα, χρησιμοποιείται το ίδιο page σε κάθε eraseblock, πχ το Β1(2) που ως Β1 είναι μονό και το Β2(2) που έχει την ίδια διεύθυνση αλλά στο ζυγό 2ο eraseblock.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.