Patent ID: 8544424

Claim:
A method for transmitting and distributing a data stream from a host to a storage device with a non-volatile memory and a smart card chip, the method comprising: receiving a write command from the host, the write command being set to write a first data stream into the storage device; determining whether the first data stream contains a specific mark; transmitting at least a portion of the first data stream to the smart card chip if the first data stream contains the specific mark; receiving a plurality of read commands from the host, wherein the plurality of read commands are set to read data stored on a plurality of first logical block addresses in order to receive a first response message from the smart card chip; determining whether the first response message is received from the smart card chip, wherein the first response message is a response-application protocol data unit (R-APDU) and is produced by the smart card chip in response to receiving the at least portion of the first data stream; transmitting a second response message to the host if the host reads the data stored on the plurality of the first logical block addresses and the first response message is not received from the smart card chip; transmitting the first response message to the host if the host reads the data stored on the plurality of the first logical block addresses and the first response message is received from the smart card chip, wherein the second response message is different from the first response message, and the second response message represents that the first response message is not yet produced by the smart card chip; determining whether any read command transmitted from the host to the storage device is set to read the data stored on the plurality of the first logical block addresses; and if the any read command is not set to read the data stored on the first logical block addresses, reading the data in the non-volatile memory according to the address designated by the any read command, wherein a total amount of data stored on the plurality of the first logical block addresses is larger than or equal to a size of a cache in the host.