Khác biệt giữa bản sửa đổi của “Cache (tin học)”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
n add another title
nKhông có tóm lược sửa đổi
Dòng 9: Dòng 9:
|accessdate=2 May 2011}}</ref>) là bộ nhớ đệm chứa dữ liệu, các dữ liệu được nằm chờ yêu cầu từ ứng dụng hoặc phần cứng. Mục đích của Dữ liệu được chứa trong cache có thể là kết quả của tính toán trước đó, hoặc việc sao chép bản gốc của dữ liệu được lưu trữ ở một nơi khác.
|accessdate=2 May 2011}}</ref>) là bộ nhớ đệm chứa dữ liệu, các dữ liệu được nằm chờ yêu cầu từ ứng dụng hoặc phần cứng. Mục đích của Dữ liệu được chứa trong cache có thể là kết quả của tính toán trước đó, hoặc việc sao chép bản gốc của dữ liệu được lưu trữ ở một nơi khác.


== Cách vận hành: ==
== Cách vận hành ==
Phần cứng cài đặt '''cache''' như một nơi chứa dữ liệu tạm thời để có thể sử dụng lại.Vi xử lí (CPUs) và ở đĩa cứng (HDD) thường xuyên sử dụng Cache,tương tự trình duyệt web và máy chủ (server).
Phần cứng cài đặt '''cache''' như một nơi chứa dữ liệu tạm thời để có thể sử dụng lại.Vi xử lí (CPUs) và ở đĩa cứng (HDD) thường xuyên sử dụng Cache,tương tự trình duyệt web và máy chủ (server).


Dòng 61: Dòng 61:
hiệu quả.
hiệu quả.


== Ứng Dụng: ==
== Ứng Dụng ==
'''Bộ đệm chuyển đổi'''
'''Bộ đệm chuyển đổi'''



Phiên bản lúc 07:08, ngày 30 tháng 7 năm 2015

Mô hình hoạt động bộ nhớ cache của máy tính

Trong tin học, cache (/ˈkæʃ/ KASH[1]) là bộ nhớ đệm chứa dữ liệu, các dữ liệu được nằm chờ yêu cầu từ ứng dụng hoặc phần cứng. Mục đích của Dữ liệu được chứa trong cache có thể là kết quả của tính toán trước đó, hoặc việc sao chép bản gốc của dữ liệu được lưu trữ ở một nơi khác.

Cách vận hành

Phần cứng cài đặt cache như một nơi chứa dữ liệu tạm thời để có thể sử dụng lại.Vi xử lí (CPUs) và ở đĩa cứng (HDD) thường xuyên sử dụng Cache,tương tự trình duyệt web và máy chủ (server).

Cache gồm thanh ghi.Mỗi thanh ghi chứa 1 bit để đánh dấu là đang lưu dữ liệu từ bộ nhớ hoặc chưa được sử dung,1 nhãn (tag) để kiểm tra xem nó có phải là dữ liệu ứng với bộ nhớ hay không và 1 vùng để lưu trữ dữ liệu giống với bộ nhớ.

Khi cache client (vi xử lí,trình duyệt web,...) cần truy cập đễn dữ liệu ở bộ nhớ,nó sẽ kiểm tra Cache.Nếu 1 thanh ghi có nhãn tương ứng với dữ liệu mong muốn thì cache client sẽ sử dụng dữ liệu trên thanh ghi đó.Tình huống này đựoc gọi là cache-hit.Ngược lại,nếu không tìm đựoc thanh ghi tương ứng,cache miss xảy ra.Lúc này CPU sẽ truy câp vào bộ nhớ,lấy dữ liệu cần truy cập,đồng thời lưu dữ liệu đó vào 1 thanh ghi nào đó.

Trong khi cache miss,CPU sẽ loại bỏ một số thanh ghi để don chỗ cho dữ liêu không nằm trong cache.Việc loại bỏ thanh ghi phải tuân thủ các qui định về thay thế,thông dụng nhất là "least recently used" (LRU),tức là loại bỏ những cache ít được sử dung nhất.

Nguyên tắc ghi của hệ thống(Writing policies)

Khi CPU ghi dữ liêu vào Cache,cần phải có một số quy tắc ghi dữ liệu đó vào bộ nhớ.

Có 2 cách tiếp cận:

- Write-through: ghi ngay lập tức dữ liệu lên cả cache và bộ nhớ(DRAM)

-Write-back:ghi cho cache trước,việc ghi lên bộ nhớ bị trì hoãn đến khi có dữ liệu mới cần cần đặt lên vùng lưu trữ đó.

