Previous | Next --- Slide 17 of 35
Back to Lecture Thumbnails
kayvonf

Question: Why would FR-FCFS be an improvement on first-come-first serve scheduling?

ChandlerBing

The First-ready scheduling policy implies that we first serve the requests to the currently open row. If any such requests exist, we would thus save the overhead associated with the PRE & RAS stages and therefore reduce latency. In the FCFS scheduling we cannot be guaranteed that the open row would be served first and hence we could incur higher latency.

rflood

It seems similar to the "tellmenow" questions from assignment 4. For those, we knew they were able to be served quickly, and we were told they should be serviced quickly for more points.

Since there is no priority indicator for memory requests (I assume at least), a good way to reduce overall latency is to service requests which it knows will have low latency first. Since it already has the row charged, it has temporarily become a "specialized worker" for requests of that type, so it will increase its effective throughput by servicing those requests which it can do faster first, before it changes its specialization to service a different request

jazzbass

I believe that FR-FCFS only becomes an improvement if we have multiple threads running, or support multiple outstanding memory requests. Instead of naively swapping rows every time we get a request, we might buffer them for a few clocks and try to minimize the number of row swaps. This might be particularly useful for GPU's, where we might have hundreds of outstanding memory requests.

aznshodan

Also want to point out that even though FR-FCFS yields higher throughput and reduces latency, it can unfairly schedule applications' requests. This can lead to a situation where a non-memory-intensive application's throughput will decrease and its latency will increase.

regi

Is FR-FCFS necessary if we can pipeline the PRE/RAS/CAS stages using multiple banks?

aznshodan

@regi from what i know you can't pipeline PRE, RAS and CAS when you have multiple requests to the same bank. So FR-FCFS is needed if you want to get the max throughput on a single bank.

ankit1990

I think FR-FCFS and PRE/RAS/CAS stages using multiple banks are two independent strategies for increasing the throughput of a memory system. While FCFS deals with a more 'optimum' scheduling, the latter deals with pipelining instructions so that we obtain maximum out of a chip.

landuo

The FR-FCFS takes advantage of row locality. That is, it returns the content in current active row buffer first. By doing so the overhead of the PRE+RAS, which counts as major source of memory access latency, can be reduced. Although some requests may be delayed a small amount of time, the overall throughput is optimized.