Toshiba OCZ RD400Α 512GB Review: NVMe's the reason
H βιομηχανία γνώριζε από την αρχή πως η αρχική περίοδος των SATA Solid State Drives δεν θα διαρκούσε για πολύ. Η αιτία είναι πως οι SSDs έχουν περισσότερα κοινά με την ταχύτατη μνήμη RAM του συστήματος, παρά με τους αργούς σκληρούς δίσκους, τους οποίους κατά κάποιον τρόπο "εξομοίωναν". Στην αρχική φάση της εισόδου των SSDs στην αγορά ήταν αρκετά πιο βολική η χρήση των υπαρχόντων υποδομών, με τα drives να αξιοποιούν τo SATA interface και το AHCI πρωτόκολλο επικοινωνίας. Για την πρώτη φάση, τα δυο αυτά πρότυπα φαινόντουσαν αρκετά για τους SSDs, μέχρι εκείνοι να αυξήσουν δραματικά τις επιδόσεις τους - όπως συμβαίνει τα τελευταία χρόνια. Έως ότου ήρθε η στιγμή στην οποία οι SSDs εξάντλησαν τις δυνατότητες των δυο αυτών προτύπων, οδηγώντας σε ένα φαινόμενο που οι τελευταίας γενιάς SSD απέδιδαν πανομοιότυπα - κοντά στα 500 MB/s.
H βιομηχανία γνώριζε από την αρχή πως η αρχική περίοδος των SATA Solid State Drives δεν θα διαρκούσε για πολύ. Η αιτία είναι πως οι SSDs έχουν περισσότερα κοινά με την ταχύτατη μνήμη RAM του συστήματος, παρά με τους αργούς σκληρούς δίσκους, τους οποίους κατά κάποιον τρόπο "εξομοίωναν". Στην αρχική φάση της εισόδου των SSDs στην αγορά ήταν αρκετά πιο βολική η χρήση των υπαρχόντων υποδομών, με τα drives να αξιοποιούν τo SATA interface και το AHCI πρωτόκολλο επικοινωνίας. Για την πρώτη φάση, τα δυο αυτά πρότυπα φαινόντουσαν αρκετά για τους SSDs, μέχρι εκείνοι να αυξήσουν δραματικά τις επιδόσεις τους - όπως συμβαίνει τα τελευταία χρόνια. Έως ότου ήρθε η στιγμή στην οποία οι SSDs εξάντλησαν τις δυνατότητες των δυο αυτών προτύπων, οδηγώντας σε ένα φαινόμενο που οι τελευταίας γενιάς SSD απέδιδαν πανομοιότυπα - κοντά στα 500 MB/s.
Οι κατασκευαστές έπρεπε πλέον να αποφασίσουν για το μέλλον των "μη πτητικών" (non volatile) μέσων αποθήκευσης, οι οποίοι στην SATA μορφή τους όχι μόνο δεν έχουν κάτι παραπάνω να προσφέρουν, αλλά συνεχίζουν να αποτελούν το bottleneck ενός συστήματος. Ευτυχώς για τους κατασκευαστές, οι υποδομές για τα επόμενης γενιάς drives υπήρχαν ήδη, και ακούν στο όνομα PCI Express. Αυτό που απαιτούνταν μονάχα ήταν η δημιουργία ενός νέου πρωτοκόλλου επικοινωνίας, το οποίο θα ενεργοποιούσε τις προχωρημένες δυνατότητες και την πλήρη δυναμική των SSDs. Έτσι κατέληξαν στο Non-Volatile Memory Express (NVMe), το οποίο αποτελεί και την "παρακαταθήκη" για τα drives του μέλλοντος. Περισσότερες πληροφορίες για το NVMe μπορείτε να διαβάσετε στην επόμενη σελίδα.
Toshiba ή OCZ; Η εξαγορά της δεύτερης από την πρώτη σήμανε και την αρχή της διαφοροποίησης του branding. Ενώ μέχρι πρότινος η OCZ δρούσε σχεδόν αυτόνομα, παρά την εξαγορά της, η απόφαση που εν τέλει λήφθηκε ήταν η OCZ να γίνει ένα brand εντός της Toshiba, η οποία αποτελεί και κατασκευάστρια του προϊόντος που ακολουθεί. Ενώ λοιπόν θα γνωρίζαμε το προϊόν ως OCZ RevoDrive 400, αυτό που τελικά προέκυψε είναι ο Toshiba OCZ RD400, με το review sample να έρχεται σε χωρητικότητα των 512GB και να είναι καθ' όλα έτοιμο για το νέο NVMe πρότυπο.
Στην συσκευασία του RD400 περιλαμβάνονται τα απολύτως βασικά, με το εγχειρίδιο οδηγιών, την μονάδα του drive που έρχεται εξ΄ ορισμού σε μια PCI Exress κάρτα, καθώς και ένα συμπληρωματικό low profile bracket για συστήματα με χαμηλό ύψος.
Παρά την διαφοροποίηση του από τους βασικούς SATA SSDs, η λογική παραμένει παρόμοια. Μια σειρά από NAND μνήμες, συνοδεύεται από τον Toshiba-branded ελεγκτή και επικοινωνεί με το σύστημα μέσω μιας PCI Express x4 θύρας. Σε μορφή PCI κάρτας ο RD400 έχει διαστάσεις 15.5 x 5.5 εκατοστά και απαιτεί μόλις ένα PCI Slot.
Στην πραγματικότητα, οι πιο παρατηρητικοί θα διαπιστώσουν πως η κάρτα δεν είναι τίποτα περισσότερο από έναν μετατροπέα M.2 το PCI-e. Η ουσία του RD400 εμφανίζεται στο M.2 drive που δεσπόζει στο κέντρο της κάρτας, ενώ εξετάζοντας τις λεπτομέρειες παρατηρούμε πως το M.2 drive μπορεί να αφαιρεθεί εύκολα και χωρίς την απώλεια της εγγύησης. Η PCI-e κάρτα επί της ουσίας είναι το RD400A SKU, με τον RD400 που εμπεριέχεται να κυκλοφορεί στην αγορά και χωρίς αυτή.
Το drive έχει συνολική χωρητικότητα περί τα 512GB - στην πραγματικότητα μετά το πέρας της εγκατάστασης η συνολική χωρητικότητα ανέρχεται στα 477 πραγματικά Gigabyte. Εδώ αξίζει να σημειώσουμε πως το RD400 έρχεται σε χωρητικότητες 128GB, 256GB και 1024GB πέρα από το μοντέλο των 512GB που είχαμε στην διάθεσή μας.
Η κύρια μονάδα δεν είναι κάτι περισσότερο από ένα M.2 drive μήκους 80mm. To drive φαίνεται πως είναι ανεπτυγμένο και εξ' ολοκλήρου από την Toshiba, καθώς τόσο ο controller όσο και οι NAND μνήμες φέρουν το branding της εταιρίας.
Στα ενδότερα, αυτό που ξεχωρίζει είναι ο κεντρικός ελεγκτής με το branding της Toshiba. O TC58NCP070GSB δεν έχει επίσημα specs, με τις ενδείξεις να κάνουν λόγο για έναν 3-πύρηνο ελεγκτή 4 καναλιών - χωρίς ωστόσο να είναι επιβεβαιωμένες πληροφορίες.
Στο αποθηκευτικό κομμάτι, ξεχωρίζουν τα 2 Toshiba MLC NAND chips που έχουν μέθοδο ολοκλήρωσης στα 15nm και χωρητικότητα 128 Gigabits έκαστο. Επιπλέον συναντάμε και ένα βοηθητικό DRAM buffer το οποίο είναι κατασκευής Samsung και είναι τεχνολογίας LPDDR3 με χαμηλό voltage.
Βάση των παραπάνω στοιχείων, η OCZ αναφέρει περί τα 2600 MB/s μέγιστων αναγνώσεων και 190000 4KB IOPS, ενώ στις εγγραφές αναμένουμε 1600 MB/s και 120000 4Κ IOPS, με την αναμενόμενη διάρκεια ζωής να ανέρχεται στις 296 ΤB.
Προτού όμως προχωρήσουμε με τις επιδόσεις του drive, ας ρίξουμε μια ματιά στον αναλυτικό πίνακα των specs του Toshiba OCZ RD400Α 512GB.
The story so far
Οι περισσότεροι SSDs έως τώρα χρησιμοποιούσαν τους υπάρχοντες διαύλους επικοινωνίας με το σύστημα. Από την αρχική τους είσοδο στην μαζική αγορά, οι SSDs έκαναν χρήση του SATA interface και του AHCI (Advanced Host Controller Interface), δύο στάνταρ τα οποία σχεδιάστηκαν έχοντας κατά νου την βέλτιστη λειτουργία των σκληρών δίσκων, αλλά όχι των SSDs. Το πρόβλημα άρχισε να εμφανίζεται όταν αφ' ενός μεν οι non-volatile μνήμες των SSD άρχισαν να γίνονται ταχύτερες, εξαντλώντας έτσι το bandwidth των 6 Gbps του SATA interface, αλλά και το βάθος εντολών που προσφέρει το AHCI το οποίο δεν είναι αρκετά αποδοτικό για SSDs που χρησιμοποιούν το PCI Express bus.
Πιο συγκεκριμένα, σαν ένα λογικό interface το AHCI αναπτύχθηκε κατά την περίοδο στην οποία ο σκοπός ενός host bus adapter (HBA) σε ένα σύστημα ήταν να συνδέσει το επεξεργαστή και την μνήμη με μια αρκετά πιο αργή μονάδα αποθήκευσης, η οποία ήταν βασισμένη σε περιστρεφόμενο μαγνητικό μέσο - aka σκληρός δίσκος. Ενώ λοιπόν το AHCI ήταν υπερ-αρκετό για μηχανικούς σκληρούς δίσκους, ήταν μη αποδοτικό για τους SSDs οι οποίοι έχουν συμπεριφορά εφάμιλλη με την μνήμη RAM παρά ως ένα περιστρεφόμενο μαγνητικό μέσο.
About NVMe
Το NVMe σχεδιάστηκε από την αρχή, λαμβάνοντας υπ' όψη τα νέα δεδομένα. Στόχος του νέου προτύπου ήταν να αξιοποιήσει τα χαμηλότερα latencies των SSDs σε συνδυασμό με τις δυνατότητες παραλληλοποίησης δραστηριοτήτων, συμπληρώνοντας έτσι τις δυνατότητες παραλληλοποίησης που προσφέρουν οι σύγχρονοι επεξεργαστές, πλατφόρμες και εφαρμογές.
Στο υψηλό επίπεδο, οι βασικές καινοτομίες που προσφέρει το NVMe σε σχέση με το AHCI είναι η δυνατότητα του να εκμεταλλεύεται την παραλληλοποίση του που προσφέρει το σύγχρονο hardware και software, προσφέροντας σημαντικές διαφοροποιήσεις στο βάθος της ουράς των εντολών (queue depth), να προσφέρει αποδοτικότητα στην επεξεργασία των interrupts, καθώς και να αυξήσει των αριθμό των προσβάσεων στους registers οι οποίοι δεν έχουν την δυνατότητα για caching, προσφέροντας έτσι σημαντικές βελτιώσεις στις συνολικές επιδόσεις.
Για παράδειγμα, μια σημαντική βελτίωση αφορά την δυνατότητα μεταφορών 4KB με την χρήση μόνο μιας εντολής, σε αντίθεση με τις δυο που απαιτούνταν στο παρελθόν, ενώ οι NVMe SSDs μπορούν να επεξεργαστούςν πολλαπλές ουρές εντολών σε αντίθεση με μια - και όταν λέμε πολλαπλές, ο μέγιστος αριθμός τους μπορεί να φτάσει τις 65536. Το τελευταίο στοιχείο αποτελεί μια σημαντική βελτίωση για data-based περιβάλλοντα εργασίας που επιβάλλουν πολλαπλές αιτήσεις για I/O, κάτι που αφορά την server βιομηχανία.
Support
PCI Express SSDs υπάρχουν ήδη στην αγορά, όμως βασίστηκαν στα ήδη υπάρχοντα πρότυπα, καθώς και σε μερικές non-standard υπολοιήσεις. Το τελευταίο αποτελεί και ένα δυνητικό πρόβλημα, καθώς ένα μη καθιερωμένο πρότυπο απαιτεί και περισσότερη δουλειά σχετικά με το κομμάτι των οδηγών (drivers) αλλά και της ενιαίας συμβατότητας με αρκετά συστήματα. To NVMe έρχεται να δώσει την λύσει, καθώς το καθιερωμένο πρότυπο απαιτεί έναν ενιαίο driver, που παρέχεται μέσω του λειτουργικού συστήματος.
Η υποστήριξη όμως απαιτείται και σε επίπεδο BIOS. Τα περισσότερα UEFI BIOS έχουν ενσωματωμένη υποστήριξη, κάτι που όμως δεν συμβαίνει για παλαιότερου είδος BIOS - κάτι που πρακτικά σημαίνει αδυναμία εκκίνησης OS μέσω NVMe SSD χωρίς την υποστήριξη, γι' αυτό και κατά πάσα πιθανότητα η συμβατότητα με τις παλαιότερες πλατφόρμες δεν θα είναι εφικτή.
Όσον αφορά την υποστήριξη, όλα τα σύγχρονα λειτουργικά συστήματα ενσωματώνουν το NVMe πρότυπο στον πυρήνα τους, με τα Windows 8.1, ενώ τα Windows 7 φέρουν υποστήριξη μέσω update. Επίσης συναντάμε πλήρης υποστήριξη στον Linux Kernel 3.1, στο FreeBSD καθώς και στο OSX 10.10.3.
Όπως όλα ξεκινούν σε επίπεδο ατόμου για τους έμβιους οργανισμούς, έτσι και στις πολυχρησιμοποιούμενες μνήμες flash το μικρότερο δυνατό δομικό τους στοιχείο είναι ένα κελί (cell). Τι είναι το κελί θα αναρωτιέστε όμως. Την απάντηση εδώ έρχεται να μας προσφέρει το MOSFET, στο οποίο μπορούμε πολύ εύκολα με την παρουσία ή μη ηλεκτρονίων να καθορίσουμε τις καταστάσεις 0 και 1 του δυαδικού συστήματος. Έχουμε λοιπόν τον μηχανισμό με τον οποίο θα παρασταθούν τα δεδομένα, μας λείπει όμως ο μηχανισμός που αυτά θα αποθηκευτούν. Αυτό συμβαίνει γιατί ένα απλό MOSFET είναι αδύνατο να «θυμάται» την κατάστασή του όταν σταματήσει να προσφέρεται ενέργεια από την πηγή. Η λύση έρχεται να δοθεί από την προσθήκη μιας επιπλέουσας πύλης (floating gate), η οποία παίρνει τη θέση της πύλης του MOSFET μετατρέποντας την ύστερη σε πύλη ελέγχου. Η επιπλέουσα αυτή πύλη (floating gate) είναι μονωμένη από ένα στρώμα διοξειδίου του πυριτίου που της δίνει τη δυνατότητα να διατηρεί τα ηλεκτρόνια (δεδομένα) για μεγάλο χρονικά διάστημα ελλείψει παροχής ενέργειας.
Είπαμε όμως πως αυτή είναι μονωμένη από την πηγή (source) και την υποδοχή (drain) οπότε προκύπτει το ερώτημα πώς θα μεταπηδήσουν τα ηλεκτρόνια μέσα σε αυτό για να δηλώσουν την κατάσταση 0. Σε αυτό μας βοηθάει μια διαδικασία που ονομάζεται Fowler-Nordheim tunneling σύμφωνα με την οποία η εφαρμογή μιας ικανής τάσης επιτρέπει την μεταπήδηση των ηλεκτρονίων, ακόμη και εάν υπάρχει μονωτικό υλικό.
Όταν λοιπόν υπάρχουν ηλεκτρόνια παγιδευμένα στην επιπλέουσα πύλη τότε το transistor αναπαριστά την τιμή 0 (Programmed State), ενώ όταν το floating gate είναι άδειο το transistor αναπαριστά την τιμή 1 (Erased State). Στα καινούργια Solid State Drives ή αλλιώς αυτά που βρίσκονται σε κατάσταση Fresh Out of the Box (FOB) όλα τα κελιά έχουν την τιμή 1, εξού και η μόνη τιμή που προγραμματίζεται είναι η τιμή 0.
Πώς όμως γίνεται ο προγραμματισμός (εγγραφή) ενός κελιού; Εφαρμόζοντας μία υψηλή τάση στην πύλη ελέγχου και διατηρώντας το υπόστρωμα πυριτίου (substrate) με μηδενική (grounded) τα ηλεκτρόνια που βρίσκονται σε αυτό περνάνε από το διηλεκτρικό στην επιπλέουσα πύλη.
Για να εκτελέσουμε μια διαγραφή από την άλλη, η πύλη ελέγχου γειώνεται με την υψηλή τάση να εφαρμόζεται στο υπόστρωμα πυριτίου, οπότε και τα ηλεκτρόνια μεταπηδούν σε αυτό.
Στα κελιά λοιπόν μπορεί να αποθηκευτεί 1 bit που μπορεί να έχει είτε την τιμή 0 (program) είτε την τιμή 1 (erased). Από το 1 bit όμως μέχρι να φτάσουμε στα μεγέθη των gigabit υπάρχει ακόμη πολύς δρόμος.
Στην επίτευξη των επιθυμητών χωρητικοτήτων συνδράμει το γεγονός πως τα κελιά μπορούν να συνδεθούν μεταξύ τους είτε σε σειρά (NAND Flash) είτε παράλληλα (NOR Flash) προς ένα bit line (I/O line). Eν τέλει και για λόγους οικονομίας χώρου (και συνεπώς κόστους), μιας και το μέγεθος που καταλαμβάνει ένα δίκτυο από κελιά NAND είναι κατά 40% περίπου μικρότερο από αυτό των NOR, καθώς και των χαμηλών ταχυτήτων εγγραφής των NOR, οι σχεδιαστές μνημών επέλεξαν να χρησιμοποιήσουν την σε σειρά σύνδεση, εξού και τα πασίγνωστα πλέον στα SSD NAND Flash memory.
Εκτός όμως από την σε σειρά σύνδεση των κελιών NAND και το γεγονός ότι αυτά δημιουργούν ένα string, και οι πύλες ελέγχου των transistor συνδέονται μεταξύ τους με ένα word line. Με βάση αυτό, ορίζουμε ως Page των αριθμό των string των οποίων τα επιμέρους κελιά μοιράζονται ένα word line. Για να οπτικοποιήσουμε όμως τα παραπάνω ας δούμε ένα παράδειγμα όπου συνδέουμε 2048 κελιά σε word line, με το κάθε string να περιέχει 16 κελιά και συνεπώς 16 Pages.
Ένα Page αποτελεί τη βασική μονάδα που ένα SSD Drive μπορεί να γράψει και να διαβάσει. Στο παράδειγμά μας το μέγεθος αυτής της σελίδας είναι 2048 bits δηλαδή 256 bytes.
Το δεύτερο βασικό μέγεθος είναι τα Blocks, τα οποία ορίζονται ως ο αριθμός των σελίδων που μοιράζονται ένα κοινό υπόστρωμα πυριτίου. Εδώ εμφανίζεται και ο περιορισμός που δημιουργεί προβλήματα στη διάρκεια ζωής των SSD, το γεγονός ότι η διαγραφή μπορεί να πραγματοποιηθεί μόνο σε επίπεδο Block, όπως θα κατανοήσουμε καλύτερα και παρακάτω. Στο παράδειγμά μας έχουμε λοιπόν 16 Pages και συνεπώς ένα Block μεγέθους 16*256=4096 bytes. Με παρόμοιο τρόπο χτίζουμε σιγά σιγά την πλήρη χωρητικότητα των SSD.
Βέβαια στην πραγματικότητα τα τυπικά μεγέθη των Pages και των Blocks είναι διαφορετικά, με μια σελίδα να έχει μέγεθος 4 KB ενώ κάθε Block περιλαμβάνει 128 Pages δίνοντάς μας τη χωρητικότητα των 512 KB/Block.
Αυτά που είπαμε μέχρι στιγμής αντικατοπτρίζουν τη λειτουργία των SLC drive τα οποία αποθηκεύουν 1 bit σε κάθε κελί. Στην αγορά όμως σήμερα υπάρχουν και άλλοι δύο κύριοι τύποι NAND Flash οι οποίοι ακούνε στο όνομα MLC και TLC. Προτού λοιπόν ανοίξουμε αυτό το κεφάλαιο και εξερευνήσουμε τις μεταξύ τους διαφορές, θα πρέπει να αναφερθούμε στους κύκλους προγραμματισμού/διαγραφής των μνημών flash και κατʼ επέκταση των SSD.
Program/Erase Cycles
Αναφέραμε παραπάνω πως όταν ένας δίσκος έρχεται κενός από την κατασκευάστρια εταιρεία όλα τα transistor του έχουν την τιμή 1. Ένας κύκλος προγραμματισμού και διαγραφής αποτελεί μία αλληλουχία των εξής γεγονότων: Εγγραφή ενός κελιού μνήμης, διαγραφή αυτού και επανεγγραφή του. Ο αριθμός όμως που ένα κελί μνήμης, και συνεπώς ένα SSD, μπορεί να πραγματοποιήσει την παραπάνω αλληλουχία γεγονότων είναι περιορισμένος. Εξαρτάται μάλιστα από τον τύπο των μνημών NAND Flash (SLC/MLC/TCL) καθώς επίσης και από το κλίμακα ολοκλήρωσης που χρησιμοποιούν οι κατασκευαστές (manufacturing process), δηλαδή 50nm, 34nm κ.ο.κ. Ας ξεκινήσουμε λοιπόν από την πρώτη διακριτοποίηση των μνημών flash, ως προς την ποσότητα των δεδομένων που μπορούν να φιλοξενήσουν σε ένα κελί.
SLC vs MLC vs TLC
Θεωρώντας δεδομένη και σταθερή την κλίμακα ολοκλήρωσης που χρησιμοποιεί η εταιρεία κατασκευής, μπορούμε να κάνουμε τις εξής σκέψεις:
SLC (Single-Level Cell): Στις SLC μνήμες ένα κελί μπορεί να αποθηκεύσει ένα bit δεδομένων και συνεπώς δύο καταστάσεις, την 0 (program) και την 1 (erase). Τα SLC Drives απευθύνονται κυρίως στην Enterprise αγορά όπου οι απαιτήσεις αντοχής σε πολλαπλούς κύκλους προγραμματισμού/διαγραφής είναι αυξημένες. Για να κατανοήσουμε όμως πραγματικά την «αυξημένη» αντοχή στους κύκλους προγραμματισμού/διαγραφής θα πρέπει να μεταφερθούμε ξανά σε επίπεδο MOSFET και στις τάσεις που χρησιμοποιούνται για τον προγραμματισμό και τη διαγραφή του κελιού. Θα θεωρήσουμε ακόμη και πως τα οι οριακές τάσεις (threshold voltages) για να επιτύχουμε τις παραπάνω καταστάσεις είναι 3V και 1V αντίστοιχα, με τα 2V να εφαρμόζονται ως τάση αναφοράς (reference voltage) στην πύλη ελέγχου. Εάν το κελί βρίσκεται στην διαγραμμένη (erased) κατάσταση (μη ύπαρξη ηλεκτρονίων στο floating gate) τότε θα υπάρχει κίνηση των ηλεκτρονίων μιας και τα 2V είναι μεγαλύτερα από την οριακή τάση αυτής της κατάστασης. Αυτό αναγνωρίζεται ως το bit 1. Όταν από την άλλη το κελί βρίσκεται στην προγραμματισμένη κατάσταση (bit 0), υπάρχουν ηλεκτρόνια παγιδευμένα στην επιπλέουσα πύλη και συνεπώς η τάση των 2V δεν είναι ικανή να προκαλέσει ροή ρεύματος καθώς είναι κάτω από το όριο. Για τις μνήμες των SLC Drive ισχύει επομένως το εξής:
MLC (Multi-Level Cell): Τα κελιά στα MLC NAND Flash διαχωρίζονται από τα SLC από το ότι μπορούν να αποθηκεύσουν δύο bit δεδομένων. Έχουμε δηλαδή τους εξής συνδυασμούς που μπορούν να υπάρξουν στις δύο αυτές θέσεις από τις τιμές 0 και 1: 00, 01, 10, 11. Από αυτές τις καταστάσεις η κατάσταση 11 υποδηλώνει διαγραμμένη ενός κελιού μνήμης, ενώ όλες οι άλλες καταστάσεις υποδηλώνουν ένα προγραμματισμένο κελί. Πλέον όμως έχουμε και 4 όρια τάσεων (11) -> 0.50V, (10) -> 1.50V, (01) -> 2.50V και (00) -> 3.50V καθώς και τρεις τάσεις αναφοράς 1.00V, 2.00V και 3.00V. Στα MLC λοιπόν η προαναφερθείσα απεικόνιση μετατρέπεται στην ακόλουθη:
Συγκρίνοντας τα παραπάνω μπορούμε να παρατηρήσουμε μερικά ενδιαφέροντα πράγματα. Αφενός, η διαφορά τάσης μεταξύ των οριακών των MLC είναι η μισή, αφήνοντας μικρότερο «διάστημα διαχωρισμού». Αφετέρου, βλέπουμε πως η παραβολική καμπάνα που σχηματίζεται έχει πιο μαζεμένα κοίλα, πράγμα που σημαίνει πως για επιτύχουμε την εκάστοτε κατάσταση θα πρέπει να αποδώσουμε με μεγαλύτερη ακρίβεια την τάση. Η παρουσία αυτής της καμπάνας εξʼ αρχής έγκειται στο γεγονός ότι το threshold voltage δεν μπορεί να έχει ακριβώς την τιμή που φαίνεται, αλλά θα έχει διακυμάνσεις.
Με το πέρας όμως του χρόνου και την επαναλαμβανόμενη εφαρμογή τάσεων το οξείδιο του πυριτίου φθείρεται και συνεπώς η ικανότητα της επιπλέουσας πύλης να διατηρεί τα ηλεκτρόνια μειώνεται. Επομένως, χρειάζεται λίγο μεγαλύτερη τάση μέχρι να επιτύχουμε τις οριακές τάσεις κάθε κατάστασης, πράγμα που φθείρει με ακόμη μεγαλύτερο ρυθμό το μονωτικό υλικό. Καταλαβαίνουμε συνεπώς πως όσο μικρότερη είναι αυτή η επιφάνεια της καμπάνας τόσο μικρότερη διάρκεια ζωής έχει ένα κελί.
Εκτός όμως από τη διάρκεια ζωής υπάρχουν επιπτώσεις οι οποίες εμφανίζονται στην ταχύτητα. Τα MLC χρειάζονται μεγαλύτερα επίπεδα διόρθωσης λαθών (error correction) μαζί με ένα πιο ακριβές κύκλωμα ανάγνωσης και εγγραφής για να επιτευχθούν οι τάσεις με μικρότερη διακύμανση. Αυτό έχει ως αποτέλεσμα ο χρόνος που χρειάζεται για εκτελεστεί μία εντολή να αυξάνεται.
TLC (Triple-Level Cell): Όμοια είναι τα πράγματα και στους πιο πρόσφατους τύπους μνήμης, τους λεγόμενους TLC, που απασχόλησαν τους περισσότερους από εμάς το 2012 με την έλευση του Samsung 840 στην αγορά των SSD. Τα TLC flash memory λοιπόν, όπως μας προϊδεάζει και η ονομασία τους, μπορούν να αποθηκεύσουν τρία bit σε κάθε κελί και επομένως οι δυνατοί συνδυασμοί είναι οχτώ (000, 001, 010, 011, 100, 101, 110, 111) με την διαγραμμένη κατάσταση να αντιπροσωπεύεται από το 111 και τις υπόλοιπες να είναι προγραμματισμένες καταστάσεις. Όμοια λοιπόν έχουμε και 8 οριακές τάσεις με 7 τάσεις αναφοράς. Έτσι, όλα τα προβλήματα που αναφέρθηκαν για τα MLC, δηλαδή μικρότερη περιοχή διακύμανσης τάσεων, μικρότερο εύρος ανάμεσα στις οριακές τάσεις καθώς και μεγαλύτερες γενικά τάσεις, αμβλύνονται ακόμη περισσότερο και συνεπώς η διάρκεια ζωής του κελιού, και κατʼ επέκταση του drive, μειώνεται σημαντικά.
Έχοντας πλέον κατά νου το μηχανισμό που πραγματοποιείται η όλη διαδικασία μπορούμε να δούμε συγκεντρωτικά τις διαφορές στη διάρκεια ζωής (P/E Cycles) μεταξύ των τριών τύπων μνημών NAND καθώς και την επίδραση της κλίμακας ολοκλήρωσης σε αυτήν.
Παρατηρούμε λοιπόν πως η διαφορά των P/E Cycles στους διάφορους τύπους μνήμες βρίσκεται κοντά σε μία τάξη μεγέθους. Βέβαια, υπάρχει ένα σημαντικός παράγοντας που οδηγεί τις εταιρείες στο να θέλουν να μειώσουν τη λιθογραφία αλλά και να αυξήσουν το πόσα bit μπορούν να αποθηκευτούν σε ένα κελί.
Το κλειδί λοιπόν είναι η πυκνότητα των GB σε σχέση με το διαθέσιμο χώρο. Με την έλευση των MLC για παράδειγμα ένα drive μπορούσε να αποθηκεύσει δύο φορές τα δεδομένα ενός SLC. Υπάρχουν λοιπόν δύο επιλογές. Είτε στο ίδιο φυσικό μέγεθος να προσφερθεί διπλάσια χωρητικότητα. Είτε διατηρώντας ίδια την προσφερόμενη χωρητικότητα και αυξανομένης πλέον της πυκνότητας των GB/φυσικό μέγεθος να μπορούν να παραχθούν περισσότερα (διπλάσια στο παράδειγμά μας) GB μνημών στο ίδιο wafer. Επομένως, η εταιρεία καταφέρνει να κατασκευάσει τις μνήμες για δύο φορές περισσότερα drive.
Παρεμφερής είναι και η κατάσταση για τις TLC μνήμες, μόνο που πλέον η αύξηση δεν είναι της τάξης του 100% από την προηγούμενη τεχνολογία, αλλά του 50%, με την λογική πάντως να παραμένει ίδια.
Ας περάσουμε όμως στο δεύτερο μέρος αυτής της σύντομης εισαγωγής στην τεχνολογία των SSD, όπου θα δούμε και θα εξηγήσουμε συχνά χρησιμοποιούμενες ορολογίες αλλά και το μηχανισμό στον οποίο οφείλεται η πτώση της ταχύτητας των drive όταν αυτά γεμίζουν με δεδομένα, καθώς και τα συστήματα που εφαρμόζονται προκειμένου αυτό να αποτραπεί.
Προτού ξεκινήσουμε να εξηγούμε τη διαδικασία με την οποία τα SSD επαναχρησιμοποιούν τα κελιά μνήμης τους, θα ήταν σκόπιμο να αναφέρουμε πως όταν τα SSD διαβάζουν και γράφουν δεδομένα, μπορούν να το πραγματοποιήσουν σε επίπεδο σελίδας. Όταν όμως έρθει η στιγμή να διαγράψουν δεδομένα τότε αυτή η ενέργεια μπορεί να γίνει μόνο διαγράφοντας ένα Block. Απλά ως σημείο αναφοράς, ένα τυπικό Block αποτελείται από περίπου 128 Pages. Σε αντίθεση μάλιστα με τους μηχανικού δίσκους, οι οποίοι μπορούν απλά να αντικαταστήσουν ένα αρχείο στην ίδια φυσική θέση του δίσκου, στα SSD για να μπορέσει ένα κελί να εγγραφεί, θα πρέπει πρώτα να έχει διαγραφεί.
Ας θεωρήσουμε λοιπόν πως ένα Page είναι σε προγραμματισμένη κατάσταση και πως περιέχει δεδομένα τα οποία πλέον είναι invalid. Για να μπορέσει να διαγραφεί λοιπόν αυτό το αρχείο θα έπρεπε ο ελεγκτής (controller) του drive αρχικά να διαβάσει τα έγκυρα (valid) δεδομένα που υπάρχουν στο Block και να τα γράψει σε ένα νέο άδειο Block. Έπειτα θα έπρεπε να διαγράψει το παλιό Block που περιείχε τα invalid data μαζί με τα valid data και τέλος να ξαναγράψει τα valid αρχεία πίσω στην αρχικό Block. Η παραπάνω διαδικασία εισάγει το λεγόμενο Write Amplification!
Write Amplification: Είναι ένας λόγος που στον αριθμητή του έχει το μέγεθος των δεδομένων που το drive γράφει στα φυσικά του κελιά και στον παρονομαστή το μέγεθος των δεδομένων που το λειτουργικό σύστημα δίνει εντολή να γραφούν. Ο συντελεστής αυτός παίρνει τιμές μεγαλύτερες από τη μονάδα, και όσο πιο κοντά είναι στη μονάδα τόσο περισσότερο αντιστοιχούν οι εγγραφές του λειτουργικού και του drive και τόσο λιγότερο μειώνεται η διάρκεια ζωής του.
Βέβαια, όλη αυτή η διαδικασία που αναφέραμε στο παραπάνω παράδειγμα μειώνει την ταχύτητα που θα γινόταν η συγκεκριμένη ενέργεια. Για αυτό το λόγο και ο ελεγκτής (controller) προτιμά να γράψει τα δεδομένα σε ένα καινούργιο Block και να τα αφήσει εκεί, μαρκάροντας τα δεδομένα του παλιού ως μη έγκυρα (invalid).
Πλέον όμως ο χώρος που το λειτουργικό καταλαβαίνει πως είναι διαθέσιμος είναι μεγαλύτερος από αυτόν που πραγματικά είναι, μιας στην πραγματικότητα περίπου 2 Block είναι δεσμευμένα σε σχέση με το 1 block (παρά ένα Page) που βλέπει το λειτουργικό.
Το παραπάνω όμως είναι εφικτό και στηρίζεται σε μία διαδικασία που λαμβάνει χώρα στο Flash Translation Layer. Με βάση αυτήν, ο κενός χώρος σε «λογικό επίπεδο» που βλέπει το λειτουργικό σύστημα, μπορεί να διαφέρει από αυτόν που έχουν σε φυσικό επίπεδο οι μνήμες NAND. Το παραπάνω λογικό σε φυσικό σύστημα αντιστοίχισης ονομάζεται Logical Block Addressing (LBA) και είναι αρμοδιότητα του ελεγκτή να το εφαρμόσει προς αύξηση των επιδόσεων.
Καταλαβαίνετε όμως, πως το παραπάνω απλά δίνει παράταση όσο υπάρχει διαθέσιμος χώρος, στην αναπόφευκτη και σχεδόν δύο φορές πιο χρονοβόρα διαδικασία που αναφέραμε προηγουμένως. Για αυτό το λόγο υπάρχει ένας μηχανισμός που ονομάζεται Garbage Collection, ευθύνη του οποίου είναι να ετοιμάσει άδεια Block προς εγγραφή, ώστε ο ελεγκτής να μπορεί να γράφει πάντα σε Pages που είναι σε διαγραμμένη κατάσταση, δηλαδή να γράφει ταχύτερα.
Garbage Collection: Η αλήθεια είναι πως το όνομα του είναι κάπως παραπλανητικό διότι στην πραγματικότητα δεν μεταφέρει μη έγκυρες σελίδες αλλά πραγματικά έγκυρα δεδομένα, με στόχο να αποδεσμεύσει χώρο ώστε να μπορέσει ο controller να γράψει σε αυτόν. Προκειμένου να κατανοήσουμε όμως πιο εύκολα τη λειτουργία του ας δούμε ένα παράδειγμα.
Ας θεωρήσουμε ένα Block που έχει γραμμένες 4 σελίδες του, την A - D. Σε αυτό το Block το λειτουργικό κάνει τα εξής: Τροποποιεί τα δεδομένα των σελίδων A – D, ενώ ταυτόχρονα γράφει και τις νέες σελίδες E – H. Αυτό φαίνεται με τη σειρά στο παρακάτω σχήμα:
Στο πρώτο στάδιο έχουμε δύο Block, ένα κενό και ένα με 4 σελίδες γραμμένες. Στο δεύτερο στάδιο το λειτουργικό τροποποιεί τα δεδομένα των τεσσάρων πρώτων σελίδων, οπότε και ο controller γράφει τα νέα δεδομένα (Aʼ - Dʼ) στις επόμενες διαθέσιμες σελίδες, μαρκάροντας τις σελίδες που περιέχουν τα παλιά δεδομένα ως μη έγκυρες. Ακόμη, γράφει και τα καινούργια δεδομένα E - H. Όσον αφορά το λειτουργικό σύστημα η διαδικασία που ανέθεσε έχει ολοκληρωθεί.
Στην πραγματικότητα, όμως για μπορέσει το drive να γράψει τις invalid σελίδες ξανά όταν του ζητηθεί (διότι αυτές οι σελίδες είναι ελεύθερος χώρος για το λειτουργικό) θα πρέπει να μεταφέρει τα έγκυρα δεδομένα σε ένα καινούργιο Block και να διαγράψει το παλιό, με την διαδικασία αυτή να φαίνεται στο τρίτο και τελικό στάδιο, το οποίο είναι το Garbage Collection.
Θα πρέπει να τονιστεί ακόμη η τεράστια σημασία του ελεύθερου χώρου στην απρόσκοπτη λειτουργία του drive με τις μεγαλύτερες δυνατές ταχύτητες εγγραφής. Όταν λοιπόν υπάρχει διαθέσιμος χώρος, το drive μπορεί να γράφει απευθείας σε νέα Pages και να μαρκάρει τα παλιά ως μη έγκυρα, δίνοντάς στα στο Garbage Collection το οποίο μπορεί να εκτελεστεί σε ύστερο χρόνο. Αυτός ο ύστερος χρόνος μπορεί να είναι είτε όταν το σύστημα εκτελεί εργασίες, είτε όταν το σύστημα βρίσκεται σε idle. Βέβαια, εάν είναι εφικτό, ο ελεγκτής θα επιλέξει να το εκτελέσει σε χρόνο που το σύστημα βρίσκεται σε αδρανή κατάσταση.
TRIM: Στην πραγματικότητα, όταν εμείς διαγράψουμε ένα αρχείο από τον υπολογιστή, το λειτουργικό δεν ενημερώνει τον controller του drive ώστε να μαρκάρει τις σελίδες που έχουν διαγραφεί ως μη έγκυρες. Μάλιστα, ο μόνος τρόπος που θα μάθαινε ο ελεγκτής σε άλλη περίπτωση ότι οι σελίδες αυτές δεν χρειάζονται πλέον είναι όταν το λειτουργικό ζητούσε να γράψει σε αυτές τις σελίδες και έβλεπε πως περιέχουν δεδομένα. Αυτό λοιπόν έχει ως συνέπεια το Garbage Collection να μεταφέρει μαζί με τα έγκυρα δεδομένα και δεδομένα τα οποία δεν είναι πλέον, διότι απλά δεν γνωρίζει αυτήν την πληροφορία. Πραγματοποιούνται λοιπόν περιττές εγγραφές, μειώνοντας έτσι τη διάρκεια ζωής του drive. Το TRIM λοιπόν δίνει αυτήν την πολύτιμη πληροφορία στο ελεγκτή του drive, ο οποίος μαρκάρει τις μη έγκυρες σελίδες για τις διαγράψει σε ύστερο χρόνο με το Garbage Collection.
Η λειτουργία του TRIM προϋποθέτει την αρμονική συνεργασία δύο πλευρών. Από τη μία του λειτουργικού συστήματος, μαζί με τους οδηγούς αποθήκευσης, και από την άλλη του ελεγκτή (controller) του SSD. Από πλευράς λειτουργικού συστήματος η υποστήριξη ξεκινά από τα Windows 7 και ύστερα. Από πλευράς Solid State Drive η υποστήριξη έγκειται στην έκδοση του firmware του και επαφίεται στους κατασκευαστές των drive, με τους περισσότερους σήμερα να έχουν προσφέρει την υποστήριξη. Μεταξύ όμως των δύο βρίσκονται οι οδηγοί του chipset (Intel, AMD), η υποστήριξη των οποίων ποικίλει. Σε γενικές γραμμές πάντως και για χρήστες που δεν έχουν συνδέσει τα drives τους σε RAID, φαίνεται πως από το Intel 7-Series chipset και πάνω υπάρχει κανονική υποστήριξη από τους νέους RST Drivers, ενώ από πλευράς AMD από το SB850 και πάνω. Όσον αφορά την ειδική περίπτωση του RAID, από πλευράς Intel υπάρχει υποστήριξη, ενώ από πλευράς AMD υπάρχει υποστήριξη από το SB850 και πάνω. Αξίζει ακόμη να αναφέρουμε πως για τα παλαιότερα chipset της Intel υπάρχουν μη υποστηριζόμενα custom BIOS διαθέσιμα στο διαδίκτυο για όποιον ενδιαφέρεται.
Πάμε τώρα όμως τώρα να δούμε δύο πολυχρησιμοποιούμενες ορολογίες.
Wear-Leveling: Πρόκειται για αλγόριθμους που στόχο έχουν να κατανείμουν τις εγγραφές στα διάφορα Blocks που είναι διαθέσιμα στον ελεγκτή του drive, ώστε εν τέλει όλα τα Blocks να έχουν την ίδια φθορά ως προς τους κύκλους εγγραφής που έχουν δεχθεί. Έτσι, εξασφαλίζεται πως δεν θα υπάρχουν Block των οποίων το τέλος της διάρκειας ζωής θα έρθει νωρίτερα από των υπολοίπων.
Over-Provisioning: Αποτελεί έναν πρόσθετο χώρο στον οποίο ο χρήστης δεν έχει πρόσβαση μέσου του λειτουργικού, έχει όμως ο ελεγκτής του drive αξιοποιώντας τον προς διατήρηση των επιδόσεων. Είδαμε και προηγουμένως πως όσο υπάρχουν διαγραμμένα Pages οι ταχύτητες εγγραφής είναι μεγαλύτερες και το drive εκτελεί την ανατεθείσα ενέργεια με υψηλότερη ταχύτητα και μικρότερο χρόνο απόκρισης. Τι γίνεται όμως όταν το drive αρχίσει και γεμίζει και όλο και λιγότερα κενά Blocks υπάρχουν διαθέσιμα; Θεωρητικά, εάν δεν υπήρχε άλλος χώρος τότε το drive θα έπρεπε να διαβάζει τα δεδομένα όλου του Block, να κάνει τις τροποποιήσεις, να διαγράφει όλο το Block και έπειτα να το ξαναγράφει. Όπως καταλαβαίνουμε όμως αυτό ρίχνει σημαντικά τις επιδόσεις του drive, για αυτό και υπάρχει αυτός ο «κρυφός» προς το χρήστη χώρος τον οποίο το drive μπορεί να αξιοποιήσει για να συνεχίζει να γράφει σε κενά Blocks. Μπορείτε να φανταστείτε αυτόν τον ελεύθερο χώρο ως το work bench του ελεγκτή. Βέβαια, χώρος χρειάζεται όχι μόνο για το παραπάνω, αλλά και ώστε να κατανέμεται η φθορά των Blocks με τον ίδιο ρυθμό καθώς και για να αντικαθίστανται πρόωρα μη λειτουργικά Blocks σε περίπτωση που αυτά προκύψουν. Προκύπτει λοιπόν εύλογα το ερώτημα από πού προκύπτει αυτός ο πρόσθετος χώρος.
Υπάρχουν σε γενικές γραμμές τρεις κύριες πηγές αυτού του χώρου.
- Πρώτα λοιπόν, υπάρχει η διαφορά που προκύπτει από το φυσικό μέγεθος των NAND Flash των SSD και από αυτό που κάνουν διαθέσιμο οι κατασκευαστές των drive. Οι κατασκευαστές λοιπόν χρησιμοποιούν τον όρο Gigabyte για να παραστήσουν 1 GB δεδομένων, δηλαδή 10^9 bytes. Στην πραγματικότητα όμως τα μέσα αποθήκευσης κατασκευάζονται σε δυνάμεις με βάση το 2 και συνεπώς 1 GB = 1024 MB = 1,073,741,824 bytes. Αυτή η διαφορά λοιπόν της τάξης του: (1,073,741,824 - 1,000,000,000)/1,000,000,000 = 7,37 % του διαθέσιμου προς το χρήστη χώρο υπάρχει πάντα ως OP και συνήθως δεν περιλαμβάνεται στο ποσοστό του over provisioning.
- Σε δεύτερο επίπεδο έρχονται οι κατασκευαστές να δώσουν ένα πρόσθετο επίπεδο ελεύθερου χώρου. Αυτός είναι και ο λόγος για τον οποίο ορισμένα SSD διαφημίζονται για χωρητικότητες 128 GB, 120 GB και 100 GB. Αυτά έχουν αντίστοιχα 0%, 7% και 28% over-provisioning από τους κατασκευαστές, μη λαμβάνοντας υπʼ όψη το 7,37 % του χώρου που προκύπτει από τη διαφορά μεταξύ gigabyte και gibibyte.
- Το τρίτο και τελευταίο επίπεδο είναι ο ελεύθερος χώρος που διαθέτει το drive, και γνωρίζει με τη χρήση της εντολής TRIM, κάθε στιγμή. Αυτός ο χώρος μάλιστα μπορεί να οριστεί και από τη χρήστη σε περίπτωση που το μέγεθος που χρησιμοποιήσει το λειτουργικό είναι μικρότερο από το πλήρες μέγεθος του drive. Ο unpartitioned αυτός χώρος μπορεί να χρησιμοποιηθεί αυτόματα από το drive ως πρόσθετος χώρος για over-provisioning.
Κλείνοντας θα θέλαμε να κάνουμε και μία μικρή αναφορά σε αυτό που είναι πολύ πιθανό οι χρήστες SSD να έχουν ακούσει ως Secure Erase. Ειδικότερα, πρόκειται για μία εντολή ATA η οποία συνήθως προσφέρεται από την εργαλειοθήκη που προσφέρει κάθε εταιρεία με το drive της και έχει ως στόχο την πλήρη διαγραφή του drive. Η διαφορά όμως αυτής της εντολής από την γρήγορη διαμόρφωση (quick format) ενός drive είναι πως στην πραγματικότητα διαγράφει και τις περιοχές δεδομένων που δεν είναι διαθέσιμες στο λειτουργικό σύστημα. Αυτές χρησιμοποιούνται για Over-Provisioning καθώς και ομοιόμορφη κατανομή της φθοράς των κελιών, που σε οποιαδήποτε άλλη εντολή «διαγραφής» δεν θα ήταν διαθέσιμες. Το drive επιστρέφει λοιπόν στην εργοστασιακή του κατάσταση και οι ταχύτητες επαναφέρονται στις μέγιστες δυνατές τιμές τους. Μάλιστα, το Secure Erase ενός drive θα ήταν καλό να εφαρμόζεται πριν από μία νέα εγκατάσταση λειτουργικού σε ένα ήδη χρησιμοποιημένο drive.
Με δεδομένο πως όλο και περισσότεροι χρήστες γεμίζουν τα drive τους σε μεγαλύτερο βαθμό, ο τρόπος που δοκιμάζαμε τα drive έπρεπε κάπως να διαφοροποιηθεί ώστε να παρουσιάζει αυτήν την τάση των χρηστών. Οι αλλαγές λοιπόν βρίσκονται κυρίως σε επίπεδο περαιτέρω αύξησης της πληρότητας και μερικής διαφοροποίησης, πράγμα που σημαίνει πως σε αρκετές δοκιμές τα αποτελέσματα είναι συμβατά και συγκρίσιμα με αυτά που θα συναντήσετε κοιτάζοντας παλαιότερα review μας, σε άλλες όμως όχι. Προσπαθήσαμε λοιπόν να κρατήσουμε τις κλασσικές μετρήσεις σε drive με και χωρίς λειτουργικό σύστημα, καθώς και ένα σύστημα δοκιμών παρόμοιο με αυτό που χρησιμοποιούσαμε παλαιότερα. Μία από τις αλλαγές που κάναμε με στόχο τη μελλοντική διασφάλιση των δοκιμών ήταν στο λειτουργικό σύστημα, με τα Windows 8.1 x64 να βρίσκονται πλέον μαζί μας, λόγο της υποστήριξης για το πρότυπο NVMe το οποίο θα δούμε στο μέλλον.
Όλα τα drive συνδέθηκαν μέσω θυρών SATA III (6 Gbps) ενώ οι μετρήσεις πραγματοποιήθηκαν με εγκατεστημένους τους Intel RST drivers 13.2.4.1000 καθώς και μία πλήρως updated Windows 10 x64 εγκατάσταση. Secure Erase έγινε στην αρχή των μετρήσεων σε όλες τις συσκευές καθώς και πριν εγκατασταθεί το λειτουργικό σύστημα για τις αντίστοιχες δοκιμές. Άλλωστε, πάντα προτείνουμε να κάνετε SE ένα drive που δεν βρίσκεται σε κατάσταση FOB προτού εγκαταστήσετε το λειτουργικό σύστημα, ιδίως όταν αυτό έχει χρησιμοποιηθεί παλαιότερα.
Τα drive δοκιμάστηκαν στα παρακάτω τέσσερα σενάρια που δημιουργήθηκαν ώστε να καλύψουν το μεγαλύτερο εύρος χρήσης ενός drive:
- Storage Drives: Τα SSD εγκαταστάθηκαν ως δευτερεύον μέσο αποθήκευσης στο υπάρχον λειτουργικό σύστημα και δοκιμάστηκαν στη σουίτα των μετροπρογραμμάτων μας άδεια, με 50% του χώρου τους γεμάτο και με 90%.
- OS Drives: Σε αυτό το στάδιο εγκαταστήσαμε μία καινούργια, πλήρως ενημερωμένη εγκατάσταση των Windows 10 και δοκιμάσαμε τα SSD με 50% και 90% της χωρητικότητάς τους γεμάτης. Μοναδική διαφοροποίηση στη μεθοδολογία υπάρχει για την μέτρηση του χρόνου εκκίνησης των Windows, ο οποίος πάρθηκε μετά την εγκατάσταση όλων των προγραμμάτων, καθώς και για τη δημιουργία ενός αντιγράφου ασφαλείας, όπου για πρακτικούς λόγους πήραμε το αντίγραφο με το λειτουργικό στην ίδια κατάσταση.
- Benchmarks: Τα drive υποβλήθηκαν στα ίδια μετροπρογράμματα με αυτά των δοκιμών ως storage drive, με τις χωρητικότητες γεμάτες στο 50% και 90%.
- Daily Tasks: Σε αυτό το στάδιο δοκιμάσαμε κάποια κλασικά σενάρια χρήσης που εμφανίζονται συχνά σε ένα τυπικό σύστημα, καθώς επίσης και μερικά Trace Based benchmarks που ενσωματώνουν ένα τμήμα από κάποιες γνωστές πολυχρησιμοποιούμενες εφαρμογές.
ATTO Disk Benchmark
Το ATTO είναι ένα πολύ διαδεδομένο μετροπρόγραμμα που μπορεί να μετρήσει την απόδοση του drive για ένα εύρος μεγεθών συμπιέσιμων αρχείων. Εμείς θα το χρησιμοποιήσουμε αρχικά για να επιβεβαιώσουμε τις εικασίες του κάθε κατασκευαστή για τις μέγιστες ταχύτητες σειριακής ανάγνωσης και εγγραφής κάθε drive σε ένα αρχείο μεγέθους 8 MB, ενώ στη συνέχεια θα δούμε τις διαφορές μεταξύ του MX DS Turbo και του MX PCI-E SSD 512G, έχοντας εφαρμόσει QD (Queue Depth) = 4. Το Queue Depth μπορείτε να το φανταστείτε ως την ουρά αναμονής σε έναν ελεγκτή. Όσο μεγαλύτερο, τόσο περισσότερες εντολές έχει να εκτελέσει ένα ελεγκτής και συνεπώς δυσκολεύεται περισσότερο. Ως ένα μέτρο σύγκρισης, η πραγματικότητα ενός τυπικού χρήστη δεν ξεπερνά ακόμη και στις ακραίες περιπτώσεις ένα QD=7.
Αρχικά ας επαληθεύσουμε όμως τις ταχύτητες με τις οποίες διαφημίζεται το drive.
Ξεκινώντας με την πιο απλή μέτρηση του ATTO, η διαφορά στις επιδόσεις είναι ... χαοτική, λαμβάνοντας υπ' όψη δυο "αντίπαλα" μοντέλα SSD: ένα παραδοσιακό SATA drive, και ένα PCI-e drive με ενσωματωμένο RAID 0 αλλά χωρίς υποστήριξη NVMe.
Ήδη, από τα πρώτα αποτελέσματα παρατηρούμε τις εντυπωσιακές επιδόσεις που προσφέρει ο RD 400, ο οποίος είναι προσφέρει γύρω στις 5 φορές ταχύτερες επιδόσεις έναντι ενός παραδοσιακού SATA δίσκου, την ίδια στιγμή που το RAID 0 πλησιάζει τις μισές του επιδόσεις στις σειριακές εγγραφές. Παράλληλα, ο RD 400 έδειξε να μην επηρεάζεται ιδιαίτερα όσο και αν γέμιζε το drive από δεδομένα.
Σε αυτή τη δοκιμή παρατηρούμε πως το RD400 αρχίζει να αποδίδει μετά τα 64Κ, φτάνοντας στο όριο του από τα 1024Κ όπου και σταθεροποιείται η απόδοσή του. Από τα πρώτα μας αποτελέσματα όμως αξίζει να σημειώσουμε πως σε μικρότερα αρχεία, η διαφορά δυναμικής δεν ιδιαίτερα ευδιάκριτη.
HD Tune Pro
Το HD Tune θα το χρησιμοποιήσουμε προκειμένου να αποκτήσουμε μια εικόνα σχετικά με τις ταχύτητες ανάγνωσης και εγγραφής των drive όταν κληθούν να διαβάσουν/γράψουν δεδομένα που δεν βρίσκονται σε γειτονικά Block (Random Data). Εκτελέσαμε λοιπόν τα Random Access Tests στις προεπιλεγμένες τους ρυθμίσεις και σας παρουσιάζουμε τα αποτελέσματα. Έχετε υπόψη πως η δοκιμή εγγραφής μπορεί να πραγματοποιηθεί μόνο σε unpartitioned drives και συνεπώς δεν υπάρχουν αποτελέσματα στις καταστάσεις με τα drive γεμάτα στο 50 και 90 τοις εκατό της χωρητικότητάς τους αντίστοιχα.
Θεωρώντας πως τα drive σε άδεια κατάσταση έχουν βαρύτητα 25%, τα drive στο 50% της χωρητικότητάς τους έχουν βαρύτητα 40% και τα drive στο 90% έχουν βαρύτητα 35% στα τελικά αποτελέσματα, μπορούμε για κάθε επιμέρους δοκιμή να σας δώσουμε έναν σταθμισμένο μέσο των αποτελεσμάτων.
Το HD Tune φαίνεται πως δεν μπορεί να αξιοποιήσει τα NVMe drives, ευνοώντας περισσότερο τα αντίστοιχα AHCI. Χωρίς να δίνουμε λοιπόν μεγάλη βαρύτητα, προχωράμε.
AIDA 64
Με το AIDA64 και συγκεκριμένα τα Disk Benchmarks που διαθέτει θα καταγράψουμε τη χρονική καθυστέρηση από τη στιγμή που δώσουμε την εντολή για μια εργασία ανάγνωσης/εγγραφής μέχρι τη στιγμή που αυτή θα ξεκινήσει. Αυτό ονομάζεται Access time και είναι μια από τις μεγάλες διαφορές μεταξύ των SSD και των μηχανικών δίσκων, με τα SSD που δεν έχουν μηχανικά μέρη να διαπρέπουν στο συγκεκριμένο τομέα. Έχουν δηλαδή πιο γρήγορη απόκριση στις εντολές του λειτουργικού συστήματος. Σε αντιστοιχία με το HD Tune, θα μετρήσουμε το χρόνο που χρειάστηκαν τα drive τα ξεκινήσουν τις εργασίες ανάγνωσης/εγγραφής για δεδομένα που βρίσκονται σε τυχαία Block των μνημών flash και θα σας δώσουμε μέση τιμή αυτού του χρόνου.
Ένα από τα θετικά σημεία του NVMe είναι η ταχύτητα πρόσβασης, η οποία είναι η χαμηλότερη δυνατή. Το AIDA 64 δεν μπόρεσε να διακρίνει μεγάλες διαφορές, είτε ο RD 400 ήταν άδειος είτε ήταν γεμάτος.
AS SSD Benchmark
Το AS SSD χαρακτηρίζεται ως ένα από τα πιο δύσκολα Benchmark για κάθε SSD. Διαβάζοντας και γράφοντας λοιπόν μη συμπιέσιμα δεδομένα το AS SSD μας δίνει πληροφορίες σχετικά με τις σειριακές ταχύτητες ανάγνωσης και εγγραφής των drive, τις αντίστοιχες ταχύτητες για ανάγνωση «τυχαίων» δεδομένων μεγέθους 4KiB σε QD=1 καθώς και QD=64. Εδώ φαίνονται και οι δύσκολες συνθήκες που δημιουργεί το AS SSD στο drive με τις μεγάλες μεταβολές στο QD. Αυτό λαμβάνεται υπόψη και στην τελική βαθμολογία που δίνει για κάθε σενάριο με έναν μεγαλύτερο συντελεστή βαρύτητας για τις δοκιμές ανάγνωσης και εγγραφής με QD=64.
Το περισσότερο ολοκληρωμένο AS SSD benchmark αρχίζει και δείχνει τις διαφορές από τα παλαιότερα πρότυπα. Οι 4Κ εγγραφές είναι σχεδόν στο 2x έναντι των συμβατικών drives, ενώ τόσο οι 4Κ με υψηλό Queue Depth όσο και οι σειριακές λειτουργίες βρίσκονται σε περιοχές που το SATA πρότυπο δεν μπορεί με τίποτα να πιάσει.
Crystal Disk Mark
Το Crystral Disk Mark είναι ένα πρόγραμμα αντίστοιχο με το AS SSD μόνο που διαφοροποιεί κάποιες δοκιμές, όπως για παράδειγμα προσθέτει ανάγνωση και εγγραφή ενός αρχείου 512KB και χρησιμοποιεί για τις εργασίες σε αρχεία μεγέθους 4KB QD=32. Ακόμη δίνει τη δυνατότητα να γεμίσουμε το drive με σειριακά δεδομένα μόνο με 0 και 1, εμείς όμως χρησιμοποιήσαμε τα προεπιλεγμένα Random δεδομένα που εμφανίζονται πιο συχνά σε περιβάλλοντα καθημερινής χρήσης ενός συστήματος.
Θεωρώντας πως τα drive σε άδεια κατάσταση έχουν βαρύτητα 25%, τα drive στο 50% της χωρητικότητάς τους έχουν βαρύτητα 40% και τα drive στο 90% έχουν βαρύτητα 35% στα τελικά αποτελέσματα, μπορούμε για κάθε επιμέρους δοκιμή να σας δώσουμε έναν σταθμισμένο μέσο των αποτελεσμάτων.
To Crystal Disk Mark δίδει παρόμοια αποτελέσματα με αυτά του AS SSD, αν και η παλαιότερη έκδοση που χρησιμοποιούμε δεν αντικατοπτρίζει πλήρως τις κορυφαίες σειριακές επιδόσεις της μονάδας.
Ακολουθούν τα αποτελέσματα που μας έδωσε το Crystal Disk Mark για τις εγγραφές.
Παρόμοια τα συμπεράσματα που προέρχονται και τις εγγραφές, με τον RD 400 να συνεχίζει να δείχνει την διαφορά που προσφέρουν τα νέα drives.
Πάντως η νεότερη έκδοση του CrystalDIskMark δείχνει στο έπακρο τις επιδόσεις του RD 400.
Anvil's Storage Utilities
Τα Anvil's Storage Utilities δημιουργήθηκαν από τον χρήστη Anvil, του παγκοσμίως γνωστού φόρουμ xtremesystems.org. Η εφαρμογή έχει δημιουργηθεί για μέτρηση των IOPS (και ταυτόχρονα MB/s) που μπορεί να αποδώσει το αποθηκευτικό μέσο του υπολογιστή μας. Το πρόγραμμα αφού επιλέξουμε το test file εκτελεί 10 tests απόδοσης του drive (έξι τεστ για ανάγνωση και τέσσερα για εγγραφή) και μας δείχνει αναλυτικά τα IOPS αλλά και τα MB/s που επιτυγχάνει το drive στο κάθε τεστ, παρουσιάζοντας δίπλα από τα αποτελέσματα και ένα συνολικό score των επιδόσεων του drive. Τα τεστ αυτά καλύπτουν ένα εύρος μεγέθους αρχείων καθώς και QD, όντας έτσι ένα αντιπροσωπευτικό μέτρο σύγκρισης της συνολικής απόδοσης ενός drive.
Εμείς χρησιμοποιήσαμε τις default ρυθμίσεις του προγράμματος (1GB test file, incompressible data) και σας παρουσιάζουμε τα αποτελέσματα προβάλλοντας στα γραφήματα το τελικό σκορ καθώς και τα επιμέρους σκορ των αναγνώσεων και εγγραφών για κάθε drive.
Παίρνοντας το τελικό σκορ του Anvil's Storage Utilities, μπορούμε να σας δώσουμε μία κατάταξη των drive. Όμοια, τα drive σε άδεια κατάσταση έχουν βαρύτητα 25%, στο 50% της χωρητικότητάς τους έχουν βαρύτητα 40% και στο 90% βαρύτητα 35% στα τελικά αποτελέσματα
Στο παραπάνω screenshot μπορούμε να έχουμε μια αναλυτική πληροφόρηση σχετικά με τα IOPS που προσφέρει το RD 400.
Στο δεύτερο αυτό στάδιο των δοκιμών θα χρησιμοποιήσουμε τα ίδια benchmark που χρησιμοποιήθηκαν και για τις δοκιμές με τα drive ως δευτερεύοντα μέσα αποθήκευσης στο λειτουργικό σύστημα, με τη διαφοροποίηση ότι πλέον το λειτουργικό φιλοξενείται επάνω στα drive. Επιπλέον, επειδή κανένας δεν έχει άδεια drive με OS, επιλέξαμε οι δοκιμές να γίνουν με το 50 και 90 τοις εκατό της χωρητικότητας των drive γεμάτη.
ATTO Disk Benchmark
Βλέπουμε πως τα sequential speeds δεν παρουσιάζουν κάποια αισθητή μείωση παρά το γεγονός ότι το λειτουργικό σύστημα έχει εγκατασταθεί στα drive, όπως είναι και λογικό.
HD Tune Pro
Για τις δοκιμές με λειτουργικό σύστημα και με σκοπό να σας παρουσιάσουμε μία συνολική εικόνα των αποτελεσμάτων η οποία να προκύπτει από τις διάφορες καταστάσεις δεδομένων των drive, κάνουμε την θεώρηση ότι η επιρροή των αποτελεσμάτων στο 50% και 90% της χωρητικότητας είναι ίδια. Το τελικό αποτέλεσμα λοιπόν προκύπτει ως αριθμητικός μέσος όρος των επιμέρους αποτελεσμάτων. Με βάση αυτό και θεωρώντας ότι οι παραδοχές για τα drive ως δευτερεύοντα αποθηκευτικά μέσα (Empty: 25%, 50% Filled: 40%, 90% Filled: 35%) συνεχίζουν να ισχύουν, συγκεντρώσαμε τα τελικά αποτελέσματα που προήλθαν από τις αντίστοιχες δοκιμές για κάθε benchmark και σας τα παραθέτουμε προς μία καλύτερη σύγκριση των Secondary Drive vs OS Drive καταστάσεων.
AIDA 64
Στο παραπάνω διάγραμμα για Empty Drives υπάρχουν μόνο τα αποτελέσματα από τις δοκιμές ως Secondary Drive, καθώς για OS Drive πάρθηκαν μετρήσεις μόνο για 50 και 90% filled state. Ακόμη, όταν απεικονίζονται μόνο τα αποτελέσματα ως OS Drive και δεν φαίνονται τα αποτελέσματα ως Secondary Drive υποδηλώνεται η ταύτιση μεταξύ των δύο.
AS SSD Benchmark
Όμοια, κάνοντας τη θεώρηση ότι η επιρροή των αποτελεσμάτων στο 50% και 90% της χωρητικότητας είναι ίδια, το τελικό αποτέλεσμα προκύπτει ως αριθμητικός μέσος όρος των επιμέρους αποτελεσμάτων. Με βάση αυτό και θεωρώντας ότι οι παραδοχές για τα drive ως δευτερεύοντα αποθηκευτικά μέσα (Empty: 25%, 50% Filled: 40%, 90% Filled: 35%) συνεχίζουν να ισχύουν, συγκεντρώσαμε τα τελικά αποτελέσματα που προήλθαν από τις αντίστοιχες δοκιμές για κάθε benchmark και σας τα παραθέτουμε.
Crystal Disk Mark
Anvil's Storage Utilities
Τα τελικά αποτελέσματα από τις δύο αυτές σελίδες δείχνουν πως η διαφοροποίηση των αποτελεσμάτων όταν τα drive έχουν εγκατεστημένα λειτουργικό σύστημα είναι μεν υπαρκτή, υφίσταται δε σε τέτοιο βαθμό ώστε να μπορούμε να πούμε πως σε γενικές γραμμές αυτός ο παράγοντας μειώνει κατά το πολύ 10% τις επιδόσεις σε ορισμένα σενάρια. Σε κάποια άλλα σενάρια οι επιδόσεις αυξάνονται.
Windows Installation Time
Μετρήσαμε το χρόνο που πήρε στα Windows 10 x64 να εγκατασταθούν σε κάθε drive αφαιρώντας το χρόνο μεταξύ των restart καθώς επίσης και τα στάδια όπου χρειαζόταν η παρέμβασή μας για να προχωρήσει η εγκατάσταση. Προσπαθήσαμε λοιπόν να δώσουμε μία εκτίμηση του «καθαρού» χρόνου εγκατάστασης του λειτουργικού.
Windows Boot Time
Αφού εγκαταστήσαμε το λειτουργικό, τους απαραίτητους drivers καθώς και τα βασικά προγράμματα που θα μας χρειαζόταν στη συνέχεια, μετρήσαμε το χρόνο που χρειάζονται τα Windows ώστε να πραγματοποιήσουν μία «καθαρή» εκκίνηση. Για το λόγο αυτό επιστρατεύσαμε ένα προγραμματάκι ονόματι BootRacer το οποίο μετράει τον καθαρό χρόνο που χρειάζονται τα Windows να φορτώσουν (χωρίς δηλαδή το POST, το BIOS κ.ο.κ.), αφαιρεί το χρόνο εισαγωγής του κωδικού, και προσθέτει και έναν πρόσθετο χρόνο που αντιστοιχεί στο φόρτωμα των διαφόρων υπηρεσιών μέχρι ο υπολογιστής να είναι έτοιμος για χρήση.
Operating System Backup
Με το Acronis True Image θελήσαμε να δείξουμε το χρόνο που χρειάζεται για να δημιουργηθεί ένα πλήρες image της εγκατάστασης των Windows που χρησιμοποιούμε. Ως κατάσταση αναφοράς χρησιμοποιήθηκε η κατάσταση που βρισκόταν το λειτουργικό σύστημα μετά και την εγκατάσταση των προγραμμάτων, και για να έχετε μία τάξη μεγέθους το συμπιεσμένο Backup είχε μέγεθος περίπου 27 GB.
File Copy Test
Για τη δοκιμή αντιγραφής συγκροτήσαμε έναν φάκελο μεγέθους 15 GB ο οποίος περιελάμβανε ένα φάκελο εγκατάστασης ενός μεγάλου προγράμματος, ένα αρχείο ISO, μία ταινία mkv, καθώς και αρκετές φωτογραφίες και αρχεία word αλλά και pdf. Καταγράψαμε λοιπόν το χρόνο που χρειάζεται ώστε αυτός ο φάκελος να αντιγραφεί από τη μία σε μια άλλη θέση του SSD.
Archive Creation
Ένας άλλος τρόπος να μετρήσουμε την ταχύτητα των drive είναι η δημιουργία ενός archive με το γνωστό σε όλους μας WinRar. Επειδή όμως στόχος μας είναι να καταγράψουμε την επίδραση περισσότερο του drive παρά του επεξεργαστή και των μνημών, επιλέξαμε τη μέθοδο "store". Μπορείτε να τη φανταστείτε ως η διαδικασία δημιουργίας ενός αρχείου .tar, δηλαδή ενός και μόνο αρχείου που περιέχει όλα τα αρχεία που επιλέξαμε να περιέχει το archive. Πρακτικά όμως η διαφορά είναι πως παράγεται το αρχείο χωρίς να χρησιμοποιείται κάποιος αλγόριθμος συμπίεσης.
Αξίζει να σημειώσουμε πως τα αρχεία που τοποθετήσαμε στο archive είναι αυτά που χρησιμοποιήσαμε παραπάνω για τη δοκιμή αντιγραφής, τα οποία περιέχουν τόσο μεγάλα όσο και πολλά μικρά αρχεία.
Antivirus Scan
Κλείνουμε το πρώτο μέρος των καθημερινών εργασίων με τη σάρωση για ιούς με μία πλήρως ενημερωμένη έκδοση του Kaspersky Internet Security 2015. Ως φάκελος επιλέχθηκε αυτός των Windows ώστε να έχουμε ένα σταθερό σημείο αναφοράς, ο οποίος περιείχε περίπου 150000 μικρά αρχεία.
Από τις παραπάνω καθημερινές διεργασίες, προκύπτει πως οτιδήποτε workload και να ρίξουμε στον RD 400, αυτός ανταποκρίνεται στο ύψος των περιστάσεων, παραδίδοντας κορυφαίες επιδόσεις, ενώ ήταν αισθητή η βελτιωμένη απόκριση του συστήματος σε όλα τα σενάρια χρήσης.
Οι SSDs μπορεί να έχουν κάνει την εμφάνιση τους αρκετά χρόνια στην αγορά, έχοντας ταυτόχρονα απομακρυνθεί για τα καλά από τις "παιδικές ασθένειες" όπως οι μέτριες ταχύτητες και η αξιοπιστία. Όμως το SATA και το AHCI φαίνεται πως αποτελούσαν τον σκόπελο για να γίνει το επόμενο βήμα, όπου το κύριο αποθηκευτικό μέσο αποτελούσε μέχρι πρότινος και το πλέον αργό σημείο του συστήματος. Τα παραπάνω δεδομένα έρχονται πλέον να ανατραπούν με την χρήση των νέων τεχνολογιών, όπως το NVMe και το PCI Express. Πλέον, με τις περισσότερες μητρικές της αγοράς και τις πλατφόρμες τους να είναι σε θέση πλήρους υποστήριξης του νέου πρότυπου, ήρθε η ώρα για το επόμενο βήμα.
Ελέω έλλειψης συγκριτικών με αντίστοιχα NVMe drives της αγοράς, δεν θα σταθούμε στην "ανελέητη" σύγκριση μέχρι το τελευταίο bit απόδοσης, αλλά περισσότερο στην ουσία. Και τα δεδομένα που προκύπτουν από τις δοκιμές που προηγήθηκαν είναι ξεκάθαρα όσον αφορά τις καθαρές επιδόσεις του RD 400 έναντι των παλαιότερων SATA δίσκων. Εμφανώς σε αυτό συμβάλει και η πυκνότητα του drive, με το RD 400 των 512GB να αποτελεί το βέλτιστο σημείο όσον αφορά τις επιδόσεις - αν και τα μικρότερα μοντέλα διαφέρουν μόνο ως προς την ταχύτητα των εγγραφών.
Το τελικό αποτέλεσμα που προκύπτει είναι πως ο RD 400 επιβεβαιώνει κατά ένα μεγάλο ποσοστό τα διαφημιζόμενα specs του, με σειριακές επιδόσεις που έφτασαν τα 2400 MB/s και τα 1400 MB/s σε εγγραφές και αναγνώσεις, την ίδια στιγμή που τα IOPS ξεπέρασαν και τα 100000, όπως μας υποσχέθηκε η OCZ. Ο τίτλος του παρόντος review αναφέρει πως "Το NVMe είναι ο λόγος", και βάση των δοκιμών μας ολοκληρώνουμε την πρόταση σαν: "... ο λόγος για αναβάθμιση".
Σε δυο θετικά στοιχεία που παρατηρήσαμε στην RD 400A υλοποίηση, είναι το γεγονός ότι μας παρέχεται ελευθερία κινήσεων όσον αφορά τον τρόπο που θα χρησιμοποιήσουμε το drive, όπου είτε ως PCI-e είτε ως M.2 δεν θα υπάρξει πρόβλημα με την εγγύηση, σε αντίθεση με άλλα drives της αγοράς. Για την ιστορία, δοκιμάζοντας τόσο σε PCI-e όσο και σε M.2, με μια μητρική προσφέρει PCI-e x4 δυνατότητες μέσω της θύρας δεν έδειξε το drive να διαφέρει σε επιδόσεις. Επιπλέον, η OCZ εγγυάται την καλή λειτουργία του drive, προσφέροντας 5ετή εγγύηση.
Οι MSRP τιμές για την Ευρώπη είναι οι στα 278? για το M.2 μοντέλο, και τα 313? για το AIC (RD 400A) που είχαμε στις δοκιμές μας. Οι τιμές σε αυτήν την χωρητικότητα μπορεί να φαντάζουν διπλάσιες έναντι ενός SATA δίσκου, άλλο τόσο όμως είναι και οι διαφορά στις επιδόσεις που προσφέρει το συγκεκριμένο drive.
junior-21-
A little too late για την Toshiba ή ιδέα μου?
Ωραιο ριβιου παιδες, απολαυστικο με καφεδακι πρωινο