Πως να

TRIM για προχωρημένους χρήστες

Στο Computer! Συνολικό τεύχος 4/2010 δοκιμάσαμε πέντε SSD με υποστήριξη για TRIM. Για λόγους απλότητας, υποθέσαμε ότι οι τοποθεσίες στο τεστ ως μέρος όπου ένα SSD μπορεί να αποθηκεύσει δεδομένα. Στην πραγματικότητα, οι λεγόμενες "σελίδες" και "μπλοκ" χρησιμοποιούνται για αυτό. Σε αυτό το άρθρο θα ρίξουμε μια πιο προσεκτική ματιά στον τρόπο λειτουργίας των σελίδων, των μπλοκ και της σχέσης με το TRIM.

Το TRIM είναι μια εντολή που διασφαλίζει ότι ένα SSD διατηρεί τη βέλτιστη απόδοση εγγραφής. Η λειτουργία του TRIM μπορεί να γίνει κατανοητή μόνο εάν γνωρίζετε τη δομή ενός SSD. Ένα SSD αποθηκεύει πληροφορίες σε "σελίδες", οι οποίες ομαδοποιούνται σε "μπλοκ". Για να κατανοήσετε αυτές τις έννοιες, θα πρέπει πρώτα να εξετάσετε τη σύνθεση των SSD πολλαπλών επιπέδων (MLC) όπως έχει δοκιμαστεί στον υπολογιστή! Σύνολο 4/2010. Ένα MLC-SSD αποτελείται από δισεκατομμύρια κελιά μνήμης, καθένα από τα οποία μπορεί να αποθηκεύσει πολλά bit. Μια ταξινομημένη συλλογή αυτών των κελιών ονομάζεται σελίδα και είναι η μικρότερη μονάδα για αποθήκευση ή ανάγνωση ενός αρχείου σε SSD. Μια σελίδα έχει συνήθως μέγεθος 4 KB. Έτσι, εάν αποθηκεύσετε ένα αρχείο 1 KB, αυτό το αρχείο θα καταλάβει 4 KB στο SSD.

Μπλοκ

Ένα μπλοκ είναι μια σημαντική μονάδα για ένα SSD, επειδή είναι η μικρότερη συλλογή "σελίδων" που πρέπει να διαβάσει ένα SSD για να διαγράψει δεδομένα. Ένα μπλοκ αποτελείται από 128 από αυτές τις σελίδες και έχει μέγεθος 512 KB. Τώρα συμβαίνει ότι ένα SSD λειτουργεί ως x αριθμός μονάδων μνήμης σε μια συστοιχία RAID. Αυτό σημαίνει ότι ένα αρχείο απλώνεται σε πολλαπλές μονάδες μνήμης για μέγιστη ταχύτητα ανάγνωσης. Τα Windows "συνομιλούν" με το SSD μέσω Logical Block Address (LBA) και παρακολουθούν ποια μπλοκ χρησιμοποιούνται και ποια είναι διαθέσιμα. Επειδή ένα SSD λειτουργεί με σελίδες, ο ελεγκτής SSD πρέπει να μετατρέψει τις εντολές LBA. Η εντολή των Windows για αντικατάσταση ενός αρχείου μεταφράζεται από ένα SSD (εάν είναι δυνατόν) για εγγραφή σε μια κενή σελίδα. Εάν δεν υπάρχουν κενές σελίδες, οι σελίδες πρέπει πρώτα να είναι κενές.

Καθυστέρηση γραπτώς

Ένα πρόβλημα παρουσιάζεται όταν δεν υπάρχουν αρκετές κενές σελίδες για να αποθηκεύσετε ένα αρχείο όταν υπάρχει περισσότερο από αρκετός διαθέσιμος χώρος σύμφωνα με το ευρετήριο των Windows. Σε τελική ανάλυση, ένα αρχείο δεν διαγράφεται ποτέ όταν δοθεί η εντολή. Αυτό συμβαίνει μόνο όταν ο χώρος που καταλαμβάνεται από το εν λόγω αρχείο αντικαθίσταται από νέα δεδομένα. Ένα πρόβλημα με αυτό είναι ότι ένα SSD δεν μπορεί να αντικαταστήσει απευθείας σελίδες που περιέχουν τμήματα αρχείων που δεν χρησιμοποιούνται πλέον. Ένα SSD πρέπει πρώτα να διαβάσει μπλοκ και να τα τοποθετήσει στη δική του μνήμη cache, επειδή τα δεδομένα μπορούν να διαγραφούν μόνο εκεί. Στη μνήμη cache, οι σχετικές σελίδες αδειάζονται και στη συνέχεια ολόκληρο το μπλοκ με κενές σελίδες τοποθετείται ξανά στο SSD, μετά από αυτό οι σελίδες είναι διαθέσιμες για νέα δεδομένα. Αυτό επιβραδύνει τη διαδικασία γραφής με συντελεστή τριών ή περισσότερων.

ΤΑΚΤΟΠΟΙΗΣΗ

Ο άγγελος διάσωσης για αυτές τις καταστάσεις είναι TRIM. Αυτή είναι μια εντολή που στέλνει το παράθυρο 7 στο SSD κατά τη διάρκεια μιας διαγραφής. Αυτή η εντολή ενημερώνει τον ελεγκτή του SSD ποιες σελίδες μπορούν πραγματικά να διαγραφούν και θέτει το SSD σε λειτουργία διαβάζοντας μπλοκ και αδειάζοντας τις σελίδες που είναι γεμάτες με αρχεία (και ποια Windows μπορούν να αντικαταστήσουν). Με αυτόν τον τρόπο, ένα SSD παραμένει σε βέλτιστη κατάσταση έχοντας αρκετές κενές σελίδες σε απόθεμα και μια ανάθεση εγγραφής μπορεί πάντα να εκτελείται με βέλτιστο τρόπο. Σας παρουσιάζουμε βήμα προς βήμα τι συμβαίνει όταν ένα SSD γράφει και διαγράφει αρχεία και πώς το TRIM διασφαλίζει ότι υπάρχουν πάντα αρκετές δωρεάν σελίδες.

1. Κενό SSD

Φανταστείτε ότι έχουμε SSD με χωρητικότητα αποθήκευσης ακριβώς 1 μπλοκ. Ένα κενό μπλοκ 512 KB στο SSD αποτελείται από 128 κενές σελίδες των 4 KB.

2. Γράψτε το αρχείο

Θέλουμε να γράψουμε ένα αρχείο 12 KB, το οποίο θα γεμίσει 3 σελίδες των 4 KB (μπλε).

3. Γράψτε ένα άλλο αρχείο

Στη συνέχεια θέλουμε να γράψουμε ένα άλλο αρχείο 8 KB (μωβ). Συνολικά έχουμε χρησιμοποιήσει 20 KB. Έχουμε ακόμα 512 KB - 20 KB = 492 KB δωρεάν ή 123 δωρεάν σελίδες.

4. Διαγράψτε το αρχείο

Τώρα θα διαγράψουμε το αρχείο 8 KB (μωβ). Σύμφωνα με τα Windows, το SSD μας εξακολουθεί να διαθέτει 512 KB - 12 KB = 500 KB. Ωστόσο, το SSD εξακολουθεί να καταγράφει 123 κενές σελίδες και 2 σελίδες με δεδομένα που ενδέχεται να διαγραφούν.

5. Αποθηκεύστε το αρχείο

Γράφουμε τώρα 4 KB (πράσινο). Οι δύο σελίδες που περιέχουν πληροφορίες με "δεδομένα προς διαγραφή" παραλείπονται από το SSD. Πρώτα γεμίζονται οι κενές σελίδες.

6. TRIM στην εργασία

Με υποστήριξη για TRIM, τα Windows 7 στέλνουν την εντολή TRIM μαζί με μια ενέργεια διαγραφής. Ως αποτέλεσμα, ο ελεγκτής του SSD γνωρίζει ότι αυτά τα δεδομένα μπορούν πραγματικά να διαγραφούν. Όταν το SSD δεν έχει καμία σχέση για λίγο, το SSD θα μετακινήσει ολόκληρο το μπλοκ των 512 KB, μέρος του οποίου έχει οριστεί ως διαγραφή από την εντολή TRIM, στη μνήμη cache. Εδώ το αρχείο (μωβ) που διαγράφεται από την εντολή TRIM θα διαγραφεί.

7. Οι σελίδες διαγράφονται

Τώρα μπορούν να αδειάσουν οι 2 σελίδες και να επιστραφεί ολόκληρο το μπλοκ. Μπορείτε να φανταστείτε όταν πρόκειται να διαγράψετε ένα αρχείο 10 MB, πρέπει να διαγράψουμε συνολικά 2560 σελίδες. Εάν τότε διαιρούνται επίσης σε διαφορετικά τμήματα, τότε πρέπει να διαβαστούν πολλά δεδομένα. Παρόλο που ένα μπλοκ περιέχει μόνο 4 KB του αρχείου, πρέπει να διαβαστεί 512 KB για να διαγραφεί το τμήμα 4 KB. Το TRIM διασφαλίζει ότι αυτό συμβαίνει όταν δεν χρησιμοποιείτε το SSD.

8. Ελευθερώστε ξανά χώρο

Τώρα οι 2 σελίδες είναι έτοιμες να ξαναγραφούν.

9. Αποθηκεύστε το αρχείο στον ελεύθερο χώρο

Εάν έχει γραφτεί τώρα ένα αρχείο 12 KB, υπάρχουν αρκετές δωρεάν σελίδες για την αποθήκευση του αρχείου (πορτοκαλί).