Đây là một khái niệm quan trọng trong ngành khoa học máy tính, được thể hiện trên mọi máy tính dưới rất nhiều dạng khác nhau. Có cache bộ nhớ, cache đĩa phần cứng và phần mềm, cache trang và nhiều loại khác. Thậm chí, bộ nhớ ảo cũng là một dạng cache.
Một ví dụ đơn giản
Cache là một công nghệ được xây dựng dựa trên một hệ thống phụ của bộ nhớ trong máy tính. Mục đích chính của cache là nhằm tăng tốc độ máy tính trong khi vẫn giữ mức giá máy thấp. Cache cho phép bạn thực hiện các tác vụ máy tính nhanh hơn.
Để hiểu được những ý tưởng căn bản đằng sau hệ thống cache, chúng ta hãy bắt đầu với một ví dụ rất đơn giản để minh họa cho khái niệm này. Hãy tưởng tượng người thủ thư đang ngồi sau bàn của mình. Cô ta có mặt tại đây để giao sách mà sinh viên yêu cầu. Để cho tiện lợi, đặt trường hợp bạn không thể tự mình lấy sách, phải yêu cầu người thủ thư. Cô ta sẽ đi lấy những cuốn sách bạn cần từ vô số kệ sách. Trước tiên hãy bắt đầu với một thủ thư không có cache.
Người đọc đầu tiên tới. Anh ta yêu cầu cuốn sách Vietnam - past and future. Thủ thư vào kho và lấy sách, quay trở lại và trao nó cho người mượn. Sau đó, người mượn sẽ quay lại trả sách. Thủ thư đem sách để về vị trí cũ. Một người khác khác cũng hỏi mượn cuốn Vietnam - past and future. Khi đó, thủ thư phải quay lại chỗ trước đó để lấy sách. Theo mô hình này, cô thủ thư phải thực hiện một chuyến đi hoàn chỉnh để lấy mọi cuốn sách - thậm chí cả những cuốn phổ biến thường xuyên có người hỏi mượn. Có cách nào để tăng hiệu quả hoạt động của người này?
Có một cách: Chúng ta có thể đặt một cache cho người thủ thư. Hãy cho cô ta một chiếc ba lô có thể chứa 10 cuốn sách (theo thuật ngữ máy tính thì người này giờ đây đã có cache 10 cuốn sách). Trong ba lô này, cô ta sẽ đặt các cuốn sách mà khách hàng trả, tối đa là 10.
Ngày mới bắt đầu. Ba lô của thủ thư trống rỗng. Người đọc đầu tiên tới và yêu cầu Vietnam - past and future. Thủ thư sẽ phải đi vào kho để lấy sách. Và chu trình lặp lại như trên, nhưng thay vì để sách trở lại giá, người thủ thư bỏ nó vào ba lô (trước tiên phải kiểm tra xem ba lô đã đầy chưa). Ngưi khách khác tới và hỏi Vietnam - past and future. Trước khi đi vào kho, người thủ thư kiểm tra tên đó có trong ba lô của mình, và tìm thấy nó. Tất cả những gì cần làm là lấy cuốn sách trong ba lô và trao cho khách hàng. Cách phục vụ này hoàn toàn hiệu quả.
Điều gì sẽ xảy ra nếu cuốn sách khách hàng yêu cầu không nằm trong cache (ba lô)? Trong trường hợp này, người thủ thư không có cache sẽ làm việc kém hiệu quả hơn khi có cache, bởi vì khoảng thời gian lấy sách được rút ngắn rất nhiều. Một trong những thách thức của thiết kế cache là giảm tối thiểu những tác vụ khi tìm kiếm trong cache, và phần cứng hiện đại đã giảm thời gian trì hoãn gần như bằng 0.
Từ ví dụ này, bạn có thể thấy một số yếu tố quan trọng về cache. Công nghệ cache là sử dụng loại bộ nhớ nhỏ nhưng nhanh để tăng tốc độ loại bộ nhớ lớn nhưng chậm. Có thể có nhiều lớp cache. Với ví dụ về người thủ thư, loại bộ nhớ nhỏ nhưng nhanh là chiếc ba lô, và kho sách là đại diện cho loại bộ nhớ lớn và chậm. Đây là cache cấp 1. Có thể có một lớp cache khác bao gồm một giá sách có thể để 100 cuốn sách đặt gần thủ thư. Khi đó, thủ thư có thể trước tiên kiểm tra ba lô, sau đó giá sách rồi mới đến kho. Đây là cache cấp 2.
Trong máy tính, Internet là hình thức kết nối chậm nhất. Vì thế, các trình duyệt Internet như Internet Explorer, Netscape hay Opera sử dụng ổ cứng để lưu các trang HTML, đặt chúng vào một thư mục đặc biệt trên ổ cứng. Lần đầu tiên bạn yêu cầu mở một trang HTML, trình duyệt sẽ thực hiện lệnh và tự copy một bản đó vào trong đĩa. Lần sau, khi bạn muốn đến trang đó, trình duyệt sẽ kiểm tra ngày của file đó so với bản trên Internet. Nếu ngày giống nhau, trình duyệt sẽ lấy dữ liệu lưu trong ổ cứng thay vì tải nó từ Internet. Trong trường hợp này, hệ thống bộ nhớ nhanh nhưng nhỏ là ổ cứng và chậm nhưng lớn là Internet.
Cache có thể được gắn trực tiếp trên các thiết bị ngoại vi. Các đĩa cứng hiện đại được gắn bộ nhớ truy cập nhanh, khoảng 512 KB. Máy tính không trực tiếp sử dụng bộ nhớ này mà là chương trình điều khiển ổ cứng. Đối với máy tính, các chip có bộ nhớ này được coi là đĩa. Khi máy tính yêu cầu dữ liệu từ ổ cứng, chương trình quản lý đĩa sẽ kiểm tra bộ nhớ đó trước khi di chuyển các bộ phận cơ khí của đĩa cứng (tốc độ rất chậm so với bộ nhớ). Nếu nó tìm thấy dữ liệu mà máy tính yêu cầu trong cache, nó sẽ cung cấp thông tin đó mặc dù không thực sự truy cập vào ổ đĩa, tiết kiệm rất nhiều thời gian.
Văn Bình