Techniques for maintaining and restoring dirty caches across CPU resets
US-9053027-B1 · Jun 9, 2015 · US
US9678871B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9678871-B2 |
| Application number | US-201314760401-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 28, 2013 |
| Priority date | Mar 28, 2013 |
| Publication date | Jun 13, 2017 |
| Grant date | Jun 13, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A group table includes one or more groups. A synch command including a synch address range is received. An order data of the one or more groups is flushed is determined by whether the synch address range is included in the one or more groups.
Opening claim text (preview).
I claim: 1. A node, comprising: a group table including one or more groups, each of the groups associated with a group address range, the group address ranges to be mapped to a memory location of a nonvolatile memory (NVM); and a controller to receive a synch command with an associated synch address range and to flush data from a cache to the NVM according to an order determined by the controller based on the group table, wherein the controller is to determine at least one of the order the controller flushes the data and which of the data the controller flushes based on whether the synch address range is included in one of the group address ranges. 2. The node of claim 1 , wherein, each of the groups of the group table is associated with a transfer attribute, and the controller is to further determine at least one of the order the controller flushes the data and which of the data the controller flushes based on a type of the transfer attribute. 3. The node of claim 1 , wherein, the controller is to transfer the flushed data to another node in response to the synch command, each of the group address ranges is associated with a ready flag, and the controller is to set the ready flag of the associated group address range before the associated group range is transferred. 4. The node of claim 3 , wherein, the node includes a virtual memory (VM) table that includes addresses associated with dirty flags that are set if a write operation is carried out on the associated address, and the controller is to determine the synch address range based on one of the addresses in the VM table whose dirty flag is set. 5. The node of claim 4 , wherein, the controller is to reset the ready flag after the transfer of the associated group address range to the other node is complete, and the controller is to reset the dirty flag after the all ready flags are reset to indicate that transfer to the other node is complete. 6. The node of claim 5 , wherein, the controller is to transfer the synch address range last, and the controller is to transmit a marker to the other node after the synch address range is transferred to the other node to indicate that a consistency point has been reached. 7. The node of claims 3 , wherein, each of the groups of the group table is associated with a transfer attribute that includes a never value, an always value, and a conditional value, the never value indicates that the corresponding group is not to be transferred in response to the synch command, the always value indicates that the corresponding group is to be transferred in response to the synch command, and the conditional value indicates that the corresponding group is only to be transferred if a type of the synch command is master. 8. The node of claim 7 , further comprising: a subgroup table including one or more subgroups, each of the subgroups to be associated with a subgroup address range and the ready flag, wherein each of subgroup address ranges is included in one of the group address ranges of the group table, and each of the subgroups to be associated with a copy-on-write (COW) flag, the COW flag to be set if writes to the corresponding subgroup address range are to be carried out on a copy of data of the corresponding subgroup address range. 9. The node of claim 8 , wherein, the subgroup address ranges are included in a group of the group table that is associated with the conditional value of the transfer attribute, a value of the ready flag for the subgroup address range supersedes a value of the ready flag for the group address range including the subgroup address range, the controller is to, if the synch address range is included in the subgroup address range, transfer the group address range that includes the subgroup address range before the subgroup address range and to transfer the subgroup address range before the synch address range. 10. The node of claim 8 , further comprising: a COW engine to generate copies of data associated with the subgroup address range in response to write operations by a CPU to the subgroup address range, wherein the copies of the data are written to the NVM if the COW flag is set and the type of the synch command is master. 11. The node of claim 1 , further comprising: a log unit, wherein the controller is to place the flushed data in the log unit in response to the synch command, and the log unit is to: transfer the data placed therein to another node, store a list of data that is successfully transferred to the other node, and not resend the data stored in the list, if the transfer is interrupted and then resumed. 12. The node of claim 1 , wherein, the node includes the NVM and is to receive the synch command from a plurality of applications at a plurality of application servers external to the node, the node is to perform an operation on a first application server of the plurality of application servers if the nodes receives the synch command from the first application server, the operation is to include at least one of read and write dirty flags of a virtual memory table of the associated application server, flush a cache of the associated application server, and write copy-on-write (COW) data of the associated application server to the NVM, and the node is to perform the operation on a second application server of the plurality of application servers in response to the synch command of the first application server, if the second application server shares the group table with the first application server. 13. A method, comprising: receiving a synch command with an associated synch address range; identifying a group and a subgroup that includes the synch address range from among groups of a group table and subgroups of a subgroup table, each of the subgroups being included in one of the groups; flushing data in the following order: first flushing data of the group that includes the synch address range, excluding data of the synch address range and data of any of the subgroups included in the group that includes the synch address range; next, flushing data of the subgroup that includes the synch address range excluding the data of the synch address range; and next, flushing the data of the synch address range; and transferring the flushed data from a first node to a second node. 14. The method of claim 13 , wherein, each of the groups and subgroups include an address range having an initial address and a range size, the range size to indicate a number of consecutive addresses following the initial address that are included in the address range, the groups and subgroups are defined by an application of the first node, and each of the groups is associated with a transfer attribute that controls whether the associated group is to be flushed in response to the synch command. 15. A non-transitory computer-readable storage medium storing instructions that, if executed by a processor of a device, cause the processor to: generate a group table including one or more groups, each of the groups associated with a group address range and a transfer attribute; generate a subgroup table including one or more subgroups, each of the subgroups corresponding to one of the groups and being associated with a subgroup address range that is included in one of the group address ranges of the corresponding group; receive a synch command including a synch address range, and in response thereto: first flush to a non-volatile memory (NVM) data of any group that includes the synch address range and whose transfer attribute permits flushing, excluding the syn
Reliability improvement, data loss prevention, degraded operation etc · CPC title
maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups) · CPC title
with main memory updating (G06F12/0806 takes precedence) · CPC title
Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory · CPC title
Replication mechanisms · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.