Bỏ qua tới nội dung
PHẦN CỨNGGIẢI THÍCH

CPU Cache L1, L2, L3 khác nhau thế nào? Vì sao chip cần 3 tầng bộ nhớ đệm

Mỗi lần lấy dữ liệu từ RAM, CPU phải chờ hơn 300 nhịp. Bài này giải thích ba tầng cache L1, L2, L3 khác nhau ra sao, CPU tìm dữ liệu thế nào và vì sao cache lớn giúp chơi game mượt hơn.

BBeernary04/11/2026 · 13 PHÚT ĐỌC
COVER.BMP
CPU Cache L1, L2, L3 khác nhau thế nào? Vì sao chip cần 3 tầng bộ nhớ đệm
▲ Ba tầng cache L1, L2, L3 nằm ngay trên đế chip để CPU khỏi phải chờ RAM

Bạn mở trang thông số một chiếc laptop mới và thấy dòng "L2 Cache 16 MB, L3 Cache 24 MB" nằm ngay dưới số GHz. Phần lớn người mua lướt qua vì không biết nó để làm gì. Thật ra đây là một trong những con số quyết định CPU có phải "ngồi chơi" hay không, và là lý do một số con chip chơi game nhanh hơn hẳn dù xung nhịp thấp hơn.

Bài này giải thích vì sao CPU cần bộ nhớ đệm, ba tầng L1, L2, L3 khác nhau ở đâu, CPU đi tìm dữ liệu ra sao, và cách bạn tự xem cache của máy mình.

Vì sao CPU nhanh mà vẫn phải ngồi chờ?

Một nhân CPU chạy ở 4 GHz thực hiện 4 tỷ nhịp mỗi giây, tức mỗi nhịp chỉ dài 0,25 nano giây. Trong khoảng thời gian đó, ánh sáng đi được chừng 7,5 cm.

Còn RAM (bộ nhớ chính) nằm trên bo mạch, cách CPU vài centimet đường mạch, phải qua bộ điều khiển bộ nhớ, rồi chờ chip DRAM mở đúng hàng, đúng cột. Mỗi lần CPU hỏi một dữ liệu không có sẵn, câu trả lời từ RAM thường mất khoảng 70–100 nano giây. Lấy mốc 80 ns, CPU đã trôi qua khoảng 320 nhịp chỉ để chờ.

Hãy hình dung bạn là đầu bếp, còn RAM là siêu thị cách nhà 5 km. Siêu thị có đủ mọi thứ, nhưng nếu mỗi lần cần một quả trứng lại phải lái xe đi một vòng, bữa tối sẽ không bao giờ xong.

Lối đi dài trong siêu thị với kệ hàng hai bên, ví như RAM chứa đủ thứ nhưng ở xa

Khoảng cách tốc độ này gọi là memory wall (bức tường bộ nhớ). Mấy chục năm qua, tốc độ tính toán của CPU tăng nhanh hơn nhiều so với tốc độ phản hồi của RAM, nên khoảng cách ngày càng xa. Giải pháp của các kỹ sư không phải làm RAM nhanh gấp trăm lần, mà là đặt những kho nhỏ ngay bên trong chip.

Cache là gì, và vì sao nó nhanh hơn RAM?

Cache (bộ nhớ đệm) là vùng nhớ nhỏ nằm ngay trên đế silicon của CPU, chứa sẵn những dữ liệu CPU vừa dùng hoặc sắp dùng. Nó nhanh vì hai lý do:

  • Ở rất gần: tín hiệu không phải rời khỏi con chip, không phải chạy qua bo mạch.
  • Làm bằng SRAM: mỗi bit SRAM dùng khoảng 6 transistor giữ trạng thái liên tục, đọc ra gần như tức thì. RAM thường là DRAM, mỗi bit chỉ là 1 transistor và 1 tụ điện nhỏ, rẻ và đặc hơn nhiều, nhưng tụ điện rò điện nên phải làm tươi liên tục và đọc chậm hơn.

Đổi lại, SRAM tốn diện tích và đắt. Đó là lý do một máy tính có 16–32 GB RAM nhưng tổng cache chỉ vài chục MB.

Thớt gỗ với rau củ đã cắt sẵn, ví như L1 cache đặt mọi thứ ngay trước mặt đầu bếp

Quay lại căn bếp: cache chính là bếp nhà bạn. Thứ hay dùng để sẵn trong tầm tay, thứ ít dùng hơn cất trong tủ, còn siêu thị chỉ ghé khi thật sự thiếu.

Ba tầng L1, L2, L3 khác nhau ở đâu?

Thay vì một kho cache duy nhất, CPU hiện đại chia thành ba tầng, mỗi tầng đánh đổi giữa tốc độ và dung lượng theo một cách khác.

