Patentable/Patents/US-9794366
US-9794366

Persistent-memory management

PublishedOctober 17, 2017
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Data can be stored in a persistent-memory device, rather than a hard drive, of a computing device. A copy of the data can also be stored in another persistent-memory device of a remote computing device. For example, a central processing unit (of the computing device) can perform a first write operation to cause a file to be stored in the persistent-memory device. A memory controller can perform a second write operation to cause another memory controller of the remote computing device to store a copy of the file in the other persistent-memory device of the remote computing device.

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A system comprising: a plurality of computing devices communicatively coupled to one another over a network, each computing device of the plurality of computing devices comprising: a memory device; a central processing unit that is communicatively coupled to the memory device, the central processing unit being configured to perform a first write operation for causing a file to be stored in the memory device; and a memory controller that is separate from and communicatively coupled to the central processing unit and the memory device, the memory controller being configured to perform, based on the first write operation, a second write operation without further involvement by the central processing unit, wherein the memory controller is configured to perform the second write operation by: causing a first memory controller of a first computing device of the plurality of computing devices to store a first portion of a copy of the file in a first memory device of the first computing device; and causing a second memory controller of a second computing device of the plurality of computing devices to store a second portion of the copy of the file in a second memory device of the second computing device.

2

2. The system of claim 1 , wherein: the memory controller is included in a network interface controller that is configured to perform the second write operation according to a remote direct memory access (RDMA) protocol; and the first memory controller of the first computing device is configured to store the first portion of the copy of the file in the first memory device without first storing the first portion of the copy of the file in a buffer that is separate from the first memory device.

3

3. The system of claim 1 , wherein the memory controller is further configured to: allocate a first segment of the memory device to storing data from another computing device of the plurality of computing devices; and allocate a second segment of the memory device for storing local data.

4

4. The system of claim 3 , wherein the memory controller is further configured to: receive a request to store the data from the other computing device; determine that the first segment of the memory device is allocated to the other computing device; and based on determining that the first segment is allocated to the other computing device, store the data from the other computing device in the first segment.

5

5. The system of claim 1 , wherein the memory controller is configured to perform the second write operation in a manner that is hidden from the central processing unit.

6

6. The system of claim 1 , wherein the memory controller is configured to perform the second write operation by: updating a database to indicate that the first portion of the copy of the file is stored on the first computing device and the second portion of the copy of the file is stored on the second computing device.

7

7. The system of claim 6 , wherein the memory controller is configured to, in response to an event: determine, using the database, that the first portion of the copy of the file is stored on the first computing device and the second portion of the copy of the file is stored on the second computing device; retrieve the first portion of the copy of the file from the first computing device and the second portion of the copy of the file from the second computing device; and recreate the file by combining the first portion of the copy of the file and the second portion of the copy of the file.

8

8. The system of claim 4 , wherein the memory controller is configured to: determine a setting corresponding to the first segment of the memory device; and store the data from the other computing device in the first segment according to the setting.

9

9. The system of claim 8 , wherein the setting is user configurable.

10

10. The system of claim 8 , wherein the setting includes at least one of a compression setting, an availability setting, an erasure coding setting, or an encryption setting.

11

11. A method comprising: performing, by a central processing unit of a computing device, a first write operation by causing a file to be stored in a memory device of the computing device; and performing, by a memory controller that is separate from the central processing unit and based on to the first write operation, a second write operation without further involvement by the central processing unit, wherein the second write operation is performed by: causing a first memory controller of a first computing device of a plurality of computing devices to store a first portion of a copy of the file in a first persistent-memory device of the first computing device; and causing a second memory controller of a second computing device of the plurality of computing devices to store a second portion of the copy of the file in a second persistent-memory device of the second computing device.

12

12. The method of claim 11 , wherein the memory controller: allocates a first segment of the memory device to storing data from another computing device; and allocates a second segment of the memory device for storing local data.

13

13. The method of claim 12 , wherein the memory controller: receives a request to store the data from the other computing device; determines that the first segment of the memory device is allocated to the other computing device; and based on determining that the first segment is allocated to the other computing device, stores the data from the other computing device in the first segment.

14

14. The method of claim 11 , wherein the memory controller performs the second write operation by: updating a database to indicate that the first portion of the copy of the file is stored on the first computing device and the second portion of the copy of the file is stored on the second computing device.

15

15. The method of claim 14 , wherein the memory controller, in response to an event: determines, using the database, that the first portion of the copy of the file is stored on the first computing device and the second portion of the copy of the file is stored on the second computing device; retrieves the first portion of the copy of the file from the first computing device and the second portion of the copy of the file from the second computing device; and recreates the file by combining the first portion of the copy of the file and the second portion of the copy of the file.

16

16. A non-transitory computer readable medium comprising program code that is executable by a memory controller of a computing device for causing the memory controller to: detect that a central processing unit has issued a first write operation configured to cause a file to be stored in a memory device of the computing device; and perform, based on the first write operation, a second write operation without further involvement by the central processing unit, wherein the second write operation includes: causing a first memory controller of a first computing device of the plurality of computing devices to store a first portion of a copy of the file in a first memory device of the first computing device; and causing a second memory controller of a second computing device of the plurality of computing devices to store a second portion of the copy of the file in a second memory device of the second computing device.

17

17. The non-transitory computer readable medium of claim 16 , wherein performing the second write operation includes causing the first memory controller of the first computing device to store the first portion of the copy of the file in the first memory device without first storing the first-portion of the copy of the file in a buffer that is separate from the first memory device; and further comprising program code that is executable by the memory controller for causing the memory controller to: allocate a first segment of the memory device to storing data from another computing device; and allocate a second segment of the memory device for storing local data.

18

18. The non-transitory computer readable medium of claim 17 , further comprising program code that is executable by the memory controller for causing the memory controller to: receive a request to store the data from the other computing device; determine that the first segment of the memory device is allocated to the other computing device; and based on determining that the first segment is allocated to the other computing device, store the data from the other computing device in the first segment.

19

19. The non-transitory computer readable medium of claim 16 , further comprising program code that is executable by the memory controller for causing the memory controller to perform the second write operation according to a remote direct memory access (RDMA) protocol and by: updating a database to indicate that the first portion of the copy of the file is stored on the first computing device and the second portion of the copy of the file is stored on the second computing device.

20

20. The non-transitory computer readable medium of claim 19 , further comprising program code that is executable by the memory controller for causing the memory controller to, in response to an event: determine, using the database, that the first portion of the copy of the file is stored on the first computing device and the second portion of the copy of the file is stored on the second computing device; retrieve the first portion of the copy of the file from the first computing device and the second portion of the copy of the file from the second computing device; and recreate the file by combining the first portion of the copy of the file and the second portion of the copy of the file.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

October 19, 2016

Publication Date

October 17, 2017

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Persistent-memory management” (US-9794366). https://patentable.app/patents/US-9794366

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.