Là nói một bộ đệm là một loại bộ đệm đặc biệt đúng? Cả hai đều thực hiện các chức năng tương tự nhau, nhưng có một số khác biệt cơ bản mà tôi đang thiếu?
Là nói một bộ đệm là một loại bộ đệm đặc biệt đúng? Cả hai đều thực hiện các chức năng tương tự nhau, nhưng có một số khác biệt cơ bản mà tôi đang thiếu?
Câu trả lời:
Từ bài viết của Wikipedia về bộ đệm dữ liệu :
bộ đệm là một vùng lưu trữ bộ nhớ vật lý được sử dụng để tạm thời giữ dữ liệu trong khi nó đang được di chuyển từ nơi này sang nơi khác
Một bộ đệm kết thúc việc đạp xe xuyên qua và giữ từng đoạn dữ liệu được truyền từ vị trí lưu trữ này sang vị trí lưu trữ khác (như khi sử dụng bộ đệm tròn trong xử lý âm thanh). Một bộ đệm chỉ cho phép điều đó - một "bộ đệm" dữ liệu trước và sau vị trí hiện tại của bạn trong luồng dữ liệu.
Thật vậy, có một số khía cạnh phổ biến của bộ đệm và bộ đệm. Tuy nhiên, bộ đệm theo nghĩa thông thường thường không lưu trữ tất cả dữ liệu khi nó được di chuyển từ nơi này sang nơi khác (tức là bộ đệm CPU).
Mục đích của bộ đệm là lưu trữ dữ liệu một cách minh bạch, sao cho vừa đủ dữ liệu được lưu vào bộ đệm để dữ liệu còn lại có thể được chuyển mà không bị phạt hiệu năng. Trong ngữ cảnh này, bộ đệm chỉ "tìm nạp trước" một lượng nhỏ dữ liệu (tùy thuộc vào tốc độ truyền, kích thước bộ đệm, v.v ...).
Sự khác biệt chính là bộ đệm cuối cùng sẽ chứa tất cả dữ liệu. Ngược lại, bộ đệm có thể chứa tất cả, một số hoặc không có dữ liệu (tùy thuộc vào thiết kế). Tuy nhiên, bộ đệm được truy cập như thể bạn đang truy cập trực tiếp vào dữ liệu ở vị trí đầu tiên - chính xác những gì được lưu trong bộ nhớ cache là trong suốt đối với "người dùng" của bộ đệm.
Sự khác biệt là trong giao diện . Khi bạn đang sử dụng bộ đệm để truy cập nguồn dữ liệu, bạn sử dụng nó như thể bộ đệm là nguồn dữ liệu - bạn có thể truy cập mọi phần của nguồn dữ liệu thông qua bộ đệm và bộ đệm sẽ xác định dữ liệu đến từ đâu ( bộ nhớ cache chính nó, hoặc nguồn). Bản thân bộ đệm xác định phần nào của dữ liệu cần tải trước (thường chỉ là phần đầu, nhưng đôi khi là tất cả), trong khi thuật toán thay thế bộ đệm được sử dụng sẽ xác định những gì / khi mọi thứ được xóa khỏi bộ đệm. Ví dụ tốt nhất về điều này là một hệ thống, ngoài chính bộ đệm của CPU , là trình tải trước / readahead. Cả hai đều tải các phần dữ liệu mà họ nghĩ rằng bạn sẽ sử dụng nhiều nhất vào bộ nhớ và trở lại ổ cứng nếu có gì đó không được lưu trong bộ nhớ cache.
Ngược lại, bộ đệm không thể được sử dụng để di chuyển tức thời vị trí của bạn trong luồng dữ liệu, trừ khi phần mới đã được chuyển sang bộ đệm. Để làm như vậy sẽ yêu cầu bộ đệm di dời (với vị trí mới vượt quá chiều dài bộ đệm), yêu cầu bạn phải "khởi động lại" bộ đệm từ một vị trí mới. Ví dụ tốt nhất về điều này là di chuyển thanh trượt trong video Youtube.
Một ví dụ khác về bộ đệm là phát lại âm thanh trong Winamp. Vì các tệp âm thanh cần được giải mã bởi CPU, nên phải mất một thời gian giữa khi bài hát được đọc, đến khi âm thanh được xử lý, khi nó được gửi đến card âm thanh của bạn. Winamp sẽ đệm một số dữ liệu âm thanh để có đủ dữ liệu âm thanh được xử lý để tránh mọi "khóa" (tức là CPU luôn chuẩn bị âm thanh bạn sẽ nghe trong vài trăm mili giây, không bao giờ là thời gian thực ; những gì bạn nghe được đến từ bộ đệm, đó là những gì CPU đã chuẩn bị trong quá khứ).
Sẽ chính xác hơn khi nói rằng bộ đệm là một kiểu sử dụng cụ thể của bộ đệm, ngụ ý nhiều lần sử dụng của cùng một dữ liệu. Hầu hết việc sử dụng "bộ đệm" ngụ ý rằng dữ liệu sẽ bị cạn kiệt hoặc bị loại bỏ sau một lần sử dụng (mặc dù điều này không nhất thiết phải như vậy), trong khi "bộ đệm" ngụ ý rằng dữ liệu sẽ được sử dụng lại nhiều lần. Bộ nhớ đệm cũng thường ngụ ý rằng dữ liệu được lưu trữ vì nó cũng đang được sử dụng đồng thời, mặc dù điều này không nhất thiết phải như vậy (như trong quá trình tìm nạp trước và tương tự), trong khi bộ đệm ngụ ý rằng dữ liệu sẽ được lưu trữ để sử dụng sau.
Tuy nhiên, chắc chắn có sự chồng chéo lớn trong cả việc thực hiện và sử dụng.
Một sự khác biệt quan trọng giữa bộ đệm và bộ đệm là:
Bộ đệm là một phần của bộ nhớ chính. Chúng là các cấu trúc có mặt và được truy cập từ bộ nhớ chính (RAM).
Mặt khác, bộ đệm là một bộ nhớ vật lý riêng biệt trong hệ thống phân cấp bộ nhớ của máy tính.
Bộ đệm đôi khi cũng được gọi là - Bộ đệm bộ đệm. Tên này nhấn mạnh vào thực tế là việc sử dụng bộ đệm tương tự như bộ đệm, tức là để lưu trữ dữ liệu. trong khi sự khác biệt nằm trong bối cảnh sử dụng của nó.
Bộ đệm được sử dụng để lưu trữ dữ liệu tạm thời, trong khi dữ liệu được di chuyển từ đối tượng này sang đối tượng khác. EX: khi video được chuyển từ Internet sang PC của chúng tôi, bộ đệm hiển thị được sử dụng để lưu trữ các khung của video sẽ được hiển thị tiếp theo. . Dữ liệu mới được ghi không được sao chép vào bộ nhớ thứ cấp ngay lập tức. Các thay đổi được thực hiện được lưu trữ trong bộ đệm và sau đó theo chính sách được thiết kế, các thay đổi được phản ánh trở lại tệp trong bộ nhớ thứ cấp (đĩa cứng).
Mặt khác, bộ nhớ cache được sử dụng giữa bộ nhớ chính và bộ xử lý, để thu hẹp khoảng cách giữa tốc độ thực thi của RAM và bộ xử lý. Ngoài ra, dữ liệu được truy cập thường xuyên nhất được lưu trữ trong bộ đệm để giảm quyền truy cập vào RAM.
Điểm chung: cả hai đều là các thành phần lưu trữ dữ liệu trung gian (phần mềm hoặc phần cứng) giữa tính toán và lưu trữ "chính".
Đối với tôi sự khác biệt là như sau:
Đệm:
Bộ nhớ cache: