2015-09-18 16 views
5

cpuid viene utilizzato come istruzione di serializzazione per impedire l'esecuzione immediata durante l'analisi comparativa, poiché l'esecuzione di istruzioni di riferimento potrebbe essere riordinata prima dello rdtsc se utilizzato da solo. La mia domanda è se sia ancora possibile riordinare le istruzioni sotto rdtsc tra cpuid e rdtsc? Poiché rdtsc non è un'istruzione serializzante, le istruzioni possono essere liberamente riordinate attorno ad esso?cpuid + rdtsc e esecuzione fuori sequenza

risposta

1

Poiché RDTSC non dipende da alcun input (non richiede argomenti), in linea di principio, la pipeline OOO lo eseguirà il prima possibile. Il motivo per cui si aggiunge un'istruzione serializzazione prima di non consentire all'esecuzione di RDTSC in precedenza.

C'è una risposta di John McCalpin here, potrebbe essere utile. Spiega il riordino di OOO per l'istruzione RDTSCP (che si comporta diversamente da RDTSC) che preferireste invece usare.

Problemi correlati