Menurut Panduan Pengembang Perangkat Lunak Arsitektur Intel® 64 dan IA-32, Volume 1: Arsitektur Dasar, bab "Pemrograman dengan Intel Streaming SIMD Extensions (Intel SSE)":
Penyimpanan Data Temporal vs. Non-Temporal
Data yang direferensikan oleh program dapat bersifat temporal (data akan digunakan lagi) atau non-temporal (data akan direferensikan sekali dan tidak akan digunakan kembali dalam waktu dekat). Misalnya, kode program umumnya bersifat temporal, sedangkan data multimedia, seperti daftar tampilan dalam aplikasi grafik 3-D, seringkali bersifat non-temporal. Untuk menggunakan cache prosesor secara efisien, biasanya diinginkan untuk menyimpan data temporal dan tidak menyimpan data non-temporal. Membebani cache prosesor dengan data non-temporal terkadang disebut sebagai "mencemari cache". Instruksi kontrol cacheability SSE dan SSE2 memungkinkan program untuk menulis data non-temporal ke memori dengan cara yang meminimalkan polusi cache.
Deskripsi beban non-temporal dan instruksi penyimpanan. Sumber: Panduan Pengembang Perangkat Lunak Arsitektur Intel 64 dan IA-32, Volume 2: Referensi Set Instruksi
BEBAN (MOVNTDQA — Memuat Petunjuk Selaras Non-Temporal Ganda Quadword)
Memuat quadword ganda dari operan sumber (operan kedua) ke operan tujuan (operan pertama) menggunakan petunjuk non-temporal jika sumber memori adalah tipe memori WC (penggabungan tulis) [...]
[...] prosesor tidak membaca data ke dalam hierarki cache, juga tidak mengambil baris cache yang sesuai dari memori ke dalam hierarki cache.
Perhatikan bahwa, seperti yang dikomentari Peter Cordes, ini tidak berguna pada memori WB (tulis kembali) normal pada prosesor saat ini karena petunjuk NT diabaikan (mungkin karena tidak ada prefetcher HW yang sadar NT) dan semantik muatan penuh yang diurutkan dengan kuat berlaku . prefetchnta
dapat digunakan sebagai beban pengurang polusi dari memori WB
STORE (MOVNTDQ — Simpan Integer yang Dikemas Menggunakan Petunjuk Non-Temporal)
Memindahkan integer yang dikemas dalam operan sumber (operan kedua) ke operan tujuan (operan pertama) menggunakan petunjuk non-temporal untuk mencegah caching data selama penulisan ke memori.
[...] prosesor tidak menulis data ke dalam hierarki cache, juga tidak mengambil baris cache yang sesuai dari memori ke dalam hierarki cache.
Menggunakan terminologi yang ditentukan dalam Kebijakan dan Performa Penulisan Cache , mereka dapat dianggap sebagai operasi tulis (no-write-alokasi, no-fetch-on-write-miss).
Terakhir, mungkin menarik untuk meninjau catatan John McAlpin tentang penyimpanan non-temporal .
MOVNTDQA xmmi, m128
adalah beban NT, sementara semua instruksi NT lainnya disimpan, kecualiprefetchnta
. Jawaban yang diterima di sini sepertinya hanya berbicara tentang toko. Ini adalah apa yang saya dapat temukan tentang beban NT . TL: DR: semoga CPU melakukan sesuatu yang berguna dengan petunjuk NT untuk meminimalkan polusi cache, tetapi mereka tidak menimpa semantik memori WB "normal" yang diurutkan dengan kuat, jadi mereka harus menggunakan cache.