US7024535B2 - Method for dynamically allocating memory workspace by elementary memory blocks to a data structure, and corresponding onboard system - Google Patents
Method for dynamically allocating memory workspace by elementary memory blocks to a data structure, and corresponding onboard system Download PDFInfo
- Publication number
- US7024535B2 US7024535B2 US10/471,322 US47132203A US7024535B2 US 7024535 B2 US7024535 B2 US 7024535B2 US 47132203 A US47132203 A US 47132203A US 7024535 B2 US7024535 B2 US 7024535B2
- Authority
- US
- United States
- Prior art keywords
- identification number
- memory block
- elementary memory
- elementary
- allocated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
- 230000015654 memory Effects 0.000 title claims abstract description 189
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000004044 response Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000009434 installation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Definitions
- the invention concerns a method for dynamically allocating memory workspace by elementary memory blocks to a data structure in an onboard computer system, or onboard system, and the corresponding onboard system.
- the onboard systems, or current portable objects, such as the microprocessor cards or smartcards, PCMCIA cards and electronic assistants tend to perform more and more complex functions, due, in particular, to the installation of multiple application programs, the microprocessor or microcontroller cards being, in this case, known as multi-application cards.
- a wide range of applications can be installed in this type of object, due to the flexibility of the current high level languages and their adaptability to the widest range of hardware elements through especially the implementation of virtual machines.
- applications such as electronic purse, physical access control, access-control to services, for example pay TV programs or similar.
- the portable object for example, a microprocessor card and referenced 10
- the portable object includes the traditional input/output circuits, I/Os, referenced 12 , information processing resources, referenced 14 , composed of a microcontroller and connected to the input/output circuits 12 .
- a non volatile memory 18 is planned, which consists of programmable memory 18 a and a ROM type read only memory 18 b . These memories are connected to the microcontroller or microprocessor 14 .
- a working memory, RAM memory, referenced 16 is also planned and connected to the microprocessor.
- the above-mentioned links are BUS links.
- the assembly is managed by an operating system OS, which can be installed in non volatile memory 18 .
- the multi-application portable object may include a cryptographic computation unit SI, referenced 20 , itself connected to the microprocessor 14 .
- the microprocessor itself can be replaced or completed by logic circuits installed in a semiconductor chip, these logic circuits possibly being ASIC (Application Specific Integrated Circuit) type.
- ASIC Application Specific Integrated Circuit
- this invention concerns the implementation of a method for dynamically allocating memory workspace by elementary memory blocks to a data structure, the data structures corresponding either to applications as such, to system data used to implement the operating system, or to specific security data such as encryption/decryption access keys or other.
- the notion of dynamic allocation includes allocation and/or erasure of allocated memory.
- This system also concerns, in the context of the above-mentioned rationalisation, finding out quickly to which application or data structure each byte stored in storage area belongs.
- This system also concerns the implementation of a method for dynamically allocating memory by elementary memory blocks to a data structure in order to avoid or reduce any crumbling, or fragmentation, phenomenon, during the memory allocation/erasure process.
- this system also concerns the implementation of a method for dynamically allocating memory by elementary memory blocks, in which the memory integrity is guaranteed by checking the value of each elementary memory block allocated.
- the method for dynamically allocating memory workspace to a data structure identified by an identification number and stored as digital information packets in the storage area of an onboard system, subject of this invention is remarkable in that, the storage area being subdivided into elementary memory blocks, it is implemented from at least one elementary memory block erasure instruction and one elementary memory block allocation instruction, through which this elementary memory block is associated with a reference to this identification number.
- this method consists in assigning to the reference to the identification number the value of this identification number.
- To erase an elementary memory block this method consists in assigning to the reference to the identification number an arbitrary value set a priori, different from any identification number.
- the multi-application onboard system includes an operating system managing the input/output circuits, the arbitrary access memory and the non volatile memory via a microprocessor. It is remarkable in that it comprises in non volatile memory a table to manage the storage area by elementary memory blocks, this table comprising at least, for each elementary memory block, a reference to an identification number of the data structure to which the corresponding elementary memory block has been allocated and a value of memory workspace occupied in the corresponding elementary memory block assigned.
- the method subject of the invention is applicable to dynamically allocating memory workspace in any onboard computer system, but more especially in any portable object such as a microprocessor or a microcontroller card, in which the memory resources are reduced, due to its limited size.
- FIG. 2 a represents a functional flowchart illustrating steps used to implement the method for dynamically allocating memory subject of this invention
- FIG. 2 b represents, as an illustration, a functional flowchart of a preferential variant for implementation of the method for dynamically allocating memory subject of this invention, as illustrated on FIG. 2 a;
- FIG. 2 c represents, as an illustration, a special mode of realisation of the checksum computation process
- FIG. 3 represents, as an illustration, a preferential variant for implementation of the method subject of this invention, during an operation to erase a data structure such as an application;
- FIGS. 4 a and 4 b represent, as an illustration, memory occupation state diagrams, during an application installation/deinstallation process implemented, according to the method for dynamically allocating memory subject of this invention
- FIG. 5 represents, as a non-limiting example, an onboard system, such as a microprocessor or microcontroller card, comprising, stored in non volatile memory, a specific data table used to manage the memory workspace of this onboard system according to the method subject of this invention.
- an onboard system such as a microprocessor or microcontroller card, comprising, stored in non volatile memory, a specific data table used to manage the memory workspace of this onboard system according to the method subject of this invention.
- FIG. 2 a represents a functional flowchart of the main steps used to implement the method for dynamically allocating memory subject of this invention, this functional flowchart corresponding in fact to a state diagram of the above-mentioned main steps.
- step S corresponds to an initial state in which a data structure, formed by an application, by system data, if necessary specific numerical values or keys, must be stored, i.e. installed in the event of applications, for example in the storage area of an onboard system whose structure corresponds to that previously described in the description referring to FIG. 1 .
- each data structure is identified by an identification number written ID_A j where j can take values between 1 and n, n indicating the total number of data structures likely to be stored or installed in the above-mentioned memory workspace.
- each block in a non-limiting preferential mode of realisation, we indicate that the number of constituent bytes in each block BL l can be a power of 2 in order to simplify the addressing of each memory block and in each memory block so defined. In a mode of realisation given as a non-limiting example, we indicate that each block may comprise 256 bytes.
- AAAA arbitrary numerical value
- each data structure i.e. applications, system data, specific numerical values or keys, identified by the identification number ID_A j can be stored as packets of digital information in the storage area of the above-mentioned onboard system.
- packets of digital information we mean firstly packets of digital data representative of an object code used to install and execute an application for example, system data or keys, or specific numerical values, representative of packets of application data generated by one or more applications installed on the corresponding onboard system, or intermediate digital data allowing the operating system to manage the assembly in order to execute the various features of the onboard system using the above-mentioned system data, keys or intermediate numerical values.
- the method for dynamically allocating memory by elementary memory blocks to a data structure, subject of the invention is implemented from at least one elementary memory block BL l allocation instruction, allocation operation written A in which a reference to the identification number of the data structure or application considered is associated with the above-mentioned elementary memory block and from at least one elementary memory block erasure instruction, instruction corresponding to the operation E shown on FIG. 2 a.
- the allocation operation A to allocate an elementary memory block, consists in assigning the value of the identification number ID_A j to the reference to the identification number associated with the elementary memory block considered.
- the allocation step A consists in fact in assigning as reference to the identification number of the data structure or application, the value of the above-mentioned identification number to each block BL l in which the packets of digital information of object code or data are stored.
- the erasure step E consists, to erase an elementary memory block, in assigning to the reference to the identification number associated with the elementary memory block considered BL 1 an arbitrary value instead of the identification number of the data structure or application considered.
- This arbitrary value is of course the value AAAA mentioned earlier in the description. This arbitrary value is different from any identification number assigned to a given data structure.
- FIG. 2 a shows allocation A and erasure E steps connected to the initial state S by a double arrow, each double arrow representing of course the call of the allocation function or instruction A, respectively of the erasure function or instruction E, the allocation respectively erasure operations being carried out as described previously, and the return arrow representing an acknowledgement sent to the initial state S.
- the method subject of this invention in the mode of realisation of FIG. 2 b , may correspond to a process to allocate memory to data generated by an application for example, or if necessary obtained by loading or downloading application updates, the digital information packets, in both cases, possibly corresponding to those of an application or data structure already installed.
- the allocation operation A may consist, to allocate a given elementary memory block, written BL l , to the above-mentioned digital information packet Q k , and prior to any step which consists in assigning to the reference to the identification number the value of the identification number, in checking for any elementary memory block already allocated, the identity of the reference to the identification number and the identification number of the corresponding data structure, in a step A 1 .
- This identity check consists in carrying out a test which involves looking for the first memory block BL 1 whose associated identification number ID_A j corresponds to the identification number ID 13 A k of the data structure or application for which the allocation must be carried out.
- step A 3 If a negative response is obtained to the test A1, which consists in looking for the next block belonging to the application whose identification number is ID_A k , an instruction to allocate a free elementary memory block is called in step A 3 , none of the possible memory blocks already allocated to the application whose identification number is ID_A k having sufficient free space to contain the information packet Q k .
- the above-mentioned instruction to allocate the next elementary block can therefore be used to allocate an elementary memory block of address a, a being any offset value, a ⁇ N the set of natural integers.
- the elementary memory block chosen is of course an elementary block to which the arbitrary value AAAA was previously assigned and therefore corresponds to an erased block, i.e. a free block ready for any allocation and storage operation for the corresponding information packet Q k .
- a positive response to test A 1 indicates that the elementary memory block which has just been found is at least partly allocated to the data structure or application for which the allocation must be carried out.
- the allocation method then consists in checking, in a test A 2 , that there is sufficient memory workspace in the above-mentioned current elementary memory block BL l (ID_A j ) to store the above-mentioned digital information Q k .
- the allocation method according to the subject of this invention may consist in addition in calculating, in a step A 5 , a checksum for the elementary memory block allocated, this operation being designated by calculation CKS on FIG. 2 b.
- step A 5 the checksum calculation can be carried out using traditional checksum calculation means, these calculation means may in fact correspond to the specialised calculation circuit 20 contained in the traditional onboard systems, as described previously in the description.
- a traditional error management step A 6 can be planned.
- a preferential mode of realisation of the elementary memory block checksum calculation is an asynchronous checking mode, as described on FIG. 2 c.
- the method for dynamically allocating memory subject of this invention may consist, for the implementation of step A 5 , in selecting according to a random selection criterion one of the elementary memory blocks allocated.
- X designates the content of the elementary memory block BL A read.
- step A 53 which consists in calculating a checksum for the elementary memory block allocated selected.
- Step A 53 is written “calculation CKS(X)”. This checksum is then compared with a true value stored in the above-mentioned table, according to the checksum type process mentioned earlier in the description.
- the checksum calculation process may be triggered periodically by a step A 54 to return to step A 51 , in order to reinitialise the generation of a different random value, then the call to read the corresponding elementary memory block by executing steps A 51 and A 52 .
- step A 6 may include blocking the onboard system, or an attempt to retrieve the data if an error-correcting code is used as checksum.
- the method subject of the invention has been implemented for elementary memory blocks of 256 bytes, the following information being associated with each elementary memory block BL 1 :
- the previous information is stored for each elementary memory block in the form:
- the method for dynamically allocating memory by elementary memory blocks can also be used to erase any data structure, or application, identified by an identification number very flexibly and efficiently, as described below and shown on FIG. 3 .
- the corresponding erasure process may consist in collecting all blocks BL 0 , BL b to BL q whose identification number ID_A e corresponds to the application to be erased in step E 1 shown on FIG. 3 , then in assigning to the reference to the identification number of all the elementary memory blocks allocated to the application considered the arbitrary value AAAA previously mentioned in step E 2 on the same FIG. 3 , i.e. the above-mentioned value 00h.
- ID _A k info block [(address_byte-storage area_start_address)/64]
- the previous relation is obtained according to the mode of realisation described for blocks of 256 bytes per block and 4 information bytes in info block per current block considered.
- the implementation of the method for dynamically allocating memory avoids or reduces fragmentation of the storage area managed.
- a search is carried out in the info block list to find the first block belonging to the application or to the data structure which has sufficient free space to create this object or variable type.
- a new block is only allocated to an application, or to a data structure, if the remaining space is insufficient for the object or variable type to be created in at least one of the blocks already allocated to this application or this data structure. Consequently, there are no objects or variable types which are not distributed over at least two non-consecutive blocks.
- any erased block which is now therefore free, can always be reassigned and reallocated, either to data from applications or to object code from an application.
- the risk of fragmenting is therefore limited to the loading and frequent erasure of consecutive code blocks.
- the memory fragmentation phenomenon can also be reduced by reallocating elementary memory blocks to object code packets, by rearrangement by translation.
- checksum can be calculated on each read for blocks containing data considered to be critical, such as for example sensitive data of the OS or key values for which the identification number may be the value FDh.
- the period can be set to 50 ms for example.
- the calculation of the checksum for all blocks can also be implemented during very specific events of the onboard system, such as its change of life state in the field of application of smartcards, for example.
- the applets may correspond to programs written in any type of high level language.
- Applet 1 In reference to FIG. 4 a , we consider 4 applets, designated by Applet 1, Applet 2, Applet 3 and Applet 4, each comprising:
- Applet 1 150 bytes of code i.e. 1 block 600 bytes of data
- blocks Applet 2 150 bytes of code i.e. 1 block 150 bytes of data
- i.e. 1 block Applet 3 1100 bytes of code, i.e. 5 blocks 200 bytes of data
- i.e. 1 block Applet 4 400 bytes of code i.e. 2 blocks 300 bytes of data, i.e. 2 blocks
- step 1 corresponds to the installation of Applet 1 and Applet 2
- step 2 to the erasure of Applet 1
- step 3 to the installation of Applet 3
- step 4 to the installation of Applet 4.
- the corresponding onboard system is represented as a non-limiting example as a microprocessor or microcontroller card.
- This onboard system includes an operating system managing the input/output circuits of the random access memory and of the non volatile memory via the above-mentioned microprocessor.
- non volatile programmable memory 18 a it comprises in non volatile programmable memory 18 a , a table to manage the storage area by elementary memory blocks, this table comprising at least, for each elementary memory block BL l previously described in the description, a reference to an identification number of a data structure to which the corresponding elementary memory block has been allocated, and a value of memory workspace occupied in the corresponding elementary memory block allocated.
- the reference to the identification number of the data structure is written ID_A 1 , respectively ID_A 2 and the value of memory workspace occupied is written LI 1 respectively LI 2 on FIG. 5 .
- the table may comprise, for each corresponding elementary memory block, a checksum for the elementary block allocated, these values being written CKS 1a and CKS 1b , respectively CKS 2a and CKS 2b .
- the checksum is encoded on 2 bytes.
- the memory workspace used to manage this memory workspace occupies, since the above-mentioned table has to be stored, 1.56% of the memory actually available. This low value of the memory size occupied to implement the method subject of this invention is quite acceptable considering the fact that it is much easier to use and install a wide range of applications, whose number only depends on the size of the non volatile memory 18 a.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
Description
BLl(ID_Aj).
- [ID_Aj]j=1 n all identification numbers of data structures already installed;
- [BLl]l=1 L all blocks likely to be used in the storage area considered;
- ID_Ak the identification number of the data structure or application for which the memory allocation is required, k∈[1,n];
- Qk the memory workspace required for the digital information packets to which a corresponding memory workspace must be allocated.
In addition, a special index j is defined, written j0, which is assigned the value 0.
∃ BLl(ID_Aj) with ID_Aj=ID_Ak ? and j>j0
BL a(AAAA)=BL a(ID — A k).
LR j =LB j −LO j and Q k ≦LR j?
relation in which LRj designates the remaining memory workspace for the current elementary memory block, LBj designates the total memory workspace of each current elementary block, i.e. 256 bytes in the mode of realisation indicated above, and LOj designates the memory workspace occupied in the above-mentioned current elementary memory block.
LO j =LO j +Q k.
BL d(X)=BL A(X).
In this relation, X designates the content of the elementary memory block BLA read.
-
- identification number ID_Aj of the data structure or application: 1 byte;
- memory workspace occupied written LOj: 1 byte; if necessary, the free memory workspace can be used;
- checksum: 2 bytes.
-
- info block structure {byte ID_A1, byte LRj, word CKS}
In the previous relation, a byte is 8 bits and a word is two bytes.
- info block structure {byte ID_A1, byte LRj, word CKS}
- ID_AJ=00h: free block, AAAA=00h,
- FFh: illegible system block,
- FEh: legible system block,
- FDh: specific value or key,
- 01h-FCh: elementary memory block belonging to the application with application identification number i, where i∈[01h,FCh].
For any ID_Aj, LRj can take any value from 01h to FFh, value 00h also meaning that the current elementary memory block is fully used, no memory workspace being available in the block.
ID_Ak=info block [(address_byte-storage area_start_address)/64]
The previous relation is obtained according to the mode of realisation described for blocks of 256 bytes per block and 4 information bytes in info block per current block considered.
| |||
Applet | |||
1 | 150 bytes of code, i.e. 1 block | ||
600 bytes of data, i.e. 3 | |||
Applet | |||
2 | 150 bytes of code, i.e. 1 block | ||
150 bytes of data, i.e. 1 | |||
Applet | |||
3 | 1100 bytes of code, i.e. 5 blocks | ||
200 bytes of data, i.e. 1 | |||
Applet | |||
4 | 400 bytes of code, i.e. 2 blocks | ||
300 bytes of data, i.e. 2 blocks | |||
Claims (9)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0016722A FR2818771A1 (en) | 2000-12-21 | 2000-12-21 | METHOD OF DYNAMICALLY ALLOCATING MEMORY BY ELEMENTARY MEMORY BLOCKS TO A DATA STRUCTURE, AND EMBEDDED SYSTEM THEREOF |
FR00/16722 | 2000-12-21 | ||
PCT/FR2001/004126 WO2002050661A2 (en) | 2000-12-21 | 2001-12-20 | Method for dynamically allocating memory workspace by elementary memory blocks to a data structure, and corresponding onboard system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20040215913A1 US20040215913A1 (en) | 2004-10-28 |
US7024535B2 true US7024535B2 (en) | 2006-04-04 |
Family
ID=8857967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/471,322 Expired - Fee Related US7024535B2 (en) | 2000-12-21 | 2001-12-20 | Method for dynamically allocating memory workspace by elementary memory blocks to a data structure, and corresponding onboard system |
Country Status (8)
Country | Link |
---|---|
US (1) | US7024535B2 (en) |
EP (1) | EP1346287B1 (en) |
AT (1) | ATE445879T1 (en) |
AU (1) | AU2002229827A1 (en) |
DE (1) | DE60140208D1 (en) |
ES (1) | ES2335863T3 (en) |
FR (1) | FR2818771A1 (en) |
WO (1) | WO2002050661A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434105B1 (en) * | 2005-11-07 | 2008-10-07 | Symantec Operating Corporation | Selective self-healing of memory errors using allocation location information |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2818770A1 (en) * | 2000-12-21 | 2002-06-28 | Bull Cp8 | METHOD FOR OPTIMIZED MANAGEMENT OF THE MEMORY ALLOCATION OF AN ON-BOARD SYSTEM AND CORRESPONDING ON-BOARD SYSTEM |
US7299384B1 (en) * | 2004-08-17 | 2007-11-20 | Symantec Operating Corporation | Fixing prematurely freed objects |
JP4281738B2 (en) * | 2005-12-26 | 2009-06-17 | コニカミノルタビジネステクノロジーズ株式会社 | Image forming apparatus, image forming method, and program |
SE531837C2 (en) * | 2007-12-05 | 2009-08-25 | Oricane Ab | Procedure and computer software product |
US8618418B2 (en) * | 2009-04-29 | 2013-12-31 | Ppc Broadband, Inc. | Multilayer cable jacket |
DE102010010851A1 (en) * | 2010-03-10 | 2011-09-15 | Giesecke & Devrient Gmbh | Spying protection when executing an operation sequence in a portable data carrier |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882474A (en) * | 1986-05-16 | 1989-11-21 | American Telephone And Telegraph Company | Security file system and method for securing data in a portable data carrier |
WO1995010083A1 (en) | 1993-10-04 | 1995-04-13 | Cirrus Logic, Inc. | Flash memory with reduced erasing and overwriting |
EP0686918A1 (en) | 1994-05-31 | 1995-12-13 | Siemens Nixdorf Informationssysteme AG | Object management method in a data processing system, especially adapted for memory management |
GB2324894A (en) | 1997-04-17 | 1998-11-04 | Ibm | Importing information onto a chip card |
WO2001016759A1 (en) | 1999-08-31 | 2001-03-08 | Cryptec Systems, Inc. | Smart card memory management system and method |
US6480935B1 (en) * | 1999-01-15 | 2002-11-12 | Todd Carper | Smart card memory management system and method |
-
2000
- 2000-12-21 FR FR0016722A patent/FR2818771A1/en active Pending
-
2001
- 2001-12-20 DE DE60140208T patent/DE60140208D1/en not_active Expired - Lifetime
- 2001-12-20 AU AU2002229827A patent/AU2002229827A1/en not_active Abandoned
- 2001-12-20 AT AT01990601T patent/ATE445879T1/en not_active IP Right Cessation
- 2001-12-20 EP EP01990601A patent/EP1346287B1/en not_active Expired - Lifetime
- 2001-12-20 ES ES01990601T patent/ES2335863T3/en not_active Expired - Lifetime
- 2001-12-20 US US10/471,322 patent/US7024535B2/en not_active Expired - Fee Related
- 2001-12-20 WO PCT/FR2001/004126 patent/WO2002050661A2/en not_active Application Discontinuation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882474A (en) * | 1986-05-16 | 1989-11-21 | American Telephone And Telegraph Company | Security file system and method for securing data in a portable data carrier |
WO1995010083A1 (en) | 1993-10-04 | 1995-04-13 | Cirrus Logic, Inc. | Flash memory with reduced erasing and overwriting |
EP0686918A1 (en) | 1994-05-31 | 1995-12-13 | Siemens Nixdorf Informationssysteme AG | Object management method in a data processing system, especially adapted for memory management |
GB2324894A (en) | 1997-04-17 | 1998-11-04 | Ibm | Importing information onto a chip card |
US6480935B1 (en) * | 1999-01-15 | 2002-11-12 | Todd Carper | Smart card memory management system and method |
WO2001016759A1 (en) | 1999-08-31 | 2001-03-08 | Cryptec Systems, Inc. | Smart card memory management system and method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434105B1 (en) * | 2005-11-07 | 2008-10-07 | Symantec Operating Corporation | Selective self-healing of memory errors using allocation location information |
Also Published As
Publication number | Publication date |
---|---|
FR2818771A1 (en) | 2002-06-28 |
AU2002229827A1 (en) | 2002-07-01 |
WO2002050661A3 (en) | 2002-08-22 |
EP1346287B1 (en) | 2009-10-14 |
DE60140208D1 (en) | 2009-11-26 |
ES2335863T3 (en) | 2010-04-06 |
US20040215913A1 (en) | 2004-10-28 |
WO2002050661A2 (en) | 2002-06-27 |
EP1346287A2 (en) | 2003-09-24 |
ATE445879T1 (en) | 2009-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6496910B1 (en) | Method and device for loading instruction codes to a memory and linking said instruction codes | |
US5568423A (en) | Flash memory wear leveling system providing immediate direct access to microprocessor | |
US6505283B1 (en) | Efficient memory allocator utilizing a dual free-list structure | |
US7689762B2 (en) | Storage device wear leveling | |
US6675278B1 (en) | Method and apparatus for managing memory | |
EP2006774A1 (en) | Smart card storage system and file management method therein | |
US20100077135A1 (en) | Memory wear leveling method, system and device | |
EP2880538B1 (en) | System and method for object deletion in persistent memory using bitmap windows | |
US6572024B1 (en) | Memory array with address scrambling | |
US20040128463A1 (en) | Apparatus and method for controlling memory allocation for variable size packets | |
WO2001084321A1 (en) | Method, system and computer program for data management on storage medium | |
US7024535B2 (en) | Method for dynamically allocating memory workspace by elementary memory blocks to a data structure, and corresponding onboard system | |
US20010034818A1 (en) | Method for linking program modules reloaded into a main memory of a processor on a smart card | |
US20050154851A1 (en) | Fast, high reliability dynamic memory manager | |
US6772954B2 (en) | Method of encoding information within directory files on an integrated circuit smart card | |
US7093096B2 (en) | Optimised management method for allocating memory workspace of an onboard system and corresponding onboard system | |
US6889303B2 (en) | Method and apparatus for distinguishing reachable objects and non-reachable objects in an object-based application | |
US6570882B1 (en) | Method of managing a queue of digital cells | |
CN113485974A (en) | Method and device for using YAFFS (flash architecture) for NOR flash memory | |
US6272504B1 (en) | Flexibly deleting objects in a resource constrained environment | |
EP4134826A1 (en) | Management of memory of a processing device | |
US8200937B2 (en) | Method of managing flash memory allocation in an electronic token | |
KR100892608B1 (en) | How to manage error blocks in flash memory | |
US6223991B1 (en) | Process for managing the memory resources in a microcircuit card | |
EP0955588B1 (en) | Flexibly deleting objects in a resource constrained environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CP8 TECHNOLOGIES, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FOUGEROUX, NICOLAS;HAMEAU, PATRICE;LANDIER, OLIVIER;REEL/FRAME:015506/0388 Effective date: 20030616 |
|
AS | Assignment |
Owner name: AXALTO SA, FRANCE Free format text: CHANGE OF NAME;ASSIGNOR:SCHLUMBERGER SYSTEMES S.A.;REEL/FRAME:017218/0071 Effective date: 20041103 |
|
AS | Assignment |
Owner name: CP8 TECHNOLOGIES, FRANCE Free format text: RERECORD TO CORRECT ASSIGNEE 017218/0071;ASSIGNOR:AXALTO SA;REEL/FRAME:017300/0848 Effective date: 20060301 |
|
REMI | Maintenance fee reminder mailed | ||
FEPP | Fee payment procedure |
Free format text: PETITION RELATED TO MAINTENANCE FEES FILED (ORIGINAL EVENT CODE: PMFP); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PETITION RELATED TO MAINTENANCE FEES GRANTED (ORIGINAL EVENT CODE: PMFG); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
REIN | Reinstatement after maintenance fee payment confirmed | ||
AS | Assignment |
Owner name: SOLIDO 3D LTD.,ISRAEL Free format text: CHANGE OF NAME;ASSIGNOR:SOLIDIMENSION LTD.;REEL/FRAME:024370/0549 Effective date: 20090908 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20100404 |
|
PRDP | Patent reinstated due to the acceptance of a late maintenance fee |
Effective date: 20100622 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
SULP | Surcharge for late payment | ||
FPAY | Fee payment |
Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.) |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.) |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20180404 |