Channel rotating error correction code

US9251001B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9251001-B2
Application numberUS-201514740449-A
CountryUS
Kind codeB2
Filing dateJun 16, 2015
Priority dateSep 6, 2012
Publication dateFeb 2, 2016
Grant dateFeb 2, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A write or read method for use in a computer having multiple channels of memory includes writing or reading data to or from one channel in the memory, and simultaneously in parallel writing or reading an error correction code corresponding to the data to or from a different channel in the memory.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for writing data to a multiple channel memory module, comprising: setting a start value of n for 0≦n≦m for the multi-channel memory module comprising m channels where n and m are integers greater than or equal to zero and m is at least 1 greater than n; until the writing of the data is complete: writing data DATn to a channel CHn of the memory module; if n=m−1, simultaneously writing in parallel an error correction code ECCn corresponding to the data DATn to another channel CH(start) of the memory module and then resetting n to a value different from the start value; otherwise, if n≠m−1, simultaneously writing in parallel an error correction code ECCn corresponding to the data DATn to another channel CH(n+1) of the memory module and then incrementing n. 2. The method of claim 1 , wherein setting the start value comprises: setting the start value to a different channel of the memory module than one or more previously-set start values. 3. The method of claim 1 , wherein setting the start value comprises: setting the start value based on one or more of: a bandwidth usage for each of the channels; a distribution of one or more previous writes among the channels; and an arrangement of data previously stored in the memory module. 4. A method for reading data from a multiple channel memory module, the method comprising: setting a start value of n for 0≦n≦m for the multi-channel memory module comprising m channels where n and m are integers greater than or equal to zero and m is at least 1 greater than n; until a reading of data is complete: reading data DATn from a channel CHn of the memory module; if n=m−1, simultaneously reading in parallel an error correction code ECCn corresponding to the data DATn from another channel CH(start) of the memory module and then resetting n to a value different from the start value; otherwise, if n≠m−1, simultaneously reading in parallel an error correction code ECCn corresponding to the data DATn from another channel CH(n+1) of the memory module and then incrementing n. 5. The method of claim 4 , wherein setting the start value comprises: setting the start value to a different channel of the memory module than one or more previously-set start values. 6. The method of claim 4 , wherein setting the start value comprises: setting the start value based on one or more of: a bandwidth usage for each of the channels; a distribution of one or more previous reads among the channels; and an arrangement of data previously stored in the memory module. 7. A non-transitory computer-readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for writing data to a multiple channel memory module, the method comprising: setting a start value of n for 0≦n≦m for the multi-channel memory module comprising m channels where n and m are integers greater than or equal to zero and m is at least 1 greater than n; until the writing of the data is complete: writing data DATn to a channel CHn of the memory module; if n=m−1, simultaneously writing in parallel an error correction code ECCn corresponding to the data DATn to another channel CH(start) of the memory module and then resetting n to a value different from the start value; otherwise, if n≠m−1, simultaneously writing in parallel an error correction code ECCn corresponding to the data DATn to another channel CH(n+1) of the memory module and then incrementing n. 8. The non-transitory computer-readable storage medium of claim 7 , wherein setting the start value comprises: setting the start value to a different channel of the memory module than one or more previously-set start values. 9. The non-transitory computer-readable storage medium of claim 7 , wherein setting the start value comprises: setting the start value based on one or more of: a bandwidth usage for each of the channels; a distribution of one or more previous writes among the channels; and an arrangement of data previously stored in the memory module. 10. A non-transitory computer-readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for reading data from a multiple channel memory module, the method comprising: setting a start value of n for 0≦n≦m for the multi-channel memory module comprising m channels where n and m are integers greater than or equal to zero and m is at least 1 greater than n; until the reading of the data is complete: reading data DATn from a channel CHn of the memory module; if n=m−1, simultaneously reading in parallel an error correction code ECCn corresponding to the data DATn from another channel CH(start) of the memory module and then resetting n to a value different from the start value; otherwise, if n≠m−1, simultaneously reading in parallel an error correction code ECCn corresponding to the data DATn from another channel CH(n+1) of the memory module and then incrementing n. 11. The non-transitory computer-readable storage medium of claim 10 , wherein setting the start value comprises: setting the start value to a different channel of the memory module than one or more previously-set start values. 12. The non-transitory computer-readable storage medium of claim 10 , wherein setting the start value comprises: setting the start value based on one or more of: a bandwidth usage for each of the channels; a distribution of one or more previous reads among the channels; and an arrangement of data previously stored in the memory module. 13. A computing device, comprising: a processor; a multi-channel memory module comprising m channels; the multi-channel memory module: setting a start value of n for 0≦n≦m for the multi-channel memory module where n and m are integers greater than or equal to zero and m is at least 1 greater than n; until a writing of data is complete: writing data DATn to a channel CHn of the memory module; if n=m−1, simultaneously writing in parallel an error correction code ECCn corresponding to the data DATn to another channel CH(start) of the memory module and then resetting n to a value different from the start value; otherwise, if n≠m−1, simultaneously writing in parallel an error correction code ECCn corresponding to the data DATn to another channel CH(n+1) of the memory module and then incrementing n. 14. The computing device of claim 13 , wherein the memory module is a through silicon via dynamic random access memory module. 15. The computing device of claim 13 , wherein setting the start value comprises: setting the start value to a different channel of the memory module than one or more previously-set start values. 16. The computing device of claim 13 , wherein setting the start value comprises: setting the start value based on one or more of: a bandwidth usage for each of the channels; a distribution of one or more previous writes among the channels; and an arrangement of data previously stored in the memory module. 17. A computing device, comprising: a processor; a multi-channel memory module comprising m channels; the multi-channel memory module: setting a start value of n for 0≦n≦m for the multi-channel memory module where n and m are integers greater than or equal to zero and m is at least 1 greater than n; until a reading of data is complete: reading data DATn from a channel CHn of the memory module; if n=m−1, simultaneously reading in parallel an error correction code ECCn corresponding to the data DATn from another channel CH(start) of the memory mo

Assignees

Inventors

Classifications

  • using arrangements adapted for a specific error detection or correction feature · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Single storage device · CPC title

  • Arrangements at the receiver end · CPC title

  • Parity data used in redundant arrays of independent storages, e.g. in RAID systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9251001B2 cover?
A write or read method for use in a computer having multiple channels of memory includes writing or reading data to or from one channel in the memory, and simultaneously in parallel writing or reading an error correction code corresponding to the data to or from a different channel in the memory.
Who is the assignee on this patent?
Osborn Michael J, Hummel Mark D, Mayhew David E, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F11/1048. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 02 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).