WO2019138624A1 - Memory controller and memory module - Google Patents
Memory controller and memory module Download PDFInfo
- Publication number
- WO2019138624A1 WO2019138624A1 PCT/JP2018/038309 JP2018038309W WO2019138624A1 WO 2019138624 A1 WO2019138624 A1 WO 2019138624A1 JP 2018038309 W JP2018038309 W JP 2018038309W WO 2019138624 A1 WO2019138624 A1 WO 2019138624A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- management information
- request
- entry
- address
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
Definitions
- the present technology relates to a memory controller. More particularly, the present invention relates to a memory controller and memory module for saving and restoring the contents of volatile memory in nonvolatile memory.
- the addresses of the volatile memory and the non-volatile memory are managed for each program, and the data of the volatile memory is saved in the non-volatile memory accordingly.
- each program is stored in a continuous area of volatile memory, and one address is managed for each program.
- data of applications operating on the operating system are often mapped to discrete physical addresses, and there is a problem that such data can not be saved properly.
- the present technology has been created in view of such a situation, and it is an object of the present invention to appropriately save data that is mapped to discrete physical addresses of volatile memory in nonvolatile memory.
- the present technology has been made to solve the above-mentioned problems, and a first aspect of the present technology has a physical address of a first memory which is a volatile memory and an address of a second memory which is a nonvolatile memory.
- a memory management information registration unit for registering as an entry of memory management information in association with each management unit, and saving data from the first memory to the second memory according to the memory management information in response to a save request, and a restore request
- a controller configured to restore data from the second memory to the first memory in accordance with the memory management information. This brings about an effect of saving and restoring data stored in a distributed manner at the physical address of the first memory in the second memory for each management unit.
- the memory management information registration unit registers the physical address of the first memory and the address of the second memory in association with each application as the memory management information. It is also good. This brings about the effect
- control unit causes data from the physical address of the first memory to the address of the second memory according to the entry of the memory management information corresponding to the application specified in the save request.
- the data may be restored from the address of the second memory to the physical address of the first memory according to the entry of the memory management information corresponding to the application specified in the restore request.
- the memory management information registration unit associates the physical address of the first memory, the address of the second memory, and the attribute relating to the save operation in association with each application as the memory management information.
- the control unit stores data from the physical address of the first memory to the address of the second memory according to the attribute of the entry of the memory management information corresponding to the application specified in the save request. You may This brings about the effect
- control unit is connected to a memory access interface with a host computer to access the first or second memory in response to a request from the host computer. May be This brings about the effect of accepting a request from the host computer without making the distinction between the first memory and the second memory conscious.
- the computer system further comprises a management size setting unit for setting the size of the management unit corresponding to each entry in the memory management information as a management size, and the control unit saves the above according to the management size.
- a process corresponding to the request or the restore request may be performed. This brings about the effect of setting the management size.
- control unit generates a new entry when there is no entry of the memory management information corresponding to the application specified in the registration request of the memory management information, and responds to the entry. If an entry exists, the physical address specified in the registration request may be registered in the entry. This brings about the effect
- the memory management information registration unit registers the virtual address and physical address of the first memory and the address of the second memory in association with each application as the memory management information. You may do so. This brings about the effect of saving an arbitrary management unit of each application.
- control unit generates a new entry when there is no entry of the memory management information corresponding to the application and virtual address designated in the registration request of the memory management information. If there is a corresponding entry, the physical address specified in the registration request may be registered in the entry. This brings about the effect
- the present technology it is possible to achieve an excellent effect that even data mapped to discrete physical addresses of volatile memory can be properly saved in nonvolatile memory.
- the effect described here is not necessarily limited, and may be any effect described in the present disclosure.
- FIG. 1 is a diagram illustrating an example of an entire configuration of an information processing system according to a first embodiment of the present technology. It is a figure showing an example of composition of memory controller 240 in a 1st embodiment of this art. It is a figure showing an example of management size information and memory management information in a 1st embodiment of this art. It is a figure showing an example of save operation in a 1st embodiment of this art. It is a figure showing an example of restoration operation in a 1st embodiment of this art. It is a figure showing an example of a request issued to memory controller 240 in a 1st embodiment of this art. It is a flow chart which shows an example of the processing procedure of memory controller 240 in an embodiment of this art.
- First embodiment (example of managing each management unit by memory management information) 2.
- Second embodiment (example of storing virtual address of volatile memory in memory management information) 3.
- Third embodiment (example of storing attribute information in memory management information) 4.
- Fourth Embodiment (Example of virtualizing the address space of a memory module)
- FIG. 1 is a diagram illustrating an example of an entire configuration of an information processing system according to a first embodiment of the present technology.
- the system comprises a host computer 100 and a memory module 200.
- the host computer 100 processes data read from the memory module 200 and writes data of the processing result to the memory module 200.
- the host computer 100 includes a processor 110, a memory management unit 120, a memory access unit 130, a memory module control unit 140, and a power supply 150.
- the processor 110 is a processing device that performs processing as the host computer 100.
- the operating system and the applications running thereon are executed by this processor 110.
- the memory management unit 120 is a memory management unit (MMU) that manages a memory space in the memory module 200.
- the memory management unit 120 performs conversion processing between the logical address and the physical address as part of the processing.
- the memory access unit 130 controls access to the memory module 200.
- the memory access unit 130 is connected to the memory module 200 via the memory access interface 103, and performs data write and read access to the memory module 200.
- the memory module control unit 140 performs control for using the memory module 200.
- the memory module control unit 140 is connected to the memory module 200 via the memory control interface 104 and issues a request for the memory module 200.
- a serial bus such as I 2 C is assumed.
- the power supply 150 is a power supply of the host computer 100.
- the power supply 150 is also connected to the memory module 200 via the power supply line 105, and supplies power to the memory module 200.
- the voltage level of the power supply 150 is monitored by the operating system, and when an event such as a momentary power failure (temporary power failure) is detected, the memory module control unit 140 sends a save request to the memory module 200 via the memory control interface 104. Issue Thus, save processing from the volatile memory 210 to the non-volatile memory 220 is performed in the memory module 200.
- the memory module 200 is a memory device that reads and writes data in accordance with a request from the host computer 100.
- the memory module 200 includes a volatile memory 210, a non-volatile memory 220, a multiplexer 230, a memory controller 240, a backup power supply 250, and a power control unit 260.
- the volatile memory 210 is a memory that requires a power supply to maintain storage. For example, a dynamic random access memory (DRAM) or the like is assumed.
- DRAM dynamic random access memory
- the volatile memory 210 is an example of a first memory described in the claims.
- the non-volatile memory 220 is a memory that does not require a power supply to maintain storage.
- ReRAM Resistance RAM
- PCRAM Phase-Change RAM
- MRAM Magneticoresistive RAM
- NAND flash etc.
- the nonvolatile memory 220 is an example of a second memory described in the claims.
- the multiplexer 230 switches the connection destination of the volatile memory 210 to either the memory controller 240 or the host computer 100.
- the multiplexer 230 switches the connection destination of the volatile memory 210 to the host computer 100 (memory access interface 103).
- the multiplexer 230 switches the connection destination of the volatile memory 210 to the memory controller 240.
- the memory controller 240 controls access to the volatile memory 210 and the non-volatile memory 220.
- the memory controller 240 decodes a request received from the host computer 100 via the memory control interface 104 and performs processing according to the request.
- the backup power supply 250 is a power supply used when the power supply from the power supply 150 via the power supply line 105 is interrupted due to a momentary power failure or the like.
- the backup power supply 250 is a large capacity capacitor (supercapacitor), and supplies power to the memory module 200 for the time required to save data from the volatile memory 210 to the non-volatile memory 220 (for example, about one minute to several tens of seconds). It has a function.
- the power control unit 260 controls the power of the memory module 200.
- the power supply control unit 260 switches the power supply received from the power supply 150 through the power supply line 105 to the entire power supply during normal operation, and switches the power supply from the backup power supply 250 to the entire power supply when instantaneous power failure occurs.
- FIG. 2 is a diagram showing a configuration example of the memory controller 240 in the first embodiment of the present technology.
- the memory controller 240 includes a request decoder 241, a control unit 242, a management size information setting unit 243, and a memory management information registration unit 244.
- the request decoder 241 is a decoder that decodes a request received from the host computer 100 via the memory control interface 104.
- the request decoder 241 determines the request and supplies the determination result to the control unit 242.
- the control unit 242 performs processing regarding the volatile memory 210 and the non-volatile memory 220 according to the determination result of the request by the request decoder 241.
- the control unit 242 performs, for example, saving from the volatile memory 210 to the data area of the non-volatile memory 220 and restoration thereof. Details of the process will be described later.
- the management size information setting unit 243 sets, as a management size, the size of a management unit when saving from the volatile memory 210 to the non-volatile memory 220 and restoration thereof are performed.
- the set management size is stored in the non-volatile memory 220.
- the memory management information registration unit 244 registers memory management information that manages the correspondence between the volatile memory 210 and the non-volatile memory 220 when saving from the volatile memory 210 to the non-volatile memory 220 and restoring thereof.
- the registered memory management information is stored in the non-volatile memory 220.
- FIG. 3 is a diagram illustrating an example of management size information and memory management information according to the first embodiment of the present technology.
- the management size information includes a management size which is a size of a management unit when saving from the volatile memory 210 to the non-volatile memory 220 and restoration thereof is performed.
- a management size which is a size of a management unit when saving from the volatile memory 210 to the non-volatile memory 220 and restoration thereof is performed.
- 4 KB is assumed as a management unit.
- This management size can be set in accordance with the management unit of the operating system. Therefore, if, for example, a large page of 2 MB is used in the operating system, this management size can also be set to such a size.
- the memory management information has an entry for each management unit, and each entry associates and stores an application identifier, a physical address of the volatile memory 210, and an address of the non-volatile memory 220.
- the application identifier is an identifier for identifying an application program executed by the processor 110.
- the application identifier is shown.
- the physical address of the volatile memory 210 may be allocated from 0 with a management size set as management size information as a unit, or may be shown in byte units.
- FIG. 4 is a diagram illustrating an example of the save operation according to the first embodiment of the present technology.
- the memory management unit 120 of the host computer 100 divides the virtual address space into a certain size, and converts it into physical addresses in the divided units. In this embodiment, 4 KB is assumed as described above. Allocation of physical addresses is performed by the memory management unit 120 of the host computer 100, but is not necessarily allocated to the same physical address each time. Therefore, it is necessary to be able to restore (restore) data even when different physical addresses are assigned at the time of power save and at the next power on.
- the virtual address space of application # 1 whose application identifier is “1” is formed by n pages
- the virtual address space of application # 2 whose application identifier is “2” is formed by m pages. Be done. These pages are discretely arranged in the physical address space of the volatile memory 210.
- FIG. 5 is a diagram illustrating an example of a restore operation according to the first embodiment of the present technology.
- restoration can be performed to a different physical area of the volatile memory 210. That is, at the time of startup after power-off, there is a possibility that a physical address different from that at the time of saving may be allocated by the operating system. be able to.
- FIG. 6 is a diagram illustrating an example of a request issued to the memory controller 240 in the first embodiment of the present technology.
- the request issued via the memory control interface 104 indicates a request identifier, which can be decoded by the request decoder 241 to determine the type of the request.
- the request is determined to be a management size setting request.
- This management size setting request passes "management size” as an argument. Thereby, the control unit 242 sets the management size.
- the request is determined to be a memory management information registration request.
- This memory management information registration request passes "application identifier" and "physical address” as arguments.
- the control unit 242 registers memory management information.
- the request is determined to be a save request.
- This save request passes, as arguments, the "number of items to be saved” and the "application identifier” corresponding to the number.
- the control unit 242 saves the data corresponding to the application identifier from the volatile memory 210 to the non-volatile memory 220. Note that instead of specifying the "application identifier", all application identifiers may be specified as targets.
- the request is determined to be a restore request.
- This restore request passes the "number of items to be restored” and the "application identifier” corresponding to the number as arguments.
- the control unit 242 restores data corresponding to the application identifier from the non-volatile memory 220 to the volatile memory 210. Note that instead of specifying the "application identifier", all application identifiers may be specified as targets.
- FIG. 7 is a flowchart illustrating an example of the processing procedure of the memory controller 240 according to the embodiment of the present technology.
- step S 911 When the memory controller 240 receives a request via the memory control interface 104 (step S 911), the memory controller 240 performs decoding by the request decoder 241 and performs processing according to the type of request (steps S 912 to S 915). That is, if the type of request is a management size setting request (step S912: Yes), management size setting processing is performed (step S920). If the type of request is a memory management information registration request (step S 913: Yes), a memory management information registration process is performed (step S 930). If the type of the request is a save request (step S 914: Yes), processing of the save operation is performed (step S 940). If the type of request is a restore request (step S 915: Yes), processing for a restore operation is performed (step S 950).
- step S915 If the request type is other than the four shown here (step S915: No), the other processing is performed (step S916).
- a request for deleting an entry of memory management information is assumed.
- FIG. 8 is a flowchart illustrating an example of a processing procedure of management size setting processing according to the first embodiment of the present technology.
- the management size information setting unit 243 sets the “management size” passed as an argument of the management size setting request as the size of the management unit (step S 921). Then, the management size is stored in the management size information of the non-volatile memory 220 (step S922).
- FIG. 9 is a flowchart illustrating an example of a processing procedure of memory management information registration processing according to the first embodiment of the present technology.
- a plurality of entries may correspond to one application identifier, it is assumed in the first embodiment that a virtual address is not designated as an argument. Therefore, when registering memory management information, for example, virtual addresses are registered in each entry in ascending order.
- the memory management information registration unit 244 registers memory management information according to the following procedure. First, it is searched whether the entry of the “application identifier” passed as an argument of the memory management information registration request is registered as memory management information (step S 931).
- step S 931 Yes
- the physical address of the registered entry is replaced with the “physical address” passed as an argument of the memory management information registration request, and the memory management information of the non-volatile memory 220 (Step S932).
- step S 931 if it is not registered yet (step S 931: No), an area is allocated in the non-volatile memory 220, the start address of the area and the argument information of the memory management information registration request are combined, and one entry of memory management information Are generated (step S933). Then, one entry of the generated memory management information is stored in the memory management information of the non-volatile memory 220 (step S 934).
- FIG. 10 is a flowchart illustrating an example of the processing procedure of the save operation according to the first embodiment of the present technology.
- the control unit 242 performs the save operation process according to the following procedure.
- the “application identifier” passed as an argument of the save request is sequentially set as an application identifier to be processed (step S 942).
- the entry of the application identifier to be processed is searched from the memory management information stored in the non-volatile memory 220 (step S943).
- step S 944 If there is data that has not been saved in the entry of the application identifier to be processed (step S 944: Yes), data of the management unit is transferred from the volatile memory 210 to the non-volatile memory 220 and saved based on the read entry. (Step S946). That is, saving is performed from the physical address of the volatile memory 210 of the entry of the memory management information to the address of the non-volatile memory 220. Then, the process returns to step S943 to search for another entry of the application identifier to be processed.
- step S 944: No when saving of all the management units in the application identifier to be processed is completed (step S 944: No), is there any other application target to be saved among the “application identifiers” passed as an argument of save request? It judges (step S947). If there is an application identifier that has not been saved yet (step S947: No), the process returns to step S942 and is set as an application identifier to be processed.
- FIG. 11 is a flowchart illustrating an example of the processing procedure of the restore operation according to the first embodiment of the present technology.
- the control unit 242 performs the processing of the restore operation according to the following procedure.
- management size information is read out from the non-volatile memory 220, and a management unit is set (step S951).
- the “application identifier” passed as an argument of the restore request is sequentially set as the application identifier of the processing target (step S 952).
- the entry of the application identifier to be processed is searched from the memory management information stored in the non-volatile memory 220 (step S953).
- step S954 If there is data that has not been restored in the entry of the application identifier to be processed (step S954: Yes), data for the management unit is transferred from the non-volatile memory 220 to the volatile memory 210 and restored based on the read entry. (Step S956). That is, restoration is performed from the address of the non-volatile memory 220 of the entry of the memory management information to the physical address of the volatile memory 210. Then, the process returns to step S953 to search for another entry of the application identifier to be processed.
- step S954 when restoration of all the management units is completed in the application identifier to be processed (step S954: No), is there any other application object among the "application identifiers" passed as an argument of the restore request? It judges (step S957). If there is an application identifier that has not been restored (step S 957: No), the process returns to step S 952 and is set as an application identifier to be processed.
- the non-volatile memory 220 is managed by managing data mapped to discrete physical addresses of the volatile memory 210 as memory management information for each management unit. Save it and restore it.
- Second embodiment> In the first embodiment described above, only the physical address of the volatile memory 210 is stored in each entry of the memory management information on the assumption that the data to be saved and restored are continuous in the virtual address space. The on the other hand, in the second embodiment, the virtual address of the volatile memory 210 is further stored, and the discontinuous area on the virtual address is also a target of save and restore. That is, it becomes possible to selectively save the necessary part.
- the system configuration is the same as that of the first embodiment described above, and thus detailed description will be omitted.
- FIG. 12 is a diagram illustrating an example of management size information and memory management information according to the second embodiment of the present technology.
- the management size information is the same as that of the first embodiment described above, and in this example, 4 KB is assumed as a management unit.
- the virtual address of the volatile memory 210 is further stored. As this virtual address, a different address space can be assigned to each application. As described above, by managing the virtual address of the volatile memory 210 as memory management information, it is possible to save only data of a necessary virtual address.
- FIG. 13 is a diagram illustrating an example of the save operation according to the second embodiment of the present technology.
- the continuous area is saved in the virtual address space, but in the second embodiment, the virtual address of the volatile memory 210 is stored in each entry of the memory management information.
- the discrete area to be saved can be selectively designated by the virtual address.
- the saved data is saved in the continuous area of the non-volatile memory 220. Therefore, when k management units of application # 1 are registered in the memory management information, they are stored in the area of k continuous management units on the non-volatile memory 220.
- FIG. 14 is a diagram illustrating an example of a restore operation according to the second embodiment of the present technology.
- FIG. 15 is a diagram illustrating an example of a request issued to the memory controller 240 according to the second embodiment of the present technology.
- the management size setting request, the save request, and the restore request are the same as those in the first embodiment described above.
- the “virtual address” of the volatile memory 210 is passed as an argument.
- virtual addresses are registered in each entry based on this argument.
- FIG. 16 is a flowchart illustrating an example of a processing procedure of memory management information registration processing according to the second embodiment of the present technology.
- the processing procedure of the other processing is the same as that of the first embodiment described above, and thus detailed description will be omitted.
- step S 931 it is searched whether or not the entry of “application identifier” passed as an argument of the memory management information registration request is registered as memory management information (step S 931).
- step S 95 whether or not the entry having the combination of “application identifier” and “virtual address” passed as an argument of the memory management information registration request is registered as memory management information Is searched (step S935).
- step S 932 if the corresponding entry is already registered, step S 932 is executed, and if not registered, step S 933 is executed.
- the contents of the subsequent processing are the same as in the first embodiment described above.
- the system configuration is the same as that of the first embodiment described above, and thus detailed description will be omitted.
- FIG. 17 is a diagram illustrating an example of management size information and memory management information according to the third embodiment of the present technology.
- the management size information is the same as that of the first embodiment described above, and in this example, 4 KB is assumed as a management unit.
- attribute information is further stored in addition to the second embodiment described above.
- This attribute information specifies the condition for saving for each management unit, and the save operation is performed on the condition that it matches the "attribute condition" of the argument of the save request described later.
- FIG. 18 is a diagram illustrating an example of a request issued to the memory controller 240 in the third embodiment of the present technology.
- the management size setting request and the restore request are the same as those in the first embodiment described above.
- the “virtual address” and “attribute information” of the volatile memory 210 are passed as arguments.
- the “virtual address” is the same as that added in the second embodiment described above.
- “attribute information” designates a condition for saving for each management unit, and is registered as attribute information of the above-mentioned memory management information.
- the "attribute condition" designates that the save operation is to be performed on condition that the attribute information matches with the attribute information of each entry of the memory management information. For example, it is assumed that either “1” or “2” is set as attribute information of the memory management information. At this time, when the “attribute condition” is “1”, only the entry in which the attribute information of the memory management information indicates “1” is a save target. Further, when the “attribute condition” is “2”, only the entry in which the attribute information of the memory management information indicates “2” is a save target. Then, if the “attribute condition” is “3”, an entry indicating that the attribute information of the memory management information indicates “1” and an entry indicating “2” are to be saved.
- FIG. 19 is a flowchart illustrating an example of the processing procedure of the save operation according to the third embodiment of the present technology.
- the processing procedure of the other processing is the same as that of the above-described first or second embodiment, and thus detailed description will be omitted.
- the control unit 242 performs the save operation process according to the following procedure. However, steps S 942 to S 944, S 946 and S 947 are the same as in the first embodiment described above.
- step S 944: Yes it is determined whether the management unit is a save target attribute before saving in step S 946 (Step S945). That is, the "attribute condition" passed as an argument of the save request is compared with the "attribute information" in the entry of the memory management information, and saving is performed only when the condition is satisfied (step S945: Yes) S946). Then, the process returns to step S943 to search for another entry of the application identifier to be processed.
- the third embodiment of the present technology by managing “attribute information” as memory management information, it is possible to save only the management unit that matches the argument “attribute condition” of the save request. it can. For example, in normal power-off, only permanent data can be saved, and in a momentary power failure or the like, core dump data can be saved in addition to permanent data.
- FIG. 20 is a diagram illustrating an example of the entire configuration of the information processing system according to the fourth embodiment of the present technology.
- the multiplexer 230 in the above-described first embodiment is not provided, and the connection destination of the memory access interface 103 is the memory controller 240. Therefore, the memory controller 240 mediates access from the host computer 100 to the volatile memory 210.
- the address space as the memory module 200 is virtualized, and the memory module 200 can be accessed without being aware of the volatile memory 210 or the non-volatile memory 220 from the host computer 100.
- the save operation from the volatile memory 210 to the non-volatile memory 220 is performed as in the other embodiments described above.
- FIG. 21 is a diagram illustrating a configuration example of the memory controller 240 in the fourth embodiment of the present technology.
- the memory controller 240 according to the fourth embodiment is different from the first embodiment in that the control unit 242 is connected to the memory access interface 103.
- the control unit 242 distributes the access destination to the volatile memory 210 or the non-volatile memory 220 according to the address.
- access from the host computer 100 can be accepted without making the host computer 100 aware of the distinction between the volatile memory 210 and the non-volatile memory 220. That is, the address space as the memory module 200 is virtualized.
- the address space as the memory module 200 can be virtualized by assigning the access destination of the memory access from the host computer 100 in the control unit 242. .
- the processing procedure described in the above embodiment may be regarded as a method having a series of these procedures, and a program for causing a computer to execute the series of procedures or a recording medium storing the program. You may catch it.
- a recording medium for example, a CD (Compact Disc), an MD (Mini Disc), a DVD (Digital Versatile Disc), a memory card, a Blu-ray disc (Blu-ray (registered trademark) Disc) or the like can be used.
- the present technology can also be configured as follows.
- a memory management information registration unit that associates a physical address of a first memory, which is a volatile memory, and an address of a second memory, which is a non-volatile memory, with each management unit and registers them as entries of memory management information; Data is saved from the first memory to the second memory in accordance with the memory management information in response to a save request, and data is transferred from the second memory to the first memory in accordance with the memory management information in response to a restore request And a controller for restoring the memory.
- the control unit saves data from the physical address of the first memory to the address of the second memory according to the entry of the memory management information corresponding to the application specified in the save request, and the restore The memory controller according to (2), wherein data is restored from the address of the second memory to the physical address of the first memory according to an entry of the memory management information corresponding to an application specified in a request.
- the memory management information registration unit registers, as the memory management information, the physical address of the first memory, the address of the second memory, and the attribute regarding the save operation in association with each application.
- the control unit saves data from the physical address of the first memory to the address of the second memory according to the attribute of the entry of the memory management information corresponding to the application specified in the save request.
- the memory controller according to any one of (3) to (3).
- the control unit is connected to a memory access interface with a host computer, and accesses the first or second memory in response to a request from the host computer.
- Memory controller according to any of the.
- a management size setting unit configured to set the size of the management unit corresponding to each entry in the memory management information as a management size,
- the memory controller according to any one of (1) to (5), wherein the control unit performs processing corresponding to the save request or the restore request according to the management size.
- the control unit generates a new entry when there is no entry of the memory management information corresponding to the application specified in the registration request of the memory management information, and when the corresponding entry exists.
- the memory controller according to any one of (1) to (6), wherein the physical address specified in the registration request is registered in the entry.
- the memory management information registration unit registers the virtual address and physical address of the first memory and the address of the second memory in association with each application as the memory management information.
- the memory controller according to any one of 7).
- the control unit generates a new entry when there is no entry of the memory management information corresponding to the application and virtual address specified in the registration request of the memory management information, and the corresponding entry exists
- the memory controller according to (8), wherein the physical address specified in the registration request is registered in the entry.
- (10) a first memory which is a volatile memory;
- a second memory which is a non-volatile memory,
- a memory management information registration unit that registers the physical address of the first memory and the address of the second memory in association with each management unit as an entry of memory management information;
- Data is saved from the first memory to the second memory in accordance with the memory management information in response to a save request, and data is transferred from the second memory to the first memory in accordance with the memory management information in response to a restore request
- a control unit for restoring a memory module a control unit for restoring a memory module.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本技術は、メモリコントローラに関する。詳しくは、揮発メモリの内容を不揮発メモリにセーブし、リストアするメモリコントローラおよびメモリモジュールに関する。 The present technology relates to a memory controller. More particularly, the present invention relates to a memory controller and memory module for saving and restoring the contents of volatile memory in nonvolatile memory.
従来のメモリ装置では、揮発メモリの内容の消失を防ぐため、不揮発メモリにセーブし、その後リストアする技術が用いられている。例えば、電源遮断のイベントに応答して、揮発メモリであるDRAMのデータを、不揮発メモリであるNVRAMにセーブするメモリ装置が提案されている(例えば、特許文献1参照。)。 In the conventional memory device, in order to prevent the loss of the content of the volatile memory, a technique of saving in the non-volatile memory and then restoring is used. For example, there has been proposed a memory device which saves data of a volatile memory, DRAM, in a nonvolatile memory, NVRAM, in response to a power-off event (see, for example, Patent Document 1).
上述の従来技術では、プログラム毎に揮発メモリおよび不揮発メモリのアドレスを管理して、それに従って揮発メモリのデータを不揮発メモリにセーブしている。この従来技術では、各プログラムが揮発メモリの連続領域に記憶されていることを想定しており、プログラム毎に1つのアドレスを管理している。しかしながら、オペレーティングシステム上で動作するアプリケーションのデータは、離散的な物理アドレスにマッピングされることが多く、そのようなデータを適切にセーブすることができないという問題がある。 In the above-mentioned prior art, the addresses of the volatile memory and the non-volatile memory are managed for each program, and the data of the volatile memory is saved in the non-volatile memory accordingly. In this prior art, it is assumed that each program is stored in a continuous area of volatile memory, and one address is managed for each program. However, data of applications operating on the operating system are often mapped to discrete physical addresses, and there is a problem that such data can not be saved properly.
本技術はこのような状況に鑑みて生み出されたものであり、揮発メモリの離散的な物理アドレスにマッピングされているデータであっても、適切に不揮発メモリにセーブすることを目的とする。 The present technology has been created in view of such a situation, and it is an object of the present invention to appropriately save data that is mapped to discrete physical addresses of volatile memory in nonvolatile memory.
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、揮発メモリである第1のメモリの物理アドレスと不揮発メモリである第2のメモリのアドレスとを管理単位毎に関連付けてメモリ管理情報のエントリとして登録するメモリ管理情報登録部と、セーブリクエストに応じて上記メモリ管理情報に従って上記第1のメモリから上記第2のメモリにデータをセーブし、リストアリクエストに応じて上記メモリ管理情報に従って上記第2のメモリから上記第1のメモリにデータをリストアする制御部とを具備するメモリコントローラおよびメモリモジュールである。これにより、第1のメモリの物理アドレスに分散して記憶されているデータを管理単位毎に第2のメモリにセーブし、リストアするという作用をもたらす。 The present technology has been made to solve the above-mentioned problems, and a first aspect of the present technology has a physical address of a first memory which is a volatile memory and an address of a second memory which is a nonvolatile memory. A memory management information registration unit for registering as an entry of memory management information in association with each management unit, and saving data from the first memory to the second memory according to the memory management information in response to a save request, and a restore request And a controller configured to restore data from the second memory to the first memory in accordance with the memory management information. This brings about an effect of saving and restoring data stored in a distributed manner at the physical address of the first memory in the second memory for each management unit.
また、この第1の側面において、上記メモリ管理情報登録部は、上記メモリ管理情報としてアプリケーション毎に関連付けて上記第1のメモリの物理アドレスと上記第2のメモリのアドレスとを登録するようにしてもよい。これにより、アプリケーション毎にセーブおよびそのリストアを行うという作用をもたらす。 In the first aspect, the memory management information registration unit registers the physical address of the first memory and the address of the second memory in association with each application as the memory management information. It is also good. This brings about the effect | action of saving and restoring the application for every application.
また、この第1の側面において、上記制御部は、上記セーブリクエストにおいて指定されたアプリケーションに対応する上記メモリ管理情報のエントリに従って上記第1のメモリの物理アドレスから上記第2のメモリのアドレスにデータをセーブし、上記リストアリクエストにおいて指定されたアプリケーションに対応する上記メモリ管理情報のエントリに従って上記第2のメモリのアドレスから上記第1のメモリの物理アドレスにデータをリストアするようにしてもよい。これにより、各アプリケーションの管理単位毎に物理アドレスを用いてセーブおよびそのリストアを行うという作用をもたらす。 Further, according to the first aspect, the control unit causes data from the physical address of the first memory to the address of the second memory according to the entry of the memory management information corresponding to the application specified in the save request. The data may be restored from the address of the second memory to the physical address of the first memory according to the entry of the memory management information corresponding to the application specified in the restore request. This brings about the effect | action of performing a save and its restore using a physical address for every management unit of each application.
また、この第1の側面において、上記メモリ管理情報登録部は、上記メモリ管理情報としてアプリケーション毎に関連付けて上記第1のメモリの物理アドレスと上記第2のメモリのアドレスとセーブ動作に関する属性とを登録し、上記制御部は、上記セーブリクエストにおいて指定されたアプリケーションに対応する上記メモリ管理情報のエントリの属性に従って上記第1のメモリの物理アドレスから上記第2のメモリのアドレスにデータをセーブするようにしてもよい。これにより、管理単位毎に属性によってセーブの要否を指示するという作用をもたらす。 In the first aspect, the memory management information registration unit associates the physical address of the first memory, the address of the second memory, and the attribute relating to the save operation in association with each application as the memory management information. The control unit stores data from the physical address of the first memory to the address of the second memory according to the attribute of the entry of the memory management information corresponding to the application specified in the save request. You may This brings about the effect | action of instruct | indicating the necessity of a save with an attribute for every management unit.
また、この第1の側面において、上記制御部は、ホストコンピュータとの間のメモリアクセスインターフェースに接続して上記ホストコンピュータからの要求に応じて上記第1または第2のメモリにアクセスを行うようにしてもよい。これにより、第1のメモリと第2のメモリの区別を意識させることなくホストコンピュータからの要求を受け付けるという作用をもたらす。 In addition, in the first aspect, the control unit is connected to a memory access interface with a host computer to access the first or second memory in response to a request from the host computer. May be This brings about the effect of accepting a request from the host computer without making the distinction between the first memory and the second memory conscious.
また、この第1の側面において、上記メモリ管理情報における各エントリに対応する上記管理単位のサイズを管理サイズとして設定する管理サイズ設定部をさらに具備し、上記制御部は、上記管理サイズに従って上記セーブリクエストまたは上記リストアリクエストに対応する処理を行うようにしてもよい。これにより、管理サイズを設定させるという作用をもたらす。 Further, according to the first aspect, the computer system further comprises a management size setting unit for setting the size of the management unit corresponding to each entry in the memory management information as a management size, and the control unit saves the above according to the management size. A process corresponding to the request or the restore request may be performed. This brings about the effect of setting the management size.
また、この第1の側面において、上記制御部は、上記メモリ管理情報の登録リクエストにおいて指定されたアプリケーションに対応する上記メモリ管理情報のエントリが存在しない場合には新たなエントリを生成し、対応するエントリが存在する場合にはその登録リクエストにおいて指定された物理アドレスをそのエントリに登録するようにしてもよい。これにより、メモリ管理情報を登録させるという作用をもたらす。 In addition, in the first aspect, the control unit generates a new entry when there is no entry of the memory management information corresponding to the application specified in the registration request of the memory management information, and responds to the entry. If an entry exists, the physical address specified in the registration request may be registered in the entry. This brings about the effect | action of making memory management information register.
また、この第1の側面において、上記メモリ管理情報登録部は、上記メモリ管理情報としてアプリケーション毎に関連付けて上記第1のメモリの仮想アドレスおよび物理アドレスと上記第2のメモリのアドレスとを登録するようにしてもよい。これにより、各アプリケーションの任意の管理単位をセーブするという作用をもたらす。 In the first aspect, the memory management information registration unit registers the virtual address and physical address of the first memory and the address of the second memory in association with each application as the memory management information. You may do so. This brings about the effect of saving an arbitrary management unit of each application.
また、この第1の側面において、上記制御部は、上記メモリ管理情報の登録リクエストにおいて指定されたアプリケーションおよび仮想アドレスに対応する上記メモリ管理情報のエントリが存在しない場合には新たなエントリを生成し、対応するエントリが存在する場合にはその登録リクエストにおいて指定された物理アドレスをそのエントリに登録するようにしてもよい。これにより、仮想アドレスを含むメモリ管理情報を登録させるという作用をもたらす。 In the first aspect, the control unit generates a new entry when there is no entry of the memory management information corresponding to the application and virtual address designated in the registration request of the memory management information. If there is a corresponding entry, the physical address specified in the registration request may be registered in the entry. This brings about the effect | action of registering memory management information containing a virtual address.
本技術によれば、揮発メモリの離散的な物理アドレスにマッピングされているデータであっても、適切に不揮発メモリにセーブすることができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。 According to the present technology, it is possible to achieve an excellent effect that even data mapped to discrete physical addresses of volatile memory can be properly saved in nonvolatile memory. In addition, the effect described here is not necessarily limited, and may be any effect described in the present disclosure.
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(メモリ管理情報により管理単位毎に管理する例)
2.第2の実施の形態(メモリ管理情報に揮発メモリの仮想アドレスを記憶する例)
3.第3の実施の形態(メモリ管理情報に属性情報を記憶する例)
4.第4の実施の形態(メモリモジュールのアドレス空間を仮想化する例)
Hereinafter, modes for implementing the present technology (hereinafter, referred to as embodiments) will be described. The description will be made in the following order.
1. First embodiment (example of managing each management unit by memory management information)
2. Second embodiment (example of storing virtual address of volatile memory in memory management information)
3. Third embodiment (example of storing attribute information in memory management information)
4. Fourth Embodiment (Example of virtualizing the address space of a memory module)
<1.第1の実施の形態>
[システム構成]
図1は、本技術の第1の実施の形態における情報処理システムの全体構成の一例を示す図である。このシステムは、ホストコンピュータ100およびメモリモジュール200を備える。
<1. First embodiment>
[System configuration]
FIG. 1 is a diagram illustrating an example of an entire configuration of an information processing system according to a first embodiment of the present technology. The system comprises a
ホストコンピュータ100は、メモリモジュール200から読み出したデータについて処理を行い、その処理結果のデータをメモリモジュール200に書き込むものである。このホストコンピュータ100は、プロセッサ110と、メモリ管理部120と、メモリアクセス部130と、メモリモジュール制御部140と、電源150とを備える。
The
プロセッサ110は、ホストコンピュータ100としての処理を行う処理装置である。オペレーティングシステムおよびその上で動作するアプリケーションは、このプロセッサ110により実行される。
The
メモリ管理部120は、メモリモジュール200におけるメモリ空間の管理を行うメモリ管理ユニット(MMU:Memory Management Unit)である。このメモリ管理部120は、その処理の一部として、論理アドレスと物理アドレスの間の変換処理を行う。
The
メモリアクセス部130は、メモリモジュール200に対するアクセスを制御するものである。このメモリアクセス部130は、メモリアクセスインターフェース103を介してメモリモジュール200と接続し、メモリモジュール200に対するデータのライトおよびリードのアクセスを行う。
The
メモリモジュール制御部140は、メモリモジュール200を使用するための制御を行うものである。このメモリモジュール制御部140は、メモリ制御インターフェース104を介してメモリモジュール200と接続して、メモリモジュール200に対するリクエストを発行する。メモリ制御インターフェース104としては、例えば、I2Cのようなシリアルバスが想定される。
The memory
電源150は、ホストコンピュータ100の電源である。この電源150は、電源ライン105を介してメモリモジュール200にも接続されており、メモリモジュール200に電源を供給する。この電源150の電圧レベルはオペレーティングシステムによって監視されており、瞬間停電(瞬停)などのイベントが検出されると、メモリモジュール制御部140はメモリ制御インターフェース104を介してメモリモジュール200にセーブリクエストを発行する。これにより、メモリモジュール200において揮発メモリ210から不揮発メモリ220へのセーブ処理が行われる。
The
メモリモジュール200は、ホストコンピュータ100からの要求に従ってデータを読み書きするメモリ装置である。このメモリモジュール200は、揮発メモリ210と、不揮発メモリ220と、マルチプレクサ230と、メモリコントローラ240と、バックアップ電源250と、電源制御部260とを備える。
The
揮発メモリ210は、記憶を維持するために電源供給を必要とするメモリである。例えば、DRAM(Dynamic Random Access Memory)等が想定される。なお、揮発メモリ210は、特許請求の範囲に記載の第1のメモリの一例である。
The
不揮発メモリ220は、記憶を維持するために電源供給を必要としないメモリである。例えば、ReRAM(Resistance RAM)、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)、NANDフラッシュ等が想定される。なお、不揮発メモリ220は、特許請求の範囲に記載の第2のメモリの一例である。
The
マルチプレクサ230は、揮発メモリ210の接続先をメモリコントローラ240またはホストコンピュータ100の何れか一方に切り替えるものである。ホストコンピュータ100が揮発メモリ210にアクセスする際には、マルチプレクサ230は揮発メモリ210の接続先をホストコンピュータ100(メモリアクセスインターフェース103)に切り替える。不揮発メモリ220へのセーブやリストアを行う際には、マルチプレクサ230は揮発メモリ210の接続先をメモリコントローラ240に切り替える。
The
メモリコントローラ240は、揮発メモリ210および不揮発メモリ220に対するアクセスを制御するものである。このメモリコントローラ240は、ホストコンピュータ100からメモリ制御インターフェース104を介して受けたリクエストをデコードして、リクエストに応じた処理を行う。
The
バックアップ電源250は、電源ライン105を介した電源150からの電源供給が瞬間停電などにより途絶えた場合に使用される電源である。このバックアップ電源250は、大容量のコンデンサ(supercapacitor)であり、揮発メモリ210から不揮発メモリ220にセーブするために必要な時間(例えば、1分から数十秒程度)、メモリモジュール200に電源を供給する機能を有する。
The
電源制御部260は、メモリモジュール200の電源を制御するものである。この電源制御部260は、通常運転時には電源ライン105を介して電源150から受けた電源を全体に供給し、瞬間停電などの際にはバックアップ電源250からの電源を全体に供給するように切り替える。
The
図2は、本技術の第1の実施の形態におけるメモリコントローラ240の構成例を示す図である。
FIG. 2 is a diagram showing a configuration example of the
メモリコントローラ240は、リクエストデコーダ241と、制御部242と、管理サイズ情報設定部243と、メモリ管理情報登録部244とを備える。
The
リクエストデコーダ241は、ホストコンピュータ100からメモリ制御インターフェース104を介して受けたリクエストをデコードするデコーダである。このリクエストデコーダ241は、リクエストを判別して、制御部242に判別結果を供給する。
The
制御部242は、リクエストデコーダ241によるリクエストの判別結果に従って揮発メモリ210および不揮発メモリ220に関する処理を行うものである。この制御部242は、例えば、揮発メモリ210から不揮発メモリ220のデータ領域へのセーブおよびそのリストアを行う。処理の詳細については後述する。
The
管理サイズ情報設定部243は、揮発メモリ210から不揮発メモリ220へのセーブおよびそのリストアを行う際の管理単位のサイズを管理サイズとして設定するものである。設定された管理サイズは不揮発メモリ220に記憶される。
The management size
メモリ管理情報登録部244は、揮発メモリ210から不揮発メモリ220へのセーブおよびそのリストアを行う際の、揮発メモリ210と不揮発メモリ220との対応関係を管理するメモリ管理情報を登録するものである。登録されたメモリ管理情報は不揮発メモリ220に記憶される。
The memory management
[管理サイズ情報およびメモリ管理情報]
図3は、本技術の第1の実施の形態における管理サイズ情報およびメモリ管理情報の一例を示す図である。
[Management size information and memory management information]
FIG. 3 is a diagram illustrating an example of management size information and memory management information according to the first embodiment of the present technology.
管理サイズ情報は、揮発メモリ210から不揮発メモリ220へのセーブおよびそのリストアを行う際の管理単位のサイズである管理サイズを備える。この例では、管理単位として4KBを想定している。この管理サイズはオペレーティングシステムの管理単位に合わせて設定することができる。したがって、オペレーティングシステムにおいて例えば2MBのラージページ等が使用されている場合には、この管理サイズもそのようなサイズに設定することができる。
The management size information includes a management size which is a size of a management unit when saving from the
メモリ管理情報は、管理単位毎にエントリを備え、各エントリは、アプリケーション識別子と、揮発メモリ210の物理アドレスと、不揮発メモリ220のアドレスとを関連付けて記憶している。
The memory management information has an entry for each management unit, and each entry associates and stores an application identifier, a physical address of the
アプリケーション識別子は、プロセッサ110によって実行されるアプリケーションプログラムを識別するための識別子である。この例では、「1」および「2」の2つのアプリケーション識別子が示されている。
The application identifier is an identifier for identifying an application program executed by the
揮発メモリ210の物理アドレスは、管理サイズ情報として設定された管理サイズを単位として0から割り当ててもよく、また、バイト単位で示してもよい。
The physical address of the
[セーブとリストア]
図4は、本技術の第1の実施の形態におけるセーブ動作の一例を示す図である。
[Save and restore]
FIG. 4 is a diagram illustrating an example of the save operation according to the first embodiment of the present technology.
複数のアプリケーションが動作しているときには、それぞれが仮想アドレス空間上で動作している。ホストコンピュータ100のメモリ管理部120は、仮想アドレス空間をあるサイズで区切り、その区切られた単位で物理アドレスに変換している。この実施の形態では、上述のように4KBを想定している。物理アドレスの割当ては、ホストコンピュータ100のメモリ管理部120によって行われるが、毎回同じ物理アドレスに割り当てられるとは限らない。したがって、源断時のセーブと次の電源オン時において異なる物理アドレスが割り当てられた時でも、データを復元(リストア)できるようにする必要がある。
When multiple applications are operating, each is operating on the virtual address space. The
この例では、アプリケーション識別子が「1」であるアプリケーション#1の仮想アドレス空間はn個のページにより形成され、アプリケーション識別子が「2」であるアプリケーション#2の仮想アドレス空間はm個のページにより形成される。これらのページは、揮発メモリ210の物理アドレス空間において離散的に配置される。
In this example, the virtual address space of
セーブ動作においては、メモリ管理情報に従って、揮発メモリ210の物理アドレス空間において離散的に配置される管理単位のデータを、不揮発メモリ220の連続領域に保存する。これにより、不揮発メモリ220の未使用領域の保存が不要になり、セーブ時間を短くすることができ、また、不揮発メモリ220の使用容量も少なくすることができるという利点がある。
In the save operation, data of management units discretely arranged in the physical address space of the
図5は、本技術の第1の実施の形態におけるリストア動作の一例を示す図である。 FIG. 5 is a diagram illustrating an example of a restore operation according to the first embodiment of the present technology.
リストア動作においては、メモリ管理情報に従って、不揮発メモリ220の連続領域に保存されている管理単位のデータを揮発メモリ210の物理アドレス空間にリストアする。
In the restore operation, data of a management unit stored in the continuous area of the
このとき、リストア前にメモリ管理情報を書き換えると、揮発メモリ210の異なる物理領域にリストアすることができる。すなわち、電源断の後の起動時には、オペレーティングシステムによってセーブ時とは異なる物理アドレスが割り当てられる可能性があるが、この実施の形態によれば、その場合であっても適切な物理領域にリストアすることができる。
At this time, if memory management information is rewritten before restoration, restoration can be performed to a different physical area of the
[リクエストの種別]
図6は、本技術の第1の実施の形態におけるメモリコントローラ240に発行されるリクエストの例を示す図である。
Request Type
FIG. 6 is a diagram illustrating an example of a request issued to the
ここでは、メモリ制御インターフェース104を介してメモリコントローラ240に発行される4つのリクエストを例示して説明する。メモリ制御インターフェース104を介して発行されるリクエストには、リクエスト識別子が示されており、これをリクエストデコーダ241によってデコードすることにより、そのリクエストの種類を判別することができる。
Here, four requests issued to the
リクエスト識別子が「1」を示す場合には、そのリクエストは管理サイズ設定リクエストであると判別される。この管理サイズ設定リクエストは、「管理サイズ」を引数として渡す。これにより、制御部242は、その管理サイズを設定する。
If the request identifier indicates "1", the request is determined to be a management size setting request. This management size setting request passes "management size" as an argument. Thereby, the
リクエスト識別子が「2」を示す場合には、そのリクエストはメモリ管理情報登録リクエストであると判別される。このメモリ管理情報登録リクエストは、「アプリケーション識別子」および「物理アドレス」を引数として渡す。これにより、制御部242は、メモリ管理情報を登録する。
If the request identifier indicates “2”, the request is determined to be a memory management information registration request. This memory management information registration request passes "application identifier" and "physical address" as arguments. Thus, the
リクエスト識別子が「3」を示す場合には、そのリクエストはセーブリクエストであると判別される。このセーブリクエストは、「セーブ対象数」およびその数に応じた「アプリケーション識別子」を引数として渡す。これにより、制御部242は、アプリケーション識別子に対応するデータを揮発メモリ210から不揮発メモリ220にセーブする。なお、「アプリケーション識別子」を指定する代わりに、全てのアプリケーション識別子を対象として指示するようにしてもよい。
If the request identifier indicates "3", the request is determined to be a save request. This save request passes, as arguments, the "number of items to be saved" and the "application identifier" corresponding to the number. Thereby, the
リクエスト識別子が「4」を示す場合には、そのリクエストはリストアリクエストであると判別される。このリストアリクエストは、「リストア対象数」およびその数に応じた「アプリケーション識別子」を引数として渡す。これにより、制御部242は、アプリケーション識別子に対応するデータを不揮発メモリ220から揮発メモリ210にリストアする。なお、「アプリケーション識別子」を指定する代わりに、全てのアプリケーション識別子を対象として指示するようにしてもよい。
If the request identifier indicates "4," the request is determined to be a restore request. This restore request passes the "number of items to be restored" and the "application identifier" corresponding to the number as arguments. Thereby, the
[動作]
図7は、本技術の実施の形態におけるメモリコントローラ240の処理手順の一例を示す流れ図である。
[Operation]
FIG. 7 is a flowchart illustrating an example of the processing procedure of the
メモリコントローラ240は、メモリ制御インターフェース104を介してリクエストを受けると(ステップS911)、リクエストデコーダ241によってデコードを行って、リクエストの種別に応じた処理を行う(ステップS912乃至S915)。すなわち、リクエストの種別が管理サイズ設定リクエストであれば(ステップS912:Yes)、管理サイズ設定処理を行う(ステップS920)。リクエストの種別がメモリ管理情報登録リクエストであれば(ステップS913:Yes)、メモリ管理情報登録処理を行う(ステップS930)。リクエストの種別がセーブリクエストであれば(ステップS914:Yes)、セーブ動作の処理を行う(ステップS940)。リクエストの種別がリストアリクエストであれば(ステップS915:Yes)、リストア動作の処理を行う(ステップS950)。
When the
なお、リクエストの種別がここに示した4つ以外の場合には(ステップS915:No)その他の処理を行う(ステップS916)。その他のリクエストとしては、例えば、メモリ管理情報のエントリを削除するリクエストなどが想定される。 If the request type is other than the four shown here (step S915: No), the other processing is performed (step S916). As another request, for example, a request for deleting an entry of memory management information is assumed.
図8は、本技術の第1の実施の形態における管理サイズ設定処理の処理手順の一例を示す流れ図である。 FIG. 8 is a flowchart illustrating an example of a processing procedure of management size setting processing according to the first embodiment of the present technology.
管理サイズ情報設定部243は、管理サイズ設定リクエストの引数として渡された「管理サイズ」を管理単位のサイズとして設定する(ステップS921)。そして、その管理サイズを不揮発メモリ220の管理サイズ情報に保存する(ステップS922)。
The management size
図9は、本技術の第1の実施の形態におけるメモリ管理情報登録処理の処理手順の一例を示す流れ図である。なお、1つのアプリケーション識別子に対して複数のエントリが対応し得るが、この第1の実施の形態では仮想アドレスが引数として指定されないことを想定している。したがって、メモリ管理情報を登録する際には、例えば仮想アドレスが小さい順に各エントリに登録することになる。 FIG. 9 is a flowchart illustrating an example of a processing procedure of memory management information registration processing according to the first embodiment of the present technology. Although a plurality of entries may correspond to one application identifier, it is assumed in the first embodiment that a virtual address is not designated as an argument. Therefore, when registering memory management information, for example, virtual addresses are registered in each entry in ascending order.
メモリ管理情報登録部244は、以下の手順によりメモリ管理情報を登録する。まず、メモリ管理情報登録リクエストの引数として渡された「アプリケーション識別子」のエントリがメモリ管理情報として登録されているか否かを検索する(ステップS931)。
The memory management
既に登録されていれば(ステップS931:Yes)、その登録されているエントリの物理アドレスを、メモリ管理情報登録リクエストの引数として渡された「物理アドレス」により置き換えて、不揮発メモリ220のメモリ管理情報に保存する(ステップS932)。 If already registered (step S 931: Yes), the physical address of the registered entry is replaced with the “physical address” passed as an argument of the memory management information registration request, and the memory management information of the non-volatile memory 220 (Step S932).
一方、未だ登録されていなければ(ステップS931:No)、不揮発メモリ220において領域を割り当てて、その領域の先頭アドレスとメモリ管理情報登録リクエストの引数の情報を合わせて、メモリ管理情報の1つのエントリを生成する(ステップS933)。そして、その生成されたメモリ管理情報の1つのエントリを、不揮発メモリ220のメモリ管理情報に保存する(ステップS934)。
On the other hand, if it is not registered yet (step S 931: No), an area is allocated in the
図10は、本技術の第1の実施の形態におけるセーブ動作の処理手順の一例を示す流れ図である。 FIG. 10 is a flowchart illustrating an example of the processing procedure of the save operation according to the first embodiment of the present technology.
制御部242は、以下の手順によりセーブ動作の処理を行う。まず、セーブリクエストの引数として渡された「アプリケーション識別子」を順次、処理対象のアプリケーション識別子として設定する(ステップS942)。そして、その処理対象のアプリケーション識別子のエントリを、不揮発メモリ220に保存されているメモリ管理情報から検索する(ステップS943)。
The
処理対象のアプリケーション識別子のエントリでセーブを行っていないデータがあれば(ステップS944:Yes)、読み出したエントリに基づいて、揮発メモリ210から管理単位分のデータを不揮発メモリ220に転送してセーブする(ステップS946)。すなわち、メモリ管理情報のエントリの揮発メモリ210の物理アドレスから不揮発メモリ220のアドレスにセーブを行う。そして、ステップS943に戻って、処理対象のアプリケーション識別子の他のエントリを検索する。
If there is data that has not been saved in the entry of the application identifier to be processed (step S 944: Yes), data of the management unit is transferred from the
一方、処理対象のアプリケーション識別子において全ての管理単位のセーブが完了すると(ステップS944:No)、セーブリクエストの引数として渡された「アプリケーション識別子」の中で、他にセーブ対象となるものがないか判断する(ステップS947)。まだセーブしていないアプリケーション識別子があれば(ステップS947:No)、ステップS942に戻って、処理対象のアプリケーション識別子として設定する。 On the other hand, when saving of all the management units in the application identifier to be processed is completed (step S 944: No), is there any other application target to be saved among the “application identifiers” passed as an argument of save request? It judges (step S947). If there is an application identifier that has not been saved yet (step S947: No), the process returns to step S942 and is set as an application identifier to be processed.
図11は、本技術の第1の実施の形態におけるリストア動作の処理手順の一例を示す流れ図である。 FIG. 11 is a flowchart illustrating an example of the processing procedure of the restore operation according to the first embodiment of the present technology.
制御部242は、以下の手順によりリストア動作の処理を行う。まず、不揮発メモリ220から管理サイズ情報を読み出して、管理単位を設定する(ステップS951)。また、リストアリクエストの引数として渡された「アプリケーション識別子」を順次、処理対象のアプリケーション識別子として設定する(ステップS952)。そして、その処理対象のアプリケーション識別子のエントリを、不揮発メモリ220に保存されているメモリ管理情報から検索する(ステップS953)。
The
処理対象のアプリケーション識別子のエントリでリストアを行っていないデータがあれば(ステップS954:Yes)、読み出したエントリに基づいて、不揮発メモリ220から管理単位分のデータを揮発メモリ210に転送してリストアする(ステップS956)。すなわち、メモリ管理情報のエントリの不揮発メモリ220のアドレスから揮発メモリ210の物理アドレスにリストアを行う。そして、ステップS953に戻って、処理対象のアプリケーション識別子の他のエントリを検索する。
If there is data that has not been restored in the entry of the application identifier to be processed (step S954: Yes), data for the management unit is transferred from the
一方、処理対象のアプリケーション識別子において全ての管理単位のリストアが完了すると(ステップS954:No)、リストアリクエストの引数として渡された「アプリケーション識別子」の中で、他にリストア対象となるものがないか判断する(ステップS957)。まだリストアしていないアプリケーション識別子があれば(ステップS957:No)、ステップS952に戻って、処理対象のアプリケーション識別子として設定する。 On the other hand, when restoration of all the management units is completed in the application identifier to be processed (step S954: No), is there any other application object among the "application identifiers" passed as an argument of the restore request? It judges (step S957). If there is an application identifier that has not been restored (step S 957: No), the process returns to step S 952 and is set as an application identifier to be processed.
このように、本技術の第1の実施の形態によれば、揮発メモリ210の離散的な物理アドレスにマッピングされているデータを、メモリ管理情報として管理単位毎に管理することにより、不揮発メモリ220にセーブし、それをリストアすることができる。
As described above, according to the first embodiment of the present technology, the
<2.第2の実施の形態>
上述の第1の実施の形態では、セーブおよびリストアされるデータが仮想アドレス空間において連続していることを想定して、メモリ管理情報の各エントリには揮発メモリ210の物理アドレスのみを記憶していた。これに対し、この第2の実施の形態では、さらに揮発メモリ210の仮想アドレスを記憶することにより、仮想アドレス上の不連続領域についてもセーブおよびリストアの対象とする。すなわち、必要な個所を選択的にセーブすることが可能となる。
<2. Second embodiment>
In the first embodiment described above, only the physical address of the
なお、システム構成については上述の第1の実施の形態と同様であるため、詳細な説明は省略する。 The system configuration is the same as that of the first embodiment described above, and thus detailed description will be omitted.
[管理サイズ情報およびメモリ管理情報]
図12は、本技術の第2の実施の形態における管理サイズ情報およびメモリ管理情報の一例を示す図である。
[Management size information and memory management information]
FIG. 12 is a diagram illustrating an example of management size information and memory management information according to the second embodiment of the present technology.
管理サイズ情報については、上述の第1の実施の形態と同様であり、この例では、管理単位として4KBを想定している。 The management size information is the same as that of the first embodiment described above, and in this example, 4 KB is assumed as a management unit.
メモリ管理情報については、上述の第1の実施の形態に加えて、揮発メモリ210の仮想アドレスをさらに記憶している。この仮想アドレスとしては、アプリケーション毎に異なるアドレス空間を割り当てることができる。このように、メモリ管理情報として揮発メモリ210の仮想アドレスを管理することにより、必要な仮想アドレスのデータのみをセーブすることができる。
As for the memory management information, in addition to the first embodiment described above, the virtual address of the
[セーブとリストア]
図13は、本技術の第2の実施の形態におけるセーブ動作の一例を示す図である。
[Save and restore]
FIG. 13 is a diagram illustrating an example of the save operation according to the second embodiment of the present technology.
上述の第1の実施の形態では、仮想アドレス空間において連続する領域をセーブしていたが、この第2の実施の形態ではメモリ管理情報の各エントリに揮発メモリ210の仮想アドレスを記憶することにより、セーブ対象となる離散的領域を仮想アドレスにより選択的に指示することができる。
In the first embodiment described above, the continuous area is saved in the virtual address space, but in the second embodiment, the virtual address of the
この場合においても、セーブされたデータは不揮発メモリ220の連続領域に保存される。したがって、アプリケーション#1のうちk個の管理単位がメモリ管理情報に登録されていた場合には、不揮発メモリ220上の連続するk個の管理単位の領域に記憶される。
Also in this case, the saved data is saved in the continuous area of the
図14は、本技術の第2の実施の形態におけるリストア動作の一例を示す図である。 FIG. 14 is a diagram illustrating an example of a restore operation according to the second embodiment of the present technology.
この第2の実施の形態においては、上述のように、セーブ動作において仮想アドレス空間における離散的領域が、不揮発メモリ220の連続領域に保存される。したがって、リストア動作においては、不揮発メモリ220の連続領域に記憶された管理単位が個別に、仮想アドレス空間にリストアされる。すなわち、揮発メモリ210においてリストアされない管理単位も生じ得る。
In the second embodiment, as described above, discrete areas in the virtual address space are saved in the continuous area of the
[リクエストの種別]
図15は、本技術の第2の実施の形態におけるメモリコントローラ240に発行されるリクエストの例を示す図である。
Request Type
FIG. 15 is a diagram illustrating an example of a request issued to the
この第2の実施の形態では、管理サイズ設定リクエスト、セーブリクエストおよびリストアリクエストについては、上述の第1の実施の形態と同様である。そして、メモリ管理情報登録リクエストについては、上述の第1の実施の形態の場合に加えて、揮発メモリ210の「仮想アドレス」を引数として渡すものとなっている。この引数に基づいて、この第2の実施の形態では、メモリ管理情報を登録する際に、各エントリに仮想アドレスを合わせて登録する。
In the second embodiment, the management size setting request, the save request, and the restore request are the same as those in the first embodiment described above. Then, as for the memory management information registration request, in addition to the case of the first embodiment described above, the “virtual address” of the
[動作]
図16は、本技術の第2の実施の形態におけるメモリ管理情報登録処理の処理手順の一例を示す流れ図である。なお、他の処理の処理手順については、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
[Operation]
FIG. 16 is a flowchart illustrating an example of a processing procedure of memory management information registration processing according to the second embodiment of the present technology. The processing procedure of the other processing is the same as that of the first embodiment described above, and thus detailed description will be omitted.
上述の第1の実施の形態では、メモリ管理情報登録リクエストの引数として渡された「アプリケーション識別子」のエントリがメモリ管理情報として登録されているか否かを検索していた(ステップS931)。これに対して、この第2の実施の形態では、メモリ管理情報登録リクエストの引数として渡された「アプリケーション識別子」および「仮想アドレス」の組合せを有するエントリがメモリ管理情報として登録されているか否かを検索する(ステップS935)。その結果、該当するエントリが既に登録されていればステップS932を実行し、まだ登録されていなければステップS933を実行する。以降の処理内容については上述の第1の実施の形態と同様である。 In the first embodiment described above, it is searched whether or not the entry of “application identifier” passed as an argument of the memory management information registration request is registered as memory management information (step S 931). On the other hand, in the second embodiment, whether or not the entry having the combination of “application identifier” and “virtual address” passed as an argument of the memory management information registration request is registered as memory management information Is searched (step S935). As a result, if the corresponding entry is already registered, step S 932 is executed, and if not registered, step S 933 is executed. The contents of the subsequent processing are the same as in the first embodiment described above.
このように、本技術の第2の実施の形態によれば、メモリ管理情報として揮発メモリ210の仮想アドレスを管理することにより、必要な仮想アドレスのデータのみをセーブすることができる。
Thus, according to the second embodiment of the present technology, by managing the virtual address of the
<3.第3の実施の形態>
上述の第1および第2の実施の形態では、メモリ管理情報として管理される全ての管理単位のデータをセーブおよびリストアの対象としていた。これに対し、例えば、通常の電源オフと瞬間停電とによって異なるデータをセーブ対象としたい場合などが生じ得る。そこで、この第3の実施の形態では、管理単位毎にセーブの要否を条件付きで指定できるようにする。
<3. Third embodiment>
In the above-described first and second embodiments, data of all management units managed as memory management information are targets of save and restore. On the other hand, for example, there may occur a case where different data are to be saved due to normal power-off and instantaneous power failure. Therefore, in the third embodiment, it is possible to conditionally specify the necessity of saving for each management unit.
なお、システム構成については上述の第1の実施の形態と同様であるため、詳細な説明は省略する。 The system configuration is the same as that of the first embodiment described above, and thus detailed description will be omitted.
[管理サイズ情報およびメモリ管理情報]
図17は、本技術の第3の実施の形態における管理サイズ情報およびメモリ管理情報の一例を示す図である。
[Management size information and memory management information]
FIG. 17 is a diagram illustrating an example of management size information and memory management information according to the third embodiment of the present technology.
管理サイズ情報については、上述の第1の実施の形態と同様であり、この例では、管理単位として4KBを想定している。 The management size information is the same as that of the first embodiment described above, and in this example, 4 KB is assumed as a management unit.
メモリ管理情報については、上述の第2の実施の形態に加えて、属性情報をさらに記憶している。この属性情報は、セーブの際の条件を管理単位毎に指定するものであり、後述するセーブリクエストの引数の「属性条件」と合致することを条件としてセーブ動作を行うことになる。 As for memory management information, attribute information is further stored in addition to the second embodiment described above. This attribute information specifies the condition for saving for each management unit, and the save operation is performed on the condition that it matches the "attribute condition" of the argument of the save request described later.
[リクエストの種別]
図18は、本技術の第3の実施の形態におけるメモリコントローラ240に発行されるリクエストの例を示す図である。
Request Type
FIG. 18 is a diagram illustrating an example of a request issued to the
この第3の実施の形態では、管理サイズ設定リクエストおよびリストアリクエストについては、上述の第1の実施の形態と同様である。 In the third embodiment, the management size setting request and the restore request are the same as those in the first embodiment described above.
メモリ管理情報登録リクエストについては、上述の第1の実施の形態の場合に加えて、揮発メモリ210の「仮想アドレス」および「属性情報」を引数として渡すものとなっている。「仮想アドレス」については、上述の第2の実施の形態において追加したものと同様である。また、「属性情報」は、セーブの際の条件を管理単位毎に指定するものであり、上述のメモリ管理情報の属性情報として登録される。
For the memory management information registration request, in addition to the case of the first embodiment described above, the “virtual address” and “attribute information” of the
セーブリクエストについては、上述の第1の実施の形態の場合に加えて、「属性条件」を引数として渡すものとなっている。この「属性条件」は、メモリ管理情報の各エントリの属性情報と合致することを条件としてセーブ動作を行う旨を指定するものである。例えば、メモリ管理情報の属性情報として「1」または「2」の何れかが設定されているものとする。このとき、「属性条件」が「1」の場合には、メモリ管理情報の属性情報が「1」を示すエントリのみがセーブ対象となる。また、「属性条件」が「2」の場合には、メモリ管理情報の属性情報が「2」を示すエントリのみがセーブ対象となる。そして、「属性条件」が「3」の場合には、メモリ管理情報の属性情報が「1」を示すエントリ、および、「2」を示すエントリがセーブ対象となる。 As for the save request, in addition to the case of the first embodiment described above, the "attribute condition" is passed as an argument. The "attribute condition" designates that the save operation is to be performed on condition that the attribute information matches with the attribute information of each entry of the memory management information. For example, it is assumed that either “1” or “2” is set as attribute information of the memory management information. At this time, when the “attribute condition” is “1”, only the entry in which the attribute information of the memory management information indicates “1” is a save target. Further, when the “attribute condition” is “2”, only the entry in which the attribute information of the memory management information indicates “2” is a save target. Then, if the “attribute condition” is “3”, an entry indicating that the attribute information of the memory management information indicates “1” and an entry indicating “2” are to be saved.
[動作]
図19は、本技術の第3の実施の形態におけるセーブ動作の処理手順の一例を示す流れ図である。なお、他の処理の処理手順については、上述の第1または第2の実施の形態と同様であるため、詳細な説明は省略する。
[Operation]
FIG. 19 is a flowchart illustrating an example of the processing procedure of the save operation according to the third embodiment of the present technology. The processing procedure of the other processing is the same as that of the above-described first or second embodiment, and thus detailed description will be omitted.
制御部242は、以下の手順によりセーブ動作の処理を行う。ただし、ステップS942乃至S944、S946、および、S947については、上述の第1の実施の形態と同様である。
The
処理対象のアプリケーション識別子のエントリでセーブを行っていないデータがあれば(ステップS944:Yes)、ステップS946においてセーブを行う前に、その管理単位がセーブ対象の属性であるか否かが判断される(ステップS945)。すなわち、セーブリクエストの引数として渡された「属性条件」と、メモリ管理情報のエントリにおける「属性情報」とを比較して、その条件を満たす場合のみ(ステップS945:Yes)、セーブを行う(ステップS946)。そして、ステップS943に戻って、処理対象のアプリケーション識別子の他のエントリを検索する。 If there is data that has not been saved in the entry of the application identifier to be processed (step S 944: Yes), it is determined whether the management unit is a save target attribute before saving in step S 946 (Step S945). That is, the "attribute condition" passed as an argument of the save request is compared with the "attribute information" in the entry of the memory management information, and saving is performed only when the condition is satisfied (step S945: Yes) S946). Then, the process returns to step S943 to search for another entry of the application identifier to be processed.
このように、本技術の第3の実施の形態によれば、メモリ管理情報として「属性情報」を管理することにより、セーブリクエストの引数「属性条件」に合致する管理単位のみをセーブすることができる。例えば、通常の電源断においては永続データのみをセーブし、瞬間停電などにおいては永続データに加えてコアダンプのデータもセーブするといった使い分けを行うことができる。 Thus, according to the third embodiment of the present technology, by managing “attribute information” as memory management information, it is possible to save only the management unit that matches the argument “attribute condition” of the save request. it can. For example, in normal power-off, only permanent data can be saved, and in a momentary power failure or the like, core dump data can be saved in addition to permanent data.
<4.第4の実施の形態>
上述の実施の形態では、揮発メモリ210のアドレス空間に対してホストコンピュータ100から直接アクセス可能な構成を採用していた。これに対し、この第4の実施の形態では、ホストコンピュータ100からのアクセスは全てメモリコントローラ240が仲介するものとして、メモリ空間の仮想化を図る。
<4. Fourth embodiment>
In the above-described embodiment, the configuration in which the
[システム構成]
図20は、本技術の第4の実施の形態における情報処理システムの全体構成の一例を示す図である。
[System configuration]
FIG. 20 is a diagram illustrating an example of the entire configuration of the information processing system according to the fourth embodiment of the present technology.
この第4の実施の形態では、上述の第1の実施の形態におけるマルチプレクサ230がなく、メモリアクセスインターフェース103の接続先がメモリコントローラ240となっている。したがって、ホストコンピュータ100から揮発メモリ210に対するアクセスはメモリコントローラ240が仲介する。これにより、メモリモジュール200としてのアドレス空間は仮想化され、ホストコンピュータ100から揮発メモリ210か不揮発メモリ220かを意識することなく、メモリモジュール200にアクセスすることができる。また、電源遮断などの際には、上述の他の実施の形態と同様に、揮発メモリ210から不揮発メモリ220へのセーブ動作が行われる。
In the fourth embodiment, the
図21は、本技術の第4の実施の形態におけるメモリコントローラ240の構成例を示す図である。
FIG. 21 is a diagram illustrating a configuration example of the
この第4の実施の形態におけるメモリコントローラ240では、制御部242がメモリアクセスインターフェース103に接続する点において、上述の第1の実施の形態と異なっている。制御部242は、ホストコンピュータ100からのメモリアクセスを受けると、そのアドレスに応じてアクセス先を揮発メモリ210または不揮発メモリ220に振り分ける。これにより、ホストコンピュータ100に揮発メモリ210か不揮発メモリ220の区別を意識させることなく、ホストコンピュータ100からのアクセスを受け付けることができる。すなわち、メモリモジュール200としてのアドレス空間は仮想化される。
The
このように、本技術の第4の実施の形態によれば、制御部242においてホストコンピュータ100からのメモリアクセスのアクセス先を振り分けることにより、メモリモジュール200としてのアドレス空間を仮想化することができる。
As described above, according to the fourth embodiment of the present technology, the address space as the
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。 Note that the above-described embodiment shows an example for embodying the present technology, and the matters in the embodiment and the invention-specifying matters in the claims have correspondence relationships. Similarly, the invention specific matter in the claims and the matter in the embodiment of the present technology with the same name as this have a correspondence relation, respectively. However, the present technology is not limited to the embodiments, and can be embodied by variously modifying the embodiments without departing from the scope of the present technology.
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。 Further, the processing procedure described in the above embodiment may be regarded as a method having a series of these procedures, and a program for causing a computer to execute the series of procedures or a recording medium storing the program. You may catch it. As this recording medium, for example, a CD (Compact Disc), an MD (Mini Disc), a DVD (Digital Versatile Disc), a memory card, a Blu-ray disc (Blu-ray (registered trademark) Disc) or the like can be used.
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。 In addition, the effect described in this specification is an illustration to the last, is not limited, and may have other effects.
なお、本技術は以下のような構成もとることができる。
(1)揮発メモリである第1のメモリの物理アドレスと不揮発メモリである第2のメモリのアドレスとを管理単位毎に関連付けてメモリ管理情報のエントリとして登録するメモリ管理情報登録部と、
セーブリクエストに応じて前記メモリ管理情報に従って前記第1のメモリから前記第2のメモリにデータをセーブし、リストアリクエストに応じて前記メモリ管理情報に従って前記第2のメモリから前記第1のメモリにデータをリストアする制御部と
を具備するメモリコントローラ。
(2)前記メモリ管理情報登録部は、前記メモリ管理情報としてアプリケーション毎に関連付けて前記第1のメモリの物理アドレスと前記第2のメモリのアドレスとを登録する
前記(1)に記載のメモリコントローラ。
(3)前記制御部は、前記セーブリクエストにおいて指定されたアプリケーションに対応する前記メモリ管理情報のエントリに従って前記第1のメモリの物理アドレスから前記第2のメモリのアドレスにデータをセーブし、前記リストアリクエストにおいて指定されたアプリケーションに対応する前記メモリ管理情報のエントリに従って前記第2のメモリのアドレスから前記第1のメモリの物理アドレスにデータをリストアする
前記(2)に記載のメモリコントローラ。
(4)前記メモリ管理情報登録部は、前記メモリ管理情報としてアプリケーション毎に関連付けて前記第1のメモリの物理アドレスと前記第2のメモリのアドレスとセーブ動作に関する属性とを登録し、
前記制御部は、前記セーブリクエストにおいて指定されたアプリケーションに対応する前記メモリ管理情報のエントリの属性に従って前記第1のメモリの物理アドレスから前記第2のメモリのアドレスにデータをセーブする
前記(1)から(3)のいずれかに記載のメモリコントローラ。
(5)前記制御部は、ホストコンピュータとの間のメモリアクセスインターフェースに接続して前記ホストコンピュータからの要求に応じて前記第1または第2のメモリにアクセスを行う
前記(1)から(4)のいずれかに記載のメモリコントローラ。
(6)前記メモリ管理情報における各エントリに対応する前記管理単位のサイズを管理サイズとして設定する管理サイズ設定部をさらに具備し、
前記制御部は、前記管理サイズに従って前記セーブリクエストまたは前記リストアリクエストに対応する処理を行う
前記(1)から(5)のいずれかに記載のメモリコントローラ。
(7)前記制御部は、前記メモリ管理情報の登録リクエストにおいて指定されたアプリケーションに対応する前記メモリ管理情報のエントリが存在しない場合には新たなエントリを生成し、対応するエントリが存在する場合にはその登録リクエストにおいて指定された物理アドレスをそのエントリに登録する
前記(1)から(6)のいずれかに記載のメモリコントローラ。
(8)前記メモリ管理情報登録部は、前記メモリ管理情報としてアプリケーション毎に関連付けて前記第1のメモリの仮想アドレスおよび物理アドレスと前記第2のメモリのアドレスとを登録する
前記(1)から(7)のいずれかに記載のメモリコントローラ。
(9)前記制御部は、前記メモリ管理情報の登録リクエストにおいて指定されたアプリケーションおよび仮想アドレスに対応する前記メモリ管理情報のエントリが存在しない場合には新たなエントリを生成し、対応するエントリが存在する場合にはその登録リクエストにおいて指定された物理アドレスをそのエントリに登録する
前記(8)に記載のメモリコントローラ。
(10)揮発メモリである第1のメモリと、
不揮発メモリである第2のメモリと、
前記第1のメモリの物理アドレスと前記第2のメモリのアドレスとを管理単位毎に関連付けてメモリ管理情報のエントリとして登録するメモリ管理情報登録部と、
セーブリクエストに応じて前記メモリ管理情報に従って前記第1のメモリから前記第2のメモリにデータをセーブし、リストアリクエストに応じて前記メモリ管理情報に従って前記第2のメモリから前記第1のメモリにデータをリストアする制御部と
を具備するメモリモジュール。
The present technology can also be configured as follows.
(1) A memory management information registration unit that associates a physical address of a first memory, which is a volatile memory, and an address of a second memory, which is a non-volatile memory, with each management unit and registers them as entries of memory management information;
Data is saved from the first memory to the second memory in accordance with the memory management information in response to a save request, and data is transferred from the second memory to the first memory in accordance with the memory management information in response to a restore request And a controller for restoring the memory.
(2) The memory controller according to (1), wherein the memory management information registration unit registers the physical address of the first memory and the address of the second memory in association with each application as the memory management information. .
(3) The control unit saves data from the physical address of the first memory to the address of the second memory according to the entry of the memory management information corresponding to the application specified in the save request, and the restore The memory controller according to (2), wherein data is restored from the address of the second memory to the physical address of the first memory according to an entry of the memory management information corresponding to an application specified in a request.
(4) The memory management information registration unit registers, as the memory management information, the physical address of the first memory, the address of the second memory, and the attribute regarding the save operation in association with each application.
The control unit saves data from the physical address of the first memory to the address of the second memory according to the attribute of the entry of the memory management information corresponding to the application specified in the save request. The memory controller according to any one of (3) to (3).
(5) The control unit is connected to a memory access interface with a host computer, and accesses the first or second memory in response to a request from the host computer. Memory controller according to any of the.
(6) A management size setting unit configured to set the size of the management unit corresponding to each entry in the memory management information as a management size,
The memory controller according to any one of (1) to (5), wherein the control unit performs processing corresponding to the save request or the restore request according to the management size.
(7) The control unit generates a new entry when there is no entry of the memory management information corresponding to the application specified in the registration request of the memory management information, and when the corresponding entry exists. The memory controller according to any one of (1) to (6), wherein the physical address specified in the registration request is registered in the entry.
(8) The memory management information registration unit registers the virtual address and physical address of the first memory and the address of the second memory in association with each application as the memory management information. The memory controller according to any one of 7).
(9) The control unit generates a new entry when there is no entry of the memory management information corresponding to the application and virtual address specified in the registration request of the memory management information, and the corresponding entry exists The memory controller according to (8), wherein the physical address specified in the registration request is registered in the entry.
(10) a first memory which is a volatile memory;
A second memory, which is a non-volatile memory,
A memory management information registration unit that registers the physical address of the first memory and the address of the second memory in association with each management unit as an entry of memory management information;
Data is saved from the first memory to the second memory in accordance with the memory management information in response to a save request, and data is transferred from the second memory to the first memory in accordance with the memory management information in response to a restore request And a control unit for restoring a memory module.
100 ホストコンピュータ
103 メモリアクセスインターフェース
104 メモリ制御インターフェース
105 電源ライン
110 プロセッサ
120 メモリ管理部
130 メモリアクセス部
140 メモリモジュール制御部
150 電源
200 メモリモジュール
210 揮発メモリ
220 不揮発メモリ
230 マルチプレクサ
240 メモリコントローラ
241 リクエストデコーダ
242 制御部
243 管理サイズ情報設定部
244 メモリ管理情報登録部
250 バックアップ電源
260 電源制御部
100
Claims (10)
セーブリクエストに応じて前記メモリ管理情報に従って前記第1のメモリから前記第2のメモリにデータをセーブし、リストアリクエストに応じて前記メモリ管理情報に従って前記第2のメモリから前記第1のメモリにデータをリストアする制御部と
を具備するメモリコントローラ。 A memory management information registration unit that associates the physical address of the first memory, which is a volatile memory, and the address of the second memory, which is a non-volatile memory, in association with each management unit and registers it as an entry of memory management information;
Data is saved from the first memory to the second memory in accordance with the memory management information in response to a save request, and data is transferred from the second memory to the first memory in accordance with the memory management information in response to a restore request And a controller for restoring the memory.
請求項1記載のメモリコントローラ。 The memory controller according to claim 1, wherein the memory management information registration unit registers the physical address of the first memory and the address of the second memory in association with each application as the memory management information.
請求項2記載のメモリコントローラ。 The control unit saves data from the physical address of the first memory to the address of the second memory according to an entry of the memory management information corresponding to the application specified in the save request, and specifies the data in the restore request. 3. The memory controller according to claim 2, wherein data is restored from an address of the second memory to a physical address of the first memory according to an entry of the memory management information corresponding to the application.
前記制御部は、前記セーブリクエストにおいて指定されたアプリケーションに対応する前記メモリ管理情報のエントリの属性に従って前記第1のメモリの物理アドレスから前記第2のメモリのアドレスにデータをセーブする
請求項1記載のメモリコントローラ。 The memory management information registration unit registers, as the memory management information, the physical address of the first memory, the address of the second memory, and an attribute related to a save operation in association with each application.
The control unit is configured to save data from a physical address of the first memory to an address of the second memory according to an attribute of an entry of the memory management information corresponding to an application specified in the save request. Memory controller.
請求項1記載のメモリコントローラ。 The memory controller according to claim 1, wherein the control unit accesses the first or second memory in response to a request from the host computer by connecting to a memory access interface with the host computer.
前記制御部は、前記管理サイズに従って前記セーブリクエストまたは前記リストアリクエストに対応する処理を行う
請求項1記載のメモリコントローラ。 A management size setting unit configured to set the size of the management unit corresponding to each entry in the memory management information as a management size;
The memory controller according to claim 1, wherein the control unit performs a process corresponding to the save request or the restore request according to the management size.
請求項1記載のメモリコントローラ。 The control unit generates a new entry when there is no entry of the memory management information corresponding to the application specified in the registration request of the memory management information, and registers the corresponding entry when there is a corresponding entry. The memory controller according to claim 1, wherein the physical address specified in the request is registered in the entry.
請求項1記載のメモリコントローラ。 The memory controller according to claim 1, wherein the memory management information registration unit registers the virtual address and the physical address of the first memory and the address of the second memory in association with each application as the memory management information.
請求項8記載のメモリコントローラ。 The control unit generates a new entry when there is no entry of the memory management information corresponding to the application and virtual address specified in the registration request of the memory management information, and when the corresponding entry exists. 9. The memory controller according to claim 8, wherein the physical address specified in the registration request is registered in the entry.
不揮発メモリである第2のメモリと、
前記第1のメモリの物理アドレスと前記第2のメモリのアドレスとを管理単位毎に関連付けてメモリ管理情報のエントリとして登録するメモリ管理情報登録部と、
セーブリクエストに応じて前記メモリ管理情報に従って前記第1のメモリから前記第2のメモリにデータをセーブし、リストアリクエストに応じて前記メモリ管理情報に従って前記第2のメモリから前記第1のメモリにデータをリストアする制御部と
を具備するメモリモジュール。 A first memory, which is a volatile memory;
A second memory, which is a non-volatile memory,
A memory management information registration unit that registers the physical address of the first memory and the address of the second memory in association with each management unit as an entry of memory management information;
Data is saved from the first memory to the second memory in accordance with the memory management information in response to a save request, and data is transferred from the second memory to the first memory in accordance with the memory management information in response to a restore request And a control unit for restoring a memory module.
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/959,511 US20210055880A1 (en) | 2018-01-12 | 2018-10-15 | Memory controller and memory module |
| JP2019564291A JPWO2019138624A1 (en) | 2018-01-12 | 2018-10-15 | Memory controller and memory module |
| CN201880085178.7A CN111556995A (en) | 2018-01-12 | 2018-10-15 | Memory Controllers and Memory Modules |
| PCT/JP2018/038309 WO2019138624A1 (en) | 2018-01-12 | 2018-10-15 | Memory controller and memory module |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018-003256 | 2018-01-12 | ||
| PCT/JP2018/038309 WO2019138624A1 (en) | 2018-01-12 | 2018-10-15 | Memory controller and memory module |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019138624A1 true WO2019138624A1 (en) | 2019-07-18 |
Family
ID=67220151
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2018/038309 Ceased WO2019138624A1 (en) | 2018-01-12 | 2018-10-15 | Memory controller and memory module |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2019138624A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010191789A (en) * | 2009-02-19 | 2010-09-02 | Toshiba Corp | Data storage controller and data storage control method |
| JP2017045379A (en) * | 2015-08-28 | 2017-03-02 | 株式会社東芝 | Memory device and memory control method |
-
2018
- 2018-10-15 WO PCT/JP2018/038309 patent/WO2019138624A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010191789A (en) * | 2009-02-19 | 2010-09-02 | Toshiba Corp | Data storage controller and data storage control method |
| JP2017045379A (en) * | 2015-08-28 | 2017-03-02 | 株式会社東芝 | Memory device and memory control method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101618634B1 (en) | Non-Volatile memory, page dynamic allocation apparatus and page mapping apparatus therefor, and page dynamic allocation method and page mapping method therefor | |
| CN102667736B (en) | Memory management device and memory management method | |
| US11886333B2 (en) | Memory block reclamation method and apparatus | |
| US9471507B2 (en) | System and device for page replacement control between virtual and real memory spaces | |
| US7313683B2 (en) | Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization | |
| US20100205363A1 (en) | Memory device and wear leveling method thereof | |
| US11301331B2 (en) | Storage device and operating method of storage device | |
| US20030005219A1 (en) | Partitioning cache metadata state | |
| TW202230110A (en) | Memory system and control method | |
| KR102585883B1 (en) | Operating method of memory system and memory system | |
| JPWO2008099786A1 (en) | Memory failure recovery method, information processing apparatus, and program | |
| KR20180044635A (en) | Storage systems and methods of operating thereof | |
| US11372774B2 (en) | Method and system for a solid state drive with on-chip memory integration | |
| JP2019144921A (en) | Information processing apparatus and information processing method | |
| CN113296886A (en) | Virtual machine memory management method, device and system and physical machine | |
| JP2016085677A (en) | Memory management method, memory management program, and information processing device | |
| CN101957801B (en) | Information processing device and information processing method | |
| CN114201648B (en) | System and method for efficient extended key value hash table | |
| US20110138118A1 (en) | Memory disc composition method and apparatus using main memory | |
| CN107329909B (en) | A data management method and device | |
| US10083135B2 (en) | Cooperative overlay | |
| US20190205052A1 (en) | Efficient metadata storage for a non-volatile storage device | |
| CN110989931A (en) | Storage device bad block processing method, device, device and storage medium | |
| WO2019138624A1 (en) | Memory controller and memory module | |
| JP2018106573A (en) | Storage control apparatus and control program |
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: 18899221 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2019564291 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18899221 Country of ref document: EP Kind code of ref document: A1 |