IP Library Granted Patent US 10,776,092
Granted Patent B2
US 10,776,092 · App. 16/200,457 · Granted Sep 15, 2020

Method of obtaining a program to be executed by a electronic device, such as a smart card, comprising a non-volatile memory

Inventors: Fadi Osman (Courbevoie, FR); Marc Brugnon (Courbevoie, FR); Houssem Maghrebi (Courbevoie, FR)
Assignee: IDEMIA IDENTITY & SECURITY FRANCE
G06F8/447G06F3/061G06F3/0616G06F3/0634G06F3/0647G06F3/0679G06F12/0246G06F8/70G06F2212/7203G06F2212/7206G06F2212/7211
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,776,092
App. No.
16/200,457
Granted
Sep 15, 2020
Kind
B2
Abstract

The invention relates to a method for obtaining a program intended to be executed by an electronic device ( 1 ), such as a smart card, comprising a non-volatile memory, the process comprising the insertion (E 12 , E 14 ), in a source code, of a first function at the start of a source code instruction block, and a second function at the end of the source code instruction block, then generation (E 16 ) of the executable program from the source code, wherein the first function is configured to disable a wear-reduction mechanism of the non-volatile memory, when the program is executed by the electronic device, and the second function is configured to enable the wear-reduction mechanism of the non-volatile memory, when the program is executed by the electronic device.

Claims (20)

1. A method of obtaining a program which is executable by an electronic device comprising a non-volatile memory, wherein the method comprises:

inserting, in a source code, a first function at the start of a source code instruction block, and a second function at the end of the source code instruction block, then

generating the executable program from the source code, wherein

executing the first function disables a wear-levelling mechanism of the non-volatile memory independent of runtime events,

executing the second function enables the wear-levelling mechanism of the non-volatile memory independent of runtime events.

2. The method according to claim 1 , wherein the program comprises a target code instruction block generated from the source code instruction block, and wherein the source code instruction block is determined as a function of a potential execution frequency of the target code instruction block by the electronic device.

3. The method according to claim 1 , wherein the program comprises a target code instruction block generated from the source code instruction block, and wherein the source code instruction block is determined as a function of a number of read accesses in the non-volatile memory during the execution of the target code instruction block by the electronic device.

4. The method according to claim 1 , wherein the program comprises a target code instruction block generated from the source code instruction block, wherein the wear-levelling mechanism uses a buffer to access data in the non-volatile memory, and wherein the source code instruction block is determined such that an execution of the target code instruction block by the electronic device does not cause handling of data present in the buffer.

5. The method according to claim 1 , wherein the program comprises a target code instruction block generated from the source code instruction block, and wherein the source code instruction block is determined as a function of an amount of data to be written into the non-volatile memory during the execution of the target code instruction block by the electronic device.

6. The method according to claim 5 , wherein the amount of data is greater than or equal to a size of the buffer.

7. The method according to claim 5 , wherein the wear-levelling mechanism uses a buffer to access data in the non-volatile memory, and wherein disabling the mechanism by the first function or enabling the mechanism by the second function comprises flushing the buffer.

8. The method according to claim 1 , wherein the electronic device is a smartcard.

9. A non-transitory computer program product obtained by a method comprising:

inserting, in a source code, a first function at the start of a source code instruction block, and a second function at the end of the source code instruction block, then

generating the executable program from the source code,

storing the generated executable program on said non-transitory computer program product, wherein

during runtime of the executable program, executing the first function disables a wear-levelling mechanism of a non-volatile memory, independent of runtime events, and

during runtime of the executable program, executing the second function enables the wear-levelling mechanism of the non-volatile memory, independent of runtime events.

10. An electronic device comprising a non-volatile memory, a wear-levelling mechanism of the non-volatile memory, and at least one processor configured to execute the computer program product according to claim 9 .

11. An electronic device according to claim 10 , wherein the electronic device is a smartcard.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2025
From: IDEMIA IDENTITY & SECURITY FRANCE
To: IDEMIA FRANCE
Reel/Frame 070632/0157 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2019
From: OSMAN, FADI; BRUGNON, MARC; MAGHREBI, HOUSSEM
To: IDEMIA IDENTITY & SECURITY FRANCE
Reel/Frame 049731/0227 →