Sửa đổi Bộ nhớ đệm

Chú ý: Bạn chưa đăng nhập và địa chỉ IP của bạn sẽ hiển thị công khai khi lưu các sửa đổi.

Bạn có thể tham gia như người biên soạn chuyên nghiệp và lâu dài ở Bách khoa Toàn thư Việt Nam, bằng cách đăng ký và đăng nhập - IP của bạn sẽ không bị công khai và có thêm nhiều lợi ích khác.

Các sửa đổi có thể được lùi lại. Xin hãy kiểm tra phần so sánh bên dưới để xác nhận lại những gì bạn muốn làm, sau đó lưu thay đổi ở dưới để hoàn tất việc lùi lại sửa đổi.

Bản hiện tại Nội dung bạn nhập
Dòng 1: Dòng 1:
 
{{sơ}}'''Bộ nhớ đệm''' (còn gọi là '''bộ nhớ cache''', '''bộ nhớ đệm cao tốc''', '''bộ nhớ ẩn'''; tiếng Anh ''cache memory'', ''cache'') là một bộ nhớ [[RAM]] có dung lượng nhỏ, tốc độ cao được sử dụng kết hợp với một bộ nhớ RAM dung lượng lớn hơn và tốc độ thấp hơn để tạo nên một bộ nhớ có dung lượng bằng dung lượng của bộ nhớ lớn hơn nhưng hoạt động với tốc độ của bộ nhớ có tốc độ cao hơn.  
 
{{sơ}}'''Bộ nhớ đệm''' (còn gọi là '''bộ nhớ cache''', '''bộ nhớ đệm cao tốc''', '''bộ nhớ ẩn'''; tiếng Anh ''cache memory'', ''cache'') là một bộ nhớ [[RAM]] có dung lượng nhỏ, tốc độ cao được sử dụng kết hợp với một bộ nhớ RAM dung lượng lớn hơn và tốc độ thấp hơn để tạo nên một bộ nhớ có dung lượng bằng dung lượng của bộ nhớ lớn hơn nhưng hoạt động với tốc độ của bộ nhớ có tốc độ cao hơn.  
 
==Lịch sử phát triển==
 
==Lịch sử phát triển==
Trong của máy tính, [[bộ xử lý]] luôn có tốc độ cao hơn [[bộ nhớ chính]], khi bộ nhớ chính được cải tiến để nâng cao tốc độ thì bộ xử lý cũng được cải tiến, đạt được tốc độ lớn hơn (xt. [[thế hệ máy tính]]). Vấn đề này không phải là do có khó khăn về công nghệ chế tạo bộ nhớ chính mà vì lý do kinh tế, các bộ nhớ tốc độ cao có giá thành cao, làm giảm khả năng cạnh tranh của sản phẩm.  
+
Trong của máy tính, bộ xử lý luôn có tốc độ cao hơn bộ nhớ chính, khi bộ nhớ chính được cải tiến để nâng cao tốc độ thì bộ xử lý cũng được cải tiến, đạt được tốc độ lớn hơn (xt. [[thế hệ máy tính]]). Vấn đề này không phải là do có khó khăn về công nghệ chế tạo bộ nhớ chính mà vì lý do kinh tế, các bộ nhớ tốc độ cao có giá thành cao, làm giảm khả năng cạnh tranh của sản phẩm.  
  
 
===Tính cục bộ của các chương trình===
 
===Tính cục bộ của các chương trình===
Dòng 11: Dòng 11:
 
*Các chỉ thị trong chương trình thường được truy cập tuần tự - thể hiện tính cục bộ về không gian ở mức độ cao. Việc truy cập dữ liệu cũng thể hiện tính cục bộ về không gian một cách rất tự nhiên, chẳng hạn khi chúng ta truy cập một phần tử của mảng hay một bản ghi (record) thì sau đó thường sẽ truy cập phần tử mảng hay bản ghi lân cận.  
 
*Các chỉ thị trong chương trình thường được truy cập tuần tự - thể hiện tính cục bộ về không gian ở mức độ cao. Việc truy cập dữ liệu cũng thể hiện tính cục bộ về không gian một cách rất tự nhiên, chẳng hạn khi chúng ta truy cập một phần tử của mảng hay một bản ghi (record) thì sau đó thường sẽ truy cập phần tử mảng hay bản ghi lân cận.  
 
===Ý tưởng về bộ nhớ đệm===
 
