DISPOSITIF ELECTRONIQUE A MEMOIRE ET PROCEDES DE COMMANDE D'UN TEL DISPOSITIF MEMORY ELECTRONIC DEVICE AND METHODS FOR CONTROLLING SUCH A DEVICE
La présente invention concerne les dispositifs électroniques à mémoire ainsi qu'un procédé de commande de tels dispositifs.The present invention relates to electronic memory devices and a method for controlling such devices.
On connaît plusieurs types de mémoire dans les dispositifs électroniques : classiquement, on oppose la mémoire vive (en anglais Random-Access-Memory ou RAM) à la mémoire morte (Read-Only-Memory ou ROM). Des données peuvent être écrites ou lues dans la mémoire vive, mais ces données ne sont pas conservées lorsque le dispositif électronique n'est plus alimenté électriquement. Au contraire, les données inscrites dans une mémoire morte sont conservées même sans alimentation électrique, mais ce type de mémoire n'est accessible qu'en lecture.Several types of memory are known in electronic devices: conventionally, the random access memory (in English Random-Access-Memory or RAM) is opposed to the read-only memory (ROM). Data can be written or read in the RAM, but this data is not kept when the electronic device is no longer supplied with electricity. On the contrary, the data written in a read-only memory is kept even without power supply, but this type of memory is only accessible in reading.
Il existe aussi un type de mémoire dénommé mémoire flash qui peut être accédée en lecture et en écriture et qui conserve les données qu'elle stocke même sans alimentation électrique. Le mode de fonctionnement de ce type de mémoire est toutefois plus contraignant : la mémoire flash est organisée en pages ; l'écriture bit à bit ne permet d'écrire qu'une valeur binaire (0 ou 1 suivant le type de mémoire flash, mais pas les deux) ; l'autre valeur binaire (1 ou 0) ne peut être obtenue que par effacement d'une page entière. De plus, les effacements et écritures sont relativement longs et bloquent alors l'accès en lecture de la mémoire.There is also a type of memory called flash memory which can be accessed in read and write mode and which retains the data it stores even without power supply. The mode of operation of this type of memory is however more restrictive: the flash memory is organized in pages; writing bit by bit only allows writing a binary value (0 or 1 depending on the type of flash memory, but not both); the other binary value (1 or 0) can only be obtained by erasing an entire page. In addition, erasures and writes are relatively long and then block access to read memory.
Il a donc été proposé de gérer la mémoire flash avec un dispositif de contrôle et une mémoire vive comme proposé dans la demande de brevet DE 196 23 853. Toutefois, l'utilisation du dispositif de contrôle complique l'architecture du système.It has therefore been proposed to manage the flash memory with a control device and a random access memory as proposed in patent application DE 196 23 853. However, the use of the control device complicates the architecture of the system.
Plus récemment, on a introduit dans les mémoires flash, par exemple dans la mémoire flash "Intel StrataFlash J3"® (références 28FxxxJ3A), une instruction permettant à la mémoire de suspendre l'effacement en cours et de lire des données dans une page autre que celle
de l'effacement en cours (instruction de suspension d'effacement) ainsi qu'une instruction correspondante de suspension d'écriture.More recently, an instruction has been introduced in the flash memories, for example in the "Intel StrataFlash J3" ® flash memory (references 28FxxxJ3A), allowing the memory to suspend the erasure in progress and to read data from another page. than of the erasure in progress (instruction to suspend erasure) as well as a corresponding instruction to suspend writing.
Par lecture de données, on entend notamment lecture de données exécutables qui définissent un programme exécutable par l'unité centrale.By reading data, we mean in particular reading executable data which define a program executable by the central unit.
L'invention vise à utiliser une telle mémoire flash dans un dispositif à mémoire comprenant une unité centrale et une mémoire vive de taille réduite.The invention aims to use such a flash memory in a memory device comprising a central unit and a random access memory of reduced size.
Dans ce but, on propose d'exécuter le code directement dans la mémoire flash, sauf pour le code de gestion des interruptions qui sera placé en mémoire vive.For this purpose, we propose to execute the code directly in the flash memory, except for the interrupt management code which will be placed in RAM.
Le code de gestion des interruptions permet, avant toute exécution de code nécessaire au traitement de l'interruption et présent en mémoire flash, de tester l'état de celle-ci, et de la piloter afin de la rendre accessible en lecture. Le code de gestion des interruptions comprend donc un pilote de la mémoire flash. Des indicateurs (flags) du pilote (driver) mémoire sont mis à jour afin de garder en mémoire l'information « l'opération en cours a été suspendue ». Le code correspondant à l'interruption est exécuté, puis la tâche du pilote mémoire reprend la main. Les indicateurs sont testés afin de savoir si l'opération d'effacement ou d'écriture en cours a été suspendue, et le cas échéant, l'opération est relancée.The interrupt management code makes it possible, before any code execution necessary for processing the interrupt and present in flash memory, to test its state, and to control it in order to make it accessible for reading. The interrupt management code therefore includes a flash memory driver. Indicators (flags) of the memory driver are updated in order to keep in memory the information "the operation in progress has been suspended". The code corresponding to the interrupt is executed, then the task of the memory driver takes over. The indicators are tested in order to know whether the erasing or writing operation in progress has been suspended, and if so, the operation is restarted.
Ce processus est activé chaque fois qu'une interruption est générée par l'unité centrale (CPU).This process is activated each time an interrupt is generated by the central processing unit (CPU).
Autrement dit, on propose un dispositif électronique à mémoire comportant une mémoire vive et une mémoire flash à suspension d'écriture et/ou d'effacement pour accès en lecture, dans lequel la mémoire vive contient un programme de gestion des interruptions commandant ladite suspension.
Un procédé de commande d'un tel dispositif comprend les étapes suivantes :In other words, an electronic memory device is proposed comprising a random access memory and a flash memory with write and / or erase suspension for read access, in which the random access memory contains an interrupt management program controlling said suspension. A method of controlling such a device comprises the following steps:
- commander une écriture dans la mémoire flash ;- order a write in the flash memory;
- générer une interruption ; - exécuter un programme de gestion des interruptions dans la mémoire vive qui comporte notamment les étapes de :- generate an interrupt; - execute a program for managing interruptions in the RAM which includes the steps of:
- suspension de l'écriture dans la mémoire flash ;- suspension of writing to flash memory;
- exécution d'un programme stocké dans la mémoire flash ;- execution of a program stored in the flash memory;
- reprise de l'écriture dans la mémoire flash.- resumption of writing in flash memory.
Un autre procédé de commande d'un tel dispositif comprend les étapes suivantes :Another method of controlling such a device comprises the following steps:
- commander un effacement dans la mémoire flash ;- order an erasure in the flash memory;
- générer une interruption ;- generate an interrupt;
- exécuter un programme de gestion des interruptions dans la mémoire vive qui comporte notamment les étapes de :- execute a program for managing interruptions in the RAM which includes the steps of:
- suspension de l'effacement dans la mémoire flash ;- suspension of erasure in flash memory;
- exécution d'un programme stocké dans la mémoire flash ;- execution of a program stored in the flash memory;
- reprise de l'effacement dans la mémoire flash.- resumption of erasure in flash memory.
Le mode de réalisation décrit est pris à titre d'exemple non limitatif, en référence aux dessins annexés, dans lesquels :The embodiment described is taken by way of nonlimiting example, with reference to the appended drawings, in which:
- la figure 1 représente le procédé utilisé lorsqu'une interruption (IT) se produit lors d'une écriture en mémoire flash ;- Figure 1 shows the method used when an interruption (IT) occurs when writing to flash memory;
- la figure 2 représente le procédé utilisé lorsqu'une interruption (IT) se produit lors d'un effacement en mémoire flash ; - la figure 3 représente un dispositif électronique à mémoire selon les enseignements de l'invention.- Figure 2 shows the method used when an interruption (IT) occurs during an erasure in flash memory; - Figure 3 shows an electronic memory device according to the teachings of the invention.
Un décodeur numérique est un dispositif électronique à mémoire particulier qui permet de convertir un signal codé en numérique en un signal vidéo utilisable par un dispositif d'affichage (par exemple un téléviseur).
Le décodeur numérique comprend une unité centrale 12 liée à une mémoire vive 10 par un premier bus 14 et à une mémoire flash 2 par un second bus 16.A digital decoder is a special electronic device with memory that converts a coded digital signal into a video signal usable by a display device (for example a television). The digital decoder comprises a central unit 12 linked to a random access memory 10 by a first bus 14 and to a flash memory 2 by a second bus 16.
Dans un tel décodeur numérique, on propose de regrouper dans la même mémoire flash 2 des données modifiables 4 lors de l'utilisation par le client et des données exécutables 6 qui ne sont pas modifiées lors de l'utilisation par le client.In such a digital decoder, it is proposed to group in the same flash memory 2 modifiable data 4 during use by the client and executable data 6 which are not modified during use by the client.
Lors de l'initialisation du système, le code de gestion des interruptions 8 (stocké en mémoire flash lorsque le décodeur numérique n'est pas en fonctionnement) est chargé dans la mémoire vive 10.When the system is initialized, the interrupt management code 8 (stored in flash memory when the digital decoder is not in operation) is loaded into the random access memory 10.
Ensuite, l'unité centrale 12 exécute des instructions, pour la plupart issues de code exécutable 6 stocké en mémoire flash.Next, the central processing unit 12 executes instructions, for the most part from executable code 6 stored in flash memory.
Au cours du fonctionnement, il est parfois nécessaire de modifier les données modifiables 4. Dans ce cas, on peut avoir recours à l'écriture et éventuellement même à l'effacement dans la mémoire flash 2 (voir principes de fonctionnement rappelés ci-dessus), qui prennent un certain temps.During operation, it is sometimes necessary to modify the modifiable data 4. In this case, it is possible to have recourse to writing and possibly even erasing in the flash memory 2 (see operating principles recalled above) , which take a while.
Pendant ce temps, si une interruption (IT en abrégé) se produit qui nécessite la lecture de données (notamment exécutables 6) en mémoire flash 2, on a recours au code de gestion des interruptions 8 en mémoire vive 10 (donc toujours accessible) qui gère les suspensions d'écriture et d'effacement comme indiqué respectivement sur les figures 1 et 2.During this time, if an interruption (IT for short) occurs which requires the reading of data (in particular executable 6) in flash memory 2, use is made of the management code of interruptions 8 in random access memory 10 (therefore always accessible) which manages the write and erase suspensions as shown in Figures 1 and 2 respectively.
Plus précisément, comme décrit respectivement aux figure 1 et 2, si une interruption IT a lieu alors qu'une écriture (resp. un effacement) est en cours dans la mémoire flash 2, le test effectué par le code de gestion des interruptions 8 commande alors la suspension de l'écriture (resp. de l'effacement) dans la mémoire flash 8. La mémoire flash 8 est alors disponible en lecture pour accès à la partie du code exécutable 6 nécessaire
au traitement de l'interruption IT. Lorsque l'interruption IT est terminée l'écriture (resp. l'effacement) en mémoire flash reprend.More precisely, as described respectively in FIGS. 1 and 2, if an IT interruption takes place while a writing (resp. An erasure) is in progress in the flash memory 2, the test carried out by the management code of the interruptions 8 commands then the suspension of writing (resp. erasure) in the flash memory 8. The flash memory 8 is then available for reading for access to the part of the executable code 6 necessary IT interruption processing. When the IT interruption is finished writing (resp. Erasing) in flash memory resumes.
Cette solution permet d'avoir accès en lecture à la mémoire flashThis solution provides read access to flash memory
2 à tout moment, et donc de stocker une très grande partie du code exécutable dans la mémoire flash 2, même quand celle-ci contient des données modifiables 4 lors de l'utilisation. La mémoire vive 6 peut ainsi être réduite au minimum.
2 at any time, and therefore to store a very large part of the executable code in the flash memory 2, even when the latter contains modifiable data 4 during use. The RAM 6 can thus be reduced to a minimum.