Two bit error calibration device for 128 bit transfer and the method for performing the same
10630423 ยท 2020-04-21
Inventors
Cpc classification
H04L1/0078
ELECTRICITY
G06F11/1048
PHYSICS
International classification
H04L1/00
ELECTRICITY
G06F11/10
PHYSICS
Abstract
A method for determining two bits errors in transmission of 128 bits and the device for realization of this method is provided. By the method and device, the two error bits transferred bits can be determined and corrected by using least bits in operation. Therefore, the amount of data in transmission is increased with a least quantity and thus the transmission quality is not affected.
Claims
1. A two bit error calibration device for 128 bit transfer, comprising: 16 memories for data storage; each memory having four output ports; two calibration chips each of which having four output ports; a data bus for data transfer; the data bus including 64 receiving ports; each receiving port connected to a corresponding output port of the 16 memories; the data bus could receive 64 bits; the data bus further including 8 checking ports which are connected to the 8 output ports of the two calibration chips; wherein when the 64 receiving ports of the data bus receive data from the output ports of the 16 memories; the receiving operation is a two stage operation and thus totally 128 bit data is received; before data are written into the memory; an operator connected to the data bus and the 16 memories for calculating checksums and bit sums for above said data of 128 bits; wherein in the operator, the 128 bit data is stored as 32 data sets; each data set includes four bits; all the 128 bits from the 16 memories being divided into 32 data sets, in that, each data set includes four bits which are a 0.sup.th bit (b0), a 1.sup.th bit (b1), a 2.sup.th bit (b2), and a 3.sup.th bit (b3); totally, there are 128 bits which are the data read by the data bus; the operator calculating a calibration bit set from the 32 data sets; before data are written into the memory, all the stored data being operated for deriving the checksums and bit sums; the results of operation being transferred to the two calibration chips; wherein the calibration bit set includes 16 calibration bits which are stored in the two calibration chips; wherein the 16 calibration bits are 0.sup.th calibration bit (cb0), 1.sup.th calibration bit (cb1), 2.sup.th calibration bit (cb2), 3.sup.th calibration bit (cb3), 4.sup.th calibration bit (cb4), 5.sup.th calibration bit (cb5), 6.sup.th calibration bit (cb6), 7.sup.th calibration bit (cb7), 8.sup.th calibration bit (cb8), 9.sup.th calibration bit (cb9), 10.sup.th calibration bit (cb10), 11.sup.th calibration bit (cb11), 12.sup.th calibration bit (cb12), 13.sup.th calibration bit (cb13), 14.sup.th calibration bit (cb14), and 15.sup.th calibration bit (cb15); a receiving end receiving the data transferred from the data bus, in that, the data includes the 128 bits data originally stored in the 16 memories and the 16 calibration bits originally stored in the calibration chips; a comparator in the receiving end for calculating the checksums and bit sums for the received data so as to derive another calibration bit set which includes 16 calibration bits; the calibration bits derived in the comparator from 128 bits transferred to the receiving end is compared with the calibration bits transferred from the calibration bit set originally stored in the two calibration chips as so to determine which two bits of the 128 bits are deviated in transfer; and wherein the data comparator compares all the calibration bits based on the received data with all the calibration bits 91 originally stored in the calibration chips.
2. The two bit error calibration device for 128 bit transfer as claimed in claim 1, wherein the 16 calibration bits include nine calibration bits for determining two data sets having two error transferred bits.
3. The two bit error calibration device for 128 bit transfer as claimed in claim 2, wherein the 16 calibration bits include seven calibration bits for determining two data sets having two error transferred bits, respectively, or determining one data set having two error transferred bits.
4. The two bit error calibration device for 128 bit transfer as claimed in claim 3, wherein the seven calibration bits are: the 0.sup.th calibration bit (cb0)=checksum of a bit string which is formed by a sequential assembly of all the 1.sup.th bit (b1) and the 3.sup.th bits of all the data sets; the 1.sup.th calibration bit (cb1)=checksum of a bit string which is formed by a sequential assembly of the 2.sup.th bit (b2) and the 3.sup.th bits of all the data sets; the 4.sup.th calibration bit (cb4)=checksum of a bit string which is formed by a sequential assembly of 0.sup.th bit (b0) and the 2.sup.th bit (b2) of the 0.sup.th, 2.sup.th, 4.sup.th, 6.sup.th, 8.sup.th, 10.sup.th, 12.sup.th, 14.sup.th, 16.sup.th, 18.sup.th, 20.sup.th, 22.sup.th, 24.sup.th, 26.sup.th, 28.sup.th, 30.sup.th, data sets; the 12.sup.th calibration bit (cb12)=bit sum of all the bits of the data sets; the 13.sup.th calibration bit (cb13)=bit sum of all the bits of the data sets; the 14.sup.th calibration bit (cb14)=bit sum of all the bits of the data sets; and the 15.sup.th calibration bit (cb15)=bit sum of all the bits of the data sets.
5. The two bit error calibration device for 128 bit transfer as claimed in claim 4, wherein the 0.sup.th calibration bit (cb0)=checksum of a bit string which is formed by a sequential assembly of all the 1.sup.th bit (b1) and the 3.sup.th bits of all the data sets; the 1.sup.th calibration bit (cb1)=checksum of a bit string which is formed by a sequential assembly of the 2.sup.th bit (b2) and the 3.sup.th bits of all the data sets; the 4.sup.th calibration bit (cb4)=checksum of a bit string which is formed by a sequential assembly of 0.sup.th bit (b0) and the 2.sup.th bit (b2) of the 0.sup.th, 2.sup.th, 4.sup.th, 6.sup.th, 8.sup.th, 10.sup.th, 12.sup.th, 14.sup.th, 16.sup.th, 18.sup.th, 20.sup.th, 22.sup.th, 24.sup.th, 26.sup.th, 28.sup.th, 30.sup.th data sets are use to determine that positions of two data sets have the two error bits or positions of one data set have the two error bits.
6. The two bit error calibration device for 128 bit transfer as claimed in claim 2, wherein the nine calibration bits are: the 2.sup.th calibration bit (cb2)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 1.sup.th, 3.sup.th, 5.sup.th, 7.sup.th, 9.sup.th, 11.sup.th, 13.sup.th, 15.sup.th, 17.sup.th, 19.sup.th, 21.sup.th, 23.sup.th, 25.sup.th, 27.sup.th, 29.sup.th, 31.sup.th data sets; the 3.sup.th calibration bit (cb3)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 2.sup.th, 3.sup.th, 6.sup.th, 7.sup.th, 10.sup.th, 11.sup.th, 14.sup.th, 15.sup.th, 18.sup.th, 10.sup.th, 22.sup.th, 23.sup.th, 26.sup.th, 27.sup.th, 30.sup.th, 31.sup.th data sets; the 5.sup.th calibration bit (cb5)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 4.sup.th, 5.sup.th, 6.sup.th, 7.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets; the 6.sup.th calibration bit (cb6)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 8.sup.th, 9.sup.th, 10.sup.th, 11.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets; the 7.sup.th calibration bit (cb7)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 16.sup.th, 17.sup.th, 18.sup.th, 19.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets; the 8.sup.th calibration bit (cb8)=bit sum of all the bits of the 0.sup.th, 4.sup.th, 8.sup.th, 12.sup.th, 16.sup.th, 20.sup.th, 24.sup.th, 28.sup.th data sets; the 9.sup.th calibration bit (cb9)=bit sum of all the bits of the 1.sup.th, 5.sup.th, 9.sup.th, 13.sup.th, 17.sup.th, 21.sup.th, 25.sup.th, 29.sup.th data sets; the 10.sup.th calibration bit (cb10)=bit sum of all the bits of the 2.sup.th, 6.sup.th, 10.sup.th, 14.sup.th, 18.sup.th, 22.sup.th, 26.sup.th, 30.sup.th data sets; and the 11.sup.th calibration bit (cb11)=bit sum of all the bits of the 3.sup.th, 7.sup.th, 11.sup.th, 15.sup.th, 19.sup.th, 23.sup.th, 27.sup.th, 31.sup.th data sets.
7. The two bit error calibration device for 128 bit transfer as claimed in claim 2, wherein the nine calibration bits are: the 2.sup.th calibration bit (cb2)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 1.sup.th, 3.sup.th, 5.sup.th, 7.sup.th, 9.sup.th, 11.sup.th, 13.sup.th, 15.sup.th, 17.sup.th, 19.sup.th, 21.sup.th, 23.sup.th, 25.sup.th, 27.sup.th, 29.sup.th, 31.sup.th data sets; the 3.sup.th calibration bit (cb3)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 2.sup.th, 3.sup.th, 6.sup.th, 7.sup.th, 10.sup.th, 11.sup.th, 14.sup.th, 15.sup.th, 18.sup.th, 19.sup.th, 22.sup.th, 23.sup.th, 26.sup.th, 27.sup.th, 30.sup.th, 31.sup.th data sets; the 5.sup.th calibration bit (cb5)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 4.sup.th, 5.sup.th, 6.sup.th, 7.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets; the 6.sup.th calibration bit (cb6)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 8.sup.th, 9.sup.th, 10.sup.th, 11.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets; the 7.sup.th calibration bit (cb7)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 16.sup.th, 17.sup.th, 18.sup.th, 19.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets; the 8.sup.th calibration bit (cb8)=bit sum of all the bits of the 0.sup.th, 4.sup.th, 8.sup.th, 12.sup.th, 16.sup.th, 20.sup.th, 24.sup.th, 28.sup.th data sets; the 9.sup.th calibration bit (cb9)=bit sum of all the bits of the 1.sup.th, 5.sup.th, 9.sup.th, 13.sup.th, 17.sup.th, 21.sup.th, 25.sup.th, 29.sup.th data sets; the 10.sup.th calibration bit (cb10)=bit sum of all the bits of the 2.sup.th, 6.sup.th 10.sup.th, 14.sup.th, 18.sup.th, 22.sup.th, 26.sup.th, 30.sup.th data sets; and the 11.sup.th calibration bit (cb11)=bit sum of all the bits of the 3.sup.th, 7.sup.th, 11.sup.th, 15.sup.th, 19.sup.th, 23.sup.th, 27.sup.th, 31.sup.th data sets.
8. A method for two bit error calibration of 128 bit transfer by using the device defined in claim 1, where the method comprises the following steps of: before storing a data of 128 bits into the 16 memories, the operator dividing the 128 bits of bit into 32 data bit sets with each set having 4 bits; and deriving the calibration bits cb0 to cb15; the dividing data being stored into the 16 memories and the calibration chips; transferring the data in the 16 memories and the calibration chips to the data bus which receives these data from the 64 receiving ports thereof; 128 bit data being received in two times from the 64 receiving ports; based on the receiving 128 bit data in the receiving end and originally stored in the 16 memories, the comparator calculating the checksum and bit sums; if there are two bit errors in the received 128 bit as comparing from the bits stored in the 16 memories, the checksums and bit sums calculated from by the comparator and transferred from the calibration chips will exist differences; and then the data set and the position having two bit errors being detected; then changing the bit from 0 to 1, or from 1 to 0 will correct the bit error.
9. The method as claimed in claim 8, wherein the 16 calibration bits include nine calibration bits for determining two data sets having two error transferred bits.
10. The method as claimed in claim 9, wherein the 16 calibration bits include seven calibration bits for determining two data sets having two error transferred bits, respectively or determining one data set having two error transferred bits.
11. The method as claimed in claim 10, wherein the seven calibration bits are: the 0.sup.th calibration bit (cb0)=checksum of a bit string which is formed by a sequential assembly of all the 1.sup.th bit (b1) and the 3.sup.th bits of all the data sets; the 1.sup.th calibration bit (cb1)=checksum of a bit string which is formed by a sequential assembly of the 2.sup.th bit (b2) and the 3.sup.th bits of all the data sets; the 4.sup.th calibration bit (cb4)=checksum of a bit string which is formed by a sequential assembly of 0.sup.th bit (b0) and the 2.sup.th bit (b2) of the 0.sup.th, 2.sup.th, 4.sup.th, 6.sup.th, 8.sup.th, 10.sup.th, 12.sup.th, 14.sup.th, 16.sup.th, 18.sup.th, 20.sup.th, 22.sup.th, 24.sup.th, 26.sup.th, 28.sup.th, 30.sup.th, data sets; the 12.sup.th calibration bit (cb12)=bit sum of all the bits of the data sets; the 13.sup.th calibration bit (cb13)=bit sum of all the bits of the data sets; the 14.sup.th calibration bit (cb14)=bit sum of all the bits of the data sets; and the 15.sup.th calibration bit (cb15)=bit sum of all the bits of the data sets.
12. The method as claimed in claim 11, wherein the 0.sup.th calibration bit (cb0)=checksum of a bit string which is formed by a sequential assembly of all the 1.sup.th bit (b1) and the 3.sup.th bits of all the data sets; the 1.sup.th calibration bit (cb1)=checksum of a bit string which is formed by a sequential assembly of the 2.sup.th bit (b2) and the 3.sup.th bits of all the data sets; the 4.sup.th calibration bit (cb4)=checksum of a bit string which is formed by a sequential assembly of 0.sup.th bit (b0) and the 2.sup.th bit (b2) of the 0.sup.th, 2.sup.th, 4.sup.th, 6.sup.th, 8.sup.th, 10.sup.th, 12.sup.th, 14.sup.th, 16.sup.th, 18.sup.th, 20.sup.th, 22.sup.th, 24.sup.th, 26.sup.th, 28.sup.th, 30.sup.th data sets are use to determine that positions of two data sets have the two error bits or positions of one data set have the two error bits.
13. The method as claimed in claim 9, wherein the nine calibration bits are: the 2.sup.th calibration bit (cb2)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 1.sup.th, 3.sup.th, 5.sup.th, 7.sup.th, 9.sup.th, 11.sup.th, 13.sup.th, 15.sup.th, 17.sup.th, 19.sup.th, 21.sup.th, 23.sup.th, 25.sup.th, 27.sup.th, 29.sup.th, 31.sup.th data sets; the 3.sup.th calibration bit (cb3)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 2.sup.th, 3.sup.th, 6.sup.th, 7.sup.th, 10.sup.th, 11.sup.th, 14.sup.th, 15.sup.th, 18.sup.th, 19.sup.th, 22.sup.th, 23.sup.th, 26.sup.th, 27.sup.th, 30.sup.th, 31.sup.th data sets; the 5.sup.th calibration bit (cb5)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 4.sup.th, 5.sup.th, 6.sup.th, 7.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th data sets; the 6.sup.th calibration bit (cb6)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 8.sup.th, 9.sup.th, 10.sup.th, 11.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th data sets; the 7.sup.th calibration bit (cb7)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 16.sup.th, 17.sup.th, 18.sup.th, 19.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th data sets; the 8.sup.th calibration bit (cb8)=bit sum of all the bits of the 0.sup.th, 4.sup.th, 8.sup.th, 12.sup.th, 16.sup.th, 20.sup.th, 24.sup.th, 28.sup.th data sets; the 9.sup.th calibration bit (cb9=bit sum of all the bits of the 1.sup.th, 5.sup.th, 9.sup.th, 13.sup.th, 17.sup.th, 21.sup.th, 25.sup.th, 29.sup.th data sets; the 10.sup.th calibration bit (cb10)=bit sum of all the bits of the 2.sup.th, 6.sup.th, 10.sup.th, 14.sup.th, 18.sup.th, 22.sup.th, 26.sup.th, 30.sup.th data sets; and the 11.sup.th calibration bit (cb11)=bit sum of all the bits of the 3.sup.th, 7.sup.th, 11.sup.th, 15.sup.th, 19.sup.th, 23.sup.th, 27.sup.th, 31.sup.th data sets.
14. The method as claimed in claim 9, wherein the nine calibration bits are: the 2.sup.th calibration bit (cb2)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 1.sup.th, 3.sup.th, 5.sup.th, 7.sup.th, 9.sup.th, 11.sup.th, 13.sup.th, 15.sup.th, 17.sup.th, 19.sup.th, 2.sup.th, 23.sup.th, 25.sup.th, 27.sup.th, 29.sup.th, 31.sup.th data sets; the 3.sup.th calibration bit (cb3)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 2.sup.th, 3.sup.th, 6.sup.th, 7.sup.th, 10.sup.th, 11.sup.th, 14.sup.th, 15.sup.th, 18.sup.th, 19.sup.th, 22.sup.th, 23.sup.th, 26.sup.th, 27.sup.th, 30.sup.th, 31.sup.th data sets; the 5.sup.th calibration bit (cb5)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 4.sup.th, 5.sup.th, 6.sup.th, 7.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets; the 6.sup.th calibration bit (cb6)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 8.sup.th, 9.sup.th, 10.sup.th, 11.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th data sets; the 7.sup.th calibration bit (cb7)=checksum of a bit string which is formed by a sequential assembly of all the bits of the 16.sup.th, 17.sup.th, 18.sup.th, 19.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th data sets; the 8.sup.th calibration bit (cb8)=bit sum of all the bits of the 0.sup.th, 4.sup.th, 8.sup.th 12.sup.th, 16.sup.th, 20.sup.th, 24.sup.th, 28.sup.th data sets; the 9.sup.th calibration bit (cb9)=bit sum of all the bits of the 1.sup.th, 5.sup.th, 9.sup.th, 13.sup.th, 17.sup.th, 21.sup.th, 25.sup.th, 29.sup.th data sets; the 10.sup.th calibration bit (cb10)=bit sum of all the bits of the 2.sup.th, 6.sup.th, 10.sup.th, 14.sup.th, 18.sup.th, 22.sup.th, 26.sup.th, 30.sup.th data sets; and the 11.sup.th calibration bit (cb11)=bit sum of all the bits of the 3.sup.th, 7.sup.th, 11.sup.th, 15.sup.th, 19.sup.th, 23.sup.th, 27.sup.th, 31.sup.th data sets.
15. The method as claimed in claim 8, wherein after correction, a new set of 128 bits is derived, the comparator calculating calibration bits (cb0) to (cb15) as described above for the corrected new 128 bits; the results is compared with the calibration bits (cb0) to (cb15) originally stored in the calibration chips; if all the calibration bits are identical, it means that the corrections are correct; if some calibration bits are different, it means that the numbers of the error bits in transfer are greater than 2.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION OF THE INVENTION
(12) In order that those skilled in the art can further understand the present invention, a description will be provided in the following in details. However, these descriptions and the appended drawings are only used to cause those skilled in the art to understand the objects, features, and characteristics of the present invention, but not to be used to confine the scope and spirit of the present invention defined in the appended claims.
(13) With reference to
(14) A substrate 10 is used;
(15) 16 memories 20 are arranged on the substrate 10. The 16 memories 20 serve to store data. Each memory 20 has four output ports 25.
(16) Two calibration chips 30 are positioned on the substrate 10. Each calibration chip 30 has four output ports 35.
(17) A data bus 40 serves to transfer data. The data bus 40 includes 64 receiving ports 41. Each receiving port 41 is connected to a corresponding output port 25. The data bus 40 could receive 64 bits, as illustrated in
(18) Furthermore, the data bus 40 further includes 8 checking ports 42 which are connected to the 8 output ports 35 of the two calibration chips 30, as illustrated in
(19) When the 64 receiving ports 41 of the data port 40 receive data from the output ports 25 of the 16 memories 20, the receiving operation is a two stage operation and thus totally 128 bit data is received.
(20) The present invention further includes an operator 70 which is connected to the data bus 40 and the 16 memories 20 for calculating checksums and bit sums for above said data of 128 bits. In the operator, the 128 bit data is stored as 32 data sets 50. Each data set 50 includes four bits. All the 128 bits from the 16 memories 20 are divided into 32 data sets 50, which are a 0.sup.th data set 50, a first data set 50, a second data set 50, a third data set 50, . . . , a 31 data set 50, as illustrated in
(21) The operator 70 calculates a calibration bit set 90 from the 32 data sets 50.
(22) Before data are written into the memory 20, all the stored data are operated for calculation and deriving the checksums and bit sums. The results of operation are transferred to the two calibration chips 30.
(23) The calibration bit set 90 includes 16 calibration bits 91 which are stored in the two calibration chips 30. In the 16 calibration bits 91, four of the calibration bits 91 are assembled as one set, as illustrated in
(24) The 19 calibration bits 91 are 0.sup.th calibration bit cb0, 1.sup.th calibration bit cb1, 2.sup.th calibration bit cb2, 3.sup.th calibration bit cb3, 4.sup.th calibration bit cb4, 5.sup.th calibration bit cb5, 6.sup.th calibration bit cb6, 7.sup.th calibration bit cb7, 8.sup.th calibration bit cb8, 9.sup.th calibration bit cb9, 10.sup.th calibration bit cb10, 11.sup.th calibration bit cb11, 12.sup.th calibration bit cb12, 13.sup.th calibration bit cb13, 14.sup.th calibration bit cb14, and 15.sup.th calibration bit cb15.
(25) In data transferring, the receiving end 60 receives the data from the data bus 40, in that, the data includes the 128 bits data originally stored in the 16 memories 20 and the 16 calibration bits 91 originally stored in the calibration chips 30. Then a comparator 80 calculates the same operations of checksums and bit sums for the received data so as to derive another calibration bit set 90 which includes 16 calibration bits 91. The calibration bits 91 derived in the comparator 80 from 128 bits transferred to the receiving end is compared with the calibration bits 91 transferred from the calibration bit set 91 originally stored in the two calibration chips 30 as so to determine which two bits of the 128 bits are deviated in transfer.
(26) Based on the received data in the receiving end 60, the data comparator 80 calculates the 0.sup.th calibration bit cb0, 1.sup.th calibration bit cb1, 1.sup.th calibration bit cb1, 2.sup.th calibration bit cb2, 3.sup.th calibration bit cb3, 4.sup.th calibration bit cb4, 5.sup.th calibration bit cb5, 6.sup.th calibration bit cb6, and 7.sup.th calibration bit cb7; the 8.sup.th calibration bit cb8, the 9.sup.th calibration bit cb9, 10.sup.th calibration bit cb10, 11.sup.th calibration bit cb11, 12.sup.th calibration bit cb12, 13.sup.th calibration bit cb13, 14.sup.th calibration bit cb14, and 15.sup.th calibration bit cb15 derived in the original 16 memories 20.
(27) Then the data comparator 80 compares all the calibration bits 91 based on the received data with all the calibration bits 91 originally stored in the calibration chips 30.
(28) All the calibration bits 91 are defined as the following:
(29) The 0.sup.th calibration bit cb0=checksum of a bit string which is formed by a sequential assembly of all the 1.sup.th bit b1 and the 3.sup.th bits of all the data sets 50.
(30) For example, to simplify, we assume that only four data sets 50 and
(31) 0.sup.th data set 50 is 0011,
(32) 1.sup.th data set 50 is 1101,
(33) 2.sup.th data set 50 is 1011,
(34) 3.sup.th data set 50 is 0000,
(35) Then the assembly of the bit stream is 01101100. Then operation of checksum is used to this bit string for getting the 0.sup.th calibration bits cb0.
(36) In the present invention, indeed, there are 32 data sets 50.
(37) The 1.sup.th calibration bit cb1=checksum of a bit string which is formed by a sequential assembly of the 2.sup.th bit b2 and the 3.sup.th bits of all the data sets 50 wherein one of the 16 calibration bits 91 is the checksum of a bit string which is formed by a sequential assembly of all the bits of the 1.sup.th, 3.sup.th, 5.sup.th, 7.sup.th, 9.sup.th, 11.sup.th, 13.sup.th, 15.sup.th, 17.sup.th, 19.sup.th, 21.sup.th, 23.sup.th, 25.sup.th, 27.sup.th, 29.sup.th, 31.sup.th data sets 50, that is:
(38) The 2.sup.th calibration bit cb2=checksum of a bit string which is formed by a sequential assembly of all the bits of the 1.sub.th, 3.sup.th, 5.sup.th, 7.sup.th, 9.sup.th, 11.sup.th, 13.sup.th, 15.sup.th, 17.sup.th, 19.sup.th, 21.sup.th, 23.sup.th, 25.sup.th, 27.sup.th, 29.sup.th, 31.sup.th data sets 50.
(39) The 3.sup.th calibration bit cb3=checksum of a bit string which is formed by a sequential assembly of all the bits of the 2.sup.th, 3.sup.th, 6.sup.th, 7.sup.th, 10.sup.th, 11.sup.th, 14.sup.th, 15.sup.th, 18.sup.th, 19.sup.th, 22.sup.th, 23.sup.th, 26.sup.th, 27.sup.th, 30.sup.th, 31.sup.th data sets 50.
(40) The 4.sup.th calibration bit cb4=checksum of a bit string which is formed by a sequential assembly of 0.sup.th bit b0 and the 2.sup.th bit b2 of the 0.sup.th, 2.sup.th, 4.sup.th, 6.sup.th, 8.sup.th, 10.sup.th, 12.sup.th, 14.sup.th, 6.sup.th, 18.sup.th, 20.sup.th, 22.sup.th, 24.sup.th, 26.sup.th, 28.sup.th, 30.sup.th, data sets 50.
(41) The 5.sup.th calibration bit cb5=checksum of a bit string which is formed by a sequential assembly of all the bits of the 4.sup.th, 5.sup.th, 6.sup.th, 7.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets 50.
(42) The 6.sup.th calibration bit cb6=checksum of a bit string which is formed by a sequential assembly of all the bits of the 8.sup.th, 9.sup.th, 10.sup.th, 11.sup.th, 12.sup.th, 13.sup.th, 14.sup.th, 15.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets 50.
(43) The 7.sup.th calibration bit cb7=checksum of a bit string which is formed by a sequential assembly of all the bits of the 16.sup.th, 17.sup.th, 18.sup.th, 19.sup.th, 20.sup.th, 21.sup.th, 22.sup.th, 23.sup.th, 24.sup.th, 25.sup.th, 26.sup.th, 27.sup.th, 28.sup.th, 29.sup.th, 30.sup.th, 31.sup.th, data sets 50.
(44) The 8.sup.th calibration bit cb8=bit sum of all the bits of the 0.sup.th, 4.sup.th, 8.sup.th, 12.sup.th, 16.sup.th, 20.sup.th, 24.sup.th, 28.sup.th data sets 50.
(45) The 9.sup.th calibration bit cb9=bit sum of all the bits of the 1.sup.th, 5.sup.th, 9.sup.th, 13.sup.th, 17.sup.th, 21.sup.th, 25.sup.th, 29.sup.th data sets 50.
(46) The 10.sup.th calibration bit cb10=bit sum of all the bits of the 2.sup.th, 6.sup.th, 10.sup.th, 14.sup.th, 18.sup.th, 22.sup.th, 26.sup.th, 30.sup.th data sets 50.
(47) The 11.sup.th calibration bit cb11=bit sum of all the bits of the 3.sup.th, 7.sup.th, 11.sup.th, 15.sup.th, 19.sup.th, 23.sup.th, 27.sup.th, 31.sup.th data sets 50.
(48) The 12.sup.th calibration bit cb12=bit sum of all the bits of the data sets 50.
(49) The 13.sup.th calibration bit cb13=bit sum of all the bits of the data sets 50.
(50) The 14.sup.th calibration bit cb14=bit sum of all the bits of the data sets 50.
(51) The 15.sup.th calibration bit cb15=bit sum of all the bits of the data sets 50.
(52) The calibration bits cb2, cb3, cb5, cb6, cb7, cb8, cb9, cb10, cb11 are used to determine two data sets 50 which contains two error bits. In determination of the two data sets 50 containing the two error transferred bits, that is, two bits which are incorrect as compared with the bits originally transferred from the 16 memories 20. All the nine calibration bits cb2, cb3, cb5, cb6, cb7, cb8, cb9, cb10, cb11 can be used, or only parts of the nine calibration bits cb2, cb3, cb5, cb6, cb7, cb8, cb9, cb10, cb11 are used.
(53) The calibration bits cb0, cb1, cb4, cb12, cb13, cb14, cb15, cb11 are used to determine positions of the two data sets 50 in which the two error transferred bits exist. It is possibly that the two error transferred bits are existed at two different data sets 50 or at the same data set 50. All the seven calibration bits cb0, cb1, cb4, cb12, cb13, cb14, cb15, cb11 can be used, or parts of the calibration bits cb0, cb1, cb4, cb12, cb13, cb14, cb15, cb11 are used.
(54) The table shown in
(55) For example, referring to the first line of
(56) If there is one bit error in the received 128 bit, it will be different on the checksums and bit sums. From the table shown in
(57)
(58) Before storing a data of 128 bits into the 16 memories 20, the operator 70 dividing the 128 bits of bit into 32 data bit sets 50 with each set having 4 bits; and deriving the calibration bits cb0 to cb15 as defined above; the ways for arranging these data as described above. The dividing data being stored into the 16 memories 20 and the calibration chips 30 (step 210);
(59) Transferring the data in the 16 memories 20 and the calibration chips 30 to the data bus 40 which receives these data from the 64 receiving ports 41 thereof; 128 bit data being received in two times from the 64 receiving ports 41 (step 210); A receiving end 60 receiving the data from the data bus 40 (step 220).
(60) Based on the receiving 128 bit data in the receiving end and originally stored in the 16 memories 20, The comparator 80 calculating the checksum and bit sums as defined above (step 230);
(61) If there are two bits error in the received 128 bit as comparing from the bits stored in the 16 memories 20, the checksums and bit sums calculated from by the comparator 80 and transferred from the calibration chips 30 will exist differences. Furthermore, from the table shown in
(62) After correction, a new set of 128 bits is derived, the comparator 80 calculates the calibration bits cb0 to cb15 as described above for the corrected new 128 bits. The results are compared with the calibration bits cb0 to cb15 originally stored in the calibration chips 30. If all the calibration bits are identical, it means that the corrections are correct. If some calibration bits are different, it means that the numbers of the error bits in transfer are greater than 2 (step 250).
(63) In use of the present invention, firstly, to check whether there is a one bit error in transmission of the 128 bits by the method for checking the one bit error (which is known in the prior art). If the error is not a one bit error, than the method of the present invention is used to check whether the transmission error is two bits. Above mentioned method of the present invention can be used to determine two bit errors. Furthermore, the present invention further provides a method to determine whether the number of error bits are greater than two. If it is not greater than two and not one, then the method of the present invention provides a method to correct the two bit errors in transmission.
(64) The present invention provides a method for determining two bits errors in transmission of 128 bits and the device for realization of this method. By the method and device of the present invention, the two error bits transferred bits can be determined and corrected by using least bits in operation. Therefore, the amount of data in transmission is increased with a least quantity and thus the transmission quality is not affected.
(65) The present invention is thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the present invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.