CPC G06F 3/0613 (2013.01) [G06F 3/0659 (2013.01); G06F 3/0673 (2013.01)] | 11 Claims |
1. A memory controller comprising:
an access request holder;
an access request selector;
a command generator;
a refresh interval counter; and
a refresh counter, wherein
the memory controller is configured to issue a command to a semiconductor memory device including a plurality of ranks, in response to an access request sent from an arithmetic unit to the semiconductor memory device,
the access request holder is configured to:
hold the access request including a plurality of access requests; and
hold an access target address, an access type, and a data length of each of the plurality of access requests,
the access request selector is configured to:
calculate a plurality of presumed processing periods for respectively processing the plurality of access requests, according to the data length of each of the plurality of access requests; and
determine a processing order of the plurality of access requests according to each of the plurality of presumed processing periods, the access target address held in the access request holder, and the access type held in the access request holder,
the command generator is configured to:
convert the access type indicated by each of the plurality of the access requests held in the access request holder to an access command as the command for instructing an access to the semiconductor memory device; and
issue the access command to the semiconductor memory device according to the processing order,
the refresh interval counter is configured to issue notification at each refresh interval of the semiconductor memory device,
the refresh counter is configured to:
hold a counter value held in each of the plurality of ranks;
increment the counter value each time the notification is issued; and
decrement the counter value each time refresh of a corresponding one of the plurality of ranks is executed,
the access request selector is further configured to:
calculate a sum of the plurality of presumed processing periods as a total processing period for each of the plurality of ranks;
select the plurality of access requests as an access request group to an access target rank being a rank included in the plurality of ranks, the access target rank having the total processing period being longer than a refresh processing period as a period required for the refresh; and
determine the processing order of the plurality of access requests included in the access request group selected by the access request selector, and
the command generator is further configured to:
issue the access command to the access target rank in order; and
issue a refresh command as a command to execute the refresh for a refresh target rank whose counter value is larger than a first threshold value, the refresh target rank being a rank included in the plurality of ranks and being different from the access target rank.
|