INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
L'architecture 200 comprend une plateforme primaire virtuelle 210 (VPP, Virtual Primary Plateform), ou plateforme primaire 210, permettant de mettre en oeuvre les différentes fonctionnalités du dispositif électronique. La plateforme primaire 210 est composée de trois niveaux : - l'accès à des composants électroniques 211 (HW, Hardware) du dispositif électronique ; - un ou plusieurs systèmes d'exploitation de bas niveau 213 (LLOS, Low Level Operating System) ; et - une ou plusieurs interfaces logicielles 215 (API, ABI, VRE, IPC).
Les composants 211 sont les ressources matérielles du dispositif électronique. Les composants 211 de l'élément sécurisé 110 sont, par exemple, les un ou plusieurs processeurs, par exemple le processeur 101 ( ), une ou plusieurs mémoires, par exemple les mémoires 105 ( ), un ou plusieurs dispositifs de communication, comme les circuits d'entrée sortie du type des circuits 103 ( ), comme un dispositif de communication en champ proche (NFC, Near Field Communication), un dispositif de communication à courte distance utilisant, par exemple, la norme Bluetooth, un dispositif adapté à la technologie d'ultra large bande, aussi connue sous la dénomination Ultra Wideband (UWB), ou encore des capteurs, comme des capteurs biométriques.
Les systèmes d'exploitation de bas niveau 213 sont des logiciels adaptés à mettre en oeuvre les composants 211 pour exécuter des commandes reçues de la part des applications mises en oeuvre par l'élément sécurisé. A titre d'exemple, les systèmes d'exploitation de bas niveau 213 comprennent tout ou partie des logiciels pilotes des composants 211.
Un système d'exploitation de bas niveau 213 est composé d’un code d’exécution (ou code exécutable) et de données d’exécution. Le code d’exécution contient des instructions permettant l’exécution des fonctions du programme. Par définition, les instructions sont invariables pour un programme donné, à l'exception d'une mise à jour du programme qui modifie alors les instructions. Les données d’exécution sont utilisées par le code d’exécution pour contextualiser l’exécution et réaliser la fonction souhaitée.
La plateforme primaire 210 communique avec des applications mises en oeuvre par l'élément sécurisé 110 par l'intermédiaires des interfaces logicielles 215 exécutées par la plateforme primaire. Ces interfaces 215 peuvent comprendre, entres autres : - des interfaces de programmation d'application (API, Application Programming Interface) ; - des registres (VRE, Virtual Register) ; et - des mémoires tampon de mémorisation, ou mémoires tampon, ou encore des mémoires partagées permettant l'échange de données entre processus via des communications inter-processus (IPC – Inter Process Communication).
Les interfaces de programmation d'application sont des logiciels permettant à plusieurs applications, décrites en détail ci-après, de communiquer entre elles, ou de communiquer avec des un ou plusieurs systèmes d'exploitation de bas niveau. Selon un exemple, les logiciels d'interface permettent de convertir une commande envoyée par une application en une commande exécutable par les systèmes d'exploitation de bas niveau 213.
Les registres sont des espaces mémoire liés à une fonction matérielle du dispositif électronique et utilisés pour stocker temporairement des données, par exemple lorsqu'une commande est envoyée à la plateforme primaire 210 du dispositif électronique ou lors d'échanges entre processus exécutés par la plateforme primaire.
Les mémoires tampon (ou mémoires partagées) sont utilisées pour stocker des messages avant leur utilisation par la plateforme 210 ou par des applications du dispositif électronique. En pratique, les mémoires tampon sont des espaces mémoire alloués dans une mémoire de l'élément 110 ou 100', par exemple une mémoire volatile à laquelle l'élément 110 a accès, comme la mémoire 114.
A titre d'exemple, l'architecture logicielle 200 comprend au moins trois applications 231, 232, 233 adaptées à être mises en oeuvre par la plateforme primaire 210. Les applications 231, 232, 233 sont des logiciels ou des programmes informatiques utilisant les ressources de la plateforme primaire. Bien entendu, le dispositif électronique met en oeuvre un nombre d'applications dans la limite de ses capacités de calcul, et de ses capacités de stockage de données.
Comme les systèmes d'exploitation de bas niveau 213, chaque application 231, 232, 233 est composée d’un code d’exécution (ou code exécutable) et de données d’exécution. Le code d’exécution contient des instructions permettant l’exécution des fonctions de l'application. Par définition, les instructions sont invariables pour une application donnée, à l'exception d'une mise à jour du programme qui modifie alors les instructions. Les données d’exécution sont utilisées par le code d’exécution pour contextualiser l’exécution et réaliser la fonction souhaitée.
Les applications 231, 232, 233 peuvent chacune être mises en oeuvre par un processeur différent. Selon un exemple, certaines applications sont mises en oeuvre par le processeur principal du dispositif électronique, comme le processeur 101, et d'autres applications sont mises en oeuvre par le processeur de l'élément sécurisé, comme l'élément sécurisé 102.
Les applications 231, 232, 233 peuvent être adaptées à mettre en oeuvre toutes sortes de fonctionnalités. Elles mettent généralement en oeuvre des services digitaux d’un fournisseur de service, par exemple, un service de paiement de type EMV ou de ticket de transport. Ces applications peuvent être mises en combinaison avec une autre application se trouvant dans le processeur principal 101 ( ), ou dans un autre environnement sécurisé (Trusted Execution Environment). Le processeur et l'environnement sécurisé sont plus à même d’interagir avec l’utilisateur via une interface utilisateur sécurisée (Trusted User Interface). Les applications 231, 232, 233 sont, par exemple, adaptées à traiter des commandes provenant d'interfaces de communication, comme, par exemple, une transaction bancaire utilisant un dispositif de communication en champ proche. Ces applications peuvent être de différents types, par exemple, une application SIM (Subscriber Identity Module), une application de paiement, une application permettant la validation d'un ticket de transport en commun, etc.
Selon un exemple de type d'application, l'application 231 (App1) est adaptée à être mise en oeuvre directement par la plateforme primaire 210 (VPP). L'application 231 est, par exemple, une application permettant d'effectuer des paiements en communiquant avec un dispositif de communication en champ proche (NFC, Near Field Communication).
Selon un autre exemple de type d'application, l'application 232 est un ensemble d'instructions 232A (App2) adaptées à être exécutées en utilisant un système d'exploitation de haut niveau 232H (HLOS1). Un système d'exploitation de haut-niveau est un logiciel adapté à mettre en oeuvre différentes applications en leur proposant un ensemble de fonctions logicielles communes. Le système d'exploitation 232H est la seule partie de l'application 232 à communiquer avec la plateforme primaire 210. A titre de variante, on peut également considérer que le système d'exploitation de haut niveau, ainsi que toutes les applications qui lui sont attachées, sont une seule application adaptée à être mise en oeuvre par la plateforme primaire 210. De plus, un système d'exploitation de haut niveau peut être un système d'exploitation rattaché à un processeur du dispositif électronique. Selon un exemple, dans la suite de la description, on parle de système d'exploitation de haut niveau du processeur principal 101 du dispositif électronique, il s'agit alors du système d'exploitation de haut niveau mettant en oeuvre les applications exécutées par le processeur principal 101. On parle aussi du système d'exploitation de haut niveau de l'élément sécurisé 102, il s'agit alors du système d'exploitation de haut niveau mettant en oeuvre les applications exécutées par l'élément sécurisé 102.
Selon un autre exemple de type d'application, une autre application 233 est un ensemble d'instructions 233A (App3) utilisant un environnement d'exécution 233E (ENV) qui utilise lui-même un système d'exploitation de haut niveau 233H (HLOS2). L'environnement d'exécution est, par exemple, de type Java ou JavaCard. Le système d'exploitation 233H et l'environnement d'exécution 233E sont les seules parties de l'application 233 à communiquer avec la plateforme primaire 210. A titre de variante, on peut également considérer que le système d'exploitation de haut niveau, ainsi que toutes les applications qui lui sont attachées, sont une application adaptée à être mise en oeuvre par la plateforme primaire 210.
Un exemple de mise en oeuvre de l'application 231, 232, ou 233 est la suivante. Lorsqu'une application 231, 232, ou 233 souhaite utiliser une ressource matérielle de l'élément sécurisé, c'est-à-dire un ou plusieurs composants 211 de la plateforme primaire 210, cela signifie que les opérations courantes exécutées sur les données fixes sont considérées comme terminées. L'application peut alors exécuter différentes commandes comme, par exemple, forcer une écriture vers une mémoire non volatile. Pour cela, l'application envoie une commande et/ou des données à la plateforme primaire 210 par l'intermédiaire des interfaces 215. La commande est prise en charge par une ou plusieurs interfaces de programmation d'application avant d'être envoyée aux systèmes d'exploitation de bas niveau 213, c'est-à-dire que la commande est divisée en plusieurs opérations. Les données sont, quant à elles, stockées dans des registres ou transmises via des communications entre processus (IPC). Les systèmes d'exploitation de bas niveau 213 répondent aux demandes des interfaces binaire-programme en appliquant les opérations demandées par les interfaces binaire-programme aux données stockées dans les registres. Les systèmes d'exploitation de bas niveau 213 pilotent ensuite les composants 211 pour exécuter ce que demande l'application.
et que la dérivée de la fonction par rapport au paramètre de quantification vaut :
Ce lissage de la fonction de quantification permet de propager la variation de la fonction de perte non seulement à la valeur d’entrée de ce bloc 210, mais également aux paramètres de quantification d’activation.
A la fin de l’époque k et de la procédure de rétropropagation du gradient, la valeur de chaque paramètre de quantification d’activation est mise à jour avec le gradient calculé. Cette nouvelle valeur sera celle utilisée pour l’époque k+1 suivante.
Ce processus de phases d’inférence et de rétropropagation est itéré pour chaque époque, conduisant à l’apprentissage de la valeur optimale des paramètres de quantification d’activation, le paramètre pour le cas particulier de la technique SAT.
L’apport spécifique de la présente l’invention va maintenant être présenté en relation avec le procédé d’apprentissage représenté sur la . Cette figure présente, sous forme de blocs, un mode de réalisation préféré du procédé selon l’invention.
De manière générale, le procédé selon l’invention consiste à modifier la précision de quantification ( pour une couche d’opération et pour une couche d’activation par exemple) des fonctions de quantification, de manière à ce qu’au cours de l’apprentissage et de l’itération des époques, la précision soit progressivement ramenée, d’une précision de quantification initiale plus élevée vers une précision de quantification cible plus basse.
Il faut souligner qu’il s’agit bien de la modification de la précision de quantification (c’est-à-dire le nombre de paliers des fonctions de quantification). Cette précision de quantification est un nombre entier. Il peut être modifié d’une unité ou plus d’une époque à une autre. Il ne s’agit pas d’une précision de codage des variables, c’est-à-dire de nombre de bits sur lequel une variable (paramètre ou valeur) est codée. D’ailleurs, pendant l’apprentissage, il est préférable de coder les variables en précision flottante (32 bits). Cependant, le but de la quantification étant malgré tout d’obtenir un RN entrainé dont les variables sont codées sur un nombre réduit de bit, par exemple b bits, la précision de quantification cible sera de préférence prise égale à la précision de codage recherchée, en l’occurrence 2 b .
Ainsi dans une étape 710 du procédé 700, le programmeur fait un choix de l’architecture du réseau de neurones à quantifier et définit une technique de quantification - QAT particulière.
Dans une étape 720, le programmeur fait un choix sur une précision de quantification cible. Si par exemple le nombre de bits sur lequel le programmeur souhaite coder les variables du modèle appris est b, la précision de quantification cible est choisie égale à 2 b .
Le programmeur choisit également la précision initiale . Elle doit être plus élevée que la précision cible. La précision initiale peut par exemple être définie comme égale à 2 b + ∆ , avec ∆ entier supérieur ou égal à 1, de préférence égal à 2.
Enfin, le programmeur définit une fonction d’évolution définissant la précision de quantification à l’époque k. Par exemple la fonction d’évolution est telle que :
où est la fonction d’arrondi, C est un facteur de décroissance inférieur à l’unité, de préférence proche de l’unité, pour une diminution lente de la précision de quantification d’une époque à l’autre. C est par exemple choisi égal à 0,97.
Dans l’étape 730, l’indice k de l’époque est initialisé à la valeur unité.
Pour chaque époque k, le procédé 700 prévoit les étapes 740 classiques d’un apprentissage avec mise en œuvre d’une technique de quantification QAT.
Les phases d’inférence et de rétropropagation de l’époque k sont réalisées à la précision de quantification courante . Dit autrement, la précision des fonctions de quantification mises en œuvre à l’époque k aussi bien par une couche de convolution comme la couche 100 ou par une couche d’activation comme la couche 200, est égale à .
Grâce à ce procédé, de l’énergie est économisée puisque parfois, surtout quand la température ambiante est basse, les sources de lumière à l’état solide sont alimentées avec une valeur de courant qui amène les sources de lumière à l’état solide à émettre de la lumière avec un flux lumineux qui est plus élevé que prévu. Ceci est dû au fait que les sources de lumière à l’état solide sont plus efficaces à basses températures.
Grâce au procédé de la présente invention, cet excès est évité, puisque le flux réel est mesuré pour détecter le moment où le flux lumineux est plus élevé que prévu, et la valeur de courant est réduite pour compenser ce phénomène.
Les étapes d’obtention de la valeur de flux lumineux réelle et de modification de la valeur de courant de la source de lumière lorsque la valeur de flux lumineux réelle n’est pas une valeur de flux lumineux acceptable sont répétées, puisque la température des sources de lumière à l’état solide peut évoluer au cours du temps, et donc le flux lumineux émis par celles-ci peut également varier. L’obtention constante du flux lumineux actuel permet à l’invention de commander le flux de sorte qu’il soit acceptable.
L’évolution usuelle est due au fait que la température augmente au cours du temps, du fait de la chaleur émise par les sources de lumière à l’état solide. En conséquence, le flux lumineux peut chuter, de sorte que des augmentations périodiques de la valeur de courant sont effectuées pour compenser la diminution du flux lumineux.
Dans certains modes de réalisation, l’étape d’obtention de la valeur de flux lumineux est réalisée en obtenant une température de source de lumière et en obtenant un flux lumineux correspondant à partir d'une fiche technique qui met en corrélation le flux lumineux avec la température et la valeur de courant.
Les fiches techniques qui indiquent le flux lumineux en fonction de la température et de la valeur de courant sont disponibles auprès de certains fabricants. Par conséquent, en déterminant la température des sources de lumière à l’état solide et en connaissant la valeur de courant qui leur est fournie, le flux lumineux peut être obtenu.
Dans certains modes de réalisation, l’étape d’obtention de la température de source de lumière est réalisée par une thermistance, telle qu'une thermistance à coefficient de température négatif.
Une thermistance est un petit élément qui peut être utilisé pour mesurer une température, fournissant ainsi un point de départ fiable pour ce procédé et particulièrement approprié à un dispositif d’éclairage de voie publique.
Dans certains modes de réalisation, l'étape d'augmentation de la valeur de courant consiste à augmenter la valeur de courant d'une première valeur à une deuxième valeur, la deuxième valeur étant comprise entre 1,001 fois la première valeur et 1,1 fois la première valeur, plus particulièrement comprise entre 1,001 fois la première valeur et 1,05 fois la première valeur et plus particulièrement comprise entre 1,001 fois la première valeur et 1,03 fois la première valeur.
Dans ces exemples, l'intensité peut être augmentée par petit paliers, de sorte que la valeur de courant (et la température) soient maintenues aussi basses que possible dans une plage offrant une performance acceptable. En outre, des écarts de flux peuvent être corrigés avec un impact aussi faible que possible sur la performance.
Dans certains modes de réalisation, le procédé comprend en outre l’étape d'enregistrement d'une séquence d'incréments de valeur de courant pour des conditions prédéterminées.
Cette séquence peut être utile si on utilise un modèle basé sur le temps, pour éviter une mesure continue de la température.
Dans certains modes de réalisation, les étapes du procédé sont appliquées à au moins 10 % des sources de lumière du dispositif d'éclairage.
L'augmentation progressive de la valeur de courant peut être appliquée à un grand nombre de sources de lumière en même temps, par exemple, toutes les sources de lumière offrant une fonctionnalité prédéterminée. L'économie d'énergie et une performance homogène peuvent donc s'appliquer à un grand nombre d'éléments.
Dans certains modes de réalisation, le procédé comprend en outre l’étape de mesure ou d’estimation de l’éclairement lumineux sur une surface sur laquelle la lumière émise par la source de lumière est incidente et de mise à jour du premier seuil de flux lumineux et/ou du deuxième seuil de flux lumineux en conséquence de l’éclairement lumineux mesuré ou estimé.
, le rail de guidage 11présente une paroi latérale 21 ainsi qu’une première paroi longitudinale 22 en vis-à-vis et distante d’une deuxième paroi longitudinale 23. La deuxième paroi longitudinale 23 correspond à la paroi de guidage 13 telle que précédemment décrite.
La deuxième paroi longitudinale 23,13 du rail de guidage 11 est configurée de telle manière à être en contact avec la paroi 15 correspondante formée par le carter de transmission 2, figures 1, 2A et 2B.
En outre, la paroi latérale 21 comprend une encoche 25 destinée à permettre le passage l’actionneur linéaire 7 qui est illustré sur la . L’encoche 25 présente une forme de « U ».
La première paroi longitudinale 22 du rail de guidage 11 présente une ouverture 26 autorisant un contact entre le chariot mobile 8 situé dans le rail de guidage 11, et le cliquet mobile 3 situé au niveau de l’ouverture 26.
La paroi latérale 21 du rail de guidage 11 est une butée anti-retour pour le chariot mobile 8 afin que le chariot mobile 8 soit retenu en translation dans le carter de transmission 2, par le rail de guidage 11.
Le rail de guidage 11 sert au guidage du chariot mobile 8 et prévoit qu'il n'effectue que le mouvement de translation nécessaire à l'actionnement du doigt de verrouillage 4 dans l’évidement de verrouillage 5 afin que le mécanisme de blocage 1 soit dans une position de verrouillage. La position de verrouillage permet par exemple le stationnement d’un véhicule automobile.
Le rail de guidage 11 est fabriqué par exemple à partir d’une bande de matériau métallique qui est d’une part découpée afin de former l’encoche 25 puis pliée trois fois dans le sens de la longueur afin de former lesdites parois qui le compose. La bande métallique présente une forme rectangulaire avant d’être pliée. La bande métallique avant pliage peut comprendre également une encoche destinée à former l’encoche 25 du rail de guidage.
, le cliquet mobile 3 est de forme allongée et présente une première extrémité 31 et une deuxième extrémité 32 distante de la première extrémité 31.
La première extrémité 31 permet la fixation du cliquet mobile 3 sur le carter de transmission 2 tout en autorisant le mouvement en rotation dudit cliquet mobile 3.
La deuxième extrémité 32 est située au niveau de l’ouverture 26 du rail de guidage 11. La deuxième extrémité 32 comprend la surface de came 6 située sur une première face latérale du cliquet mobile 3, en direction de l’intérieur du carter de transmission 2. La deuxième extrémité 32 comprend en outre le doigt de verrouillage 4 faisant sailli en direction opposée au rail de guidage 11 depuis une deuxième face latérale du cliquet mobile 3. Le doigt de verrouillage 4 est destiné, lorsque le mécanisme de blocage est enclenché, à s’insérer dans l’évidement de verrouillage 5. L’évidement de verrouillage 5 est par exemple situé sur une roue à rochet 33 qui est apte à recevoir ledit doigt de verrouillage 4, comme illustré sur la et qui est fixée solidaire en rotation d’un arbre 34 de transmission à bloquer en rotation.
Le cliquet mobile 3 comprend en outre un ressort de torsion 35. Le ressort de torsion 35 est enroulé au niveau de la première extrémité 31 du cliquet mobile 3. Le ressort de torsion 35 comprend une première portion d’extrémité 36 qui est en appui contre une surface d’appui du carter de transmission et une deuxième portion d’extrémité 37 qui est en appui contre la deuxième face latérale du cliquet mobile 3. Le ressort de torsion 35 est agencé pour exercer un effort de rappel sur le cliquet mobile 3 afin de le rappeler vers la position libérée. L’actionneur linéaire 7, représenté partiellement sur la , qui est fixé au carter de transmission 2 comprend une tige 38 apte à être déplacée selon une direction orthogonale aux axes de rotation Y1 et Y2.
La tige 38 se développe à travers l’encoche 25 du rail de guidage 11 jusque dans un espace interne du rail de guidage 11. La tige 38 est fixée au chariot mobile 8 situé dans le rail de guidage 11.
Dans les cas où le chariot mobile 8 est renvoyé en arrière par le cliquet mobile 3 lors de phase dynamique, le chariot mobile 8 vient en butée contre la paroi latérale 21 du rail de guidage 11, qui forme ainsi une buté-anti-retour pour le chariot mobile 8. Le chariot mobile 8, est dans ce cas envoyé contre le cliquet mobile 3 par une force de rappel exercée par un ressort de compression 39 qui entoure la tige 38 et qui comporte une première extrémité fixée au corps de l’actionneur 7 et une deuxième extrémité fixée au chariot mobile 8. Cet effet peut se produire par exemple lors de tentative d'engagement à trop haute vitesse. Au-delà d'une vitesse seuil, par exemple comprise entre 3km/h et 5km/h, le cliquet mobile 3 rebondit pour empêcher l'engagement, le chariot mobile 8 est alors renvoyé en butée.
Le deuxième galet 10 du charriot mobile 8 est apte à être déplacée le long de la deuxième paroi longitudinale 23,13 du rail de guidage 11. Le chariot mobile 8 comprend en outre un suiveur de came formé par le premier galet 9 qui est en contact avec la surface de came 6 du cliquet mobile 3 et apte à être déplacé le long de cette surface de came 6.
Le chariot mobile 8 comprend en outre un ergot 40 situé au niveau de la deuxième extrémité 32 du cliquet mobile 3. L’ergot 40 est destiné à retenir le cliquet mobile 3 dans le plan P.