IP Library Granted Patent US 8,667,375
Granted Patent B2
US 8,667,375 · App. 13/367,059 · Granted Mar 4, 2014

Method and apparatus for error management

Inventors: Sergiu Goma (Markham, CA); Milivoje Aleksic (Markham, CA)
Assignee: ATI Technologies ULC
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 8,667,375
App. No.
13/367,059
Granted
Mar 4, 2014
Kind
B2
Abstract

To derive a Hamming code to manage data errors a set of at least four parity bit positions is selected for parity bits which will protect a set of data bits (where each data bit has a data bit position in the data bit set). A syndrome is determined for each data bit position. This involves selecting a unique sub-set of at least three parity bit positions. The unique sub-set shares at least one parity bit position with at least one other unique sub-set of at least three parity bit positions. A parity bit value may then be calculated for each parity bit position based on the determined syndromes. The header of a packet may be provided with a word which defines the length of the packet and an error management code generated utilizing this word so that errors in the word may be detected and, possibly, corrected.

Claims (33)

1. A transmitter comprising for transmitting ECC encoded data:

a parity generator for generating a set of at least six parity bits {P 0 , P 1 , P 2 . . . P 5 } to protect a set of at least twenty four data bits {D 0 , D 1 , D 2 . . . D 23 ,} each parity bit having a parity bit position in said parity bit set, each data bit having a data bit position in said data bit set;

said parity generator calculating said parity bits as follows:

P 5 =D 23 ^D 22 ^D 21 ^D 19 ^D 18 ^D 17 ^D 16 ^D 15 ^D 14 ^D 13 ^D 12 ^D 11 ^D 10 ;

P 4 =D 23 ^D 22 ^D 20 ^D 19 ^D 18 ^D 17 ^D 16 ^D 9 ^D 8 ^D 7 ^D 6 ^D 5 ^D 4 ;

P 3 =D 23 ^D 21 ^D 20 ^D 19 ^D 15 ^D 14 ^D 13 ^D 9 ^D 8 ^D 7 ^D 3 ^D 2 ^D 1 ;

P 2 =D 22 ^D 21 ^D 20 ^D 18 ^D 15 ^D 12 ^D 11 ^D 9 ^D 6 ^D 5 ^D 3 ^D 2 ^D 0 ;

P 1 =D 23 ^D 22 ^D 21 ^D 20 ^D 17 ^D 14 ^D 12 ^D 10 ^D 8 ^D 6 ^D 4 ^D 3 ^D 1 ^D 0 ; and

P 0 =D 23 ^D 22 ^D 21 ^D 20 ^D 16 ^D 13 ^D 11 ^D 10 ^D 7 ^D 5 ^D 4 ^D 2 ^D 1 ^D 0 .

2. A receiver comprising:

a data decoder for decoding ECC encoded data comprising at least twenty four data bits and a plurality of provided parity bits generated using a parity bit generator, said decoder comprising

a parity bit generator for calculating parity bits from said data bits;

a syndrome calculator for calculating a syndrome (SYN) from said parity bits as calculated, and said provided parity bits;

a syndrome decoder for determining an index value i from said syndrome (SYN);

error correcting logic for correcting a one bit error in the i th position within said data bits;

wherein said syndrome decoder decodes i=0 when said syndrome calculator calculates SYN=0x07; i=1 when said syndrome calculator calculates SYN=0x0B; i=2 when said syndrome calculator calculates SYN=0x0D; i=3 when said syndrome calculator calculates SYN=0x0E; i=4 when said syndrome calculator calculates SYN=0x13; i=5 when said syndrome calculator calculates SYN=0x15; i=6 when said syndrome calculator calculates SYN=0x16; i=7 when said syndrome calculator calculates SYN=0x19; i=8 when said syndrome calculator calculates SYN=0x1A; i=9 when said syndrome calculator calculates SYN=0x1C; i=10 when said syndrome calculator calculates SYN=0x23; i=11 when said syndrome calculator calculates SYN=0x25; i=12 when said syndrome calculator calculates SYN=0x26; i=13 when said syndrome calculator calculates SYN=0x29; i=14 when said syndrome calculator calculates SYN=0x2A; i=15 when said syndrome calculator calculates SYN=0x2C; i=16 when said syndrome calculator calculates SYN=0x31; i=17 when said syndrome calculator calculates SYN=0x32; i=18 when said syndrome calculator calculates SYN=0x34; i=19 when said syndrome calculator calculates SYN=0x38; i=20 when said syndrome calculator calculates SYN=0x1F; i=21 when said syndrome calculator calculates SYN=0x2F; i=22 when said syndrome calculator calculates SYN=0x37; i=23 when said syndrome calculator calculates SYN=0x3B.

3. A system for managing data errors, comprising:

a transmitter comprising:

a parity generator for generating a set of at least six parity bits {P 0 , P 1 , P 2 . . . P 5 } to protect a set of at least twenty four data bits {D 0 , D 1 , D 2 . . . D 23 }, each parity bit having a parity bit position in said parity bit set, each data bit having a data bit position in said data bit set;

said parity generator calculating said parity bits as follows:

P 5 =D 23 ^D 22 ^D 21 ^D 19 ^D 18 ^D 17 ^D 16 ^D 15 ^D 14 ^D 13 ^D 12 ^D 11 ^D 10 ;

P 4 =D 23 ^D 22 ^D 20 ^D 19 ^D 18 ^D 17 ^D 16 ^D 9 ^D 8 ^D 7 ^D 6 ^D 5 ^D 4 ;

P 3 =D 23 ^D 21 ^D 20 ^D 19 ^D 15 ^D 14 ^D 13 ^D 9 ^D 8 ^D 7 ^D 3 ^D 2 ^D 1 ;

P 2 =D 22 ^D 21 ^D 20 ^D 18 ^D 15 ^D 12 ^D 11 ^D 9 ^D 6 ^D 5 ^D 3 ^D 2 ^D 0 ;

P 1 =D 23 ^D 22 ^D 21 ^D 20 ^D 17 ^D 14 ^D 12 ^D 10 ^D 8 ^D 6 ^D 4 ^D 3 ^D 1 ^D 0 ; and

P 0 =D 23 ^D 22 ^D 21 ^D 20 ^D 16 ^D 13 ^D 11 ^D 10 ^D 7 ^D 5 ^D 4 ^D 2 ^D 1 ^D 0

a receiver comprising:

a data decoder for decoding ECC encoded data comprising at least twenty four data bits and a plurality of provided parity bits generated using a parity bit generator, said decoder comprising

a parity bit generator for calculating parity bits from said data bits;

a syndrome calculator for calculating a syndrome (SYN) from said parity bits as calculated, and said provided parity bits;

a syndrome decoder for determining an index value i from said syndrome (SYN);

error correcting logic for correcting a one bit error in the i th position within said data bits;

wherein said syndrome decoder decodes i=0 when said syndrome calculator calculates SYN=0x07; i=1 when said syndrome calculator calculates SYN=0x0B; i=2 when said syndrome calculator calculates SYN=0x0D; i=3 when said syndrome calculator calculates SYN=0x0E; i=4 when said syndrome calculator calculates SYN=0x13; i=5 when said syndrome calculator calculates SYN=0x15; i=6 when said syndrome calculator calculates SYN=0x16; i=7 when said syndrome calculator calculates SYN=0x19; i=8 when said syndrome calculator calculates SYN=0x1A; i=9 when said syndrome calculator calculates SYN=0x1C; i=10 when said syndrome calculator calculates SYN=0x23; i=11 when said syndrome calculator calculates SYN=0x25; i=12 when said syndrome calculator calculates SYN=0x26; i=13 when said syndrome calculator calculates SYN=0x29; i=14 when said syndrome calculator calculates SYN=0x2A; i=15 when said syndrome calculator calculates SYN=0x2C; i=16 when said syndrome calculator calculates SYN=0x31; i=17 when said syndrome calculator calculates SYN=0x32; i=18 when said syndrome calculator calculates SYN=0x34; i=19 when said syndrome calculator calculates SYN=0x38; i=20 when said syndrome calculator calculates SYN=0x1F; i=21 when said syndrome calculator calculates SYN=0x2F; i=22 when said syndrome calculator calculates SYN=0x37; i=23 when said syndrome calculator calculates SYN=0x3B.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2012
From: ALEKSIC, MILIVOJE; GOMA, SERGIU
To: ATI TECHNOLOGIES INC.
Reel/Frame 028641/0791 →
CHANGE OF NAME Recorded Jul 26, 2012
From: ATI TECHNOLOGIES INC.
To: ATI TECHNOLOGIES ULC
Reel/Frame 028642/0190 →
Continuity (3)
Continuation 12546355 · Aug 24, 2009
Continuation 11236921 · Sep 28, 2005
Related Publication 20120137192A1 · May 31, 2012