WO2023119622A1 - メモリアクセス方法およびメモリアクセス制御装置 - Google Patents

メモリアクセス方法およびメモリアクセス制御装置 Download PDF

Info

Publication number
WO2023119622A1
WO2023119622A1 PCT/JP2021/048185 JP2021048185W WO2023119622A1 WO 2023119622 A1 WO2023119622 A1 WO 2023119622A1 JP 2021048185 W JP2021048185 W JP 2021048185W WO 2023119622 A1 WO2023119622 A1 WO 2023119622A1
Authority
WO
WIPO (PCT)
Prior art keywords
rule
storage
memory
selection
data
Prior art date
Application number
PCT/JP2021/048185
Other languages
English (en)
French (fr)
Inventor
真崇 毛利
崇 山本
Original Assignee
株式会社ソシオネクスト
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソシオネクスト filed Critical 株式会社ソシオネクスト
Priority to PCT/JP2021/048185 priority Critical patent/WO2023119622A1/ja
Publication of WO2023119622A1 publication Critical patent/WO2023119622A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present disclosure relates to a memory access method and a memory access control device.
  • Memory interleave is a technique of dividing memory into multiple areas that can operate simultaneously and appropriately allocating access to memory to these areas, thereby improving overall access efficiency.
  • Patent Document 1 discloses a technique of referring to the lower bits of an access address (logical address) and determining the allocation destination area from the information of the lower bits. For example, lower 3 bits are referred to, and access is distributed to 8 areas from 8 types of 3-bit information. This scheme is simple to implement and works as intended if the access mode is for consecutive addresses. That is, it is possible to evenly distribute access to each area.
  • the access form is not for consecutive addresses but for a group of addresses such that the address difference increases by 8, such as X, X+8, X+16, X+24, .
  • the same area is always accessed.
  • Patent Document 2 discloses a technique for devising a conversion rule from an access address (logical address) to a physical address.
  • the present disclosure provides a memory access method and the like that can support various access modes.
  • a memory access method instructs to store one piece of data according to one first logical address in a first memory or a second memory having a physical address different from that of the first memory.
  • a first storage path selection step of performing a first selection of which of the data storage step and the second storage step to be executed, wherein the first storage step selects the first path according to the data storage instruction and storing the one data in the first memory via a second path, and the second storing step stores the one data in the second memory via a second path in accordance with the data storage instruction.
  • a step of storing data wherein the first selection is performed based on a first interleave rule or a second interleave rule for assigning a physical address to the first logical address in the first storage path selection step; , making the first selection based on the first interleaving rule for one or more of the data storage instructions, and performing the first selection for one or more of the subsequent data storage instructions based on the second interleaving rule and performing the first selection.
  • FIG. 1 is a configuration diagram showing an example of a memory access control device according to an embodiment.
  • FIG. 2 is a flow chart showing an example of a memory access method according to the embodiment.
  • FIG. 3 is a flow chart showing a specific example of the memory access method according to the embodiment.
  • FIG. 4 is a flowchart illustrating an example of read processing in the memory access method according to the embodiment.
  • a memory access method stores one piece of data according to one first logical address in a first memory or a second memory having a physical address different from that of the first memory.
  • the first storage path selection step is based on a first interleave rule or a second interleave rule for assigning a physical address to the first logical address. making a selection, making the first selection based on the first interleaving rule for one or more of the data storage instructions, and performing the second interleaving for the following one or more of the data storage instructions; The first selection is made based on rules.
  • the interleave rule can be switched, so various access modes can be supported.
  • the first interleave rule may be switched to the second interleave rule based on the history of the result of the first selection. Specifically, in the first storing route selection step, the number of times the first storing step is selected within a predetermined time and the second storing step within the predetermined time in the history of the result of the first selection. The first interleave rule may be switched to the second interleave rule when the difference from the number of times the step is selected becomes greater than a first predetermined number.
  • the bias in the first selection can be suppressed by switching the interleave rule. For example, when the difference in the number of times each storage step is selected within a predetermined period of time becomes large, it can be determined that the first selection is biased.
  • switching from the first interleave rule to the second interleave rule based on a history of the plurality of first logical addresses included in the plurality of data storage instructions. may Specifically, in the first storage path selection step, when the history of the plurality of first logical addresses has a predetermined pattern, the transition from the first interleave rule to the second interleave rule is performed.
  • the switching and the predetermined pattern may be set before starting the access operation to the first memory or the second memory.
  • the processing in the first storing step may be stopped and switched to the processing in the second storing step.
  • the predetermined condition is that the number of the unexecuted first storing steps after the first selection in the first storing path selection step is equal to the number of the unexecuted second storing steps. It may be greater than the number of steps by a second predetermined number.
  • the processing of a certain storage step when the processing of a certain storage step is being executed, it is possible to stop the processing of the certain storage step based on a predetermined condition and execute the processing of another storage step. Specifically, if the number of unexecuted storage steps increases after the first selection (that is, if there is a bias in the execution of the storage steps), the processing of the storage step is stopped. can be used to process another storage step. Therefore, bias in execution of the storing step can be suppressed.
  • the first storing step is a second storing path selection step of making a second selection of whether to continue the processing in the first storing step or switch to the processing in the second storing step.
  • the second selection may be made based on a third interleaving rule or a fourth interleaving rule.
  • the third interleaving rule prefers choosing to continue processing in the first storing step rather than choosing to switch to processing in the second storing step.
  • the fourth interleaving rule selects to continue processing in the first storing step rather than switching to processing in the second storing step. It may also be a rule that reduces the
  • the second selection of whether to continue the processing of a certain storage step or switch to the processing of another storage step can be made based on the interleave rule.
  • the interleaving rule can increase or decrease the number of selections for continuing the processing of a certain storage step, thereby suppressing bias in the execution of the storage step.
  • the number of the first storage steps that have not been performed is the number of the second storage steps that have not been performed.
  • a switch may be made from the third interleaving rule to the fourth interleaving rule when the number of storage steps is increased by a second predetermined number.
  • the second storage path selection step based on the state of accessibility to the first memory and the state of accessibility to the second memory, from the third interleave rule to the fourth interleave rule. You may switch to the interleaved rule.
  • the state of accessibility to the first memory and the state of accessibility to the second memory may be based on whether it is during a refresh period.
  • the state of accessibility to the first memory and the state of accessibility to the second memory may be based on whether it is during a retraining period.
  • the third interleave rule is changed to the fourth interleave rule. You can switch to rules.
  • the first storage path selection step further includes the first logical address included in the data storage instruction, and the first storage path based on any one of the first interleave rule and the second interleave rule. It may include a first address conversion recording step of recording combination information whether selection has been made. Alternatively, for example, the first storage path selection step further includes a second address conversion recording step of recording combination information of the first logical address and the assigned physical address included in the data storage instruction. may contain.
  • Such combination information can be stored for when reading data.
  • a data readout that issues a data readout instruction including the second logical address, which instructs to read one piece of data from the first memory or the second memory according to one second logical address.
  • an instruction step ; and a third selection of whether to execute either the first read step or the second read step in response to the data read instruction based on the second logical address included in the data read instruction.
  • a read path selection step wherein the first read step is a step of reading the one data from the first memory through the first path in response to the data read instruction.
  • the second reading step is a step of reading the one data from the second memory through the second path in response to the data read instruction;
  • the third selection may be made based on the combination information corresponding to the first logical address equal to two logical addresses.
  • the stored data when reading data, the stored data can be read by using the combination information stored when the data was stored.
  • a memory access control device stores one piece of data according to one first logical address in a first memory or a second memory having a physical address different from that of the first memory.
  • a data storage instruction unit for issuing a data storage instruction including the first logical address; and storing the one piece of data in the first memory through a first path according to the data storage instruction.
  • a first storage unit for storing, a second storage unit for storing the one data in the second memory through a second path according to the data storage instruction, and a data storage unit according to the data storage instruction , a first storage that performs a first selection of storage by the first storage unit or storage by the second storage unit based on the first logical address included in the data storage instruction; and a path selection section, wherein the first storage path selection section performs the first selection based on a first interleave rule or a second interleave rule for allocating a physical address to the first logical address. , making the first selection based on the first interleaving rule for one or more of the data storage instructions, and performing the first selection for one or more of the subsequent data storage instructions based on the second interleaving rule to make the first selection.
  • FIG. 1 is a configuration diagram showing an example of the memory access control device 1 according to the embodiment.
  • the memory access control device 1 divides the memory into a plurality of areas (banks) that can operate simultaneously, and appropriately distributes access to the memory to these areas, thereby improving the access efficiency as a whole. It is a device that is performed. To simplify the explanation, two areas of the storage devices 60a and 60b will be focused on as the plurality of areas, but accesses may be distributed among three or more areas.
  • the memory access control device 1 includes a master 10, a storage device selection unit 20, storage device control units 30a and 30b, a command monitoring unit 40, and rule holding units 51 and 52.
  • the memory access control device 1 may or may not include the storage devices 60a and 60b.
  • the memory access control device 1 is a computer including a processor, memory, and the like.
  • the memory is ROM (Read Only Memory), RAM (Random Access Memory), etc., and can store programs executed by the processor.
  • Master 10, storage device selection unit 20, storage device control units 30a and 30b, and command monitoring unit 40 are implemented by a processor that executes programs stored in memory.
  • the rule holding units 51 and 52 are implemented by memories, registers, and the like. Note that the rule holding units 51 and 52 may be memories separate from the memory in which the programs are stored.
  • the storage device 60a is a memory area called a bank, and is an example of a first memory.
  • the storage device 60b is a bank different from the storage device 60a, and is an example of a second memory.
  • the storage device 60a and the storage device 60b have different physical addresses.
  • the master 10 is an example of a data storage instruction unit that executes a data storage instruction step of issuing a data storage instruction instructing the storage device 60a or the storage device 60b to store one piece of data according to one first logical address. is.
  • the data storage instruction includes the first logical address.
  • the master 10 executes a data readout instruction step of issuing a data readout instruction to read out one piece of data from the storage device 60a or the storage device 60b according to one second logical address. is an example.
  • the data read instruction includes the second logical address.
  • the storage device selection unit 20 is a component that converts a logical address into a physical address and determines an access route. Specifically, in response to the data storage instruction, the storage device selection unit 20 causes the storage device control unit 30a to perform storage (first storage step) and storage based on the first logical address included in the data storage instruction.
  • the storage device selection unit 20 performs the first selection based on the first interleave rule or the second interleave rule for allocating the physical address to the first logical address held in the rule holding unit 51 .
  • the storage device selection unit 20 performs a first selection based on a first interleave rule for one or more data storage instructions, and performs a first selection based on a second interleave rule for one or more subsequent data storage instructions. A first selection is made based on In addition, in response to the data read instruction, the storage device selection unit 20 causes the storage device control unit 30a to read (first read step) based on the second logical address included in the data read instruction.
  • 30b is an example of a readout route selection unit that executes a readout route selection step for selecting which of the readouts (second readout step) is to be executed.
  • the storage device control unit 30a is an example of a first storage unit that executes a first storage step of storing one piece of data in the storage device 60a via a first path in response to a data storage instruction.
  • the first path is a path that connects the storage device selection unit 20 and the storage device 60a via the storage device control unit 30a.
  • Storage device control unit 30a is an example of a first reading unit that executes a first reading step of reading one piece of data from storage device 60a via a first path in response to a data reading instruction.
  • the storage device control unit 30a includes a command distribution unit 31a and a command storage unit 32a, and the storage device control unit 30a includes the command distribution unit 31a.
  • Processing in the storage step can be discontinued and switched to processing in the second storage step.
  • the predetermined condition is that after the first selection in the first storage path selection step, the number of unexecuted first storing steps is a second predetermined number greater than the number of unexecuted second storing steps. The only thing is to get bigger.
  • the command distribution unit 31a executes a second storage path selection step of selecting (referred to as a second selection) whether to continue processing in the storage device control unit 30a or switch to processing in the storage device control unit 30b. It is an example of a second storage path selection unit that performs storage path selection.
  • the command distribution unit 31 a performs the second selection based on the third interleave rule or the fourth interleave rule held in the rule holding unit 52 .
  • An access command is temporarily stored in the command storage unit 32a.
  • An access command is stored in the command storage section 32a when the command distribution section 31a selects to continue the processing in the storage device control section 30a.
  • the command storage unit 32a executes the access command when it becomes executable, thereby storing the data in the storage device 60a, and deletes the access command from the command storage unit 32a when the execution of the access command is completed.
  • the command storage unit 32a executes an access command depending on whether access to the storage device 60a is permitted or not.
  • the state of access availability is based on whether the storage device 60a is in the refresh period or whether the storage device controller 30a is in the retraining period for the storage device 60a.
  • the storage device control unit 30a adjusts the timing, etc., but normal access to the target storage device 60a is disabled.
  • access commands stored in the command storage section 32a may not be executed, and access commands may accumulate in the command storage section 32a.
  • the storage device control unit 30b is an example of a second storage unit that executes a second storage step of storing one piece of data in the storage device 60b via a second path in response to a data storage instruction.
  • the second path is a path that connects the storage device selection unit 20 and the storage device 60b via the storage device control unit 30b.
  • Storage device control unit 30b is an example of a second reading unit that executes a second reading step of reading one piece of data from storage device 60b via a second path in response to a data reading instruction.
  • the storage device control unit 30b includes a command distribution unit 31b and a command storage unit 32b, and the storage device control unit 30b includes the command distribution unit 31b.
  • Processing in the storage step can be discontinued and switched to processing in the first storage step.
  • the predetermined condition is that after the first selection in the second storage path selection step, the number of unexecuted second storing steps is a second predetermined number greater than the number of unexecuted first storing steps. The only thing is to get bigger.
  • the command distribution unit 31b performs a second storage path selection step for performing a second selection of whether to continue processing in the storage device control unit 30b or switch to processing in the storage device control unit 30a. It is an example of a route selection part.
  • the command distribution unit 31b makes a second selection based on the third interleave rule or the fourth interleave rule held in the rule holding unit 52.
  • An access command is temporarily stored in the command storage unit 32b.
  • An access command is stored in the command storage section 32b when the command distribution section 31b selects to continue the processing in the storage device control section 30b.
  • the command storage unit 32b executes the access command when it becomes executable, thereby storing the data in the storage device 60b, and deletes the access command from the command storage unit 32b when the execution of the access command is completed.
  • the command storage unit 32b executes an access command depending on whether access to the storage device 60b is permitted or not.
  • the state of accessibility is based on whether the storage device 60b is in the refresh period or whether the storage device 60b is in the retraining period. When the storage device 60b is in the refresh period or the retraining period, the access commands stored in the command storage section 32b may not be executed and the access commands may accumulate in the command storage section 32b.
  • the command monitoring unit 40 monitors the result of the first selection by the storage device selection unit 20. Specifically, the command monitoring unit 40 monitors the storage device control units 30a and 30b to determine whether execution of the first storage step has been selected by the storage device selection unit 20 or whether the second storage step has been performed. to monitor the results of what was selected to run. Then, the command monitoring unit 40 determines the optimum interleaving rule based on the history of the results of the first selection, and stores the determined interleaving rule in the rule holding unit 51 . For example, if another interleave rule is stored in the rule holding unit 51, the interleave rule is rewritten to the determined interleave rule.
  • the command monitoring unit 40 monitors a plurality of first logical addresses included in a plurality of data storage instructions. Specifically, the command monitoring unit 40 monitors the plurality of first logical addresses included in the data storage instructions sequentially issued by the master 10 by monitoring the storage device control units 30a and 30b. Then, the command monitoring unit 40 determines the optimum interleaving rule based on the history of multiple logical addresses, and stores the determined interleaving rule in the rule holding unit 51 .
  • the storage device selection unit 20 changes the interleave rule used when performing the first selection to the first interleave rule. can be switched from the first interleaving rule to the second interleaving rule.
  • the command monitoring unit 40 monitors the number of unexecuted first storing steps and the number of unexecuted second storing steps. Specifically, the command monitoring unit 40 monitors the number of unexecuted access commands for each of the command storage units 32a and 32b by monitoring the storage device control units 30a and 30b. Then, the command monitoring unit 40 determines the optimum interleaving rule based on the number of unexecuted access commands, and stores the determined interleaving rule in the rule holding unit 52 .
  • the command monitoring unit 40 monitors whether or not the storage device 60a can be accessed and whether or not the storage device 60b can be accessed. Specifically, the command monitoring unit 40 monitors the storage device control units 30a and 30b to determine whether the command storage unit 32a can access the storage device 60a and whether the command storage unit 32b can access the storage device 60b. Monitor the availability status. Then, the command monitoring unit 40 determines the optimum interleaving rule based on the status of each access, and stores the determined interleaving rule in the rule holding unit 52 .
  • the command monitoring unit 40 monitors the chip temperature of the storage device 60a and the chip temperature of the storage device 60b. Although not shown, specifically, the command monitoring unit 40 monitors the storage devices 60a and 60b (or monitors the output of a sensor that senses the chip temperature of the storage devices 60a and 60b). ), monitor the chip temperature of the storage device 60a and the chip temperature of the storage device 60b. Then, the command monitoring unit 40 determines the optimum interleaving rule based on each chip temperature, and stores the determined interleaving rule in the rule holding unit 52 .
  • the command distribution units 31a and 31b change the interleave rule used when making the second selection to the fourth interleave rule. It is possible to switch from an interleaving rule of 3 to a 4th interleaving rule.
  • the rule holding unit 51 holds the interleaving rule determined by the command monitoring unit 40.
  • one interleave rule is called a first interleave rule
  • an interleave rule different from the first interleave rule is called a second interleave rule.
  • the first interleave rule and the second interleave rule are rules for assigning physical addresses to the first logical addresses.
  • the rule holding unit 52 holds the interleaving rule determined by the command monitoring unit 40.
  • one interleave rule is called the third interleave rule
  • an interleave rule different from the third interleave rule is called the fourth interleave rule.
  • the third interleave rule for the command distribution unit 31a is more likely to choose to continue processing in the first storage step than to choose to switch to processing in the second storage step. It is a rule to let Specifically, the third interleaving rule includes a rule such that the processing in the first storing step is performed three times and the processing in the second storing step is performed twice, or a rule that the processing in the second storing step is performed twice. The rule is that the processing in the second storage step is performed once, while the processing in the step is performed five times.
  • the fourth interleaving rule for the command distribution unit 31a is to choose to continue processing in the first storage step less than to choose to switch to processing in the second storage step. It is a rule to let Specifically, the fourth interleaving rule is a rule such that the processing in the first storing step is performed twice, while the processing in the second storing step is performed three times, or The rule is that the processing in the second storage step is performed five times, while the processing in the step is performed once.
  • the third interleave rule for the command distribution unit 31b is to select continuation of the process in the second storage step more often than to select switching to the process in the first storage step.
  • the fourth interleave rule for the command distribution unit 31b is to select continuation of the processing in the second storage step and to select switching to the processing in the first storage step. It is a rule that makes less than
  • FIG. 2 is a flowchart showing an example of a memory access method according to the embodiment. Since the memory access method is a method executed by the memory access control device 1, FIG. 2 is also a flowchart showing an example of the operation of the memory access control device 1 according to the embodiment.
  • the master 10 issues a data storage instruction instructing the storage device 60a or storage device 60b to store one piece of data according to one first logical address (step S11: data storage instruction step).
  • the storage device selection unit 20 selects which of the first storage step and the second storage step is to be executed based on the first logical address included in the data storage instruction.
  • a first selection is made (step S12: first storage route selection step).
  • the storage device selection unit 20 performs the first selection based only on one first logical address included in one data storage instruction as the logical address.
  • the storage device selection unit 20 may perform the first selection based on a plurality of first logical addresses included in a plurality of data storage instructions as the logical addresses.
  • the storage device selector 20 makes the first selection based on the first interleave rule or the second interleave rule.
  • the storage device selection unit 20 first performs the first selection based on the first interleaving rule.
  • the storage device control unit 30a or 30b executes the selected storage step (step S13).
  • the storage device control section 30a executes the first storing step.
  • the first storing step is a step of storing one piece of data in the storage device 60a through the first route in response to a data storing instruction.
  • the storage device control unit 30b executes the second storing step.
  • the second storing step is a step of storing one piece of data in the storage device 60b through the second route in response to the data storing instruction.
  • the command monitoring unit 40 determines whether or not the condition for switching the interleave rule is satisfied (step S14). Conditions for switching interleave rules will be described later.
  • step S14 If it is determined that the condition for switching the interleave rule is not satisfied (No in step S14), the interleave rule is not switched, the next data storage instruction is issued in step S11, and the same interleave rule as the previous one (for example, the first interleave rule is used). The processing after step S12 is performed using the rule).
  • step S14 If it is determined that the condition for switching the interleave rule is satisfied (Yes in step S14), the storage device selection unit 20 switches the interleave rule (step S15), and in step S11, the next data storage instruction is issued, which is different from the previous one.
  • the processing after step S12 is performed using an interleave rule (for example, the second interleave rule).
  • the storage device selection unit 20 performs the first selection based on the first interleave rule for one or more data storage instructions, and the second selection for the following one or more data storage instructions.
  • a first selection is made based on the interleaving rules of .
  • a second selection is made between continuing the processing in the first storing step and switching to the processing in the second storing step, which will be explained in FIG.
  • FIG. 3 is a flowchart showing a specific example of the memory access method according to the embodiment. Note that FIG. 3 is also a flowchart showing a specific example of the operation of the memory access control device 1 according to the embodiment. Steps S21 to S24 of part A shown in FIG. 3 are processes performed by the storage device selection unit 20, and steps S25 to S29 of part B are performed by the storage device control unit 30a or 30b (specifically, command allocation). 31a or 31b).
  • the storage device selection unit 20 receives the access command issued by the master 10 (step S21).
  • the storage device selection unit 20 determines whether or not the interleave rule held in the rule holding unit 51 has been changed by the command monitoring unit 40 (step S22). For example, assume that the rule holding unit 51 holds a first interleave rule.
  • the command monitoring unit 40 determines that the difference between the number of times the first storage step is selected within a predetermined time and the number of times the second storage step is selected within a predetermined time in the history of the results of the first selection is the first is greater than a predetermined number, the interleave rule held in the rule holding unit 51 may be changed from the first interleave rule to the second interleave rule. That is, if the selection of either the first storage step or the second storage step by the storage device selection unit 20 is biased within a predetermined time, the first interleave rule is changed to the second interleave rule.
  • the command monitoring unit 40 sets the interleaving rule held in the rule holding unit 51 to the first may be changed from the first interleave rule to the second interleave rule.
  • the history of a plurality of first logical addresses is a list of one first logical address included in each of the data storage instructions sequentially issued from the master 10, arranged in order of issuance, and included in the latest data storage instruction. This is the history up to the first logical address that is stored.
  • the history of a plurality of first logical addresses includes, for example, logical addresses such as "...000”, “...001", “...010", and "...011".
  • the predetermined pattern is, for example, a pattern in specific bits of the plurality of first logical addresses, such as a pattern in the least significant bit.
  • a specific example of the predetermined pattern is a pattern in which the least significant bits of the plurality of first logical addresses are 0, 0, 0, 0, .
  • a first interleaving rule may choose to perform a first storing step when the least significant bit has a value of 0 and to perform a second storing step when the least significant bit has a value of 1.
  • the rule is to select
  • the second interleaving rule selects to perform the first storing step when the value of the bit immediately above the least significant bit is 0 and the value of the bit immediately above the least significant bit is 1.
  • the rule is that sometimes we choose to perform the second storage step.
  • the interleave rule held in the rule holding unit 51 is changed from the first interleave rule to the second interleave rule.
  • the bit above the least significant bit of the plurality of first logical addresses is 0, 1, 0, 1, . . . storage steps can be evenly selected.
  • the predetermined pattern is set before starting an access operation to the storage device 60a or 60b.
  • a predetermined pattern and interleave rule are set according to the type of access mode, and the interleave rule is switched by detecting access imbalance. .
  • the storage device selection unit 20 determines that the interleave rule held in the rule holding unit 51 has been changed by the command monitoring unit 40 (Yes in step S22), the storage device selection unit 20 uses the new rule (for example, the second interleave rule). A storage device to be accessed is selected (step S23).
  • the storage device selector 20 switches from the first interleave rule to the second interleave rule based on the history of the results of the first selection. Specifically, the storage device selection unit 20 selects the number of times the first storage step is selected within a predetermined period of time and the number of times the second storage step is selected within the predetermined period of time in the history of the results of the first selection. If the difference becomes greater than a first predetermined number, a switch will be made from the first interleaving rule to the second interleaving rule.
  • the storage device selector 20 changes the interleave rule from the first interleave rule to the second interleave rule based on the history of the plurality of first logical addresses included in the plurality of data storage instructions. Switch to the interleaved rule. Specifically, the storage device selector 20 switches from the first interleave rule to the second interleave rule when the history of the plurality of first logical addresses has a predetermined pattern.
  • the storage device selection unit 20 determines that the interleave rule held in the rule holding unit 51 has not been changed by the command monitoring unit 40 (No in step S22), the conventional rule (for example, the first interleave rule) is used. Then, the storage device to be accessed is selected (step S24).
  • the conventional rule for example, the first interleave rule
  • the command distribution unit 31a or 31b receives an access command from the storage device selection unit 20 (step S25).
  • the storage device selection unit 20 selects the first storage step as the first selection, and the command distribution unit 31a receives an access command.
  • the command distribution unit 31a determines whether or not the interleave rule held in the rule holding unit 52 has been changed by the command monitoring unit 40 (step S26). For example, assume that the rule holding unit 52 holds a third interleave rule.
  • the command monitoring unit 40 determines that the number of unexecuted first storage steps is a second predetermined number greater than the number of unexecuted second storage steps.
  • the interleave rule held in the rule holding unit 52 may be changed from the third interleave rule to the fourth interleave rule. That is, when the number of unexecuted access commands stored in the command storage unit 32a is larger than the number of unexecuted access commands stored in the command storage unit 32b by a second predetermined number, the The interleaving rule of 3 may be changed to the interleaving rule of 4th.
  • the command monitoring unit 40 changes the interleave rule held in the rule holding unit 52 from the third interleave rule to You may change to the 4th interleaving rule.
  • the state of access to the storage device 60a is during the refresh period or the retraining period
  • the state of access to the storage device 60b is the refresh period or the retraining period. If not, it may change from the third interleaving rule to the fourth interleaving rule.
  • the access command stored in the command storage unit 32a cannot be executed to store data in the storage device 60a. There is a possibility that the number of stored unexecuted access commands is larger than the number of unexecuted access commands stored in the command storage unit 32b. In such cases, the third interleaving rule may be changed to the fourth interleaving rule.
  • the command monitoring unit 40 changes the interleave rule held in the rule holding unit 52 from the third interleave rule to the third interleave rule.
  • 4 interleave rule may be used.
  • the chip temperature of the storage device 60a is high, the access commands stored in the command storage unit 32a are being executed with high frequency, and access commands may continue to be stored in the command storage unit 32a one after another. Therefore, the number of unexecuted access commands stored in the command storage unit 32a may be larger than the number of unexecuted access commands stored in the command storage unit 32b. In such cases, the third interleaving rule may be changed to the fourth interleaving rule.
  • step S26 access is made based on the new rule (for example, the fourth interleave rule).
  • a storage device to be used is selected (step S27). For example, in this case, the command distribution unit 31a does not store the access command in the command storage unit 32a, but stores the access command in the command storage unit 32b (step S29).
  • the command distribution unit 31a By changing the interleaving rule by the command monitoring unit 40, the command distribution unit 31a increases the number of unexecuted first storage steps after the first selection by the storage device selection unit 20 to the number of unexecuted second storage steps. If the number of steps is greater than the number of steps by a second predetermined number, then the third interleaving rule will be switched to the fourth interleaving rule. Alternatively, by changing the interleave rule by the command monitoring unit 40, the command distribution unit 31a switches from the third interleave rule to the fourth interleave rule based on the state of access permission to the storage device 60a and the state of access permission to the storage device 60b.
  • the command distribution unit 31a switches from the third interleave rule to the fourth interleave rule. Switch to the interleaved rule.
  • the command distribution unit 31a determines that the interleave rule held in the rule holding unit 52 has not been changed by the command monitoring unit 40 (No in step S26).
  • the command distribution unit 31a follows the conventional rule (for example, the third interleave rule).
  • a storage device to be accessed is selected (step S28). For example, in this case, the command distribution unit 31a continues storing access commands in the command storage unit 32a (step S29).
  • the command distribution units 31a and 31b select which of the storage devices 60a and 60b to store the data. Explain why you are choosing again.
  • the command distribution units 31a and 31b may be unnecessary.
  • the storage device controllers 30a and 30b may receive access commands from a plurality of masters. There is a risk that the execution of the storage step will be biased with the device control unit 30b, resulting in a decrease in access efficiency.
  • access to the storage devices 60a and 60b may not be possible (during the refresh period or during the retraining period), or for some other reason, the execution of the storage step may be biased, and the access efficiency may decrease.
  • the command distribution units 31a and 31b also select which of the storage devices 60a and 60b to store the data.
  • the status of whether or not access is permitted can be determined, for example, from the status of each of the storage device control units 30a and 30b.
  • the temperature of memory chips with high access frequency will be relatively high. By knowing the chip temperature, access imbalance can be determined. .
  • the storage device selection unit 20 executes a second address conversion recording step of recording combination information of the first logical address included in the data storage instruction and the assigned physical address.
  • the second address conversion recording step of recording the combination information of the first logical address and the assigned physical address included in the data storage instruction may be executed by the command distribution units 31a and 31b.
  • FIG. 4 is a flowchart showing an example of read processing in the memory access method according to the embodiment.
  • FIG. 4 is also a flowchart showing an example of read operation of the memory access control device 1 according to the embodiment.
  • the master 10 issues a data read instruction to read one piece of data from the storage device 60a or the storage device 60b according to one second logical address (step S31: data read instruction step).
  • storage device selection unit 20 determines which of the first read step and the second read step is to be executed based on the second logical address included in the data read instruction.
  • a third selection is made (step S32: reading route selection step).
  • the storage device selection unit 20 performs the third selection based on the combination information corresponding to the first logical address equal to the second logical address. That is, when data is read according to the second logical address equal to the first logical address at the time of data storage, the information at the time of data storage is referred to.
  • the storage device control unit 30a or 30b executes the selected read step (step S33).
  • the storage device control unit 30a executes the first read step.
  • the first read step is a step of reading one piece of data from storage device 60a through the first path in response to a data read instruction.
  • the storage device control section 30b executes the second reading step.
  • the second reading step is a step of reading one piece of data from storage device 60b through the second path in response to a data read instruction.
  • the interleave rule since the interleave rule is switched, various access modes can be supported. Further, the first selection of which of the first storing step and the second storing step is to be performed is made based on the interleave rule to be switched, so that bias in the first selection can be suppressed. Further, after the first selection, a second selection of whether to continue the processing in the first storing step or switch to the processing in the second storing step is performed, thereby suppressing bias in the execution of the storing step. can. In this way, access efficiency can be improved.
  • the processing in the first storing step is stopped, and the example is switched to the processing in the second storing step. good too.
  • the memory access control device 1 does not have to include the command distribution units 31a and 31b.
  • the present disclosure can be implemented as a program for causing a processor to execute the steps included in the memory access method.
  • the present disclosure can be implemented as a non-temporary computer-readable recording medium such as a CD-ROM recording the program.
  • each step is executed by executing the program using hardware resources such as the CPU, memory, and input/output circuits of the computer. . That is, each step is executed by the CPU obtaining data from a memory, an input/output circuit, or the like, performing an operation, or outputting the operation result to the memory, an input/output circuit, or the like.
  • each component included in the memory access control device 1 may be configured with dedicated hardware, or realized by executing a software program suitable for each component.
  • Each component may be realized by reading and executing a software program recorded in a recording medium such as a hard disk or a semiconductor memory by a program execution unit such as a CPU or processor.
  • a part or all of the functions of the memory access control device 1 according to the above embodiment are typically implemented as an LSI, which is an integrated circuit. These may be made into one chip individually, or may be made into one chip so as to include part or all of them. Further, circuit integration is not limited to LSIs, and may be realized by dedicated circuits or general-purpose processors.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI may be used.
  • the present disclosure also includes various modifications in which a person skilled in the art makes modifications to each embodiment of the present disclosure, as long as they do not deviate from the gist of the present disclosure.
  • the present disclosure can be applied to devices in which memory interleaving is performed.
  • 1 memory access control device 10 master 20 storage device selection unit 30a, 30b storage device control unit 31a, 31b command distribution unit 32a, 32b command storage unit 40 command monitoring unit 51, 52 rule holding unit 60a, 60b storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

