Bộ nhớ đệm trong CPU được gọi là gì

CPU cache là gì? CPU cache có công dụng ra sao?

Rất hay và hữu ích!/36 người

Bộ nhớ đệm trong CPU được gọi là gì

Nhắc tới bộ nhớ của máy tính chúng ta thường nghĩ đến RAM hay thậm chí là ổ cứng, ổ SSD, nhưng ngoài ra còn có một loại bộ nhớ quan trọng nữa là cache. Cache cũng ảnh hưởng lớn đến việc máy của bạn chạy nhanh hay chậm, game bạn chơi có hiệu năng tốt hay không, cái phần mềm bạn đang dùng có thể xử lý nhanh hơn không.

Cache dịch ra tiếng Việt có thể xem là “bộ nhớ đệm”, nhưng từ này sẽ không diễn tả đầy đủ ý nghĩa nên trong bài này mình sẽ tiếp tục dùng chữ cache. Ngày xưa, ở thời hoang sơ của thế giới máy tính, tốc độ của cả CPU và RAM đều chậm nên cả hai có thể giao tiếp với nhau ở cùng tốc độ. Tưởng tượng giống như bạn và một người bạn nữa cùng chạy bộ, nếu hai bạn chạy cùng tốc độ với nhau thì hai bạn có thể thoải mái nói chuyện. Nhưng nếu người kia chạy nhanh hơn bạn thì làm sao mà nói. Đó là điều xảy ra khi tốc độ CPU bắt đầu nhanh lên khi mà công nghệ ngày càng phát triển, tiến bộ hơn, nhất là từ thập niên 1980. Thế nên người ta sinh ra một loại bộ nhớ tốc độ cao khác, nhanh hơn RAM, và có thể “chạy cùng” với CPU, đó là cache. Cache sẽ chứa dữ liệu để CPU cần thì có thể lấy vào xử lý, không phải “lội” xuống tận ổ cứng của bạn để lấy vì sẽ tốn thời gian hơn nhiều.


Bộ nhớ đệm trong CPU được gọi là gì

Đi ngược lại một chút, máy tính của bạn có nhiều “lớp” (layer) bộ nhớ. Lớp chậm nhất, chính là nơi lưu trữ dữ liệu vĩnh viễn (gọi là persistent storage, hay secondary storage), chi phí thấp, dung lượng cao, ví dụ như SSD, HDD. Lên một lớp nhanh hơn là RAM, chứa dữ liệu để CPU lấy vào tính toán, tốc độ nhanh hơn đồng nghĩa với việc chi phí sản xuất cũng tăng. RAM thường được cấu thành từ nhiều chip nhớ thuộc loại Dynamic RAM (DRAM). Nhanh hơn cả RAM là cache, và cache thường nằm ngay trên đế CPU đối với những con chip hiện đại. Chúng gần ở CPU về khoảng cách vật lý, điều đó giúp cache có thể trao đổi dữ liệu cực kì hiệu quả. Nó lại cùng nằm trong cùng đế chip với các nhân xử lý nên rút ngắn thời gian gửi nhận tín hiệu. Cache dùng loại bộ nhớ gọi là Static RAM (SRAM). SRAM có tốc độ cao hơn so với DRAM và cũng dùng ít điện hơn.

Để hiểu về cách mà cache hoạt động, bạn cần biết về cách CPU lấy dữ liệu vào để tính toán. Cứ mỗi một phép tính cần thực hiện, CPU phải trải qua một chu trình gọi là machine cycle. Chu trình đó như hình bên dưới.

Bộ nhớ đệm trong CPU được gọi là gì

Trong bước trên, có đoạn Fetch là lúc CPU sẽ lấy dữ liệu cần tính toán, cũng như lấy lệnh để biết là nó cần làm gì với dữ liệu đó. Ví dụ, khi máy tính cần thực hiện tính A + B, CPU sẽ lấy dữ liệu dữ liệu là A và B, cùng với lệnh ADD để cộng hai số này lại. Dữ liệu này lấy từ đâu? Nó là do phần mềm gửi lên. Mà phần mềm gửi lên bằng cách nào? Phần mềm sẽ đưa dữ liệu đó vào RAM, và CPU sẽ lấy từ RAM lên (ít nhất là theo thiết kế của những chiếc máy tính thời xưa).

Nhưng như đã nói ở trên, vì CPU có tốc độ quá nhanh, nó có thể tính được rất rất nhiều phép tính trong mỗi giây, nên tốc độ lấy dữ liệu từ RAM không thể đáp ứng được tốc độ cần lấy dữ liệu của CPU. Thế nên người ta mới nghĩ đến việc “chêm” thêm một số bộ nhớ tốc độ cao vào giữa CPU và RAM. CPU trước hết sẽ tìm dữ liệu trong register (là một bộ nhớ nằm trực tiếp trong nhân CPU), nếu không có thì nó tìm trong cache, nếu cache không có thì nó tìm dữ liệu trong RAM, và RAM không có thì tìm trong SSD / HDD.

Cứ mỗi bước như vậy thì tốc độ sẽ chậm dần đi do bản chất của các loại chip nhớ cũng như do khoảng cách từ bộ nhớ đến CPU, thế nên CPU sẽ cố gắng đoán xem ở bước tiếp theo nó cần dữ liệu gì để đưa trước vào cache / register, như vậy CPU sẽ đỡ phải lội ngược dòng và làm giảm tốc độ tính. Quá trình này được gọi là “prediction”. Về mặt phần mềm, ví dụ bạn đang chạy app máy tính và cần tính A + B, thì app sẽ làm nhiệm vụ đưa lệnh và đưa dữ liệu vào RAM. Sau đó, bộ điều khiển (memory controller) sẽ đưa tiếp dữ liệu vào cache.

Ở trên mình đã giải thích lý do vì sao CPU cần cache và cách mà cache hoạt động rồi, giờ là lúc tìm hiểu xem vì sao trong CPU có nhiều cấp độ cache. Sao người ta không dùng 1 loại cache thôi cho khỏe người? Vấn đề cũng xoay quanh chi phí và tốc độ mà thôi. Tốc độ càng nhanh thì chi phí cần để sản xuất ra càng cao, và dung lượng dữ liệu có thể chứa được cũng theo đó mà nhỏ đi. Để việc chuyển dữ liệu được trơn tru, người ta tách cache thành nhiều level khác nhau: L1, L2, L3. Và nếu dữ liệu không có trong cache L1, CPU sẽ tìm tiếp trong L2, không có thì tìm tiếp L3, không có nữa thì đi ra RAM, và không có nữa thì chui xuống HDD / SSD để tìm.


Bộ nhớ đệm trong CPU được gọi là gì

L1 cache hiện nay có thể xem là cache nhanh nhất, đây là nơi đầu tiên trong cache mà CPU sẽ đi tìm dữ liệu khi nó cần tính toán một cái gì đó. L1 thường được chia làm 2 loại: cache để chứa lệnh và cache chứa dữ liệu. Ví dụ, con CPU Intel Core i9-10940X hiện có cache L1 là 448 KB cho dữ liệu và 448 KB cho lệnh. L2 cache chậm hơn L1 nhưng có dung lượng lớn hơn. Ví dụ, con AMD Ryzen 5 5600X có tới 3MB cache L2 trong khi L1 của nó chỉ 384KB. Con Core i9-10940X có cache L2 đến 14MB. Và mặc dù nói là “chậm hơn” nhưng tốc độ của cache L2 vẫn nhanh hơn khoảng 25 lần so với RAM, còn cache L1 thì nhanh hơn 100 lần so với RAM.

Và cuối cùng là cache L3, có những con chip sở hữu đến 64MB cache L3, và AMD mới đây còn giới thiệu công nghệ cache xếp chồng lên nhau để đạt mức 192MB cache L3. AMD nói rằng chỉ riêng việc này đã giúp cải thiện hiệu năng game thêm 15% mà không cần điều chỉnh gì về phần mềm.

Cache L1 và L2 thường nằm trên từng nhân CPU, còn cache L3 trong các CPU hiện đại thường được chia sẻ chung giữa các nhân với nhau.


Cache càng lớn thì càng tốt, đơn giản là vậy thôi, nhưng giá CPU cũng theo đó mà tăng lên. Và bạn cũng đừng chỉ chọn CPU dựa vào cache, có rất nhiều yếu tố khác để bạn chọn cho mình một con CPU đáp ứng nhu cầu. Cache chỉ là 1 trong số đó mà thôi nhé.

Bộ nhớ đệm trong CPU được gọi là gì
47

115 bình luận

  • Thích
    Bộ nhớ đệm trong CPU được gọi là gì
  • Yêu
    Bộ nhớ đệm trong CPU được gọi là gì
  • Haha
    Bộ nhớ đệm trong CPU được gọi là gì
  • Wow
    Bộ nhớ đệm trong CPU được gọi là gì
  • Khóc
    Bộ nhớ đệm trong CPU được gọi là gì
  • Giận
    Bộ nhớ đệm trong CPU được gọi là gì

Bộ nhớ đệm trong CPU được gọi là gì

Bộ nhớ đệm trong CPU được gọi là gì

Bộ nhớ đệm là gì của CPU? Bộ nhớ đệm hay còn được gọi là Cache. Đây là nơi lưu trữ tạm thời những dữ liệu nền và qua đó giúp bạn mở lại chương trình đó nhanh hơn mà không cần mở lại từ đầu. Vậy bạn có biết bộ nhớ đệm của điện thoại là gì, có nên xóa bộ nhớ đệm? Và cách xóa bộ nhớ đệm trên điện thoại như thế nào? Hãy theo dõi bài viết sau.

Bộ nhớ đệm là gì? 

Bộ nhớ đệm trong CPU được gọi là gì
bo nho dem la gi

Bộ nhớ đệm là gì? Đây là bộ nhớ đệm của CPU được gọi là Cache. Nó đóng vai trò như là một nơi lưu trữ tạm thời những lệnh mà CPU cần xử lý (Lệnh này bao gồm tất cả các thao tác mà bạn thường hay sử dụng trên máy tính. Từ việc soạn thảo văn bản đơn giản đến game nặng).

Những lệnh này sẽ xếp hàng với nhau chờ được xử lý. Vì vậy, bộ nhớ đệm càng lớn thì sẽ chứa được nhiều lệnh hơn nhờ đó giúp rút ngắn thời gian chờ và tăng hiệu suất làm việc của CPU .

Bản chất của hệ thống khi hoạt động gồm các ứng dụng nền nhỏ thực hiện từng chức năng riêng biệt. Các ứng dụng này trong quá trình hoạt động sinh ra dữ liệu đệm gọi chung là bộ nhớ đệm của hệ điều hành.

Bộ nhớ đệm của ứng dụng giúp lưu lại những dữ liệu nền. Và làm cho trình duyệt load nhanh hơn ở lần truy cập thứ 2. Đơn giản bạn có thể dễ dàng nhận thấy khi mở trình duyệt trên điện thoại. Nó sẽ tự load lại toàn bộ trang web ở lần mở cuối cùng mà không cần kết nối mạng.

Đây là một trong những vai trò của bộ nhớ đệm giúp thuận tiện hơn cho người sử dụng.

Hiện nay thì máy tính có 3 loại bộ nhớ. Đầu tiên là bộ nhớ chính được tìm thấy trong ổ cứng hoặc SSD. Nó là kho lưu trữ lớn nhất của bộ nhớ trong máy.

Sau đó, có RAM hoặc bộ nhớ truy cập ngẫu nhiên. Nhanh hơn nhưng nhỏ hơn thiết bị bộ nhớ chính. Cuối cùng, các đơn vị bộ nhớ trong chính CPU được gọi là bộ nhớ cache. Trong 3 loại bộ nhớ trên, bộ nhớ cache là nhanh nhất trong tất cả các loại bộ nhớ.

Tầng dữ liệu của bộ nhớ đệm

Bộ nhớ đệm trong CPU được gọi là gì

Trước khi đến với Cache, bạn hãy tìm hiểu qua “tầng dữ liệu” trong bộ nhớ hệ điều hành. Các tầng bộ nhớ trong máy tính lưu trữ tách biệt mỗi cấp độ với nhau và khác nhau dựa trên thời gian đáp ứng. Ngoài thời gian đáp ứng, độ phức tạp và dung lượng, các tầng có thể được phân biệt với nhau bằng hiệu năng và công nghệ sử dụng.

Càng lên cao, dung lượng của bộ nhớ sẽ càng giảm dần, nhưng tốc độ truy xuất sẽ càng nhanh. Và Cache là mức nhanh thứ 2 sau tốc độ chạy của CPU (thứ 3 nếu tính cả thanh ghi – register). Điều này chứng tỏ cache là một bộ phận vô cùng quan trọng, và dữ liệu trong cache sẽ được xử lý rất nhanh.

Bộ nhớ đệm trong CPU được gọi là gì
bo nho dem la gi

Memory cache:

Khu vực bộ nhớ đệm là gì? Đây là khu vực mà bộ nhớ được tạo bằng bộ nhớ tĩnh (SRAM). Có tốc độ cao nhưng đắt tiền hơn thay vì bộ nhớ động (DRAM) tốc độ thấp hơn và rẻ hơn được dùng cho bộ nhớ chính. Cơ chế lưu trữ rất có hiệu quả.

Bởi vì hầu hết các chương trình thực tế truy xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh giống nhau. Nhờ lưu trữ các thông tin này trong SRAM mà máy tính sẽ không phải truy xuất vào DRAM.

Một số bộ nhớ Cache được tích hợp vào trong kiến trúc của các bộ vi xử lý. CPU Intel 80486 có bộ nhớ cache 8KB, trong khi đời Pentium là 16KB. Các máy tính đời mới hơn sẽ có thêm cả bộ nhớ cache ngoại.

Các cache này nằm giữa CPU và bộ nhớ hệ thống DRAM. Một số máy yêu cầu xử lý nặng hơn và tốc độ nhanh hơn đã được thêm bộ nhớ đệm L3 cache.

Cách hoạt động của bộ nhớ đệm

Bộ nhớ đệm trong CPU được gọi là gì

Khi một chương trình khởi động trên máy tính của bạn. Dữ liệu sẽ truyền từ RAM vào bộ đệm L3, rồi L2 và đến L1 sẽ rót trực tiếp dữ liệu cho các nhân CPU xử lý. Trong khi chương trình đang chạy, CPU tìm kiếm thông tin cần chạy. Bắt đầu từ bộ đệm L1 và làm việc ngược từ đó.

Độ trễ là thời gian cần thiết để lấy một phần thông tin. Bộ đệm L1 là nhanh nhất và do đó nó có độ trễ thấp nhất. Khi xảy ra lỗi bộ nhớ cache. Độ trễ tăng lên khi máy tính phải tiếp tục tìm kiếm trong các bộ đệm khác nhau để tìm thông tin cần thiết.

Bạn có thể xem bộ nhớ đệm như như một cái phễu rót dữ liệu và L1, L2, L3 giống như các tầng của cái phễu đó. Chúng “gia tốc” dữ liệu, làm cho tốc độ dữ liệu nhanh hơn theo từng “Level”.

Từ L3, xuống L2 và L1, tốc độ truyền dữ liệu sẽ tăng lên đủ nhanh để giúp CPU có thể hoạt động hết công suất và phát huy tối đa sức mạnh của nó.

Cấp độ của bộ nhớ đệm

Tác dụng của bộ nhớ đệm là gì? Nó cũng giống như thanh RAM mà bạn cắm trên mainboard vậy. Bộ nhớ đệm của CPU sẽ lưu trữ các dữ liệu trích từ RAM. Để sẵn sàng cung cấp cho CPU sử dụng với tốc độ nhanh nhất.

Các CPU ban đầu chỉ sử dụng một cấp bộ nhớ cache, nhưng khi công nghệ phát triển. Cần phải tách các khu vực truy xuất bộ nhớ này để các hệ thống có thể theo kịp.

Ba cấp độ là: Bộ đệm L1 – Đây là bộ đệm chính. Nó nhanh, nhưng nó cũng nhỏ. Vì vậy nó bị giới hạn như những gì nó có thể lưu trữ. Nó thường được nhúng trong chip xử lý.

Bộ đệm L2 – Còn được gọi là bộ đệm thứ cấp. Bộ đệm L2 có thể được nhúng trên chip xử lý hoặc trên một chip riêng với một bus tốc độ cao kết nối nó với CPU.

Bộ đệm L3 – Bộ đệm xử lý này là bộ nhớ chuyên dụng có thể dùng làm bản sao lưu cho bộ đệm L1 và L2 của bạn. Nó có thể không nhanh như vậy, nhưng nó giúp tăng hiệu suất của L1 và L2 của bạn.

Bộ nhớ đệm trong CPU được gọi là gì
bo nho dem la gi

Bạn có thể xem bộ nhớ đệm như như một cái phễu rót dữ liệu và L1, L2, L3 giống như các tầng của cái phễu đó. Chúng “gia tốc” dữ liệu, làm cho tốc độ dữ liệu nhanh hơn theo từng “Level”. Từ L3, xuống L2 và L1, tốc độ truyền dữ liệu sẽ tăng lên đủ nhanh để giúp CPU có thể hoạt động hết công suất và phát huy tối đa sức mạnh của nó.

Hệ thống và phân chia 

Bộ nhớ đệm trong CPU được gọi là gì

Để giúp cải thiện số lần hit so với miss, có một số kỹ thuật được sử dụng. Một trong số đó là chia bộ nhớ đệm thành hai, một cho các câu lệnh và một cho dữ liệu.

Nguyên nhân của việc này là do việc lấp đầy một vùng đệm câu lệnh sẽ dễ hơn nhiều so với dữ liệu. Khi câu lệnh tiếp theo được thực thi có thể là câu lệnh kế tiếp trong bộ nhớ.

Điều đó cũng có nghĩa là câu lệnh kế tiếp được thực thi. Có thể được truy xuất từ vùng đệm câu lệnh trong khi CPU vẫn đang làm việc trên phần bộ nhớ trong vùng đệm dữ liệu. (Do cả hai vùng đệm là độc lập).

Một kỹ thuật khác là cải thiện số lần trúng bộ nhớ đệm cache hit là sử dụng hệ thống phân cấp của các bộ nhớ đệm. Thường được gọi là bộ nhớ đệm L1 (level 1) và bộ nhớ đệm L2 (level 2).

L2 thường có bộ nhớ đệm lớn hơn (thường là 4MB, nhưng có thể còn lớn hơn). Tuy nhiên nó lại chậm hơn (nghĩa là chi phí rẻ hơn) và nó được dùng chung bởi tất cả các nhân CPU. Làm nó trở thành một bộ nhớ đệm duy nhất cho toàn bộ chip SoC.

Ý tưởng dành cho việc phân cấp này là, nếu dữ liệu đòi hỏi không nằm trên bộ nhớ đệm L1. CPU sẽ cố lấy ra dữ liệu từ bộ nhớ đệm L2, trước khi thử trên bộ nhớ chính.

Cho dù L2 chậm hơn L1, nhưng nó vẫn nhanh hơn bộ nhớ chính. Và do có kích thước tăng lên nên nó có cơ hội cao hơn để dữ liệu nằm trên đó.

Một số thiết kế chíp thậm chí còn sử dụng bộ nhớ đệm L3. Cũng như L2 chậm hơn nhưng lớn hơn L1, L3 lớn hơn nhưng chậm hơn L2.

Trên di động, L3 thường không được sử dụng. Tuy nhiên, trên các bộ xử lý kiến trúc ARM dùng cho máy chủ (như chíp SoC 24 lõi của Qualcomm sắp ra mắt hay chíp Opteron 1100 của AMD) có tùy chọn bổ sung bộ nhớ đệm L3 32MB.

Một số từ khóa tham khảo: