IP Library Granted Patent US 9,405,607
Granted Patent B2
US 9,405,607 · App. 14/014,692 · Granted Aug 2, 2016

Memory controller utilizing an error coding dispersal function

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 9,405,607
App. No.
14/014,692
Granted
Aug 2, 2016
Kind
B2
Abstract

A memory controller comprises at least a memory control processing module and/or a distributed storage processing module. A method begins by the memory control processing module receiving a memory access request regarding a data segment. The method continues with the memory control processing module interpreting the memory access request to determine whether an error coding dispersal function of the data segment is applicable. The method continues with the memory control processing module sending the memory access request to the distributed storage processing module when the error coding dispersal function is applicable. The method continues with the distributed storage processing module performing the error coding dispersal function on the data segment to produce an error coded processed data segment. The method continues with the distributed storage processing module sending the error coded processed data segment to the memory control processing module.

Claims (38)

1. A memory controller for using in a computing device, the memory controller comprises:

a memory control processing module operable to:

receive, from a processing module of the computing device, a memory access request regarding a data segment;

interpret the memory access request to determine whether an error coding dispersal function of the data segment is applicable;

when the error coding dispersal function is applicable, send the memory access request to a distributed storage processing module; and

when the error coding dispersal function is not applicable, access main memory of the computing device regarding the data segment;

the distributed storage processing module operable to:

when the memory access request is a write request:

perform the error coding dispersal function on the data segment to produce an error coded processed data segment; and

send the error coded processed data segment to the memory control processing module, wherein the memory control processing module sends the error coded processed data segment for storage;

when the memory access request is a read request:

decode a plurality of data slices in accordance with the error coding dispersal function to produce a recovered data segment; and

send the recovered data segment to the memory control processing module, wherein the memory control processing module sends the recovered data segment to the processing module or to the main memory.

2. The memory controller of claim 1 further comprises:

the memory control processing module is further operable to:

receive the read request as the memory access request;

interpret the read request to determine that the data segment is storage as the plurality of data slices in accordance with the error coding dispersal function; and

address a plurality of memories to retrieve the plurality of data slices; and

the distributed storage processing module is further operable to:

perform the error coding dispersal function on the plurality of data slices to produce the recovered data segment.

3. The memory controller of claim 1 further comprises:

the memory control processing module is further operable to:

receive the write request as the memory access request;

interpret the write request to determine that the data segment is to be stored as a second plurality of data slices in accordance with the error coding dispersal function; and

address a plurality of memories to store the second plurality of data slices; and

the distributed storage processing module is further operable to:

perform the error coding dispersal function on the data segment to produce the second plurality of data slices as the error coded processed data segment.

4. The memory controller of claim 1 further comprises:

the memory control processing module is further operable to:

when the error coding dispersal function is not to be applied, convert a virtual memory address of the data segment to a non-distributed physical address;

when the error coding dispersal function is to be applied, send the memory access request to the distributed storage processing module; and

the distributed storage processing module is further operable to:

when the error coding dispersal function is applicable, convert the virtual memory address of the data segment to a plurality of distributed physical addresses.

5. The memory controller of claim 1 , the distributed storage processing module further functions to:

interpret the memory access request to determine vault information; and

facilitate storage of the vault information.

6. The memory controller of claim 1 further comprises:

a memory interface operable to couple the distributed storage processing module to the main memory such that the distributed storage processing module communicates with the main memory.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2017
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 041121/0877 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →