-Bộ đệm “mềm” (Software disk caches):
Sử dụng một phần bộ nhớ chính của máy (PC RAM – main memory) để truy xuất và lưu trữ tạm thời một phần dữ liệu của ổ cứng. Loại bộ đệm này do một chương trình tao và quản lý cho nên không cần đế những phần cứng hỗ trợ đặc biệt. VCACHE chính là một ví dụ thực tế về bộ đệm mềm.
-Bộ đệm “cứng” (on-board disk caches):
Sử dụng bộ nhớ và bộ điều khiển cache được thiết kế ngay trên board mạch của ổ cứng. Mặc dù nó không hề sử dụng bất cứ một phần RAM nào của bộ nhớ chính (computer RAM) để làm công việc lưu trữ tạm thời nhưng chúng có dung lượng rất thấp (128KB->2MB cá biệt có thể lên đến 4MB) và cực kỳ đắt tiền.
-Bộ đệm “riêng” (disk caching controllers):
Tương tự như bộ đệm cứng, bộ đệm riêng sử dụng bộ nhớ riêng (có cấu trúc khác RAM) nhưng bộ nhớ và bộ điều khiển mà bộ đệm này sử dụng là bộ nhớ và chíp điều khiển được gắn riêng rẽ trên một card điều khiển chứ không phải là trên board mạch của ổ cứng và lẽ dĩ nhiên giá thành của chúng cực kì đắt. Tuy nhiên, bộ đệm riêng lại hoạt động tốt và nhanh hơn rất nhiều so với bộ đệm cứng vì nó vượt qua được một số giới hạn của những phần của ổ cứng mà bộ đệm cứng luôn bị ảnh hưởng.
-Buffers :
Ở đây chúng tôi không dịch hẳn từ buffer mà để nguyên như thế vì giữa buffers và cache có những điểm rất giống nhau. Có rất nhiều tài liệu biên dịch hoặc nguyên bản hoàn toàn không phân biệt giữa 2 khái niệm “cache” và “buffers” mà lại để nguyên là “bộ đệm” – như vậy là không chính xác! Vậy giữa cache và buffers có gì khác nhau và giống nhau ? Có một điểm duy nhất giống nhau giữa cache và buffers chính là “chúng đều là bộ nhớ đệm có tác dụng lưu trữ tạm thời một số dữ liệu trên ổ cứng nhằm tăng tốc tốc độ truy xuất dữ liệu và tăng tuổi thọ cho ổ cứng” và điểm khác nhau giữa chúng là :
Cache có tốc độ cao hơn nhiều so với buffers.
Cache phải cần đến bộ điều khiển cache - nếu là “cứng” thì cần phài có chíp điều khiển, còn “mềm” thì phải cần phần mềm điều khiển – trong khi đó buffers chỉ là một con chíp nhớ đơn giản không cần bộ điều khiển riêng.
Buffers gặp rất nhiều giới hạn trong các quá trình giao tiếp và chuyển đổi dữ liệu bởi vì khả năng quản lý dữ liệu của nó rất kém. Khi lưu trữ dữ liệu tạm thời, buffer lưu trữ một lúc cả một track vì thế nếu muốn tìm một sector nào trên track này thì hệ điều hành lại phải tiếp tục tìm kiếm trên track mà buffer cung cấp - chậm hơn hẳn so với cache.
Những điều cần chú ý đến Cache :
Có thể bạn sẽ rất ngạc nhiên nếu như chúng tôi nói là “ổ cứng có cache lớn không có nghĩa là sẽ truy xuất dữ liệu nhanh hơn ổ cứng có cache nhỏ (hai cái cùng loại có cùng tốc độ và dung lượng)”. Nói điều này thì cũngkhông có gì là bất thường lắm, cache là bộ nhớ do đó tốc độ truy xuất của bộ nhớ làm cache càng nhanh thì càng tốt , tuỳ thuộc vào mức độ thôn minh và khả năng quản lý của “chíp điều khiển” (cache controllers chip) và cuối cùng là tổ chức của bộ nhớ làm cache (cho phép đọc/ghi dữ liệu tuỳ ý hoặc chỉ có thể đọc hoặc ghi từ đầu đến cuối). Tuy nhiên tác dụng của bộ cache sẽ mất hoặc giảm đi rất nhiều nếu như ổ cứng đã được defragment (phần này chúng tôi sẽ nói kỹ hơn ở phần Cấu trúc File System)
Ở đây chúng tôi xin được nói thêm một chút về VCACHE :
Windows có một driver ảo gọi là VCACHE có nhiệm vụ quản trị bộ nhớ đệm cho ổ cứng. VCACHE chính là một sự thay thế cho “bộ đệm mềm” của DOS và các version Windows trước đó (thường được gọi là SmartDrive). VCACHE có khả năng thay đổi rất nhanh dung lượng bộ nhớ mà nó sử dụng, điều mà các trình quản lý bộ đệm trong DOS không thể làm được. Khi đĩa cứng hoạt động liên tục (chép file hoặc đọc file lớn) trong khi đó việc truy cập bộ nhớ lại thấp thì nó sẽ tự động điều chỉnh kích thước bộ đệm (tăng lên) cho phù hợp để RAM có thể chia sẻ bớt một phần công việc của đĩa cứng. Nguợc lại, khi ổ cứng ít hoạt động (ít truy xuất dữ liệu) nhưng RAM lại liên tục có lệnh truy xuất (khi chạy các ứng dụng tính toán cao cấp) thì nó sẽ tự động điều chỉnh kích thước bộ đệm ( giảm xuống) để có được dung lượng RAM tối đa cho các ứng dụng tính toán. VCACHE hoàn toàn có khả năng tạo ra những file cache (còn gọi là swap file) ngay trên ổ cứng mạng (98,Me). Nó sử dụng quá trình “đọc trước – ghi từ cache xuống” (read-ahead and write-behind caching). VCACHE là một ví dụ điển hình của “bộ đệm mềm” (software disk cache).
Đọc trước (read-ahead) :
Là một phương pháp xem xét thử phần dữ liệu nào sẽ được ứng dụng yêu cầu truy xuất kế tiếp rồi đọc nó vào bộ nhớ, nó luôn luôn được kích hoạt khi máy vi tính đang trong trạng thái nghỉ ngơi (Standby) hoặc ít hoạt động (Idle). Kết quả của phương pháp này là giảm được nhiều chuyển động của đầu đọc và đĩa cứng hoạt động êm hơn (không đọc nhiều nên không gây tiếng ồn).
Ghi từ cache xúông (write-behind caching):
Cũng cho kết quả tuơng tự nhưng nó còn bao gồm luôn công việc giữ phần dữ liệu trong cache để chúng đuợc ghi xuống đĩa cứng hoàn toàn cho đến khi máy vi tính nghỉ ngơi (shutdown). Một vấn đề với phương pháp này là “nếu như máy tính mất điện đột ngột thì những phần dữ liệu chưa được ghi từ cache xuống ổ cứng sẽ mất trắng không tìm lại được vì cache là một dạng bộ nhớ cần nguồn nuôi”.