Trong Computer! Total Issue 4/2010, chúng tôi đã thử nghiệm năm ổ SSD có hỗ trợ TRIM. Để đơn giản, chúng tôi đã giả định các vị trí trong thử nghiệm là nơi SSD có thể lưu trữ dữ liệu. Trên thực tế, cái gọi là 'trang' và 'khối' được sử dụng cho việc này. Trong bài viết này, chúng ta sẽ xem xét kỹ hơn cách các trang, khối và mối quan hệ với TRIM hoạt động.
TRIM là lệnh đảm bảo rằng SSD duy trì hiệu suất ghi tối ưu. Hoạt động của TRIM chỉ thực sự có thể hiểu được nếu bạn biết cấu trúc của ổ SSD. SSD lưu trữ thông tin trong 'các trang', được nhóm trong một 'khối'. Để hiểu những khái niệm này, trước tiên bạn nên xem xét thành phần của SSD Multi Level Cell (MLC) như được thử nghiệm trong Computer! Totaal 4/2010. Một SSD MLC bao gồm hàng tỷ ô nhớ, mỗi ô có thể lưu trữ một số bit. Tập hợp có thứ tự của các ô này được gọi là trang và là đơn vị nhỏ nhất để lưu trữ hoặc đọc lại một tệp trong SSD. Một trang thường có kích thước 4 KB. Vì vậy, nếu bạn lưu một tệp có dung lượng 1 KB, tệp này sẽ chiếm 4 KB trên SSD.
khối
Khối là một đơn vị quan trọng đối với SSD, vì nó là tập hợp các trang nhỏ nhất mà SSD phải đọc để xóa dữ liệu. Một khối bao gồm 128 trang này và có kích thước 512 KB. Bây giờ SSD hoạt động giống như x số lượng mô-đun bộ nhớ trong thiết lập RAID. Điều này có nghĩa là một tệp được trải rộng trên nhiều mô-đun bộ nhớ để có tốc độ đọc tối đa. Windows 'nói chuyện' với SSD thông qua Định địa chỉ khối logic (LBA), theo dõi khối nào đang được sử dụng và khối nào khả dụng. Vì SSD hoạt động với các trang, bộ điều khiển SSD phải dịch các lệnh LBA. Lệnh Windows ghi đè tệp được SSD dịch (nếu có thể) để ghi vào một trang trống. Nếu không có trang nào trống thì trước tiên phải làm trống các trang.
Sự chậm trễ trong việc viết thư
Sự cố xảy ra khi không có đủ trang trống để lưu trữ tệp, khi có nhiều hơn đủ dung lượng theo chỉ mục Windows. Rốt cuộc, một tệp không bao giờ thực sự bị xóa khi lệnh được đưa ra. Điều này chỉ xảy ra khi không gian mà tệp được đề cập đến bị ghi đè bởi dữ liệu mới. Một vấn đề với điều này là ổ SSD không thể ghi đè trực tiếp các trang chứa các phần của tệp không còn được sử dụng. Trước tiên, SSD phải đọc các khối và đặt chúng vào bộ nhớ đệm của chính nó, vì dữ liệu chỉ có thể bị xóa ở đó. Các trang đã lưu trong bộ nhớ cache được làm trống và sau đó toàn bộ khối các trang trống được khôi phục vào SSD, sau đó các trang này có sẵn cho dữ liệu mới. Điều này làm chậm quá trình viết một hệ số từ ba trở lên.
cắt tỉa
Vị cứu tinh cho những tình huống này là TRIM. Đây là lệnh mà Window 7 gửi đến SSD trong quá trình xóa. Lệnh này thông báo cho bộ điều khiển của SSD biết những trang nào thực sự có thể bị xóa và đặt SSD hoạt động bằng cách đọc các khối và làm trống các trang chứa đầy tệp (mà Windows cho phép được phép ghi đè). Bằng cách này, SSD vẫn ở trong tình trạng tối ưu khi có đủ trang trống trong kho và công việc ghi luôn có thể được thực hiện một cách tối ưu. Chúng tôi sẽ chỉ cho bạn từng bước điều gì sẽ xảy ra khi SSD ghi và xóa tệp cũng như cách TRIM đảm bảo rằng luôn có đủ trang trống.
1. SSD trống
Hãy tưởng tượng chúng ta có một ổ SSD với dung lượng lưu trữ đúng 1 khối. Một khối trống 512 KB trên SSD bao gồm 128 trang trống 4 KB.
2. Ghi tệp
Chúng tôi muốn viết một tệp 12 KB, chiếm 3 trang 4 KB (màu xanh lam).
3. Viết một tệp khác
Sau đó, chúng tôi muốn lưu một tệp 8 KB khác (màu tím). Tổng cộng chúng tôi đã đưa vào sử dụng 20 KB. Vì vậy, chúng tôi vẫn còn 512 KB - 20 KB = 492 KB miễn phí, hoặc 123 trang miễn phí.
4. Xóa tệp
Bây giờ chúng ta sẽ xóa tệp 8 KB (màu tím). Theo Windows, SSD của chúng tôi vẫn có sẵn 512 KB - 12 KB = 500 KB. Tuy nhiên, SSD của chúng tôi vẫn đăng ký 123 trang trống và 2 trang dữ liệu có thể bị xóa.
5. Ghi tệp
Bây giờ chúng tôi đang viết 4 KB (màu xanh lá cây). Hai trang chứa thông tin "dữ liệu cần xóa" được SSD bỏ qua. Đầu tiên, các trang trống được lấp đầy.
6. TRIM tại nơi làm việc
Với sự hỗ trợ cho TRIM, Windows 7 sẽ gửi lệnh TRIM cùng với hành động xóa. Bằng cách này, bộ điều khiển của SSD biết rằng dữ liệu này thực sự có thể bị xóa. Khi SSD không có gì để làm trong một thời gian, SSD sẽ di chuyển toàn bộ khối 512 KB, một phần đã được chỉ định là xóa bằng lệnh TRIM, vào bộ nhớ đệm. Tại đây, tệp bị xóa bởi lệnh TRIM (màu tím) sẽ thực sự bị xóa.
7. Các trang sẽ bị xóa
Bây giờ 2 trang có thể được làm trống và toàn bộ khối có thể được đặt lại. Bạn có thể hình dung khi định xóa một tập tin 10 MB, chúng ta phải xóa tổng cộng 2560 trang. Nếu sau đó chúng cũng được chia thành các khối khác nhau, thì sẽ phải đọc rất nhiều dữ liệu. Mặc dù một khối chỉ chứa 4 KB của tệp, 512 KB phải được đọc để xóa phần 4 KB. TRIM đảm bảo rằng điều này xảy ra vào những lúc bạn không sử dụng SSD.
8. Giải phóng dung lượng một lần nữa
Bây giờ 2 trang đã sẵn sàng để viết lại.
9. Ghi tệp vào không gian trống
Nếu tệp 12 KB hiện đã được lưu, thì sẽ có đủ trang trống để lưu tệp (màu cam).