Chào mừng bạn đến với TiemDienThoai.com
Kiến thức · Chip & Hiệu năng

Bộ nhớ đệm cache trên chip chia sẻ giữa cụm nhân lớn nhỏ ảnh hưởng hiệu năng đa nhiệm ra sao

Vì sao ứng dụng nền bị tải lại dù RAM còn trống, do dữ liệu bị đẩy khỏi cache L1/L2/L3 khi chuyển đổi ứng dụng liên tục.

Mục lục bài viết

Khi mở lại một ứng dụng vừa chuyển sang chạy nền, có máy hiển thị lại tức thời đúng vị trí đang xem, có máy phải tải lại từ đầu dù RAM còn trống nhiều. Nguyên nhân không chỉ ở dung lượng RAM mà còn ở kiến trúc cache trên chip, lớp bộ nhớ đệm tốc độ cực cao giữa nhân xử lý và RAM, quyết định tốc độ truy xuất dữ liệu trước khi phải chờ RAM chậm hơn nhiều lần can thiệp.

Ba cấp cache và vai trò khác nhau

Mỗi nhân CPU có cache L1 riêng, dung lượng rất nhỏ nhưng tốc độ gần bằng nhân xử lý, dùng cho dữ liệu đang thao tác tức thời. Cache L2 lớn hơn, gắn riêng từng nhân hoặc cụm nhân, chậm hơn L1 nhưng vẫn nhanh hơn RAM hàng chục lần. Cache L3, hay System Level Cache trên nhiều chip Android, dùng chung toàn chip gồm cả GPU, NPU, trung chuyển dữ liệu giữa các cụm nhân. Ba cấp tạo kim tự tháp tốc độ giảm dần nhưng dung lượng tăng dần, giúp CPU không phải chờ RAM cho thao tác thường xuyên.

Vì sao ứng dụng nền bị đẩy khỏi cache dù RAM chưa đầy

Cache dung lượng cực nhỏ so với RAM nên chỉ giữ dữ liệu của số ít tiến trình đang hoạt động tích cực nhất. Khi chuyển đổi nhiều ứng dụng liên tục, dữ liệu nóng của ứng dụng cũ trong cache bị ghi đè theo nguyên tắc thay thế least-recently-used, dù tiến trình cũ vẫn còn nguyên trong RAM. Quay lại ứng dụng đó, CPU phải truy xuất lại dữ liệu từ RAM nạp vào cache, nhanh hơn tải lại toàn bộ nhưng vẫn tạo độ trễ cảm nhận được, gọi là cache miss.

Chia sẻ cache giữa cụm nhân lớn nhỏ tạo điểm nghẽn

Cache L3 dùng chung phải phục vụ đồng thời cụm nhân hiệu năng cao đang xử lý tác vụ nặng và cụm nhân tiết kiệm điện chạy tác vụ nền. Nếu một ứng dụng đang chiếm băng thông cache lớn như game đồ hoạ nặng, tiến trình nền trên cụm nhân nhỏ có thể bị giảm tốc độ truy xuất do cạnh tranh băng thông, dù bản thân không đòi hỏi nhiều tài nguyên. Đây là lý do một số máy giật thông báo, đồng bộ nền lúc chơi game nặng, không phải thiếu CPU mà vì cache bị cụm nhân lớn chiếm dụng.

RAM ảo và cache không thể thay thế cho nhau

RAM ảo mở rộng không gian lưu trạng thái ứng dụng nền để tránh bị đóng hẳn, còn cache trên chip quyết định tốc độ CPU truy xuất dữ liệu, hai cơ chế hoạt động ở tầng khác nhau. Máy RAM ảo lớn vẫn có thể giật nếu kiến trúc cache và bộ lập lịch không tối ưu, vì RAM ảo không tăng tốc độ truy xuất, chỉ giúp ứng dụng không bị đóng.

Hiểu nhầm thường gặp

“RAM còn trống nhiều thì ứng dụng nền mở lại chắc chắn phải nhanh.” Tốc độ mở lại ứng dụng nền phụ thuộc dữ liệu có còn nằm trong cache tốc độ cao của chip hay không, chứ không chỉ dung lượng RAM trống. Cache bị thay thế liên tục khi chuyển đổi ứng dụng dù RAM còn dư, nên tải lại một phần khi quay lại ứng dụng là bình thường ngay cả trên máy RAM lớn.

Xem thêm

Nội dung này thuộc cụm bài Kiến trúc chip theo hãng: tổng hợp bài viết. Xem thêm Chip flagship và chip tầm trung cùng hãng khác nhau ở đâu ngoài xung nhịp. Thông tin kỹ thuật chi tiết hơn được công bố tại trang hỗ trợ Android chính thức của Google.

Lê Hoàng Nam - chuyên gia công nghệ điện thoại
Tác giả phụ trách chuyên mục

Chuyên gia nhiếp ảnh di động & hiệu năng — Từng thử nghiệm và đo hiệu năng hàng trăm mẫu điện thoại, tập trung vào camera, benchmark chip và tối ưu bộ nhớ.

Xem hồ sơ và chuyên môn →
Bình luận bài viết

Để lại bình luận

Thông tin liên hệ chỉ dùng để phản hồi, không hiển thị công khai.