SFENCE vor non-temporal write?
-
Guten Morgen,
ein neuer Tag, neue Probleme. Kaffee ist aufgesetzt, also kann es losgehen
Ich habe folgenden - simplen - Code:
; Achtung: Pseudocode ; [...] sfence ; nötig hier? movntdq [edi], xmm0 movntdq 16[edi], xmm1 movntdq 32[edi], xmm2 movntdq 48[edi], xmm3 ; [...] emms ret
Die durch EDI referenzierte Speicherstelle wird nie - von mir - gelesen, sondern nur an dieser Stelle beschrieben. Daher bietet es sich an, non-temporal moves zu verwenden.
Die Frage ist jedoch, ob die SFENCE Instruktion zuvor von nöten ist, um zu vermeiden, dass sich die referenzierte Speicherstelle evtl. im Speicher befindet und ohne das wissen des "verantwortlichen" Prozessors von einem (z.B.) einem anderen Kern im Cache verändert wird.
Ich möchte SFENCE hier nur verwenden, wenn es zwingend erforderlich ist, da die Ausführung doch einige Zeit in Anspruch nimmt.
Danke schon mal vorab.
-
Hast du das Problem inzwischen gelöst und möchtest die Lösung vielleicht uns allen mitteilen