L1: cái thớt ngay trước mặt

L1 là tầng nhỏ nhất và nhanh nhất, mỗi nhân có riêng một bộ. Dung lượng chỉ khoảng 32–80 KB mỗi nhân, nhưng trả dữ liệu trong khoảng 4–5 nhịp, tức cỡ 1 nano giây.

L1 còn được chia đôi: L1i (instruction, chứa lệnh) và L1d (data, chứa dữ liệu). Nhờ vậy, trong cùng một nhịp CPU vừa nạp lệnh tiếp theo vừa đọc số liệu cần tính, không phải xếp hàng chung một cửa. Ví dụ nhân hiệu năng Raptor Cove trong Core thế hệ 13 có 32 KB L1i và 48 KB L1d; nhân Zen 4 của AMD có 32 KB mỗi loại.

L2: cái tủ lạnh trong bếp

L2 lớn hơn nhiều, khoảng 1–3 MB mỗi nhân (Zen 4 có 1 MB, Raptor Cove có 2 MB), nhưng chậm hơn, khoảng 12–16 nhịp. Ở phần lớn chip phổ thông hiện nay, L2 vẫn là của riêng từng nhân. Riêng cụm nhân tiết kiệm điện (E-core) của Intel thì cứ 4 nhân dùng chung một khối L2.

L3: nhà kho chung của cả nhà

L3 là tầng lớn nhất, từ khoảng 8 MB đến 96 MB tuỳ dòng chip, và dùng chung cho mọi nhân. Thời gian truy cập dài hơn hẳn, thường 40–70 nhịp tuỳ thiết kế, nhưng vẫn nhanh hơn RAM vài lần. Vì dùng chung, L3 còn là nơi các nhân "gặp nhau" khi cùng làm việc trên một dữ liệu.

Ảnh chụp đế chip Intel Core i9-13900K có chú thích, thấy rõ các khối L2 Cache cạnh từng nhân và dải L3 Cache dùng chung ở giữa

Ảnh chụp đế chip Core i9-13900K ở trên cho thấy rõ cách bố trí: mỗi nhân P-core có khối L2 2 MB nằm sát bên, còn các lát L3 (3 MB mỗi lát) xếp thành dải dọc theo đường nối chung ở giữa chip, để nhân nào cũng với tới được.

Tầng Dung lượng điển hình Độ trễ Phạm vi Ví von
L1 32–80 KB/nhân khoảng 4–5 nhịp (~1 ns) Riêng từng nhân, chia lệnh/dữ liệu Thớt trước mặt
L2 1–3 MB/nhân khoảng 12–16 nhịp Thường riêng từng nhân Tủ lạnh trong bếp
L3 8–96 MB khoảng 40–70 nhịp Dùng chung mọi nhân Kho chung của nhà
RAM 8–64 GB khoảng 70–100 ns (300+ nhịp) Cả hệ thống Siêu thị cách 5 km
GHI CHÚ

Các con số trên là mức điển hình của CPU máy bàn, laptop vài năm gần đây. Mỗi đời chip một khác, nên khi so sánh hãy xem thông số cụ thể của từng mẫu.

Sao không làm L1 thật to cho nhanh?

Câu hỏi rất tự nhiên: nếu L1 nhanh nhất, sao không làm hẳn 32 MB L1?

Vấn đề là bộ nhớ càng lớn thì càng chậm, đây là giới hạn vật lý chứ không phải do kỹ sư lười. Một kho lớn hơn nghĩa là:

  • Đường dây dài hơn: tín hiệu phải chạy xa hơn trên silicon để tới ô nhớ ở góc xa.
  • Tìm kiếm lâu hơn: cache phải so khớp địa chỉ trên nhiều ô hơn mới biết dữ liệu có ở đó hay không.
  • Tốn diện tích và điện: SRAM chiếm chỗ lớn, mà diện tích sát nhân là thứ quý nhất trên chip.

Giống căn bếp: bạn không thể biến cái thớt thành cái bàn dài 10 mét, vì khi đó với tay lấy đồ cũng mất công như đi bộ sang phòng khác. Xếp thành nhiều tầng, nhỏ và nhanh ở gần, lớn và chậm hơn ở xa, là cách cân bằng tốt nhất.

Ảnh chụp cận đế chip Intel Core thế hệ 4 với các vùng mạch nhiều màu, trong đó cache chiếm một phần diện tích lớn

Nhìn ảnh đế chip, bạn sẽ thấy các khối có cấu trúc lặp lại đều đặn như ô bàn cờ. Đó thường là SRAM của cache, và chúng chiếm một phần rất đáng kể diện tích con chip.

CPU đi tìm dữ liệu như thế nào?

Mỗi khi cần một dữ liệu, CPU hỏi lần lượt từ gần tới xa: L1 → L2 → L3 → RAM. Tìm thấy ở tầng nào gọi là cache hit (trúng), không có gọi là cache miss (trượt) và phải hỏi tầng tiếp theo. Dữ liệu lấy được từ tầng xa sẽ được chép ngược lên tầng gần, để lần sau dùng lại cho nhanh.

Nghe có vẻ chậm vì phải hỏi nhiều cửa, nhưng thực tế phần lớn yêu cầu được L1 trả lời ngay, thường cỡ 95% hoặc hơn với chương trình thông thường. Chỉ một phần nhỏ phải đi xuống RAM.

Bí quyết thứ nhất: lấy cả khối, không lấy từng byte

Cache không lấy lẻ từng byte. Mỗi lần nó kéo về cả một khối 64 byte gọi là cache line. Vì chương trình thường đọc dữ liệu nằm cạnh nhau (phần tử tiếp theo trong mảng, trường tiếp theo trong một bản ghi), một lần lấy 64 byte là đã có sẵn cả chục lần dùng tiếp theo. Hiện tượng này gọi là tính cục bộ không gian (spatial locality).

Ngoài ra còn tính cục bộ thời gian (temporal locality): thứ vừa dùng rất có khả năng được dùng lại sớm, như biến đếm trong vòng lặp.

Bí quyết thứ hai: đoán trước

Bộ prefetcher (bộ nạp trước) trong CPU theo dõi cách chương trình đọc bộ nhớ. Thấy chương trình đang đi tuần tự qua một mảng, nó tự kéo các cache line kế tiếp về trước khi được hỏi. Khi CPU thật sự cần, dữ liệu đã nằm sẵn trong cache.

Thanh RAM DDR4 màu đỏ, nơi CPU phải tìm tới khi mọi tầng cache đều trượt

Một phép tính nhỏ cho thấy vì sao tỉ lệ trúng quan trọng

Thử một ví dụ giả định đơn giản: L1 trả lời trong 4 nhịp, còn mỗi lần trượt tốn thêm trung bình 100 nhịp để lấy từ các tầng dưới. Thời gian truy cập trung bình xấp xỉ bằng 4 + tỉ lệ trượt × 100:

  • Trúng 95%: 4 + 0,05 × 100 = 9 nhịp.
  • Trúng 90%: 4 + 0,10 × 100 = 14 nhịp.

Tỉ lệ trúng chỉ giảm 5 điểm phần trăm mà thời gian chờ trung bình tăng hơn 50%. Đó là lý do các nhà sản xuất chịu đổ rất nhiều diện tích chip cho cache.

Với lập trình viên

Duyệt mảng hai chiều theo đúng thứ tự lưu trong bộ nhớ (theo hàng với C, C++, Java) nhanh hơn rõ rệt so với duyệt theo cột, dù số phép tính như nhau. Lý do chính là duyệt theo hàng tận dụng trọn từng cache line 64 byte, còn duyệt theo cột thì liên tục nhảy sang cache line khác.

Cache lớn thì chơi game có nhanh hơn?

Có, và ví dụ rõ nhất là dòng AMD Ryzen X3D. Chiếc Ryzen 7 5800X3D ra mắt năm 2022 dùng công nghệ 3D V-Cache: chồng thêm một lớp SRAM 64 MB lên trên phần chip chứa các nhân, nâng tổng L3 từ 32 MB lên 96 MB. Các đời sau như 7800X3D, 9800X3D tiếp tục cách làm này.

CPU AMD Ryzen 7 5800X3D, mẫu chip đầu tiên dùng 3D V-Cache với 96 MB L3

Game hưởng lợi nhiều vì mỗi khung hình engine phải đọc đi đọc lại cùng một bộ dữ liệu lớn: vị trí vật thể, trạng thái nhân vật, cây cảnh, vật lý. Bộ dữ liệu này thường lớn hơn 32 MB nhưng có thể nằm gọn trong 96 MB. Cache lớn hơn nghĩa là ít lần phải xuống RAM hơn, khung hình ra đều hơn, đặc biệt ở các game nặng về CPU.

Không phải việc gì cũng nhanh hơn

Cache lớn chỉ giúp khi chương trình dùng lại dữ liệu nhiều lần. Những việc chủ yếu cần sức tính toán thô như dựng video, nén file hay render 3D hưởng lợi ít hơn nhiều. Các bản X3D đời đầu còn phải chạy xung nhịp thấp hơn bản thường một chút vì lớp cache chồng lên làm chip khó toả nhiệt hơn.

