# Patent

## Title
Method and apparatus transferring data via universal serial bus

## Abstract

A method of communicating data between an external storage device and a USB host via a USB device is disclosed. The method includes receiving data from the USB host; and either (1) directly communicating the received data to the external storage device via an exclusive bus, or (2) indirectly communicating the received data to the external storage device via a USB bus, separate from the exclusive bus.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application claims the benefit of Korean Patent Application No. 10-2009-0051516 filed on Jun. 10, 2009, the subject matter of which is hereby incorporated by reference.
BACKGROUND
The inventive concept relates to a data transmission method and apparatus using a universal serial bus (USB). More particularly, the inventive concept relates to a data transmission method and apparatus in which data transmission speed is increased using a USB.
A USB is a hardware component (controlled by a corresponding data communication protocol) commonly used to provide a data connection between a so-called “USB host” (e.g., a computer) and a connected “USB device” (e.g., a memory stick, disc drive, digital camera, web cam, keyboard, mouse, game pad, joystick, scanner, printer, personal digital assistant (PDA), etc). Recently, the USB has commercially replaced other types of serial and parallel connection components, and ongoing research is focused on increasing the speed of data exchange via the USB.
SUMMARY
Embodiments of the inventive concept provide methods and apparatuses transferring data via a Universal Serial Bus (USB) at improved speed.
According to an aspect of the inventive concept, there is provided a Universal Serial Bus (USB) device, comprising; a data transmission controller configured to directly communicate data between a USB host and an external storage device using an exclusive bus connecting the data transmission controller and an external storage device controller associated with the external storage device, and a USB controller configured to communicate data between the USB host and the external storage device using a USB bus, separate from the exclusive bus, and connecting the USB controller, the external storage device controller, a memory external to the USB device, and a central processing unit (CPU) internal to the USB device.
According to an aspect of the inventive concept, there is provided a method of communicating data between an external storage device and a USB host via a USB device, the method comprising; receiving data from the USB host; and either (1) directly communicating the received data to the external storage device via an exclusive bus, or (2) indirectly communicating the received data to the external storage device via a USB bus, separate from the exclusive bus.



BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the inventive concept will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings in which:
FIG. 1 is a block diagram illustrating a Universal Serial Bus (USB) device according to an embodiment of the inventive concept;
FIG. 2 is a flowchart summarizing a method of communicating data from a USB host and storing the data to an external storage device according to an embodiment of the inventive concept; and
FIG. 3 is a flowchart summarizing a method of communicating data stored in an external storage device to a USB host via a USB device according to an embodiment of the inventive concept.



DETAILED DESCRIPTION OF THE EMBODIMENTS
Embodiments of the inventive concept will now be described with reference to the attached drawings. However, the inventive concept may be variously embodied and should not be construed as being limited to only the illustrated embodiments.
Figure (FIG.) 1 is a block diagram illustrating a universal serial bus (USB) device according to an embodiment of the inventive concept. Referring to FIG. 1, a USB device 110 comprises a data transmission controller 111, a USB controller 112, a memory controller 113, a central processing unit (CPU) 114, and an external storage device controller 115, and the external storage device controller 115 includes a flash memory controller 116 and a memory card controller 117.
The data transmission controller 111 is connected to an interface (not shown) of an external USB host 120. When storing data received from the USB host 120 in an external storage device 140, the data transmission controller 111 communicates data from the USB host 120 via the interface.
An exclusive line (or “exclusion bus”) 118 connected between the data transmission controller 111 and the external storage device controller 115 is included in the USB device 110. That is, the exclusive bus 118 is “exclusively connected” between the external storage device controller 115 and the data transmission controller 111 without also being connected to the CPU 114 and memory controller 113. When the data transmission controller 111 communicates data, the data may be directly and exclusively communicated to the external storage device controller 115 without passing through (or otherwise being applied) to the memory controller 113 or corresponding memory 130 before being transferred to the external storage device controller 115. In other words, the data may be “directly communicated” from the data transmission control 111 exclusively to the external storage device controller 115 via the exclusive bus.
When storing the data received from the USB host 120 in the external storage device 140, the USB device 110 stores data using management routine of a constituent file system which may be part of an operating system (OS) ported to the CPU 114. The file system may be used to store, search, access, and/or manipulate data, and is designed such that data is stored in an external storage device. Examples of possible file system types that might be used in this context include a file allocation table (FAT) and a new technology file system (NTFS). Currently, a FAT is used in most mobile electronic devices.
According to an embodiment of the inventive concept, in order for the data transmission controller 111 to transmit data directly to the external storage device controller 115 without passing through the CPU 114 via the USB device 110, the data transmission controller 111 must also be able to control the file system. Accordingly, an operating system including a file system may be additionally ported to the data transmission controller 111. In certain embodiments of the inventive concept, the operating system only needs to include the file system. Also, the data transmission controller 111 only needs to control the file system. The logic for controlling the file system may be realized as a hard-wired logic or using another CPU different from the CPU 114 for controlling only the file system.
The external storage device controller 115 controls the storage of data communicated from the data transmission controller 111 in the external storage device 140. The external storage device 140 may be, for example, a memory card 141 and a flash memory 142, but may be any type of external storage device capable of receiving data via the USB.
Alternatively, data may be stored in the external storage device 140 using methods other than the above-described approach.
In contrast to the exclusive bus 118, a USB bus 119 connects the USB controller 112, the memory controller 113, the CPU 114, and the external storage device controller 115.
The USB controller 112 is connected to the interface of the USB host 120 that is external to the USB device 110. When storing data from the USB host 120 in the external storage 140, the USB controller 112 first receives the data from the USB host 120 via this interface. Data may be received by the USB controller 112 from the data transmission controller 111 and the USB host 120 at the same time. Alternatively, the data transmission controller 111 may be included in the USB controller 112, or the data transmission controller 111 and the USB controller 112 may be connected to each other.
The memory controller 113 receives data from the USB controller 112 and stores the data in the memory 130. For example, the memory 130 may be a dynamic random access memory (DRAM).
After reading data stored in the memory 130, the CPU 114 communicates the data to the external storage device controller 115. An operating system is ported to the CPU 114 to control the USB device 110, and a file system for controlling data storage is included as part of the operating system.
The external storage device controller 115 stores the data communicated from the memory controller 113 in the external storage device 140. In this case, the external storage device controller 115 may directly receive data from the data transmission controller 111 or receive data stored in the memory 130 from the memory controller 113. In this case, the external storage device controller 115 may selectively store data in the external storage device 140. Preferably, storage priority may be given when data is directly received from the data transmission controller 111. In this case, the external storage device controller 115 stores the data directly received from the data transmission controller 111, in the external storage device 140.
FIG. 2 is a flowchart summarizing a method of communicating and storing data in an external storage device by using a USB device according to an embodiment of the inventive concept.
Data received from the USB host 120 via the USB device 110 may be stored in the external storage device 140 using two different approaches. One approach includes the illustrated operations 210 and 220, and the other approach includes the illustrated operations 210, 230, and 240.
Referring to FIG. 2, both approaches begin with the USB device 110 receiving data from the USB host 120 (210).
Following the first approach, the USB device 110 directly stores received data in the external storage device 140 without having the data pass through the CPU 114 (220). Using this approach, the received data is not stored in (and does not pass through) memory 130 connected to the USB device 110 before being communicated to the external storage device 140.
Alternately, following receipt by the USB device 110 of data from the USB host 120 (210), the USB device 110 may store the received data in the memory 130 connected to the USB device 110 (230). Then, the USB device 110 may communicate the data stored in the memory 130 to the external storage device 140 via the CPU 114. This second approach may be thought of as indirectly storing the received data in the external storage device 140 via the memory 130 and CPU 114. A USB device according to an embodiment of the inventive concept may selectively use either one of these two approaches (direct and indirect) to communicate and store data. Preferably, priority will be given to the direct approach of storing data without passing the data through the memory and the CPU.
Hereinafter, an apparatus and method for communicating data stored in the external storage memory to the USB host 120 via the USB device 110 will be described. Here again, the USB device 110 is assumed to have the structure illustrated in FIG. 1.
FIG. 3 is a flowchart summarizing a method of communicating data stored in an external storage device to a USB host using a USB device according to an embodiment of the inventive concept.
Similar to the foregoing, data stored in the external storage device 140 may be communicated to the USB host via the USB device using two distinct approaches. One approach includes operations 310 and 320, and the other approach includes operations 310, 330, and 340.
Referring to FIG. 3, the USB device 110 first receives data from the external storage device 140.
Following the first approach, the USB device 110 directly communicates the received data to the USB host (320), without the data passing through the memory 130 or the CPU 114.
Following the second approach, the CPU 114 that operates in the USB device 110 to first communicate data stored in the external storage device 140 to the memory connected to the USB device (330), and then further communicates the data from the memory 130 to the USB host 120 via the CPU 114.
The USB device 110 may selectively use either one of these two (direct and indirect) methods for communicating data from the external storage device 140 to the USB host 120. Preferably, priority will be given to the direct approach, such that data need not pass through the memory 130 and CPU 114.
While this inventive concept has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the scope of the inventive concept as defined by the appended claims. The exemplary embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the inventive concept is not limited to only the detailed description of the inventive concept, but by the appended claims.

## Claims

1. A Universal Serial Bus (USB) device, comprising:
a data transmission controller configured to directly communicate data between a USB host and an external storage device controller associated with an external storage device using a first, exclusive, bus which is directly connected only to the data transmission controller and to the external storage device controller; and
a USB controller configured to communicate data between the USB host and the external storage device controller using a second, shared, bus, separate from the exclusive bus, wherein the second, shared, bus is directly connected to: the USB controller, the external storage device controller, a memory controller associated with a memory which is external to the USB device, and a central processing unit (CPU).

2. The USB device of claim 1, further comprising the CPU, wherein the CPU is configured to indirectly communicate the data between the USB host and the external storage device using the second, shared, bus by first communicating the data from the USB host to the memory which is external to the USB device, and then communicating the data from the memory which is external to the USB device to the external storage device.

3. The USB device of claim 2, wherein the USB device is configured to select between direct communication of the data via the first, exclusive, bus and indirect communication of the data via the second, shared, bus.

4. The USB device of claim 3, wherein the selection between the direct communication and the indirect communication gives priority to the direct communication.

5. The USB device of claim 3, wherein the data transmission controller is part of the USB controller.

6. The USB device of claim 1, wherein the memory is a random access memory.

7. The USB device of claim 1, wherein the external storage device comprises at least one of a flash memory device and a memory card.

8. The USB device of claim 7, wherein the external storage device comprises a flash memory device and a memory card, and the external storage device controller comprises a flash memory controller and a memory card controller.

9. The USB device of claim 8, wherein each one of the flash memory controller and the memory card controller is separately connected to the first, exclusive, bus and to the second, shared, bus.

10. A method of communicating data between an external storage device and a USB host via a USB device, the method comprising:
receiving data at the USB device from the USB host; and selectively:
(1) directly communicating the received data from a data transmission controller of the USB device to an external storage device controller associated with the external storage device via a first, exclusive bus which is directly connected only to the data transmission controller and the external storage device, or
(2) indirectly communicating the received data from a USB controller of the USB device to the external storage device controller via a second, shared, bus, separate from the exclusive bus, where the second shared bus is directly connected to: the USB controller, the external storage device controller, a memory controller associated with a memory which is external to the USB device, and a central processing unit (CPU).

11. The method of claim 10, wherein indirectly communicating the received data to the external storage device via the second, shared, bus comprises first communicating the data from the USB host to the memory which is external to the USB device, and then communicating the data from the memory to the external storage device.

12. The method of claim 11, wherein either the direct or indirect communication is selected by the USB device with priority being given to selection of the direct communication.

13. The USB device of claim 1, further comprising the CPU, the memory controller, and the external memory device controller, and wherein the external memory device controller comprises a flash memory controller and a memory card controller, wherein each one of the flash memory controller and the memory card controller is separately connected to the first, exclusive, bus and to the second, shared, bus.

14. A method of communicating data between an external storage device and a USB host via a USB device, the method comprising:
receiving data at the USB device from the external storage device; and selectively:
(1) directly communicating the received data from an external storage device controller associated with the external storage device to a data transmission controller of the USB device via a first, exclusive bus which is directly connected only to the data transmission controller and the external storage device, or
(2) indirectly communicating the received data from the external storage device controller to a USB controller of the USB device via a second, shared, bus, separate from the exclusive bus, where the second shared bus is directly connected to: the USB controller, the external storage device controller, a memory controller associated with a memory which is external to the USB device, and a central processing unit (CPU).

15. The method of claim 14, wherein indirectly communicating the received data to the external storage device via the second, shared, bus comprises first communicating the data from the USB host to the memory which is external to the USB device, and then communicating the data from the memory to the external storage device.

16. The method of claim 14, wherein either the direct or indirect communication is selected by the USB device with priority being given to selection of the direct communication.