===Ý tưởng về bộ nhớ đệm===
Dựa trên đặc tính cục bộ của các chương trỉnh, khi [[bộ xử lý]] cần truy cập một từ (xt. [[từ máy tính]]), từ đó sẽ được bộ xử lý chuyển từ bộ nhớ lớn tốc độ thấp (bộ nhớ chính - main memory) về bộ nhớ nhỏ tốc độ cao (bộ nhớ đệm), để lần sau nếu cần đến từ đó thì bộ xử lý có thể truy cập nhanh hơn. Nếu một từ được đọc hoặc ghi ''k'' lần trong một khoảng thời gian ngắn thì bộ xử lý chỉ cần truy cập bộ nhớ lớn tốc độ thấp một lần và truy cập bộ nhớ nhỏ tốc độ cao ''k''-1 lần. Số ''k'' càng lớn thì hiệu quả của bộ nhớ đệm càng cao.
+
Dựa trên đặc tính cục bộ của các chương trỉnh, khi [[bộ xử lý]] cần truy cập một từ (xt. [[từ máy tính]]), từ đó sẽ được bộ xử lý chuyển từ bộ nhớ lớn tốc độ thấp (bộ nhớ chính - main memory) về bộ nhớ nhỏ tốc độ cao (bộ nhớ đệm), để lần sau nếu cần đến từ đó thì bộ xử lý có thể truy cập nhanh hơn. Nếu một từ được đọc hoặc ghi ''k'' lần trong một khoảng thời gian ngắn thì bộ xử lý chỉ cần truy cập bộ nhớ lớn tốc độ thấp một lần và truy cập bộ nhớ nhỏ tốc độ cao ''k''-1 lần. Số ''k'' càng lớn thì hiệu quả của bộ nhớ đệm càng cao.  
 
 
 
==Tốc độ truy cập ==
 
==Tốc độ truy cập ==
 
Chúng ta có thể xây dựng công thức tính thời gian truy cập trung bình của bộ nhớ đệm bằng cách đưa ra một số ký hiệu: c - là thời gian truy cập bộ nhớ đệm, m - là thời gian truy cập bộ nhớ chính, h - là tỉ số tìm thấy (hit ratio), là tỉ số của tổng số lần truy cập được thoả mãn từ bộ nhớ đệm trên số lần truy cập bộ nhớ. Trong ví dụ chúng ta vừa dẫn ra ở phần trên, h = (k-1)/k. Cũng có những tác giả định nghĩa tỉ số không tìm thấy (''miss ratio''), đó là 1-h.  
 
Chúng ta có thể xây dựng công thức tính thời gian truy cập trung bình của bộ nhớ đệm bằng cách đưa ra một số ký hiệu: c - là thời gian truy cập bộ nhớ đệm, m - là thời gian truy cập bộ nhớ chính, h - là tỉ số tìm thấy (hit ratio), là tỉ số của tổng số lần truy cập được thoả mãn từ bộ nhớ đệm trên số lần truy cập bộ nhớ. Trong ví dụ chúng ta vừa dẫn ra ở phần trên, h = (k-1)/k. Cũng có những tác giả định nghĩa tỉ số không tìm thấy (''miss ratio''), đó là 1-h.  
Dòng 29: Dòng 28:
 
Mỗi loại bộ nhớ đệm kể trên đều có ưu và nhược điểm, người thiết kế máy tính sẽ căn cứ vào giá thành của máy tính cũng như đặc điểm cục bộ và một số đặc điểm khác của các chương trình dự kiến sẽ chạy trên máy để quyết định lựa chọn loại bộ nhớ đệm.  
 
Mỗi loại bộ nhớ đệm kể trên đều có ưu và nhược điểm, người thiết kế máy tính sẽ căn cứ vào giá thành của máy tính cũng như đặc điểm cục bộ và một số đặc điểm khác của các chương trình dự kiến sẽ chạy trên máy để quyết định lựa chọn loại bộ nhớ đệm.  
  
