Claims
- 1. A method in a receiving device for compensating for differences in clock frequencies between a transmitting device and the receiving device, the method comprising:
receiving a stream of symbols transmitted serially from the transmitting device; identifying variable length groups of bits from the received stream along with an indication of whether the number of bits in the group represents an overrun or an underrun of bits; tracking whether an overrun or underrun criterion is satisfied based on the identified variable length groups of bits; and upon detection of an out-of-band symbol,
removing the out-of-band symbol from the stream of symbols when the overrun criterion is satisfied; and inserting an additional out-of-band symbol into the stream when the underrun criterion is satisfied.
- 2. The method of claim 1 wherein the tracking includes transferring the identified group of bits to a first-in-first-out bit buffer and maintaining a start-of-symbol pointer to indicate a starting bit of a symbol within the bit buffer.
- 3. The method of claim 2 wherein the tracking includes upon detecting a synchronization symbol setting the start-of-symbol pointer to point to the start of the synchronization symbol.
- 4. The method of claim 2 wherein the tracking includes moving the start-of-symbol pointer to an earlier received bit when an overrun of bits is indicated and moving the start-of-symbol pointer to later received bit when an underrun of bits is indicated.
- 5. The method of claim 4 wherein the underrun criterion is satisfied when the start-of-symbol pointer is moved past a certain bit position within the bit buffer.
- 6. The method of claim 4 wherein the overrun criterion is satisfied when the start-of-symbol pointer is moved before a certain bit position with the bit buffer.
- 7. The method of claim 4 wherein the removing of an out-of-band symbol includes moving the start-of-symbol pointer to after the detected out-of-band symbol.
- 8. The method of claim 4 wherein the inserting of an out-of-band symbol includes moving the start-of-symbol pointer a number of bit positions before the current start-of-symbol pointer and adding an out-of-band symbol at the start-of-symbol pointer, the number of bit positions moved being equal to the number of bits in a symbol.
- 9. The method of claim 2 including extracting a symbol starting at the bit pointed to by the start-of-symbol pointer.
- 10. The method of claim 1 wherein the detected out-of-band symbol is part of a primitive.
- 11. The method of claim 10 wherein the inserting inserts of copy of the detected out-of-band symbol.
- 12. The method of claim 10 wherein the primitive includes two out-of-band symbols.
- 13. The method of claim 12 wherein the inserting includes inserting a copy of the first of the two out-of-band symbols.
- 14. The method of claim 12 wherein the removing includes removing the first of the two out-of-band symbols.
- 15. The method of claim 12 wherein the primitive is a control primitive.
- 16. The method of claim 12 wherein the primitive is a synchronization primitive.
- 17. A method in a receiving device for maintaining synchronization between the receiving device with a transmitting device, the method comprising:
receiving variable length groups of bits from a received stream of bits of symbols along with an indication of whether the number of bits in the group represents an overrun or an underrun of bits; tracking whether an overrun or underrun criterion is satisfied based on the received variable length groups of bits; and upon receiving a symbol of a certain type, adjusting synchronization based on whether the overrun or underrun condition is satisfied.
- 18. The method of claim 17 wherein the certain type of symbol is an out-of-band symbol.
- 19. The method of claim 17 wherein the adjusting of the synchronization includes removing the received symbol of the certain type from the stream when the overrun criterion is satisfied and inserting an additional symbol of the certain type into the stream when the underrun criterion is satisfied.
- 20. The method of claim 17 wherein the tracking includes transferring the received group of bits to a first-in-first-out bit buffer and maintaining a start-of-symbol pointer to indicate a starting bit of a symbol within the bit buffer.
- 21. The method of claim 20 wherein the tracking includes upon detecting a synchronization symbol setting the start-of-symbol pointer to point to the start of the synchronization symbol.
- 22. The method of claim 20 wherein the tracking includes moving the start-of-symbol pointer to an earlier received bit when an overrun of bits is indicated and moving the start-of-symbol pointer to later received bit when an underrun of bits is indicated.
- 23. The method of claim 22 wherein the underrun criterion is satisfied when the start-of-symbol pointer is moved past a certain bit position within the bit buffer.
- 24. The method of claim 22 wherein the overrun criterion is satisfied when the start-of-symbol pointer is moved before a certain bit position with the bit buffer.
- 25. The method of claim 22 wherein the adjusting includes removing of the symbol of the certain type by moving the start-of-symbol pointer to after the out-of-band symbol when an overrun condition is satisfied.
- 26. The method of claim 22 wherein the adjusting includes inserting of a symbol by moving the start-of-symbol pointer a number of bit positions before the current start-of-symbol pointer and adding a symbol of the certain type at the start-of-symbol pointer, the number of bit positions moved being equal to the number of bits in a symbol, when an underrun condition is satisfied.
- 27. An aligner in a receiving device that maintains symbol alignment between the receiving device with a transmitting device, comprising:
a detecting component that detects whether the clock frequency of the transmitting device is faster or slower than the clock frequency of the receiving device based on variable length groups of bits received from the transmitting device as part of a stream of bits of symbols; and an adjusting component that adjusts alignment based on whether the clock frequency of the transmitting device is faster or slower than the clock frequency of the receiving device.
- 28. The aligner of claim 27 wherein the number of bits in the variable length groups of bits indicates whether the clock frequency of the transmitting device is faster or slower than the clock frequency of the receiving device.
- 29. The aligner of claim 27 wherein the adjusting component removes a received symbol of a certain type from the stream when the clock frequency of the transmitting device is faster that the clock frequency of the receiving device and inserts an additional symbol of a certain type into the stream when the clock frequency of the transmitting device is slower than the clock frequency of the receiving device.
- 30. The aligner of claim 27 including a bit buffer containing recently received variable length groups of bits and wherein the adjusting component moves forward a start-of-symbol pointer into the bit buffer one bit position when the number of bits in the variable length group of bits indicates that the clock frequency of the transmitting device is slower than the clock frequency of the receiving device and moves backwards the start-of-symbol pointer into the bit buffer one bit position when the number of bits in the variable length group of bits indicates that the clock frequency of the transmitting device is faster than the clock frequency of the receiving device.
- 31. The aligner of claim 30 wherein the adjusting component moves backward the start-of-symbol pointer one symbol position when the start-of-symbol pointer has moved forward past a certain bit position and moves forward one symbol position the start-of-symbol pointer when the start-of-symbol pointer has moved backward past a certain bit position.
- 32. The aligner of claim 31 wherein the moving backward and moving forward of the start-of-symbol pointer one symbol position occurs upon receiving a symbol of a certain type.
- 33. The aligner of claim 32 wherein the symbol of the certain type is an out-of-band symbol.
- 34. The aligner of claim 32 wherein the symbol of the certain type is a symbol of a primitive.
- 35. The aligner of claim 32 wherein the moving backward of the start-of-symbol pointer one symbol position includes inserting a symbol into the stream of symbols and the moving forward of the start-of-symbol pointer one symbol position removing a symbol from the stream of symbols.
- 36. The aligner of claim 27 including a synchronization component that detects a synchronization symbol in the stream of symbols and sets a start-of-symbol pointer to point to the start of the synchronization symbol.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/252,724 entitled “METHOD AND APPARATUS FOR STORAGE I/O WITH FULL-DUPLEX ONE-TIME BLOCK I/O TRANSFER AND ADAPTIVE PAYLOAD SIZING,” filed Nov. 22, 2000, and is related to U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR PLESIOSYNCHRONOUS COMMUNICATIONS WITH NULL INSERTION AND REMOVAL” (Attorney Docket No. 371798002US); U.S. patent application Ser. No. ______, entitled “METHOD AND SYSTEM FOR TRANSITION-CONTROLLED SELECTIVE BLOCK INVERSION COMMUNICATIONS” (Attorney Docket No. 371798007US); U.S. patent application Ser. No. ______ entitled “COMMUNICATIONS ARCHITECTURE FOR STORAGE-BASED DEVICES” (Attorney Docket No. 371798008US1); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR PACKET ORDERING BASED ON PACKET TYPE” (Attorney Docket No. 371798013US); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR HOST HANDLING OF COMMUNICATIONS ERRORS” (Attorney Docket No. 371798014US); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR DYNAMIC SEGMENTATION OF COMMUNICATIONS PACKETS” (Attorney Docket No. 371798015US); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR ASYMMETRIC PACKET ORDERING BETWEEN COMMUNICATIONS DEVICES” (Attorney Docket No. 371798016US); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR COMMUNICATING CONTROL INFORMATION VIA OUT-OF-BAND SYMBOLS” (Attorney Docket No. 371798017US); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR INTEGRATING PACKET TYPE INFORMATION WITH SYNCHRONIZATION SYMBOLS” (Attorney Docket No. 371798018US); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR NESTING OF COMMUNICATIONS PACKETS” (Attorney Docket No. 371798019US); U.S. patent application Ser. No. ______ entitled “COMMUNICATIONS ARCHITECTURE FOR MEMORY-BASED DEVICES” (Attorney Docket No. 371798012US); U.S. patent application Ser. No. ______ entitled “METHOD AND SYSTEM FOR DC-BALANCING AT THE PHYSICAL LAYER” (Attorney Docket No. 371798020US); and U.S. patent application Ser. No. ______ entitled “MULTISECTION MEMORY BANK SYSTEM” (Attorney Docket No. 371798021 US, which are all hereby incorporated by reference in their entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60252724 |
Nov 2000 |
US |