Fine granularity refresh
First Claim
1. A memory controller having an input for receiving memory access requests, and an output for providing memory accesses to a memory system, the memory controller comprising:
- a command queue for receiving the memory access requests and having a plurality of entries and an output for providing selected memory accesses;
an arbiter coupled to said command queue for selecting entries from said command queue for dispatch to the memory system; and
a refresh logic circuit coupled to said arbiter, wherein in an on-the-fly refresh mode, said refresh logic circuit generates auto-refresh commands to the memory system with a granularity that it automatically selects in response to conditions associated with a memory bank to be refreshed and issues a number of auto-refresh commands during a refresh interval that is inversely proportional to said granularity.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system includes a memory channel and a data processor coupled to the memory channel. The data processor is adapted to access at least one rank and has refresh logic. In response to an activation of the refresh logic, the data processor generates refresh cycles to a bank of the memory channel. The data processor selects one of a first state corresponding to a first auto-refresh command that causes the data processor to auto-refresh the bank, and a second state corresponding to a second auto-refresh command that causes the data processor to auto-refresh a selected subset of the bank. The data processor initiates a switch between the first state and the second state in response to the refresh logic detecting a first condition related to the bank, and between the second state and the first state in response to the refresh logic circuit detecting a second condition.
13 Citations
28 Claims
-
1. A memory controller having an input for receiving memory access requests, and an output for providing memory accesses to a memory system, the memory controller comprising:
-
a command queue for receiving the memory access requests and having a plurality of entries and an output for providing selected memory accesses; an arbiter coupled to said command queue for selecting entries from said command queue for dispatch to the memory system; and a refresh logic circuit coupled to said arbiter, wherein in an on-the-fly refresh mode, said refresh logic circuit generates auto-refresh commands to the memory system with a granularity that it automatically selects in response to conditions associated with a memory bank to be refreshed and issues a number of auto-refresh commands during a refresh interval that is inversely proportional to said granularity. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A memory controller comprising:
-
an interface having an input for receiving memory access requests, and an output; a decoder coupled to said output of said interface for decoding said memory access requests and providing corresponding memory accesses in response; a command queue having a first input coupled to said output of said decoder, a second input, and an output, and having a plurality of entries; an arbiter coupled to said command queue for providing auto-refresh commands to said second input of said command queue selecting entries from said command queue for dispatch to a memory system; a second queue having an input coupled to said output of said command queue, and an output for coupling to a memory channel; and a refresh logic circuit coupled to said arbiter, wherein in an on-the-fly refresh mode, said refresh logic circuit generates auto-refresh commands to the memory system with a granularity that it automatically selects in response to conditions associated with a memory bank to be refreshed and issues a number of auto-refresh commands during a refresh interval that is inversely proportional to said granularity, and provides said auto-refresh commands to said arbiter. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method controlling accesses to a memory, comprising:
-
receiving memory access requests; decoding the memory access requests to provide decoded memory access requests; storing the decoded memory access requests in a command queue; storing auto-refresh commands in said command queue; arbitrating among said decoded memory access requests and said auto-refresh commands in said command queue to provide selected ones of said decoded memory access requests and said auto-refresh commands to the memory; and generating said auto-refresh commands in an on-the-fly refresh mode with a granularity that is automatically selected in response to conditions associated with a memory bank to be refreshed. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification