AMD quyết định vô hiệu hóa loop buffer của Zen 4
(chipsandcheese.com)AMD vô hiệu hóa loop buffer của Zen 4
-
Vai trò của loop buffer: Nằm ở frontend của CPU và lưu các lệnh đã được nạp trước đó. Các vòng lặp nhỏ có thể nằm trong loop buffer, nhờ đó có thể vô hiệu hóa một số giai đoạn của frontend để tiết kiệm điện năng và cải thiện hiệu năng. Đây là một kỹ thuật lâu đời được dùng trong các lõi của Intel, Arm và AMD.
-
Loop buffer của Zen 4: Zen 4 là lõi hiệu năng cao duy nhất của AMD có tích hợp loop buffer. Theo các thí nghiệm với bộ đếm hiệu năng, khi lõi chạy một luồng thì nó có 144 mục. Khi hai luồng SMT cùng hoạt động, mỗi luồng được cấp 72 mục. Nếu có lệnh gọi hàm và trả về bên trong vòng lặp thì loop buffer sẽ không bắt được vòng lặp đó.
-
Thay đổi sau khi cập nhật BIOS: Sau khi cập nhật ASRock B650 PG Lightning lên BIOS phiên bản 3.10, giám sát hiệu năng phần cứng cho thấy frontend აღარ dispatch micro-op từ loop buffer. Khi quay lại BIOS phiên bản 1.21, loop buffer lại được kích hoạt. Có vẻ AMD đã vô hiệu hóa loop buffer ở đâu đó giữa BIOS 1.21 (AGESA phiên bản 1.0.0.6) và BIOS 3.10 (AGESA phiên bản 1.2.0.2a).
SPEC CPU2017: Tìm ra khác biệt
-
Ảnh hưởng đến hiệu năng: Điểm SPEC CPU2017 cho thấy không có khác biệt đáng kể tùy theo việc loop buffer có được bật hay không. Tổng điểm của bộ bài kiểm tra số nguyên và dấu chấm động chênh lệch dưới 1%. Mức cải thiện hiệu năng từ SMT cũng không bị ảnh hưởng.
-
Vai trò của loop buffer: Mục tiêu chính của loop buffer không phải là tăng hiệu năng mà là cho phép lõi tắt phần lớn frontend. Theo tài liệu tham chiếu lập trình bộ xử lý của Zen 4, các bộ đếm hiệu năng có thể được lập trình để tăng thêm 1 mỗi khi số sự kiện vượt qua một ngưỡng.
Cyberpunk 2077
- Kiểm tra hiệu năng game: Bài viết dùng benchmark tích hợp của Cyberpunk 2077 để kiểm tra ảnh hưởng của việc vô hiệu hóa loop buffer lên hiệu năng chơi game. Kết quả cho thấy việc tắt loop buffer gần như không ảnh hưởng đến hiệu năng game.
Thử kiểm tra mức tiêu thụ điện
- Hiệu quả điện năng: Bài viết cố dùng bộ đếm điện năng của lõi Zen 4 để kiểm tra xem loop buffer có cải thiện hiệu quả điện năng hay không, nhưng kết quả không nhất quán. Trên BIOS mới thì không còn có thể kiểm tra loop buffer.
Kết luận
- Lý do vô hiệu hóa loop buffer: Chưa rõ vì sao AMD vô hiệu hóa loop buffer của Zen 4. Một tính năng CPU có thể bị tắt do lỗi phần cứng. Zen 4 là trường hợp đầu tiên AMD đưa loop buffer vào CPU hiệu năng cao của mình. Tác động đến hiệu năng là gần như không có, và ảnh hưởng đến mức tiêu thụ điện cũng được cho là rất nhỏ.
1 bình luận
Ý kiến trên Hacker News
Có khả năng tính năng này bị vô hiệu hóa để ngăn chặn lỗ hổng phần cứng. Điều đó cho thấy loop buffer không mang lại lợi ích về hiệu năng hay điện năng
Loop buffer của Zen 4 cho thấy công ty có năng lực kỹ thuật để thử nghiệm
Đang dùng 7950x3d và đã nâng cấp từ 6700k của Skylake
Trong game, khi loop buffer bị vô hiệu hóa, hiệu năng giảm 5% khi bị ghim vào die không có cache
Loop buffer có lẽ nhỏ đến mức chỉ tạo khác biệt trong những kịch bản cụ thể, còn buffer lớn hơn thì có thể không đáng chi phí
Trên Cortex-A15, đây là một "tính năng thiết kế chủ chốt"
Tôi không hiểu loop buffer chiếm bao nhiêu diện tích trên die
Trong mục "điện năng", họ không chia cho số lệnh thực thi mỗi giây
Một trong những khác biệt giữa 68000 năm 1979 và 68010 năm 1982 là việc bổ sung "loop mode", một loop buffer 6 byte