メモリアクセス方法は、第1のメモリあるいは第2のメモリに、1つの第1の論理アドレスに従って1つのデータを格納することを指示するデータ格納指示を発行するデータ格納指示ステップ(ステップS11)と、データ格納指示に対して、当該データ格納指示に含まれる第1の論理アドレスに基づいて第1の格納ステップおよび第2の格納ステップのいずれを実行するかの第1選択を行う第1の格納経路選択ステップ(ステップS12)と、を含み、第1の格納経路選択ステップ(ステップS12)では、第1のインターリーブルールあるいは第2のインターリーブルールに基づいて第1選択を行い、1または複数のデータ格納指示に対して、第1のインターリーブルールに基づいて第1選択を行い、続く1または複数のデータ格納指示に対して、第2のインターリーブルールに基づいて第1選択を行う。

Description

メモリアクセス方法およびメモリアクセス制御装置
 本開示は、メモリアクセス方法およびメモリアクセス制御装置に関する。
 メモリへのアクセスの効率化のための技術としてメモリインターリーブという技術がある。メモリインターリーブは、メモリを同時動作可能な複数の領域に分割し、メモリへのアクセスを適切にそれらの領域に振り分けることで、全体としてのアクセス効率を向上させる、という技術である。
 例えば、特許文献1には、アクセスアドレス(論理アドレス)の下位数ビットを参照し、下位数ビットの情報から振り分け先の領域を決定するという技術が開示されている。例えば、下位3ビットが参照され、3ビットの8通りの情報から8つの領域へのアクセスの振り分けが行われる。この方式は実現が簡単であり、アクセス形態が連続アドレスに対するものであれば、意図通りに機能する。すなわち、アクセスを均等に各領域に振り分けることが可能である。
 しかしながら、アクセス形態が連続アドレスに対するものではなく、例えばX、X+8、X+16、X+24、・・・といったように、アドレス差が8ずつ増加するようなアドレス群に対するものである場合、上述した下位3ビットの8通りの情報とアクセス領域とを対応させる規則では、常に同じ領域へアクセスすることになってしまう。
 これに対して、例えば、特許文献2には、アクセスアドレス(論理アドレス)から物理アドレスへの変換ルールを工夫する技術が開示されている。
特開平5-210579号公報 特許第4771654号公報
 しかしながら、上記特許文献2に開示された変換ルールは、固定のルールであり、様々なアクセス形態に適用できるものではなく、改善の余地がある。
 そこで、本開示は、様々なアクセス形態に対応できるメモリアクセス方法などを提供する。
 本開示に係るメモリアクセス方法は、第1のメモリ、あるいは前記第1のメモリとは物理アドレスが異なる第2のメモリに、1つの第1の論理アドレスに従って1つのデータを格納することを指示する、前記第1の論理アドレスを含むデータ格納指示を発行するデータ格納指示ステップと、前記データ格納指示に対して、当該データ格納指示に含まれる前記第1の論理アドレスに基づいて第1の格納ステップおよび第2の格納ステップのいずれを実行するかの第1選択を行う第1の格納経路選択ステップと、を含み、前記第1の格納ステップは、前記データ格納指示に応じて、第1の経路を経て前記第1のメモリに前記1つのデータを格納するステップであり、前記第2の格納ステップは、前記データ格納指示に応じて、第2の経路を経て前記第2のメモリに前記1つのデータを格納するステップであり、前記第1の格納経路選択ステップでは、前記第1の論理アドレスに対し物理アドレスを割り当てる第1のインターリーブルールあるいは第2のインターリーブルールに基づいて前記第1選択を行い、1または複数の前記データ格納指示に対して、前記第1のインターリーブルールに基づいて前記第1選択を行い、続く1または複数の前記データ格納指示に対して、前記第2のインターリーブルールに基づいて前記第1選択を行うこと、を特徴とする。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本開示の一態様に係るメモリアクセス方法などによれば、様々なアクセス形態に対応できる。
図1は、実施の形態に係るメモリアクセス制御装置の一例を示す構成図である。 図2は、実施の形態に係るメモリアクセス方法の一例を示すフローチャートである。 図3は、実施の形態に係るメモリアクセス方法の具体例を示すフローチャートである。 図4は、実施の形態に係るメモリアクセス方法の読み出し時の処理の一例を示すフローチャートである。
 本開示の一態様に係るメモリアクセス方法は、第1のメモリ、あるいは前記第1のメモリとは物理アドレスが異なる第2のメモリに、1つの第1の論理アドレスに従って1つのデータを格納することを指示する、前記第1の論理アドレスを含むデータ格納指示を発行するデータ格納指示ステップと、前記データ格納指示に対して、当該データ格納指示に含まれる前記第1の論理アドレスに基づいて第1の格納ステップおよび第2の格納ステップのいずれを実行するかの第1選択を行う第1の格納経路選択ステップと、を含み、前記第1の格納ステップは、前記データ格納指示に応じて、第1の経路を経て前記第1のメモリに前記1つのデータを格納するステップであり、前記第2の格納ステップは、前記データ格納指示に応じて、第2の経路を経て前記第2のメモリに前記1つのデータを格納するステップであり、前記第1の格納経路選択ステップでは、前記第1の論理アドレスに対し物理アドレスを割り当てる第1のインターリーブルールあるいは第2のインターリーブルールに基づいて前記第1選択を行い、1または複数の前記データ格納指示に対して、前記第1のインターリーブルールに基づいて前記第1選択を行い、続く1または複数の前記データ格納指示に対して、前記第2のインターリーブルールに基づいて前記第1選択を行う。
 これによれば、インターリーブルールが切り替えられるため、様々なアクセス形態に対応できる。
 例えば、前記第1の格納経路選択ステップでは、前記第1選択の結果の履歴に基づいて、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替えてもよい。具体的には、前記第1の格納経路選択ステップでは、前記第1選択の結果の履歴における、所定時間内の前記第1の格納ステップを選択した回数と前記所定時間内の前記第2の格納ステップを選択した回数との差が第1の所定数より大きくなった場合、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替えてもよい。
 これによれば、データを物理アドレスの異なるいずれのメモリへ格納するかの第1選択の履歴から、第1選択に偏りがある場合にインターリーブルールを切り替えることで、第1選択の偏りを抑制できる。例えば、所定時間内の各格納ステップを選択した回数の差が大きくなった場合に、第1選択に偏りがあると判定することができる。
 例えば、前記第1の格納経路選択ステップでは、複数の前記データ格納指示に含まれる複数の前記第1の論理アドレスの履歴に基づいて、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替えてもよい。具体的には、前記第1の格納経路選択ステップでは、複数の前記第1の論理アドレスの履歴が所定のパターンとなっている場合に、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替え、前記所定のパターンは、前記第1のメモリあるいは前記第2のメモリへのアクセス動作の開始前に設定されていてもよい。
 これによれば、複数の第1の論理アドレスの履歴が事前に設定した所定のパターンになっている場合にインターリーブルールを切り替えることで、第1選択の偏りを抑制できる。
 例えば、前記第1の格納ステップでは、所定の条件に基づいて前記第1の格納ステップでの処理を中止し、前記第2の格納ステップでの処理へ切り替えてもよい。具体的には、前記所定の条件は、前記第1の格納経路選択ステップでの前記第1選択の後、実行されていない前記第1の格納ステップの数が実行されていない前記第2の格納ステップの数より第2の所定数だけ大きくなることであってもよい。
 これによれば、ある格納ステップの処理を実行しているときに、所定の条件に基づいて当該ある格納ステップの処理を中止して別の格納ステップの処理を実行することができる。具体的には、第1選択の後、当該ある格納ステップについて実行されていない数が大きくなった場合に(つまり、格納ステップの実行に偏りがある場合に)、当該ある格納ステップの処理を中止して別の格納ステップの処理を実行することができる。したがって、格納ステップの実行の偏りを抑制できる。
 例えば、前記第1の格納ステップは、前記第1の格納ステップでの処理を継続するか、前記第2の格納ステップでの処理へ切り替えるかの第2選択を行う、第2の格納経路選択ステップを含み、前記第2の格納経路選択ステップでは、第3のインターリーブルールあるいは第4のインターリーブルールに基づいて前記第2選択を行ってもよい。具体的には、前記第3のインターリーブルールは、前記第1の格納ステップでの処理を継続することを選択することを、前記第2の格納ステップでの処理への切り替えを選択することよりも多くさせるルールであり、前記第4のインターリーブルールは、前記第1の格納ステップでの処理を継続することを選択することを、前記第2の格納ステップでの処理への切り替えを選択することよりも少なくさせるルールであってもよい。
 これによれば、ある格納ステップの処理を継続するか別の格納ステップの処理へ切り替えるかの第2選択を、インターリーブルールに基づいて行うことができる。具体的には、インターリーブルールによって、ある格納ステップの処理を継続する選択を多くしたり少なくしたりすることができ、格納ステップの実行の偏りを抑制できる。
 例えば、前記第2の格納経路選択ステップでは、前記第1の格納経路選択ステップでの前記第1選択の後、実行されていない前記第1の格納ステップの数が実行されていない前記第2の格納ステップの数より第2の所定数だけ大きくなった場合、前記第3のインターリーブルールから前記第4のインターリーブルールに切り替えてもよい。
 これによれば、第1選択の後、各格納ステップについて、実行されていない数の差が大きくなった場合にインターリーブルールを切り替えることで、格納ステップの実行の偏りを抑制できる。
 例えば、前記第2の格納経路選択ステップでは、前記第1のメモリへのアクセス可否の状態および前記第2のメモリへのアクセス可否の状態に基づいて、前記第3のインターリーブルールから前記第4のインターリーブルールに切り替えてもよい。具体的には、前記第1のメモリへのアクセス可否の状態および前記第2のメモリへのアクセス可否の状態は、リフレッシュ期間中かどうかに基づいていてもよい。あるいは、前記第1のメモリへのアクセス可否の状態および前記第2のメモリへのアクセス可否の状態は、リトレーニング期間中かどうかに基づいてもいてもよい。
 これによれば、アクセスできないメモリがある場合、具体的には、リフレッシュ期間中のメモリがある場合、あるいは、リトレーニング期間中のメモリがある場合にインターリーブルールを切り替えることで、格納ステップの実行の偏りを抑制できる。
 例えば、前記第2の格納経路選択ステップでは、前記第1のメモリのチップ温度が前記第2のメモリのチップ温度より所定量だけ大きくなった場合、前記第3のインターリーブルールから前記第4のインターリーブルールに切り替えてもよい。
 これによれば、各メモリのチップ温度の差が大きくなった場合にインターリーブルールを切り替えることで、格納ステップの実行の偏りを抑制できる。
 例えば、前記第1の格納経路選択ステップは、さらに、前記データ格納指示に含まれる前記第1の論理アドレスと、前記第1のインターリーブルールおよび前記第2のインターリーブルールのいずれに基づいて前記第1選択を行ったか、の組み合わせ情報を記録する第1のアドレス変換記録ステップを含んでいてもよい。あるいは、例えば、前記第1の格納経路選択ステップは、さらに、前記データ格納指示に含まれる前記第1の論理アドレスと割り当てられた物理アドレスとの組み合わせ情報を記録する第2のアドレス変換記録ステップを含んでいてもよい。
 このような組み合わせ情報を、データを読み出すときのために記憶することができる。
 例えば、前記第1のメモリ、あるいは前記第2のメモリから、1つの第2の論理アドレスに従って1つのデータを読み出すことを指示する、前記第2の論理アドレスを含むデータ読出指示を発行するデータ読出指示ステップと、前記データ読出指示に対して、当該データ読出指示に含まれる前記第2の論理アドレスに基づいて第1の読出ステップおよび第2の読出ステップのいずれを実行するかの第3選択を行う読出経路選択ステップと、をさらに含み、前記第1の読出ステップは、前記データ読出指示に応じて、前記第1の経路を経て前記第1のメモリから前記1つのデータを読出しするステップであり、前記第2の読出ステップは、前記データ読出指示に応じて、前記第2の経路を経て前記第2のメモリから前記1つのデータを読出しするステップであり、前記読出経路選択ステップでは、前記第2の論理アドレスと等しい前記第1の論理アドレスに対応する前記組み合わせ情報に基づいて前記第3選択を行ってもよい。
 これによれば、データを読み出すときに、データを格納したときに記憶した組み合わせ情報を用いることで、格納したデータを読み出すことができる。
 本開示の一態様に係るメモリアクセス制御装置は、第1のメモリ、あるいは前記第1のメモリとは物理アドレスが異なる第2のメモリに、1つの第1の論理アドレスに従って1つのデータを格納することを指示する、前記第1の論理アドレスを含むデータ格納指示を発行するデータ格納指示部と、前記データ格納指示に応じて、第1の経路を経て前記第1のメモリに前記1つのデータを格納する第1の格納部と、前記データ格納指示に応じて、第2の経路を経て前記第2のメモリに前記1つのデータを格納する第2の格納部と、前記データ格納指示に対して、当該データ格納指示に含まれる前記第1の論理アドレスに基づいて前記第1の格納部による格納および前記第2の格納部による格納のいずれを実行するかの第1選択を行う第1の格納経路選択部と、を備え、前記第1の格納経路選択部は、前記第1の論理アドレスに対し物理アドレスを割り当てる第1のインターリーブルールあるいは第2のインターリーブルールに基づいて前記第1選択を行い、1または複数の前記データ格納指示に対して、前記第1のインターリーブルールに基づいて前記第1選択を行い、続く1または複数の前記データ格納指示に対して、前記第2のインターリーブルールに基づいて前記第1選択を行う。
 これによれば、様々なアクセス形態に対応できるメモリアクセス制御装置を提供できる。
 以下、実施の形態について、図面を参照しながら具体的に説明する。
 なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。
 (実施の形態)
 以下、実施の形態に係るメモリアクセス方法およびメモリアクセス制御装置について説明する。
 図1は、実施の形態に係るメモリアクセス制御装置1の一例を示す構成図である。
 メモリアクセス制御装置1は、メモリを同時動作可能な複数の領域(バンク)に分割し、メモリへのアクセスを適切にそれらの領域に振り分けることで、全体としてのアクセス効率を向上させる、メモリインターリーブが行われる装置である。以下では、説明を簡略化するために、複数の領域として記憶装置60aおよび60bの2つの領域に着目して説明するが、アクセスが3つ以上の領域に振り分けられてもよい。
 メモリアクセス制御装置1は、マスタ10、記憶装置選択部20、記憶装置制御部30aおよび30b、コマンド監視部40ならびにルール保持部51および52を備える。なお、メモリアクセス制御装置1は、記憶装置60aおよび60bを備えていてもよいし、備えていなくてもよい。メモリアクセス制御装置1は、プロセッサおよびメモリなどを含むコンピュータである。メモリは、ROM(Read Only Memory)およびRAM(Random Access Memory)などであり、プロセッサにより実行されるプログラムを記憶することができる。マスタ10、記憶装置選択部20、記憶装置制御部30aおよび30bならびにコマンド監視部40は、メモリに格納されたプログラムを実行するプロセッサによって実現される。ルール保持部51および52はメモリ、レジスタ群などにより実現される。なお、ルール保持部51および52は、プログラムが記憶されたメモリとは別のメモリであってもよい。
 記憶装置60aは、バンクとも呼ばれるメモリの領域であり、第1のメモリの一例である。記憶装置60bは、記憶装置60aとは異なるバンクであり、第2のメモリの一例である。記憶装置60aと記憶装置60bとは、物理アドレスが異なる。
 マスタ10は、記憶装置60aあるいは記憶装置60bに、1つの第1の論理アドレスに従って1つのデータを格納することを指示するデータ格納指示を発行するデータ格納指示ステップを実行するデータ格納指示部の一例である。データ格納指示には、第1の論理アドレスが含まれる。また、マスタ10は、記憶装置60aあるいは記憶装置60bから、1つの第2の論理アドレスに従って1つのデータを読み出すことを指示する、データ読出指示を発行するデータ読出指示ステップを実行するデータ読出指示部の一例である。データ読出指示には、第2の論理アドレスが含まれる。
 記憶装置選択部20は、論理アドレスを物理アドレスに変換して、アクセス経路を決定する構成要素である。具体的には、記憶装置選択部20は、データ格納指示に対して、当該データ格納指示に含まれる第1の論理アドレスに基づいて記憶装置制御部30aによる格納(第1の格納ステップ)および記憶装置制御部30bによる格納(第2の格納ステップ)のいずれを実行するかの選択(第1選択と呼ぶ)を行う第1の格納経路選択ステップを実行する第1の格納経路選択部の一例である。記憶装置選択部20は、ルール保持部51に保持された、第1の論理アドレスに対し物理アドレスを割り当てる第1のインターリーブルールあるいは第2のインターリーブルールに基づいて第1選択を行う。記憶装置選択部20は、1または複数のデータ格納指示に対して、第1のインターリーブルールに基づいて第1選択を行い、続く1または複数のデータ格納指示に対して、第2のインターリーブルールに基づいて第1選択を行う。また、記憶装置選択部20は、データ読出指示に対して、当該データ読出指示に含まれる第2の論理アドレスに基づいて記憶装置制御部30aによる読出(第1の読出ステップ)および記憶装置制御部30bによる読出(第2の読出ステップ)のいずれを実行するかの第3選択を行う読出経路選択ステップを実行する読出経路選択部の一例である。
 記憶装置制御部30aは、データ格納指示に応じて、第1の経路を経て記憶装置60aに1つのデータを格納する第1の格納ステップを実行する第1の格納部の一例である。第1の経路は、記憶装置選択部20と記憶装置60aとを記憶装置制御部30aを介して結ぶ経路である。また、記憶装置制御部30aは、データ読出指示に応じて、第1の経路を経て記憶装置60aから1つのデータを読出しする第1の読出ステップを実行する第1の読出部の一例である。
 また、記憶装置制御部30aは、コマンド振り分け部31aおよびコマンド格納部32aを備えており、記憶装置制御部30aは、コマンド振り分け部31aを備えていることで、所定の条件に基づいて第1の格納ステップでの処理を中止し、第2の格納ステップでの処理へ切り替えることができる。当該所定の条件は、第1の格納経路選択ステップでの第1選択の後、実行されていない第1の格納ステップの数が実行されていない第2の格納ステップの数より第2の所定数だけ大きくなることである。
 コマンド振り分け部31aは、記憶装置制御部30aでの処理を継続するか、記憶装置制御部30bでの処理へ切り替えるかの選択(第2選択と呼ぶ)を行う第2の格納経路選択ステップを実行する第2の格納経路選択部の一例である。コマンド振り分け部31aは、ルール保持部52に保持された、第3のインターリーブルールあるいは第4のインターリーブルールに基づいて第2選択を行う。
 コマンド格納部32aには、アクセスコマンドがいったん格納される。コマンド格納部32aには、コマンド振り分け部31aによって記憶装置制御部30aでの処理を継続すると選択されている際に、アクセスコマンドが格納される。コマンド格納部32aは、アクセスコマンドが実行可能になれば実行し、これによりデータが記憶装置60aに格納され、当該アクセスコマンドの実行が終了すればコマンド格納部32aから当該アクセスコマンドを消去する。例えば、コマンド格納部32aは、記憶装置60aへのアクセス可否の状態などに応じて、アクセスコマンドを実行する。アクセス可否の状態は、記憶装置60aがリフレッシュ期間中かどうか、あるいは、記憶装置制御部30aが記憶装置60aに対しリトレーニング期間中かどうかに基づく。このリトレーニング期間中は記憶装置制御部30aでのタイミング調整などが行われるが、対象となる記憶装置60aは通常のアクセスが不可となる。記憶装置60aがリフレッシュ期間中あるいはリトレーニング期間中である場合には、コマンド格納部32aに格納されたアクセスコマンドは実行されず、コマンド格納部32aにはアクセスコマンドがたまっていく場合がある。
 記憶装置制御部30bは、データ格納指示に応じて、第2の経路を経て記憶装置60bに1つのデータを格納する第2の格納ステップを実行する第2の格納部の一例である。第2の経路は、記憶装置選択部20と記憶装置60bとを記憶装置制御部30bを介して結ぶ経路である。また、記憶装置制御部30bは、データ読出指示に応じて、第2の経路を経て記憶装置60bから1つのデータを読出しする第2の読出ステップを実行する第2の読出部の一例である。
 また、記憶装置制御部30bは、コマンド振り分け部31bおよびコマンド格納部32bを備えており、記憶装置制御部30bは、コマンド振り分け部31bを備えていることで、所定の条件に基づいて第2の格納ステップでの処理を中止し、第1の格納ステップでの処理へ切り替えることができる。当該所定の条件は、第2の格納経路選択ステップでの第1選択の後、実行されていない第2の格納ステップの数が実行されていない第1の格納ステップの数より第2の所定数だけ大きくなることである。
 コマンド振り分け部31bは、記憶装置制御部30bでの処理を継続するか、記憶装置制御部30aでの処理へ切り替えるかの第2選択を行う第2の格納経路選択ステップを実行する第2の格納経路選択部の一例である。コマンド振り分け部31bは、ルール保持部52に保持された、第3のインターリーブルールあるいは第4のインターリーブルールに基づいて第2選択を行う。
 コマンド格納部32bには、アクセスコマンドがいったん格納される。コマンド格納部32bには、コマンド振り分け部31bによって記憶装置制御部30bでの処理を継続すると選択されている際に、アクセスコマンドが格納される。コマンド格納部32bは、アクセスコマンドが実行可能になれば実行し、これによりデータが記憶装置60bに格納され、当該アクセスコマンドの実行が終了すればコマンド格納部32bから当該アクセスコマンドを消去する。例えば、コマンド格納部32bは、記憶装置60bへのアクセス可否の状態などに応じて、アクセスコマンドを実行する。アクセス可否の状態は、記憶装置60bがリフレッシュ期間中かどうか、あるいは、記憶装置60bがリトレーニング期間中かどうかに基づく。記憶装置60bがリフレッシュ期間中あるいはリトレーニング期間中である場合には、コマンド格納部32bに格納されたアクセスコマンドは実行されず、コマンド格納部32bにはアクセスコマンドがたまっていく場合がある。
 コマンド監視部40は、記憶装置選択部20による第1選択の結果を監視する。具体的には、コマンド監視部40は、記憶装置制御部30aおよび30bを監視することで、記憶装置選択部20によって、第1の格納ステップを実行することが選択されたか、第2の格納ステップを実行することが選択されたかの結果を監視する。そして、コマンド監視部40は、第1選択の結果の履歴に基づいて、最適なインターリーブルールを決定し、決定したインターリーブルールをルール保持部51に格納する。例えば、ルール保持部51に別のインターリーブルールが格納されている場合には、決定されたインターリーブルールに書き換えられる。
 また、コマンド監視部40は、複数のデータ格納指示に含まれる複数の第1の論理アドレスを監視する。具体的には、コマンド監視部40は、記憶装置制御部30aおよび30bを監視することで、マスタ10によって順次発行されるデータ格納指示に含まれる複数の第1の論理アドレスを監視する。そして、コマンド監視部40は、複数の論理アドレスの履歴に基づいて、最適なインターリーブルールを決定し、決定したインターリーブルールをルール保持部51に格納する。
 例えば、ルール保持部51に保持されるインターリーブルールが第1のインターリーブルールから第2のインターリーブルールに書き換えられることで、記憶装置選択部20は、第1選択を行う際に用いるインターリーブルールを第1のインターリーブルールから第2のインターリーブルールに切り替えることができる。
 また、コマンド監視部40は、第1選択の後、実行されていない第1の格納ステップの数および実行されていない第2の格納ステップの数を監視する。具体的には、コマンド監視部40は、記憶装置制御部30aおよび30bを監視することで、コマンド格納部32aおよび32bのそれぞれについて、実行されていないアクセスコマンドの数を監視する。そして、コマンド監視部40は、それぞれの実行されていないアクセスコマンドの数の大小関係に基づいて、最適なインターリーブルールを決定し、決定したインターリーブルールをルール保持部52に格納する。
 また、コマンド監視部40は、記憶装置60aへのアクセス可否の状態および記憶装置60bへのアクセス可否の状態を監視する。具体的には、コマンド監視部40は、記憶装置制御部30aおよび30bを監視することで、コマンド格納部32aの記憶装置60aへのアクセス可否の状態およびコマンド格納部32bの記憶装置60bへのアクセス可否の状態を監視する。そして、コマンド監視部40は、それぞれのアクセス可否の状態に基づいて、最適なインターリーブルールを決定し、決定したインターリーブルールをルール保持部52に格納する。
 また、コマンド監視部40は、記憶装置60aのチップ温度および記憶装置60bのチップ温度を監視する。図示していないが、具体的には、コマンド監視部40は、記憶装置60aおよび60bを監視することで(あるいは、記憶装置60aおよび60bのチップ温度をセンシングするセンサなどの出力を監視することで)、記憶装置60aのチップ温度および記憶装置60bのチップ温度を監視する。そして、コマンド監視部40は、それぞれのチップ温度に基づいて、最適なインターリーブルールを決定し、決定したインターリーブルールをルール保持部52に格納する。
 例えば、ルール保持部51に保持されるインターリーブルールが第3のインターリーブルールから第4のインターリーブルールに書き換えられることで、コマンド振り分け部31aおよび31bは、第2選択を行う際に用いるインターリーブルールを第3のインターリーブルールから第4のインターリーブルールに切り替えることができる。
 ルール保持部51は、コマンド監視部40によって決定されたインターリーブルールを保持する。ここでは、コマンド監視部40によって決定される様々なインターリーブルールのうち、あるインターリーブルールを第1のインターリーブルールと呼び、第1のインターリーブルールとは異なるインターリーブルールを第2のインターリーブルールと呼んでいる。第1のインターリーブルールおよび第2のインターリーブルールは、第1の論理アドレスに対し物理アドレスを割り当てるルールである。
 ルール保持部52は、コマンド監視部40によって決定されたインターリーブルールを保持する。ここでは、コマンド監視部40によって決定される様々なインターリーブルールのうち、あるインターリーブルールを第3のインターリーブルールと呼び、第3のインターリーブルールとは異なるインターリーブルールを第4のインターリーブルールと呼んでいる。
 例えば、コマンド振り分け部31aに対する第3のインターリーブルールは、第1の格納ステップでの処理を継続することを選択することを、第2の格納ステップでの処理への切り替えを選択することよりも多くさせるルールである。第3のインターリーブルールは、具体的には、第1の格納ステップでの処理を3回行うのに対して、第2の格納ステップでの処理を2回行うといったルールや、第1の格納ステップでの処理を5回行うのに対して、第2の格納ステップでの処理を1回行うといったルールである。
 例えば、コマンド振り分け部31aに対する第4のインターリーブルールは、第1の格納ステップでの処理を継続することを選択することを、第2の格納ステップでの処理への切り替えを選択することよりも少なくさせるルールである。第4のインターリーブルールは、具体的には、第1の格納ステップでの処理を2回行うのに対して、第2の格納ステップでの処理を3回行うといったルールや、第1の格納ステップでの処理を1回行うのに対して、第2の格納ステップでの処理を5回行うといったルールである。
 なお、コマンド振り分け部31bに対する第3のインターリーブルールは、第2の格納ステップでの処理を継続することを選択することを、第1の格納ステップでの処理への切り替えを選択することよりも多くさせるルールであり、コマンド振り分け部31bに対する第4のインターリーブルールは、第2の格納ステップでの処理を継続することを選択することを、第1の格納ステップでの処理への切り替えを選択することよりも少なくさせるルールである。
 次に、図2を用いてメモリアクセス制御装置1の動作の概要を説明する。
 図2は、実施の形態に係るメモリアクセス方法の一例を示すフローチャートである。なお、メモリアクセス方法は、メモリアクセス制御装置1によって実行される方法であるため、図2は、実施の形態に係るメモリアクセス制御装置1の動作の一例を示すフローチャートでもある。
 まず、マスタ10は、記憶装置60aあるいは記憶装置60bに、1つの第1の論理アドレスに従って1つのデータを格納することを指示するデータ格納指示を発行する(ステップS11:データ格納指示ステップ)。
 次に、記憶装置選択部20は、データ格納指示に対して、当該データ格納指示に含まれる第1の論理アドレスに基づいて第1の格納ステップおよび第2の格納ステップのいずれを実行するかの第1選択を行う(ステップS12:第1の格納経路選択ステップ)。例えば、記憶装置選択部20は、論理アドレスとしては、1つのデータ格納指示に含まれる1つの第1の論理アドレスのみに基づいて、第1選択を行う。なお、記憶装置選択部20は、論理アドレスとしては、複数のデータ格納指示に含まれる複数の第1の論理アドレスに基づいて、第1選択を行ってもよい。ここで、記憶装置選択部20は、第1のインターリーブルールあるいは第2のインターリーブルールに基づいて第1選択を行う。ここでは、記憶装置選択部20は、まずは、第1のインターリーブルールに基づいて第1選択を行うとする。
 次に、記憶装置制御部30aまたは30bは、選択された格納ステップを実行する(ステップS13)。第1の格納ステップを実行するとの選択が行われた場合、記憶装置制御部30aは、第1の格納ステップを実行する。第1の格納ステップは、データ格納指示に応じて、第1の経路を経て記憶装置60aに1つのデータを格納するステップである。第2の格納ステップを実行するとの選択が行われた場合、記憶装置制御部30bは、第2の格納ステップを実行する。第2の格納ステップは、データ格納指示に応じて、第2の経路を経て記憶装置60bに1つのデータを格納するステップである。
 次に、コマンド監視部40は、インターリーブルールを切り替える条件を満たすか否かを判定する(ステップS14)。インターリーブルールを切り替える条件については、後述する。
 インターリーブルールを切り替える条件を満たさないと判定された場合(ステップS14でNo)、インターリーブルールが切り替えられず、ステップS11において次のデータ格納指示が発行され、前回と同じインターリーブルール(例えば第1のインターリーブルール)を用いてステップS12以降の処理が行われる。
 インターリーブルールを切り替える条件を満たすと判定された場合(ステップS14でYes)、記憶装置選択部20は、インターリーブルールを切り替え(ステップS15)、ステップS11において次のデータ格納指示が発行され、前回と異なるインターリーブルール(例えば第2のインターリーブルール)を用いてステップS12以降の処理が行われる。
 このように、記憶装置選択部20は、1または複数のデータ格納指示に対して、第1のインターリーブルールに基づいて第1選択を行い、続く1または複数のデータ格納指示に対して、第2のインターリーブルールに基づいて第1選択を行う。なお、ステップS13において、第1の格納ステップでの処理を継続するか、第2の格納ステップでの処理へ切り替えるかの第2選択が行われるが、これについては図3で説明する。
 次に、図3を用いてメモリアクセス制御装置1の動作の詳細を説明する。
 図3は、実施の形態に係るメモリアクセス方法の具体例を示すフローチャートである。なお、図3は、実施の形態に係るメモリアクセス制御装置1の動作の具体例を示すフローチャートでもある。図3に示されるAの部分のステップS21からステップS24は記憶装置選択部20での処理であり、Bの部分のステップS25からステップS29は記憶装置制御部30aまたは30b(具体的にはコマンド振り分け部31aまたは31b)での処理である。
 まず、記憶装置選択部20は、マスタ10が発行したアクセスコマンドを受信する(ステップS21)。
 次に、記憶装置選択部20は、ルール保持部51に保持されたインターリーブルールについて、コマンド監視部40による変更があるか否かを判定する(ステップS22)。例えば、ルール保持部51に第1のインターリーブルールが保持されているとする。
 例えば、コマンド監視部40は、第1選択の結果の履歴における、所定時間内の第1の格納ステップを選択した回数と所定時間内の第2の格納ステップを選択した回数との差が第1の所定数より大きくなった場合、ルール保持部51に保持されるインターリーブルールを第1のインターリーブルールから第2のインターリーブルールに変更してもよい。すなわち、所定時間内において、記憶装置選択部20による第1の格納ステップおよび第2の格納ステップのいずれかの選択に偏りがある場合に、第1のインターリーブルールから第2のインターリーブルールに変更されてもよい。
 また、例えば、コマンド監視部40は、複数のデータ格納指示に含まれる複数の第1の論理アドレスの履歴が所定のパターンとなっている場合、ルール保持部51に保持されるインターリーブルールを第1のインターリーブルールから第2のインターリーブルールに変更してもよい。複数の第1の論理アドレスの履歴とは、マスタ10から順次発行されるデータ格納指示のそれぞれに含まれる1つの第1の論理アドレスを発行順に並べたものであり、最新のデータ格納指示に含まれる第1の論理アドレスまでの履歴である。複数の第1の論理アドレスの履歴は、例えば「・・・・・000」、「・・・・・001」、「・・・・・010」、「・・・・・011」といった論理アドレスの履歴である(ここではアドレスの下位3ビットのみを示している)。所定のパターンは、例えば、複数の第1の論理アドレスの特定のビットにおけるパターンであり、例えば、最下位ビットにおけるパターンなどである。所定のパターンの具体例としては、複数の第1の論理アドレスの最下位ビットが0、0、0、0、・・・となるパターンである。
 例えば、第1のインターリーブルールが、最下位ビットの値が0のときには第1の格納ステップを実行することを選択し、最下位ビットの値が1のときには第2の格納ステップを実行することを選択するというルールであるとする。また、第2のインターリーブルールが最下位ビットの1つ上のビットの値が0のときには第1の格納ステップを実行することを選択し、最下位ビットの1つ上のビットの値が1のときには第2の格納ステップを実行することを選択するというルールであるとする。ルール保持部51に第1のインターリーブルールが保持されている場合に、第1の論理アドレスが「・・・・・000」、「・・・・・001」、「・・・・・010」、「・・・・・011」のように連続変化するデータ格納指示が発行される場合には、最下位ビットは0、1、0、1、・・・となり、第1の格納ステップと第2の格納ステップとを均等に選択することができる。一方で、第1の論理アドレスが「・・・・・000」、「・・・・・010」、「・・・・・100」、「・・・・・110」のように2ずつ変化するデータ格納指示が発行される場合には、最下位ビットは0、0、0、0、・・・となり、第1の格納ステップのみ選択され続け、選択に偏りが生じてしまう。
 そこで、複数のデータ格納指示に含まれる複数の第1の論理アドレスの履歴が所定のパターンとなっている場合、すなわち、複数の第1の論理アドレスの最下位ビットが0、0、0、0、・・・となっている場合には、ルール保持部51に保持されるインターリーブルールが第1のインターリーブルールから第2のインターリーブルールに変更される。複数の第1の論理アドレスの最下位ビットの1つ上のビットは、0、1、0、1、・・・となるため、第2のインターリーブルールでは、第1の格納ステップと第2の格納ステップとを均等に選択することができるようになる。
 例えば、所定のパターンは、記憶装置60aあるいは60bへのアクセス動作の開始前に設定される。例えば、事前にアクセス形態の種類がある程度わかっている場合には、アクセス形態の種類に応じた所定のパターンとインターリーブルールとが設定され、アクセスの偏りが検出されることで、インターリーブルールが切り替えられる。
 記憶装置選択部20は、ルール保持部51に保持されたインターリーブルールについて、コマンド監視部40による変更があると判定した場合(ステップS22でYes)、新ルール(例えば第2のインターリーブルール)に基づきアクセスする記憶装置を選択する(ステップS23)。
 コマンド監視部40によるインターリーブルールの変更によって、記憶装置選択部20は、第1選択の結果の履歴に基づいて、第1のインターリーブルールから第2のインターリーブルールに切り替えることとなる。具体的には、記憶装置選択部20は、第1選択の結果の履歴における、所定時間内の第1の格納ステップを選択した回数と所定時間内の第2の格納ステップを選択した回数との差が第1の所定数より大きくなった場合、第1のインターリーブルールから第2のインターリーブルールに切り替えることとなる。あるいは、コマンド監視部40によるインターリーブルールの変更によって、記憶装置選択部20は、複数のデータ格納指示に含まれる複数の第1の論理アドレスの履歴に基づいて、第1のインターリーブルールから第2のインターリーブルールに切り替えることとなる。具体的には、記憶装置選択部20は、複数の第1の論理アドレスの履歴が所定のパターンとなっている場合に、第1のインターリーブルールから第2のインターリーブルールに切り替えることとなる。
 記憶装置選択部20は、ルール保持部51に保持されたインターリーブルールについて、コマンド監視部40による変更がないと判定した場合(ステップS22でNo)、従来のルール(例えば第1のインターリーブルール)に基づきアクセスする記憶装置を選択する(ステップS24)。
 次に、コマンド振り分け部31aまたは31bは、記憶装置選択部20からアクセスコマンドを受信する(ステップS25)。ここでは、例えば、記憶装置選択部20で第1選択として第1の格納ステップが選択され、コマンド振り分け部31aがアクセスコマンドを受信したとする。
 次に、コマンド振り分け部31aは、ルール保持部52に保持されたインターリーブルールについて、コマンド監視部40による変更があるか否かを判定する(ステップS26)。例えば、ルール保持部52に第3のインターリーブルールが保持されているとする。
 例えば、コマンド監視部40は、記憶装置選択部20での第1選択の後、実行されていない第1の格納ステップの数が実行されていない第2の格納ステップの数より第2の所定数だけ大きくなった場合、ルール保持部52に保持されるインターリーブルールを第3のインターリーブルールから第4のインターリーブルールに変更してもよい。すなわち、コマンド格納部32aに格納された実行されていないアクセスコマンドの数が、コマンド格納部32bに格納された実行されていないアクセスコマンドの数より第2の所定数だけ大きくなった場合に、第3のインターリーブルールから第4のインターリーブルールに変更されてもよい。
 また、例えば、コマンド監視部40は、記憶装置60aへのアクセス可否の状態および記憶装置60bへのアクセス可否の状態に基づいて、ルール保持部52に保持されるインターリーブルールを第3のインターリーブルールから第4のインターリーブルールに変更してもよい。例えば、記憶装置60aへのアクセス可否の状態として、記憶装置60aがリフレッシュ期間中またはリトレーニング期間中であり、記憶装置60bへのアクセス可否の状態として、記憶装置60bがリフレッシュ期間中またはリトレーニング期間中でない場合に、第3のインターリーブルールから第4のインターリーブルールに変更されてもよい。記憶装置60aがリフレッシュ期間中またはリトレーニング期間中である場合には、コマンド格納部32aに格納されたアクセスコマンドを実行して記憶装置60aにデータを格納することができず、コマンド格納部32aに格納された実行されていないアクセスコマンドの数が、コマンド格納部32bに格納された実行されていないアクセスコマンドの数より大きくなっている可能性がある。そのような場合に、第3のインターリーブルールから第4のインターリーブルールに変更されてもよい。
 また、例えば、コマンド監視部40は、記憶装置60aのチップ温度が記憶装置60bのチップ温度より所定量だけ大きくなった場合、ルール保持部52に保持されるインターリーブルールを第3のインターリーブルールから第4のインターリーブルールに変更してもよい。記憶装置60aのチップ温度が高い場合には、コマンド格納部32aに格納されたアクセスコマンドが高い頻度で実行されており、次々とコマンド格納部32aにアクセスコマンドが格納され続けている可能性があるため、コマンド格納部32aに格納された実行されていないアクセスコマンドの数が、コマンド格納部32bに格納された実行されていないアクセスコマンドの数より大きくなっている可能性がある。そのような場合に、第3のインターリーブルールから第4のインターリーブルールに変更されてもよい。
 コマンド振り分け部31aは、ルール保持部52に保持されたインターリーブルールについて、コマンド監視部40による変更があると判定した場合(ステップS26でYes)、新ルール(例えば第4のインターリーブルール)に基づきアクセスする記憶装置を選択する(ステップS27)。例えば、この場合、コマンド振り分け部31aは、コマンド格納部32aへアクセスコマンドを格納せず、コマンド格納部32bへアクセスコマンドを格納する(ステップS29)。
 コマンド監視部40によるインターリーブルールの変更によって、コマンド振り分け部31aは、記憶装置選択部20での第1選択の後、実行されていない第1の格納ステップの数が実行されていない第2の格納ステップの数より第2の所定数だけ大きくなった場合、第3のインターリーブルールから第4のインターリーブルールに切り替えることとなる。あるいは、コマンド監視部40によるインターリーブルールの変更によって、コマンド振り分け部31aは、記憶装置60aへのアクセス可否の状態および記憶装置60bへのアクセス可否の状態に基づいて、第3のインターリーブルールから第4のインターリーブルールに切り替えることとなる。あるいは、コマンド監視部40によるインターリーブルールの変更によって、コマンド振り分け部31aは、記憶装置60aのチップ温度が記憶装置60bのチップ温度より所定量だけ大きくなった場合、第3のインターリーブルールから第4のインターリーブルールに切り替えることとなる。
 コマンド振り分け部31aは、ルール保持部52に保持されたインターリーブルールについて、コマンド監視部40による変更がないと判定した場合(ステップS26でNo)、従来のルール(例えば第3のインターリーブルール)に基づきアクセスする記憶装置を選択する(ステップS28)。例えば、この場合、コマンド振り分け部31aは、コマンド格納部32aへアクセスコマンドの格納を継続する(ステップS29)。
 ここで、記憶装置選択部20において、記憶装置60aおよび60bのいずれにデータを格納するか選択した後、さらに、コマンド振り分け部31aおよび31bにおいて、記憶装置60aおよび60bのいずれにデータを格納するかを再度選択していることの理由について説明する。
 例えば、記憶装置選択部20が、記憶装置60aと記憶装置60bとに均等にデータが格納されるように動作した場合、コマンド振り分け部31aおよび31bは不要なようにも考えられる。しかし、ここには、1つのマスタ10のみを示しているが、記憶装置制御部30aおよび30bは、複数のマスタからのアクセスコマンドを受信する場合があり、その場合、記憶装置制御部30aと記憶装置制御部30bとで、格納ステップの実行についての偏りが生じ、アクセス効率が低下するおそれがある。また、例えば、記憶装置60aおよび60bへのアクセス可否(リフレッシュ期間中あるいはリトレーニング期間中)の状態や、他の何らかの理由によっても、格納ステップの実行についての偏りが生じ、アクセス効率が低下するおそれがある。このため、コマンド振り分け部31aおよび31bにおいても、記憶装置60aおよび60bのいずれにデータを格納するかを選択している。ここで、アクセス可否の状態は、例えば記憶装置制御部30aおよび30bのそれぞれの状態から判断できる。また、何らかの原因でアクセスに偏りが生じている場合、結果として、アクセス頻度が高いメモリチップの温度は相対的に高くなることを利用し、チップ温度を知ることで、アクセスの不均衡を判断する。
 次に、データの読み出し時のメモリアクセス方法およびメモリアクセス制御装置1の動作について図4を用いて説明するが、データの読み出しをするために、データの格納時に記憶装置選択部20は、データ格納指示に含まれる第1の論理アドレスと、第1のインターリーブルールおよび第2のインターリーブルールのいずれに基づいて第1選択を行ったか、の組み合わせ情報を記録する第1のアドレス変換記録ステップを実行する。あるいは、データの格納時に記憶装置選択部20は、データ格納指示に含まれる第1の論理アドレスと割り当てられた物理アドレスとの組み合わせ情報を記録する第2のアドレス変換記録ステップを実行する。また、データの格納時にコマンド振り分け部31aおよび31bは、第3のインターリーブルールおよび第4のインターリーブルールのいずれに基づいて第2選択を行ったか、の組み合わせ情報を記録する第3のアドレス変換記録ステップを実行する。なお、データ格納指示に含まれる第1の論理アドレスと割り当てられた物理アドレスとの組み合わせ情報を記録する第2のアドレス変換記録ステップは、コマンド振り分け部31aおよび31bによって実行されてもよい。
 図4は、実施の形態に係るメモリアクセス方法の読み出し時の処理の一例を示すフローチャートである。なお、図4は、実施の形態に係るメモリアクセス制御装置1の読み出し時の動作の一例を示すフローチャートでもある。
 まず、マスタ10は、記憶装置60aあるいは記憶装置60bから、1つの第2の論理アドレスに従って1つのデータを読み出すことを指示するデータ読出指示を発行する(ステップS31:データ読出指示ステップ)。
 次に、記憶装置選択部20は、データ読出指示に対して、当該データ読出指示に含まれる第2の論理アドレスに基づいて第1の読出ステップおよび第2の読出ステップのいずれを実行するかの第3選択を行う(ステップS32:読出経路選択ステップ)。ここで、記憶装置選択部20は、第2の論理アドレスと等しい第1の論理アドレスに対応する上記組み合わせ情報に基づいて第3選択を行う。つまり、データ格納時の第1の論理アドレスと等しい第2の論理アドレスに従ってデータを読み出す際には、データ格納時の情報が参照される。
 そして、記憶装置制御部30aまたは30bは、選択された読出ステップを実行する(ステップS33)。第1の読出ステップを実行するとの選択が行われた場合、記憶装置制御部30aは、第1の読出ステップを実行する。第1の読出ステップは、データ読出指示に応じて、第1の経路を経て記憶装置60aから1つのデータを読出しするステップである。第2の読出ステップを実行するとの選択が行われた場合、記憶装置制御部30bは、第2の読出ステップを実行する。第2の読出ステップは、データ読出指示に応じて、第2の経路を経て記憶装置60bから1つのデータを読出するステップである。
 このように、データを読み出すときにデータを格納したときに記憶した組み合わせ情報を用いることで、格納したデータを読み出すことができる。
 以上説明したように、本開示のメモリアクセス方法およびメモリアクセス制御装置1では、インターリーブルールが切り替えられるため、様々なアクセス形態に対応できる。また、第1の格納ステップおよび第2の格納ステップのいずれを実行するかの第1選択が、切り替えられるインターリーブルールに基づいて行われることで、第1選択の偏りを抑制できる。さらに、第1選択の後に、第1の格納ステップでの処理を継続するか、第2の格納ステップでの処理へ切り替えるかの第2選択が行われることで、格納ステップの実行の偏りを抑制できる。このようにして、アクセス効率を向上させることができる。
 (その他の実施の形態)
 以上、本開示の一つまたは複数の態様に係るメモリアクセス方法およびメモリアクセス制御装置1について、実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を各実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の一つまたは複数の態様の範囲内に含まれてもよい。
 例えば、上記実施の形態では、第1の格納ステップでは、第1の格納ステップでの処理を中止し、第2の格納ステップでの処理へ切り替える例について説明したが、当該切り替えが行われなくてもよい。つまり、メモリアクセス制御装置1は、コマンド振り分け部31aおよび31bを備えていなくてもよい。
 例えば、本開示は、メモリアクセス方法に含まれるステップを、プロセッサに実行させるためのプログラムとして実現できる。さらに、本開示は、そのプログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
 例えば、本開示が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリおよび入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリまたは入出力回路等から取得して演算したり、演算結果をメモリまたは入出力回路等に出力したりすることによって、各ステップが実行される。
 なお、上記実施の形態において、メモリアクセス制御装置1に含まれる各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 上記実施の形態に係るメモリアクセス制御装置1の機能の一部または全ては典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。また、集積回路化はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、またはLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらに、本開示の主旨を逸脱しない限り、本開示の各実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本開示に含まれる。
 本開示は、メモリインターリーブが行われる装置などに適用できる。
 1 メモリアクセス制御装置
 10 マスタ
 20 記憶装置選択部
 30a、30b 記憶装置制御部
 31a、31b コマンド振り分け部
 32a、32b コマンド格納部
 40 コマンド監視部
 51、52 ルール保持部
 60a、60b 記憶装置

