Nếu bạn hỏi tôi hoặc một ai đó rành về phần cứng PC, rằng nên mua món gì để cải thiện hiệu năng máy tính, thì câu trả lời thường là "hãy mua một chiếc SSD".
Lời khuyên này lại cực kỳ đúng nếu cấu hình PC của bạn đã mạnh sẵn với CPU 4 nhân, RAM từ 4 GB trở lên và card đồ hoạ thuộc phân khúc trung cấp (mid-end) trở lên. Dĩ nhiên với laptop có thể khác biệt một chút song nâng cấp lên SSD vẫn là đáp án chủ đạo. Song lời khuyên này không có nghĩa bạn có thể "say goodbye" với HDD trong hôm nay hoặc ngày mai, hoặc ít nhất là vài năm nữa.
- SSD nhanh nhưng có những bất cập về lâu dài
- Hạn chế về tiến trình bán dẫn là một thách thức lớn
- Những vấn đề kỹ thuật sẽ làm chậm quá trình thay thế HDD
- Lựa chọn tốt nhất cho hôm nay là dùng cả SSD và HDD
Bản chất của SSD
Trong khuôn khổ bài này, tôi chỉ nói đến loại SSD bán phổ biến hiện nay trên thị trường là loại dựa trên bộ nhớ flash NAND, cụ thể hơn là các model được dùng như HDD. Trong trường hợp bạn quan tâm hơn đến SSD, một bài viết trước đây về lịch sử các loại SSD sẽ rất hữu ích.
Để cho gọn, SSD không khác USB flash drive (mà chúng ta hay gọi sai là "cục" USB) là mấy về bản chất lưu trữ - đều là flash NAND. Flash NAND nói riêng và bộ nhớ flash nói chung được cấu tạo từ các transistor (trans) nên cách thức sản xuất chúng tương tự với chip nhớ DRAM hay các loại chip xử lý khác (CPU, GPU).
Minh hoạ về điện thế và giá trị của bit.
Những bạn đọc có tìm hiểu về IT hẳn sẽ biết tới hai con số "huyền thoại": 0 và 1. Đấy là hai viên gạch cơ bản xây dựng nên thế giới số của chúng ta hôm nay. Nhưng khoan, thực tế bit 0 hay 1 là do con người quy định ra, các trans không hiểu 0 hay 1 là gì, chúng chỉ là các giá trị điện áp. Và chúng ta tự quy định rằng ở điện áp cao thì đấy là bit 1 (hoặc ON), ở điện áp thấp thì đấy là bit 0 (hoặc OFF). Và đây là cơ sở để bộ nhớ flash hoạt động.
Loại trans dùng cho bộ nhớ flash có tên FGMOS hay Floating-gate MOSFET, dịch ra là trans hiệu ứng trường (field-effect transistor) có cấu trúc dạng MOSFET với một cổng "trôi nổi" (floating). Khoan lần nữa, tạm thời bạn không cần để ý MOSFET là gì, chỉ cần biết FGMOS rất giống với loại trans "phổ thông" đang dùng trên các CPU hiện nay (không tính trans trên chip Ivy Bridge của Intel vì nó đi theo hướng khác). Điểm khác biệt cốt yếu là FGMOS có thêm một cổng "trôi" nằm giữa cực cổng (gate) và kênh dẫn (channel). Phần đầu trong bài viết sau sẽ giúp bạn dễ hình dung vấn đề hơn.
Transistor "phổ thông"...
và transitor có cổng "trôi".
Một trans "phổ thông" không có khả năng lưu trữ dữ liệu vĩnh viễn, nó chỉ đơn thuần là một công tắc đóng / ngắt dòng điện qua mạch dẫn. 1967, hai kỹ sư điện là Kahng và Sze đã "thêm thắt" vào đấy chiếc cổng "trôi" như chúng ta vừa nêu ở trên. Gọi là "trôi" vì chiếc cổng này không "dẫn điện" với thành phần nào của chiếc trans, nó hoàn toàn bị cô lập về tính dẫn điện do phía trên và dưới là hai lớp oxide cách điện (ONO & SiO2). Bạn có thể ví von nó giống một cổng FA (forever alone) cũng được vì nó chẳng thể "nói chuyện" với ai được nếu người khác không muốn "nói chuyện" với nó.
Vì đặc trưng "FA" của mình, chiếc cổng "trôi" sẽ không mất điện thế của nó ngay cả khi mạch điện bị ngắt. "FA" chính là thứ đáng giá với các công ty sản xuất thiết bị lưu trữ dài hạn (non-volatile): bạn đặt vào đấy một bit 0, nó vẫn là 0 cho tới nhiều năm sau và ngược lại (chung thuỷ như FA nhỉ, đâu có "bay bướm" như tụi DRAM?). Như vậy, một trans có khả năng "nhớ" dữ liệu đã ra đời - FGMOS nói chung và flash nói riêng.
Vì sao SSD nhanh?
Qua phần trên, bạn vẫn chưa hiểu tại sao tốc độ SSD có thể cao như vậy. Và chú ý hơn, bạn sẽ thấy mấy "cục" USB tốc độ đâu có cao, mặc dù cũng là bộ nhớ flash? Câu trả lời nằm ngoài bản chất của bộ nhớ FGMOS. Tôi có thể tóm tắt ra một số ý sau:
-
Logic hoạt động của loại chip flash (SLC, MLC, TLC...)
-
Số kênh (channel) NAND chạy cùng lúc
-
Cách thức điều phối các kênh NAND hoạt động (firmware, controller)
-
Loại giao tiếp hỗ trợ (SATA, PCIe...)
-
Hệ điều hành (Windows, Linux, Unix)
-
Về logic hoạt động của chip flash, tôi xin dành ở phần sau (lý do sẽ nêu sau). Xin qua điểm khác biệt chính giữa "ổ" USB và SSD: số kênh NAND. Hình dung như CPU 1 nhân và CPU 8 nhân. Dù bản chất là như nhau, nhưng 1 người làm so với nhiều người làm cùng lúc, hiệu suất công việc sẽ khác. Kênh NAND mang ý nghĩa tương tự, càng nhiều kênh hoạt động thì tốc độ làm việc càng nhanh. Ổ flash USB thường chỉ có 1 kênh làm việc nên tốc độ thấp.
Tương tự làm việc cá nhân và làm việc nhóm, chỉ một kênh thì cơ chế làm việc rất đơn giản, làm tới đâu biết tới đó. Nhưng nhiều kênh thì khác. Như một team work, cần có trưởng nhóm phân chia công việc đều tới mọi người trong nhóm. Với SSD cũng vậy, cần có một chip điều khiển (controller) để quản lý mọi kênh NAND làm việc cùng lúc. Thử hình dung một file 8 MB thì mỗi kênh xử lý 1 MB (có 8 kênh), controller cần nắm rõ từng phần của file đấy nằm ở chip flash nào (SSD thường có nhiều chip flash).
Và đôi khi, chính sách của công ty thay đổi, trưởng nhóm cũng phải cập nhật tình hình để cải cách lại nhóm. Các chính sách này chính là firmware của controller. Một firmware "cùi" sẽ khiến hiệu năng của SSD trở nên rất tệ và ngược lại. Đã có vài trường hợp mà bản update firmware SSD khiến cho thiết bị lưu trữ hoá thành... cục gạch silicon! Lại nói, ổ flash USB cũng có controller, nhưng vì cách thức làm việc đơn giản nên giá thành các controller này cũng không cao và gần như không có gì để cải thiện cách làm việc. Cho dễ hiểu thì controller của ổ flash USB khá "cùi", controller của SSD khá "xịn".
Do có nhiều kênh làm việc cùng lúc (đa luồng, đa kênh, đa dây chuyền... tuỳ ý bạn), hiệu năng của SSD gần như không có giới hạn về lý thuyết vì có thể tăng lên liên tục (dĩ nhiên là lý thuyết). Khác với HDD hiện gần như đạt tới giới hạn về tốc độ (số vòng quay của phiến đĩa), SSD vẫn có thể tăng hiệu năng. Điều quan trọng là giao tiếp mà thiết bị này dùng để giao tiếp với máy tính cũng phải thoả mãn được tốc độ ấy (chúng ta thường gọi là bị "nghẽn" hay "thắt cổ chai"). Tưởng tượng như một ngày nhà máy làm ra được 10 tấn hàng nhưng tuyến vận chuyển chỉ đáp ứng được 7 tấn, có nghĩa giao tiếp đang là chướng ngại về mặt tốc độ. Cần tới chuẩn SATA cao hơn hay một giao tiếp khác (PCIe chẳng hạn) là giải pháp cho SSD.
Yếu tố sau cùng là hệ điều hành (HĐH). Điều này gần như là hiển nhiên vì các chính sách mới tiến bộ hơn nhưng ban giám đốc bảo thủ không chịu hỗ trợ thì mọi nỗ lực của cả nhóm cũng chả thấm vào đâu. Một trong các thay đổi đáng kể nhất là việc hỗ trợ lệnh TRIM mà các bản HĐH mới đây mới hỗ trợ thêm. Nếu không hỗ trợ lệnh này, hiệu năng của SSD sẽ giảm xuống.
Nhưng không tuyệt như bạn nghĩ
SSD nói riêng và bộ nhớ flash nói chung, có một nhược điểm gần như chứng ung thư của con người - tuổi thọ có giới hạn. Tuổi thọ này thực ra là thời gian "sống" của chiếc cổng "FA". Không như HDD hoạt động dựa trên sự lưu trữ từ, chip flash hoạt động dựa trên sự lưu trữ điện trường (hiệu ứng trường). Các thay đổi về từ tính không làm hao mòn tế bào nhớ nhưng thay đổi về điện thế dẫn tới các thay đổi hoá học lên chiếc cổng trên. Theo thời gian hoạt động nó sẽ bị ăn mòn điện hoá dần dần và đến một lúc, không còn khả năng lưu trữ thông tin (hẳn bạn từng nghe "cục" USB thân yêu của mình có tuổi thọ khoảng 10.000 lần ghi xoá?)
Tuổi thọ của từng loại transistor flash NAND tính theo số lần ghi / xoá.
Song tôi không có ý đào sâu vấn đề tuổi thọ này. Vì các kỹ sư thông minh của chúng ta đã nghĩ ra nhiều cách nhằm tăng thời lượng sử dụng của chúng lên. Ví dụ "hy sinh" một số chip flash để dùng làm bộ ghi đệm (over-provisioning hay OP), các trans OP này về cơ bản sẽ "chết sớm" hơn các trans chứa dữ liệu thực của bạn, nhưng dữ liệu của bạn vẫn an toàn. Các thuật toán "chia đều" dữ liệu (garbage collection hay GC) nhằm đảm bảo các trans chứa dữ liệu thực sẽ "già đều" như nhau và đến khi chiếc SSD "chết" thì về căn bản, nó cũng phục vụ được bạn 6 - 7 năm.
Nhưng điều khiến cho SSD chưa thể thay thế hoàn toàn HDD được nằm ở phần sau.
Có thể tiến xa bao nhiêu?
Các ưu việt về tốc độ đọc / ghi lẫn truy cập (độ trễ) của SSD không cần thiết phải bàn cãi. Không dùng motor cơ học để quay mà dùng tín hiệu điện nên đọc dữ liệu từ SSD rất nhanh. Mỗi khi tìm một file nào đó trong đống tài liệu từ HDD, đó là một "nỗi đau" với tôi vì độ trễ quá cao.
Vấn đề tuổi thọ của SSD hiện nay gần như không là vấn đề lớn vì các thuật toán quản lý trên firmware đã giúp các trans flash NAND "sống" lâu hơn, nhất là dung lượng OP càng cao thì chiếc SSD càng "thọ". Vậy còn gì cản trở SSD thay thế hoàn toàn HDD?
Dung lượng & giá thành. Thoạt nghe bạn có thể bật cười vì dung lượng SSD đang tăng đều đều nếu không gọi là gần đuổi kịp HDD. Còn giá thành thì theo thời gian, sau khi khấu hao chi phí R&D, giá thành sẽ giảm. Song, đấy là tình hình trước mắt...
Nhờ đâu các nhà sản xuất (NSX) tăng được dung lượng SSD? Có 3 cách:
-
Tăng số lượng chip nhớ lên (1)
-
Tăng dung lượng từng chip nhớ lên (2)
-
Thay đổi logic hoạt động (3)
Cách (1) hoàn toàn khả thi vì về lâu dài, chi phí sản xuất trên dây chuyền bán dẫn cũ sẽ giảm, song đánh đổi lại là kích thước thiết bị sẽ không còn như trước (to hơn vì phải chứa nhiều chip hơn), lượng điện tiêu thụ cũng cao hơn.
Dung lượng tăng theo số lượng chip.
Cách (2) lại khác. Hiện tại đa số các model SSD dùng trên thị trường đang dùng tiến trình bán dẫn 30 - 40nm (điển hình là 34nm). Các model "tiên tiến" hơn ở mức 20 - 30nm (ví như 25nm). Chỉ riêng Toshiba hiện mới đạt tới 19nm (trans cho chip nhớ thường nhỏ hơn chip xử lý do ít yêu cầu về xung nhịp hơn). Vấn đề là: còn thu nhỏ trans được tới mức nao? Cho đến hiện nay, những hãng bán dẫn "đầu sỏ" nhất cũng chỉ mới hoạch định node 14nm vào 2015. Còn sau đấy, gần như... vô định. Hãy giả định rằng sau 25nm, SSD sẽ chuyển xuống 14nm và... tương lai mờ mịt.
Dung lượng tăng lên nhờ kích thước transistor nhỏ xuống.
Chúng ta còn lại cách (3). Hãy quay trở lại với bit 0 và 1, chú ý rằng đây là các giá trị do con người đặt ra (logic) dựa trên mức điện thế của cổng "FA". Giả định rằng mức 0V là bit 0 và mức 1V là bit 1. Như vậy giữa 0V và 1V vẫn còn một khoảng cách khá lớn. Sao không quy định thêm một số mức khác để có thêm nhiều bit lưu trữ hơn? Các kỹ sư thông minh của chúng ta đã tìm ra lời giải. Cho mức 0V là bit 00, mức 0,3V là bit 01, mức 0,7V là bit 10 và mức 1V là bit 11. Tức chỉ với một trans (tế bào nhớ), chúng ta chứa được 2 bit so với trước.
Dung lượng do quy định logic của chip nhớ.
Phương pháp tăng bit logic trên chính là cách mà chúng ta có bộ nhớ flash MLC (multi level cell), so với bộ nhớ flash SLC (single level cell).
Đã lên 2 bit rồi sao không lên 3 bit? Được thôi, chúng ta có tiếp bộ nhớ flash TLC (triple level cell). Nhưng đây là lúc vấn đề phát sinh: các mức điện thế quy định các bit quá gần nhau - chúng tăng theo luỹ thừa 2 (2, 4, 9, 16, 25...) và rất khó để phân biệt giữa bit này với bit khác. Lấy ví dụ bit 000 ứng với điện thế 0V thì bit 001 là 0,1V, bit 010 là 0,2V. Với bạn các con số này có vẻ dễ phân biệt, nhưng với hiệu ứng trường thì không đơn giản.
Các mức điện thế ứng với từng bit trên NAND.
Hãy lưu ý rằng các trans không giống nhau 100%, sẽ có mức 0,09; 0,10; 0,11; 0,12V. Nếu chỉ có 2 hoặc 4 mức điện thế, phân biệt chúng không khó. Nhưng 9 mức rồi thậm chí 16 mức sẽ cực kỳ khó. Mà không đọc / ghi chính xác được các mức điện thế, controller sẽ không cho kết quả đúng. Thử nghĩ lúc ghi là bit 110 nhưng khi đọc lại là bit 111, sự tai hại sẽ như thế nào?
Do sự đan xen điện thế này mà các NSX SSD không "dám" đầu tư nhiều vào các chip flash TLC hay QLC (quad level cell). Họ có thực sự nghiên cứu trong phòng thí nghiệm nhưng kết quả rất tệ. Ấy là chưa tính tới việc hiệu năng bị giảm đi. Vì chip SLC chỉ có 2 mức điện thế lập trình, nó nhanh hơn so với 4 mức lập trình (hãy nghĩ tới hình ảnh các bậc thang), TLC có tới 9 mức lập trình và để thay đổi từ mức thấp lên cao hoặc ngược lại đều tốn một thời lượng cố định.
Ngoài ra, kết hợp với khó khăn của cách (2): hiệu ứng trường theo chiều ngang giữa các trans. Khi các trans đứng quá gần nhau, điện thế lập trình của chúng có ảnh hưởng lên nhau. Tưởng tượng như bạn đang học bài bằng cách lẩm bẩm trong mồm, nhưng đứng quá gần một người bạn cũng đang lẩm bẩm thì bạn sẽ bị ảnh hưởng và thông tin lưu lại trong não không được liền lạc. Trans flash cũng vậy, các bit thông tin có thể bị xáo trộn.
HDD sẽ còn sống lâu
Tôi viết những gì trên đây không phải để chê bai SSD. Vì nâng cấp lên SSD vẫn là câu tôi khuyên đầu tiên cho ai xài PC. Nhưng tôi không bảo mọi người hãy bỏ HDD đi, vì dù sao HDD vẫn có ưu điểm về dung lượng & giá thành. Công tâm mà nói, SSD tiến bộ thì HDD vẫn có tiến bộ, ít nhất cũng về mặt dung lượng.
Đến một lúc, SSD có thể hoàn toàn thay thế được HDD, khi các khấu hao về chi phí sản xuất giúp giá thành SSD ngang bằng với HDD. Nhưng đó có thể là một thời điểm "xa xôi" hơn những gì bạn tưởng tượng. Riêng tôi cho rằng phải mất 10 năm nữa, SSD mới có thể đẩy HDD vào dĩ vãng. Còn hiện tại, một PC có SSD dùng làm ổ cài đặt HĐH và ứng dụng, bên cạnh các HDD có dung lượng cao để lưu trữ dữ liệu, là lời khuyên tôi dành cho những ai muốn cải thiện trải nghiệm với chiếc PC của mình.
Tổng hợp