Patent ID: 7660938

Claim:
A portable universal serial bus (USB) data exchanger device, comprising: at least one flash memory chip having a multi-level cell (MLC) memory array; a flash memory controller coupled to the at least one flash memory chip, the flash memory controller having a USB on-the-go (OTG) capability and controlling reading and writing of the flash memory chip; a first EXTENDED USB (EUSB) connector coupled to the flash memory controller to be coupled to an external host; a second EUSB connector coupled to the flash memory controller to be coupled to a slave USB device, wherein the flash memory controller having the OTG capability enables the portable USB data exchanger to operate as at least one of a USB storage device having the at least one flash memory chip attached therein with respect to the external host via the first EUSB connector and a host with respect to the slave USB device coupled to the second EUSB connector, wherein the flash memory controller is configured to communicate with the external host via the first EUSB connector when operating as a USB storage device without having the external host to poll the portable USB data exchanger in order to determine an operating status of the portable USB data exchanger, wherein the flash memory controller is configured to communicate with a slave USB device when operating as a host via the second EUSB connector without having the portable USB data exchanger to poll the slave USB device in order to determine an operating status of the slave USB device, and wherein the flash memory controller is configured to enable a host to send a request to a USB device for receiving predetermined blocks of data from the USB device, in response to the request, enable the USB device to reply with a positive acknowledgement (ACK) and to send a first block of data to the host, in response to the first block of data received from the USB device, enable the host to request a next block of data, if the USB device is not ready, the USB device is to reply with a negative acknowledgement (NACK) indicating that the USB device is not ready to send further data, in response to the NACK, enable the host to suspend requesting for further data, subsequently when the USB device is ready, enable the USB device to send a ready signal (RDY) to the host indicating that the USB device is ready to send further data, and enable the host to reply an ACK to the USB device to receive further data until all of the predetermined blocks of data have been received, wherein the portable data exchanger is capable of operating as at least one of a host and a slave USB device, wherein when the portable data exchanger operates as a slave USB device, the host is an external host coupled to the first EUSB connector and the USB device is part of the portable data exchanger having at least one flash memory chip, and wherein when the portable data exchanger operates as a slave USB device, the host is part of the portable USB data exchanger and the USB device is an external slave USB device coupled to the second EUSB connector.