There are two identical memory read ports (port 2 and 3) and one write port (port 4) of Intel Skylake cores. Assuming there are two load instructions issued to port 2 and port 3 parallelly:
When both data can be fetched from L1 cache ( about ~10ns), will port 2 and 3 be blocked until data is fetched and load instruction is retired?
What if data is not available in cache and must be accessed from memory? Will load ports be blocked for a long time?
Another guess, when data is fetching from cache or memory, data request will be cached in load cache in MOB and port is released for next load. It means that a port can serve multiple load simultaneously when data is on path from cache/memory to core?
It could be much better if there is some support material. I googled but found no answer.