Brevet FR3026870A1 — publié le 20160408

La présente invention concerne un dispositif et un procédé de stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type. Le stockage de données et la récupération des données dans des mémoires électroniques sont parfois sujets à des erreurs liées à l'écriture, la lecture et parfois aux mémoires électroniques elles mêmes. Ces erreurs, générant des pertes sur les données stockées, peuvent avoir des conséquences non négligeables. De plus, il est important de pouvoir détecter le plus rapidement possible la défaillance du moyen de stockage lorsque celui-ci vient à se dégrader de manière à prendre des mesures adéquates. Ceci est particulièrement le cas lorsque les données sont des données associées au fonctionnement d'un aéronef et dont la quantité augmente continuellement. La demande de brevet français publiée sous le numéro FR3001818 divulgue un dispositif de duplication de données sur des dispositifs de stockage différents. Dans l'aéronautique, sont prévues des normes qui qualifient le niveau d'assurance qualité des équipements. Le niveau d'assurance qualité ou DAL, acronyme de « Design Assurance Level en anglais» d'un équipement avionique définit les exigences relatives à son niveau. Les niveaux de DAL sont par exemple définis dans le document Eurocae ED- 79/SAE ARP 4754A. Ce document définit cinq niveaux de qualité de DAL-A à DAL-E par ordre décroissant d'assurance qualité. Le niveau DAL-A correspond au niveau de qualité le plus important et le niveau DAL-E correspond au niveau de qualité le moins important. Les équipements de niveau de DAL-A sont utilisés pour des fonctions avioniques critiques pour l'aéronef, tandis que les équipements de niveau de DAL-E sont utilisés pour des fonctions n'ayant aucun impact sur la sûreté de l'aéronef Les niveaux de qualité élevés rendent bien souvent impossible l'utilisation des moyens de stockage modernes de forte capacité. Ces moyens de stockage comportent bien souvent des contrôleurs et des logiciels embarqués peu accessibles et peu qualifiables qualitativement. La présente invention a pour but de résoudre les inconvénients de l'art antérieur en proposant un dispositif et un procédé qui permettent de garantir un niveau de qualité élevé dans le fonctionnement des dispositifs de stockage même si ceux-ci ont un niveau de qualité inférieur au niveau de qualité requis. A cette fin, selon un premier aspect, l'invention propose un dispositif de stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type, le au moins dispositif de stockage du premier type étant physiquement distinct du dispositif de stockage du second type, caractérisé en ce que le dispositif comporte : - des moyens de partitionnement des données à stocker en blocs de données, - des moyens de détermination de redondances générées par un code détecteur d'erreurs pour chaque bloc de données, - des moyens de stockage des blocs de données dans le au moins un dispositif de stockage du premier type, le ou les dispositifs de stockage du premier type étant conformes à un niveau d'assurance qualité avionique d'un niveau de qualité donné, - des moyens de stockage des redondances dans le dispositif de stockage du second type, le dispositif de stockage du second type étant conforme à un niveau d'assurance qualité avionique supérieur au niveau d'assurance qualité avionique du ou des dispositifs de stockage de premier type. La présente invention concerne aussi un procédé de stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type, le au moins dispositif de stockage du premier type étant physiquement distinct du dispositif de stockage du second type, caractérisé en ce que le procédé comporte les étapes de : - partitionnement des données à stocker en blocs de données, - détermination de redondances générées par un code détecteur d'erreurs pour chaque bloc de données, - stockage des blocs de données dans le au moins un dispositif de stockage du premier type, le ou les dispositifs de stockage du premier type étant conformes à un niveau d'assurance qualité avionique d'un niveau de qualité donné, - stockage des redondances dans le dispositif de stockage du second type, le dispositif de stockage du second type étant conforme à un niveau d'assurance qualité avionique supérieur au niveau d'assurance qualité avionique du ou des dispositifs de stockage de premier type. La présente invention concerne aussi un dispositif de gestion du stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type, le au moins dispositif de stockage du premier type étant physiquement distinct du dispositif de stockage du second type, dans lequel le dispositif comporte : - un processeur configure pour partitionner des données à stocker en blocs de données, - un processeur configure pour déterminer des redondances générées par un code détecteur d'erreurs pour chaque bloc de données, - un processeur configure pour stocker des blocs de données dans le au moins un dispositif de stockage du premier type, le ou les dispositifs de stockage du premier type étant conformes à un niveau d'assurance qualité avionique d'un niveau de qualité donné, - un processeur configure pour stocker des redondances dans le dispositif de stockage du second type, le dispositif de stockage du second type étant conforme à un niveau d'assurance qualité avionique supérieur au niveau d'assurance qualité avionique du ou des dispositifs de stockage de premier type. Ainsi, il est possible de garantir un niveau de qualité élevé dans le contrôle du bon fonctionnement de dispositifs de stockage du premier type même si ceux-ci sont d'un niveau de qualité inférieur au niveau requis.. En utilisant un dispositif de stockage du second type conforme à un niveau d'assurance qualité avionique élevé pour stocker les redondances, le niveau global de qualité pour le contrôle du bon fonctionnement de dispositifs de stockage du premier type même est amélioré. Selon un mode particulier de l'invention, le dispositif de gestion du stockage de données comporte en outre : - des moyens de lecture, tel qu'un processeur arrangé pour lire, d'un bloc de données dans le au moins un dispositif de stockage du premier type, - des moyens de lecture, tel qu'un processeur arrangé pour lire, dans le dispositif de stockage du second type de la redondance correspondant au bloc de données lues, - des moyens de vérification, tel qu'un processeur arrangé pour vérifier, de la compatibilité des redondances lues avec les données du bloc de données lues, - des moyens de validation, tel qu'un processeur arrangé pour valider, des données du bloc de données lu si les redondances lues et les données du bloc de données sont compatibles. Selon un mode particulier de l'invention, le dispositif de gestion du stockage de données comporte en outre des moyens de stockage, tel qu'un processeur arrangé pour stocker, dans le dispositif de stockage du second type, d'une information identifiant le code détecteur d'erreurs parmi une pluralité de codes correcteurs d'erreurs. Selon un mode particulier de l'invention, le dispositif de gestion du stockage de données comporte en outre des moyens de lecture, tel qu'un processeur configure pour lire, dans le dispositif de stockage du second type de l'information identifiant le code détecteur d'erreurs parmi une pluralité de codes détecteurs d'erreurs. Selon un mode particulier de l'invention, le code détecteur d'erreurs est apte à corriger au moins une erreur et le dispositif de gestion du stockage de données comporte en outre : - des moyens de correction, tels qu'un processeur arrangé pour corriger des données du bloc de données lu si les redondances lues et les données du bloc de données ne sont pas compatibles, - des moyens de détermination, tels qu'un processeur arrangé pour déterminer que les données du bloc de données lu sont erronées si les données du bloc de données lu ne sont pas corrigeables par les redondances. Selon un mode particulier de l'invention, le dispositif de gestion du stockage de données comporte en outre des moyens de lecture, tels qu'un processeur arrangé pour lire, dans le dispositif de stockage du second type de l'information identifiant le code correcteur parmi une pluralité de codes correcteurs d'erreurs. Selon un mode particulier de l'invention, le dispositif de stockage du second type a une capacité de stockage inférieure à la capacité de stockage du au moins un dispositif de stockage du premier type. La présente invention concerne aussi un aéronef qui comporte le dispositif de gestion du stockage de données sur au moins un dispositif de stockage d'un premier type et un dispositif de stockage d'un second type selon la présente invention. L'invention concerne aussi les programmes d'ordinateur stockés sur un support d'informations, lesdits programmes comportant des instructions permettant de mettre en oeuvre les procédés précédemment décrits, lorsqu'ils sont chargés et exécutés par un dispositif informatique. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : la Fig. 1 représente un aéronef comportant un dispositif de gestion du stockage de données selon un mode de réalisation de l'invention ; la Fig. 2 représente un exemple d'architecture d'un dispositif de gestion du stockage de données selon un mode de réalisation de l'invention; la Fig. 3 représente un algorithme de gestion du stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type ; la Fig. 4 représente un algorithme de lecture de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type. La Fig. 1 représente un aéronef comportant un dispositif de gestion du stockage de données selon un mode de réalisation de l'invention. Le dispositif de gestion du stockage de données 20 est placé dans l'aéronef 10 par exemple dans la cabine de pilotage de l'aéronef ou dans une zone sécurisée non accessible par les passagers de l'aéronef La Fig. 2 représente un exemple d'architecture d'un dispositif de stockage de données un mode de réalisation de l'invention. Le dispositif de gestion du stockage de données 20 comprend : - un processeur, micro-processeur, ou microcontrôleur 200; - une mémoire volatile 203 ; - une mémoire non volatile 202; - une interface 205 avec un réseau de communication, comme par exemple un réseau local par laquelle les données à stocker ou lues sont transférées à un dispositif distant ; - au moins un dispositif de stockage d'un premier type 206 conforme à un niveau d'assurance qualité avionique d'un niveau de qualité DAL-D ou DAL-E tel 30 que défini dans le document Eurocae ED-79/SAE ARP 4754A; - un dispositif de stockage d'un second type 207 conforme à un niveau d'assurance qualité avionique d'un niveau de qualité DAL-A ou DAL-B ou DAL-C tel que défini dans le document Eurocae ED-79/SAE ARP 4754A; - un bus de communication 201 reliant le processeur 200 à la mémoire ROM 203, à la mémoire RAM 203, à l'interface 205, au moins un dispositif de stockage du premier type 206 et au moins un dispositif de stockage du second type 207. Le processeur 200 est capable d'exécuter des instructions chargées dans la mémoire volatile 203 à partir de la mémoire non volatile 202, d'une mémoire externe (non représentée) ou d'un réseau de communication. Lorsque le dispositif de gestion du stockage de données 20 est mis sous tension, le processeur 200 est capable de lire de la mémoire volatile 203 des instructions et de les exécuter. Ces instructions forment un programme d'ordinateur qui cause la mise en oeuvre, par le processeur 200, de tout ou partie du procédé décrit en relation avec la Fig. 3 ou 4. Tout ou partie du procédé décrit en relation avec la Fig. 3 ou 4 peut être implémenté sous forme logicielle par exécution d'un ensemble d'instructions par une machine programmable, tel qu'un DSP (Digital Signal Processor en anglais ou Unité de Traitement de Signal Numérique en français) ou un microcontrôleur ou être implémenté sous forme matérielle par une machine ou un composant dédié, tel qu'un FPGA (Field-Programmable Gate Array en anglais ou Matrice de Portes Programmable sur le Terrain en français) ou un ASIC (Application-Specific Integrated Circuit en anglais ou Circuit Intégré Spécifique à une Application en français). Le ou les dispositifs de stockage du premier type 206 a ou ont une capacité de stockage supérieure à celle du dispositif de stockage du second type 207. Un dispositif de stockage du premier type 206 est par exemple, une mémoire du type SSD, acronyme de « Solid State Drive » ou SD, acronyme de Secure Digital, ou eMMC, acronyme de « MultiMedia Card » ou un ensemble de mémoires associées à un dispositif de génération de redondance, par exemple de type RAID, acronyme de « Redundant Arrays of Inexpensive Disks ». Un dispositif de stockage du second type 207 est par exemple, une mémoire de type nvRAm ou MRAM, acronyme de « Magnetic Random Access Memory » ou EEPROM, acronyme de « Electrically Erasable Programmable Read-Only Memory » 30 ou FLASH. La Fig. 3 représente un algorithme de gestion du stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type. Plus précisément, le présent algorithme est exécuté par le processeur 200 du dispositif de gestion du stockage de données 20 à chaque fois que des données sont à stocker. A l'étape E30, le processeur 200 reçoit de l'interface 205 des données à stocker et partitionne les données en blocs de données. La taille des blocs est un compromis entre la taille nécessaire au stockage des redondances qui vont être générées par le code détecteur d'erreurs, et le niveau d'assurance qualité avionique du dispositif de stockage du premier type 206. Le code détecteur d'erreurs est dans un mode particulier de réalisation un code correcteur d'erreurs. Plus la taille des blocs de données est importante, plus la taille nécessaire au stockage des redondances qui sont générées par le code détecteur d'erreurs dans le dispositif de stockage du second type 207 est réduite. Plus la taille des blocs de données est importante, plus le risque d'une impossibilité de correction, lorsque le code détecteur d'erreurs est apte à corriger au moins une erreur, d'au moins une erreur dans les données d'un bloc est élevé. En effet, un code correcteur d'erreurs permet la correction d'un nombre prédéterminé d'erreurs dans un bloc de données. De plus, plus la taille des blocs de données est importante, plus la lecture et l'écriture de données de petite taille sont complexes. Par exemple et de manière non limitative, un bloc de données a une taille de huit kilo octets. Selon un mode particulier de réalisation, le processeur 200 sélectionne à l'étape suivante E31 un code détecteur d'erreurs parmi une pluralité de codes détecteurs d'erreurs. Par exemple, le code détecteur d'erreurs est choisi en fonction du niveau d'assurance qualité avionique du dispositif de stockage du premier type 206. Par exemple, le code détecteur d'erreurs est code de Hamming. Un code de Hamming est un code détecteur et correcteur linéaire. Il permet la détection et la correction automatique d'une erreur si elle ne porte que sur un bit du bloc de données. Le code de Hamming, pour une longueur de code donnée est le code le plus compact pour une capacité de correction donnée. En ce sens son rendement est maximal. A l'étape suivante E32, le processeur 200 détermine les redondances générées par le code détecteur d'erreurs. A l'étape suivante E33, le processeur 200 commande le stockage de chaque bloc de données dans le au moins un dispositif de stockage du premier type 206. A l'étape suivante E34, le processeur 200 commande le stockage des redondances dans le dispositif de stockage du second type 207. Il est à remarquer ici que le processeur 200 mémorise dans le dispositif de stockage du second type 207, une table associant chaque redondance au bloc de données avec laquelle la redondance a été déterminée. Selon le mode particulier de réalisation, le processeur 200 commande le stockage dans la mémoire de second type d'une information identifiant le code détecteur d'erreurs choisi à l'étape E31. La Fig. 4 représente un algorithme de lecture de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type. Plus précisément, le présent algorithme est exécuté par le processeur 200 du dispositif de gestion du stockage de données 20 à chaque fois que des données doivent être lues et pour chaque bloc comprenant les données devant être lues. A l'étape E40, le processeur 200 lit un bloc de données dans le au moins un dispositif de stockage du premier type 206. Selon un mode particulier de réalisation, le processeur 200 passe à l'étape suivante E41 et lit dans le dispositif de stockage du second type 207, une information identifiant le code détecteur d'erreurs sélectionné à l'étape E31 de la Fig. 3. A l'étape suivante E42, le processeur 200 lit dans le dispositif de stockage du second type 207, les redondances déterminées à partir des données comprises dans le bloc de données lu à l'étape E40. A l'étape suivante E43, le processeur 200 vérifie la compatibilité entre les redondances lues à l'étape E42 et les données comprises dans le bloc de données lu à l'étape E40. Si les redondances lues à l'étape E42 et les données comprises dans le bloc de données lu à l'étape E40 sont compatibles, le processeur 200 passe à l'étape E44 et commande le transfert des données par l'intermédiaire de l'interface réseau 205 ou la mémorisation des données dans la mémoire vive 203. Si les redondances lues à l'étape E42 et les données comprises dans le bloc lu à l'étape E40 ne sont pas compatibles et que le code détecteur est un code correcteur d'erreurs, le processeur 200 passe à l'étape E45. Si le code détecteur n'est pas apte à corriger au moins une erreur, le processeur 200 passe à l'étape E48. A l'étape E45, le processeur 200 vérifie si la redondance permet la correction possible des données lues. Dans l'affirmative, le processeur 200 passe à l'étape E46. Dans la négative, le processeur 200 passe à l'étape E48. A l'étape E46, le processeur 200 corrige l'erreur comprise dans les données lues à l'aide des redondances. A l'étape suivante E47, le processeur 200 commande le stockage du bloc de données corrigé dans le dispositif de stockage du second type 206 et commande le transfert des données corrigées par l'intermédiaire de l'interface réseau 205 ou la 10 mémorisation des données dans la mémoire vive 203. A l'étape E48, le processeur 200 commande le transfert d'un message à l'application ayant demandé la lecture du bloc de données lui indiquant que celui est corrompu. L'application peut notifier la nécessité d'opérer une opération de maintenance ou peut commander une nouvelle mémorisation des données. 15 Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits ici, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. REVENDICATIONS1) Dispositif de gestion du stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type, le au moins dispositif de stockage du premier type étant physiquement distinct du dispositif de stockage du second type, caractérisé en ce que le dispositif comporte : - des moyens de partitionnement (200) des données à stocker en blocs de données, - des moyens de détermination (200) de redondances générées par un code détecteur d'erreurs pour chaque bloc de données, - des moyens de stockage (200) des blocs de données dans le au moins un dispositif de stockage du premier type, le ou les dispositifs de stockage du premier type étant conformes à un niveau d'assurance qualité avionique d'un niveau de qualité donné, - des moyens de stockage (200) des redondances dans le dispositif de stockage du second type, le dispositif de stockage du second type étant conforme à un niveau d'assurance qualité avionique supérieur au niveau d'assurance qualité avionique du ou des dispositifs de stockage de premier type. 2) Dispositif de gestion du stockage de données selon la revendication 1, caractérisé en que le dispositif comporte en outre : - des moyens de lecture (200) d'un bloc de données dans le au moins un dispositif de stockage du premier type, - des moyens de lecture (200) dans le dispositif de stockage du second type de la redondance correspondant au bloc de données lues, - des moyens de vérification (200) de la compatibilité des redondances lues avec les données du bloc de données lues, - des moyens de validation (200) des données du bloc de données lu si les redondances lues et les données du bloc de données sont compatibles. 30 3) Dispositif de gestion du stockage de données selon l'une quelconque des revendications 1 à 2, caractérisé en ce que le dispositif comporte en outre des moyensde stockage (200) dans le dispositif de stockage du second type d'une information identifiant le code détecteur d'erreurs parmi une pluralité de codes détecteurs d' erreurs. 4) Dispositif de gestion du stockage de données selon la revendication 3, caractérisé en ce que le dispositif comporte en outre des moyens de lecture (200) dans le dispositif de stockage du second type de l'information identifiant le code détecteur d'erreurs parmi une pluralité de codes détecteurs d'erreurs. 5) Dispositif de gestion du stockage de données selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le code détecteur d'erreurs est apte à corriger au moins une erreur et le dispositif comporte en outre : - des moyens de correction (200) des données du bloc de données lu si les redondances lues et les données du bloc de données ne sont pas compatibles, - des moyens de détermination (200) que les données du bloc de données lu sont erronées si les données du bloc de données lu ne sont pas corrigeables par les redondances. 6) Dispositif de gestion du stockage de données selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le dispositif de stockage du second type a une capacité de stockage inférieure à la capacité de stockage du au moins un dispositif de stockage du premier type. 7) Dispositif de gestion du stockage de données selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le code détecteur d'erreurs est un code de Hamming. 8) Aéronef caractérisé en ce qu'il comporte un dispositif de gestion du stockage de données selon l'une quelconque des revendications 1 à 7. 9) Procédé de gestion du stockage de données dans au moins un dispositif de stockage d'un premier type et dans un dispositif de stockage d'un second type, le au moins dispositif de stockage du premier type étant physiquement distinct du dispositif de stockage du second type, caractérisé en ce que le procédé comporte les étapes de :- partitionnement des données à stocker en blocs de données, - détermination de redondances générées par un code détecteur d'erreurs pour chaque bloc de données, - stockage des blocs de données dans le au moins un dispositif de stockage du premier type, le ou les dispositifs de stockage du premier type étant conformes à un niveau d'assurance qualité avionique d'un niveau de qualité donné, - stockage des redondances dans le dispositif de stockage du second type, le dispositif de stockage du second type étant conforme à un niveau d'assurance qualité avionique supérieur au niveau d'assurance qualité avionique du ou des dispositifs de stockage de premier type.