I think the FR-FCFS scheduling policy is another reason why we should write programs that has good spatial locality. The policy won't be effective if there is few locality in the access patterns of the program. Although the policy applies in a lower level, that is, regardless of which program the request comes from, the memory controller try to maximize the overall memory performance. But it would be much more effective if the requested physical memory addresses are close.
Is it possible for FR-FCFS to starve a core? For example, let's say we have 2 cores trying to access DRAM and one of them just constantly reads and rereads the same row (assuming we have no cache of course, maybe we do something adversarial for cache as well). Would the memory controller just give the core doing the adversarial reads continuous access to DRAM?
This probably isn't a huge concern since rows are small and the cache exists.
Is an open row one where PRE and RAS is already done such that only CAS needs to be completed for a request to be serviced?
@IntergalacticPeanutMaker Yes. Open row is the row that is already in buffer. Access to this row is faster since no PRE and RAS is required. Assign high priority to requests to open row can exploit the spatial locality better.
It seems to me that the FC-FCFS policy has an impact on memory consistency. If we were to impose a strict memory consistency model, wouldn't FC-FCFS no longer be possible?