Một write-back cache được cài đặt khá phức tạp.Nó đánh dấu những thanh ghi có dữ liệu thay đổi,đánh dấu chúng là ghi đè"dirty" ,khi thanh ghi bị thay thế,dữ liệu trên(được đánh dấu) sẽ được ghi vào bộ nhớ.Do đó,khi read-miss trên write-back cache,mất 2 lần truy cập,một là để ghi dữ liệu bị thay đổi vào bộ nhớ,hai là để lấy dữ liệu cần dùng và ghi lên cache.

Khi write-miss(cache-miss xảy ra) ,có 2 cách xử lý:

-Write allocate: dữ liệu sẽ được ghi lên cache,một thanh ghi sẽ bị thay thế.Cách này tương tự read-miss

-No-write allocate: dữ liệu sẽ được ghi vào bộ nhớ nhưng không ghi trên cache

Cả write-through và write-back đều sử dụng 2 cách trên khi write-miss,nhưng phổ biến chúng được ứng với từng cách:

-Write-back cache sử dụng write allocate giúp ghi đè dữ liệu trên cache hiệu quả hơn

-Write-through cache sử dụng no-write allocate và việc ghi dư liệu khong được lưu trữ trong cache không có hiệu quả.

Ứng Dụng

Bộ đệm chuyển đổi

Đơn vị quản lý dữ liệu (MMU): tìm nạp những lối vào của trang bảng từ bộ nhớ chính sở hữu bộ nhớ đệm đặc biệt, được sử dụng để ghi lại kết quả của địa chỉ ảo đến địa chỉ vật lý. Bộ nhớ đệm đặc biệt này được gọi là Bộ Đệm Chuyển Đổi

Bộ nhớ đệm CPU

Bộ nhớ đệm được sử dụng bởi đơn vị xử lý trung tâm (CPU) của máy tính để giảm thiểu thời gian trung bình trong việc truy cập dữ liệu trong bộ nhớ chính. Bộ nhớ đệm nhỏ hơn, nhanh hơn trong việc lưu trữ dữ liệu sao chép từ vùng bộ nhớ chính được sử dụng thường xuyên nhất. Hầu hết CPU sở hữu những bộ nhớ đệm độc lập khác biệt nhau, bao gồm lệnh và bộ nhớ đệm dữ liệu, nơi mà bộ nhớ đệm dữ liệu thường được thiết lập như một hệ thống cấp bậc của nhiều hơn các cấp bộ nhớ đệm.

Bộ nhớ đệm Web(Web Cache)

Trình duyệt web và Máy chủ Web sử dụng Bộ nhớ đệm Web để chứa các phản hồi từ hệ thống máy chủ, chẳng hạn như hình ảnh và các trang web.

Bộ nhớ đệm Web giảm thiểu thông tin cần được truyền bằng mạng, bởi vì thông tin được chứa trong bộ nhớ đệm có thể được tái sử dụng. Điều này giúp giảm băng thông và đạt được các yêu cầu của máy chủ, đồng thời cải thiện tốc độ phản hồi của người dùng trên mạng.

Các trình duyệt web sử dụng bộ nhớ đệm liền, một số nhà cung cấp mạng hay tổ chức lại thích dùng máy chủ đệm để bộ nhớ đệm được chia sẻ cho tất cả người dùng trong hệ thống đó.

Một dạng khác của bộ nhớ đệm là P2P(peer to peer). Nó giúp các tập tin được các ứng dụng P2P tìm kiếm nhiều nhất và còn giúp tăng tốc chuyển dữ liệu P2P. Tương tự, các vùng tương đương sẽ xuất hiện, điều này giúp cộng đồng thực hiện các nhiệm vụ vận chuyển P2P chẳng hạn như Corelli.

Sự khác biệt giữa buffer và bộ nhớ cache

Hai từ ngữ "buffer" và "cache" không bao gồm nhau; thậm chí, có sự khác biệt cơ bản trong ý nghĩa giữa các quá trình của bộ nhớ cache và các quá trình của buffer.

Về cơ bản, bộ nhớ đệm nhận ra một sự gia tăng hiệu suất cho việc lấy đi lấy lại dữ liệu nhiều lần. Trong khi cache có thể nhận ra một sự gia tăng hiệu suất ngay từ ban đầu của một dữ liệu, quá trình tăng hiệu suất xảy ra trong hệ thống bộ nhớ đệm.

Với đọc cache , một mục dữ liệu phải được lấy từ vị trí gốc của nó ít nhất một lần để cho sau này đọc liên tiếp dữ liệu nhiều lần để thấy một sự gia tăng hiệu suất bằng hiệu lực của việc có thể lưu trữ trung gian của bộ nhớ cache nhanh hơn của dữ liệu gốc. Với ghi cache, một sự gia tăng hiệu suất của việc viết một dữ liệu có thể được nhận ra khi viết lần đầu tiên của các dữ liệu bằng hiệu lực của các dữ liệu được lưu trữ ngay trên bộ nhớ cache, trì hoãn việc chuyển giao các dữ liệu về sau hay nói cách khác nó xảy ra như là một tiến trình nền. Trái với đệm nghiêm ngặt, một quá trình trong bộ nhớ đệm phải tuân thủ một (phân phối tiềm năng) bộ nhớ cache giao thức mạch lạc để duy trì sự thống nhất giữa lưu trữ trung gian của bộ nhớ cache và vị trí nơi chứa dữ liệu. Buffering, mặt khác,

làm giảm số lượng các quá trình chuyển dữ liệu cho cuốn tiểu thuyết khác giữa quá trình giao tiếp, mà amortizes trên không liên quan đến nhiều chuyển nhỏ hơn ít hơn, chuyển lớn hơn,

cung cấp một trung gian để giao tiếp quá trình mà không có khả năng chuyển trực tiếp giữa mỗi khác, hoặc

đảm bảo một kích thước dữ liệu tối thiểu hoặc đại diện theo yêu cầu của ít nhất một trong các quá trình giao tiếp liên quan đến việc chuyển giao.

Với việc triển khai bộ nhớ đệm điển hình, một mục dữ liệu được đọc hay viết cho lần đầu tiên được hiệu quả được đệm; và trong trường hợp của một viết, chủ yếu là thực hiện một sự gia tăng hiệu suất cho các ứng dụng từ nơi ghi nguồn gốc. Ngoài ra, các phần của một giao thức bộ nhớ đệm nơi ghi cá nhân được hoãn lại đến một loạt các ghi là một hình thức của đệm. Các phần của một giao thức bộ nhớ đệm mà cá nhân đọc được hoãn lại đến một loạt các lần đọc cũng là một hình thức của đệm, mặc dù hình thức này có thể tác động tiêu cực đến hiệu quả hoạt động của ít nhất ban đầu đọc (mặc dù nó có thể tác động tích cực đến hiệu suất của các khoản các cá nhân lần đọc). Trong thực tế, bộ nhớ đệm hầu như luôn luôn liên quan đến một số hình thức đệm, trong khi đệm nghiêm ngặt không liên quan đến bộ nhớ đệm.

Một bộ đệm là một vị trí bộ nhớ tạm thời được truyền thống được sử dụng vì hướng dẫn CPU không thể trực tiếp giải quyết các dữ liệu được lưu trữ trong các thiết bị ngoại vi. Như vậy, bộ nhớ địa chỉ được sử dụng như là một giai đoạn trung gian. Ngoài ra, một bộ đệm như vậy có thể khả thi khi một khối lượng lớn các dữ liệu được lắp ráp hoặc tháo rời (theo yêu cầu của một thiết bị lưu trữ), hoặc khi dữ liệu có thể được gửi theo một thứ tự khác nhau hơn là trong đó nó được sản xuất. Ngoài ra, một bộ đệm toàn bộ dữ liệu thường được chuyển tuần tự (ví dụ vào đĩa cứng), vì vậy đệm bản thân đôi khi làm tăng hiệu suất chuyển hoặc làm giảm sự biến đổi hoặc jitter của độ trễ của việc chuyển giao như trái ngược với bộ nhớ đệm mà mục đích là để giảm độ trễ. Những lợi ích này có mặt ngay cả khi dữ liệu đệm được ghi vào bộ đệm một lần và đọc từ bộ đệm một lần.

Một bộ nhớ cache cũng làm tăng hiệu suất truyền. Một phần của sự gia tăng tương tự xuất phát từ khả năng rằng nhiều giao dịch chuyển nhỏ sẽ kết hợp thành một khối lớn. Nhưng chính hiệu-được xảy ra bởi vì có một cơ hội tốt mà cùng một dữ liệu sẽ được đọc từ bộ nhớ cache nhiều lần, hoặc số liệu bằng văn bản sẽ sớm được đọc. Mục đích duy nhất của một bộ nhớ cache là để giảm truy cập vào kho chậm hơn nằm bên dưới. Bộ nhớ cache cũng thường là một lớp trừu tượng được thiết kế để có thể nhìn thấy từ quan điểm của các lớp lân cận.

Tham khảo

  1. ^ “Cache”. Merriam-Webster Online Dictionary. Merriam-Webster, Incorporated. Truy cập ngày 2 tháng 5 năm 2011.

Đọc thêm