# Patent

## Title
Virtual USB flash memory storage device with PCI express interface

## Abstract

A virtual universal serial bus (USB) flash memory storage device with a peripheral component interconnect (PCI) Express including a microcontroller connected separately to a flash memory and PCI Express connecting interface, and the microcontroller has a flash memory interface, a PCI Express interface and a virtual USB module and the virtual USB module includes a USB host and a USB device. If a host gives a USB instruction for saving or reading to the storage device, the USB instruction will be sent to and executed by the virtual USB module and the required data processing for saving or reading will be completed through the flash memory interface and the flash memory. The data in the storage device can be transmitted with a PCI Express standard transmission rate, and the host considers the storage device as a USB device instead of a pure PCI Express device.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a virtual universal serial bus (USB) flash memory storage device with a peripheral component interconnect (PCI) Express interface, and more particularly to a virtual USB flash memory storage device that uses the PCI Express interface as a transmission interface.
2. Description of the Related Art
As the science and technology of computers grows in a fast changing manner, a computer tends to be developed with powerful computational functions and a fast speed, and thus the clock of a central processing unit (CPU) is too fast, and the transmission rate of other peripheral equipments cannot catch up with the processing speed of the CPU at all. Even though the CPU continues enhancing its performance, the transmission rate of peripheral equipments cannot be improved much because the overall performance of a computer depends on the whole system. It is necessary to improve the whole computer architecture before the performance of a CPU can be maximized.
However, the data transmission rate depends on the transmission rate of a bus. To enhance the performance of a computer, related manufacturers usually improve the transmission rate of a bus. For example, the transmission rate of an integrated drive electronic (IDE) interface connected to a hard disk drive reaches 160MB/s; the network line is upgraded from 10 MB/s to 1 GB/s; the transmission rate of the RS-232 is replaced by the 480 MB/s of the universal serial bus (USB), and the present PCI Express interface with a transmission rate of 133 MB/s upgrades the transmission rate of its lane to 250 MB/s which becomes a new-generation peripheral component interconnect (PCI) Express interface. The PCI Express interface further supports a hot-plug control function. Therefore, the PCI Express interface is extensively accepted by users.
Further, the flash memory since its announcement gradually replaces the EEPROM or battery power memory in many portable device due to its charming features including low power consumption, non-volatility, shock resistance, and high-capacity storage. With the advanced semiconductor technologies, the storage capacity and transmission rate of a flash memory grow rapidly. The flash memory replaces traditional storage medium such as a hard disk drive in many applications, but most of the present storage devices made of flash memories use the universal serial bus (USB) or integrated drive electronics (IDE) interface as the transmission interface. The transmission rate of the USB and IDE interface are just 480 MB/s and 160 MB/s respectively, and such transmission rates cannot catch up with the accessing speed of the flash memory. Therefore, the applications of the storage device made of this kind of flash memory is restricted by the USB or IDE interface of the host, and its performance cannot be maximized.
Further, a software developing system or a software program usually provides several environment interfaces that integrate editing, compiling, debugging, file management and execution. The environment interface lets programmers develop a majority of an application program, and thus the software executed at the host end is communicated by a specific environment interface and peripherals. A peripheral must have the environment interface of the host before the peripheral can execute an instruction transmitted from the host.
Therefore, using a bus with a faster transmission rate as a transmission interface to maximize the performance of a memory card is an important subject for manufacturers in the related field to make further improvements.
Therefore, it is desirable to provide a card reader that eliminates the aforesaid drawbacks.
SUMMARY OF THE INVENTION
The present invention has been accomplished under the circumstances in view. Therefore, it is a primary objective of the present invention to use the PCI Express interface as a transmission interface between a host and a storage device, and the storage device installs a microcontroller having a virtual USB module, such that the data transmission rate of the PCI Express interface can be maximized when data is accessed by a flash memory of the storage device and the host.
According to the foregoing object, the storage device includes a microcontroller, and the microcontroller is coupled separately to a flash memory and a PCI Express connecting interface connected to a PCI Express bus of a host, and the microcontroller has a flash memory interface, a PCI Express interface and a virtual USB module, such that when the host gives a USB instruction for saving or reading data in a storage device, the instruction will be sent to the virtual USB module first and the instruction is executed and completed by the virtual USB module. The data in the flash memory of the storage device will be processed according to the instruction, and the flash memory interface and the PCI Express interface installed in the microcontroller are used to covert the data into a format acceptable by the flash memory or the PCI Express bus. The converted data will be sent to the host or the flash memory, so that the host can give a USB instruction to the storage device for accessing data through the virtual USB module, and the data transmission rate can achieve the transmission rate provided by the PCI Express interface, so as to maximize the transmission rate of the storage device without losing the USB properties.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram according to a preferred embodiment of the present invention.
FIG. 2 is a schematic diagram of a data transmission according to a preferred embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
In FIG. 1, a storage device 1 of the present invention comprises a PCI Express connecting interface 11, a microcontroller 12 and a flash memory 13.
The PCI Express connecting interface 11 is provided for connecting to a PCI Express bus 21 built in a host 2.
The microcontroller 12 includes a flash memory interface 121, a PCI Express interface 122 and a virtual USB module 123, and the virtual USB module 123 includes an USB host 1231 and USB device 1232, and the microcontroller 12 is connected to the PCI Express connecting interface 11, and the virtual USB module 123 is not physical, but it is virtual and simulated by a designer's firmware program.
The flash memory 13 is connected to the microcontroller 12.
If the PCI Express connecting interface 11 built in the storage device 1 is connected to the PCI Express bus 21 built in the host 2, the microcontroller 12 of the storage device 1 will declare to the host 2 that the storage device 1 is a USB host, such that the host 2 will consider the microcontroller 12 as a USB host, even though the host 2 remains communicating with the microcontroller 12 by the PCI Express architecture.
When the host 2 gives a USB instruction for storing data, the instruction will be sent to the USB host 1231 installed in the virtual USB module 123 of the microcontroller 2 first, and then the USB host 1231 will send the instruction to the USB device 1232, and the USB device 1232 will complete the execution of the instruction. At that time, the data of the host 2 will be sent to the mircocontroller 12 through the PCI Express bus 21 and the PCI Express connecting interface 11, and the flash memory interface 121 built in the microcontroller 12 will convert the data into a data format acceptable by the flash memory 3, and the data is stored in the flash memory 3.
Further, when the host 2 wants to read a data stored in the storage device 1, the USB instruction will be sent to the USB host 1231 built in the virtual USB module 123 of the microcontroller 12 first, and then the USB host 1231 will sent the instruction to an USB device 1232, and the USB device 1232 will complete the execution of the instruction. At that time, the flash memory 3 will send the data to the microcontroller 12, and the PCI Express interface 122 built in the microcontroller 12 will convert the data into a data format acceptable by the PCI Express 21, and then the data is sent to the host 2 through the PCI Express connecting interface 11 and the PCI Express 21.
From the description above, when the host 2 reads or stores data of the storage device 1, the data is read from or written into the flash memory 3 through the microcontroller 12, and the read or write instruction is executed and completed by the USB host 1231 and the USB device 1232 built in the virtual USB module 123. Therefore, the host 2 considers the storage device 1 as an USB storage device with a PCI Express interface.
Further, if the instruction given by the host 2 does not need any data processing, such instruction will be executed and completed in the virtual USB module 123, and the microcontroller 12 will not communicate with the flash memory 13.
In FIG. 2, the host 2 and the storage device 1 has a lane 211 at a physical layer for transmitting data, and the lane 211 is comprised of a transmitting end (Tx) and a receiving end (Rx), and the quantity of the lane 211 could be one or more.
Therefore, the key for the virtual USB flash memory storage device with PCI Express interface in accordance with the present invention to improve the prior arts resides on that the present invention uses a USB host and a USB device built in the storage device to execute the instruction given by the host and also uses a PCI Express interface as the transmission interface between the host and the storage device, such that the data can be transmitted at a transmission rate that can meet the PCI Express standard, and the storage device can have the best transmission rate.
A prototype of virtual USB flash memory storage device with PCI Express interface has been constructed with the features of FIGS. 1 ̃2. The virtual USB flash memory storage device with PCI Express interface functions smoothly to provide all of the features discussed earlier.
Although a particular embodiment of the invention has been described in detail for purposes of illustration, various modifications and enhancements may be made without departing from the spirit and scope of the invention. Accordingly, the invention is not to be limited except as by the appended claims.

## Claims

1. A virtual universal serial bus (USB) flash memory storage device with a peripheral component interconnect express (PCI Express) interface, comprising:
a microcontroller, having a flash memory interface for converting data into a flash memory format, a PCI Express interface for converting data into a PCI Express interface format and a virtual USB module, and said virtual USB module comprises a USB host for receiving a USB instruction from a host and a USB device for executing said USB instruction;
a flash memory, being coupled to said microcontroller and capable of saving data into or reading data from said flash memory;
a PCI Express connecting interface, being coupled to a PCI Express bus of said host and said microcontroller respectively;
such that when said storage device is coupled to said host, said microcontroller of said storage device notifies said host that said storage device is a USB host, and an USB instruction from said host is sent to said virtual USB module so that said virtual USB module receives and executes said USB instruction, and data in said flash memory is converted by said flash memory interface or said PCI Express interface of said microcontroller into a data format acceptable by said flash memory or said PCI Express bus subject said USB instruction, and then said data is sent to said host or stored in said flash memory.

2. The virtual USB flash memory storage device with PCI Express interface as claimed in claim 1, wherein said host and said storage device have at least on a lane at a physical layer for transmitting data, and said lane comprises a transmitting end (Tx) and a receiving end (Rx).

3. The virtual USB flash memory storage device with PCI Express interface as claimed in claim 1, wherein said virtual USB module is not a physical object, but a virtual object created by a designer through a firmware program.