Claims (18)

  1.  メモリアクセス方法であって、
     第1のメモリ、あるいは前記第1のメモリとは物理アドレスが異なる第2のメモリに、1つの第1の論理アドレスに従って1つのデータを格納することを指示する、前記第1の論理アドレスを含むデータ格納指示を発行するデータ格納指示ステップと、
     前記データ格納指示に対して、当該データ格納指示に含まれる前記第1の論理アドレスに基づいて第1の格納ステップおよび第2の格納ステップのいずれを実行するかの第1選択を行う第1の格納経路選択ステップと、を含み、
     前記第1の格納ステップは、前記データ格納指示に応じて、第1の経路を経て前記第1のメモリに前記1つのデータを格納するステップであり、
     前記第2の格納ステップは、前記データ格納指示に応じて、第2の経路を経て前記第2のメモリに前記1つのデータを格納するステップであり、
     前記第1の格納経路選択ステップでは、
     前記第1の論理アドレスに対し物理アドレスを割り当てる第1のインターリーブルールあるいは第2のインターリーブルールに基づいて前記第1選択を行い、
     1または複数の前記データ格納指示に対して、前記第1のインターリーブルールに基づいて前記第1選択を行い、続く1または複数の前記データ格納指示に対して、前記第2のインターリーブルールに基づいて前記第1選択を行うこと、
     を特徴とするメモリアクセス方法。
  2.  前記第1の格納経路選択ステップでは、前記第1選択の結果の履歴に基づいて、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替えること、
     を特徴とする請求項1記載のメモリアクセス方法。
  3.  前記第1の格納経路選択ステップでは、前記第1選択の結果の履歴における、所定時間内の前記第1の格納ステップを選択した回数と前記所定時間内の前記第2の格納ステップを選択した回数との差が第1の所定数より大きくなった場合、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替えること、
     を特徴とする請求項2記載のメモリアクセス方法。
  4.  前記第1の格納経路選択ステップでは、複数の前記データ格納指示に含まれる複数の前記第1の論理アドレスの履歴に基づいて、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替えること、
     を特徴とする請求項1~3のいずれか1項に記載のメモリアクセス方法。
  5.  前記第1の格納経路選択ステップでは、複数の前記第1の論理アドレスの履歴が所定のパターンとなっている場合に、前記第1のインターリーブルールから前記第2のインターリーブルールに切り替え、
     前記所定のパターンは、前記第1のメモリあるいは前記第2のメモリへのアクセス動作の開始前に設定されていること、
     を特徴とする請求項4記載のメモリアクセス方法。
  6.  前記第1の格納ステップでは、所定の条件に基づいて前記第1の格納ステップでの処理を中止し、前記第2の格納ステップでの処理へ切り替えること、
     を特徴とする請求項1~5のいずれか1項に記載のメモリアクセス方法。
  7.  前記所定の条件は、前記第1の格納経路選択ステップでの前記第1選択の後、実行されていない前記第1の格納ステップの数が実行されていない前記第2の格納ステップの数より第2の所定数だけ大きくなること、
     を特徴とする請求項6記載のメモリアクセス方法。
  8.  前記第1の格納ステップは、前記第1の格納ステップでの処理を継続するか、前記第2の格納ステップでの処理へ切り替えるかの第2選択を行う、第2の格納経路選択ステップを含み、
     前記第2の格納経路選択ステップでは、第3のインターリーブルールあるいは第4のインターリーブルールに基づいて前記第2選択を行うこと、
     を特徴とする請求項1~7のいずれか1項に記載のメモリアクセス方法。
  9.  前記第3のインターリーブルールは、前記第1の格納ステップでの処理を継続することを選択することを、前記第2の格納ステップでの処理への切り替えを選択することよりも多くさせるルールであり、
     前記第4のインターリーブルールは、前記第1の格納ステップでの処理を継続することを選択することを、前記第2の格納ステップでの処理への切り替えを選択することよりも少なくさせるルールであること、
     を特徴とする請求項8記載のメモリアクセス方法。
  10.  前記第2の格納経路選択ステップでは、前記第1の格納経路選択ステップでの前記第1選択の後、実行されていない前記第1の格納ステップの数が実行されていない前記第2の格納ステップの数より第2の所定数だけ大きくなった場合、前記第3のインターリーブルールから前記第4のインターリーブルールに切り替えること、
     を特徴とする請求項8または9に記載のメモリアクセス方法。
  11.  前記第2の格納経路選択ステップでは、前記第1のメモリへのアクセス可否の状態および前記第2のメモリへのアクセス可否の状態に基づいて、前記第3のインターリーブルールから前記第4のインターリーブルールに切り替えること、
     を特徴とする請求項8~10のいずれか1項に記載のメモリアクセス方法。
  12.  前記第1のメモリへのアクセス可否の状態および前記第2のメモリへのアクセス可否の状態は、リフレッシュ期間中かどうかに基づくこと、
     を特徴とする請求項11記載のメモリアクセス方法。
  13.  前記第1のメモリへのアクセス可否の状態および前記第2のメモリへのアクセス可否の状態は、リトレーニング期間中かどうかに基づくこと、
     を特徴とする請求項11または12に記載のメモリアクセス方法。
  14.  前記第2の格納経路選択ステップでは、前記第1のメモリのチップ温度が前記第2のメモリのチップ温度より所定量だけ大きくなった場合、前記第3のインターリーブルールから前記第4のインターリーブルールに切り替えること、
     を特徴とする請求項8~13のいずれか1項に記載のメモリアクセス方法。
  15.  前記第1の格納経路選択ステップは、さらに、前記データ格納指示に含まれる前記第1の論理アドレスと、前記第1のインターリーブルールおよび前記第2のインターリーブルールのいずれに基づいて前記第1選択を行ったか、の組み合わせ情報を記録する第1のアドレス変換記録ステップを含むこと、
     を特徴とする請求項1~14のいずれか1項に記載のメモリアクセス方法。
  16.  前記第1の格納経路選択ステップは、さらに、前記データ格納指示に含まれる前記第1の論理アドレスと割り当てられた物理アドレスとの組み合わせ情報を記録する第2のアドレス変換記録ステップを含むこと、
     を特徴とする請求項1~14のいずれか1項に記載のメモリアクセス方法。
  17.  前記第1のメモリ、あるいは前記第2のメモリから、1つの第2の論理アドレスに従って1つのデータを読み出すことを指示する、前記第2の論理アドレスを含むデータ読出指示を発行するデータ読出指示ステップと、
     前記データ読出指示に対して、当該データ読出指示に含まれる前記第2の論理アドレスに基づいて第1の読出ステップおよび第2の読出ステップのいずれを実行するかの第3選択を行う読出経路選択ステップと、をさらに含み、
     前記第1の読出ステップは、前記データ読出指示に応じて、前記第1の経路を経て前記第1のメモリから前記1つのデータを読出しするステップであり、
     前記第2の読出ステップは、前記データ読出指示に応じて、前記第2の経路を経て前記第2のメモリから前記1つのデータを読出しするステップであり、
     前記読出経路選択ステップでは、前記第2の論理アドレスと等しい前記第1の論理アドレスに対応する前記組み合わせ情報に基づいて前記第3選択を行うこと、
     を特徴とする請求項15または16に記載のメモリアクセス方法。
  18.  メモリアクセス制御装置であって、
     第1のメモリ、あるいは前記第1のメモリとは物理アドレスが異なる第2のメモリに、1つの第1の論理アドレスに従って1つのデータを格納することを指示する、前記第1の論理アドレスを含むデータ格納指示を発行するデータ格納指示部と、
     前記データ格納指示に応じて、第1の経路を経て前記第1のメモリに前記1つのデータを格納する第1の格納部と、
     前記データ格納指示に応じて、第2の経路を経て前記第2のメモリに前記1つのデータを格納する第2の格納部と、
     前記データ格納指示に対して、当該データ格納指示に含まれる前記第1の論理アドレスに基づいて前記第1の格納部による格納および前記第2の格納部による格納のいずれを実行するかの第1選択を行う第1の格納経路選択部と、を備え、
     前記第1の格納経路選択部は、
     前記第1の論理アドレスに対し物理アドレスを割り当てる第1のインターリーブルールあるいは第2のインターリーブルールに基づいて前記第1選択を行い、
     1または複数の前記データ格納指示に対して、前記第1のインターリーブルールに基づいて前記第1選択を行い、続く1または複数の前記データ格納指示に対して、前記第2のインターリーブルールに基づいて前記第1選択を行うこと、
     を特徴とするメモリアクセス制御装置。
