An IC Card is a pocked-sized card with embedded integrated circuits which manage processes and store data. In particular, the IC Card usually comprises a non-volatile memory portion, a volatile memory portion, a microprocessor, and a security logic, if any. Programming data and sensitive date can be written and read in these non-volatile and volatile memory portions.
The IC Card works according to programs or instruction flows that should be suitably stored in its non-volatile memory portion by way of an initial programming process. Generally, the programs or instruction flows are provided from a supplier or producer of the IC Cards and are loaded by an initialization device that is interfaced with the IC Card. In particular, during the initial programming process, a set of predefined commands transfer a large amount of input data from the initialization device to the IC Card while the microprocessor manages the storing of data into the non-volatile memory portion.
Subsequently, customization phases allow storing of sensitive information and details referring to the IC Card user. In this case, in order to avoid unwanted widespread dissemination of these sensitive data, security circuits are embedded in the IC Card.
Referring to FIG. 1, a typical programming process is schematically shown therein. In particular, a terminal of the initialization device or reader 1 transmits data files to an IC Card 3 that stores the external data in a non-volatile memory portion 4. The IC Card 3 also comprises a microprocessor 5 that allows for the management and the control of the data files as received as well as the storing of the same into the non-volatile memory portion 4. More particularly, the initial programming process may comprise a start phase where the reader 1 sends to the IC Card 3 a pre-input signal 10 (being shown by a hatched line), and the IC Card 3 sends to the reader 1 a pre-output signal 11 (being also shown by a hatched line), when it is ready to receive data files. Subsequently, the initial programming process may comprise a plurality of transmitting phases where a corresponding set of packets of data files is forwarded by the reader 1 toward the IC card 3.
According to FIG. 1, the initial programming process may comprise a first transmitting phase where the reader 1 sends to the IC Card 3 a first input signal 12 that comprises a first packet of data files, and the IC Card 3 sends to the reader 1 a first output signal 13 after the data file of this first packet has been transmitted and stored into the non-volatile memory portion 4.
Moreover, the initial programming process may comprise a second transmitting phase that substantially corresponds to the first transmitting phase and where a second input signal 14, that comprises a second packet of data files, is sent from the reader 1 towards the IC Card 3. A second output signal (not shown) is also sent from the IC Card 3 to the reader 1 when the data files of the second packet have been completely transmitted and stored into the non-volatile memory portion 4. The initial programming process goes on by subsequent transmitting phases until all packets of data files are sent and a stop signal is send from the reader 1 to the IC Card 3.
Substantially, the initial programming process is a synchronous process, namely a new packet of data files is sent from the reader only after the previous packet of data files is completely stored into the non-volatile memory portion. In FIG. 1, the timing of the programming process is also indicated. In particular, it is to be remarked that the first transmitting phase shows: a start-uptime Tc: time needed by the first input signal 12 to reach the IC Card 3, a holding time Ts: time needed by the IC Card 3 to execute the writing command and to store the packet of data files into the non-volatile memory portion, this holding time corresponding to the time interval between receiving the first input signal 12 and sending the first output signal 13; a returning time Tr: time needed by the first output signal 13, being transmitted to the IC Card 3, for arriving to the reader 1; and a waiting time Tt: time needed by the reader 1 for preparing and forwarding a next packet of data files to the IC Card 3.
Moreover, the holding time Ts further may comprise: a preparation time Tp: during which the non-volatile memory portion 4 of the IC Card 3 is ready to store a first packet of data files; and a writing time Tw: during which data files of the first packet are completely written into the non-volatile memory portion 4, being in particular, Tw≦Ts. Subsequently, the above indicated timing sequence is re-started beginning by a further start-up time Tc.
The initial programming process thus may require a long execution time, being the time needed for storing a packet of data file at least equal to the holding time Ts, i.e. the time during which the packet of data files has been completely written into the non-volatile memory portion and all checks for a correct storing are completed. Thus, in order to store all N-packets of data files into the non-volatile memory portion of the IC Card 3, the total time being substantially equal to N*Tp.
Moreover, the IC Card 3 may require an updating programming process where parts of the data files having been already stored into the non-volatile memory portion are added or substituted. The updating programming process substantially corresponds to the initial programming process both in terms of commands and time.
During the initial and updating programming processes, a large amount of data is transferred/written from the reader to the IC Card, but the management and the execution time turn out to be very long. The execution speed of the processes may be reduced with high manufacturing cost.