INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Le déplacement des contenus peut se faire en un seul bloc, signifiant que la mémoire backup 206 est de la même taille que le bloc à déplacer. A titre d’exemple, le contenu du bloc de pages mémoire de données à déplacer est copié dans la mémoire backup 206, puis le contenu de la zone mémoire OS 201, 203, de taille équivalente à celle du bloc de pages mémoire de données à déplacer, est à son tour copié dans les pages mémoire formant ledit bloc dont le contenu est déjà déplacé (donc ce contenu OS écrase l’ancien contenu de données copié en mémoire backup 206), enfin le contenu en mémoire backup 206 est recopié dans les pages mémoire de la zone mémoire OS 201, 203. En variante, ce peut être le contenu de l’ensemble des pages mémoire OS mémorisant le système d’exploitation qui est d’abord copié en mémoire backup 206. Dans une autre variante, cela peut être l’ensemble de la première zone, formée des pages mémoires OS qui est copié en mémoire backup 206. Dans une autre variante, la mémoire backup 206 peut être doublée et recevoir une copie des deux contenus à intervertir, avant recopies interverties sur les pages mémoire initiales.
En variante, le déplacement peut être réalisé en sous-blocs. Cela permet d’utiliser une taille de mémoire backup 206 réduite. Un sous-bloc peut notamment ne contenir qu’une seule page mémoire (unité minimale). Dans ce cas, le déplacement est progressif : le premier sous-bloc du bloc à déplacer et le premier sous-bloc de la zone mémoire OS 201, 203 sont intervertis en utilisant la mémoire backup 206, puis le deuxième sous-bloc du bloc à déplacer et le deuxième sous-bloc de la zone mémoire OS 201, 203 sont intervertis, et ainsi de suite. Comme dans la variante ci-dessus, la mémoire backup 206 peut être doublée pour recevoir une copie des deux sous-blocs à intervertir.
Le déplacement du contenu des pages mémoire (que ce soit les pages mémoire de données ou les pages mémoire OS) nécessite une mise à jour des adresses mémoire correspondant aux diverses données stockées.
A titre illustratif, une unité de gestion de mémoire (MMU pour « Memory Management Unit ») dans un contrôleur de mémoire, non représentés sur le , tient à jour une table de correspondance ou « table de translation d’adresses » traduisant les adresses mémoire envoyées par le processeur CPU2 110 en des adresses physiques dans la mémoire. Le déplacement du contenu des pages mémoires modifie l’adresse physique de stockage du contenu. Aussi, lors du déplacement du contenu des pages mémoire de données, l’adresse physique de la table de translation d’adresses est mise à jour pour pointer vers la nouvelle adresse, correspondant aux pages mémoire OS de destination dans la zone mémoire OS 201, 203.
Le système d’exploitation d’un élément sécurisé comporte généralement, en dur au début du code compilé, une adresse mémoire absolue où est initialement stockée ce système d’exploitation. Il s’agit en d’autre termes de l’adresse mémoire débutant la zone mémoire OS 201, 203. Les autres adresses renseignées dans le code compilé du système d’exploitation sont généralement exprimées en adresses relatives par rapport à cette adresse absolue.
Le système d’exploitation n’étant pas recompilé lors du déplacement selon l’invention, il est prévu dans un ou plusieurs modes de réalisation, de mettre à jour un registre d’indirection pour stocker une information représentative d’une nouvelle adresse mémoire des contenus déplacés, ici de l’OS déplacé. Ce registre d’indirection, initialement mis à 0 lors de l’installation du système d’exploitation, peut comprendre le décalage mémoire ou « offset » entre l’adresse initiale et l’adresse destination du déplacement. Le décalage mémorisé peut simplement être ajoutées aux adresses de chargement. Ainsi, les adresses d’appel aux fonctions du système d’exploitation sont évaluées comme étant la somme de l’adresse absolue initiale de l’OS, de l’adresse relative de la fonction appelée et de la valeur d’indirection contenue dans le registre, et permettent donc, avant le déplacement et après le déplacement, d’effectuer les appels aux fonctions du système d’exploitation, sans risque.
Une fois le déplacement des contenus effectués (étape 325), le procédé se termine. En effet, le système d’exploitation est désormais stocké sur un bloc de pages mémoire globalement usé. Celles-ci ne constituent donc plus une réserve de pages mémoire « saines » pour une nouvelle mise en œuvre de l’invention.
La illustre, à l’aide d’un ordinogramme, des étapes d’un procédé de gestion d’une mémoire non volatile réinscriptible NVM2 selon un ou plusieurs modes de réalisation avec déplacement progressif (ou morcelé ou parcellaire) du système d’exploitation.
En effet, seule une partie du système d’exploitation peut se trouver être déplacée. Cela est notamment avantageux pour des éléments sécurisés dont le système d’exploitation occupe une partie prépondérante de l’espace mémoire NVM2. A titre d’illustration, il n’est pas inusuel d’utiliser des éléments sécurisés dotés d’une mémoire NVM2 de capacité 512 ko hébergeant un système d’exploitation de 300 ko.
Le système d’exploitation peut être « délocalisable » ou « relocalisable » et ainsi être structuré en sections pouvant être déplacées indépendamment les unes des autres, sous réserve de mettre à jour la table de relocalisation associée, comme expliqué plus haut. La illustre un système d’exploitation 207, nommé OS sur la figure, structuré en sections 208, dans la configuration mémoire de la . Il est également possible d’utiliser un système d’exploitation structuré en sections 208, dans la configuration mémoire partitionnée de la .
Dans ces exemples, le système d’exploitation stocké est donc un OS compilé, composé d’une pluralité de sections pouvant être stockées de façon indépendante, chacune étant stockée sur un bloc respectif de pages mémoire OS. Sur la Figure, la première section d’OS est stockée sur quatre pages mémoire (chaque bande horizontale représentant de façon schématique une page mémoire), la seconde section sur deux pages mémoire, etc.
A nouveau, la gestion de la mémoire selon la peut être mise en œuvre après épuisement des pages mémoire de données comme évoqué ci-dessus. Dans ce cas-là, le déplacement du contenu d’une page mémoire de données usée vers une page mémoire OS (de la zone 201, 203) est conditionné au fait que la zone mémoire de données 202, 204 ne comporte plus de page mémoire de données non usée ou « saine » qui soit libre.
Alerte au dispositif à distance Dans certains modes de réalisation, le module de commande 212 peut fournir le signal d'alerte à un dispositif à distance, tel que le dispositif externe 230. Le signal d'alerte peut ainsi être communiqué sans fil sur un ou plusieurs réseaux auxquels sont reliés le module de commande 212 et le dispositif à distance, tel que le réseau Internet ou un réseau local (LAN). Par exemple, le dispositif à distance peut être le même dispositif externe 230 qui gère les mises à jour des données de produits. Le dispositif à distance peut notamment être un ordinateur serveur ou une collection d'ordinateurs serveurs chargés de gérer l'environnement de vente au détail.
Le signal d'alerte peut ainsi fonctionner pour alerter le dispositif à distance du fait que l'ESL 220 n'a pas été mise à jour et nécessite donc probablement une maintenance. Le signal d'alerte peut comprendre une indication de l'ID de l'ESL 220 concernée et une demande de maintenance. Dans ce cas, le signal d'alerte peut être émis à tout moment, par exemple immédiatement après la détermination que l'ESL n'a pas été mise à jour.
Alerte à l’utilisateur pendant le fonctionnement De plus, ou en variante au signal d'alerte émis vers le dispositif à distance, à l'étape 510, un signal d'alerte peut être émis vers un utilisateur de l'appareil d'impression d'étiquettes. Lorsqu'il est déterminé que l'ESL n'a pas été mise à jour, le module de commande 212 peut stocker une indication selon laquelle l'ESL n'a pas été mise à jour pour le produit pertinent, et le signal d'alerte peut être émis pour fournir une indication à un utilisateur qui a emballé ce produit en un ou plusieurs points pendant l'utilisation de l'appareil d'impression d'étiquettes 210.
L'appareil d'impression d'étiquettes 210 peut comprendre une interface utilisateur 216 pour interagir avec un utilisateur, comme le montre la . L'interface utilisateur 216 peut comprendre un ou plusieurs composants agencés pour recevoir une entrée utilisateur et fournir une sortie à un utilisateur. Par exemple, l'interface utilisateur 216 peut comprendre un écran tactile, un clavier ou similaire agencé pour recevoir une entrée utilisateur, et un ou plusieurs écrans d'affichage, haut-parleurs ou similaires pour fournir une sortie visuelle ou audible à l'utilisateur. L'interface utilisateur 216 peut être locale par rapport à l'appareil d'impression d'étiquettes 210, ou l'interface utilisateur 216 peut être prévue sur un dispositif informatique externe associé à l'utilisateur, tel qu'un dispositif mobile, un ordinateur portable ou une tablette. L'interface utilisateur 216 peut ainsi être reliée fonctionnellement au module de commande 212 soit par une liaison filaire, soit par une communication sans fil, telle que Wi-Fi, Bluetooth, NFC ou similaire.
Lors d'une utilisation normale, le client amène le produit emballé à l'appareil d'impression d'étiquettes 210 et fournit une entrée à l'interface utilisateur 216 pour demander l'impression d'une étiquette d'information pour le produit emballé. L’entrée peut comprendre une indication du produit, par exemple une sélection du produit concerné dans une liste prévue au niveau de l'interface utilisateur 216. L'interface utilisateur 216 communique alors un signal de demande d'impression d'étiquette au module de commande 212. Le signal de demande d'impression d'étiquette comprend une indication du produit pour lequel une étiquette doit être imprimée. Le module de commande 212 est alors agencé pour récupérer en mémoire les données de produit associées au produit indiqué.
L'appareil d'impression d'étiquettes 210 peut également comprendre une balance 218 agencée pour peser le produit emballé par le client et communiquer des données de poids au module de commande 212 indiquant le poids du produit. Le module de commande 212 peut alors déterminer le contenu de l'étiquette d'information à imprimer en fonction à la fois des données de poids et des données de produits. Par exemple, un code lisible par machine tel qu'un code à barres peut être construit par le module de commande 212 pour refléter le coût total du produit en fonction du poids indiqué par les données de poids et du prix par poids indiqué par les données de produits. Le module de commande 212 délivre ensuite un signal d'impression au dispositif d'impression d'étiquettes 214 pour commander le dispositif d'impression d'étiquettes 214 pour imprimer l'étiquette d'information.
En tout point de cette interaction entre l'utilisateur et l'appareil d'impression d'étiquettes, le module de commande 212 peut être agencé pour délivrer le signal d'alerte à l'interface utilisateur 216 pour faire sortir par l'interface utilisateur 216 une indication à un utilisateur que l'ESL 220 est désynchronisée, ou en panne, et ainsi ne pas afficher les données de produits correctes. Cette indication peut être délivrée visuellement à l'utilisateur, par exemple sous la forme d'une alerte sur un écran de l'interface utilisateur 216. De manière alternative ou complémentaire, l'indication peut être transmise à l'utilisateur de manière audible, haptique ou par toute autre forme de retour d'information facilitée par l'interface utilisateur 216. Cette indication peut être délivrée en réponse à chaque entrée au niveau de l'interface utilisateur 216 pour demander l'impression d'une étiquette d'information pour le produit. Le module de commande 212 peut déterminer que l'ESL 220 associée à ce produit indiqué n'a pas été mise à jour et fournir l'indication à l'utilisateur.
Dans certains modes de réalisation, l'indication peut comprendre en outre une indication des données de produits mises à jour stockées au niveau du module de commande 212. C'est-à-dire que le module de commande 212 peut être agencé pour déterminer que le produit indiqué est associé à une ESL périmée et afficher les données de produit correctes à l'utilisateur, par exemple, le prix par unité correct. Ainsi, l'utilisateur est informé sélectivement des données de produits mises à jour au niveau de l'appareil d'impression d'étiquettes 210 dans des situations où l'ESL 220 affiche des informations incorrectes.
Prévention de l’opération De manière complémentaire ou alternative au signal d'alerte émis vers le dispositif à distance ou l'interface utilisateur, à l'étape 510, le signal d'alerte peut être émis pour empêcher le fonctionnement d'une ou plusieurs parties de l'appareil d'impression d'étiquettes 210.
Comme discuté, lorsqu'il est déterminé que l'ESL n'a pas été mise à jour, le module de commande 212 peut mémoriser une indication que l'ESL n'a pas été mise à jour pour le produit considéré. Ainsi, lorsqu'un utilisateur sélectionne ce produit pendant le fonctionnement de l'appareil d'impression d'étiquettes 210, le module de commande 212 peut être configuré pour inhiber une ou plusieurs opérations afin d'empêcher l'impression d'une étiquette d'information pour ce produit. Cette inhibition peut intervenir à divers endroits de l'utilisation de l'appareil 210 comme décrit ci-dessus. Par exemple, le module de commande 212 peut être agencé pour inhiber la sortie du signal d'impression vers le dispositif d'impression d'étiquettes 214. De manière alternative ou complémentaire, l'appareil d'impression d'étiquettes 210 peut être agencé pour empêcher le fonctionnement de la balance 218 pour peser le produit. Ainsi, l'impression de l'étiquette d'information est empêchée, ce qui empêche le client d'étiqueter le produit pour lequel il a été affiché avec des informations obsolètes à l'ESL 220.
Cette prévention de fonctionnement peut être configurée pour être spécifique au produit associé à l'ESL 220.
En référence à la , l'appareil d'impression d'étiquettes 210 peut être associé à un environnement de vente au détail plus large. Le dispositif externe 230 peut gérer des mises à jour pour une pluralité d'appareils d'impression d'étiquettes et peut ainsi être agencé pour communiquer des mises à jour à chacun d'une pluralité de modules de commande 212a, 212b, ..., 212c.
Chaque appareil d'impression d'étiquettes, et donc chaque module de commande 212a, 212b, 212c, peut être associé à une pluralité de produits. En d'autres termes, chaque module de commande peut avoir un sous-ensemble correspondant de produits pour lesquels l'appareil d'impression d'étiquettes respectif est agencé pour imprimer des étiquettes d'informations. Ainsi, chaque module de commande est agencé pour stocker des données de produits correspondant à chacun de ses sous-ensembles de produits. Chacun de ces produits est associé à une ESL 220 correspondante pour laquelle des données d'étiquettes d’étagère sont stockées au niveau du module de commande. Ainsi, chaque module de commande 212a, 212b, 212c est agencé pour gérer les mises à jour pour un ensemble correspondant d'ESL 220a, 220b, 220c. En d'autres termes, un premier module de commande 212a est agencé pour gérer les mises à jour d'un premier ensemble d'ASP 220a correspondant à l'ensemble de produits pour lesquels le premier module de commande 212a est agencé pour stocker des données de produits. De même, un deuxième module de commande 212b est agencé pour gérer les mises à jour pour un deuxième ensemble d'ESL 220b, et un troisième module de commande 212c est agencé pour gérer les mises à jour pour un troisième ensemble d'ESL 220c.
Ainsi, en référence au schéma de la et aux procédés illustrés aux figures 5 et 6 et à la description associée, ces traitements peuvent être effectués par le module de commande respectif 212a, 212b, 212c pour gérer les mises à jour pour chaque ESL 220a, 220b, 220c associée à ce module de commande. Les mises à jour pour chaque ESL peuvent être gérées indépendamment, et ainsi tout signal d'alerte qui est émis peut être spécifique à cette ESL ou au produit correspondant pour lequel l'ESL n'a pas été mise à jour. En particulier, si un signal d'alerte est émis pour empêcher le fonctionnement d'une ou de plusieurs parties de l'appareil d'impression d'étiquettes 210, cette prévention de fonctionnement peut être spécifique au produit associé à l'ESL qui a été déterminée comme n'étant pas mise à jour. Ainsi, le module de commande 212 peut commander le fonctionnement normal de l'appareil d'impression d'étiquettes 210 par rapport à l'impression d'étiquettes d'information pour d'autres produits non associés à l'ESL désynchronisée.
En résumé, la présente invention concerne un moyen d'exploitation d'un système d'impression d'étiquettes et d'un module de commande dans lequel les problèmes provoqués par des conflits entre une ESL et un appareil d'impression d'étiquettes peuvent être atténués en acheminant les mises à jour pour une ESL à travers le module de commande de l'appareil d'impression d'étiquettes associé. Ainsi, l'appareil d'impression d'étiquettes peut contrôler si l'ESL a été mise à jour et prendre des mesures pour atténuer le conflit si l'ESL ne met pas à jour, en demandant une maintenance, en avertissant l'utilisateur ou en empêchant l'impression d'étiquettes incohérentes.
Les mémoires 310, 410 auxquelles il a été fait référence, peuvent comprendre un support de stockage lisible par ordinateur (par exemple, un support non transitoire, non volatile ou non temporaire) qui peut comprendre un quelconque mécanisme pour le stockage d’informations sous une forme lisible par une machine ou des processeurs électroniques/dispositifs informatiques, comprenant, sans s’y limiter : un support de stockage magnétique (par ex. disquette) ; un support de stockage optique (par ex. CD-ROM) ; un support de stockage magnéto-optique ; une mémoire morte (ROM) ; une mémoire vive (RAM) ; une mémoire programmable effaçable (par ex. EPROM et EEPROM) ; une mémoire flash ; ou électrique ou d’autres types de support pour le stockage de telles informations/instructions.
- surveiller la communication entre une première instance dans laquelle le modèle fonctionnel 100 est appliqué et une autre instance dans laquelle le modèle de surveillance 1000 est appliqué. Par la surveillance, on peut, par exemple, détecter des retards dans la communication. Si certains retards dépassent un seuil, il n’est pas garanti que la surveillance continue de fonctionner correctement. On peut alors, par exemple, déclencher également un autre état sécurisé.
L’expression « état sécurisé » signifie que la machine 10 commandée par ordinateur et/ou la fonction F de la machine 10 commandée par ordinateur est passée dans un état dans lequel l’exécution de la fonction F ne s’appuie pas sur le modèle fonctionnel 100, par exemple, à cause de la coupure ou de l’interruption de la fonction F. En plus, il est prévu avantageusement que la coupure ou l’interruption de la fonction F notamment du composant qui exécute cette fonction et/ou la machine commandée par ordinateur est informée à un autre système, par exemple, un système E/E d’un véhicule automobile et/ou l’utilisateur du système.
Les fonctions de surveillance décrites du superviseur remplissent à la fois les conditions de la norme ISO 26262 et aussi celles de SOTIF de la norme ISO 21448.
La détection de l’anomalie vérifie si le modèle fonctionnel 100 a fonctionné comme prévu pour une entrée réelle E et passe ainsi sous la norme SOTIF.
Le diagnostic BIST est fondé sur une entrée de référence R_E et ne peut ainsi vérifier aucun aspect de SOTIF. Le diagnostic BIST est utilisé pour vérifier si le modèle fonctionnel est encore en activité et susceptible de fonctionner. Le diagnostic BIST répond ainsi à la norme ISO 26262 concernant la sécurité de fonctionnement.
La validation de pipeline se fait en combinaison avec les entrées réelles E. La validation pipeline vérifie également si le modèle fonctionnel est encore actif et apte à fonctionner. C’est pourquoi la validation pipeline applique à la fois la norme SOTIF et la norme ISO 26262.
La surveillance des retards de la communication se fait pour des entrées réelles E. On vérifie néanmoins également si le modèle fonctionnel est encore actif et apte à fonctionner. C’est pourquoi, la surveillance de la communication concernant les retards applique à la fois la norme SOTIF et la norme ISO 26262.
A l’aide des figures 4 et 5 on décrira différentes configurations matérielles pour différentes applications.
La montre un système 400 conçu pour effectuer les étapes du procédé décrit avec un modèle de surveillance 1000. Il est prévu d’exécuter les étapes du procédé par le modèle de surveillance 1000 qui ont été exécutées dans au moins une première instance 410 du système 400 et que le modèle fonctionnel 100 fournit des données pour au moins une fonction F de la machine commandée par ordinateur 10, notamment un algorithme de reconnaissance d’images, exécuté dans une seconde instance 420 du système 400.
La seconde instance 420 est, par exemple, une instance qui n’est pas considérée comme sûre dans le sens de la norme de la sécurité fonctionnelle ISO 26262, par exemple, par l’application d’un système de fonctionnement qui n’est pas sûr ou d’un accélérateur de matériel qui n’est pas sûr. Par exemple, le modèle fonctionnel 100 est implémenté dans un système d’exploitation Linux. Toutefois, le noyau Linux ne remplit pas la certification de sécurité selon ISO 26262. Pour des raisons de sécurité et aussi d’autres raisons telles que le temps de démarrage ou encore l’assistance CAN, Linux est souvent utilisé avec d’autres domaines qui s’appliquent à un coprocesseur distinct ou un système hôte d’un hyperviseur. Ce domaine intègre, en général, un petit système de fonctionnement en temps réel (RTOS) avec des temps de démarrage rapide et qui émet et reçoit sur un bus de connectivité de véhicule automobile tel que CAN, Ethernet ou autres. Du fait de leur simplicité, de tels domaines peuvent être certifiés pour des applications concernant la sécurité. La première instance est, par exemple, associée à des domaines sécurisés. Il est, pour cela, prévu qu’au moins la première instance répond au niveau de sécurité ASIL selon la norme ISO 26262.
La première et la seconde instances 410, 420 peuvent se trouver sur des puces distinctes. On peut également prévoir que la première et la seconde instance 410, 420 soient réalisées comme une seule instance sur une puce commune (SoC) ; un système de gestion associé à la première instance peut être exécuté sur un noyau de calcul distinct du système sur une puce SoC et garantir ainsi la sécurité.
On peut également réaliser que la première et la seconde instance 410, 420 sur un système partagé. Également la première instance 410 est appliquée dans un premier processeur et la seconde instance 420 dans un second coprocesseur distinct. La communication entre ces instances doit disposer d’une sécurité appropriée qui garantit l’intégrité ainsi que l’authenticité des informations et la complétude de toutes les informations transmises.
Le système 400 peut également être un système virtualisé 500 (voir par exemple ).
Selon le mode de réalisation représenté, le système 500 comprend deux plateformes de matériel 502a, 502b qui forment le plan matériel 502.
Les plateformes de matériel 502a, 502b comprennent, par exemple, des unités de matériel telles que, par exemple, un microcontrôleur, des ressources de matériel, garanties, des puces «hardware-routing ».
Le système 500 comprend un hyperviseur 506. L’hyperviseur 506 visualise les plateformes de matériel 502a, 502b. La première instance 410 est, par exemple, un premier domaine 508a fourni par l’hyperviseur et la seconde instance 420 est, par exemple, un autre domaine 508b fourni par l’hyperviseur 506.
Un capteur peut être prévu et déterminer la pression et/ou le débit destiné(e) au composant.
Le signal de pression fourni par le port de déclenchement peut de préférence être utilisé non seulement pour le déverrouillage hydraulique, mais également à des fins de surveillance. Cela permet au transformateur différentiel d’être remplacé par un capteur de pression, par exemple.