Xem cache CPU của bạn và đọc thông số khi mua máy

Trên Windows, mở Task Manager, chọn tab Performance, bấm vào CPU: góc dưới bên phải hiện sẵn dung lượng L1, L2, L3. Phần mềm miễn phí CPU-Z (tab Caches) cho chi tiết hơn, tách cả L1 lệnh và L1 dữ liệu.

Trên Linux, chỉ cần một lệnh:

bash
lscpu --caches
# hoặc
lscpu | grep -i cache
getconf -a | grep -i CACHE

Trên macOS:

bash
sysctl -a | grep -i cachesize

Bo mạch chủ máy tính với khe cắm CPU và các khe RAM, nơi dữ liệu phải đi qua khi cache trượt

Khi đọc thông số, lưu ý vài điểm dễ nhầm:

  • Con số L2 trên trang bán hàng thường là tổng của mọi nhân, không phải của một nhân. Chip 8 nhân với 2 MB L2 mỗi nhân sẽ ghi "16 MB L2".

  • Không so cache giữa hai hãng một cách máy móc: thiết kế khác nhau, cùng 32 MB L3 nhưng độ trễ và cách chia sẻ có thể khác.

  • Cache chỉ là một yếu tố: số nhân, kiến trúc, xung nhịp và tốc độ RAM đều quan trọng. Nhưng giữa hai chip cùng tầm giá, chip nhiều L3 hơn thường có lợi cho game và các ứng dụng xử lý tập dữ liệu lớn.

  • [ ] Xác định nhu cầu chính: chơi game, làm đồ hoạ, hay văn phòng

  • [ ] Xem dung lượng L3 bên cạnh số nhân và GHz

  • [ ] Tìm benchmark đúng ứng dụng bạn dùng thay vì chỉ nhìn một con số

GHz cho biết CPU chạy nhanh cỡ nào, còn cache cho biết nó có phải đứng chờ hay không.

Tóm tắt nhanh

  • RAM trả lời mất khoảng 70–100 ns, tức hàng trăm nhịp của CPU, nên CPU cần cache để khỏi ngồi chờ.
  • L1: nhỏ nhất (32–80 KB/nhân), nhanh nhất (~4–5 nhịp), riêng từng nhân, chia đôi lệnh và dữ liệu.
  • L2: 1–3 MB/nhân, ~12–16 nhịp, thường vẫn riêng từng nhân.
  • L3: 8–96 MB, chậm nhất trong ba tầng nhưng dùng chung và vẫn nhanh hơn RAM nhiều lần.
  • Cache hiệu quả nhờ lấy cả cache line 64 byte và đoán trước dữ liệu; chip cache lớn như Ryzen X3D đặc biệt mạnh khi chơi game.

Câu hỏi thường gặp

Có thể nâng cấp hay thêm cache cho CPU không?

Không. Cache nằm ngay trên đế chip, được làm cùng lúc với con chip. Muốn nhiều cache hơn, cách duy nhất là đổi sang CPU khác.

Cache có giống RAM ảo hay bộ nhớ đệm của trình duyệt không?

Không. Cache của trình duyệt là các file lưu trên ổ cứng để tải trang web nhanh hơn, RAM ảo là phần ổ cứng dùng tạm khi thiếu RAM. Cache L1, L2, L3 là bộ nhớ SRAM phần cứng bên trong CPU, chỉ cùng tên "cache" vì cùng ý tưởng: giữ sẵn thứ hay dùng ở gần.

Xoá cache CPU có giúp máy nhanh hơn?

Không có cách và cũng không cần xoá. CPU tự quản lý cache hoàn toàn, tự đẩy dữ liệu cũ ra và nạp dữ liệu mới liên tục hàng tỷ lần mỗi giây. Các ứng dụng "dọn cache" trên điện thoại chỉ xoá file tạm, không đụng tới cache của CPU.

L3 lớn hơn có luôn tốt hơn?

Thường là có lợi, nhất là với game và cơ sở dữ liệu, nhưng không phải tuyệt đối. Với việc thuần tính toán, số nhân và xung nhịp quan trọng hơn. Hãy xem benchmark của đúng ứng dụng bạn hay dùng.

BVIẾT BỞIBeernary

ĐỌC TIẾP_

BÌNH LUẬN (0)

LOGIN.EXE
> ĐĂNG NHẬP ĐỂ BÌNH LUẬNDùng tài khoản Google, không cần tạo mật khẩu. Tên và ảnh đại diện Google sẽ hiện cạnh bình luận.

> CHƯA CÓ BÌNH LUẬN. HÃY LÀ NGƯỜI ĐẦU TIÊN_