Bộ nhớ đệm cũng có thể được phân loại theo mức (level). Việc áp dụng ý tưởng về nhớ đệm vào tổ chức bộ nhớ của máy tính đem lại hiệu quả rất lớn, đến mức các tất cả các máy tính ngày nay đều có áp dụng phương pháp nhớ đệm với số bộ nhớ đệm nằm giữa bộ xử lý và bộ nhớ chính từ một đến ba. Nếu giữa [[CPU]] [[bộ nhớ chính]] có hai hoặc ba bộ nhớ đệm, thì bộ nhớ đệm nằm gần CPU nhất được gọi là bộ nhớ đệm mức 1, cg. bộ nhớ đệm L1 (L1 cache), bộ nhớ đệm kế tiếp là L2 (L2 cache), sau đó nếu có thì là L3 (L3 cache). Nếu chỉ có một bộ nhớ đệm nằm giữa CPU và bộ nhớ chính thì nó được gọi là bộ nhớ đệm một mức (single cache).
+
Bộ nhớ đệm cũng có thể được phân loại theo mức (level). Việc áp dụng ý tưởng về nhớ đệm vào tổ chức bộ nhớ của máy tính đem lại hiệu quả rất lớn, đến mức các tất cả các máy tính ngày nay đều có áp dụng phương pháp nhớ đệm với số bộ nhớ đệm nằm giữa bộ xử lý và bộ nhớ chính từ một đến ba. Nếu giữa CPU và bộ nhớ chính có hai hoặc ba bộ nhớ đệm, thì bộ nhớ đệm nằm gần CPU nhất được gọi là bộ nhớ đệm mức 1, cg. bộ nhớ đệm L1 (L1 cache), bộ nhớ đệm kế tiếp là L2 (L2 cache), sau đó nếu có thì là L3 (L3 cache). Nếu chỉ có một bộ nhớ đệm nằm giữa CPU và bộ nhớ chính thì nó được gọi là bộ nhớ đệm một mức (single cache).
 
   
 
   
 
Tốc độ hoạt động của bộ nhớ đệm L1 phải bằng hoặc gần bằng tốc độ hoạt động của bộ xử lý, nhưng cao hơn các bộ nhớ đệm khác; dung lượng của nó thường là nhỏ nhất trong các bộ nhớ đệm. Tốc độ hoạt động của bộ nhớ đệm L2 thấp hơn tốc độ hoạt động của bộ nhớ đệm L1, nhưng cao hơn tốc độ hoạt động của bộ nhớ đệm L3; dung lượng của nó lớn hơn dung lượng của bộ nhớ đệm L1 nhưng nhỏ hơn dung lượng của bộ nhớ đệm L3. Với bộ nhớ đệm L3, chênh lệch về tốc độ và dung lượng của nó so với bộ nhớ đệm L2 và bộ nhớ chính cũng tương tự như trên. Việc so sánh tốc độ và dung lượng bộ nhớ cache ở các mức khác nhau bên trên chỉ là tương đối. Những người nghiên cứu thiết kế bộ nhớ cache cần tính toán định lượng để nắm được chính xác mức độ chênh lệch cần có để máy tính hoạt động với hiệu năng cao nhất và giá của bộ nhớ đệm.  
 
Tốc độ hoạt động của bộ nhớ đệm L1 phải bằng hoặc gần bằng tốc độ hoạt động của bộ xử lý, nhưng cao hơn các bộ nhớ đệm khác; dung lượng của nó thường là nhỏ nhất trong các bộ nhớ đệm. Tốc độ hoạt động của bộ nhớ đệm L2 thấp hơn tốc độ hoạt động của bộ nhớ đệm L1, nhưng cao hơn tốc độ hoạt động của bộ nhớ đệm L3; dung lượng của nó lớn hơn dung lượng của bộ nhớ đệm L1 nhưng nhỏ hơn dung lượng của bộ nhớ đệm L3. Với bộ nhớ đệm L3, chênh lệch về tốc độ và dung lượng của nó so với bộ nhớ đệm L2 và bộ nhớ chính cũng tương tự như trên. Việc so sánh tốc độ và dung lượng bộ nhớ cache ở các mức khác nhau bên trên chỉ là tương đối. Những người nghiên cứu thiết kế bộ nhớ cache cần tính toán định lượng để nắm được chính xác mức độ chênh lệch cần có để máy tính hoạt động với hiệu năng cao nhất và giá của bộ nhớ đệm.  

Lưu ý rằng tất cả các đóng góp của bạn tại Bách khoa Toàn thư Việt Nam sẽ được phát hành theo giấy phép Creative Commons Ghi công–Chia sẻ tương tự (xem thêm Bản quyền). Nếu bạn không muốn những gì mình viết ra sẽ có thể được bình duyệt và có thể bị sửa đổi, và không sẵn lòng cho phép phát hành lại, xin đừng nhấn nút “Lưu trang”. Đảm bảo rằng chính bạn là tác giả của những gì mình viết ra, hoặc chép nó từ một nguồn thuộc phạm vi công cộng hoặc tự do tương đương. ĐỪNG ĐĂNG NỘI DUNG CÓ BẢN QUYỀN MÀ CHƯA XIN PHÉP!

Hủy bỏ Trợ giúp sửa đổi (mở cửa sổ mới)

Bản mẫu dùng trong trang này: