Theo Sổ tay dành cho nhà phát triển phần mềm kiến trúc Intel® 64 và IA-32, Tập 1: Kiến trúc cơ bản, chương "Lập trình với Tiện ích mở rộng SIMD của Intel Streaming (Intel SSE)":
Lưu trữ dữ liệu tạm thời so với dữ liệu phi thời gian
Dữ liệu được tham chiếu bởi một chương trình có thể là tạm thời (dữ liệu sẽ được sử dụng lại) hoặc phi thời gian (dữ liệu sẽ được tham chiếu một lần và không được sử dụng lại trong tương lai). Ví dụ, mã chương trình thường mang tính thời gian, trong khi dữ liệu đa phương tiện, chẳng hạn như danh sách hiển thị trong ứng dụng đồ họa 3-D, thường không mang tính thời gian. Để sử dụng hiệu quả bộ nhớ đệm của bộ xử lý, thông thường bạn nên lưu vào bộ đệm dữ liệu tạm thời chứ không phải bộ đệm dữ liệu phi thời gian. Việc nạp quá nhiều bộ nhớ đệm của bộ xử lý với dữ liệu phi thời gian đôi khi được gọi là "làm ô nhiễm bộ nhớ đệm". Hướng dẫn kiểm soát khả năng lưu trong bộ nhớ cache của SSE và SSE2 cho phép chương trình ghi dữ liệu phi thời gian vào bộ nhớ theo cách giảm thiểu ô nhiễm bộ nhớ đệm.
Mô tả tải trọng phi thời gian và hướng dẫn lưu trữ. Nguồn: Sách hướng dẫn của nhà phát triển phần mềm kiến trúc Intel 64 và IA-32, Tập 2: Tham khảo bộ hướng dẫn
TẢI (MOVNTDQA — Tải Gợi ý được căn chỉnh từ bốn chữ cái kép không theo thời gian)
Tải một từ kép từ toán hạng nguồn (toán hạng thứ hai) đến toán hạng đích (toán hạng thứ nhất) bằng cách sử dụng gợi ý phi thời gian nếu nguồn bộ nhớ là loại bộ nhớ WC (kết hợp ghi) [...]
[...] bộ xử lý không đọc dữ liệu vào phân cấp bộ đệm, cũng như không tìm nạp dòng bộ đệm tương ứng từ bộ nhớ vào phân cấp bộ đệm.
Lưu ý rằng, như Peter Cordes nhận xét, nó không hữu ích trên bộ nhớ WB bình thường (ghi lại) trên bộ xử lý hiện tại vì gợi ý NT bị bỏ qua (có thể vì không có bộ nạp trước HW nhận biết NT) và áp dụng ngữ nghĩa tải được sắp xếp mạnh mẽ đầy đủ . prefetchnta
có thể được sử dụng như một tải giảm ô nhiễm từ bộ nhớ WB
CỬA HÀNG (MOVNTDQ — Lưu trữ số nguyên được đóng gói bằng cách sử dụng gợi ý phi thời gian)
Di chuyển các số nguyên được đóng gói trong toán hạng nguồn (toán hạng thứ hai) đến toán hạng đích (toán hạng thứ nhất) bằng cách sử dụng gợi ý phi thời gian để ngăn chặn dữ liệu được lưu vào bộ nhớ đệm trong quá trình ghi vào bộ nhớ.
[...] bộ xử lý không ghi dữ liệu vào phân cấp bộ đệm, cũng như không tìm nạp dòng bộ đệm tương ứng từ bộ nhớ vào phân cấp bộ đệm.
Sử dụng thuật ngữ được định nghĩa trong Chính sách và Hiệu suất Ghi vào Bộ nhớ cache , chúng có thể được coi là ghi xung quanh (không ghi-phân bổ, không tìm nạp-khi ghi-bỏ lỡ).
Cuối cùng, có thể thú vị khi xem lại các ghi chú của John McAlpin về các cửa hàng phi thời gian .
MOVNTDQA xmmi, m128
là tải NT, trong khi tất cả các hướng dẫn NT khác đều là cửa hàng, ngoại trừprefetchnta
. Câu trả lời được chấp nhận ở đây dường như chỉ nói về các cửa hàng. Đây là những gì tôi có thể bật mí về tải NT . TL: DR: hy vọng CPU làm điều gì đó hữu ích với gợi ý NT để giảm thiểu ô nhiễm bộ nhớ cache, nhưng chúng không ghi đè ngữ nghĩa được sắp xếp chặt chẽ của bộ nhớ WB "bình thường", vì vậy chúng phải sử dụng bộ nhớ cache.