PCT/JP2021/048185 2021-12-24 2021-12-24 メモリアクセス方法およびメモリアクセス制御装置 WO2023119622A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/048185 WO2023119622A1 (ja) 2021-12-24 2021-12-24 メモリアクセス方法およびメモリアクセス制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/048185 WO2023119622A1 (ja) 2021-12-24 2021-12-24 メモリアクセス方法およびメモリアクセス制御装置

Publications (1)

Publication Number Publication Date
WO2023119622A1 true WO2023119622A1 (ja) 2023-06-29

Family

ID=86901828

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/048185 WO2023119622A1 (ja) 2021-12-24 2021-12-24 メモリアクセス方法およびメモリアクセス制御装置

Country Status (1)

Country Link
WO (1) WO2023119622A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323339A (ja) * 2002-03-01 2003-11-14 Sony Computer Entertainment Inc メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323339A (ja) * 2002-03-01 2003-11-14 Sony Computer Entertainment Inc メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体

Similar Documents

Publication Publication Date Title
JP5053552B2 (ja) 異種の非揮発性メモリを持つデータ記憶装置とその駆動方法
US7330935B2 (en) Set associative cache system and control method for cache memories
JP6146128B2 (ja) データ処理装置
US5715472A (en) System resource enable method
WO2016206529A1 (zh) 一种存储器的控制方法、装置及计算机存储介质
WO2006051780A1 (ja) 同時アクセスするバンク数が異なるメモリコントローラに対応した不揮発性メモリ装置
CN102346682A (zh) 信息处理装置及信息处理方法
US20140101670A1 (en) Computing system including multi-core processor and load balancing method thereof
US20080133899A1 (en) Context switching method, medium, and system for reconfigurable processors
WO2023119622A1 (ja) メモリアクセス方法およびメモリアクセス制御装置
JP2020187747A (ja) 高帯域幅メモリシステム及びメモリアドレス方法
JP4719801B2 (ja) デバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステム
JP2006277637A (ja) 温度監視によってジョブを割り当てるマルチプロセッサ計算機システム、及びコンピュータプログラム
JP2013510353A (ja) メモリ構成
JP2007128510A (ja) 冗長サブシステムにおける1次資源を選択するための方法及び装置
US20100318707A1 (en) External device access apparatus, control method thereof, and system lsi
KR20160148344A (ko) 입출력 회로 및 이를 포함하는 입출력 장치
JP2003132693A (ja) 不揮発性半導体記憶装置
JP2009099165A (ja) 半導体記憶装置
JPH10283123A (ja) 記憶装置アレイ
JP5398664B2 (ja) 半導体メモリ
US20160328328A1 (en) Semiconductor apparatus and operating method thereof
JP2010146102A (ja) 演算処理装置および記憶領域割当方法
US6944075B1 (en) Variable column redundancy region boundaries in SRAM
JP2004527064A (ja) メモリへアクセスするためのアドレスを、欠陥メモリセルの既知のアドレスと比較する方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21969053

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023568989

Country of ref document: JP

Kind code of ref document: A