Sign In to Follow Application
View All Documents & Correspondence

"Data Transfer Method"

Abstract: Methods and systems described herein implement transferring data to a memory card 208. In one implementation, a portion of a data segment is received for storing in the memory card 208. Once received, the portion of the data segment is transferred to the memory card 208 for storing. As the portion of the data segment is being transferred, a subsequent portion of the data segment is simultaneously received. Similar to the previously received portion, once the subsequent portion has been received, it is transferred to the memory card 208 for storing. While transferring the subsequent portion of the data segment to the memory card 208, the next subsequent portion is simultaneously received. This process continues for all the subsequent portions of the data segment, and till all the portions of the data segment have been transferred to the memory card 208.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
23 September 2009
Publication Number
13/2011
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

ST ERICSSON INDIA PVT. LTD.
D-28, SOUTH EXTENSION, PART 1 NEW DELHI-110049, INDIA.
ST ERICSSON
39 CHEMIN DU CHAMP-DES-FILLES, 1228 PLAN-LES-OUATES, GENEVA, SWITZERLAND

Inventors

1. SAUGATA DAS PURKAYASTHA
ST ERICSSON, LEVEL 5 FERNS ICON, DODDANAKUNDI VILLAGE, K.R.PURAM, HOBLI, BANGALORE-560037, KARNATAKA, IN
2. SARAT CHINTHAMANI
ST ERICSSON, LEVEL 5 FERNS ICON, DODDANAKUNDI VILLAGE, K.R.PURAM, HOBLI, BANGALORE-560037, KARNATAKA, IN
3. SHYAM L
ST ERICSSON, LAVEL 5 FERNS ICON, DODDANAKUNDI VILLAGE, K.R. PURAM, HOBLI, BANGALORE-560037, KARNATAKA, IN

Specification

