Bộ nhớ cache trong máy tính là gì

Bộ nhớ cache là một phần của SRAM tốc độ cao [bộ nhớ truy cập ngẫu nhiên tĩnh] và có hiệu quả vì hầu hết các chương trình đều truy cập lặp đi lặp lại cùng một dữ liệu hoặc hướng dẫn. Bằng cách giữ càng nhiều thông tin này càng tốt trong SRAM, máy tính sẽ tránh truy cập vào DRAM chậm hơn, giúp máy tính hoạt động nhanh hơn và hiệu quả hơn

Khi CPU đưa ra yêu cầu về thông tin được lưu trữ trong bộ nhớ, nếu thông tin đó đã có trong bộ đệm, nó được gọi là lần truy cập bộ đệm. Nếu một lần truy cập bộ đệm xảy ra, CPU có thể lấy thông tin gần như ngay lập tức. Tuy nhiên nếu thông tin không chứa trong cache thì gọi là cache miss. Khi xảy ra lỗi bộ đệm, CPU phải đợi thông tin được lấy từ bộ nhớ chậm hơn

Ghi chú

Bộ nhớ cache cũng có thể được sử dụng làm không gian đầu để lưu trữ tạm thời thông tin cần thiết trong hoạt động của CPU

Ngày nay, hầu hết các máy tính đều có bộ đệm L3 hoặc bộ đệm L2, trong khi các máy tính cũ hơn chỉ có bộ đệm L1. Dưới đây là một ví dụ về bộ xử lý Intel i7 và bộ đệm L3 được chia sẻ của nó

Lịch sử bộ đệm

Bộ đệm được giới thiệu khi IBM công bố bổ sung cho dòng System/360, bao gồm Model 85 vào năm 1968. Bộ nhớ cache tốc độ cao, hay bộ nhớ đệm, có trong System/360 Model 85, là bộ nhớ đệm đầu tiên trong ngành. Bộ nhớ cache cung cấp thông tin được ưu tiên cao với tốc độ gấp 12 lần bộ nhớ lõi chính thông thường

Thông tin liên quan

  • Bộ nhớ cache trên bo mạch chủ ở đâu?
  • Trợ giúp và hỗ trợ bộ nhớ [RAM]

2. Với các trình duyệt Internet, bộ nhớ cache là vùng lưu trữ tạm thời, nơi dữ liệu trang web được lưu trữ. Bằng cách lưu trữ dữ liệu này vào bộ nhớ cache, trình duyệt web có thể cải thiện hiệu suất bằng cách tải dữ liệu từ ổ đĩa của bạn, thay vì từ Internet, nếu cần một lần nữa. Trong hầu hết các trường hợp, mỗi khi bạn mở một trang web, trang đó và tất cả các tệp của nó sẽ được gửi đến bộ đệm tạm thời của trình duyệt trên ổ cứng. Nếu trang web hoặc tài nguyên của trang web không thay đổi kể từ lần cuối bạn xem trang web đó, thì trình duyệt sẽ tải dữ liệu từ bộ nhớ cache thay vì tải xuống lại các tệp. Bộ nhớ cache tiết kiệm thời gian, đặc biệt nếu bạn sử dụng modem và cũng có thể giúp tiết kiệm băng thông cho chủ sở hữu trang web.

Mẹo

Bất kỳ ai quan tâm đến quyền riêng tư của họ hoặc muốn ẩn các trang họ đã truy cập đều có thể xóa bộ đệm Internet của họ. Nếu thường xuyên xóa bộ nhớ cache của trình duyệt Internet, bạn cũng có thể cân nhắc sử dụng chế độ ẩn danh

Thông tin liên quan

  • Cách xem lịch sử trình duyệt Internet
  • Cách xóa lịch sử trình duyệt Internet
  • Cách xóa bộ nhớ cache và cookie của trình duyệt
  • Tại sao trình duyệt cần lưu lịch sử của tôi?

3. Giống như bộ nhớ đệm, bộ đệm đĩa được sử dụng để truy cập dữ liệu thường được truy cập. Tuy nhiên, thay vì sử dụng SRAM tốc độ cao, bộ đệm đĩa sử dụng bộ nhớ chính thông thường. Dữ liệu được truy cập gần đây nhất từ ​​đĩa được lưu trữ trong bộ nhớ đệm. Khi một chương trình cần truy cập dữ liệu từ đĩa, trước tiên chương trình sẽ kiểm tra bộ nhớ cache của đĩa để xem dữ liệu có ở đó không. Bộ nhớ đệm đĩa có thể cải thiện đáng kể hiệu suất của các ứng dụng vì truy cập một byte dữ liệu trong RAM có thể nhanh hơn hàng nghìn lần so với truy cập nó trên ổ cứng.

Thông tin liên quan

  • Cách xóa bộ nhớ cache của máy tính trong Windows 10
  • Cách xóa lịch sử trình duyệt Internet
  • Cách lấy lại dung lượng ổ cứng máy tính

4. Máy chủ bộ đệm là một máy tính hoặc thiết bị mạng được thiết lập để lưu trữ các trang web được người dùng truy cập trên mạng. Bất kỳ người dùng nào cố gắng truy cập một trang web được lưu trữ trên máy chủ bộ đệm đều được gửi phiên bản đã lưu trữ, thay vì tải xuống lại trang web. Máy chủ bộ đệm giúp giảm tắc nghẽn mạng và lưu lượng truy cập Internet, đồng thời tiết kiệm chi phí băng thông cho công ty.

Bộ đệm, Thuật ngữ cơ sở dữ liệu, Thuật ngữ phần cứng, Lịch sử, L1, L2, L3, Thuật ngữ bộ nhớ, Máy chủ proxy, Máy chủ, Hoán đổi tệp, Thẻ, Tạm thời, Thuật ngữ thiết kế web, Ghi lại bộ đệm

Nếu bạn đang mua máy tính, thì bạn đã nghe thấy từ "cache. " Các máy tính hiện đại có cả bộ đệm L1 và L2 và nhiều máy tính hiện nay cũng có bộ đệm L3. Bạn cũng có thể đã nhận được lời khuyên về chủ đề này từ những người bạn có ý tốt, có lẽ đại loại như "Đừng mua con chip Celeron đó, nó không có bất kỳ bộ nhớ cache nào trong đó. "

Hóa ra bộ nhớ đệm là một quy trình khoa học máy tính quan trọng xuất hiện trên mọi máy tính dưới nhiều hình thức khác nhau. Có bộ đệm bộ nhớ, bộ đệm đĩa phần cứng và phần mềm, bộ đệm trang, v.v. Bộ nhớ ảo thậm chí còn là một dạng bộ nhớ đệm. Trong bài viết này, chúng ta sẽ khám phá bộ nhớ đệm để bạn hiểu tại sao nó lại quan trọng như vậy

Một ví dụ đơn giản. Trước bộ đệm

Bộ nhớ đệm là một công nghệ dựa trên hệ thống con bộ nhớ của máy tính của bạn. Mục đích chính của bộ đệm là tăng tốc máy tính của bạn trong khi vẫn giữ giá máy tính ở mức thấp. Bộ nhớ đệm cho phép bạn thực hiện các tác vụ trên máy tính nhanh hơn

Để hiểu ý tưởng cơ bản đằng sau hệ thống bộ đệm, hãy bắt đầu với một ví dụ cực kỳ đơn giản sử dụng thủ thư để minh họa các khái niệm về bộ nhớ đệm. Hãy tưởng tượng một thủ thư ngồi sau bàn làm việc của anh ta. Anh ấy ở đó để đưa cho bạn những cuốn sách bạn yêu cầu. Để đơn giản, giả sử bạn không thể tự mình lấy sách -- bạn phải hỏi người thủ thư về bất kỳ cuốn sách nào bạn muốn đọc, và anh ta sẽ lấy sách đó cho bạn từ một ngăn xếp trong nhà kho [thư viện của . C. , được thiết lập theo cách này]. Trước tiên, hãy bắt đầu với thủ thư không có bộ đệm

Khách hàng đầu tiên đến. Anh ấy yêu cầu cuốn sách Moby Dick. Thủ thư đi vào kho, lấy sách, trở lại quầy và đưa sách cho khách hàng. Lát nữa khách quay lại trả sách. Thủ thư nhận sách và trả về kho. Sau đó, anh ta quay trở lại quầy của mình để đợi một khách hàng khác. Giả sử khách hàng tiếp theo yêu cầu Moby Dick [bạn đã thấy nó đến. ]. Thủ thư sau đó phải quay lại kho để lấy cuốn sách mà anh ta vừa xử lý và đưa cho khách hàng. Theo mô hình này, thủ thư phải thực hiện một chuyến đi khứ hồi hoàn chỉnh để lấy mọi cuốn sách -- ngay cả những cuốn sách rất phổ biến được yêu cầu thường xuyên. Có cách nào để cải thiện hiệu suất của thủ thư không?

Vâng, có một cách -- chúng ta có thể đặt một bộ nhớ cache cho thủ thư. Trong phần tiếp theo, chúng ta sẽ xem xét ví dụ tương tự nhưng lần này, thủ thư sẽ sử dụng hệ thống bộ nhớ đệm

Một ví dụ đơn giản. Sau bộ đệm

Hãy đưa cho thủ thư một chiếc ba lô để anh ta có thể chứa 10 cuốn sách [về mặt máy tính, thủ thư hiện có bộ đệm 10 cuốn sách]. Trong chiếc ba lô này, anh ấy sẽ đặt những cuốn sách mà khách hàng trả lại cho anh ấy, tối đa là 10. Hãy sử dụng ví dụ trước, nhưng bây giờ với thủ thư bộ nhớ đệm mới và được cải tiến của chúng tôi

ngày bắt đầu. Ba lô của thủ thư trống rỗng. Khách hàng đầu tiên của chúng tôi đến và yêu cầu Moby Dick. Không có phép thuật nào ở đây -- người thủ thư phải vào kho để lấy sách. Anh đưa nó cho khách hàng. Sau đó, khách hàng quay lại và trả lại cuốn sách cho thủ thư. Thay vì quay lại kho để trả sách, người thủ thư đặt cuốn sách vào ba lô của anh ta và đứng đó [anh ta kiểm tra trước xem cái túi đã đầy chưa -- sẽ nói thêm về điều đó sau]. Một khách hàng khác đến và yêu cầu Moby Dick. Trước khi vào kho, thủ thư kiểm tra xem trong ba lô có tựa sách này không. Anh ấy tìm thấy nó. Tất cả những gì anh ta phải làm là lấy cuốn sách từ ba lô và đưa cho khách hàng. Không có hành trình vào kho, vì vậy khách hàng được phục vụ hiệu quả hơn

Điều gì sẽ xảy ra nếu khách hàng yêu cầu tiêu đề không có trong bộ đệm [ba lô]? . Một trong những thách thức của thiết kế bộ đệm là giảm thiểu tác động của việc tìm kiếm bộ đệm và phần cứng hiện đại đã giảm độ trễ thời gian này xuống thực tế bằng không. Ngay cả trong ví dụ thủ thư đơn giản của chúng ta, thời gian trễ [thời gian chờ] của việc tìm kiếm bộ đệm quá nhỏ so với thời gian quay trở lại phòng lưu trữ nên nó không liên quan. Bộ nhớ đệm nhỏ [10 cuốn sách] và thời gian cần thiết để nhận ra sự thiếu sót chỉ bằng một phần rất nhỏ so với thời gian hành trình đến phòng lưu trữ

Từ ví dụ này, bạn có thể thấy một số thông tin quan trọng về bộ nhớ đệm

  • Công nghệ bộ nhớ đệm là việc sử dụng loại bộ nhớ nhanh hơn nhưng nhỏ hơn để tăng tốc cho loại bộ nhớ chậm hơn nhưng lớn hơn
  • Khi sử dụng bộ đệm, bạn phải kiểm tra bộ đệm để xem có mục nào trong đó không. Nếu có, nó được gọi là cache hit. Nếu không, nó được gọi là lỗi bộ nhớ cache và máy tính phải đợi một chuyến đi khứ hồi từ vùng bộ nhớ lớn hơn, chậm hơn
  • Bộ đệm có một số kích thước tối đa nhỏ hơn nhiều so với vùng lưu trữ lớn hơn
  • Có thể có nhiều lớp bộ đệm. Với ví dụ về thủ thư của chúng ta, loại bộ nhớ nhỏ hơn nhưng nhanh hơn là ba lô và phòng chứa đồ đại diện cho loại bộ nhớ lớn hơn và chậm hơn. Đây là bộ đệm một cấp. Có thể có một lớp bộ đệm khác bao gồm một kệ có thể chứa 100 cuốn sách phía sau quầy. Thủ thư có thể kiểm tra ba lô, sau đó là kệ và sau đó là nhà kho. Đây sẽ là bộ đệm hai cấp

Bộ đệm máy tính

Máy tính là một cỗ máy trong đó chúng ta đo thời gian theo từng bước rất nhỏ. Khi bộ vi xử lý truy cập bộ nhớ chính [RAM], nó sẽ thực hiện việc đó trong khoảng 60 nano giây [60 phần tỷ giây]. Điều đó khá nhanh, nhưng nó chậm hơn nhiều so với bộ vi xử lý thông thường. Bộ vi xử lý có thể có thời gian chu kỳ ngắn tới 2 nano giây, do đó, đối với bộ vi xử lý, 60 nano giây dường như là vĩnh cửu

Điều gì sẽ xảy ra nếu chúng ta xây dựng một ngân hàng bộ nhớ đặc biệt trong bo mạch chủ, nhỏ nhưng rất nhanh [khoảng 30 nano giây]? . Đó được gọi là bộ đệm cấp 2 hoặc bộ đệm L2. Điều gì sẽ xảy ra nếu chúng ta xây dựng một hệ thống bộ nhớ nhỏ hơn nhưng nhanh hơn trực tiếp vào chip của bộ vi xử lý? . Đó là bộ đệm L1, trên Pentium 233 megahertz [MHz] là 3. Nhanh hơn 5 lần so với bộ đệm L2, nhanh hơn hai lần so với truy cập vào bộ nhớ chính

Một số bộ vi xử lý có hai cấp bộ đệm được tích hợp ngay trong chip. Trong trường hợp này, bộ đệm của bo mạch chủ -- bộ đệm tồn tại giữa bộ vi xử lý và bộ nhớ hệ thống chính -- trở thành bộ đệm cấp 3 hoặc L3

Có rất nhiều hệ thống con trong máy tính; . Đây là một ví dụ. Chúng ta có bộ vi xử lý [thứ nhanh nhất trong máy tính]. Sau đó, có bộ đệm L1 lưu trữ bộ đệm L2 lưu trữ bộ nhớ chính có thể được sử dụng [và thường được sử dụng] làm bộ đệm cho các thiết bị ngoại vi thậm chí còn chậm hơn như đĩa cứng và. Các đĩa cứng cũng được sử dụng để lưu trữ một phương tiện thậm chí còn chậm hơn -- kết nối Internet của bạn

Hệ thống con bộ nhớ đệm

Kết nối Internet của bạn là liên kết chậm nhất trong máy tính của bạn. Vì vậy, trình duyệt của bạn [Internet Explorer, Netscape, Opera, v.v. ] sử dụng đĩa cứng để lưu trữ các trang HTML, đặt chúng vào một thư mục đặc biệt trên đĩa của bạn. Lần đầu tiên bạn yêu cầu một trang HTML, trình duyệt của bạn sẽ hiển thị trang đó và một bản sao của trang đó cũng được lưu trữ trên đĩa của bạn. Lần tới khi bạn yêu cầu quyền truy cập vào trang này, trình duyệt của bạn sẽ kiểm tra xem ngày của tệp trên Internet có mới hơn ngày được lưu trong bộ nhớ cache không. Nếu ngày giống nhau, trình duyệt của bạn sẽ sử dụng ngày trên đĩa cứng của bạn thay vì tải xuống từ Internet. Trong trường hợp này, hệ thống bộ nhớ nhỏ hơn nhưng nhanh hơn là đĩa cứng của bạn và hệ thống bộ nhớ lớn hơn và chậm hơn là Internet

Bộ nhớ cache cũng có thể được xây dựng trực tiếp trên thiết bị ngoại vi. Đĩa cứng hiện đại đi kèm với bộ nhớ nhanh, khoảng 512 kilobyte, được kết nối với đĩa cứng. Máy tính không trực tiếp sử dụng bộ nhớ này -- bộ điều khiển đĩa cứng không. Đối với máy tính, các chip bộ nhớ này chính là đĩa. Khi máy tính yêu cầu dữ liệu từ đĩa cứng, bộ điều khiển đĩa cứng sẽ kiểm tra bộ nhớ này trước khi di chuyển các bộ phận cơ khí của đĩa cứng [rất chậm so với bộ nhớ]. Nếu tìm thấy dữ liệu mà máy tính yêu cầu trong bộ đệm, nó sẽ trả về dữ liệu được lưu trong bộ đệm mà không thực sự truy cập dữ liệu trên đĩa, tiết kiệm rất nhiều thời gian

Đây là một thử nghiệm bạn có thể thử. Máy tính của bạn lưu trữ ổ đĩa mềm của bạn bằng bộ nhớ chính và bạn thực sự có thể thấy điều đó xảy ra. Truy cập tệp lớn từ đĩa mềm của bạn -- ví dụ: mở tệp văn bản 300 kilobyte trong trình soạn thảo văn bản. Lần đầu tiên, bạn sẽ thấy đèn trên đĩa mềm của mình sáng lên và bạn sẽ đợi. Đĩa mềm cực kỳ chậm, vì vậy sẽ mất 20 giây để tải tệp. Bây giờ, hãy đóng trình chỉnh sửa và mở lại cùng một tệp. Lần thứ hai [đừng đợi 30 phút hoặc truy cập nhiều đĩa giữa hai lần thử], bạn sẽ không thấy đèn bật và bạn sẽ không đợi. Hệ điều hành đã kiểm tra bộ nhớ cache của đĩa mềm và tìm thấy thứ mà nó đang tìm kiếm. Vì vậy, thay vì đợi 20 giây, dữ liệu được tìm thấy trong hệ thống con bộ nhớ nhanh hơn nhiều so với khi bạn thử nó lần đầu tiên [một lần truy cập vào đĩa mềm mất 120 mili giây, trong khi một lần truy cập vào bộ nhớ chính mất khoảng 60 nano giây -- đó là rất nhiều . Bạn có thể đã chạy thử nghiệm tương tự trên đĩa cứng của mình, nhưng điều đó rõ ràng hơn trên ổ đĩa mềm vì nó quá chậm

Để cung cấp cho bạn bức tranh toàn cảnh về tất cả, đây là danh sách hệ thống bộ nhớ đệm bình thường

  • Bộ đệm L1 - Bộ nhớ truy cập ở tốc độ tối đa của bộ vi xử lý [10 nano giây, kích thước từ 4 kilobyte đến 16 kilobyte]
  • Bộ đệm L2 - Loại truy cập bộ nhớ [khoảng 20 đến 30 nano giây, kích thước từ 128 kilobyte đến 512 kilobyte]
  • Bộ nhớ chính - Truy cập bộ nhớ của loại RAM [khoảng 60 nano giây, kích thước từ 32 megabyte đến 128 megabyte]
  • Đĩa cứng - Cơ học, chậm [khoảng 12 mili giây, kích thước từ 1 gigabyte đến 10 gigabyte]
  • Internet - Cực kỳ chậm [từ 1 giây đến 3 ngày, kích thước không giới hạn]

Như bạn có thể thấy, bộ đệm L1 lưu trữ bộ đệm L2, bộ đệm này lưu trữ bộ nhớ chính, có thể được sử dụng để lưu trữ các hệ thống phụ của đĩa, v.v.

Công nghệ bộ đệm

Một câu hỏi phổ biến được đặt ra vào thời điểm này là "Tại sao không làm cho tất cả bộ nhớ của máy tính chạy ở cùng tốc độ với bộ đệm L1, vì vậy không cần bộ nhớ đệm?" . Ý tưởng đằng sau bộ nhớ đệm là sử dụng một lượng nhỏ bộ nhớ đắt tiền để tăng tốc một lượng lớn bộ nhớ chậm hơn, ít tốn kém hơn

Khi thiết kế máy tính, mục tiêu là cho phép bộ vi xử lý chạy ở tốc độ tối đa với chi phí thấp nhất có thể. Một con chip 500 MHz trải qua 500 triệu chu kỳ trong một giây [một chu kỳ cứ sau hai nano giây]. Không có bộ đệm L1 và L2, truy cập vào bộ nhớ chính mất 60 nano giây hoặc khoảng 30 chu kỳ lãng phí khi truy cập bộ nhớ

Khi bạn nghĩ về điều đó, thật đáng kinh ngạc khi lượng bộ nhớ tương đối nhỏ như vậy có thể tối đa hóa việc sử dụng lượng bộ nhớ lớn hơn nhiều. Hãy nghĩ về bộ đệm L2 256 kilobyte lưu trữ 64 megabyte RAM. Trong trường hợp này, 256.000 byte lưu trữ hiệu quả 64.000.000 byte. Tại sao điều đó làm việc?

Trong khoa học máy tính, chúng ta có một khái niệm lý thuyết gọi là địa phương tham chiếu. Điều đó có nghĩa là trong một chương trình khá lớn, chỉ những phần nhỏ được sử dụng tại một thời điểm. Có vẻ lạ lùng, vị trí tham chiếu hoạt động cho phần lớn các chương trình. Ngay cả khi tệp thực thi có kích thước 10 megabyte, chỉ một số ít byte từ chương trình đó được sử dụng tại một thời điểm và tốc độ lặp lại của chúng rất cao. Trên trang tiếp theo, bạn sẽ tìm hiểu thêm về địa điểm tham chiếu

Địa phương tham khảo

Chúng ta hãy xem đoạn mã giả sau để biết tại sao vị trí của tham chiếu hoạt động [xem Cách thức hoạt động của lập trình C để thực sự tìm hiểu về nó]

Output to screen « Enter a number  between 1 and 100 »
Read input from user
Put value from user in variable X
Put value 100 in variable Y
Put value 1 in variable Z
Loop Y number of time
   Divide Z by X
   If the remainder of the division = 0
      then output « Z is a multiple of X »
   Add 1 to Z
Return to loop
End

Chương trình nhỏ này yêu cầu người dùng nhập một số từ 1 đến 100. Nó đọc giá trị được nhập bởi người dùng. Sau đó, chương trình chia mọi số từ 1 đến 100 cho số do người dùng nhập. Nó kiểm tra nếu phần còn lại là 0 [phép chia modulo]. Nếu vậy, chương trình sẽ xuất ra "Z là bội số của X" [ví dụ: 12 là bội số của 6], cho mọi số từ 1 đến 100. Sau đó chương trình kết thúc

Ngay cả khi bạn không biết nhiều về lập trình máy tính thì cũng dễ hiểu rằng trong 11 dòng của chương trình này, phần vòng lặp [dòng 7 đến dòng 9] được thực hiện 100 lần. Tất cả các dòng khác chỉ được thực hiện một lần. Các dòng 7 đến 9 sẽ chạy nhanh hơn đáng kể do bộ nhớ đệm

Chương trình này rất nhỏ và có thể dễ dàng phù hợp hoàn toàn với bộ đệm L1 nhỏ nhất, nhưng giả sử chương trình này rất lớn. Kết quả vẫn như cũ. Khi bạn lập trình, rất nhiều hành động diễn ra bên trong các vòng lặp. Trình xử lý văn bản dành 95 phần trăm thời gian để chờ thông tin nhập của bạn và hiển thị thông tin đó trên màn hình. Phần này của chương trình soạn thảo văn bản nằm trong bộ nhớ cache

Tỷ lệ 95%-to-5% [xấp xỉ] này là cái mà chúng tôi gọi là vị trí tham chiếu và đó là lý do tại sao bộ nhớ đệm hoạt động hiệu quả đến vậy. Đây cũng là lý do tại sao một bộ đệm nhỏ như vậy có thể lưu trữ hiệu quả một hệ thống bộ nhớ lớn như vậy. Bạn có thể thấy tại sao không đáng để xây dựng một chiếc máy tính có bộ nhớ nhanh nhất ở mọi nơi. Chúng tôi có thể cung cấp 95 phần trăm hiệu quả này với một phần nhỏ chi phí

Chủ Đề