FR3118512A1 - Procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia embarqué à bord d’un aéronef, programme d’ordinateur, dispositif électronique de contrôle, et serveur multimédia associés - Google Patents
Procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia embarqué à bord d’un aéronef, programme d’ordinateur, dispositif électronique de contrôle, et serveur multimédia associés Download PDFInfo
- Publication number
- FR3118512A1 FR3118512A1 FR2014278A FR2014278A FR3118512A1 FR 3118512 A1 FR3118512 A1 FR 3118512A1 FR 2014278 A FR2014278 A FR 2014278A FR 2014278 A FR2014278 A FR 2014278A FR 3118512 A1 FR3118512 A1 FR 3118512A1
- Authority
- FR
- France
- Prior art keywords
- card
- calculation
- selected card
- cards
- software function
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004590 computer program Methods 0.000 title claims abstract description 16
- 230000006870 function Effects 0.000 claims description 153
- 230000005540 biological transmission Effects 0.000 claims description 38
- 238000012217 deletion Methods 0.000 claims description 36
- 230000037430 deletion Effects 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 19
- 238000001514 detection method Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 230000005764 inhibitory process Effects 0.000 description 9
- 239000002245 particle Substances 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 238000013475 authorization Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 230000007257 malfunction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64D—EQUIPMENT FOR FITTING IN OR TO AIRCRAFT; FLIGHT SUITS; PARACHUTES; ARRANGEMENT OR MOUNTING OF POWER PLANTS OR PROPULSION TRANSMISSIONS IN AIRCRAFT
- B64D11/00—Passenger or crew accommodation; Flight-deck installations not otherwise provided for
- B64D11/0015—Arrangements for entertainment or communications, e.g. radio, television
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Telephonic Communication Services (AREA)
Abstract
Procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia embarqué à bord d’un aéronef , programme d’ordinateur, dispositif électronique de contrôle, et serveur multimédia associés L’invention concerne un procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia destiné à être embarqué à bord d’un aéronef. Chaque carte de calcul est destinée à exécuter au moins une fonction logicielle. Le procédé est mis en œuvre par un dispositif électronique de contrôle et comprend une étape de sélection 200 d’une carte de calcul parmi l’ensemble des cartes de calcul, une première étape de pilotage 220 d’une réaffectation, à une ou plusieurs cartes de calcul autres que la carte sélectionnée, d’une ou de chaque fonction logicielle en attente d’exécution par la carte sélectionnée, et, suite à la première étape de pilotage 220, une étape de transmission 230 d’une instruction de redémarrage à la carte sélectionnée. Figure pour l'abrégé : Figure 3
Description
La présente invention concerne un procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia destiné à être embarqué à bord d’un aéronef.
L’invention concerne également un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un tel procédé de contrôle.
L’invention concerne également un serveur multimédia destiné à être embarqué à bord d’un aéronef, le serveur comprenant un ensemble de cartes de calcul dont au moins l’une est propre à exécuter un tel programme d’ordinateur.
L’invention concerne également un dispositif électronique de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia destiné à être embarqué à bord d’un aéronef.
L’invention concerne alors le domaine des systèmes de divertissement pour aéronef, également appelé système de divertissement en vol IFE (de l’anglaisI n F light E ntertainment) que l’on trouve principalement à bord des avions long-courrier de l’aviation commerciale.
De manière connue en soi, un tel système IFE comprend une pluralité de terminaux de divertissement, également appelé terminaux utilisateurs, se présentant généralement sous la forme d’écrans individuels ou de tablettes. Chaque terminal de divertissement est intégré par exemple dans le siège du passager ou dans le siège devant celui-ci.
Ainsi disposés, ces terminaux permettent au passager de consulter des contenus multimédias lors du vol (par exemple des films, des émissions de TV, des jeux, ou de la musique) et d’être informé sur le déroulement du vol (altitude, vitesse, position courant, avancement, etc.).
Dans certains cas, ces terminaux permettent également de donner certaines informations pratiques concernant par exemple l’aéroport d’arrivée et de diffuser des annonces faites par l’équipage sous la forme sonore et/ou vidéo.
Les terminaux de divertissement sont généralement raccordés par un réseau filaire ou sans fil, un serveur multimédia embarqué faisant également partie du système IFE.
Ainsi, pour accéder au contenu informatique et mettre en œuvre ces fonctions, chaque terminal accède au serveur multimédia embarqué via le réseau.
Ainsi, une erreur intervenant sur le serveur multimédia est susceptible de causer une altération du contenu qui, dans certains cas, n’est alors plus diffusable via les terminaux.
Dans le serveur multimédia, il est connu que de telles erreurs interviennent fréquemment. Parmi elles, un type commun d’erreur, est qualifié de NFF (de l’anglaisN o F ailure F ound). Ces erreurs sont caractérisées par le fait qu’elles sont corrigibles par un redémarrage électrique du serveur multimédia.
Cependant, en cours d’utilisation, un redémarrage du serveur multimédia n’est pas envisageable puisque son fonctionnement serait alors arrêté pendant quelques temps conduisant, au mieux, à une interruption de diffusion de contenu(s) de divertissement aux passagers, et au pire ; à une inhibition d’une diffusion d’information(s) importante(s) aux passagers, par exemple relativement à la sécurité des passagers.
L’invention a donc pour but de proposer un procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia, un dispositif électronique de contrôle et un programme informatique associés, permettant de corriger des erreurs du type NFF de manière plus efficace.
A cet effet, l’invention a pour objet un procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia destiné à être embarqué à bord d’un aéronef, chaque carte de calcul étant destinée à exécuter au moins une fonction logicielle,
le procédé étant mis en œuvre par un dispositif électronique de contrôle et comprenant :
- une étape de sélection d’une carte de calcul parmi l’ensemble des cartes de calcul,
- une première étape de pilotage d’une réaffectation, à une ou plusieurs cartes de calcul autres que la carte sélectionnée, d’une ou de chaque fonction logicielle en attente d’exécution par la carte sélectionnée, et
- suite à la première étape de pilotage, une étape de transmission d’une instruction de redémarrage à la carte sélectionnée.
Les erreurs NFF résultent souvent de dysfonctionnements apparaissant dans une mémoire volatile des cartes de calculs du serveur multimédia. Ces dysfonctionnements sont par exemple des perturbations par une particule isolées SEU (de l’anglaisS ingle E vent U pset). Un tel dysfonctionnement est susceptible de provoquer une corruption de données menant à des effets aléatoires, allant de la défaillance immédiate, à une propagation lente à travers le serveur multimédia.
Il est connu qu’un serveur multimédia en cours d’utilisation est susceptible de subir jusqu’à une perturbation par une particule isolée toutes les mille heures de vol. Ainsi, de tels dysfonctionnements interviennent plusieurs fois par an pour chaque aéronef.
Le procédé selon l’invention permet donc de limiter le nombre d’erreurs NFF en agissant sur les perturbations par une particule isolée affectant un serveur multimédia destiné à être embarqué à bord d’un aéronef.
On comprend alors que le procédé de contrôle permet un redémarrage des cartes de calcul, limitant alors l’apparition d’erreur(s) NFF et la propagation de perturbations par une particule isolée, tout en garantissant une continuité du traitement des fonctions logicielles.
Ainsi, lors de ce redémarrage, les perturbations par une particule isolée potentiellement présentes sur la carte sélectionnée sont supprimées lors du redémarrage de cette dernière.
De plus, le procédé de contrôle ne perturbe pas la transmission de contenu(s) entre le serveur multimédia et les terminaux de divertissement car les fonctions logicielles en attente d’exécution sur la carte sélectionnée sont copiées sur les autres cartes de calcul, qui sont aptes à les exécuter pendant le redémarrage de la carte sélectionnée.
Suivant d’autres aspects avantageux de l’invention, le procédé de contrôle comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles :
- l’étape de pilotage comprend les sous-étapes suivantes :
- envoi, à la carte sélectionnée, d’une première instruction de copie, sur au moins une autre carte de calcul, de la ou chaque fonction logicielle en attente d’exécution,
- envoi, à la carte sélectionnée, d’une première instruction de suppression de la ou chaque fonction logicielle préalablement copiée sur l’au moins une autre carte de calcul.
- l’étape de pilotage comprend en outre, entre la sous-étape d’envoi de la première instruction de copie et la sous-étape d’envoi de la première instruction de suppression, une sous-étape de réception, depuis la carte sélectionnée, d’un signal de complétion de l’exécution de chacune des fonctions logicielles en cours d’exécution sur ladite carte sélectionnée,
la sous-étape d’envoi de la première instruction de suppression étant effectuée suite à la réception du signal de complétion ou suite à l’expiration d’une première temporisation prédéfinie, et la première instruction de suppression est alors une instruction de suppression de toutes les fonctions logicielles de la carte sélectionnée,
- après l’étape de transmission d’une instruction de redémarrage, une deuxième étape de pilotage d’une réaffectation, à la carte sélectionnée, d’au moins une fonction logicielle en attente d’exécution par une carte de calcul autre que la carte sélectionnée,
- la deuxième étape de pilotage comprend les sous-étapes suivantes :
- émission, en direction d’au moins une carte de calcul autre que la carte sélectionnée, d’une deuxième instruction de copie vers la carte sélectionnée d’au moins une fonction logicielle en attente d’exécution par ladite ou lesdites autres carte de calcul, et
- émission, en direction de la ou chaque carte de calcul autre que la carte sélectionnée depuis laquelle une fonction logicielle a été préalablement copiée, d’une deuxième instruction de suppression de ladite fonction logicielle.
- entre l’étape de sélection et la première étape de pilotage, une étape de génération d’une première table à partir d’un besoin calculatoire de chaque fonction logicielle en attente d’exécution par la carte sélectionnée et d’une capacité calculatoire de chaque carte de calcul autre que la carte sélectionnée ; la première table associant, à chaque fonction logicielle en attente d’exécution par la carte sélectionnée, une carte de calcul à laquelle ladite fonction logicielle est destinée à être réaffectée, et
lors de la première étape de pilotage, chaque fonction logicielle en attente d’exécution est réaffectée selon la première table.
- chaque carte de calcul comprend au moins un processeur et une mémoire vive, et
lors de l’étape de génération, la capacité calculatoire est déterminée à partir d’une grandeur représentative de la disponibilité de l’au moins un processeur et d’une quantité de mémoire disponible de la mémoire vive, et le besoin calculatoire de chaque fonction logicielle étant exprimé en fonction de ladite grandeur et de ladite quantité de mémoire disponible.
L’invention a également pour objet un produit programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé de contrôle, tel que défini ci-dessus.
L’invention a également pour objet un serveur multimédia destiné à être embarqué à bord d’un aéronef, le serveur multimédia comprenant un ensemble de cartes de calcul, au moins l’une des cartes de calcul étant propre à exécuter un tel programme d’ordinateur.
Suivant un aspect avantageux de l’invention, le serveur multimédia comprend la caractéristique selon laquelle au moins deux des cartes de calcul comportent le programme d’ordinateur, l’ensemble de cartes de calcul étant configuré pour élire l’une des cartes de calcul, dite carte maître, parmi celles comportant le programme d’ordinateur, la carte maître étant alors propre à exécuter ledit programme d’ordinateur.
L’invention a également pour objet un dispositif électronique de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia destiné à être embarqué à bord d’un aéronef,
chaque carte de calcul étant destinée à exécuter au moins une fonction logicielle,
le dispositif électronique de contrôle comportant :
- un module de sélection configuré pour sélectionner une carte de calcul parmi l’ensemble de cartes de calcul,
- un module de pilotage configuré pour piloter une réaffectation, à une ou plusieurs cartes de calcul autres que la carte sélectionnée, d’une ou de chaque fonction logicielle en attente d’exécution par la carte sélectionnée, et
- un module de transmission configuré pour, suite à la réaffectation, envoyer une instruction de redémarrage à la carte sélectionnée.
Ces caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif et faite en référence aux dessins annexés, sur lesquels :
La représente partiellement un aéronef 10 comprenant un serveur multimédia 15.
L’aéronef 10 est de préférence un avion, en particulier un avion de l’aviation commerciale, tel qu’un avion long-courrier. L’aéronef 10 est apte à transporter des passagers, notamment quelques dizaines de passagers, voire quelques centaines de passagers.
Chaque système de divertissement embarqué à bord de l’aéronef 10 est configuré pour diffuser des contenus multimédias aux passagers de l’aéronef 10, en particulier lors du vol (par exemple des films, des émissions de TV, des jeux ou de la musique), et/ou des informations sur le déroulement du vol (altitude, vitesse, position courante, avancement, etc.) par exemple via un ou plusieurs terminaux de divertissement non-représentés.
En complément facultatif, le système de divertissement est configuré pour diffuser des informations pratiques concernant par exemple l’aéroport d’arrivée, par exemple via des annonces sous forme sonore et/ou vidéo.
Chaque terminal de divertissement est connu en soi, et est relié au serveur multimédia 15 via un réseau local, non représenté, embarqué à bord de l’aéronef 10.
Chaque terminal de divertissement est par exemple fixé ou intégré dans le siège même du passager, ou bien est fixé ou intégré dans le dossier du siège se trouvant devant le siège du passager. Les sièges sont typiquement agencés en rangées au sein de l’aéronef 10.
Chaque terminal de divertissement, également appelé terminal utilisateur, comporte une interface homme/machine IHM, un module de traitement, un module applicatif et un module de télécommunication. L’interface homme/machine IHM comporte par exemple un écran tactile, ou un écran et un clavier. Le module applicatif comprend un ou plusieurs blocs applicatifs. Le module de télécommunication comporte un bloc de contrôle et une ou plusieurs interfaces de télécommunication adaptées pour émettre et recevoir des données. Le module de traitement est adapté pour piloter et coordonner le fonctionnement du module applicatif, de l’interface homme/machine IHM et du module de télécommunication.
Dans un mode de réalisation, il comporte un processeur et une mémoire, par exemple un disque dur ou tout autre espace de stockage apte à stocker un contenu informatique reçu notamment via le module de télécommunication.
Chaque terminal de divertissement est adapté pour délivrer aux passagers le contenu offert par le système de divertissement en vol. Par exemple, suite à une sélection par un passager d’un champ affiché sur l’écran IHM de son terminal de divertissement, le module de traitement est adapté pour identifier qu’il doit être affiché un menu de sélection d’un des applicatifs, par exemple une liste de films. Puis, sur détection de la sélection d’un film par le passager, le module de traitement est adapté pour déclencher l’affichage du film sur l’écran. Outre des films, les contenus délivrés par des applicatifs peuvent être divers : des contenus multimédias, par exemple des films, des émissions de TV, des jeux ou de la musique, des paramètres du vol (altitude, vitesse, etc.) et de son avancement (par exemple à l’aide d’une « movie map »), des annonces (audio et/ou vidéo) de l’équipage.
L’écran est apte à afficher des images correspondant à un contenu informatique distribué depuis le serveur multimédia 15. Plus précisément, le contenu informatique est reçu via le module de télécommunication depuis le serveur multimédia 15 sous forme d’un flux diffusé (de l’anglaisstreaming) ou bien stocké dans la mémoire du terminal, après avoir été préalablement téléchargé depuis le serveur multimédia 15, via ledit module de télécommunication.
Le serveur multimédia 15 est par exemple réalisé sous la forme d’un coffret électronique 26 comportant une carte de fond de panier 28, plusieurs cartes électroniques 30, 31, 32, parmi lesquelles au moins une carte commutateur réseau 30, optionnellement une ou plusieurs cartes de stockage de données 31 et plusieurs cartes de calcul 32. Le serveur 15 comprend en outre, une ou plusieurs cartes d’alimentation électrique 34.
Chaque carte électronique 30, 31, 32, et chaque carte d’alimentation électrique 34 sont chacune respectivement connectées à la carte de fond de panier 28 via un connecteur fond de panier 36 respectif, comme représenté sur la . Le coffret électronique 26 comporte en outre un boitier de protection 38 à l’intérieur duquel sont logés la carte fond de panier 28 et la pluralité de carte(s) commutateur réseau 30, de cartes de stockage 31, de cartes de calcul 32 et de carte(s) d’alimentation électrique 34, et des connecteurs externes 40 agencés en périphérie du boitier 38. Les connecteurs externes 40 sont notamment destinés à la connexion du serveur multimédia 15 au réseau local embarqué, ainsi qu’à un réseau d’alimentation électrique embarqué à bord de l’aéronef 10.
Le serveur multimédia 15 comprend de préférence plusieurs cartes 30, 31, 32, 34 d’un même type fonctionnel choisi parmi le groupe consistant en : une carte commutateur réseau 30, également notée SW, une carte de stockage de données 31, également notée S, une carte de calcul 32, également notée C, et une carte d’alimentation électrique 34, également notée P, visibles sur la . Dans l’exemple de la , le serveur multimédia 15 comprend deux cartes commutateur réseau 30, une carte de stockage de données 31, quatre cartes de calcul 32 et deux cartes d’alimentation électrique 34. Dans l’exemple de la , les cartes de calcul 32 sont arbitrairement respectivement nommée, première carte de calcul C1, deuxième carte de calcul C2, troisième carte de calcul C3, et quatrième carte de calcul C4.
Avantageusement, le serveur multimédia 15 comprend six cartes de calcul 32.
Le réseau local embarqué à bord de l’aéronef 10 est un réseau uniquement filaire, ou un réseau partiellement filaire et partiellement sans fil (de l’anglaiswireless), ou encore un réseau uniquement sans fil.
Lorsque le réseau embarqué est partiellement sans fil, le serveur multimédia 15 est par exemple relié de manière filaire à un terminal de divertissement de chaque rangée de sièges, ledit terminal relié de manière filaire au serveur multimédia 15 est ensuite connecté via des liaisons sans fil aux autres terminaux de la rangée de sièges.
Chaque liaison sans fil est par exemple une liaison radioélectrique, telle qu’une liaison conforme à au moins l’une des versions de la norme IEEE 802.11, également appelée norme Wi-FiTM, ou encore une liaison conforme à la norme Li-FiTM, par exemple à la norme IEEE 802.15.7.
Chaque carte électronique 30, 31, 32 est, par exemple, du type fonctionnel carte commutateur réseau SW, ou carte de stockage de données S, ou encore carte de calcul C. Autrement dit, selon cet exemple, chaque carte électronique 30, 31, 32, est d’un unique type fonctionnel parmi le groupe consistant en : carte commutateur réseau SW, carte de stockage de données S, carte de calcul C.
Chaque carte commutateur réseau 30 est configurée pour gérer les communications avec le réseau local, d’une manière connue en soi. Chaque carte commutateur réseau 30 est apte à effectuer un aiguillage des données entre le réseau local, d’une part, et les autres cartes électroniques 31, 32 d’autre part, c’est-à-dire à mettre en œuvre une fonctionnalité de commutation réseau (de l’anglaisswitch) telle qu’une commutation Ethernet, selon une technique connue en soi et par exemple décrite dans la demande FR 19 12615 déposée le 12 novembre 2019.
Parmi les autres cartes électroniques 31, 32, chaque carte de stockage de données 31 est une carte dédiée au stockage des données, notamment du contenu informatique destiné à être distribué aux terminaux de divertissement. La carte de stockage de données 31 comporte typiquement une ou plusieurs mémoires de stockage de masse.
L’ensemble de cartes de calcul 32 est configuré pour élire, par exemple de manière aléatoire, une carte maître, notée ci-après CM, parmi l’ensemble des cartes de calcul 32. Ainsi, l’ensemble de cartes de calcul 32 comprend une carte maître CMet trois autres cartes de calcul 32. Sans perte de généralité et à titre d’exemple, il sera considéré dans la suite de la description que la carte élue maître CMest la quatrième carte de calcul C4.
En référence à la , chaque carte de calcul 32 comprend une unité centrale de traitement 45 ou CPU (de l’anglais Central Processing Unit), une mémoire vive 50 ou RAM (de l’anglais Random Access Memory) et une unité de stockage de données 55, telle qu’une mémoire morte ou ROM.
L’unité centrale de traitement 45 comprend par exemple un ou plusieurs processeurs propres à exécuter des tâches, aussi appelées fonctions ou fonctionnalités.
Ainsi, chaque carte de calcul 32 définit une mémoire volatile, comprise partiellement dans l’unité centrale de traitement 45 et dans la mémoire vive 50. La mémoire volatile stocke des données propres à être effacées lors d’un redémarrage de la carte 32.
Chaque mémoire morte 55 est apte à stocker une pluralité de fonctions logicielles 60 propres à être exécutées par l’unité centrale de traitement 45.
Dans l’exemple de la , chaque fonction logicielle 60 est soit en cours d’exécution par la carte de calcul 32 respective, i.e. par l’unité centrale de traitement 45 respective de la carte 32, comme représenté avec un remplissage noir, soit en attente d’exécution par la carte de calcul 32 respective, comme représenté avec un remplissage en blanc.
Chaque fonction logicielle 60 est par exemple un micro-service orchestré selon un système Kubernetes de l’entreprise Google, Docker Swarm de l’entreprise Docker, Inc, ou Nomad de l’entreprise HashiCorp.
On entend par micro-service, ou service unitaire, une fonction logicielle 60 apte à être exécutée indépendamment des autres. Ainsi, un tel service unitaire est par exemple déplaçable d’une carte de calcul 32 à une autre.
En outre, la mémoire morte 55 comprend un dispositif électronique de contrôle 65.
Le dispositif électronique de contrôle 65 comprend un module de sélection 70, un premier module de pilotage 75 et un module de transmission 80.
De manière optionnelle, le dispositif de contrôle 65 comprend également un module de génération 85, un module de détection 90 et un deuxième module de pilotage 95.
Comment indiqué précédemment, dans l’exemple de la , le dispositif de contrôle 65 est inclus dans la mémoire morte 55 de chaque carte de calcul 32. Ainsi, selon cet exemple, le module de sélection 70, le premier module de pilotage 75 et le module de transmission 80, et optionnellement le module de génération 85, le module de détection 90, et le deuxième module de pilotage 90 sont réalisés chacun sous forme d’un logiciel, ou d’une brique logicielle, exécutables par l’unité centrale de traitement 45. Ces modules 70, 75, 80, 85, 90 sont alors stockés dans la mémoire morte 65 sous forme d’un logiciel de sélection, d’un premier logiciel de pilotage, d’un logiciel de transmission, et optionnellement d’un logiciel de génération, d’un logiciel de détection, et d’un deuxième logiciel de pilotage.
En variante non représentée, le dispositif de contrôle 65 est un dispositif électronique distinct connecté à chaque carte de calcul 32. Dans cette variante, le module de sélection 70, le premier module de pilotage 75 et le module de transmission 80, et optionnellement le module de génération 85, le module de détection 90 et le deuxième module de pilotage 90 sont réalisés chacun sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglaisField Programmable Gate Array), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglaisApplication Specific Integrated Circuit).
Lorsque le dispositif électronique de contrôle 65 est réalisé sous forme d’un ou plusieurs logiciels, c’est-à-dire sous forme d’un programme d’ordinateur, il est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple, un médium apte à mémoriser des instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. Sur le support lisible est alors mémorisé un programme d’ordinateur comprenant des instructions logicielles.
Le module de sélection 70 est configuré pour sélectionner une carte de calcul C1, C2, C3, ou C4, parmi l’ensemble de cartes de calcul 32. La carte de calcul 32 sélectionnée par le module de sélection 70 est nommée carte sélectionnée dans la suite de la description. A cet effet, le module de sélection 70 est configuré pour sélectionner chacune des cartes de calcul 32 tour à tour selon une séquence prédéfinie se répétant cycliquement. Cette séquence prédéfinie est par exemple la séquence suivante : première carte de calcul C1, puis deuxième carte de calcul C2, puis troisième carte de calcul C3, puis quatrième carte de calcul C4. Une autre séquence prédéfinie serait : deuxième carte de calcul C2, puis troisième carte de calcul C3, puis première carte calcul C1, puis deuxième carte de calcul C2, et enfin quatrième carte de calcul C4. L’homme du métier reconnaîtra qu’il n’est pas nécessaire que chaque carte de calcul 32 soit sélectionnée en moyenne un même nombre de fois. Cependant, le procédé sera d’autant plus efficace si chaque carte de calcul 32 est sélectionnée au moins une fois.
En variante, le module de sélection 70 est configuré pour sélectionner de manière aléatoire l’une des cartes de calcul 32 de manière aléatoire, parmi l’ensemble de cartes de calcul 32.
Sans perte de généralité, à titre d’exemple et en référence à la , il est considéré ici que la carte sélectionnée est la première carte de calcul C1.
L’homme du métier remarquera que la carte maître CMest sélectionnable par le module de sélection 70 et alors apte à former la carte sélectionnée. Un tel cas où une même carte de calcul 32 forme à la fois la carte maître CMet la carte sélectionnée sera décrit ci-après sous la forme d’une variante.
Le premier module de pilotage 75 est configuré pour piloter une réaffectation, à une ou plusieurs cartes de calcul 32 autre que la carte sélectionnée, d’une ou de chaque fonction logicielle 60 en attente d’exécution par la carte sélectionnée.
Le premier module de pilotage 75 comprend une première unité d’envoi 100, une unité de réception 105, et une deuxième unité d’envoi 110.
La première unité d’envoi 100 est configurée pour envoyer, à la carte sélectionnée, une première instruction de copie, sur au moins une carte de calcul 32 autre que la carte sélectionnée, de la ou chaque fonction logicielle 60 en attente d’exécution par la carte sélectionnée. A cet effet la première unité d’envoi 100 est configurée pour envoyer, à la carte sélectionnée, via la première instruction de copie, une première table générée par le module de génération 85.
La terminologie « instruction » est utilisée dans la suite de la description comme un synonyme de la terminologie « commande ».
La première table associe à chaque fonction logicielle 60 en attente d’exécution par la carte sélectionnée, dite fonction cible, une carte de calcul 32 autre que la carte sélectionnée, dite carte cible, sur laquelle copier la fonction cible.
Chaque carte de calcul 32 implémente une fonctionnalité de copie autonome, stockée dans la mémoire morte 55, configurée pour, suite à la réception, via la première instruction de copie, de la première table, copier, la ou chaque fonction cible, sur la carte cible associée dans la première table.
En variante, la première unité d’envoi 100 est configurée pour envoyer à la carte sélectionnée et pour chaque fonction cible de la première table, une première instruction de copie respective comprenant un identifiant de ladite fonction cible et un identifiant de la carte cible associée.
Selon cette variante, chaque carte de calcul 32 implémente alors une fonctionnalité de copie unitaire, stockée dans la mémoire morte 55, configurée pour, suite à la réception, via une première instruction de copie respective, d’un couple d’identifiants de fonction cible et de carte cible, copier la ou chaque fonction cible sur la carte cible associée.
La première unité d’envoi 100 est également configurée pour envoyer, à la carte sélectionnée, une instruction d’inhibition d’affectation, à la carte sélectionnée, de fonction(s) logicielle(s) 60 respective(s). Chaque carte de calcul 32 implémente alors une fonctionnalité d’inhibition, stockée dans la mémoire morte 55, configurée pour, suite à la réception de l’instruction d’inhibition, inhiber toute(s) nouvelle(s) affectation(s), à la carte de calcul 32, de fonction(s) logicielle(s) 60 respective(s). La dénomination « assignation » est entendue comme synonymes de la dénomination « affectation ». Autrement dit, suite à la réception, par la carte sélectionnée, de l’instruction d’inhibition, toute affectation à la carte sélectionnée d’une nouvelle fonction logicielle 60 respective est interdit.
L’unité de réception 105 est configurée pour recevoir, depuis la carte sélectionnée, un premier signal de complétion indiquant que l’exécution de chaque fonction logicielle en cours d’exécution a été achevée, i.e. terminée.
La deuxième unité d’envoi 110 est configurée pour envoyer, à la carte sélectionnée, une première instruction de suppression de la ou chaque fonction logicielle 60 préalablement copiée sur au moins une carte de calcul 32 autre que la carte sélectionnée.
Chaque carte de calcul 32 implémente une fonctionnalité de suppression autonome configurée pour, suite à une réception de la première instruction de suppression, supprimer, d’elle-même, la ou chaque fonction logicielle 60 ayant été copiée sur une autre carte de calcul 32, cette suppression étant effectuée selon la première table.
En complément facultatif, la deuxième unité d’envoi 110 est configurée pour envoyer la première instruction de suppression suite à la réception, par l’unité de réception 105, du premier signal de complétion, ou suite à l’expiration d’une temporisation prédéfinie.
Selon ce complément facultatif, la fonctionnalité autonome de suppression est configurée pour, suite à la réception de la première instruction de suppression, supprimer l’intégralité des fonctions logicielles 60 sur la carte sélectionnée.
En particulier, la deuxième unité d’envoi 110 est configurée pour envoyer la première instruction de suppression suite à la réception du signal de complétion ou à l’expiration de la temporisation prédéfinie et à la copie, par la fonctionnalité de copie autonome, de chaque fonction cible. Suite à la réception de la première instruction de suppression, la fonctionnalité de suppression autonome est alors configurée pour supprimer chaque fonction cible de la carte sélectionnée.
Alternativement, la deuxième unité d’envoi 110 est configurée pour envoyer la première instruction de suppression après seulement la réception du signal de complétion ou l’expiration de la temporisation prédéfinie. La fonctionnalité de suppression autonome est alors configurée pour supprimer chaque fonction cible après réception de la première instruction de suppression et copie de chaque fonction cible sur la carte cible respective.
L’homme du métier remarquera que la présence d’une temporisation prédéfinie vise à éviter que le dispositif de contrôle 65 soit bloqué par de l’exécution d’une fonction logicielle respective 60 qui n’aboutirait pas.
Le module de transmission 80 est configuré pour transmettre une instruction de redémarrage à la carte sélectionnée, notamment suite à l’envoi de la première instruction de suppression par la deuxième unité d’envoi 110.
Chaque carte de calcul 32 implémente une fonctionnalité de redémarrage configurée pour, suite à la réception de l’instruction de redémarrage commander un redémarrage de ladite carte de calcul 32.
La dénomination redémarrage est entendue ici au sens d’un redémarrage électrique, ou encore d’une réinitialisation matérielle de la carte de calcul 32 respective. Autrement dit, lors d’un tel redémarrage, la carte de calcul 32 est hors tension pendant une durée prédéfinie. La durée prédéfinie est par exemple égale à 5 secondes. Un tel redémarrage permet alors d’assurer un effacement de toutes données dans la mémoire volatile de la carte de calcul 32. Ceci est particulièrement avantageux, car les perturbations par une particule isolée interviennent notamment au sein de la mémoire volatile de la carte 32.
Le module de génération 85 est configuré pour générer la première table, aussi appelée première table de réaffectation, associant à chaque fonction logicielle 60 destinée à être copiée, une carte de calcul 32 sur laquelle la fonction 60 est à copier. Autrement dit, le module de génération 85 est configuré pour générer la première table associant à chaque fonction cible, une carte cible respective. La carte cible est aussi appelée carte de destination.
En outre, le module de génération 85 est configuré pour générer une deuxième table associant, un ensemble de fonction(s) logicielle(s) destinée(s) à être copiée(s) sur la carte sélectionnée, à chaque carte de calcul 32 depuis laquelle la ou les fonctions sont destinées à être copiées. Chaque carte de calcul 32 présente dans la deuxième table est aussi appelée carte de départ ou carte source. Chaque fonction logicielle 60 présente dans la deuxième table est également appelée fonction source. Autrement dit, la deuxième table associe à chaque fonction source destinée à être copiée sur la carte sélectionnée après son redémarrage, une carte source respective depuis laquelle copier ladite fonction source.
A cet effet, le module de génération 85 comprend une unité d’estimation 115 d’un besoin calculatoire de chaque fonction logicielle 60 destinée à être copiée, une unité de détermination 120 d’une capacité calculatoire de chaque carte de calcul 32, et une unité d’établissement 125 configurée pour établir la première table.
L’unité d’estimation 115 est configurée pour estimer le besoin calculatoire de chaque fonction logicielle 60 destinée à être copiée, i.e. chaque fonction source et cible. A cet effet, l’unité d’estimation est configurée, pour chaque fonction logicielle 60 en attente d’exécution, pour estimer ledit besoin calculatoire sous forme d’une grandeur quantifiable représentative d’une capacité de calcul par une unité centrale de traitement 45 respective et d’une quantité de mémoire de la mémoire vive 55, requise pour l’exécution de ladite fonction. La grandeur quantifiable est par exemple exprimée en flops, préférentiellement en Mflops, Gflops ou Tflops. La grandeur quantifiable correspond typiquement à un taux d’utilisation de processeur, en particulier lorsque toutes les cartes de calcul 32 ont des capacités de calcul identiques. La quantité de mémoire de la mémoire vive 55 est aussi appelée quantité de mémoire vive.
Lorsque chaque carte de calcul 32 comprend une unité centrale de traitement 45 offrant les mêmes performances que celle d’une autre carte 32, le taux d’utilisation est exprimé sous forme de pourcentage de charge CPU maximale, aussi appelé fraction CPU, c’est-à-dire une fraction d’une capacité maximale de l’unité centrale de traitement 45.
La quantité de mémoire vive disponible est par exemple exprimée en Mbits ou en Gbits.
L’unité de détermination 120 est configurée pour déterminer la capacité calculatoire de chaque carte de calcul 32. A cet effet, l’unité de détermination 120 est configurée pour déterminer cette capacité calculatoire en fonction de la grandeur quantifiable représentative de la capacité de calcul de chaque carte de calcul 32 et de la quantité de mémoire vive disponible de chaque carte de calcul.
L’unité d’établissement 125 est configurée pour établir la première table à partir du besoin calculatoire de chaque fonction cible et de la capacité calculatoire de chaque carte cible.
A cet effet, l’unité d’établissement 125 est configurée pour associer à chaque fonction cible une carte cible apte à exécuter ladite fonction. Autrement dit, l’unité d’établissement 125 est configurée pour associer à chaque fonction cible une carte cible dont la capacité calculatoire est supérieure au besoin calculatoire de ladite fonction cible.
En complément facultatif, l’unité d’établissement 125 est configurée pour associer à chaque fonction cible, une carte cible respective de sorte à ce qu’une charge calculatoire soit répartie de manière la plus homogène possible entre toutes les cartes cibles. La charge calculatoire est entendue ici au sens du taux d’utilisation de processeur(s) et de la quantité de mémoire vive utilisée, d’une carte de calcul 32 respective.
En complément facultatif, l’unité d’établissement 125 est configurée pour établir la deuxième table à partir du besoin calculatoire de chaque fonction logicielle 60 et de la capacité calculatoire de chaque carte de calcul 32.
A cet effet, l’unité d’établissement 125 est configurée pour choisir, parmi l’ensemble de fonctions logicielles 60 en attente d’exécution sur le serveur multimédia 15, celle ou celles qui sont destinées à être réaffectées à la carte sélectionnée, i.e. la ou les fonctions sources. A cet effet, l’unité d’établissement 125 est configurée pour choisir les fonctions sources de sorte à ce que la charge calculatoire soit répartie de manière la plus homogène possible entre toutes les cartes de calcul 32.
L’unité d’établissement 125 est alors configurée pour établir la deuxième table en associant à chaque fonction source, la carte source sur laquelle la fonction source est en attente d’exécution.
Le module de détection 90 est configuré pour détecter une remise sous tension de la carte sélectionnée à la carte de fond de panier 28, suite au redémarrage de la carte sélectionnée.
Le deuxième module de pilotage 95 est configuré pour, suite à la détection de la carte sélectionnée par le module de détection 90, réaffecter une ou des fonctions logicielles 60 respectives à la carte sélectionnée. A cet effet, le deuxième module de pilotage 95 comprend une première unité d’émission 130 et une deuxième unité d’émission 140.
La première unité d’émission 130 est configurée pour envoyer, à la carte sélectionnée, une instruction d’autorisation d’une affectation de nouvelle(s) fonction(s) logicielle(s) 60 respective(s). Chaque carte de calcul 32 implémente alors une fonctionnalité d’autorisation, stockée dans la mémoire morte 55, configurée pour, suite à la réception de l’instruction d’autorisation, autoriser toute(s) nouvelle(s) affectation(s) à la carte de calcul 32 de fonction(s) logicielle(s) 60 respective(s). Autrement dit, suite à la réception de l’instruction d’autorisation, toute nouvelle affectation à la carte sélectionnée d’une fonction logicielle 60 respective est autorisée, annulant alors l’effet de la fonctionnalité d’inhibition.
La première unité d’émission 130 est configurée pour émettre, en direction d’au moins une carte de calcul 32 autre que la carte sélectionnée, une deuxième instruction de copie vers la carte sélectionnée d’au moins une fonction logicielle 60 en attente d’exécution par ladite ou lesdites cartes de calcul 32. La fonctionnalité de copie de chaque carte de calcul 32 est également configurée pour, suite à une réception de la deuxième instruction de copie, copier au moins une fonction logicielle 60 en attente d’exécution sur la carte sélectionnée.
En particulier, la première unité d’émission 130 est configurée pour émettre en direction de chaque carte de calcul 32 formant une carte source respective, la deuxième instruction de copie comprenant la deuxième table. Chaque carte source est configurée pour, suite à la réception de la deuxième table, via la deuxième instruction de copie, exécuter sa fonctionnalité de copie autonome de la ou chaque fonction source respective vers la carte sélectionnée.
En variante, la première unité d’émission 130 est configurée pour émettre en direction de chaque carte source, une deuxième instruction de copie respective comprenant un identifiant de la fonction source et un identifiant de la carte sélectionnée.
Chaque carte source est alors configurée pour, suite à la réception de chaque couple d’identifiant d’une fonction source respective et d’identifiant de la carte sélectionnée, via la deuxième instruction de copie, exécuter la fonctionnalité de copie unitaire de la fonction source identifiée, vers la carte sélectionnée.
La deuxième unité d’émission 140 est configuré pour, suite à l’émission de la ou chaque deuxième instruction de copie, émettre, en direction de chaque carte source, une deuxième instruction de suppression.
Chaque carte de calcul 32 implémente une fonctionnalité de suppression unitaire configurée pour, suite à une réception de la deuxième instruction de suppression, supprimer, de sa mémoire morte 55, la ou chaque fonction logicielle 60 ayant été copiée sur une autre carte de calcul 32, cette suppression étant effectuée selon la deuxième table.
En particulier, la deuxième unité d’émission 140 est configurée pour émettre, pour chaque carte source, la deuxième instruction de suppression après la copie de chaque fonction source. Suite à la réception de la deuxième instruction de suppression, la fonctionnalité de suppression unitaire de chaque carte source est alors configurée pour supprimer chaque fonction source de la carte source associée.
Alternativement, la deuxième unité d’envoi 140 est configurée pour émettre, pour chaque carte source, la deuxième instruction de suppression après l’émission de la ou chaque deuxième instruction de copie. Après réception de la deuxième instruction de suppression et après copie de chaque fonction source sur la carte sélectionnée, la fonctionnalité de suppression unitaire, associée à chaque carte source, est alors configurée pour supprimer chaque fonction source de chaque carte source.
Il est à noter que toute instruction envoyée ou émise depuis le dispositif de contrôle 65 transite via la carte de fond de panier 28.
Selon une première variante, au moins deux des première unité d’envoi 100, deuxième unité d’envoi 110, première unité d’émission 130, deuxième unité d’émission 140 sont communes.
Selon une deuxième variante, compatible avec la première variante, le module de sélection 70 est configuré pour sélectionner une nouvelle carte de calcul 32, dite carte nouvellement sélectionnée, parmi l’ensemble de cartes de calcul 32, suite à la détection par le module de détection 90 de la remise sous tension de la carte sélectionnée préalablement, dite préalablement sélectionnée. Les cartes préalablement sélectionnée et nouvellement sélectionnée sont alors distinctes. Le module de génération 85 est alors configuré pour alors établir simultanément, la deuxième table associée à la carte préalablement sélectionnée et la première table associée à la carte nouvellement sélectionnée. Ces première et deuxième tables comprennent alors l’ensemble des fonctions logicielles en attente d’exécution par la carte nouvellement sélectionnée, qui sont chacune destinées à être copiées sur la carte préalablement sélectionnée et déjà redémarrer. Autrement dit, ces tables ont pour but de copier toutes les fonctions en attente d’exécution par la carte nouvellement sélectionnée, sur la carte initialement sélectionnée, qui vient d’être redémarrée.
Selon une troisième variante, compatible avec les première et deuxième variantes. L’ensemble de cartes de calcul 32 est configuré pour, si le module de sélection 70 sélectionne la carte maître CMprécédemment élue, élire une nouvelle carte maître parmi les autres cartes de calcul 32 à l’exception de la carte sélectionnée.
Selon une quatrième variante, compatible avec chacune des précédentes variantes, la deuxième unité d’envoi 110 est configuré pour envoyer la deuxième instruction de suppression suite à la détection, par le module de détection 90, d’une remise sous tension de la carte sélectionnée. Dans cette quatrième variante, le deuxième module de pilotage 95 est configuré pour réaffecter des fonctions logicielles 60 respectives à la carte sélectionnée, suite à l’envoi, par la deuxième unité d’envoi 110, de la deuxième instruction de suppression.
Selon une sixième variante compatible avec chacune des variantes précédentes, le premier module de pilotage 70 et le deuxième module de pilotage 95 ne forment qu’un seul module de pilotage.
Selon une septième variante compatible avec chacune des variantes précédentes, le deuxième module de pilotage 95 comprend une unité d’acquisition non représentée, configurée pour acquérir, depuis chaque carte source, un deuxième signal de complétion lorsque ladite carte source a complétée l’exécution de l’ensemble des fonctions logicielles en cours d’exécution.
Selon cette septième variante, la deuxième unité d’émission 140 est configurée pour, suite à l’acquisition du deuxième signal de complétion, émettre la ou chaque deuxième instruction de suppression à chaque carte source. Chaque carte source est alors configurée pour exécuter sa fonctionnalité de suppression unitaire à partir de la deuxième table ou à partir de l’identifiant de la fonction source reçu via la ou chaque deuxième instruction de suppression.
Le fonctionnement du serveur multimédia 15 et plus particulièrement du dispositif électronique de contrôle 65, va maintenant être décrit en référence à la représentant un organigramme d’un procédé de fonctionnement de ce dispositif 65, et en référence à la illustrant l’effet de ce procédé sur un ensemble de trois cartes de calcul 32.
Initialement, le serveur multimédia est en fonctionnement, chaque carte de calcul 32 exécute des fonctions logicielles 60 respectives, et comprend un certain nombre de fonction(s) logicielle(s) 60 en attente d’exécution.
En référence à la , le serveur multimédia 15 comprend quatre cartes de calcul C1, C2, C3, C4 dont les trois premières sont représentées. Ainsi, toujours en référence à la , la première carte de calcul C1 comprend deux fonctions logicielles en attente d’exécution, chacune représentée par un hexagone hachuré. La deuxième carte de calcul C2 et la troisième carte de calcul C3 comprennent chacune une fonction logicielle 60 respective en attente d’exécution, repérée chacune par un hexagone blanc.
Puis, l’ensemble de cartes de calcul 32 élit la carte maître CM. Dans l’exemple de la , et sans perte de généralité, la carte maître CM est la quatrième carte C4 qui n’est pas représentée sur la .
Lors d’une étape de sélection 200, représentée sur la par la flèche F1, le module de sélection 70, inclus dans la carte maître CM, sélectionne une carte de calcul 32, parmi l’ensemble de cartes de calcul 32. Sans perte de généralité, dans l’exemple de la , la carte sélectionnée est la première carte de calcul C1. Elle est repérée par une étoile en haut à gauche.
Optionnellement, lors d’une première étape de génération 210, le module de génération 85 génère la première table. A cet effet, l’étape de génération 210 comprend par exemple une sous-étape d’estimation 212, une sous-étape de détermination 214 et une sous-étape d’établissement 216.
Lors de la sous-étape d’estimation 212, l’unité d’estimation 115 estime le besoin calculatoire de chaque fonction logicielle 60 en attente d’exécution par la carte sélectionnée, aussi appelée fonction cible, tel que décrit précédemment.
Lors de la sous-étape de détermination 214, l’unité de détermination 120 détermine la capacité calculatoire de chaque carte de calcul 32 autre que la carte sélectionnée, aussi appelée carte cible. Dans l’exemple de la , l’unité de détermination 120 détermine la capacité calculatoire de la carte maître CM, de la deuxième carte de calcul C2, et de la troisième carte de calcul C3.
Lors de la sous-étape d’établissement 216, l’unité d’établissement 125 établit la première table à partir du besoin calculatoire de chaque fonction cible et de la capacité calculatoire de chaque carte cible, en vérifiant à chaque fois que le besoin calculatoire est supérieur ou égal à la capacité calculatoire correspondante.
Lors d’une première étape de pilotage 220, le module de pilotage 75 pilote une première réaffectation, à une ou plusieurs cartes de calcul 32 autres que la carte sélectionnée, d’une ou de chaque fonction cible. A cet effet, la première étape de pilotage comprend une sous-étape d’envoi 222, une sous-étape de réception 224 et une sous-étape d’envoi 226.
Lors de la première sous-étape d’envoi 222, représentée sur la par la flèche F2, la première unité d’envoi 100 envoie, à la carte sélectionnée, la première instruction de copie comprenant la première table. Puis, la carte sélectionnée exécute sa fonctionnalité autonome de copie afin de copier chacune de ses fonctions logicielles 60 en attente d’exécution, vers la carte cible respective, définie selon la première table. En référence à la , une première fonction cible est copiée sur la deuxième carte de calcul C2 et une deuxième fonction cible est copiée sur la troisième carte de calcul C3 chaque fois depuis la carte sélectionnée C1. Sur la , la première fonction cible et la deuxième fonction cible respectivement copiées sur la deuxième carte de calcul C2 et la troisième carte de calcul C3 sont représentées par des hexagones hachurés.
Lors de la première sous-étape d’envoi 222, la première unité d’envoi 100 envoie également l’instruction d’inhibition d’assignation d’une nouvelle fonction logicielle 60 respective à la carte sélectionnée C1. Suite à la réception de l’instruction d’inhibition, la carte sélectionnée C1exécute la fonctionnalité d’inhibition, stockée dans la mémoire morte 55, inhibant toute assignation, ou affectation, de nouvelle(s) fonction(s) logicielle(s) 60 respective(s) à la carte sélectionnée C1.
Lors de la sous-étape de réception 224, l’unité de réception 105 reçoit, depuis la carte sélectionnée, le premier signal de complétion.
Lors de la deuxième sous-étape d’envoi 226, représentée sur la par la flèche F3, suite à la réception du premier signal de complétion par l’unité de réception 105, la deuxième unité d’envoi 110 envoie, à la carte sélectionnée, la première instruction de suppression.
Suite à cet envoi, la carte sélectionnée C1exécute sa fonctionnalité de suppression autonome, supprimant alors de sa mémoire morte 55 chaque fonction cible. Sur la , chaque fonction cible supprimée est représentée par un hexagone dont les contours sont en traits pointillés.
Ensuite, lors d’une étape de transmission 230, représentée par la flèche F4sur la , le module de transmission 80 transmet l’instruction de redémarrage à la carte sélectionnée.
Suite à la réception de cette instruction de redémarrage, la carte sélectionnée C1exécute sa fonctionnalité de redémarrage. Suite à l’exécution de cette fonctionnalité, la carte sélectionnée C1est hors tension durant environ cinq secondes. Sur la , ce redémarrage est représenté par un éclair.
Suite au redémarrage de la carte sélectionnée C1, lors d’une étape de détection 240, le module de détection 90 détecte la remise sous tension de la carte sélectionnée C1. Une telle détection signifie que la carte sélectionnée n’est plus hors tension et que son redémarrage est terminé.
Lors d’une deuxième étape de génération 250, le module de génération 85 génère la deuxième table, tel que décrit précédemment.
A cet effet, lors de la deuxième étape de génération 250, l’unité d’estimation 115 estime le besoin calculatoire de chaque fonction logicielle 60. L’unité de détermination 120 détermine la capacité calculatoire de chaque carte de calcul 32. L’unité d’établissement 125 établit la deuxième table en choisissant la ou chaque fonction source de sorte à ce que la charge de calcul soit répartie de manière homogène sur l’ensemble de cartes de calcul 32.
Puis, lors d’une deuxième étape de pilotage 260, représentée sur la par la flèche F5, le deuxième module de pilotage 95 pilote la deuxième réaffectation, à la carte sélectionnée, d’au moins une fonction logicielle 60 en attente d’exécution par une carte de calcul autre que la carte sélectionnée qui vient d’être redémarrée. La deuxième étape de pilotage 260 comprend par exemple une première sous-étape d’émission 262 et une deuxième sous-étape d’émission 266.
Lors de la première sous-étape d’émission 262, la première unité d’émission 130 émet, en direction de la carte sélectionnée, l’instruction d’autorisation d’affection de nouvelle(s) fonction(s) logicielle(s) respective(s). Suite à la réception de l’instruction d’autorisation, la carte sélectionnée C1exécute la fonctionnalité d’autorisation stockée dans sa mémoire morte 55, afin d’autoriser toute affectation, ou assignation, de nouvelle(s) fonction(s) logicielle(s) 60 respective à elle-même, annulant ainsi l’effet de la fonctionnalité d’inhibition.
Lors de la première sous-étape d’émission 260, la première unité d’émission 130 émet la deuxième instruction de copie comprenant la deuxième table, en direction de chaque carte de calcul 32 autre que la carte sélectionnée. Suite à la réception de la deuxième instruction de copie, chaque carte source exécute sa fonctionnalité autonome de copie afin de copier la ou les fonctions source identifiées dans la deuxième table, sur la carte sélectionnée qui vient d’être redémarrée.
Puis, suite à l’émission 262 de chaque deuxième instruction de copie, lors de la deuxième sous-étape d’émission 266, la deuxième unité d’émission 125 émet, en direction de la ou chaque carte de calcul 32 depuis laquelle au moins une fonction logicielle 60 respective a été copiée, la deuxième instruction de suppression. Puis, suite à la réception de la deuxième instruction de suppression, chaque carte de calcul 32 respective exécute sa fonctionnalité de suppression, afin de supprimer, de sa mémoire morte 55, la ou les fonctions logicielles 60 ayant été copiées sur la carte sélectionnée.
Le procédé est ensuite optionnellement réitéré. Lors de cette réitération, lors de l’étape de sélection 200, une autre carte de calcul 32 est sélectionnée. Ainsi, par itérations successives de ce procédé, chaque carte de calcul 32 est redémarrée régulièrement, permettant de supprimer les perturbations par une particule isolée.
Ci-dessous sont décrites des variantes de fonctionnement du dispositif de contrôle 65 selon l’invention. Les éléments communs entre le fonctionnement des variantes et le fonctionnement décrit ci-dessus ne seront pas décrits de nouveau. Ainsi seules les différences sont précisées dans la description desdites variantes de fonctionnement.
Selon une première variante de fonctionnement, représentée sur la par les flèches en trait pointillé F3’, F4’ et F5’, la deuxième sous-étape d’envoi 226 est mise en œuvre à la suite de l’étape de détection 240. Ainsi, suite à la réception 224 du premier signal de complétion, le dispositif de contrôle 65 passe à l’étape de transmission 222, représentée par la flèche F3’, puis à l’étape de détection 240 et ensuite à la deuxième sous-étape d’envoi 226 pour supprimer les fonctions logicielles de la carte sélectionnée C1 suite à son redémarrage, représentée par la flèche F4’. Suite à la deuxième sous-étape d’envoi 226, le dispositif de contrôle 65 passe à la deuxième étape de génération 250, puis à la deuxième étape de pilotage 260 représentée par la flèche F5’.
Selon une deuxième variante de fonctionnement non-représentée, compatible avec la première variante de fonctionnement, la copie des fonctions cibles est gérée par le dispositif de contrôle 65, la carte sélectionnée C1exécutant chaque copie de fonction cible vers la carte cible au fur et à mesure des premières instructions de copie reçues.
Selon cette deuxième variante, lors de la première sous-étape d’envoi 222, la première unité d’envoi 100 envoie, à la carte sélectionnée, pour chaque fonction cible de la première table, une première instruction de copie respective comprenant l’identifiant de ladite fonction cible et l’identifiant de la carte cible associée dans la première table.
Selon cette deuxième variante, la fonctionnalité de copie unitaire de la carte sélectionnée est configurée pour être exécutée pour chaque identifiant de fonction cible reçu et pour chaque identifiant de carte cible reçu, dans la ou l’une des premières instructions de copie.
De manière analogue, selon une troisième variante de fonctionnement non-représentée, compatible avec les première et deuxième variantes de fonctionnement, la copie des fonctions sources est gérée par le dispositif de contrôle 65, chaque carte source C2, C3exécutant chaque copie de fonction source vers la carte sélectionnée C1 au fur et à mesure des deuxièmes instructions de copie reçues.
Selon cette troisième variante, lors de la première sous-étape d’émission 262, la première unité d’émission 115 émet, pour chaque fonction source de la deuxième table, en direction de la carte source associée, une deuxième instruction de copie respective comprenant l’identifiant de ladite fonction source et l’identifiant de la carte sélectionnée.
Selon cette troisième variante, la fonctionnalité de copie unitaire de chaque carte source est configurée pour être exécutée pour chaque identifiant de fonction source reçu, dans la ou l’une des instructions de copie reçues.
Selon la variante non-représentée dans laquelle le deuxième module de pilotage 95 comprend une unité d’acquisition, le procédé comprend, entre la première sous-étape d’émission 262 et la deuxième sous-étape d’mission 266, une sous-étape d’acquisition, lors de laquelle l’unité d’acquisition acquiert, depuis la ou chaque carte de calcul 32 depuis laquelle une fonction logicielle 60 a été copiée, le deuxième signal de complétion.
Selon cette dernière variante, suite à l’acquisition du deuxième signal de complétion le dispositif de contrôle 65 passe pour chaque carte source, à la deuxième sous-étape d’émission 266 lors de laquelle chaque deuxième instruction de suppression est émise vers une carte source respective, conduisant à la suppression de chaque fonction source de la mémoire morte 55 de la carte source respective.
Avec le procédé selon l’invention, la carte sélectionnée est ainsi redémarrée, après avoir copiée chacune de ses fonctions logicielles 60 en attente d’exécution, sur une autre carte de calcul 32, ce qui permet de supprimer les perturbations par une particule isolée, ou SEU, sans perte desdites fonction(s) logicielle(s) 60, ceci afin d’offrir un divertissement sans interruption pour l’utilisateur du système IFE.
En outre, la deuxième étape de pilotage 260 permet de réaffecter à la carte sélectionnée des fonctions logicielles 60 respectives suite à son redémarrage. Ainsi, la perte de puissance de calcul, liée au fait que l’ensemble des fonctions logicielles 60 soit momentanément réparti sur un plus faible nombre de cartes de calcul, est temporairement très limitée. En effet, la durée d’une telle situation est légèrement supérieure au temps pendant lequel la carte sélectionnée est hors tension, c’est-à-dire environ cinq secondes.
On comprend donc bien que le procédé selon l’invention permet de réduire le nombre d’erreurs NFF en réduisant très fortement le nombre de perturbations par une particule isolée de par le redémarrage de la carte sélectionnée, et préférentiellement de par le redémarrage régulier de chacun des cartes de calcul 32.
Claims (11)
- Procédé de contrôle d’un ensemble de cartes de calcul (32) d’un serveur multimédia (15) destiné à être embarqué à bord d’un aéronef (10),
chaque carte de calcul (32) étant destinée à exécuter au moins une fonction logicielle (60),
le procédé étant mis en œuvre par un dispositif électronique de contrôle (65) et comprenant:
- une étape de sélection (200) d’une carte de calcul (32) parmi l’ensemble des cartes de calcul (32),
- une première étape de pilotage (220) d’une réaffectation, à une ou plusieurs cartes de calcul (32) autres que la carte sélectionnée, d’une ou de chaque fonction logicielle (60) en attente d’exécution par la carte sélectionnée, et
- suite à la première étape de pilotage (220), une étape de transmission (230) d’une instruction de redémarrage à la carte sélectionnée. - Procédé selon la revendication 1, dans lequel l’étape de pilotage (210) comprend les sous-étapes suivantes :
- envoi (222), à la carte sélectionnée, d’une première instruction de copie, sur au moins une autre carte de calcul (32), de la ou chaque fonction logicielle (60) en attente d’exécution,
- envoi (226), à la carte sélectionnée, d’une première instruction de suppression de la ou chaque fonction logicielle (60) préalablement copiée sur l’au moins une autre carte de calcul (32). - Procédé selon la revendication 2, dans lequel l’étape de pilotage (220) comprend en outre, entre la sous-étape d’envoi (222) de la première instruction de copie et la sous-étape d’envoi (226) de la première instruction de suppression, une sous-étape de réception (224), depuis la carte sélectionnée, d’un signal de complétion de l’exécution de chacune des fonctions logicielles (60) en cours d’exécution sur ladite carte sélectionnée,
la sous-étape d’envoi (226) de la première instruction de suppression étant effectuée suite à la réception (224) du signal de complétion ou suite à l’expiration d’une première temporisation prédéfinie, et la première instruction de suppression est alors une instruction de suppression de toutes les fonctions logicielles (60) de la carte sélectionnée. - Procédé selon l’une quelconque des revendications précédentes, comprenant en outre, après l’étape de transmission (230) d’une instruction de redémarrage, une deuxième étape de pilotage (260) d’une réaffectation, à la carte sélectionnée, d’au moins une fonction logicielle (60) en attente d’exécution par une carte de calcul (32) autre que la carte sélectionnée.
- Procédé selon la revendication 4, dans lequel la deuxième étape de pilotage (260) comprend les sous-étapes suivantes :
- émission (262), en direction d’au moins une carte de calcul (32) autre que la carte sélectionnée, d’une deuxième instruction de copie vers la carte sélectionnée d’au moins une fonction logicielle (60) en attente d’exécution par ladite ou lesdites autres carte de calcul (32), et
- émission (266), en direction de la ou chaque carte de calcul (32) autre que la carte sélectionnée depuis laquelle une fonction logicielle (60) a été préalablement copiée, d’une deuxième instruction de suppression de ladite fonction logicielle (60). - Procédé selon l’une quelconque des revendications précédentes, comprenant en outre, entre l’étape de sélection (200) et la première étape de pilotage (220), une étape de génération (210) d’une première table à partir d’un besoin calculatoire de chaque fonction logicielle (60) en attente d’exécution par la carte sélectionnée et d’une capacité calculatoire de chaque carte de calcul (32) autre que la carte sélectionnée ; la première table associant, à chaque fonction logicielle (60) en attente d’exécution par la carte sélectionnée, une carte de calcul (32) à laquelle ladite fonction logicielle (60) est destinée à être réaffectée, et
lors de la première étape de pilotage (220), chaque fonction logicielle (60) en attente d’exécution est réaffectée selon la première table. - Procédé selon la revendication précédente, dans lequel chaque carte de calcul (32) comprend au moins un processeur (45) et une mémoire vive (50), et
lors de l’étape de génération (210), la capacité calculatoire est déterminée à partir d’une grandeur représentative de la disponibilité de l’au moins un processeur (45) et d’une quantité de mémoire disponible de la mémoire vive (50), et le besoin calculatoire de chaque fonction logicielle étant exprimé en fonction de ladite grandeur et de ladite quantité de mémoire disponible. - Programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé selon l’une quelconque des revendications précédentes.
- Serveur multimédia (15) destiné à être embarqué à bord d’un aéronef (10), le serveur multimédia (15) comprenant un ensemble de cartes de calcul (32), au moins l’une des cartes de calcul (32) étant propre à exécuter le programme d’ordinateur selon la revendication précédente.
- Serveur multimédia (15) selon la revendication précédente, dans lequel au moins deux des cartes de calcul (32) comportent le programme d’ordinateur selon la revendication 8, l’ensemble de cartes de calcul (32) étant configuré pour élire l’une des cartes de calcul (32), dite carte maître (CM), parmi celles comportant le programme d’ordinateur, la carte maître (CM) étant alors propre à exécuter ledit programme d’ordinateur.
- Dispositif électronique de contrôle (65) d’un ensemble de cartes de calcul (32) d’un serveur multimédia (15) destiné à être embarqué à bord d’un aéronef (10),
chaque carte de calcul (32) étant destinée à exécuter au moins une fonction logicielle (60),
le dispositif électronique de contrôle (65) comportant :
- un module de sélection (70) configuré pour sélectionner une carte de calcul (32) parmi l’ensemble de cartes de calcul (32),
- un module de pilotage (80) configuré pour piloter une réaffectation, à une ou plusieurs cartes de calcul (32) autres que la carte sélectionnée, d’une ou de chaque fonction logicielle (60) en attente d’exécution par la carte sélectionnée, et
- un module de transmission (85) configuré pour, suite à la réaffectation, envoyer une instruction de redémarrage à la carte sélectionnée.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2014278A FR3118512B1 (fr) | 2020-12-30 | 2020-12-30 | Procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia embarqué à bord d’un aéronef, programme d’ordinateur, dispositif électronique de contrôle, et serveur multimédia associés |
US18/259,981 US20240054010A1 (en) | 2020-12-30 | 2021-12-28 | Method for controlling a set of computer boards of a media server on-board an aircraft, associated computer program, electronic control device and media server |
PCT/EP2021/087749 WO2022144368A1 (fr) | 2020-12-30 | 2021-12-28 | Procédé de contrôle d'un ensemble de cartes de calcul d'un serveur multimédia embarqué à bord d'un aéronef, programme d'ordinateur, dispositif électronique de contrôle, et serveur multimédia associés |
JP2023540183A JP2024503334A (ja) | 2020-12-30 | 2021-12-28 | 航空機に搭載されたメディアサーバのコンピュータボードのセットを制御するための方法、関連するコンピュータプログラム、電子制御デバイス、及びメディアサーバ |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2014278 | 2020-12-30 | ||
FR2014278A FR3118512B1 (fr) | 2020-12-30 | 2020-12-30 | Procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia embarqué à bord d’un aéronef, programme d’ordinateur, dispositif électronique de contrôle, et serveur multimédia associés |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3118512A1 true FR3118512A1 (fr) | 2022-07-01 |
FR3118512B1 FR3118512B1 (fr) | 2023-02-24 |
Family
ID=74669124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2014278A Active FR3118512B1 (fr) | 2020-12-30 | 2020-12-30 | Procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia embarqué à bord d’un aéronef, programme d’ordinateur, dispositif électronique de contrôle, et serveur multimédia associés |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240054010A1 (fr) |
JP (1) | JP2024503334A (fr) |
FR (1) | FR3118512B1 (fr) |
WO (1) | WO2022144368A1 (fr) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090217087A1 (en) * | 2008-02-27 | 2009-08-27 | Eiji Nakajima | Computer device, continuing operation method for computer device, and program |
US20100318834A1 (en) * | 2009-06-16 | 2010-12-16 | Airbus Operations (S.A.S.) | Method and device for avionic reconfiguration |
US7904546B1 (en) * | 2004-09-27 | 2011-03-08 | Alcatel-Lucent Usa Inc. | Managing processes on a network device |
US20150058659A1 (en) * | 2013-08-21 | 2015-02-26 | Dell Inc | Automatic failover in modular chassis systems |
-
2020
- 2020-12-30 FR FR2014278A patent/FR3118512B1/fr active Active
-
2021
- 2021-12-28 US US18/259,981 patent/US20240054010A1/en active Pending
- 2021-12-28 JP JP2023540183A patent/JP2024503334A/ja active Pending
- 2021-12-28 WO PCT/EP2021/087749 patent/WO2022144368A1/fr active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904546B1 (en) * | 2004-09-27 | 2011-03-08 | Alcatel-Lucent Usa Inc. | Managing processes on a network device |
US20090217087A1 (en) * | 2008-02-27 | 2009-08-27 | Eiji Nakajima | Computer device, continuing operation method for computer device, and program |
US20100318834A1 (en) * | 2009-06-16 | 2010-12-16 | Airbus Operations (S.A.S.) | Method and device for avionic reconfiguration |
US20150058659A1 (en) * | 2013-08-21 | 2015-02-26 | Dell Inc | Automatic failover in modular chassis systems |
Also Published As
Publication number | Publication date |
---|---|
WO2022144368A1 (fr) | 2022-07-07 |
FR3118512B1 (fr) | 2023-02-24 |
US20240054010A1 (en) | 2024-02-15 |
JP2024503334A (ja) | 2024-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3238056B1 (fr) | Methode d'ordonnancement de taches au niveau des noeuds d'un cluster informatique, ordonnanceur de taches et cluster associes | |
CN102523243B (zh) | 在简单拓扑的分布式系统中提供快速标头选择的系统和方法 | |
EP2353256A1 (fr) | Determination et gestion de reseaux virtuels | |
EP3506096A1 (fr) | Calculateur électronique de mise en oeuvre d'au moins une fonction critique, dispositif électronique, procédé et programme d'ordinateur associés | |
EP3470986B1 (fr) | Procédé et dispositif de surveillance d'une application logicielle avionique via sa durée d'exécution, programme d'ordinateur et système avionique associés | |
EP0611171B1 (fr) | Système de synchronisation de tâches redondantes | |
EP3555745B1 (fr) | Dispositif de chargement de données dans des unités informatiques de traitement depuis une source de données | |
EP2209009B1 (fr) | Procédé de commande d'un aéronef mettant en oeuvre un système de vote | |
EP0874310A1 (fr) | Procédé pour changer de version de logiciel dans un système informatique comportant plusieurs stations, et système informatique pour la mise en oeuvre de ce procédé | |
EP3599552B1 (fr) | Procédé et dispositif électronique d'installation d'applications logicielles avioniques sur une plateforme comprenant un processeur multicoeurs, programme d'ordinateur et système électronique associés | |
FR3118512A1 (fr) | Procédé de contrôle d’un ensemble de cartes de calcul d’un serveur multimédia embarqué à bord d’un aéronef, programme d’ordinateur, dispositif électronique de contrôle, et serveur multimédia associés | |
EP2709008B1 (fr) | Procédé et dispositif de décompte du temps déporté pour unité de traitement dans un système de traitement de l'information | |
FR3101450A1 (fr) | Procédé de stockage de données dans un espace de stockage de données d'un serveur, dispositif de gestion de stockage associé et serveur comprenant un tel dispositif | |
EP3460664B1 (fr) | Procédé de gestion de modules logiciels embarqués pour un calculateur électronique d'un appareil électrique de coupure | |
EP3660677A1 (fr) | Procédé et dispositif de surveillance d'application(s) logicielle(s) avec période temporelle tampon précédant une section réservée pour un ensemble de ressource(s) partagée(s), programme d'ordinateur et système avionique associés | |
BE1029291B1 (fr) | Procédé et système d'affichage digital pour publicité extérieure | |
EP0784270B1 (fr) | Procédé pour ordonnancer une pluralité de messages provenant respectivement d'une pluralité de sources, et système pour la mise en oeuvre de ce procédé | |
FR3103073A1 (fr) | Serveur multimedia destine a etre embarque a bord d'un aeronef, systeme electronique de divertissement comprenant un tel serveur, procede de configuration logicielle d'un tel serveur et programme d'ordinateur associe | |
FR3094595A1 (fr) | Serveur multimédia destiné à être embarqué à bord d'un aéronef, système électronique de divertissement comprenant un tel serveur, procédé de mise à jour d'un tel serveur et programme d'ordinnateur associé | |
US9961027B2 (en) | Email webclient automatic failover | |
WO2020178437A1 (fr) | Ordonnanceur d'evenements pour microprocesseur | |
WO2021058743A1 (fr) | Serveur multimédia pour un système de divertissement embarqué, système de divertissement embarqué comprenant un tel serveur, procédé de contrôle de stockage dans un tel serveur et programme d'ordinateur associé | |
EP4016297A1 (fr) | Procédé de gestion de l'exécution d'applications stockées dans un terminal | |
EP3032440A1 (fr) | Procédé et dispositif d'utilisation de contenus d'une bibliothèque de contenus | |
CA2740936A1 (fr) | Procede et dispositif de simulation d'un logiciel a executer dans un systeme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20220701 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |