Καιρός


Επισκευές Υπολογιστών - Νέα - Συμβουλές και Τεχνάσματα.



πρόγνωση καιρού από το weather.gr

startMiner - free and simple next generation Bitcoin mining software

Κυριακή 6 Μαρτίου 2016

Πώς λειτουργούν τα SSD...

Πώς λειτουργούν τα SSD


Τα Solid State Drives κερδίζουν διαρκώς σε δηµοφιλία. Η υπεροχή τους έναντι των παραδοσιακών σκληρών δίσκων είναι αδιαµφισβήτητη. Πώς λειτουργούν όµως;

  •  
  •  
  •  
  •  
Για να κατανοήσουµε καλύτερα τον βαθµό υπεροχής των SSD έναντι τωνHDD αλλά και διαφοροποίησης των τεχνολογιών τους, θα αναφερθούµε πρώτα στους σκληρούς δίσκους.
Ένας σκληρός δίσκος αποθηκεύει δεδοµένα σε περιστρεφόµενους µαγνητικούς δίσκους. Έχει ένανκινούµενο βραχίονα µε κεφαλές, τις οποίες κινεί στις επιφάνειες των δίσκων, ώστε να γραφτούν ή να διαβαστούν αποθηκευµένα δεδοµένα από τις επιφάνειες των δίσκων.
Λόγω αυτής της κίνησης του βραχίονα επάνω από την επιφάνεια των δίσκων απαιτείται κάποιος χρόνος προκειµένου να τοποθετηθούν οι κεφαλές στο επιθυµητό σηµείο κάθε φορά, για εγγραφή ή και ανάγνωση. Επίσης, όταν κάποια αρχεία είναι αποθηκευµένα σε διαφορετικά σηµεία στους δίσκους, ο βραχίονας πρέπει να κινηθεί και να αλλάξει θέση περισσότερες από µία φορές για να ολοκληρωθεί η διαδικασία. Επιπρόσθετα, εάν ο σκληρός δίσκος έχει βρεθεί σεκατάσταση αναµονής, θα χρειαστούν επιπλέον µερικά δευτερόλεπτα µέχρι να ενεργοποιηθεί το µοτέρ και να τεθεί ξανά σε λειτουργία.
Ήταν ξεκάθαρο ευθύς εξαρχής ότι οι σκληροί δίσκοι, λόγω του τρόπου λειτουργίας τους, δεν επρόκειτο να φτάσουν ποτέ τους επεξεργαστές σε ταχύτητα. Ο χρόνος απόκρισης των δίσκων µετριέται σεmilliseconds, ενώ αυτός των CPU σε nanoseconds. Ένα millisecond είναι 1.000.000 nanoseconds κι ένας σκληρός δίσκος χρειάζεται 10-15 milliseconds για να βρει δεδοµένα και να αρχίσει να τα διαβάζει από την επιφάνεια του δίσκου όπου είναι αποθηκευµένα.
Οι κατασκευαστές προσπάθησαν να βελτιώσουν τις επιδόσεις των σκληρών δίσκων, µε υλοποιήσεις µικρότερης διαµέτρου, ενσωµατώνοντας ενδιάµεσες µνήµες cache και αυξάνοντας την ταχύτητα περιστροφής. Όµως, ακόµη και οι VelociRaptor της Western Digital, οι ταχύτεροι σκληροί δίσκοι που έχουν δηµιουργηθεί ποτέ για καταναλωτές, οι οποίοι περιστρέφονται µε 10.000 στροφές
το λεπτό, δεν µπορούν ούτε κατά διάνοια να συγκριθούν σε επιδόσεις µε τους επεξεργαστές.
Η διαφορετικότητα των SSD
Τα Solid State Drives [στερεάς κατάστασης] οφείλουν το όνοµά τους στο γεγονός ότι δεν έχουν κινούµενα µέρη. Τα δεδοµένα αποθηκεύονται σε συστοιχίες µνήµης NAND flash. Η NAND –σε αντίθεση µε τα τρανζίστορ της µνήµης DRAM, που χρειάζεται να ανανεώνεται αρκετές φορές το δευτερόλεπτο– έχει σχεδιαστεί για ναπαραµείνει στην κατάσταση στην οποία έχει φορτιστεί ακόµη κι αν δεν τροφοδοτείται µε ρεύµα, οπότε και διατηρεί τα αποθηκευµένα δεδοµένα.

Στο διάγραµµα 2, φαίνεται η αρχή λειτουργίας της NAND flash, για την ακρίβεια ενός "simple flash cell design". Τα ηλεκτρόνια αποθηκεύονται στη "floating gate", η οποία κατόπιν διαβάζει τα φορτισµένα "0" ή µη φορτισµένα "1." Στη NAND flash, το 0 σηµαίνει ότι τα δεδοµένα είναι αποθηκευµένα –σε αντίθεση µε ό,τι πιστεύουµε πως σηµαίνει ένα µηδενικό! Η NAND flash είναι οργανωµένη σε πίνακες. Ένας πίνακας αναφέρεται ως µπλοκ, ενώ οι γραµµές που απαρτίζουν το µπλοκ αποτελούν µία σελίδα. Τα συνηθισµένα µεγέθη σελίδωνείναι 2K, 4K, 8K ή 16K, και ανά µπλοκ υπάρχουν 128 έως 256 σελίδες. Ανάλογα, το µέγεθος ενός µπλοκ είναι από 256KB [2x128] έως 4MB [16x256].

Το πρώτο πλεονέκτηµα που προκύπτει είναι ευνόητο και αφορά στην ταχύτητα, αφού ένα SSD είναι µνήµη και δεν έχει µηχανικά µέρη. Στον πίνακα 1, µπορείτε να δείτε τους τυπικούς χρόνους προσπέλασης διαφορετικών µέσων αποθήκευσης, οι οποίοι έχουν αναχθεί σε microseconds για ευκολότερη σύγκριση. Η NAND δεν είναι τόσο γρήγορη όσο η DRAM, αλλά είναι ασύγκριτα ταχύτερη από τους σκληρούς δίσκους.
Στον πίνακα, υπάρχουν δύο σηµαντικά σηµεία που αξίζουν την προσοχή µας. Το πρώτο αφορά στο γεγονός ότι, όταν προστίθενται περισσότερα bits ανά κελί της NAND, επηρεάζεται σηµαντικά η απόδοση της µνήµης, ειδικά στην ταχύτητα εγγραφής. Ο τυπικός χρόνος απόδοσης ενός κελιού τριπλού επιπέδου [TLC] είναι τέσσερις φορές χειρότερος από αυτόν του µονού επιπέδου [SLC] όσον αφορά στην ανάγνωση και έξι φορές χειρότερος για εγγραφές. H TLC NAND, όπως φαίνεται, είναι και δύο φορές πιο αργή από την MLC, παρότι διατηρεί µόλις 50% περισσότερα δεδοµένα, δηλαδή τρία bits ανά κελί αντί για δύο.
Ο λόγος που η TLC είναι πιο αργή από την MLC και την SLC σχετίζεται µε τον τρόπο µε τον οποίο µεταφέρονται τα δεδοµένα εντός και εκτός των κελιών της NAND. Στην SLC, ο ελεγκτής χρειάζεται να ξέρει µόνο εάν τα bits είναι 0 ή 1. Στην MLC NAND, το κελί µπορεί να έχει τέσσερις τιµές [00, 01, 10 ή 11], ενώ στην TLC το κελί µπορεί να έχει οκτώ τιµές. Για την ανάγνωση της τιµής των κελιών, ο memory controller χρησιµοποιεί υψηλής ακρίβειας ηλεκτρική τάση για να βεβαιώσει εάν κάθε κελί είναι φορτισµένο ή όχι.
Samsung PM1633a SSD, 15,36GB





Ανάγνωση, εγγραφή και διαγραφή
Ένας βασικός περιορισµός που παρουσιάζουν τα SSD λόγω της λειτουργίας τους, είναι το γεγονός πως, ενώ όταν είναι κενά µπορούν να γράψουν και να διαβάσουν σε πολύ υψηλές ταχύτητες, η απόδοσή τους µειώνεται αισθητά όταν κάνουν overwrite, όταν πρέπει δηλαδή να αντικαταστήσουν δεδοµένα. Αυτό συµβαίνει διότι τα SSD διαβάζουν και γράφουν δεδοµένα σε επίπεδο σελίδων [από µεµονωµένες γραµµές του πίνακα µνήµης] και υποθέτοντας πως τα τριγύρω κελιά είναι άδεια, µπορούν να διαγράψουν δεδοµένα σε επίπεδο µπλοκ. Αυτό συµβαίνει επειδή για τη διαγραφή δεδοµένων στη NAND flash απαιτούνται υψηλά voltage. Ενώ θεωρητικά µπορεί να γίνει διαγραφή σε επίπεδο σελίδων, η απαιτούµενη ποσότητα του ρεύµατος δηµιουργεί πρόβληµα στα τριγύρω κελιά, κι έτσι ηδιαγραφή εφαρµόζεται σε επίπεδο µπλοκ, που έχουν µεγαλύτερη έκταση.
Ο µόνος τρόπος για να ανανεώσει ένα SSD µία υπάρχουσα σελίδα, είναι να αντιγράψει τα περιεχόµενα όλου του µπλοκ στη µνήµη, νασβήσει το µπλοκ και να µεταφέρει πίσω τα προηγούµενα δεδοµένα µαζί µε τα νέα. Εάν είναι γεµάτο και δεν υπάρχουν κενές σελίδες, το SSD πρέπει πρώτα να σαρώσει τα µπλοκ και να βρει αυτά που είναι µαρκαρισµένα για διαγραφή, να διαγράψει τα δεδοµένα τους και κατόπιν να γράψει τα νέα. Αυτή είναι η αιτία που τα SSD γίνονται πιο αργά µε το πέρασµα του χρόνου.
Εάν έχετε ασχοληθεί µε τα SSD, πιθανώς έχετε συναντήσει τον όρο "garbage collection". Πρόκειται για µία παρασκηνιακή διεργασία που επιτρέπει στο drive να µετριάζει την πτώση της ταχύτητας από τους κύκλους εγγραφής/διαγραφής, εκτελώντας συγκεκριµένες λειτουργίες. Η διαδικασία garbage collection απεικονίζεται στοδιάγραµµα 1. Σε αυτό το παράδειγµα, το drive εκµεταλλεύτηκε το πλεονέκτηµα πως µπορεί να γράψει γρήγορα σε κενές σελίδες, εγγράφοντας νέες τιµές στα τέσσερα πρώτα µπλοκ A-D. Επίσης, έγραψε τέσσερα νέα µπλοκ, τα E-H. Τα µπλοκ A-D έχουν µαρκαριστεί πως έχουν παρωχηµένες πληροφορίες. Όσο θα βρίσκεται σε αναµονή, το SSD θα µεταφέρει τις σελίδες που έχουν νέα δεδοµένα σε ένα νέο µπλοκ, θα σβήσει το παλιό µπλοκ και θα το µαρκάρει ως κενό χώρο. Αυτό σηµαίνει πως, την επόµενη φορά που θα χρειαστεί να γράψει κάτι, θα γράψει απευθείας στο κενό µπλοκ Χ και δεν θα χρειαστεί να κάνει εκείνη τη στιγµή όλη τη χρονοβόρα διαδικασία της µεταφοράς και διαγραφής των δεδοµένων.
Ένα σηµαντικό χαρακτηριστικό των SSD είναι το TRIM. Όταν διαγράφεται ένα αρχείο από τα Windows σε έναν σκληρό δίσκο, η διαγραφή δεν εκτελείται αµέσως. Αντίθετα, το λειτουργικόενηµερώνει το drive πως µπορεί να γράψει πάνω από αυτό το αρχείο, αφού έχει µαρκαριστεί για διαγραφή. Γι' αυτό, άλλωστε, µπορούν να ανακτηθούν δεδοµένα που έχουν διαγραφεί. Σε έναν σκληρό δίσκο, το λειτουργικό δεν χρειάζεται να ασχοληθεί µε το πούβρίσκονται τα δεδοµένα προς διαγραφή ή πού θα γραφτούν τα νέα, στα SSD όµως το στοιχείο αυτό έχει σηµασία!
Η εντολή TRIM επιτρέπει στο λειτουργικό να ενηµερώνει το SSD ότι µπορεί να µην ξαναγράψει δεδοµένα, την επόµενη φορά που θα διαγράψει ένα µπλοκ. Με τον τρόπο αυτό, µειώνεται η ποσότητα των δεδοµένων που [επαν]εγγράφονται στο SSD και παρατείνεται ο χρόνος ζωής του. Οι εγγραφές επιβαρύνουν τις µνήµες NAND πολύ περισσότερο από όσο οι αναγνώσεις –αν και οι σύγχρονες NAND έχουν µεγαλύτερες ανοχές.
Ακριβώς επειδή τα SSD γράφουν ανά σελίδα αλλά σβήνουν ανά µπλοκ, η ποσότητα των δεδοµένων που γράφονται είναι πάντα µεγαλύτερη από την πραγµατική, αυτή δηλαδή των νέων δεδοµένων. Εάν, για παράδειγµα, γίνει µια αλλαγή σε ένα αρχείο µεγέθους 4KB, όλο το µπλοκ που το περιέχει πρέπει να ανανεωθεί, δηλαδή να ξαναγραφτεί. Αναλόγως το πλήθος των σελίδων που περιλαµβάνει ένα µπλοκ και το µέγεθός τους, µπορεί να χρειαστεί να ξαναγραφτούν δεδοµένα µεγέθους 4MB για να ενηµερωθεί [update] ένα αρχείο των 4KB. Η λειτουργία garbage collection µειώνει τον όγκο των αρχείων που επανεγγράφονται όπως και η TRIM, που αναλύσαµε πιο πάνω.
Μία ακόµη σηµαντική τεχνολογία που ενσωµατώνεται στα SSD είναι το wear leveling. Πρόκειται για µία πρακτική που εξασφαλίζει πως όλα τα NAND µπλοκ χρησιµοποιούνται µε την ίδια συχνότητα. Με τον τρόπο αυτό, διασφαλίζεται κατά το δυνατό η διάρκεια ζωής του drive, αφού τα µπλοκ της µνήµης φθείρονται οµοιόµορφα. Ταυτόχρονα, οι εξελιγµένοι αλγόριθµοι wear leveling προσπαθούν να µην επιβαρύνουν µε άσκοπες επανεγγραφές τα SSD, στο πλαίσιο της επίτευξης οµοιόµορφης κατανοµής χρήσης των µπλοκ µνήµης.

Ο ελεγκτής
Όπως είναι εύλογο από τα παραπάνω, ένα SSD απαιτεί πολύ πιοπερίπλοκο και εξελιγµένο µηχανισµό ελέγχου απ' ό,τι ένας σκληρός δίσκος. Οι σκληροί δίσκοι, βέβαια, έχουν διαφορετικές τεχνολογικές προκλήσεις. Η σηµαντικότερη, πιθανώς, είναι η εξισορρόπηση των µαγνητικών κεφαλών ανάµεσα στους δίσκους, σε απόσταση µερικώννανοµέτρων από την επιφάνειά τους, ενώ οι δίσκοι περιστρέφονται από 5.400 έως και 10.000 στροφές ανά λεπτό και, πολύ συχνά, σε περιβάλλον µε κραδασµούς.
Οι ελεγκτές των SSD, όµως, είναι µία κατηγορία από µόνοι τους. Συχνά, διαθέτουν µία ποσότητα µνήµης DDR3, επικουρικά για τη διαχείριση της NAND. Αρκετά drives περιλαµβάνουν µία ενδιάµεση µνήµη SLC cache µε στόχο την αύξηση των επιδόσεων, αφήνοντας τη NAND να ασχολείται αποκλειστικά µε τους κύκλους ανάγνωσης και εγγραφής. Η NAND flash συνδέεται µε τον ελεγκτή µε µια σειρά απόπαράλληλα κανάλια µνήµης, θυµίζοντας ως διάταξη load balancing συστήµατα αποθήκευσης µεγάλων εγκαταστάσεων. Τα συστήµατα, άλλωστε, που περιγράψαµε παραπάνω θυµίζουν µια µικρογραφία κι έχουν παραλληλισµούς µε ανάλογες διαδικασίες µεγάλων enterprise εγκαταστάσεων.
Ορισµένα drives, επίσης, χρησιµοποιούν αλγορίθµους συµπίεσης δεδοµένων για να µειώσουν τον συνολικό αριθµό των εγγραφών και να αυξήσουν τη διάρκεια ζωής τους. Επιπλέον, ο SSD controller διαχειρίζεται διαδικασίες διόρθωσης λαθών [error correction], καθώς και περίπλοκους αλγορίθµους που ελέγχουν σε επίπεδο bit για σφάλµατα.
Σε έναν υψηλά ανταγωνιστικό τοµέα, όπως είναι αναµενόµενο, οι εταιρείες δεν δίνουν πληροφορίες σε βάθος και λεπτοµέρεια, προκειµένου να αναλύσουµε περαιτέρω τις λειτουργίες των ελεγκτών. Η συµπεριφορά και οι επιδόσεις των NAND flash και εν τέλει ενός drive εξαρτώνται σε σηµαντικό βαθµό από τον controller του, και οι εταιρείες κρατούν καλά κρυµµένα µυστικά ως προς τις τεχνολογίες που ενσωµατώνουν.
Το µέλλον
Οι επιδόσεις έχουν το κόστος τους. Οι τιµές ανά gigabyte έχουν σηµειώσει σηµαντική πτώση τον τελευταίο χρόνο, αλλά οι αυξοµειώσεις δεν αποκλείονται, ανάλογα µε τις τάσεις της αγοράς και το ύψος τής παραγωγής. Άλλωστε, τα SSD έχουν αρχίσει και βρίσκουν ολοένα και συχνότερα ανοιχτές πόρτες –ή racks, αν προτιµάτε– και σε data centers. Σε τεχνολογικό επίπεδο, οι NAND flash των 20 νανόµετρων ενισχύουν τις επιδόσεις και τη δυνατότητα αύξησης της πυκνότητας και της συνολικής χωρητικότητας έναντι των µνηµών των 40 νανόµετρων.
Παρά τις βελτιώσεις που ήρθαν ή έρχονται στο απώτερο µέλλον, αναµένεται πως οι NAND θα αντικατασταθούν. Υποψήφιοι είναι ηµαγνητική RAM και η µνήµη αλλαγής φάσης [phase change]. Είναι ακόµα νωρίς όµως, αφού αµφότερες οι τεχνολογίες βρίσκονται στα σπάργανα κι έχουν αρκετό δρόµο να διανύσουν. Μέχρι τουλάχιστον το 2020, η NAND flash θα δίνει ζωή στα SSD και ταχύτητα στα PC µας!

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου