IP Library Granted Patent US 8,418,047
Granted Patent B2
US 8,418,047 · App. 13/446,565 · Granted Apr 9, 2013

Data bus system, its encoder/decoder and encoding/decoding method

Inventors: Wen Bo Shen (Beijing, CN); Chao-Jun Liu (Beijing, CN); Yi Gee (Beijing, CN); Qiang Liu (Beijing, CN)
Assignee: International Business Machines Corporation
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,418,047
App. No.
13/446,565
Granted
Apr 9, 2013
Kind
B2
Abstract

The present application relates to a data bus system, its encoder/decoder and encoding/decoding method. The data bus encoder comprises: a bus-invert encoder for generating encoded data and invert-indication information by performing bus-invert encoding on data according to a predetermined bus-invert encoding scheme; a virtual bit-group generator for converting the invert-indication information into a virtual bit-group according to a predetermined code mapping; and an error-checking-and-correction encoder for generating an error-checking-and-correction code for a virtual word according to a predetermined error-checking-and-correction encoding scheme, wherein the number of error-checking bits is more than the number of error-correction bits at least by one in the predetermined error-checking-and-correction encoding scheme, and the virtual word includes the data to be output, the virtual bit-group corresponding to the data, and at least one padding bit of a fixed value, which is configured as required by the error-checking-and-correction encoding scheme.

Claims (62)

1. A computer-readable storage device embodying computer code for causing a computing device to perform a method for data bus encoding, comprising:

generating encoded data and invert-indication information by performing bus-invert encoding on data to be encoded according to a predetermined bus-invert encoding scheme;

converting the invert-indication information into a virtual bit-group according to a predetermined code mapping; and

generating an error-checking-and-correction code for a virtual word according to a predetermined error-checking-and-correction encoding scheme, the virtual word including the encoded data and the virtual bit-group corresponding to the encoded data, wherein any unoccupied bit of the virtual word takes a respective fixed value,

wherein the predetermined error-checking-and-correction encoding scheme includes error-check bits and error-correction bits, the error-check bits having a number of bits at least one more than a number of bits of the error-correction bits.

2. The computer-readable storage device embodying computer code of claim 1 , wherein the predetermined code mapping is such that a hamming distance between any possible value of the virtual bit-group and a reference virtual bit-group is fixed.

3. The computer-readable storage device embodying computer code of claim 1 , wherein the reference virtual bit group is unconvertible according to the predetermined code mapping.

4. The computer-readable storage device embodying computer code of claim 1 , wherein the predetermined code mapping is such that a hamming distance between any possible value of the virtual bit-group and a reference virtual bit-group is less than the number of error-correction bits of the error-checking-and-correction encoding scheme.

5. The computer-readable storage device embodying computer code of claim 1 , further comprising:

outputting data from a data buffer when a mode control signal indicates a normal mode, wherein the virtual word includes the data from the data buffer and a fixed virtual bit-group when the mode control signal indicates the normal mode; and

outputting the encoded data when the mode control signal indicates a low power mode, wherein the virtual word includes the encoded data and the virtual bit-group corresponding to the encoded data when the mode control signal indicates the low power mode.

6. The computer-readable storage device embodying computer code of claim 1 , wherein the predetermined error-checking-and-correction encoding scheme has at least a capability of one-bit error-correction and two-bit error-detection.

7. The computer-readable storage device embodying computer code of claim 1 , wherein the error-checking-and-correction code applied in the predetermined error-checking-and-correction encoding scheme is selected from a group comprising Hamming code and optimal odd-weight-column code.

8. The computer-readable storage device embodying computer code of claim 1 , wherein the predetermined code mapping comprises one-hot code.

9. The computer-readable storage device embodying computer code of claim 1 , wherein the predetermined error-checking-and-correction encoding scheme is an optimal odd-weight-column code of one-bit error-correction and two-bit error-detection, the predetermined code mapping is a 64-bit one-hot code, the data to be encoded has 64 bits, and the data to be encoded is divided into 6 bit-groups for respective bus-invert encoding according to the predetermined bus-invert encoding scheme.

10. The computer-readable storage device embodying computer code of claim 1 , further comprising:

calculating a frequency of occurrence of uncorrectable error-checking-and-correction errors in data transmission on a data bus; and

determining a mode control signal according to a frequency of occurrence of the uncorrectable error-checking-and-correction errors.

11. The computer-readable storage device embodying computer code of claim 10 , wherein determining the mode control signal according to the frequency of occurrence of the uncorrectable error-checking-and-correction errors further comprises:

determining the mode control signal according to the frequency of occurrence of the uncorrectable error-checking-and-correction errors and according to an environmental condition of the data bus.

12. A computer-readable storage device embodying computer code for causing a computing device to perform a method for data bus decoding, comprising:

performing checking on a virtual word according to a predetermined error-checking-and-correction encoding scheme and an error-checking-and-correction code, the error-checking-and-correction code corresponding to input data, wherein the predetermined error-checking-and-correction encoding scheme includes error-check bits and error-correction bits with the error-check bits having a number of bits at least one more than a number of bits of the error-correction bits, wherein the virtual word includes the input data and a reference virtual bit-group, wherein any unoccupied bit of the virtual word has a respective fixed value;

converting a bit-group of the checked virtual word into invert-indication information according to a predetermined decode mapping, the bit-group corresponding to a location of the reference virtual bit-group; and

performing bus-invert decoding on respective data to be decoded according to the invert-indication information.

13. The computer-readable storage device embodying computer code of claim 12 , wherein the predetermined decode mapping is such that a hamming distance between any possible value of a converted bit-group and the reference virtual bit-group is fixed.

14. The computer-readable storage device embodying computer code of claim 12 , wherein the reference virtual bit group is unconvertible according to the predetermined decode mapping.

15. The computer-readable storage device embodying computer code of claim 12 , wherein the predetermined decode mapping is such that a hamming distance between any possible value of a converted bit-group and the reference virtual bit-group is less than the number of error-correction bits of the error-checking-and-correction encoding scheme.

16. The computer-readable storage device embodying computer code of claim 12 , further comprising:

outputting data corresponding to the input data of a checked virtual word when a mode control signal indicates a normal mode, wherein the virtual word includes the input data and a fixed virtual bit-group when the mode control signal indicates the normal mode; and

when the mode control signal indicates a low power mode, outputting data decoded in response to performing bus-invert decoding on respective data to be decoded according to the invert-indication information, wherein the virtual word includes the input data and the reference virtual bit-group when the mode control signal indicates the low power mode,

wherein the reference virtual bit-group is different from the fixed virtual bit-group.

17. The computer-readable storage device embodying computer code of claim 12 , further comprising:

outputting data corresponding to the input data of a checked virtual word when a mode control signal indicates a normal mode; and

when the mode control signal indicates a low power mode, outputting data decoded in response to performing bus-invert decoding on respective data to be decoded according to the invert-indication information, wherein the reference virtual bit-group is identical to a fixed virtual bit-group.

18. The computer-readable storage device embodying computer code of claim 12 , wherein the predetermined error-checking-and-correction encoding scheme has at least a capability of one-bit error-correction and two-bit error-detection.

19. The computer-readable storage device embodying computer code of claim 12 , wherein the code applied in the predetermined error-checking-and-correction encoding scheme is selected from a group comprising Hamming code and optimal odd-weight-column code.

20. The computer-readable storage device embodying computer code of claim 12 , wherein the predetermined decode mapping comprises one-hot code.

21. The computer-readable storage device embodying computer code of claim 12 , wherein the predetermined error-checking-and-correction encoding scheme is an optimal odd-weight-column code of one-bit error-correction and two-bit error-detection, the predetermined decode mapping is a 64-bit one-hot code, the data to be decoded has 64 bits, and the data to be decoded is divided into 6 bit-groups for respective bus-invert decoding according to the predetermined bus-invert encoding scheme.

22. The computer-readable storage device embodying computer code of claim 12 , further comprising:

calculating a frequency of occurrence of uncorrectable error-checking-and-correction errors in data transmission on a data bus; and

determining a mode control signal according to a frequency of occurrence of the uncorrectable error-checking-and-correction errors.

23. The computer-readable storage device embodying computer code of claim 22 , wherein determining the mode control signal according to the frequency of occurrence of the uncorrectable error-checking-and-correction errors further comprises:

determining the mode control signal according to the frequency of occurrence of the uncorrectable error-checking-and-correction errors and according to an environmental condition of the data bus.

24. The computer-readable storage device embodying computer code of claim 12 , wherein the data to be decoded is the input data, and the Hamming distance is equal to the number of error-correction bits of the predetermined error-checking-and-correction encoding scheme.

25. A data bus encoding method, comprising:

generating encoded data and invert-indication information by performing bus-invert encoding on data to be encoded according to a predetermined bus-invert encoding scheme;

converting the invert-indication information into a virtual bit-group according to a predetermined code mapping; and

generating an error-checking-and-correction code for a virtual word according to a predetermined error-checking-and-correction encoding scheme, the virtual word including the encoded data and the virtual bit-group corresponding to the encoded data, wherein any unoccupied bit of the virtual word takes a respective fixed value,

wherein the predetermined error-checking-and-correction encoding scheme includes error-check bits and error-correction bits, the error-check bits having a number of bits at least one more than a number of bits of the error-correction bits.

26. A data bus decoding method, comprising:

performing checking on a virtual word according to a predetermined error-checking-and-correction encoding scheme and an error-checking-and-correction code, the error-checking-and-correction code corresponding to input data, wherein the predetermined error-checking-and-correction encoding scheme includes error-check bits and error-correction bits with the error-check bits having a number of bits at least one more than a number of bits of the error-correction bits, wherein the virtual word includes the input data and a reference virtual bit-group, wherein any unoccupied bit of the virtual word has a respective fixed value;

converting a bit-group of the checked virtual word into invert-indication information according to a predetermined decode mapping, the bit-group corresponding to a location of the reference virtual bit-group; and

performing bus-invert decoding on respective data to be decoded according to the invert-indication information.

27. A data bus encoder, comprising:

a bus-invert encoder, configured for generating encoded data and invert-indication information by performing bus-invert encoding on data to be encoded according to a predetermined bus-invert encoding scheme;

a virtual bit-group generator, configured for converting the invert-indication information into a virtual bit-group according to a predetermined code mapping; and

an error-checking-and-correction encoder generating an error-checking-and-correction code for a virtual word according to a predetermined error-checking-and-correction encoding scheme, the virtual word including the encoded data and the virtual bit-group corresponding to the encoded data, wherein any unoccupied bit of the virtual word takes a respective fixed value,

wherein the predetermined error-checking-and-correction encoding scheme includes error-check bits and error-correction bits, the error-check bits having a number of bits at least one more than a number of bits of the error-correction bits.

28. A data bus decoder, comprising:

an error-checking-and-correction decoder configured for performing checking on a virtual word according to a predetermined error-checking-and-correction encoding scheme and an error-checking-and-correction code, the error-checking-and-correction code corresponding to input data, wherein the predetermined error-checking-and-correction encoding scheme includes error-check bits and error-correction bits with the error-check bits having a number of bits at least one more than a number of bits of the error-correction bits, wherein the virtual word includes the input data and a reference virtual bit-group, wherein any unoccupied bit of the virtual word has a respective fixed value;

an invert-indication information generator configured for converting a bit-group of the checked virtual word into invert-indication information according to a predetermined decode mapping, the bit-group corresponding to a location of the reference virtual bit-group; and

a bus-invert decoder configured for performing bus-invert decoding on respective data to be decoded according to the invert-indication information.

Continuity (2)
Continuation 12363128 · Jan 30, 2009
Related Publication 20120204082A1 · Aug 9, 2012