Device and method for selecting opcode values with maximum hamming distance to minimize latency and buffering requirements
AssigneeIntel Corporation
InventorKnut S. Grimsrud
Life of this patent
Estimating the term…
Abstract
A method, device, and computer program to generate operation codes having a maximum hamming distance between them. Utilizing these operation codes it is possible to detect errors immediately upon receipt of a first byte of data in a packet to allow the receiver to immediately act on the received data. This reduces the need for buffer space on both the transmitting and receiving devices. Further, this method reduces the latency for the receiver acting on the incoming data.
Claims21
A method of generating operation codes, comprising:
- creating a plurality of encoded code words;
- eliminating from the plurality of encoded code words all code words that do not meet a predetermined selection criteria;
- selecting an encoded code word from the plurality of remaining encoded code words;
- determining a hamming distance between the selected encoded code word and all remaining encoded code words;
- deleting all of the remaining encoded code words that do not have a hamming distance greater than a predetermined minimum with the selected encoded code word, to form a set of encoded code words, wherein the predetermined minimum hamming distance prevents any two encoded code words from having fewer than a predetermined number of bits different.
A method for transmitting and receiving a packet of information, comprising:
- p1 generating a table having a plurality of associated operation codes, scrambler syndrome values, scrambled values, and encoded code words, wherein the plurality of encoded code words have been selected based upon predetermined criteria and each code word has a maximum hamming distance between all other encoded code words;
- resetting a scrambler generator using a scrambler seed value at the beginning of transmission;
- scrambling a plurality of data value by XORing the plurality of data values with a value from the scrambler syndrome generator to form a plurality of scrambled values;
- encoding the plurality of scrambled values to a plurality of encoded scrambled values having a greater number of bits;
- transmitting an encoded code word representing an operation code to a receiving device;
- decoding and descrambling the encoded code word to create a code word;
- comparing the code word against the table having the plurality of associated operation codes, scrambler syndrome values, scrambled values, and encoded code words by the receiving device;
- and
- acting upon the received opcode immediately after decoding to properly process the rest of the incoming data.
A computer program embodied on a computer readable medium and executable by a computer, comprising:
- generating a table having a plurality of associated operation codes, scrambler syndrome values, scrambled values, and encoded code words, wherein the plurality of encoded code words have been selected based upon predetermined criteria and each code word has a minimum hamming distance between all other encoded code words;
- resetting a scrambler generator using a seed value;
- scrambling a plurality of data values by XORing the plurality of data values with the plurality of data values generated by the scrambler generator to form a plurality of scrambled values;
- converting the plurality of scrambled values to a plurality of encoded scrambled values having a greater number of bits;
- transmitting an encoded code word representing an operation code to a receiving device;
- decoding and descrambling the encoded code word to create a code word;
- comparing the code word against the table having the plurality of associated operation codes, scrambler syndrome values, scrambled values, and encoded code words by the receiving device;
- and
- requesting a retransmission of data when a match cannot be found in the table for the encoded code words.
A device for transmitting and receiving a packet of information, comprising:
- a transmission unit, comprising:
- a scrambler generator reset to a seed value upon the first byte of data transmitted;
- an XOR unit connected to the scrambler generator to XOR data received along with the seed value generated by the scrambler unit;
- and
- a 8b/10b encoder connected to the XOR unit to convert the data from an eight-bit format;
- a reception unit, comprising:
- a scrambler generator which is reset when the data received;
- a 10b/8b decoder to convert the data from a 10 bits format to an 8 bit format;
- an XOR unit connected to the 10b/8b decoder to exclusive or the data received with a value from the scrambler generator to create an opcode;
- and
- an opcode verification unit to check the validity of the opcode.
Dependencies are inferred from the claim text.