WO2013045101A1 - Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile - Google Patents

Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile Download PDF

Info

Publication number
WO2013045101A1
WO2013045101A1 PCT/EP2012/004070 EP2012004070W WO2013045101A1 WO 2013045101 A1 WO2013045101 A1 WO 2013045101A1 EP 2012004070 W EP2012004070 W EP 2012004070W WO 2013045101 A1 WO2013045101 A1 WO 2013045101A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual memory
range
memory addresses
sector
sectors
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.)
Ceased
Application number
PCT/EP2012/004070
Other languages
English (en)
Inventor
Arnaud CHICHER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aumovio Germany GmbH
Aumovio France SAS
Original Assignee
Continental Automotive Technologies GmbH
Continental Automotive France SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Continental Automotive Technologies GmbH, Continental Automotive France SAS filed Critical Continental Automotive Technologies GmbH
Priority to CN201280047582.8A priority Critical patent/CN103999059B/zh
Priority to US14/346,070 priority patent/US9311235B2/en
Priority to RU2014117177A priority patent/RU2607240C2/ru
Publication of WO2013045101A1 publication Critical patent/WO2013045101A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

Definitions

  • the present invention belongs to the field of electronic computers, and more particularly relates to a method of erasing information stored in a non-volatile rewritable memory, an information storage medium, and an electronic calculator comprising such a storage medium. .
  • the present invention finds a preferred application, although in no way limiting, in the case of motor vehicle computers.
  • the electronic computers of motor vehicles are in a known manner in the form of a microcontroller comprising, in addition to one or more microprocessors, electronic memories (flash, EEPROM ["Electrically-Erasable Programmable Read-Only Memory”], RAM ["Random Access Memory “], etc.), interface devices, etc.
  • non-volatile memories of the computer are stored computer programs, or "software", consisting of a set of program code instructions to be executed by a microprocessor to perform the various tasks of said computer.
  • software consisting of a set of program code instructions to be executed by a microprocessor to perform the various tasks of said computer.
  • three main types of software are stored in non-volatile memories of the computer:
  • Reprogramming software making it possible to modify all or part of the information (notably software and / or calibration data) stored in non-volatile rewritable memories of the electronic computer, known in the English literature as "Loader Software" ".
  • the boot and reprogramming software can also be the same software, then known as the "Boot Loader".
  • flash memory non-volatile rewritable memories of the "flash memory" type.
  • a flash memory is generally organized in several segments on which operations can be carried out in parallel.
  • Each segment is itself organized into several sectors, a sector corresponding to the smallest unit of memory that can be erased.
  • each sector is generally organized in several pages, a page corresponding to the smallest unit of memory that can be written.
  • FIG. 1 schematically represents the organization of a flash memory comprising two sectors Sa and Sb whose physical memory addresses are interleaved.
  • the two sectors Sa and Sb are broken down into several elements.
  • the elements of said sectors Sa and Sb are arranged so that the flash memory comprises first the first element of the sector Sa, then the first element of the sector Sb, then the second element of the sector Sa, then the second element of the sector Sb etc.
  • erase requests indicate the physical memory address of the beginning of the memory area to be erased, as well as the size of the memory area to be erased from this physical memory address.
  • the aim of the present invention is to provide a solution that makes it possible to reduce the risk of erasure by sectors errator, in the case of a non-volatile rewritable memory of which at least two sectors comprise interleaved physical memory addresses.
  • the present invention also aims at providing a solution which makes it possible, in certain cases, to facilitate the parallelization of the erasing operations and consequently to reduce the erasure duration of the non-volatile rewritable memory whose content must be erased.
  • the present invention aims to propose a solution that makes it possible to have a slave module, which directly interacts with the non-volatile rewritable memory and must therefore know its organization and type, offering an interface to a master module, who sends him requests for deletion, which is the same whatever the organization and type of the non-volatile rewritable memory whose content must be erased.
  • the invention relates to a method of erasing information stored in a non-volatile rewritable memory of an electronic computer, in which a master module sends erase requests to a slave module of said electronic computer, said nonvolatile rewritable memory being organized into sectors corresponding to the smallest memory unit that can be erased, at least two sectors having interleaved physical memory addresses.
  • the erasing method comprises the following preliminary steps:
  • Establishing a first mapping function making it possible to determine, for each range of virtual memory addresses of the virtual memory address space, the sector or sectors associated with a range of virtual memory addresses,
  • the erasing method according to the invention comprises, for each erase request received by the slave module indicating a range of virtual memory addresses, a determination step, according to the first matching function and the range. indicated virtual memory addresses, the sector or sectors whose content must be erased by the slave module.
  • the non-volatile rewritable memory comprises several segments, said segments being such that erasure operations on one segment can be performed simultaneously with erasing operations on another segment each segment decomposing into a plurality of sectors and at least two segments having interleaved physical memory addresses.
  • Each erase request sent by the master module is further sent indicating a range of virtual memory addresses corresponding to only one segment of the non-volatile rewritable memory.
  • two consecutive erase requests sent by the master module respectively indicate virtual memory address ranges corresponding to different segments of the non-volatile rewritable memory, these two queries. consecutive erasure respectively for a first segment and a second segment, the corresponding erasing operations being performed in parallel.
  • the erasing method comprises one or more of the following characteristics, taken separately or in any technically possible combination.
  • the range of virtual memory addresses is non-overlapping with the range of rewritable physical memory addresses of the non-volatile rewritable memory, and the erasing method includes a step of detecting the use of an address range. virtual memory, the sector determination step being executed only if a range of virtual memory addresses has been detected.
  • the erasing method comprises:
  • a preliminary step of establishing a second correspondence function making it possible to determine, for each software component that can be erased, the range or ranges of virtual memory addresses associated with a software component,
  • the invention relates to an information storage medium of an electronic computer, storing a slave module adapted to perform operations for erasing the content of physical memory addresses of a non-volatile rewritable memory organized in sectors corresponding to the smallest memory unit that can be erased.
  • the storage medium stores a first mapping function for determining, for each range of virtual memory addresses of a predefined virtual memory address space, the sector or sectors associated with a range of virtual memory addresses
  • the slave module comprises instructions which, when executed by said electronic computer, determine, from the first correspondence function and from a virtual memory address range indicated in an erase request received by said module slave, the sector or sectors whose content must be erased, the range of virtual memory addresses being without overlap with the range of rewritable physical memory addresses of the non-volatile rewritable memory, and the slave module being configured to execute the sector determination instructions according to the first match function only if a range of addresses its virtual memory has been detected.
  • the storage medium comprises one or more of the following characteristics, taken separately or in any technically possible combination.
  • the storage medium stores a master module configured to send erase requests to the slave module, and a second matching function for determining, for each software component stored in the non-volatile rewritable memory, the range or ranges of virtual memory addresses associated with a software component.
  • the master module comprises instructions which, when executed by the electronic computer, convert, according to the second correspondence function, a software component erasure request received by said master module into a request of deleting a range of virtual memory addresses.
  • the invention relates to an electronic computer which comprises an information storage medium according to any one of the embodiments of the invention.
  • FIG. 1 already mentioned, a schematic representation of two sectors interlaced with a flash memory
  • FIG. 2 a schematic representation of an electronic computer of a motor vehicle
  • FIGS. 3a and 3b an example illustrating the development of a virtual address space according to the invention
  • FIG. 4 a diagram representing the main steps of a preferred embodiment of an erasing method according to the invention
  • Figure 5 a diagram showing the main steps of a preferred variant of the erasing process of Figure 4.
  • FIG. 2 very schematically represents an electronic computer of a motor vehicle.
  • the invention is applicable to any type of electronic computer to be reprogrammed by means of an external reprogramming tool.
  • the electronic computer comprises a microprocessor 101 connected to electronic memories 102, 103, 104 by a data bus 105.
  • the electronic computer comprises a non-volatile rewritable memory 104, in which are stored information that can be reprogrammed. This information may be program code instructions, called "software", to be executed to perform the various tasks assigned to said electronic computer, and / or data used by said various software, such as calibration data.
  • the electronic computer also comprises a non-volatile memory 103 in which is stored a reprogramming software which, when it is executed by the microprocessor 101, makes it possible to reprogram the contents of the non-volatile rewritable memory 102.
  • the reprogramming of the non-volatile rewritable memory 102 comprises in principle the erasure of a memory zone of said non-volatile rewritable memory, then the writing of new information in this memory zone.
  • the main focus is on erase operations, the write operations outside the scope of the present invention.
  • the non-volatile rewritable memory 102 and the non-volatile memory 103 are combined, the reprogramming software then being used to reprogram the contents of the electronic memory in which it is itself. even memorized.
  • the electronic computer also uses the volatile memory 104 (Random Access Memory), in which information is copied temporarily during the operation of the electronic calculator, in order to to be executed by the microprocessor 101.
  • the non-volatile rewritable memory 102 is of the type organized into several sectors.
  • the non-volatile rewritable memory 102 comprises at least two interleaved sectors. In the remainder of the description, one places oneself in a nonlimiting manner in the case where the non-volatile rewritable memory 102 is a flash memory.
  • the present invention relates to a method 50 (see FIGS. 4 and 5) for erasing information stored in the flash memory 102, the implementation of which is ensured in particular in the present example by:
  • a master module Mm which can be integrated in the reprogramming software or in an external reprogramming tool,
  • the master module Mm and the slave module Me are software stored for example in the non-volatile memory 103, including code instructions of program to be executed by the microprocessor 101 of the electronic computer.
  • the erasing method 50 is based on the development of a virtual memory address space, associating a specific virtual memory address to each physical memory address of the flash memory.
  • the virtual memory addresses are associated with the physical memory addresses so that, in the virtual memory address space, each sector of the flash memory 102 extends over a specific range of consecutive virtual memory addresses.
  • ⁇ No element of another sector is within this range of consecutive physical memory addresses.
  • the method 50 of erasing information stored in the flash memory 102 comprises the following preliminary steps:
  • the erasing method 50 then comprises, for each received erase request indicating a range of virtual memory addresses, a step 522 for determining the sector or sectors whose content must be erased.
  • the slave module Me uses the first correspondence function, previously stored for example in the nonvolatile memory 103, to determine the sector or sectors associated with the range of virtual memory addresses indicated in the erasure request. received.
  • the virtual memory address space is such that each segment of the flash memory 102 extends over a specific range of consecutive virtual memory addresses.
  • the segments of a flash memory 102 are such that erase operations performed on one segment can be performed simultaneously with erase operations on another segment of the flash memory 102.
  • the master module Mm is configured so that each erasing request it sends indicates one or possibly several ranges of virtual memory addresses which all correspond to the same segment of the flash memory 102. In other words, each erasing request sent by the master module Mm is directed at only one segment of the flash memory 102.
  • the master module Mm is configured so that, when erasing operations must be performed on at least two segments of the flash memory 102, delete requests sent consecutively by the master module Mm target two different segments.
  • Such provisions make it possible to parallelize the erase operations relating to two consecutive erasure queries, since said consecutive erasure queries target two different segments.
  • the erasure duration will advantageously be reduced because many erasure operations may be performed substantially simultaneously where, according to the prior art, these erasing operations were performed one after the other as performed first. for a whole first segment, then for a whole second segment, etc.
  • the virtual memory addresses have no physical significance for the flash memory 102.
  • the range of virtual memory addresses does not overlap with the range of rewritable physical memory addresses of the memory flash 102. So, a virtual memory address, if it is interpreted as being a physical memory address of the flash memory 102, does not correspond to a memory address to which information can be written.
  • the use of a range of virtual memory addresses that is distinct from the range of rewritable physical memory addresses of the flash memory 102 has the advantage that, at the level of the slave module Me, it will be possible to detect whether a range of virtual memory addresses is used or not, and therefore if the first match function is to be used or not to determine the sector (s) whose content is to be deleted.
  • erasure of these sectors may possibly be done by sending erase requests directly indicating the physical memory address ranges of these sectors.
  • FIGS. 3a and 3b show an example of determining virtual memory address space associated with a flash memory 102.
  • Figure 3a schematically shows two segments of the flash memory 102, respectively designated S1 and S2.
  • the segment S1 comprises a sector Sa and the segment S2 comprises a sector Sb.
  • Sectors Sa and Sb are further intertwined. In a nonlimiting manner, it is considered that the sectors Sa and Sb are each memory size 64 bytes.
  • each sector Sa, Sb is broken down into four 16 byte (16 o) memory size elements.
  • the physical memory address 0x00000000 corresponds to the first element of the first sector Sa
  • the physical memory address 0x00000010 corresponds to the first element of the second sector Sb
  • the physical memory address 0x00000020 corresponds to the second element of the first sector Sa
  • 0x00000030 is the second element of the second sector Sb, and so on.
  • FIG. 3b schematically represents an example of a virtual memory address space that can be associated with the flash memory 102.
  • the range of virtual memory addresses associated with the range of physical memory addresses 0x00000000 to 0x0000007F, is between the virtual memory address OxAOOOOOOO and the virtual memory address 0xA000007F.
  • This range of virtual memory addresses preferably does not overlap with the rewritable physical memory address range of the flash memory 102, so that it can be easily detected at the slave module Me.
  • the virtual memory address OxAOOOOOOO is associated with the physical memory address 0x00000000, ie at the first element of the first sector Sa
  • the virtual memory address 0xA0000010 is associated with the physical memory address 0x00000020, ie the second element of the first sector Sa,
  • the virtual memory address 0xA0000020 is associated with the physical memory address 0x00000040, ie at the third element of the first sector Sa,
  • the virtual memory address 0xA0000030 is associated with the physical memory address 0x00000060, ie at the fourth element of the first sector Sa.
  • the virtual memory addresses of the virtual memory address range extending from OxAOOOOOOO to 0xA000003F identify each of the physical memory addresses of said first sector Sa.
  • request to delete the range of virtual memory addresses OxAOOOOOOO to 0xA000003F can be interpreted unambiguously as to delete only the contents of the first sector Sa.
  • the slave module Me erases the contents of the elements of size 16 bytes d physical memory addresses 0x00000000, 0x00000020, 0x00000040, and 0x00000060.
  • the virtual memory address 0xA0000040 is associated with the physical memory address 0x00000010, ie at the first element of the second sector Sb,
  • the virtual memory address 0xA0000050 is associated with the physical memory address 0x00000030, ie the second element of the second sector Sb,
  • the virtual memory address 0xA0000060 is associated with the physical memory address 0x00000050, ie at the third element of the second sector Sb,
  • the virtual memory address 0xA0000070 is associated with the physical memory address 0x00000070, ie at the fourth element of the second sector Sb.
  • the virtual memory addresses of the range of virtual memory addresses ranging from 0xA0000040 to 0xA000007F identify each of the physical memory addresses of the second sector Sb. It will thus be understood that a request to delete the range of virtual memory addresses 0xA0000040 to 0xA000007F can be unambiguously interpreted as intended to delete only the content of the second sector Sb.
  • the slave module Me erases the contents of the 16-byte size elements of physical memory addresses 0x00000010, 0x00000030, 0x00000050, and 0x00000070.
  • a first erasure request may indicate the range of virtual memory addresses OxAOOOOOOO to 0xA000003F while a second erase request may indicate the range of virtual memory addresses 0xA0000040 to 0xA000007F.
  • the first correspondence function that will be used by the slave module Me may for example be stored in the form of a correspondence table which can then be expressed as follows:
  • Figure 4 shows schematically the main steps of a preferred embodiment of the erasing method 50.
  • the erasing method 50 comprises several steps. The steps shown in the left-hand part of FIG. 4 are executed by the master module Mm, whereas the steps represented in the right-hand part of FIG. 4 are executed by the slave module Me.
  • the erasing method 50 first comprises a step 512 for sending, by the master module Mm, an erasure request.
  • the erase request indicates one or more ranges of virtual memory addresses.
  • the erasing method 50 then comprises a step 520 of reception, by the slave module Me, of the erasure request.
  • the slave module Me then executes a step 521 for detecting the use of a virtual memory address range.
  • the slave module Me detects (reference 521a in FIG. first match function must be used to determine the sector (s) whose content is to be deleted.
  • the erasing method 50 then comprises the step 522 for determining the sector or sectors associated with each of the virtual memory address ranges indicated in the erase request, according to the first matching function.
  • the reprogramming method 50 then comprises a step 523 for deleting the content of the sector or sectors determined according to the first correspondence function.
  • the slave module Me will be able to detect it according to the first correspondence function and reject the request of erasure (possibly by notifying it to the master module Mm).
  • This step of determining if the range of virtual memory addresses is correct and, if necessary, this step of rejecting the erasure request are not shown in the figures.
  • the detection step 521 would have determined that the memory address range used was not a range of virtual memory addresses. (reference 521b in FIG. 4), leading directly to the execution of the step 523 for deleting the content of the sector or sectors associated with the indicated range of physical memory addresses (for example in the case of non-interlaced sectors ).
  • the erasing method 50 comprises a step 513, executed by the master module Mm, of determining whether other erase requests should be sent. If no further erase request is to be sent (reference 513a in Fig. 4), the execution of the erase process 50 terminates.
  • the sending step 512 is executed again for sending the next erase request.
  • the following process steps, slave module side Me, are then executed again for the new erase request.
  • the slave module Me is integrated in the electronic computer.
  • the master module Mm can either be integrated in the electronic computer or integrated into a reprogramming tool external to the electronic computer and connected to it by means of a communication bus (CAN, Ethernet, etc.). ).
  • FIG. 5 schematically represents the main steps of a preferred embodiment of the erasing method 50 of FIG. 4, in the case where a External reprogramming tool 20 sends erase requests to the integrated master module Mm in the electronic computer.
  • the flash memory 102 stores a plurality of software components that may possibly be erased, and the reprogramming tool 20 sends erase requests indicating software components to be erased.
  • the erasing method 50 illustrated in FIG. 5 comprises a step 502 preceding the establishment of a second matching function making it possible to determine, for each software component erasable, the virtual address range (s) associated with a given software component.
  • the erasing method 50 also comprises a step 530 sending, by the reprogramming tool 20, a request to erase a software component to the master module Mm.
  • the erasing method 50 also comprises a step 510 of reception, by the master module Mm, of the erasure request sent by the reprogramming tool 20.
  • the erasing method 50 then comprises a step 51 1 for converting, by the master module Mm and according to the second matching function, the request for erasing the software component into an address range erasure request. virtual memory associated with this software component, which is then sent to the slave module Me during the sending step 512.
  • the master module Mm can convert the software component deletion request into one or more erase requests each indicating one or more ranges of virtual memory addresses. .
  • the present invention also relates to an information storage medium, in this case the non-volatile memory 103, in which is stored a reprogramming software comprising a slave module Me adapted to implement steps of the erasing method 50.
  • the slave module Me comprises program code instructions which, when they are executed by the microprocessor 101, implement, in particular, the reception steps 520, sector determination 522 to be erased and 523 erasure. If necessary, the slave module Me also includes instructions whose execution makes it possible to implement the detection step 521.
  • the reprogramming software stored in the storage medium, also includes a master module Mm adapted to perform steps of the erasing method 50.
  • the master module Mm comprises program code instructions which, when executed by the microprocessor 101, implement the steps 512 for sending the erase request and 513 for determining whether other erase requests are to be made. must be sent. If necessary, the master module Mm also comprises instructions whose execution makes it possible to implement the steps 510 of reception and 51 1 of conversion.
  • the storage medium also stores the first correspondence function and, where appropriate, the second correspondence function.
  • the present invention also relates to an electronic computer 10 of a motor vehicle comprising a storage medium as described above.
  • the first correspondence function may in particular be in the form of program code instructions to be executed to determine the sector or sectors associated with a range of virtual memory addresses indicated in an erasure request.
  • the second mapping function may be in the form of program code instructions to be executed to determine the virtual memory address range (s) associated with a software component indicated in an erase request.
  • the sectors to be erased can be unambiguously identified, limiting the risks of erasing. one or more sectors by mistake.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

La présente invention concerne un procédé (50) d'effacement d'informations mémorisées dans une mémoire réinscriptible non volatile (102) d'un calculateur (10) électronique, dans lequel un module maître (Mm) envoie des requêtes d'effacement à un module esclave (Me) du calculateur, la mémoire (102) comportant au moins deux secteurs entrelacés. Le procédé comporte une étape (500) préalable de détermination d'un espace d'adressage mémoire virtuel associé à la mémoire (102), dans lequel chaque secteur s'étend sur une plage spécifique d'adresses mémoire virtuelles consécutives, et une étape préalable (501 ) d'établissement d'une première fonction de correspondance permettant de déterminer, à partir d'une plage d'adresses mémoire virtuelles, le ou les secteurs dont le contenu doit être effacé. Le procédé (50) d'effacement comporte également, pour chaque requête d'effacement reçue par le module esclave indiquant une plage d'adresses mémoire virtuelles, une étape (522) de détermination du ou des secteurs dont le contenu doit être effacé par le module esclave. La mémoire (102) comporte plusieurs segments (S1, S2), chaque segment se décomposant en plusieurs secteurs et au moins deux segments comportant des adresses mémoire physiques entrelacées, chaque requête d'effacement envoyée par le module maître étant envoyée en indiquant une plage d'adresses mémoire virtuelles ne correspondant qu'à un seul segment de la mémoire (102). Deux requêtes d'effacement consécutives envoyées par le module maître indiquent respectivement des plages d'adresses mémoire virtuelles correspondant à des segments différents de la mémoire (102), ces deux requêtes d'effacement consécutives visant respectivement un premier segment (S1) et un second segment (S2), les opérations d'effacement correspondantes étant effectuées en parallèle. La présente invention concerne également un support de mémorisation d'informations et un calculateur électronique.

Description

Procédé d'effacement d'informations mémorisées dans une mémoire réinscriptible non volatile, support de mémorisation et calculateur de véhicule automobile
La présente invention appartient au domaine des calculateurs électroniques, et concerne plus particulièrement un procédé d'effacement d'informations mémorisées dans une mémoire réinscriptible non volatile, un support de mémorisation d'informations, ainsi qu'un calculateur électronique comportant un tel support de mémorisation.
La présente invention trouve une application préférée, bien que nullement limitative, dans le cas de calculateurs de véhicules automobiles.
Les calculateurs électroniques de véhicules automobiles se présentent de manière connue sous la forme d'un microcontrôleur comportant, outre un ou plusieurs microprocesseurs, des mémoires électroniques (flash, EEPROM [« Electrically-Erasable Programmable Read-Only Memory »], RAM [« Random Access Memory »], etc.), des périphériques d'interface, etc.
Dans des mémoires non volatiles du calculateur sont mémorisés des programmes d'ordinateur, ou « logiciels », constitués d'un ensemble d'instructions de code de programme à exécuter par un microprocesseur afin de réaliser les différentes tâches dudit calculateur. Généralement, trois principaux types de logiciels sont mémorisés dans des mémoires non volatiles du calculateur :
· un logiciel d'amorçage, à exécuter notamment au démarrage du calculateur électronique pour initialiser celui-ci, connu dans la littérature anglo-saxonne sous le nom de « Boot Software »,
• un logiciel applicatif, à exécuter pour réaliser les tâches spécifiques du calculateur électronique, connu dans la littérature anglo-saxonne sous le nom de « Application Software »,
• un logiciel de reprogrammation permettant de modifier tout ou partie des informations (notamment les logiciels et/ou les données de calibration) mémorisées dans des mémoires réinscriptibles non volatiles du calculateur électronique, connu dans la littérature anglo-saxonne sous le nom de « Loader Software ».
Les logiciels d'amorçage et de reprogrammation peuvent être également un même logiciel, connu alors sous le nom de « Boot Loader ».
De nos jours, certains calculateurs électroniques de véhicules automobiles sont équipés de mémoires réinscriptibles non volatiles du type « mémoire flash ». De manière connue, une mémoire flash est généralement organisée en plusieurs segments sur lesquels des opérations peuvent s'effectuer en parallèle. Chaque segment est lui- même organisé en plusieurs secteurs, un secteur correspondant à la plus petite unité de mémoire pouvant faire l'objet d'une opération d'effacement. En outre, chaque secteur est généralement organisé en plusieurs pages, une page correspondant à la plus petite unité de mémoire pouvant faire l'objet d'une opération d'écriture.
Pour effectuer une reprogrammation d'une mémoire flash, il faut en principe effacer le contenu des secteurs des pages dans lesquelles de nouvelles informations doivent être écrites, puis écrire lesdites nouvelles informations dans les pages prévues.
Lorsque le contenu d'un secteur est effacé, il n'est plus possible de récupérer les informations qui étaient auparavant mémorisées dans ce secteur. On comprend donc que les opérations d'effacement doivent être effectuées avec précaution, afin d'assurer que le contenu d'un ou plusieurs secteurs ne soit pas effacé par mégarde.
La figure 1 représente schématiquement l'organisation d'une mémoire flash comportant deux secteurs Sa et Sb dont les adresses mémoire physiques sont entrelacées.
En effet, on constate que les deux secteurs Sa et Sb se décomposent en plusieurs éléments. Les éléments desdits secteurs Sa et Sb sont agencés de sorte que la mémoire flash comporte tout d'abord le premier élément du secteur Sa, puis le premier élément du secteur Sb, puis le second élément du secteur Sa, puis le second élément du secteur Sb, etc.
Traditionnellement, les requêtes d'effacement indiquent l'adresse mémoire physique du début de la zone mémoire à effacer, ainsi que la taille de la zone mémoire à effacer à partir de cette adresse mémoire physique.
On comprend qu'une telle approche mise en œuvre pour effacer le contenu du secteur Sa entraînerait un risque d'effacer également le contenu du secteur Sb, du fait que ces secteurs sont entrelacés.
La présente invention vise à proposer une solution qui permette de diminuer les risques d'effacement par érreur de secteurs, dans le cas d'une mémoire réinscriptible non volatile dont au moins deux secteurs comportent des adresses mémoire physiques entrelacées.
La présente invention vise également à proposer une solution qui permette, dans certains cas, de faciliter la parallélisation des opérations d'effacement et par conséquent diminuer la durée d'effacement de la mémoire réinscriptible non volatile dont le contenu doit être effacé.
En outre, la présente invention vise à proposer une solution qui permette d'avoir un module esclave, qui interagit directement avec la mémoire réinscriptible non volatile et doit par conséquent en connaître l'organisation et le type, offrant une interface à un module maître, qui lui envoie des requêtes d'effacement, qui soit la même quel que soit l'organisation et le type de la mémoire réinscriptible non volatile dont le contenu doit être effacé.
Selon un premier aspect, l'invention concerne un procédé d'effacement d'informations mémorisées dans une mémoire réinscriptible non volatile d'un calculateur électronique, dans lequel un module maître envoie des requêtes d'effacement à un module esclave dudit calculateur électronique, ladite mémoire réinscriptible non volatile étant organisée en secteurs correspondant à la plus petite unité mémoire pouvant faire l'objet d'une opération d'effacement, au moins deux secteurs comportant des adresses mémoire physiques entrelacées. En outre, le procédé d'effacement comporte les étapes préalables suivantes :
• détermination d'un espace d'adressage mémoire virtuel associé à la mémoire réinscriptible non volatile, dans lequel chaque secteur s'étend sur une plage spécifique d'adresses mémoire virtuelles consécutives,
• établissement d'une première fonction de correspondance permettant de déterminer, pour chaque plage d'adresses mémoires virtuelles de l'espace d'adressage mémoire virtuel, le ou les secteurs associés à une plage d'adresses mémoire virtuelles,
Ensuite, le procédé d'effacement selon l'invention comporte, pour chaque requête d'effacement reçue par le module esclave indiquant une plage d'adresses mémoire virtuelles, une étape de détermination, d'après la première fonction de correspondance et de la plage d'adresses mémoires virtuelles indiquée, du ou des secteurs dont le contenu doit être effacé par le module esclave.
En outre, selon le procédé d'effacement suivant l'invention, la mémoire réinscriptible non volatile comporte plusieurs segments, lesdits segments étant tels que des opérations d'effacement sur un segment peuvent être effectuées simultanément à des opérations d'effacement sur un autre segment, chaque segment se décomposant en plusieurs secteurs et au moins deux segments comportant des adresses mémoire physiques entrelacées. Chaque requête d'effacement envoyée par le module maître est en outre envoyée en indiquant une plage d'adresses mémoire virtuelles ne correspondant qu'à un seul segment de la mémoire réinscriptible non volatile.
En outre, selon le procédé d'effacement suivant l'invention, deux requêtes d'effacement consécutives envoyées par le module maître indiquent respectivement des plages d'adresses mémoire virtuelles correspondant à des segments différents de la mémoire réinscriptible non volatile, ces deux requêtes d'effacement consécutives visant respectivement un premier segment et un second segment, les opérations d'effacement correspondantes étant effectuées en parallèle. Suivant des modes particuliers de mise en uvre, le procédé d'effacement comporte l'une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles.
De préférence, la plage d'adresses mémoire virtuelles est sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible non volatile, et le procédé d'effacement comporte une étape de détection d'utilisation d'une plage d'adresses mémoire virtuelles, l'étape de détermination de secteur n'étant exécutée que si une plage d'adresses mémoire virtuelles a été détectée.
De préférence, lorsque plusieurs composants logiciels sont mémorisés dans la mémoire réinscriptible non volatile, le procédé d'effacement comporte :
• une étape préalable d'établissement d'une seconde fonction de correspondance permettant de déterminer, pour chaque composant logiciel pouvant être effacé, la ou les plages d'adresses mémoire virtuelles associées à un composant logiciel,
• une étape d'envoi, par un outil de reprogrammation connecté au calculateur électronique, d'une requête d'effacement d'un composant logiciel au module maître,
• une étape de conversion, par le module maître et d'après la seconde fonction de correspondance, de la requête d'effacement de composant logiciel en requête d'effacement de plage d'adresses mémoire virtuelles.
Selon un second aspect, l'invention concerne un support de mémorisation d'informations d'un calculateur électronique, mémorisant un module esclave adapté à effectuer des opérations d'effacement du contenu d'adresses mémoire physiques d'une mémoire réinscriptible non volatile organisée en secteurs correspondant à la plus petite unité mémoire pouvant faire l'objet d'une opération d'effacement. En outre, le support de mémorisation mémorise une première fonction de correspondance permettant de déterminer, pour chaque plage d'adresses mémoires virtuelles d'un espace d'adressage mémoire virtuel prédéfini, le ou les secteurs associés à une plage d'adresses mémoire virtuelles, et le module esclave comporte des instructions qui, lorsqu'elles sont exécutées par ledit calculateur électronique, déterminent, à partir de la première fonction de correspondance et d'une plage d'adresses mémoire virtuelle indiquée dans une requête d'effacement reçue par ledit module esclave, le ou les secteurs dont le contenu doit être effacé, la plage d'adresses mémoire virtuelles étant sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible non volatile, et le module esclave étant configuré pour n'exécuter les instructions de détermination de secteur d'après la première fonction de correspondance que si une plage d'adresses mémoire virtuelles a été détectée. Suivant des modes particuliers de réalisation, le support de mémorisation comporte l'une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles.
De préférence, le support de mémorisation mémorise un module maître configuré pour envoyer des requêtes d'effacement au module esclave, et une seconde fonction de correspondance permettant de déterminer, pour chaque composant logiciel mémorisé dans la mémoire réinscriptible non volatile, la ou les plages d'adresses mémoire virtuelles associées à un composant logiciel. En outre, le module maître comporte des instructions qui, lorsqu'elles sont exécutées par le calculateur électronique, convertissent, d'après la seconde fonction de correspondance, une requête d'effacement de composant logiciel reçue par ledit module maître en une requête d'effacement de plage d'adresses mémoire virtuelles.
Selon un troisième aspect, l'invention concerne un calculateur électronique qui comporte un support de mémorisation d'informations selon l'un quelconque des modes de réalisation de l'invention.
L'invention sera mieux comprise à la lecture de la description suivante, donnée à titre d'exemple nullement limitatif, et faite en se référant aux figures qui représentent :
- Figure 1 : déjà citée, une représentation schématique de deux secteurs entrelacés d'une mémoire flash,
- Figure 2 : une représentation schématique d'un calculateur électronique de véhicule automobile,
- Figures 3a et 3b : un exemple illustrant l'élaboration d'un espace d'adressage virtuel selon l'invention,
- Figure 4 : un diagramme représentant les principales étapes d'un mode préféré de mise en œuvre d'un procédé d'effacement selon l'invention,
- Figure 5 : un diagramme représentant les principales étapes d'une variante préférée du procédé d'effacement de la figure 4.
La figure 2 représente de façon très schématique un calculateur 10 électronique de véhicule automobile.
De manière plus générale, il est à noter que l'invention est applicable à tout type de calculateur électronique devant être reprogrammé au moyen d'un outil 20 de reprogrammation externe.
De manière connue, le calculateur 10 électronique comporte un microprocesseur 101 relié à des mémoires électroniques 102, 103, 104 par un bus de données 105. Le calculateur 10 électronique comporte une mémoire réinscriptible non volatile 104, dans laquelle sont mémorisées des informations pouvant être reprogrammées. Ces informations peuvent être des instructions de code de programme, dites « logiciels », à exécuter pour effectuer les différentes tâches affectées audit calculateur électronique, et/ou des données utilisées par lesdits différents logiciels, telles que des données de calibration.
Le calculateur 10 électronique comporte également une mémoire non volatile 103 dans laquelle est mémorisé un logiciel de reprogrammation qui, lorsqu'il est exécuté par le microprocesseur 101 , permet de reprogrammer le contenu de la mémoire réinscriptible non volatile 102.
La reprogrammation de la mémoire réinscriptible non volatile 102 comprend en principe l'effacement d'une zone mémoire de ladite mémoire réinscriptible non volatile, puis l'écriture de nouvelles informations dans cette zone mémoire. Dans la suite de l'exposé, on s'intéresse principalement aux opérations d'effacement, les opérations d'écriture sortant du cadre de la présente invention.
Suivant d'autres modes de réalisation du calculateur 10 électronique, la mémoire réinscriptible non volatile 102 et la mémoire non volatile 103 sont confondues, le logiciel de reprogrammation étant alors mis en œuvre pour reprogrammer le contenu de la mémoire électronique dans laquelle il est lui-même mémorisé.
Le calculateur 10 électronique utilise également la mémoire volatile 104 (mémoire dite « RAM », acronyme anglais de « Random Access Memory » désignant une mémoire à accès direct), dans laquelle des informations sont copiées temporairement lors du fonctionnement du calculateur 10 électronique, en vue d'être exécutées par le microprocesseur 101. La mémoire réinscriptible non volatile 102 est du type organisé en plusieurs secteurs. La mémoire réinscriptible non volatile 102 comporte au moins deux secteurs entrelacés. Dans la suite de la description, on se place de manière non limitative dans le cas où la mémoire réinscriptible non volatile 102 est une mémoire flash.
La présente invention concerne un procédé 50 (cf. Figures 4 et 5) d'effacement d'informations mémorisées dans la mémoire flash 102, dont la mise en oeuvre est assurée notamment, dans le présent exemple, par :
• un module maître Mm, pouvant être intégré dans le logiciel de reprogrammation ou dans un outil 20 de reprogrammation externe,
• un module esclave Me intégré dans le logiciel de reprogrammation.
Le module maître Mm et le module esclave Me sont des logiciels mémorisés par exemple dans la mémoire non volatile 103, comportant des instructions de code de programme destinées à être exécutées par le microprocesseur 101 du calculateur 10 électronique.
Dans son principe, le procédé 50 d'effacement repose sur l'élaboration d'un espace d'adressage mémoire virtuel, associant une adresse mémoire virtuelle spécifique à chaque adresse mémoire physique de la mémoire flash.
Les adresses mémoires virtuelles sont associées aux adresses mémoire physiques de sorte que, dans l'espace d'adressage mémoire virtuel, chaque secteur de la mémoire flash 102 s'étend sur une plage spécifique d'adresses mémoire virtuelles consécutives.
Lorsque deux secteurs sont entrelacés, c'est-à-dire lorsque ces secteurs comportent des adresses mémoire physiques entrelacées, il n'existe pas de plage d'adresses mémoire physiques consécutives telle que :
• tous les éléments d'un de ces secteurs sont compris dans cette plage d'adresses mémoire physiques consécutives,
· aucun élément d'un autre secteur n'est compris dans cette plage d'adresses mémoire physiques consécutives.
Dans l'espace d'adressage mémoire virtuel, il existe au contraire, par construction, une plage spécifique d'adresses mémoire virtuelles consécutives pour chaque secteur de la mémoire flash 102 telle que :
· tous les éléments de ce secteur sont compris dans cette plage d'adresses mémoire virtuelles consécutives,
• aucun élément d'un autre secteur n'est compris dans cette plage d'adresses mémoire virtuelles consécutives.
On comprend donc qu'il est possible, dans l'espace d'adressage mémoire virtuel, d'identifier de manière non ambiguë un secteur dont le contenu doit être effacé par une plage d'adresses mémoire virtuelles consécutives. En outre, l'utilisation de l'espace d'adressage mémoire virtuel permet d'émettre des requêtes d'effacement en supposant que les secteurs de la mémoire flash 102 ne sont pas entrelacés.
A cet effet le procédé 50 d'effacement d'informations mémorisées dans la mémoire flash 102 comporte les étapes préalables suivantes :
• 500 : détermination d'un espace d'adressage mémoire virtuel dans lequel chaque secteur s'étend sur une plage spécifique d'adresses mémoire virtuelles consécutives,
• 501 : établissement d'une première fonction de correspondance permettant de déterminer, pour chaque plage d'adresses mémoire virtuelles de l'espace d'adressage mémoire virtuel, le ou les secteurs associés à une plage d'adresses mémoire virtuelles donnée. Pour effacer le contenu d'un ou de plusieurs secteurs, le module maître Mm enverra au module esclave Me des requêtes d'effacement se référant à des plages d'adresses mémoire virtuelles de la mémoire flash 102.
Le procédé 50 d'effacement comporte alors, pour chaque requête d'effacement reçue indiquant une plage d'adresses mémoire virtuelles, une étape 522 de détermination du ou des secteurs dont le contenu doit être effacé. Au cours de cette étape, le module esclave Me utilise la première fonction de correspondance, préalablement mémorisée par exemple dans la mémoire non volatile 103, pour déterminer le ou les secteurs associés à la plage d'adresses mémoire virtuelles indiquée dans la requête d'effacement reçue.
Dans un mode particulier de mise en œuvre, l'espace d'adressage mémoire virtuel est tel que chaque segment de la mémoire flash 102 s'étend sur une plage spécifique d'adresses mémoire virtuelles consécutives.
Tel que décrit précédemment, les segments d'une mémoire flash 102 sont tels que des opérations d'effacement effectuées sur un segment peuvent être effectuées simultanément à des opérations d'effacement sur un autre segment de la mémoire flash 102.
Avantageusement, le module maître Mm est configuré de sorte que chaque requête d'effacement qu'il émet indique une ou éventuellement plusieurs plages d'adresses mémoire virtuelles qui correspondent toutes à un même segment de la mémoire flash 102. En d'autres termes, chaque requête d'effacement émise par le module maître Mm ne vise qu'un segment de la mémoire flash 102. En outre, le module maître Mm est configuré de sorte que, lorsque que des opérations d'effacement doivent être effectuées sur au moins deux segments de la mémoire flash 102, des requêtes d'effacement envoyées consécutivement par le module maître Mm visent deux segments différents.
De telles dispositions permettent de paralléliser les opérations d'effacement relatives à deux requêtes d'effacement consécutives, puisque lesdites requêtes d'effacement consécutives visent deux segments différents. La durée d'effacement sera avantageusement réduite du fait que de nombreuses opérations d'effacement pourront être effectuées sensiblement simultanément là où, selon l'art antérieur, ces opérations d'effacement étaient effectuées les unes à la suite des autres car effectuées d'abord pour tout un premier segment, puis pour tout un second segment, etc.
De préférence, les adresses mémoire virtuelles n'ont pas de signification physique pour la mémoire flash 102. En d'autres termes, la plage d'adresses mémoire virtuelles ne présente pas de recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire flash 102. Ainsi, une adresse mémoire virtuelle, si elle est interprétée comme étant une adresse mémoire physique de la mémoire flash 102, ne correspond pas à une adresse mémoire à laquelle des informations peuvent être écrites.
L'utilisation d'une plage d'adresses mémoire virtuelles distincte de la plage d'adresses mémoire physiques réinscriptibles de la mémoire flash 102 présente l'avantage que, au niveau du module esclave Me, il sera possible de détecter si une plage d'adresses mémoire virtuelles est utilisée ou non, et par conséquent si la première fonction de correspondance doit être utilisée ou non pour déterminer le ou les secteurs dont le contenu doit être effacé.
Par exemple, si la mémoire flash 102 comporte également des secteurs non entrelacés, l'effacement de ces secteurs peut éventuellement se faire en envoyant des requêtes d'effacement indiquant directement les plages d'adresses mémoire physiques de ces secteurs.
Les figures 3a et 3b représentent un exemple de détermination d'espace d'adressage mémoire virtuel associé à une mémoire flash 102.
La figure 3a représente schématiquement deux segments de la mémoire flash 102, désignés respectivement par S1 et S2. Le segment S1 comporte un secteur Sa et le segment S2 comporte un secteur Sb.
Les secteurs Sa et Sb sont en outre entrelacés. De manière non limitative, on considère que les secteurs Sa et Sb sont chacun de taille mémoire 64 octets.
Tel qu'illustré par la figure 3a, chaque secteur Sa, Sb se décompose en quatre éléments de taille mémoire 16 octets (16 o). L'adresse mémoire physique 0x00000000 correspond au premier élément du premier secteur Sa, l'adresse mémoire physique 0x00000010 correspond au premier élément du second secteur Sb, l'adresse mémoire physique 0x00000020 correspond au second élément du premier secteur Sa, l'adresse mémoire physique 0x00000030 correspond au second élément du second secteur Sb, etc.
La figure 3b représente schématiquement un exemple d'espace d'adressage mémoire virtuel pouvant être associé à la mémoire flash 102.
Dans cet exemple, la plage d'adresses mémoire virtuelles, associée à la plage d'adresses mémoire physique 0x00000000 à 0x0000007F, est comprise entre l'adresse mémoire virtuelle OxAOOOOOOO et l'adresse mémoire virtuelle 0xA000007F. Cette plage d'adresses mémoire virtuelles ne présente préférentiellement pas de recouvrement avec la plage d'adresses mémoire physique réinscriptibles de la mémoire flash 102, afin de pouvoir être facilement détectée au niveau du module esclave Me.
Dans l'exemple illustré par la figure 3b :
• l'adresse mémoire virtuelle OxAOOOOOOO est associée à l'adresse mémoire physique 0x00000000, soit au premier élément du premier secteur Sa, • l'adresse mémoire virtuelle 0xA0000010 est associée à l'adresse mémoire physique 0x00000020, soit au second élément du premier secteur Sa,
• l'adresse mémoire virtuelle 0xA0000020 est associée à l'adresse mémoire physique 0x00000040, soit au troisième élément du premier secteur Sa,
· l'adresse mémoire virtuelle 0xA0000030 est associée à l'adresse mémoire physique 0x00000060, soit au quatrième élément du premier secteur Sa.
Ainsi les adresses mémoire virtuelles de la plage d'adresses mémoire virtuelles s'étendant de OxAOOOOOOO à 0xA000003F (adresse mémoire virtuelle de début OxAOOOOOOO et taille mémoire 64 octets) identifient chacune des adresses mémoire physiques dudit premier secteur Sa. On comprend donc qu'une requête d'effacement de la plage d'adresses mémoire virtuelles OxAOOOOOOO à 0xA000003F peut être interprétée sans ambiguïté comme visant à effacer uniquement le contenu du premier secteur Sa. Dans ce cas, le module esclave Me efface le contenu des éléments de taille 16 octets d'adresses mémoire physiques 0x00000000, 0x00000020, 0x00000040, et 0x00000060.
De manière analogue :
• l'adresse mémoire virtuelle 0xA0000040 est associée à l'adresse mémoire physique 0x00000010, soit au premier élément du second secteur Sb,
• l'adresse mémoire virtuelle 0xA0000050 est associée à l'adresse mémoire physique 0x00000030, soit au second élément du second secteur Sb,
· l'adresse mémoire virtuelle 0xA0000060 est associée à l'adresse mémoire physique 0x00000050, soit au troisième élément du second secteur Sb,
• l'adresse mémoire virtuelle 0xA0000070 est associée à l'adresse mémoire physique 0x00000070, soit au quatrième élément du second secteur Sb.
Ainsi les adresses mémoire virtuelles de la plage d'adresses mémoire virtuelles s'étendant de 0xA0000040 à 0xA000007F (adresse mémoire virtuelle de début 0xA0000040 et taille mémoire 64 octets) identifient chacune des adresses mémoire physiques du second secteur Sb. On comprend donc qu'une requête d'effacement de la plage d'adresses mémoire virtuelles 0xA0000040 à 0xA000007F peut être interprétée sans ambiguïté comme visant à effacer uniquement le contenu du second secteur Sb. Dans ce cas, le module esclave Me efface le contenu des éléments de taille 16 octets d'adresses mémoire physiques 0x00000010, 0x00000030, 0x00000050 et 0x00000070.
Pour effacer le contenu à la fois du premier secteur Sa et du second secteur Sb, une première requête d'effacement pourra indiquer la plage d'adresses mémoire virtuelles OxAOOOOOOO à 0xA000003F tandis qu'une seconde requête d'effacement pourra indiquer la plage d'adresses mémoire virtuelles 0xA0000040 à 0xA000007F. Ces deux requêtes d'effacement visant respectivement le premier segment S1 et le second segment S2, les opérations d'effacement correspondantes pourront être effectuées en parallèle.
Il est à noter que, dans l'exemple illustré par les figures 3a et 3b, si les opérations d'effacement ne doivent pas nécessairement être effectuées en parallèle, rien n'exclut, pour effacer le contenu du premier secteur Sa et du second secteur Sb, d'envoyer une seule requête d'effacement indiquant la plage d'adresses mémoire virtuelles OxAOOOOOOO à OxAOOOOOTF.
La première fonction de correspondance qui sera utilisée par le module esclave Me peut par exemple être mémorisée sous la forme d'une table de correspondance qui peut alors s'exprimer comme suit :
Figure imgf000013_0001
On comprend que d'autres formats sont possibles pour la première table de correspondance, et qu'un choix particulier de format ne constitue qu'une variante de mise en œuvre du procédé 50 d'effacement.
La figure 4 représente schématiquement les principales étapes d'un mode préféré de mise en œuvre du procédé 50 d'effacement.
Les étapes 500, 501 préalables du procédé 50 d'effacement sont représentées dans la partie supérieure de la figure 4.
Pour effacer le contenu d'un ou de plusieurs secteurs de la mémoire flash 102, le procédé 50 d'effacement comporte plusieurs étapes. Les étapes représentées dans la partie gauche de la figure 4 sont exécutées par le module maître Mm, tandis que les étapes représentées dans la partie droite de la figure 4 sont exécutées par le module esclave Me.
Le procédé 50 d'effacement comporte tout d'abord une étape 512 d'envoi, par le module maître Mm, d'une requête d'effacement. La requête d'effacement indique une ou plusieurs plages d'adresses mémoire virtuelles.
Le procédé 50 d'effacement comporte ensuite une étape 520 de réception, par le module esclave Me, de la requête d'effacement.
De préférence, le module esclave Me exécute ensuite une étape 521 de détection d'utilisation de plage d'adresse mémoire virtuelle.
La requête d'effacement ayant été envoyée en indiquant plage d'adresses mémoire virtuelles, le module esclave Me détecte (référence 521 a sur la figure 4) que la première fonction de correspondance doit être utilisée pour déterminer le ou les secteurs dont le contenu doit être effacé.
Le procédé 50 d'effacement comporte ensuite l'étape 522 de détermination du ou des secteurs associés à chacune des plages d'adresses mémoire virtuelles indiquées dans la requête d'effacement, d'après la première fonction de correspondance.
Le procédé 50 de reprogrammation comporte ensuite une étape 523 d'effacement du contenu du ou des secteurs déterminés d'après la première fonction de correspondance.
De préférence, si la plage d'adresses mémoire virtuelles indiquée est erronée en ce qu'elle n'englobe pas un ou plusieurs secteurs complets, le module esclave Me pourra le détecter d'après la première fonction de correspondance et rejeter la requête d'effacement (éventuellement en le notifiant au module maître Mm). Cette étape de détermination si la plage d'adresses mémoire virtuelles est correcte et, le cas échéant, cette étape de rejet de la requête d'effacement ne sont pas représentées sur les figures.
Si la requête d'effacement avait été envoyée par le module maître en indiquant une plage d'adresses mémoire physiques, l'étape 521 de détection aurait déterminé que la plage d'adresses mémoire utilisée n'était pas une plage d'adresses mémoire virtuelles (référence 521 b sur la figure 4), conduisant directement à l'exécution de l'étape 523 d'effacement du contenu du ou des secteurs associés à la plage d'adresses mémoire physiques indiquée (par exemple dans le cas de secteurs non entrelacés).
Suite à l'envoi d'une requête d'effacement, le procédé 50 d'effacement comporte une étape 513, exécutée par le module maître Mm, de détermination si d'autres requêtes d'effacement doivent être envoyées. Si aucune autre requête d'effacement ne doit être envoyée (référence 513a sur la figure 4), l'exécution du procédé 50 d'effacement prend fin.
Si d'autres requêtes d'effacement doivent être envoyées (référence 513b sur la figure 4), l'étape 512 d'envoi est à nouveau exécutée pour l'envoi de la requête d'effacement suivante. Les étapes suivantes du procédé, côté module esclave Me, sont alors à nouveau exécutées pour la nouvelle requête d'effacement.
Il est à noter que le module esclave Me est intégré dans le calculateur 10 électronique. Le module maître Mm peut être soit intégré dans le calculateur 10 électronique, soit intégré dans un outil 20 de reprogrammation externe au calculateur 10 électronique et connecté à celui-ci par l'intermédiaire d'un bus de communication (CAN, Ethernet, etc.).
La figure 5 représente schématiquement les principales étapes d'une variante préférée de mise en œuvre du procédé 50 d'effacement de la figure 4, dans le cas où un outil 20 de reprogrammation externe envoie des requêtes d'effacement au module maître Mm intégré dans le calculateur 10 électronique.
Dans cette variante de mise en œuvre, on considère que la mémoire flash 102 mémorise plusieurs composants logiciels qui peuvent éventuellement être effacés, et l'outil 20 de reprogrammation envoie des requêtes d'effacement indiquant des composants logiciels à effacer.
Ceci est avantageux car, de la sorte, l'outil 20 de reprogrammation n'a besoin de connaître que les différents composants logiciels qui peuvent être effacés, et n'a besoin de connaître ni l'espace d'adressage mémoire virtuel ni l'organisation des secteurs de la mémoire flash 102.
A cet effet, outre toutes les étapes décrites en référence à la figure 4, le procédé 50 d'effacement illustré par la figure 5 comporte une étape 502 préalable d'établissement d'une seconde fonction de correspondance permettant de déterminer, pour chaque composant logiciel pouvant être effacé, la ou les plages d'adresses virtuelles associées à un composant logiciel donné.
Le procédé 50 d'effacement comporte également une étape 530 d'envoi, par l'outil 20 de reprogrammation, d'une requête d'effacement d'un composant logiciel au module maître Mm.
Le procédé 50 d'effacement comporte également une étape 510 de réception, par le module maître Mm, de la requête d'effacement envoyée par l'outil 20 de reprogrammation.
Le procédé 50 d'effacement comporte ensuite une étape 51 1 de conversion, par le module maître Mm et d'après la seconde fonction de correspondance, de la requête d'effacement du composant logiciel en une requête d'effacement de plage d'adresses mémoire virtuelles associée à ce composant logiciel, qui est ensuite envoyée au module esclave Me au cours de l'étape 512 d'envoi.
Il est à noter que, au cours de l'étape 51 1 de conversion, le module maître Mm peut convertir la requête d'effacement de composant logiciel en une ou plusieurs requêtes d'effacement indiquant chacune une ou plusieurs plages d'adresses mémoire virtuelles.
La présente invention concerne également un support de mémorisation d'informations, en l'occurrence la mémoire non volatile 103, dans lequel est mémorisé un logiciel de reprogrammation comportant un module esclave Me adapté à mettre en œuvre des étapes du procédé 50 d'effacement.
Ainsi le module esclave Me comporte des instructions de code de programme qui, lorsqu'elles sont exécutées par le microprocesseur 101 , mettent en œuvre notamment les étapes 520 de réception, 522 de détermination de secteur à effacer et 523 d'effacement. Le cas échéant, le module esclave Me comporte également des instructions dont l'exécution permet de mettre en œuvre l'étape 521 de détection.
Le cas échéant, le logiciel de reprogrammation, mémorisé dans le support de mémorisation, comporte également un module maître Mm adapté à mettre en œuvre des étapes du procédé 50 d'effacement.
Ainsi le module maître Mm comporte des instructions de code de programme qui, lorsqu'elles sont exécutées par le microprocesseur 101 , mettent en œuvre les étapes 512 d'envoi de requête d'effacement et 513 de détermination si d'autres requêtes d'effacement doivent être envoyées. Le cas échéant, le module maître Mm comporte également des instructions dont l'exécution permet de mettre en œuvre les étapes 510 de réception et 51 1 de conversion.
Le support de mémorisation mémorise également la première fonction de correspondance et, le cas échéant, la seconde fonction de correspondance.
La présente invention concerne également un calculateur 10 électronique de véhicule automobile comportant un support de mémorisation tel que décrit ci-avant.
De manière plus générale, la portée de la présente invention ne se limite pas aux modes de mise en œuvre et de réalisation décrits ci-dessus à titre d'exemples non limitatifs, mais s'étend au contraire à toutes les modifications à la portée de l'homme de l'art.
Notamment, on comprend que d'autres formats sont possibles pour chacune des première et seconde fonctions de correspondance qu'une table de correspondance, et qu'un choix particulier de format ne constitue qu'une variante de mise en œuvre du procédé 50 d'effacement. La première fonction de correspondance peut notamment se présenter sous la forme d'instructions de code de programme à exécuter pour déterminer le ou les secteurs associés à une plage d'adresses mémoire virtuelles indiquée dans une requête d'effacement. De même, la seconde fonction de correspondance peut se présenter sous la forme d'instructions de code de programme à exécuter pour déterminer la ou les plages d'adresses mémoire virtuelles associées à un composant logiciel indiqué dans une requête d'effacement.
La description ci-avant illustre clairement que par ses différentes caractéristiques et leurs avantages, la présente invention atteint les objectifs qu'elle s'était fixés.
En particulier, du fait de l'utilisation d'un espace d'adressage mémoire virtuel dans lequel les secteurs de la mémoire flash 102 ne sont pas entrelacés, les secteurs à effacer peuvent être identifiés de manière non ambiguë, limitant les risques d'effacer un ou plusieurs secteurs par erreur.

Claims

REVENDICATIONS
1. Procédé (50) d'effacement d'informations mémorisées dans une mémoire réinscriptible non volatile (102) d'un calculateur (10) électronique, dans lequel un module maître (Mm) envoie des requêtes d'effacement à un module esclave (Me) dudit calculateur (10) électronique, ladite mémoire réinscriptible non volatile (102) étant organisée en secteurs (Sa, Sb) correspondant à la plus petite unité mémoire pouvant faire l'objet d'une opération d'effacement, au moins deux secteurs comportant des adresses mémoire physiques entrelacées, caractérisé en ce que ledit procédé comporte les étapes préalables suivantes :
• (500) : détermination d'un espace d'adressage mémoire virtuel associé à la mémoire réinscriptible non volatile (102), dans lequel chaque secteur s'étend sur une plage spécifique d'adresses mémoire virtuelles consécutives,
• (501 ) : établissement d'une première fonction de correspondance permettant de déterminer, pour chaque plage d'adresses mémoires virtuelles de l'espace d'adressage mémoire virtuel, le ou les secteurs associés à une plage d'adresses mémoire virtuelles,
en ce que le procédé (50) d'effacement comporte, pour chaque requête d'effacement reçue par le module esclave (Me) indiquant une plage d'adresses mémoire virtuelles, une étape (522) de détermination, d'après la première fonction de correspondance et de la plage d'adresses mémoires virtuelles indiquée, du ou des secteurs dont le contenu doit être effacé par le module esclave (Me),
en ce que :
• la mémoire réinscriptible non volatile comporte plusieurs segments (S1 , S2), chaque segment se décomposant en plusieurs secteurs et au moins deux segments comportant des adresses mémoire physiques entrelacées,
· chaque requête d'effacement envoyée par le module maître (Mm) est envoyée en indiquant une plage d'adresses mémoire virtuelles ne correspondant qu'à un seul segment (S1 , S2) de la mémoire réinscriptible non volatile (102),
et en ce que deux requêtes d'effacement consécutives envoyées par le module maître (Mm) indiquent respectivement des plages d'adresses mémoire virtuelles correspondant à des segments différents de la mémoire réinscriptible non volatile (102), ces deux requêtes d'effacement consécutives visant respectivement un premier segment (S1 ) et un second segment (S2), les opérations d'effacement correspondantes étant effectuées en parallèle.
2. Procédé (50) selon la revendication 1 , caractérisé en ce que la plage d'adresses mémoire virtuelles est sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible non volatile (102), et en ce que le procédé comporte une étape (521 ) de détection d'utilisation d'une plage d'adresses mémoire virtuelles, l'étape (522) de détermination de secteur n'étant exécutée que si une plage d'adresses mémoire virtuelles a été détectée.
3. Procédé (50) selon l'une quelconque des revendications précédentes, caractérisé en ce que, plusieurs composants logiciels étant mémorisés dans la mémoire réinscriptible non volatile (102), ledit procédé comporte :
· une étape (502) préalable d'établissement d'une seconde fonction de correspondance permettant de déterminer, pour chaque composant logiciel pouvant être effacé, la ou les plages d'adresses mémoire virtuelles associées à un composant logiciel,
• une étape (530) d'envoi, par un outil (20) de reprogrammation connecté au calculateur électronique, d'une requête d'effacement d'un composant logiciel au module maître (Mm),
• une étape (51 1 ) de conversion, par le module maître (Mm) et d'après la seconde fonction de correspondance, de la requête d'effacement de composant logiciel en requête d'effacement de plage d'adresses mémoire virtuelles.
4. Support (103) de mémorisation d'informations d'un calculateur (10) électronique, mémorisant un module esclave (Me) adapté à effectuer des opérations d'effacement du contenu d'adresses mémoire physiques d'une mémoire réinscriptible non volatile (102) organisée en secteurs correspondant à la plus petite unité mémoire pouvant faire l'objet d'une opération d'effacement, caractérisé en ce qu'il mémorise une première fonction de correspondance permettant de déterminer, pour chaque plage d'adresses mémoires virtuelles d'un espace d'adressage mémoire virtuel prédéfini, le ou les secteurs associés à une plage d'adresses mémoire virtuelles, le module esclave (Me) comportant des instructions qui, lorsqu'elles sont exécutées par ledit calculateur (10) électronique, déterminent, à partir de la première fonction de correspondance et d'une plage d'adresses mémoire virtuelle indiquée dans une requête d'effacement reçue par ledit module esclave, le ou les secteurs dont le contenu doit être effacé,
en ce que la plage d'adresses mémoire virtuelles est sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible non volatile, et en ce que le module esclave (Me) est configuré pour n'exécuter les instructions de détermination de secteur d'après la première fonction de correspondance que si une plage d'adresses mémoire virtuelles a été détectée.
5. Support (103) de mémorisation selon la revendication 4, caractérisé en ce qu'il mémorise :
« un module maître (Mm) configuré pour envoyer des requêtes d'effacement au module esclave (Me),
• une seconde fonction de correspondance permettant de déterminer, pour chaque composant logiciel mémorisé dans la mémoire réinscriptible non volatile, la ou les plages d'adresses mémoire virtuelles associées à un composant logiciel, et en ce que le module maître (Mm) comporte des instructions qui, lorsqu'elles sont exécutées par le calculateur électronique, convertissent, d'après la seconde fonction de correspondance, une requête d'effacement de composant logiciel reçue par ledit module maître en une requête d'effacement de plage d'adresses mémoire virtuelles.
6. Calculateur (10) électronique, caractérisé en ce qu'il comporte un support (103) de mémorisation d'informations selon l'une quelconque des revendications 4 ou 5.
PCT/EP2012/004070 2011-09-29 2012-09-28 Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile Ceased WO2013045101A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201280047582.8A CN103999059B (zh) 2011-09-29 2012-09-28 将存储在非易失性可重写存储器和机动车辆的计算器中的信息擦除的方法
US14/346,070 US9311235B2 (en) 2011-09-29 2012-09-28 Method of erasing information stored in a nonvolatile rewritable memory, storage medium and motor vehicle computer
RU2014117177A RU2607240C2 (ru) 2011-09-29 2012-09-28 Способ стирания информации, хранящейся в энергонезависимой перезаписываемой памяти, носитель хранения и компьютер моторного транспортного средства

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1102955A FR2980905B1 (fr) 2011-09-29 2011-09-29 Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile
FR1102955 2011-09-29

Publications (1)

Publication Number Publication Date
WO2013045101A1 true WO2013045101A1 (fr) 2013-04-04

Family

ID=46968141

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2012/004070 Ceased WO2013045101A1 (fr) 2011-09-29 2012-09-28 Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile

Country Status (5)

Country Link
US (1) US9311235B2 (fr)
CN (1) CN103999059B (fr)
FR (1) FR2980905B1 (fr)
RU (1) RU2607240C2 (fr)
WO (1) WO2013045101A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2703357C2 (ru) * 2018-04-02 2019-10-16 Общество с ограниченной ответственностью "НеоБИТ" Способ защиты данных в системах конференцсвязи

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5873401B2 (ja) * 2012-07-06 2016-03-01 株式会社ケーヒン 電子制御装置及びデータ書換えシステム
FR3029047B1 (fr) * 2014-11-26 2016-12-23 Peugeot Citroen Automobiles Sa Procede de communication entre un outil de production et un vehicule automobile
CN106843892A (zh) * 2017-02-07 2017-06-13 上海与德信息技术有限公司 一种重写Flash的方法及装置
CN107729989B (zh) * 2017-07-20 2020-12-29 安徽寒武纪信息科技有限公司 一种用于执行人工神经网络正向运算的装置及方法
RU184009U1 (ru) * 2018-05-31 2018-10-11 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Система удаления остаточной информации из памяти терминалов и серверов многоточечной конференцсвязи
CN111061649B (zh) * 2019-10-28 2023-09-29 宁波三星智能电气有限公司 一种存储器的存储空间自适应分配方法
CN112199039B (zh) * 2020-09-04 2022-08-05 星宸科技股份有限公司 虚拟存储管理方法及处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1739683A1 (fr) * 1999-04-01 2007-01-03 Lexar Media, Inc. Gestion de l'espace pour la gestion de la mémoire non volatile de haute capacité
US20070113030A1 (en) * 2005-11-14 2007-05-17 Sandisk Corporation Methods for the management of erase operations in non-volatile memories

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1228510B1 (fr) * 1999-04-01 2006-09-20 Lexar Media, Inc. Gestion d'espace pour la gestion d'une memoire non volatile haute capacite
US6948026B2 (en) * 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
US7139892B2 (en) * 2003-05-02 2006-11-21 Microsoft Corporation Implementation of memory access control using optimizations
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
ATE518190T1 (de) * 2005-12-09 2011-08-15 Sandisk Il Ltd Verfahren zur flash-speicher-verwaltung
CN100470506C (zh) * 2007-06-08 2009-03-18 马彩艳 基于sector访问的flash存储器的存储管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1739683A1 (fr) * 1999-04-01 2007-01-03 Lexar Media, Inc. Gestion de l'espace pour la gestion de la mémoire non volatile de haute capacité
US20070113030A1 (en) * 2005-11-14 2007-05-17 Sandisk Corporation Methods for the management of erase operations in non-volatile memories

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2703357C2 (ru) * 2018-04-02 2019-10-16 Общество с ограниченной ответственностью "НеоБИТ" Способ защиты данных в системах конференцсвязи

Also Published As

Publication number Publication date
CN103999059A (zh) 2014-08-20
US9311235B2 (en) 2016-04-12
CN103999059B (zh) 2017-02-22
FR2980905B1 (fr) 2014-03-14
RU2607240C2 (ru) 2017-01-10
FR2980905A1 (fr) 2013-04-05
US20140244919A1 (en) 2014-08-28
RU2014117177A (ru) 2015-11-10

Similar Documents

Publication Publication Date Title
WO2013045101A1 (fr) Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile
EP1151384B1 (fr) Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti- usure d'une memoire
TWI490694B (zh) 判定資料可得性之方法及系統,以及記憶體介面
US8924632B2 (en) Faster tree flattening for a system having non-volatile memory
TWI659318B (zh) 用於儲存一致性之系統、設備及方法
US8984219B2 (en) Data storage device and method of writing data in the same
US20080270730A1 (en) Method for efficient storage of metadata in flash memory
US10678446B2 (en) Bitmap processing for log-structured data store
TW201232258A (en) Memory system and operation method thereof
EP2310941A1 (fr) Procede et dispositif de mise a jour d'application informatique
TW201019107A (en) Method for managing a memory apparatus, and associated memory apparatus thereof
FR3023030A1 (fr)
FR3033061A1 (fr)
CN1786916A (zh) 安全引导设备和方法
CN103324892A (zh) 一种Android系统显示文件的方法及装置
WO2013064464A1 (fr) Procede et systeme d'association d'un equipement avec une passerelle
EP3147811B1 (fr) Stockage et lecture d'un code d'authentification de message dans une mémoire externe
FR3074317B1 (fr) Procede d'acces a une zone memoire non volatile de type flash d'un element securise, tel qu'une carte a puce
EP3522020B1 (fr) Gestion d'une mémoire non volatile
EP2383746B1 (fr) Procédé d'écriture et de lecture dans une mémoire d'atomicité
EP4657301A1 (fr) Procede de mise a jour d'une donnee de securite stockee dans une memoire d'un microcontroleur
EP1969605B1 (fr) Procede de gestion de donnees destinees a etre ecrites et lues dans une memoire
Kim et al. High performance and high reliable file system for car digital video recorders
FR2933803A1 (fr) Dispositif et procede de sauvegarde de donnees sur des supports de memoire non volatile, de type flash nand, destines a des calculateurs embarques
FR3100073A1 (fr) Procédé de sécurisation d’un calculateur de véhicule automobile

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12766896

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14346070

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2014117177

Country of ref document: RU

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 12766896

Country of ref document: EP

Kind code of ref document: A1