Community support for Analyzers (Intel VTune™ Profiler, Intel Advisor, Intel Inspector)
4922 Discussions

unexpected 'MOB Load Replays Retired'


I am a newbie in this arena, and I need to optimize an ASM function.
I'm getting some MOB load replays ret. events in some instructions that I'd want to understand .
First, let me tell you the context: a single-threaded application's function receiving two input arrays, and writes outputs in a third array. Everything pre-allocated, and of course non-overlapped memory ranges.

Now, I'm getting these MOB replays in both MMXregister-to-MMXregister operations (such as movq), as well as memory-to-MMXregister load operations.

I have two questions:

1- Is this event a precise event? In other words: when I see the event on a register-to-register op, is it an event skid, or it means that the source register still hasn't got the value so the stall comes from a previous instruction where it was loaded?

2- Why I'm getting this event, considering that I'm writing in an area very distanct from where I'm reading? (the three buffers are not overlapped). Rewriting the question: the input buffers are 'read only' for my ASM function, they were written long long ago before the first time my function was called.
I think it's obvious that a load will be stalled, since I'm reading from a different place I am writing, so the only way of getting the data is from the cache.

I will appreciate some compass on this.

0 Kudos
0 Replies