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

Nội dung được xóa Nội dung được thêm vào
n AlphamaEditor, Excuted time: 00:00:20.3100308
Dòng 9:
|accessdate=ngày 2 tháng 5 năm 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. Dữ liệu được chứa trong cache có thể là kết quả của tính toán trước đó, hoặc là sự trùng lặp dữ liệu được lưu trữ ở một nơi khác.
 
cache là ca chế
== 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 được 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 để dọn 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ử dụng 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 ==