IP Library Granted Patent US 10,224,967
Granted Patent B2
US 10,224,967 · App. 15/426,416 · Granted Mar 5, 2019

Protecting in-memory immutable objects through hybrid hardware/software-based memory fault tolerance

Inventors: Tong Zhang (Albany, NY); Hao Zhong (Los Gatos, CA); Fei Sun (Irvine, CA); Yang Liu (Milpitas, CA)
Assignee: SCALEFLUX
H03M13/6505G06F11/1076H03M13/293H03M13/2909H03M13/2927
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,224,967
App. No.
15/426,416
Granted
Mar 5, 2019
Kind
B2
Abstract

A system, method and program product that utilizes a hybrid fault tolerance system for managing data. A system includes: a system for partitioning memory into a set of partitions that includes a designated partition for storing immutable objects; a write system for storing an immutable object in the designated partition, wherein the immutable object is coded with a hardware-based fault tolerance system to generate a set of hardware-based codewords, and wherein the immutable object is further coded with a software-based fault tolerance system to generate a set of software-based codewords; a read system for retrieving the immutable object, wherein the read system decodes each hardware-based codeword for immutable object, and in response to a failed decoding of a hardware-based codeword, the read system decodes the software-based codeword containing a failed hardware-based codeword.

Claims (33)

1. A memory system that utilizes a hybrid fault tolerance system for managing data, comprising:

a system for partitioning memory into a set of partitions that includes a designated partition for storing immutable objects;

a write system for storing data as an immutable object in the designated partition, wherein the immutable object is coded with a hardware-based fault tolerance system to generate a set of hardware-based codewords in which each hardware-based codeword includes a row of data and generated redundancy codes for the row, and wherein the immutable object is further coded with a software-based fault tolerance system to generate a set of software-based codewords in which each software-based codeword includes a column of and generated redundancy codes for the column; and

a read system for retrieving the immutable object, wherein the read system decodes each hardware-based codeword for the immutable object, and in response to a failed decoding of a hardware-based codeword, the read system decodes the set of software-based codewords for the immutable object.

2. The memory system of claim 1 , wherein each column of data is a predetermined number of bits wide.

3. The memory system of claim 2 , wherein a portion of each hardware-based codeword is shared with one of the software-based codewords.

4. The memory system of claim 1 , wherein both the hardware-based fault tolerance system and the software-based fault tolerance system utilize error correction coding (ECC).

5. The memory system of claim 1 , wherein the hardware-based fault tolerance system is implemented by memory controller.

6. The memory system of claim 1 , wherein the software-based fault tolerance system is implemented by a computer program stored in memory of the host system.

7. The memory system of claim 1 , wherein a failed hardware-based codeword is treated as an erasure.

8. A method for providing a hybrid fault tolerance scheme for managing data, comprising:

partitioning memory into a set of partitions that includes a designated partition for storing immutable objects;

receiving a request to write an immutable object in the designated partition;

coding the immutable object with a hardware-based fault tolerance system to generate a set of hardware based codewords, wherein the hardware-based fault tolerance system codes data along a first dimension of the immutable object; and

coding the immutable object with a software-based fault tolerance system to generate a set of software-based codewords, wherein the software-based fault tolerance system codes data along a second dimension of the immutable object, different from the first dimension.

9. The method of claim 8 , further comprising:

receiving a request to write an immutable object in the designated partition;

retrieving the immutable object and decoding each hardware-based codeword for the immutable object; and

in response to a failed decoding of a hardware-based codeword, decoding software-based codewords containing a failed hardware-based codeword.

10. The method of claim 8 , wherein a portion of each hardware-based codeword is shared with one of the software-based codewords.

11. The method of claim 8 , wherein both the hardware-based fault tolerance system and the software-based fault tolerance system utilize error correction coding (ECC).

12. The method of claim 8 , wherein the hardware-based fault tolerance system is implemented by a memory controller.

13. The method of claim 8 , wherein the software-based fault tolerance system is implemented by a computer program stored in memory of the host system.

14. The method of claim 8 , wherein a failed hardware-based codeword is treat as an erasure.

15. A non-transitory computer program product stored on a computer readable storage medium, which when executed by a computing system, provides a hybrid fault tolerance system for managing data, comprising:

program code for partitioning memory into a set of partitions that includes a designated partition for storing immutable objects;

program code for processing a request to store an immutable object in the designated partition, wherein the immutable object is coded with a hardware-based fault tolerance system to generate a set of hardware-based codewords in which each hardware-based codeword includes a row of data and generated redundancy codes for the row, and wherein processing of the request to store codes the immutable object with a software-based fault tolerance system to generate a set of software-based codewords in which each software-based codeword includes a column of the data and generated redundancy codes for the column; and

program code for processing a request to retrieve the immutable object, wherein the processing of the request to retrieve includes decoding each hardware-based codeword for the immutable object, and in response to a failed decoding of a hardware-based codeword, decoding the set of software-based codewords for the immutable object.

16. The computer program product of claim 15 , wherein each column of data is a predetermined number of bits wide.

17. The computer program product of claim 16 , wherein a portion of each hardware-based codeword is shared with one of the software-based codewords.

18. The computer program product of claim 15 , wherein both the hardware-based fault tolerance system and the software-based fault tolerance system utilize error correction coding (ECC).

19. The computer program product of claim 15 , wherein the hardware-based fault tolerance system is implemented by a memory controller.

20. The computer program product of claim 15 , wherein the software-based fault tolerance system is implemented by a computer program.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2017
From: ZHANG, TONG; ZHONG, HAO; SUN, FEI; LIU, YANG
To: SCALEFLUX
Reel/Frame 041193/0798 →
Continuity (2)
Provisional Application 62293635 · Feb 10, 2016
Related Publication 20170228166A1 · Aug 10, 2017
Cited By (3)
US 12,236,103 US 12,321,449 US 12,386,556