Embodiments of a memory scoreboard are presented herein. The memory
scoreboard tracks memory requests for each rank and bank of memory being
addressed. When there are no pending requests, the scoreboard provides an
indication to an idle timer that begins a count down to close a current
page of the memory. The idle timer can be configured dynamically to close
memory pages and to address dynamically-changing code streams by tracking
previous decisions made on page closes.