Question: To serve a memory request, the memory controller issues one or multiple DRAM commands to access data from a bank. There are four different DRAM

To serve a memory request, the memory controller issues one or multiple DRAM commands to access data from a bank. There are four different DRAM commands.

ACTIVATE: Loads the row (that needs to be accessed) into the bank's row-buffer. This is called opening a row. (Latency: 15ns)

PRECHARGE: Restores the contents of the bank's row-buffer back into the row. This is called closing a row. (Latency: 15ns)

READ/WRITE: Accesses data from the row-buffer. (Latency: 15ns)

Each request is color-coded to denote the application to which it belongs (assume that all applications are running on separate cores). Additionally, each request is annotated with the address (or index) of the row that the request needs to access (e.g., R3 means that the request is to the 3rd row). Furthermore, assume that all requests are read requests.

A memory request is considered to be served when the READ command is complete (i.e., 15ns after the request's READ command has been issued). In addition, each application (A, B, or C) is considered to be stalled until all of its memory requests (across all the request buffers) have been served. Assume that, initially (at t0) each bank has the 3rd and the 12th row loaded in the row-buffer, respectively. Furthermore, no additional requests from any of the applications arrive at the memory controller.

(c) Of the three applications, application C is the least memory-intensive (i.e., has the lowest number of out-standing requests). However, it experiences the largest stall time since its requests are served only after the numerous requests from other applications are first served. To ensure the shortest stall time for application C, one can assign its requests with the highest priority, while assigning the same low priority to the other two applications (A and B). When application C is assigned a high priority and the other two applications are assigned the same low priority, what is the stall time of each application? Among requests with the same priority, assume that FR-FCFS is used to break ties.

(d) Assign priorities to the other two applications such that you minimize the average stall time across all applications. Specifically, list all three applications in the order of highest to lowest priority. Also show the stall time for each application for this optimal priority assignment.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!