TECHNICAL FIELD
[0001] The subject matter described herein, in general, relates to a data transfer method
and in particular, relates to a data transfer method for a memory card.
BACKGROUND
[0002] Many electronic devices are presently available that allow users to store large
amounts of data. Examples of such devices include devices such as cellular phones, portable music players, etc., that allow users to store and transfer data, such as image files, audio/video files, etc., from their personal computer (PC). In some cases, such devices are provided with embedded mechanisms, such as embedded card readers, which allow expanding the available device memory size by using removable storage media, for example memory cards. The embedded mechanisms are provided with embedded platforms. The embedded platforms acts as an interface for, and manages data transfer between a computing device, such as a PC, and the memory card. Memory cards, such as secure digital cards (or SD cards), can be easily inserted into compatible devices, thereby supplementing the device memory. Other examples of memory cards include a MultiMediaCard (MMC), Memory Stick, xD Picture card, and such.
[0003] As mentioned previously, users can transfer data from a PC to the memory card.
More specifically, data to be transferred from the PC to the memory card is first transferred from the PC to the embedded platform and then to the memory card. Typically, the transfer of data from the PC to the embedded platform occurs over a data bus, for example, a Universal Serial Bus (USB). The rate of data transfer between the PC and the embedded platform, say over the USB, is greater than the rate of data transfer from the embedded platform to the memory card. This limits the transfer of data or write throughput from the PC to the memory card. In addition, factors such as bus size further limit the write throughput to the memory card.
SUMMARY
[0004] This summary is provided to introduce concepts of transferring data to a memory
card, which is further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
[0005] The methods and systems described herein implement transferring data to a
memory card. In one implementation, a portion of a data segment is received for storing in the memory card. Once received, the portion of the data segment is transferred to the memory card for storage. As the portion of the data segment is being transferred, a subsequent portion of the data segment is simultaneously received. Similar to the previous portion, once the subsequent portion has been received, it is transferred to the memory card for storage. While transferring the subsequent portion of the data segment to the memory, the next subsequent portion is simultaneously received. This process continues for all the following subsequent portions, till all the portions of the data segment have been transferred to the memory card.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The detailed description is described with reference to the accompanying figures.
In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
[0007] Fig. 1 illustrates a command-flow diagram indicating data transfer to a memory
card, as implemented in prior art.
[0008) Fig. 2 illustrates an exemplary system for transferring data to a memory card, in
accordance with an embodiment of the present subject matter.
[0009] Fig. 3 illustrates an electronic device implementing the system as illustrated in
Fig. 2, in accordance with an embodiment of the present subject matter.
[0010] Fig. 4 illustrates a command-flow diagram indicating data transfer to a memory
card, in accordance with an embodiment of the present subject matter.
[0011] Fig. 5 illustrates an exemplary method for transferring data to a memory, in
accordance with an embodiment of the present subject matter.
DETAILED DESCRIPTION
[0012] Systems and methods for transferring data to a memory card are described. Many
presently available electronic devices, such as cellular phones, portable music players, etc., have limited device memory. Typically, the device memory can be supplemented with additional memory in the form of memory cards. Examples of such memory cards include, but are not limited to SD cards, memory sticks, etc. The memory cards include memory that is based on NOR or NAND flash based memory. Such memory cards can be easily inserted into compatible devices, thereby supplementing the device memory. These memory cards provide users the required space for storing large amount of data, such as multimedia content, onto their electronic devices.
[0013] Data can be stored on the memory cards by transferring data from a data device or
a computing device, for example, a PC. The electronic devices include an embedded platform that manages data transfer and acts as an interface for storing data transferred from the computing device, such as a PC, to the memory card. The embedded platform can be
implemented as hardware, such as a memory card reader, or software, such as drivers, to facilitate data transfer to the memory card.
[0014] Data to be stored onto a memory card is first transferred from the computing
device to the embedded platform. In one implementation, the data received by the embedded platform can be stored in a buffer memory associated with the embedded platform, before it can be transferred to the memory card. The data transfer can be implemented using commands already stored in the embedded platform or in the device memory.
[0015] The transfer of data from the computing device to the embedded platform occurs
over a data bus such as a Universal Serial Bus (USB). From the embedded platform, the data is transferred to the memory card using a data transfer link. The data transfer link would depend on the type of memory card to which the data is being sent. Typically, the rate of data transfer between the computing device and the embedded platform is greater than the rate of data transfer from the embedded platform to the memory card. This overall limits the write-throughput of data to the memory card from the computing device. Factors such as bus size may further limit the write throughput to the memory card.
[0016] In an existing system, transfer of a segment of data is done in a single step. In
such a case, the sender computing device indicates to the embedded platform that a data segment is about to be sent. Such an indication can be sent in the form of a setup transfer message. The setup transfer message typically includes information that indicates the size of data segment that is intended to be transferred and stored on the memory card. The setup message can be generated by the computing device, for example a PC, when the PC detects that it is in connection with an electronic device embodying the memory card or when a user transfers one or more data files to the memory card.
[0017] In response to such an indication, i.e., on receiving the setup transfer message, the
embedded platform starts receiving the data segment from the PC. Once the transfer of the data segment is complete, the embedded platform performs a pre-erase on the memory card. While performing the pre-erase, the embedded device platform erases space in the memory card corresponding to the size of the data segment received from the PC. The embedded platform then transfers the received data segment to the memory card. Once the transfer of the data segment is complete, the memory card or the embedded platform can indicate the completion of the process to the PC. The memory card is then programmed with the data segment, i.e., the data segment is stored in the memory card. In certain cases, the data segment received from the PC is stored in a buffer memory before it can be transferred to the memory card.
[0018] Another previously existing system implements data transfer by partially
overlapping data transfer from the PC to the embedded platform and from the embedded platform to the memory card. In such a case, each of the data segments is divided into further smaller portions of data, and then transferred. Such a case is described with reference to Fig. 1, which illustrates a command-flow diagram 100 indicating data transfer from a client device 102 (e.g., a PC) to a memory card 106 embodied in an embedded platform 104. The command-flow diagram 100 depicts the interactions between the client device 102, the embedded platform 104, and the memory card 106 in steps 108-a, b,..., n. It would be noted that the embedded platform 104 also includes a buffer memory having sufficient memory space for storing a portion of data segment received from the client device 102.
[0019] Firstly, a setup transfer message is sent from the client device 102 to the
embedded platform 104. The setup transfer message typically specifies the size of the data segment portion that is to be stored in the memory card 106. On receiving the setup transfer
message from the client device 102, the embedded platform 104 sends across a message confirming the receipt of the setup transfer message (steps 108-a and 108-b). The client device 102 initiates the transfer of a first portion of the data segment. The first portion of the data segment is received and temporarily stored in a buffer memory, for example, the buffer memory associated with the embedded platform 104. After the transfer of the first portion of the data segment, the embedded platform 104 initiates pre-erasing of the memory card 106 based on the size of the first portion of the data segment received from the client device 102 (steps 108-c and 108-d).
[0020] On completing the pre-erasing of the memory card 106, the embedded platform
104 initiates transferring of the first portion of the data segment to the memory card 106. After the initiation of transfer of the first portion, the client device 102 initiates transfer of a second portion of the data segment (steps 108-e and 108-f). Meanwhile, the transfer of the first portion of the data segment (step 108-f) proceeds towards completion. Once completed, die memory card 106 can send an acknowledgment confirming the completion of the transfer, to the embedded platform 104 (steps 108-g and 108-h).
[0021] The memory card 106 then stores the first portion of the data segment received
from the client device 102, through the embedded platform 104. The embedded platform 104 can additionally transmit to the memory card 106 an indication confirming the end of transmission for the first portion of the data segment (step 108-h).
[0022] The next following portions of the data segment are similarly transferred from the
client device 102 to the embedded platform 104, and then to the memory card 106. Before the portions of the data segment received can be transferred, die embedded platform 104 performs a pre-erase of the memory card 106. Therefore, each time a portion of the data segment is to be
transferred to the memory card 106, the embedded platform 104 performed a pre-erase. The
portions of the data segment, as and when they are transferred to the memory card 106, are
programmed, i.e., stored on the storage memory within the memory card 106.
[0023] In this type of data transfer, the steps 108-e and 108-f involving data transfer
between the client device 102 and the embedded platform 104, and from the embedded platform 104 to the memory card 106 partially overlap, resulting in low write-throughput of data from the client device 102 to the memory card 106. Further, latency periods occurring between the data transfer steps 108-h to 108-j further affects the write-throughput of data.
[0024] To overcome these issues, the systems and method described herein allows
transfer of portions of a data segment in a step-wise manner, as described below. The data is transferred to a memory card as portions of data segments. Before a first portion of a data segment can be transferred, the embedded platform pre-erases portion of the memory card to free up space equivalent to the size of the data segment intended to be stored onto the memory card.
[0025] While the space in the memory card is being made available, the client device
simultaneously starts transferring the first portion of the data segment to the embedded platform. The embedded platform on completely receiving the first portion, starts transferring the first portion to the memory card. At this stage, the embedded platform does not send any signal indicating the end of transmission of the first portion of the data segment.
[0026] While the first portion of the data segment is being transferred from the embedded
platform to the memory card, a second portion of the data segment is simultaneously transferred from the client device to the embedded platform. Once the transfer is complete, the embedded platform starts transferring the received second portion to the memory card. During the transfer of the second portion of the data segment to the memory card, a subsequent portion of the data
segment is received by the embedded platform. The process continues for the subsequent and the following portions of the data segment till all the portions of the data segment are transferred from the client device to the memory card. Once all the portions of the data segment have been transferred, only then the portions of the data segment, and hence, the data segment is stored in the memory card. In one implementation, the portions of the data segments, when received by the embedded platform, can be stored in a buffer memory associated with the embedded platform.
[0027] The manner in which the transfer of the data segments between the client device,
the embedded platform and the memory card is implemented, shall be explained in greater detail with respect to the Figs. 2-4. While aspects of the described systems and methods for implementing can be implemented in any number of different computing systems, environments, and/or configurations, the embodiments are described in the context of the following exemplary system architecture(s).
[0028] Fig. 2 shows an exemplary system 200 for transferring data to a memory card. To
this end, the system 200 includes a client device 202. The client device 202 connects to an electronic device 204 through a data interface 206. In one implementation, the data interface 206 is a Universal Serial Bus (USB). The electronic device 204 further includes mechanisms that allow a user to insert one or more memory cards 208 in the electronic device 204. As mentioned previously, die memory card 208 when inserted in the electronic device 204 provides storage space in addition to the device memory. In one implementation, the memory card 208 is a secure digital (SD) card. The memory card 208 can interface with the electronic device 204 through a memory interface 210.
[0029] The electronic device 204 further includes an embedded device platform 212. The
embedded device platform 212 also acts as an interface and manages data transfer between the electronic device 204 and the memory card 208. The embedded device platform 212 can be realized as a hardware, such as a card reader, or as software, such as drivers for the electronic device 204, or a combination of both. The embedded device platform 212 further includes a write-throughput module 214. The embedded device platform 212 along with the write-throughput module 214 enables transfer of data from the client device 202 to the memory card 208. In one implementation, the embedded device platform 212 or the write-throughput module 214 include one or more command codes for implementing the transfer of data between the client device 202 and the memory card 208.
[0030] The embedded device platform 212 along with the write-throughput module 214
manages data transfer between the client device 202 and the memory card 208. The data transfer from the client device 202 to the embedded device platform 212 takes place over the data interface 206. The data in the memory card 208 is transferred in data segments. The data segments themselves are further split into smaller portions. These portions of the data segment are transferred individually from the client device 202 to the embedded device platform 212, and from the embedded device platform 212 to the memory card 208.
[0031] Before initiating the transfer of the portions of the data segment from the client
device 202, the embedded device platform 212 performs a pre-erase operation on die memory card 208. In one implementation, pre-erasing the memory card 208 is based on a setup message received by the embedded device platform 212 from the client device 202. The setup message may include, amongst other things, the size of the data segment that is to be stored in the memory card 208. In one implementation, the setup transfer message is generated when the
memory card 208 interfaces with the client device 202, for example when the electronic device 204 is plugged into the client device 202.
[0032] During the pre-erase operation of the memory card 208, the embedded device
platform 212 also starts receiving a first portion of the data segment from the client device 202. On completely receiving the first portion of the data segment, the embedded device platform 212 transfers the first portion of the data segment to the memory card 208. Furthermore, the embedded device platform 212 simultaneously starts receiving the next or second portion of the data segment from the client device 202. The embedded device platform 212 continues to transmit a portion of the data segment to the memory card 208 while simultaneously receiving the next portion of the data segment from the client device 202 thereby allowing an overlap of the data transfer steps between the client device 202 and the embedded device platform 212, and the embedded device platform 212 and the memory card 208. In one implementation, the portions of the data segment from the client device 202, when received, are stored in a buffer memory associated with the embedded device platform 212. The working of the electronic device 204 is explained in greater detail in conjunction with Figs. 3 and 4.
[0033] Fig. 3 illustrates relevant exemplary components of the electronic device 204. The
electronic device 204 can include one or more processors) 302, interface(s) 304, device memory 306. The processors) 302 may include microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processors) 302 are configured to fetch and execute computer-readable instructions stored in the device memory 306. The interface(s) 304 allow the electronic device 204 to interface with the
client device 202. Further the interface(s) 304 also allow interfacing of the electronic device 204 and the memory card 208.
[0034] In one implementation, the interface(s) 304 between the electronic device 204 and
the memory card 208 can be implemented in hardware, such as, a memory card reader, in which the memory card 208 can be inserted. The relevant mechanisms for accommodating the memory card 208 within the electronic device 204 are, however, not illustrated in Fig. 3. The memory card 208, when inserted, communicates with the electronic device 204 through the interface(s) 304.
[0035] The device memory 306 may include any computer-readable medium known in
the art including, for example, volatile memory (e.g., RAM) and/or non-volatile memory (e.g., flash, etc.). The device memory 306 also includes module(s) 308 and data 310. The module(s) 308 include the embedded device platform 212, a messaging module 312, an operating system 314 and other module(s) 316. The embedded device platform 212 further includes write-throughput module 214. Other module(s) 316 include programs that supplement applications or functions to be performed by a device, such as electronic device 204. In one implementation, data 310 includes, for example, command data 318, device buffer 320-1, 2, and other data 322. The command data 318 includes one or more commands that are utilized by the embedded device platform 212 for transferring data between a client device 202 and the memory card 208. In one implementation, the commands stored in the command data 318 are based on the Small Computer System Interface (SCSI) standard. The device buffer 320-1,2 are collectively referred to as device buffers 320. In an implementation, the device buffers 320 can have any number of device buffers, such as 320-1,2... .n.
[0036] Other data 322 includes data that is either utilized during or generated as a result
of the execution of one or more modules in module(s) 308. The working of the electronic device 204 is further explained in conjunction with the description of Fig. 4.
[0037] Fig. 4 shows a call-flow diagram 400 illustrating the transfer of data between the
client device 202, the embedded device platform 212 and the memory card 208, as per one implementation. The various arrow indicators used in the command-flow diagram 400 depict the transfer of data between the client device 202, the embedded device platform 212 and the memory card 208.
[0038] As stated earlier, to transfer data from the client device 202 to the memory card
208, the data is divided into a plurality of data segments. In one implementation, the size of a data segment is 64KB or a multiple thereof. The data segments are further divided into smaller portions. Each of such smaller portions of the data segment is then transmitted from the client device 202 to the embedded device platform 212. In one implementation, the size of the portions of the data segment is a multiple of 8KB or 16KB.
[0039] The client device 202 transmits a setup transfer message to prepare the embedded
device platform 212 and the memory card 208 for transferring of portions of the data segment. The setup transfer message, in one implementation, indicates the size of the data segment that is going to be transferred from the client device 202 to the memory card 208.
[0040] On receiving such a setup transfer message from the client device 202 (step 402-
a), the embedded device platform 212 pre-erases a portion of memory space in the memory card 208 (step 402-b). The amount of the space erased in the memory card 208 is according to the size of the data segment as specified in the setup transfer message. In one implementation, the pre-erase function can be performed based on commands stored in the command data 318. In another
implementation, the messaging module 312 included in the embedded device platform 212 acknowledges the receipt of the setup transfer message.
[0041] During the pre-erasing of the memory card 208, the embedded device platform
212 starts receiving a first portion of the data segment from the client device 202 (step 402-c). When the transfer of the first portion of the data segment is complete, the embedded device platform 212 commences with the transfer of the first portion of the data segment to the memory card 208. It will become evident from the following description, mat the pre-erase is performed only once for each data segment and before the first portion of the data segment is transferred from the client device 202. This overcomes the need for pre-erasing space in the memory card 208 regularly before transferring each of the portions of the data segment from the embedded device platform 212.
[0042] While the first portion of the data segment is being transferred to die memory card
208, the embedded device platform 212 simultaneously begins transfer of the next or second portion of the data segment from the client device 202 (step 402-d). In one implementation, the portions of die data segment received from the client device 202 are stored in a buffer memory associated with the embedded device platform 212. For example, the first portion of the data segment when received by the embedded device platform 212 is stored in the buffer memory 320-1, and the second portion of the data segment, similarly received, is stored in the buffer memory 320-2. In one implementation, the embedded device platform 212 and die memory card 208 transmits a message confirming the receipt of the second and the first portion of the data segment, to the client device 202 and the embedded device platform 212, respectively (step 402-e).
[0043] In a manner similar to one described above, once the transfer of the second
portion of the data segment is complete, the embedded device platform 212 initiates the transfer of the second portion to the memory card 208. Meanwhile, the embedded device platform 212 also starts the transfer of a third portion of the data segment from the client device 202 (step 402-f). The process continues with the transfer of the third portion of the data segment from the embedded device platform 212 to the memory card 208, while simultaneously transferring a fourth portion of the data segment from the client device 202 to the embedded device platform 212.
[0044] All subsequent portions of the data segment are transferred such that their transfer
to the embedded device platform 212 overlaps with the transfer of the previous portion of the data segment to the memory card 208. In one implementation, the third and the fourth portions of the data segment are saved in a buffer memory, for example buffer memory 320-1,2, associated with the embedded device platform 212, before they are transferred to the memory card 208.
[0045] At this stage, if no further portions of the data segment have to be transferred,
then the memory card 208 stores the transferred portions of the data segment in the data storage associated with the memory card 208. In one implementation, the embedded device platform 212 transmits a stop transfer command indicating that, for the data segment in question, no further portions of the data segment are to be transferred (step 402-1). On receiving such a command, the portions of the data segment received from the client device 202 are programmed, i.e., stored in the memory card 208. In this manner, the data segment is saved to the memory card 208 only when all its corresponding portions of the data segment have been transferred to memory card 208.
[0046] In one implementation, the transferred portions of the data segment are stored
using commands stored in the command data 318. Furthermore, the process as described above for a data segment is repeated till all the data segments constituting the data that is to be stored in the memory card 208 has been transferred from the client device 202 to the memory card 208. In one implementation, the transfer of other data segments is initiated while the portions corresponding to the previous data segments transferred are being stored in the memory card 208.
[0047] In one implementation, the embedded device platform 212 also determines and
checks whether all the portions of all the data segments have been transferred completely and without any errors. For example, the embedded device platform 212 determines the number of sectors that were successfully stored in the storage memory associated with the memory card 208. In case some of the sectors were not programmed properly, thereby indicating an error in writing one or more portions of a data segment, the embedded device platform 212 attempts to re-transfer the one or more portions of the data segment that were not written properly onto the memory card 208.
[0048] Fig. 5 describes an exemplary method 500 for transferring data between a client
device, such as a PC, and a memory card, such as an SD card, capable of being inserted in an electronic device. Fig. 5 is described with reference to Figs. 2-4. The exemplary method may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types.
[0049] The order in which the method is described is not intended to be construed as a
limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternative method. Additionally, individual blocks may be deleted from the method without departing from the spirit and scope of the subject matter described herein.
[0050] At block 502, a setup transfer message from a client device is received by an
embedded device platform. The setup transfer message is an indication that the client device, for example, the client device 202, is preparing to send data that is to be stored in a memory card, for example, the memory card 208, associated with an electronic device. The data to be stored in the memory card is transferred as portions of data segments. In an implementation, the setup message from the client device 202 is received by the embedded device platform 212 The setup message may include information indicating the size of data segment that is to be stored in the memory card 208. In one implementation, the size of the data segments is 64 KB.
[0051] At block 504, a fixed amount of memory space is pre-erased in the memory card
based on the setup transfer message. In an implementation, the embedded device platform 212 pre-erases some memory space in the memory card 208 based on the setup transfer message. The amount of memory space that is required to be pre-erased is equivalent to the size of the data segment that is to be transferred and stored in the memory card 208, at a given time. As will be observed for the remaining steps, the pre-erase step is performed only once for each transfer of the data segment thereby overcoming the requirement for performing a pre-erase step for all the portions of the data segment.
[0052] At block 506, a portion of the data segment is received from the client device. For
example, the embedded device platform 212 starts receiving a first portion of the data segment
from the client device 202. On receiving the first portion of the data segment, the embedded
device platform 212 prepares for transferring the received first portion of the data segment to the
memory card 208. In one implementation, the portion of the data segment received from the
client device 202 is stored in a buffer memory, such as the buffer memory 320-1.
[0053] At block 508, the portion of the data segment received from the client device is
transferred to a memory card. For example, the embedded device platform 212 starts transferring the first portion of the data segment to the memory card 208 once the first portion is completely received from the client device 202. In one implementation, the transfer of the portion of the data segment from the embedded device platform 212 to the memory card 208 is performed based on one or more commands stored in the command data 318.
[0054] As the portion of the data segment is being transferred to the memory card, the
embedded device platform simultaneously starts receiving the next portion of the data segment from the client device (block 510). For example, as the embedded device platform 212 transfers the portion of the data segment from, say the buffer memory 320-1, to the memory card 208, the embedded device platform 212 simultaneously starts receiving a next portion of the data segment from the client device 202. In one implementation, the embedded device platform 212 stores the next portion of the data segment in an available buffer memory, such as the buffer memory 320-2, associated with the embedded device platform 212.
[0055] At block 512, the next portion of the data segment (received in block 510) is
transferred to the memory card. Simultaneously, the embedded device platform starts receiving a subsequent portion of the data segment from the client device. For example, the embedded device platform 212 transfers the next portion of the data segment from, say the buffer memory 320-2, to the memory card 208. While this transfer takes place, the embedded device platform
212 starts receiving a subsequent portion of the data segment from the client device 202. In one implementation, the embedded device platform 212 stores the subsequent portion of the data segment in a buffer memory associated with the embedded device platform 212, such as buffer memory 320-1. It would be noted that the buffer memory 320-1 would now be available for storing the incoming portion due to the transfer of the portion of the data segment to the memory card 208, as described for block 508.
[0056] At block 514, the subsequent portion of the data segment transferred from the
client device in the previous step is transferred to the memory card from the embedded platform. In an implementation, the embedded device platform 212 transfers the subsequent portion of the data segment, which was stored in the buffer memory 320-1, to the memory card 208.
[0057] At block 516, it is determined whether any further portions of the data segment
are to be transferred from the client device to the memory card. In an implementation, the embedded device platform 212 determines whether any further portions of the data segment have to be transferred from the client device 202 to the embedded device platfonn 212, and subsequently to the memory card 208. In case the embedded device platform 212 determines that additional portions of the data segment have to be transferred from the client device 202 to the memory card 208 ('Yes' branch), the entire process described in blocks 510-514 is repeated. In such a case, the embedded device platfonn 212 continues to receive the further portion(s) of the data segment from the client device 202 while simultaneously transferring a previously received portion of the data segment to the memory card 208.
[0058] If the embedded device platform 212 determines that no further portions of the
data segment have to be transferred to the memory card 208 CNo' branch), the embedded device platform 212 programs the memory card 208 with the data conesponding to the portions of the
data segment transferred from the client device 202 (block 518). In this way, all the portions of the data segment, and consequently, the data segment constituting the portions of the data segment, is stored into the memory card 208. The entire process as described above is repeated for transferring all additional data segments which may be constituting the actual data to be transferred. In another implementation, the embedded device platform 212 after receiving the last portion of the data segment, transmits a command indicating that for the data segment in question, no further portions of the data segment are to be transferred. On receiving such a command, the memory card 208 is programmed with the portions of the data segment received from the client device 202.
(0059] In one implementation, the embedded device platform 212 checks for any errors
in writing the portions of the data segments to the memory card 208. For example, the embedded device platform 212 determines the number of sectors in the storage memory of the memory card 208 that were successfully written with the portions of the data segment. In case an error is detected, the embedded device platform 212 resends the relevant portions of the data segment that were not written onto the memory card 208. Only when all the portions of the data segment have been properly written is the data segment stored in the memory card 208. In this manner, the memory card 208 is programmed only when the complete data segment has been successfully transferred from the client device 202.
[0060] Although implementations for transferring data between a computing device, such
as a PC, and an electronic device having a memory card, have been described in language specific to structural features and/or methods, it is to be understood that the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary implementations.

I/We claim:-
1. A method of transferring data, the method comprising:
receiving a portion of a data segment to be stored in a memory card (208);
transferring the portion of the data segment to the memory card (208);
while transferring the portion of the data segment, receiving a subsequent portion of the data segment; and
for each received subsequent portion of the data segment, transferring the received subsequent portion of the data segment to the memory card (208), while receiving a next subsequent portion of the data segment.
2. The method of claim 1, further comprising:
before receiving the portion of the data segment, receiving a set-up signal, wherein the set-up signal indicates size of the data segment to be stored in the memory card (208); and
on receiving the set-up signal, pre-erasing the memory card (208) based on the set-up signal.
3. The method of claim 1, wherein the memory card (208) is based at least on a memory selected from group consisting of NOR flash based memory and NAND flash based memory.
4. The method of claim 1, wherein portions of the data segment are received from a computing-based device (202).
5. The method of claim 1, wherein the receiving the portions of the data segment further comprises intermittently storing the portions of the data segment in a buffer memory (320).
6. The method of claim 1, wherein the size of portions of the data segment is a multiple of 8 kilobytes.
7. The method of claim 2, wherein the size of the data segment is a multiple of the
size of the portions of the data segment.
8. A device (204) comprising:
at least one processor (302);
at least one device memory (306) coupled to the processor (302); a write-throughput module (214) configured to,
receive a portion of a data segment, from a computing device, for storing in a mass storage memory (208);
transfer the portion of the data segment to the mass storage memory (208);
while transferring the portion of the data segment, receive a subsequent portion of the data segment from the computing device (202); and
for each received subsequent portion of the data segment, transfer the received subsequent portion of the data segment to the mass storage memory (208) while receiving a next subsequent portion of the data segment from the computing device (202).
9. The device (204) of claim 8, wherein the mass storage memory (208) includes memory selected from a group consisting of a NAND flash based memory and NOR based flash memory.
10. The device (204) of claim 8, wherein the write-throughput module (214) is further configured to pre-erase the mass storage memory (208) based at least in part on a size of the data segment, before receiving the portion of the data segment.
11. The device (204) of claim 8, wherein the write-throughput module (214) transmits a stop transfer signal after all subsequent portions of the data segment have been received.
12. The device (204) of claim 8, wherein the device memory (306) includes at least one buffer memory (320) for buffering the portion of the data received from the computing device (202).
13. The device (204) of claim 8, wherein the mass storage device (208) is a USB memory stick.
14. A computer-readable medium having embodied thereon a computer program for executing a method comprising:
sending a pre-erase signal to a memory card (208);
receiving a portion of a data segment from a data device (202);
sending the portion of the data segment to the memory card (208);
while sending the portion of the data segment to the memory card (208), receiving another portion of the data segment from the data device (202);
for each received subsequent portion of the data segment, sending the another portion of the data segment to the memory card (208), and receiving a next another portion of the data segment from the data device (202); and
sending a store initiation signal to store all sent portions of the data segment in the memory card (208).
15. The computer-readable medium of claim 14, wherein the pre-erase signal is based on a set-up signal received from the data device (202).
16. The computer-readable medium of claim 14, wherein the data device (202) is a personal computer.
17. The computer-readable medium of claim 14, wherein the memory card (208) is a secure digital card.
18. The computer-readable medium of claim 14, wherein the sending the store initiation signal further comprises, transmitting a stop signal indicating completion of transfer of all portions of the data segment.
19. A method of transferring data, the method comprising:
receiving a set-up signal from a data device (202), wherein the set-up signal indicates at least size of a data segment to be stored in a memory (208);
on receiving the set-up signal, pre-erasing the memory (208) based on the set-up signal to free up space equivalent to the size of the data segment; and
receiving and transferring portions of the data segment from the data device (202) and to the memory (208), respectively.
20. The method of claim 19, wherein the receiving and transferring comprises:
receiving a portion of data segment to be stored in the memory (208);
transferring the portion of the data segment to the memory (208);
while transferring the portion of the data segment, receiving a subsequent portion of the data segment; and
for each received subsequent portion of the data segment, transferring the received subsequent portion of the data segment to the memory (208), while receiving a next subsequent portion of the data segment.
21. The method of claim 19, further comprising transmitting a signal indicating an end of transfer of portions of the data segment, on transferring all portions of the data segment to the memory (208).
22. The method of claim 19, wherein the memory (208) is selected from a group consisting of NOR flash based memory and a NAND flash based memory.
23. The method of claim 19, wherein the memory (208) is selected from a group consisting a secure digital card, a MultiMediaCard and xD picture card.

Documents

Application Documents

# Name Date
1 1984-DEL-2009-FER.pdf 2019-09-30
1 1984-DEL-2009-Form-1-(25-03-2010).pdf 2010-03-25
2 1984-del-2009-abstract.pdf 2011-08-21
2 1984-DEL-2009-Correspondence-Others-(25-03-2010).pdf 2010-03-25
3 1984-DEL-2009-GPA-(11-05-2010).pdf 2010-05-11
3 1984-del-2009-claims.pdf 2011-08-21
4 1984-del-2009-correspondence-others.pdf 2011-08-21
4 1984-DEL-2009-Correspondence-Others-(11-05-2010).pdf 2010-05-11
5 1984-del-2009-GPA-(25-05-2010).pdf 2010-05-25
5 1984-del-2009-description (complete).pdf 2011-08-21
6 1984-del-2009-drawings.pdf 2011-08-21
6 1984-del-2009-Correspondence-Others-(25-05-2010).pdf 2010-05-25
7 1984-del-2009-Form-3-(15-04-2011).pdf 2011-04-15
7 1984-del-2009-form-1.pdf 2011-08-21
8 1984-del-2009-form-2.pdf 2011-08-21
8 1984-del-2009-Correspondence-Others-(15-04-2011).pdf 2011-04-15
9 1984-del-2009-form-3.pdf 2011-08-21
9 abstract.jpg 2011-08-21
10 1984-del-2009-form-5.pdf 2011-08-21
11 1984-del-2009-form-3.pdf 2011-08-21
11 abstract.jpg 2011-08-21
12 1984-del-2009-Correspondence-Others-(15-04-2011).pdf 2011-04-15
12 1984-del-2009-form-2.pdf 2011-08-21
13 1984-del-2009-form-1.pdf 2011-08-21
13 1984-del-2009-Form-3-(15-04-2011).pdf 2011-04-15
14 1984-del-2009-Correspondence-Others-(25-05-2010).pdf 2010-05-25
14 1984-del-2009-drawings.pdf 2011-08-21
15 1984-del-2009-description (complete).pdf 2011-08-21
15 1984-del-2009-GPA-(25-05-2010).pdf 2010-05-25
16 1984-DEL-2009-Correspondence-Others-(11-05-2010).pdf 2010-05-11
16 1984-del-2009-correspondence-others.pdf 2011-08-21
17 1984-del-2009-claims.pdf 2011-08-21
17 1984-DEL-2009-GPA-(11-05-2010).pdf 2010-05-11
18 1984-del-2009-abstract.pdf 2011-08-21
18 1984-DEL-2009-Correspondence-Others-(25-03-2010).pdf 2010-03-25
19 1984-DEL-2009-Form-1-(25-03-2010).pdf 2010-03-25
19 1984-DEL-2009-FER.pdf 2019-09-30

Search Strategy

1 SEARCHSTRATEGYOFDATATRANSFERMETHOD_27-09-2019.pdf