Nhà nghiên cứu CPU độc lập Agner Fog đã hoàn thành việc kiểm tra hiệu suất toàn diện của kiến trúc Zen 5 của AMD , tiết lộ những cải tiến đáng kể giải quyết các nút thắt cổ chai lâu đời trong thiết kế bộ xử lý. Kết quả kiểm tra làm nổi bật những thay đổi kiến trúc lớn có thể định hình lại cách các nhà phát triển tiếp cận các ứng dụng sử dụng nhiều CPU.
Phá Vỡ Nút Thắt Cổ Chai Tìm Nạp 16-Byte
Cải tiến quan trọng nhất trong Zen 5 là việc tăng gấp đôi tốc độ tìm nạp lệnh từ 16 lên 32 byte mỗi chu kỳ xung đồng hồ. Điều này giải quyết một hạn chế nghiêm trọng trên cả bộ xử lý Intel và AMD qua nhiều thế hệ. Vì các lệnh riêng lẻ có thể có độ dài từ 1 đến 15 byte, với các lệnh AVX512 phức tạp trải dài từ 6 đến 11 byte, giới hạn 16-byte trước đây đã tạo ra sự không khớp giữa những gì bộ xử lý có thể tìm nạp và những gì nó có thể thực thi.
Nút thắt cổ chai này đặc biệt có vấn đề vì các bộ xử lý AMD và Intel trước đây có thể xử lý bốn hoặc nhiều lệnh hơn mỗi chu kỳ xung đồng hồ, nhưng chỉ khi mã vừa với bộ nhớ đệm micro-op. Khả năng tìm nạp mở rộng hiện cho phép Zen 5 sử dụng tốt hơn các tài nguyên thực thi trên phạm vi rộng hơn các mẫu mã.
Bộ nhớ đệm Micro-op: Một bộ nhớ đệm đặc biệt lưu trữ các lệnh đã được giải mã, cho phép thực thi nhanh hơn các vòng lặp mã được sử dụng thường xuyên
Thông số kỹ thuật chính của Zen 5:
- Tốc độ tải lệnh: 32 byte mỗi chu kỳ xung nhịp (tăng gấp đôi từ 16 byte)
- Thực thi tối đa: 6 lệnh mỗi chu kỳ xung nhịp (lên đến 8 lệnh trong các trường hợp hiếm)
- Đơn vị ALU số nguyên: 6 đơn vị
- Đơn vị tạo địa chỉ: 4 đơn vị
- Đơn vị phân nhánh: 3 đơn vị
- Đơn vị ALU vector: 4 đơn vị (khả năng 512-bit đầy đủ)
- Đơn vị đọc/ghi vector: 2 đơn vị
- Thao tác bộ nhớ: 4 lần đọc mỗi chu kỳ HOẶC 2 lần đọc + 2 lần ghi mỗi chu kỳ
- Thao tác bộ nhớ vector: 2 lần đọc hoặc ghi mỗi chu kỳ (ghi 512-bit được chia thành hai thao tác 256-bit)
Khả Năng Thực Thi Nâng Cao
Zen 5 hiện có thể thực thi tối đa sáu lệnh mỗi chu kỳ xung đồng hồ, với các trường hợp hiếm hoi đạt tám lệnh. Thông lượng tăng này được hỗ trợ bởi việc mở rộng đáng kể các đơn vị thực thi: sáu ALU số nguyên, bốn đơn vị tạo địa chỉ, ba đơn vị nhánh, bốn ALU vector, và hai đơn vị đọc/ghi vector. Sự dồi dào của các đơn vị thực thi có nghĩa là các bộ xử lý hiếm khi cần phải chờ đợi các tài nguyên có sẵn.
Tuy nhiên, các cuộc thảo luận cộng đồng chỉ ra một đặc điểm thiết kế thú vị. Trong khi tất cả các đơn vị vector hỗ trợ các hoạt động 512-bit đầy đủ, việc ghi bộ nhớ bị giới hạn ở các hoạt động 256-bit, đòi hỏi việc ghi 512-bit phải được chia thành hai hoạt động. Một số nhà phát triển đặt câu hỏi liệu hạn chế này có ảnh hưởng đến các khối lượng công việc sử dụng nhiều bộ nhớ hay không, mặc dù những người khác lưu ý rằng các hoạt động điển hình liên quan đến việc đọc nhiều hơn ghi, làm cho điều này ít có vấn đề hơn trong thực tế.
Hiệu Suất Nhánh và Hoạt Động Vector Được Cải Thiện
Dự đoán nhánh, quan trọng cho các cấu trúc if-then-else trong mã, đã có những cải tiến đáng kể. Zen 5 có thể xử lý hai nhánh được dự đoán thực hiện hoặc ba nhánh được dự đoán không thực hiện mỗi chu kỳ xung đồng hồ. Bộ dự đoán nhánh có thể phân tích hai nhánh trước và giải mã đồng thời cả hai phía của một nhánh hai chiều.
Một sự đánh đổi thú vị xuất hiện trong các hoạt động vector. Độ trễ cộng vector số nguyên tăng từ 1 lên 2 chu kỳ xung đồng hồ so với Zen 4 , trong khi phép cộng dấu phẩy động cải thiện từ 3 xuống 2 xung đồng hồ. Thay đổi này có nghĩa là cả lệnh vector số nguyên và dấu phẩy động hiện có độ trễ khớp nhau, có khả năng đơn giản hóa các quyết định tối ưu hóa cho các nhà phát triển.
Các chuyên gia cộng đồng lưu ý rằng độ trễ thực tế có thể tốt hơn trong một số điều kiện nhất định, đặc biệt là khi các bộ lập lịch dấu phẩy động không được lấp đầy hoàn toàn, cho phép một số hoạt động duy trì hiệu suất chu kỳ đơn.
Cải tiến hiệu suất:
- Dự đoán nhánh: 2 nhánh được dự đoán thực hiện HOẶC 3 nhánh được dự đoán không thực hiện mỗi chu kỳ
- Độ trễ phép cộng vector số nguyên: 2 xung nhịp (tăng từ 1 xung nhịp trong Zen 4)
- Độ trễ phép cộng dấu phẩy động: 2 xung nhịp (giảm từ 3 xung nhịp trong Zen 4)
- Thông lượng các phép toán vector: 2 phép cộng vector + 2 phép nhân vector + 2 phép đọc/ghi vector đồng thời mỗi chu kỳ
Truy Cập Bộ Nhớ Vẫn Là Thách Thức
Bất chấp những cải tiến thực thi này, kích thước bộ nhớ đệm và tính kết hợp chỉ có những cập nhật nhỏ. Điều này có nghĩa là trong khi thông lượng CPU hiếm khi là nút thắt cổ chai trong Zen 5 , tối ưu hóa truy cập bộ nhớ trở nên ngày càng quan trọng đối với các nhà phát triển muốn khai thác toàn bộ tiềm năng của bộ xử lý. Các chương trình sử dụng nhiều tính toán sẽ thấy lợi ích đáng kể, trong khi các ứng dụng bị giới hạn bởi truy cập bộ nhớ và đĩa có thể không trải nghiệm cải tiến đáng kể.
Kết quả kiểm tra cho thấy rằng Zen 5 đại diện cho một bước tiến lớn trong việc giải quyết các nút thắt cổ chai CPU truyền thống, đặc biệt trong việc tìm nạp lệnh và thông lượng thực thi. Tuy nhiên, trọng tâm chuyển hướng về tối ưu hóa bộ nhớ như yếu tố chính trong việc đạt được hiệu suất tối đa từ kiến trúc mới này.
Tính kết hợp: Một thước đo về mức độ linh hoạt dữ liệu có thể được đặt trong bộ nhớ đệm, ảnh hưởng đến mức độ hiệu quả của việc sử dụng bộ nhớ đệm
Tham khảo: What's new about Zen 5 and Arrow Lake?