Low-power USB flash card reader using bulk-pipe streaming with UAS command re-ordering and channel separation
First Claim
1. A card reader comprising:
- a transmit pair for sending packets to a host;
a receive pair for receiving packets from the host;
wherein the transmit and receive pair comprise a differential bus with a first pin carry+signal and a second pin carry−
signal from host as the receive pair, and a second pair differential serial bus with a first pin carry+signal and a second pin carry−
signal to the host as the transmit pair;
an input buffer for buffering packets from the receive pair and for buffering packets to the transmit pair;
a command extractor for extracting commands from the packets from the host;
a command pipe for flowing commands from the host to the card reader;
a status pipe for flowing status packets from the card reader to the host;
a bulk data-out pipe for flowing data packets from the host to the card reader;
a bulk data-in pipe for flowing data packets from the card reader to the host;
bulk endpoint buffers comprising;
a status bulk-in endpoint that sends status packets to the host through the status pipe;
a data bulk-in endpoint that sends data packets to the host through the bulk data-in pipe;
a data bulk-out endpoint that receives data packets from the host through the bulk data-out pipe;
a command endpoint that receives command packets from the host through the command pipe;
a processor for executing control routines;
a chaining direct-memory access (DMA) engine, programmed by the processor to transfer data packets including headers and payloads between the input buffer and the bulk endpoint buffers;
a flash-card socket for receiving a flash memory card; and
a flash-card protocol converter, coupled to the bulk endpoint buffers, for converting commands extracted by the command extractor into flash-card signals for accessing the flash memory card inserted into the flash-card socket,whereby packets are flowed through pipes using the chaining DMA engine.
2 Assignments
0 Petitions
Accused Products
Abstract
A flash-card reader improves transmission efficiency by using bulk streaming of multiple pipes. A bulk data-out pipe carries host write data to the card reader and can operate in parallel with a bulk data-in pipe that carries host read data that was read from a flash card attached to the card reader. Status packets do not block data packets since the he status packets are buffered through a separate status pipe, and commands are buffered through a command pipe. Flash data from multiple flash cards are interleaved as separate endpoints that share the bulk data-in pipe. A data in/out streaming state machine controls streaming bulk data through the bulk data-in and data-out pipes, while a status streaming state machine controls streaming status packets through the status pipe. Transaction overhead is reduced using bulk streaming where packets for several commands are combined into the same bulk streams.
-
Citations
21 Claims
-
1. A card reader comprising:
-
a transmit pair for sending packets to a host; a receive pair for receiving packets from the host; wherein the transmit and receive pair comprise a differential bus with a first pin carry+signal and a second pin carry−
signal from host as the receive pair, and a second pair differential serial bus with a first pin carry+signal and a second pin carry−
signal to the host as the transmit pair;an input buffer for buffering packets from the receive pair and for buffering packets to the transmit pair; a command extractor for extracting commands from the packets from the host; a command pipe for flowing commands from the host to the card reader; a status pipe for flowing status packets from the card reader to the host; a bulk data-out pipe for flowing data packets from the host to the card reader; a bulk data-in pipe for flowing data packets from the card reader to the host; bulk endpoint buffers comprising; a status bulk-in endpoint that sends status packets to the host through the status pipe; a data bulk-in endpoint that sends data packets to the host through the bulk data-in pipe; a data bulk-out endpoint that receives data packets from the host through the bulk data-out pipe; a command endpoint that receives command packets from the host through the command pipe; a processor for executing control routines; a chaining direct-memory access (DMA) engine, programmed by the processor to transfer data packets including headers and payloads between the input buffer and the bulk endpoint buffers; a flash-card socket for receiving a flash memory card; and a flash-card protocol converter, coupled to the bulk endpoint buffers, for converting commands extracted by the command extractor into flash-card signals for accessing the flash memory card inserted into the flash-card socket, whereby packets are flowed through pipes using the chaining DMA engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A bulk streaming device comprising:
-
a Universal-Serial-Bus (USB) port for connecting to a host over a receive pair and a transmit pair of lines; a physical layer coupled to the USB port to receive a received data stream from the receive pair, and to transmit a transmit data stream to the transmit pair; a link layer, coupled to the physical layer, for processing link control words received from the host over the receive pair, for controlling link power and link training; a first-in-first-out (FIFO) buffer, coupled to the link layer, for storing packets passed through the link layer; a command pipe for flowing commands from the host to the bulk streaming device; a status pipe for flowing status packets from the bulk streaming device to the host; a bulk data-out pipe for flowing data packets from the host to the bulk streaming device; a bulk data-in pipe for flowing data packets from the bulk streaming device to the host; a RAM buffer for storing status packets and data packets, the RAM buffer including bulk endpoint buffers that comprise; a status bulk-in endpoint that sends status packets to the host through the status pipe; a data bulk-in endpoint that sends data packets to the host through the bulk data-in pipe; a data bulk-out endpoint that receives data packets from the host through the bulk data-out pipe; a command endpoint that receives command packets from the host through the command pipe; a processor for executing control routines; a direct-memory access (DMA) engine, programmed by the processor to transfer data packets including headers and payloads between the FIFO buffer and the bulk endpoint buffers; a plurality of port sockets each for connecting to a downstream peripheral; and a traffic repeater, coupled to the bulk endpoint buffers, for converting commands from the host into peripheral signals for accessing the downstream peripheral inserted into a port socket, whereby packets are flowed through pipes using the DMA engine. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A bulk-streaming card reader comprising:
-
transmit pair means for sending packets to a host; receive pair means for receiving packets from the host; wherein the transmit pair means and receive pair means comprise a differential bus with a first pin carry+signal and a second pin carry−
signal from host as the receive pair means, and a second pair differential serial bus with a first pin carry+signal and a second pin carry−
signal to the host as the transmit pair means;input buffer means for buffering data packets from the receive pair means and for buffering packets to the transmit pair means; command extractor means for extracting commands from the packets from the host; command pipe means for flowing commands from the host to the bulk-streaming card reader; status pipe means for flowing status packets from the bulk-streaming card reader to the host; bulk data-out pipe means for flowing data packets from the host to the bulk-streaming card reader; bulk data-in pipe means for flowing data packets from the bulk-streaming card reader to the host; bulk endpoint buffers comprising; status bulk-in endpoint means for storing status packets for transmission to the host through the status pipe means; data bulk-in endpoint means for storing data packets for transmission to the host through the bulk data-in pipe means; data bulk-out endpoint means for storing data packets received from the host through the bulk data-out pipe means; command endpoint means for storing command packets received from the host through the command pipe means; processor means for executing control routines; direct-memory access (DMA) means, programmed by the processor means, for transferring data packets including headers and payloads between the input buffer means and the bulk endpoint buffers; a flash-card socket for receiving a flash memory card; flash-card protocol converter means, coupled to the bulk endpoint buffers, for converting commands extracted by the command extractor means into flash-card signals for accessing the flash memory card inserted into the flash-card socket; data in/out streaming state machine means for controlling streaming of data packets through the bulk data-in pipe means and through the bulk data-out pipe means; and status streaming state machine means for controlling streaming of status packets through the status pipe means, whereby packets are flowed through pipes. - View Dependent Claims (21)
-
Specification