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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started