US2007283058A1PendingUtilityA1

Concurrent asynchronous usb data stream destuffer with variable width bit-wise memory controller

50
Assignee: INTEL CORPPriority: May 25, 2001Filed: Dec 13, 2006Published: Dec 6, 2007
Est. expiryMay 25, 2021(expired)· nominal 20-yr term from priority
G06F 2213/0042H03M 5/14G06F 13/1678
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A concurrent asynchronous USB 2.0 data stream destuffer and separator with variable-width bit-wise memory controller is described. A parallel stream bit destuffer module identifies in parallel one or more stuffed bits in a decoded data field of a received data stream using a six-bit sliding window. The stuffed bits are bits that were inserted into the received USB data stream by a transmitter to force data transitions in the received USB data stream. A data separator module separates the one or more stuffed bits from a plurality of valid data bits in the decoded data field. A memory module generates an incremental pointer value representative of the number of valid bits and writes the plurality of valid data bits from the decoded data field into a variable sized bit-wise memory structure.

Claims

exact text as granted — not AI-modified
1 . A method comprising: 
 identifying in parallel one or more stuffed bits in a decoded data field of a received data stream using a six-bit sliding window;    separating in parallel the one or more stuffed bits from a plurality of valid data bits in the decoded data field; and    writing the plurality of valid data bits from the decoded data field into a variable sized bit-wise memory structure.    
   
   
       2 . The method of  claim 1  wherein the six-bit sliding window for a first bit in the decoded data field includes six consecutive bits immediately preceding the first bit in the received data stream.  
   
   
       3 . The method of  claim 2  wherein identifying one or more stuffed bits further comprises: 
 examining the first bit in the decoded data field and the six-bit sliding window for the first bit; and    setting a first corresponding bit in a mask, if the six-bit sliding window indicates that the first bit is a stuffed bit.    
   
   
       4 . The method of  claim 3  wherein identifying one or more stuffed bits further comprises: 
 examining a second bit in the decoded data field and a six-bit sliding window for the second bit; and    setting a second corresponding bit in the mask, if the six-bit sliding window indicates that the second bit is a stuffed bit.    
   
   
       5 . The method of  claim 4  wherein the act of examining the first bit and the act of examining the second bit are performed during a same clock period.  
   
   
       6 . The method of  claim 5  wherein the act of examining each one of the bits in the decoded data field is performed in parallel.  
   
   
       7 . The method of  claim 1  wherein the separating the stuffed bits comprises changing a position of one or more of the plurality of valid decoded data bits in the nine-bit decoded data field.  
   
   
       8 . The method of  claim 7  further comprising determining a width of the plurality of valid decoded data bits based on the mask.  
   
   
       9 . The method of  claim 1  wherein writing the plurality of valid data bits is performed with a pointer representing a number of valid bits in the memory structure.  
   
   
       10 . The method of  claim 9  wherein the pointer is incremented by a number of the valid data bits in the decoded data field.  
   
   
       11 . The method of  claim 9  further comprising reading the plurality of data bits from the variable bit-wise memory structure in bytes.  
   
   
       12 . The method of  claim 11  wherein the pointer is decremented by eight when a byte of data is read.  
   
   
       13 . An application specific integrated circuit (ASIC) comprising: 
 Universal Serial Bus (USB) transceiver logic, the USB transceiver logic to create a mask to identify one or more stuffed bits in a received data stream, to remove the stuffed bits from a plurality of valid data bits in the received data stream, and to write the plurality of valid data bits into a variable sized bit-wise memory structure.    
   
   
       14 . The ASIC of  claim 13  wherein the transceiver logic to create a mask further comprises logic to examine a bit in a nine-bit data field of the received data stream and six bits preceding the bit in the nine-bit data field and logic to set a corresponding bit in the mask, if the six bits preceding the bit indicate that the bit is stuffed.  
   
   
       15 . The ASIC of  claim 13  wherein the transceiver logic to remove the stuffed bits further comprises logic to compact the valid data bits into the lowest bit positions in the nine-bit data field.  
   
   
       16 . The ASIC of  claim 15  wherein the transceiver logic to remove the stuffed bits further comprises logic to determine a width of the valid data bits in the nine-bit data field based on the mask.  
   
   
       17 . The ASIC of  claim 16  wherein the transceiver logic to write further comprises a pointer representing a number of valid bits in the memory structure.  
   
   
       18 . The ASIC of  claim 17  wherein the pointer is incremented by a number of the valid data bits in the data field and the pointer is decremented by eight when a byte of data is read.  
   
   
       19 . An apparatus comprising: 
 device-specific logic for a Universal Serial Bus (USB) peripheral device;    a transceiver to receive signals following a Universal Serial Bus (USB) version 2.0 data communications protocol, the transceiver comprising a parallel stream bit destuffer module to create a mask to identify stuffed data in a received data stream having stuffed data and valid data, a data separator module to separate the stuffed data from the valid data, and a memory module to store the valid data; and    a serial interface engine to provide an interface between the device-specific logic and the transceiver.    
   
   
       20 . The apparatus of  claim 19  wherein the memory module of the transceiver further comprises a memory buffer to receive variable size data.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.