FR 3159244 A1 20250815 FR 2401429 A 20240214 Selon un aspect, il est proposé un système informatique comprenant : - un premier processeur, dit processeur émetteur (CPU1), et un deuxième processeur, dit processeur destinataire (CPU2), - une première mémoire, dite mémoire d’origine (MEM1), associée au processeur émetteur (CPU1), et une deuxième mémoire, dite mémoire de destination (MEM2), associée au processeur destinataire, ladite mémoire d’origine étant configuré pour stocker des données pouvant être destinées au processeur destinataire , - un module de transmission (TRM) contrôlé par le processeur émetteur (CPU1) et par le processeur destinataire (CPU2), le module de transmission (TRM) étant configuré pour transférer un message (MSG) comprenant des données destinées au processeur destinataire depuis la mémoire d’origine (MEM1) vers la mémoire de destination (MEM2). Figure pour l’abrégé : Figure 1 SYSTEME INFORMATIQUE CONFIGURÉ POUR PARTAGER DES DONNÉES ENTRE DEUX PROCESSEURS Des modes de réalisation et de mise en œuvre concernent les systèmes informatiques, et plus particulièrement la communication de données entre plusieurs processeurs d’un système informatique. Certains systèmes informatiques présentent plusieurs processeurs (désignés également par l’expression « cœurs » ou par l’expression unités centrales de traitement, en anglais « Central Processing Unit »). Ces processeurs peuvent être programmés pour échanger des données. L’échange de données entre processeurs est également désigné par l’expression « inter-communication entre processeur » (ou par l’acronyme « IPC » de l’anglais « Inter-Processor Communication » (IPC)). L’échange de données entre processeurs peut être utile pour diverses applications pour que les processeurs puissent se coordonner ou collaborer. Par exemple, un premier processeur peut être utilisé pour contrôler une acquisition de données par un capteur et un deuxième processeur peut être utilisé pour traiter les données acquises. Dans ce cas, les données acquises à l’aide du premier processeur sont mises à disposition du deuxième processeur afin que ce dernier puisse les traiter. En particulier, les processeurs peuvent échanger des données via une mémoire partagée. L’utilisation d’une mémoire partagée permet aux processeurs d’accéder à des données stockées dans une même zone de la mémoire partagée. Cette mémoire partagée permet donc de d’échanger des données entre les processeurs. Cette zone de la mémoire partagée est définie lors d’une phase de développement des programmes informatiques mis en œuvre par les deux processeurs. Plus particulièrement, il convient de définir la mémoire partagée dans des fichier de liaison (en anglais « linker files ») pour les deux processeurs. Ainsi, il convient de s’accorder de la mémoire partagée dès le développement des programmes informatiques mis en œuvre par deux processeurs. En outre, il est également important de définir dès ce développement la taille des zones de mémoire partagées recevant les données partagées. L’usage d’une mémoire partagée présente également l’inconvénient d’impliquer une copie des données partagées. En particulier, le processeur émetteur copie les données depuis une mémoire d’origine dans la mémoire partagée. Le processeur receveur peut ensuite utiliser puis effacer les données copiées dans la mémoire partagée ou bien les copier dans une autre mémoire afin de recevoir de nouvelles données dans la même zone de mémoire partagée. En outre, le transfert des données partagées est contrôlé directement par le processeur émetteur et par le processeur destinataire. Ainsi, le processeur émetteur et le processeur destinataire ne peuvent traiter d’autres tâches tant qu’ils contrôlent le transfert des données partagées. Il est également important d’éviter que le processeur émetteur écrive de nouvelles données dans la mémoire partagées avant que le processeur destinataire ait lu les précédentes données. Pour se synchroniser, le processeur émetteur et le processeur destinataire émettent alors des interruptions. En particulier, le processeur émetteur est configuré pour générer une interruption pour informer le processeur destinataire que de nouvelles données sont disponibles dans la mémoire partagée. Le processeur destinataire est quant à lui configuré pour générer une interruption une fois qu’il a lu les données partagées. Cette gestion des interruptions par les processeurs ne permet pas non plus de mettre les processeurs dans un mode de consommation réduite pendant le transfert des données. Il existe donc un besoin de proposer une solution permettant de simplifier la communication de données entre plusieurs processeurs. Selon un aspect, il est proposé un système informatique comprenant : - un premier processeur, dit processeur émetteur, et un deuxième processeur, dit processeur destinataire, - une première mémoire, dite mémoire d’origine, associée au processeur émetteur, et une deuxième mémoire, dite mémoire de destination, associée au processeur destinataire, ladite mémoire d’origine étant configurée pour stocker des données pouvant être destinées au processeur destinataire, - un module de transmission contrôlé par le processeur émetteur et par le processeur destinataire, le module de transmission étant configuré pour transférer un message comprenant des données destinées au processeur destinataire depuis la mémoire d’origine vers la mémoire de destination. Le système informatique permet d’utiliser un module de transmission pour transférer des messages à partir d’une mémoire d’origine, associée et définie par un processeur émetteur, vers une mémoire de destination, associée et définie par un processeur destinataire. Un tel système informatique permet d’éviter une utilisation d’une mémoire partagée entre deux processeurs. Il n’est donc pas nécessaire de définir une zone statique à partager de la mémoire pour les deux processeurs. Chaque processeur peut définir sa propre zone mémoire dans laquelle stocker le message sans s’accorder avec l’autre processeur. En outre, un tel système informatique présente l’avantage de permettre au processeur émetteur et au processeur destinataire d’effectuer d’autres tâches dès que le début du transfert du message. En effet, le module de transmission s’occupe entièrement du transfert du message. Le processeur émetteur et le processeur destinataire ne procède donc pas d’eux-mêmes au transfert du message. Le processeur émetteur et le processeur destinataire peuvent également passer dans un mode de consommation réduite jusqu’à la fin du transfert du message. Avantageusement, le module de transmission est un contrôleur d’accès direct à la mémoire. Dans un mode de réalisation avantageux, le module de transmission comprend un premier registre contrôlé par le processeur émetteur et configuré pour autoriser un transfert dudit message par ledit module de transmission. De préférence, le module de transmission comprend un deuxième registre contrôlé par le processeur émetteur et configuré pour stocker une adresse d’origine pointant une zone de la mémoire d’origine comprenant les données du message à transférer. Ainsi, le processeur émetteur peut définir dynamiquement sa propre zone mémoire dans laquelle stocker les données à transférer. Dans un mode de réalisation avantageux, le module de transmission comprend un troisième registre contrôlé par le processeur destinataire et configuré pour stocker une adresse de destination pointant vers une zone de la mémoire de destination destinée à recevoir les données dudit message à transférer. Ainsi, le processeur destinataire peut définir dynamiquement sa propre zone mémoire dans laquelle stocker les données du message transmis. De préférence, le module de transmission comprend un quatrième registre contrôlé par le processeur destinataire et configuré pour stocker une longueur du message à transférer. Avantageusement, le processeur émetteur est configuré pour accéder en lecture au quatrième registre et pour démarrer le transfert du message par le module de transmission une fois que la longueur du message a été définie par le processeur destinataire dans le quatrième registre. Cela permet d’effectuer une communication entre le processeur émetteur et le processeur destinataire en utilisant un contrôleur d’accès direct à la mémoire déjà existant, sans modifier le système informatique. De préférence, le processeur émetteur est configuré pour détecter que la longueur du message a été définie par le processeur destinataire lorsque la valeur stockée dans le quatrième registre est différente de zéro. Dans un mode de réalisation avantageux, le module de transmission comprend un registre de synchronisation, le processeur destinataire étant configuré pour stocker une information dans le registre de synchronisation permettant d’indiquer que la mémoire de destination est prête à recevoir le message, le module de transmission étant configuré pour générer un signal d’interruption destiné au processeur émetteur lorsque le registre de synchronisation indique que la mémoire de destination est prête à recevoir le message. Un tel signal d’interruption permet d’informer simplement au processeur émetteur que le processeur destinataire est prêt pour le transfert du message. En outre, le processeur émetteur peut passer dans un mode de consommation réduite ou bien effectuer d’autres tâches en attendant de recevoir le signal d’interruption. De préférence, le module de transmission comprend un registre de contrôle d’accès configuré pour définir des autorisations d’accès aux registres du module de transmission pour le processeur émetteur et pour le processeur destinataire. Avantageusement, le module de transmission est configuré pour générer un premier signal d’interruption destiné au processeur destinataire lorsqu’un transfert d’un message destiné au processeur destinataire est terminé. De préférence, le module de transmission est configuré pour générer un deuxième signal d’interruption destiné au processeur émetteur lorsqu’un transfert d’un message destiné au processeur destinataire est terminé. Avantageusement, le module de transmission comprend un cinquième registre configuré pour stocker une information contextuelle indiquant une fin de transfert du message, le processeur destinataire étant configuré pour effacer ce cinquième registre afin d’acquitter la réception d’un nouveau message et de permettre au module de transmission de générer de nouveaux signaux d’interruption lors d’un prochain transfert de message. Dans un mode de réalisation avantageux, le module de transmission est configuré pour décrémenter au cours du transfert la valeur stockée dans le quatrième registre et initialisée à la longueur du message, le premier signal d’interruption et le deuxième signal d’interruption étant générés lorsque la valeur stockée dans le quatrième registre atteint zéro. Avantageusement, l’adresse stockée dans le deuxième registre du module de transmission pointe vers une liste chaînée dans la mémoire d’origine comprenant une succession d’adresses pointant vers différentes zones mémoire comportant des données destinées au processeur destinataire, le module de transmission étant configuré pour transmettre successivement des messages comprenant les données des différents zones mémoire pointées par ladite liste chaînée. Selon un autre aspect, il est proposé un procédé mis en œuvre par un système informatique comprenant : - un premier processeur, dit processeur émetteur, et un deuxième processeur, dit processeur destinataire, - une première mémoire, dite mémoire d’origine, associée au processeur émetteur, et une deuxième mémoire, dite mémoire de destination, associée au processeur destinataire, ladite mémoire d’origine étant configurée pour stocker des données pouvant être destinées au processeur destinataire, - un module de transmission, le procédé comprenant : - un contrôle du module de transmission par le processeur émetteur et par le processeur destinataire afin d’initialiser un transfert d’un message comprenant des données destinées au processeur destinataire depuis la mémoire d’origine vers la mémoire de destination, puis - un transfert dudit message par le module de transmission depuis la mémoire d’origine vers la mémoire de destination. D’autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée de mode de réalisation et de mise en œuvre, nullement limitatifs, et des dessins annexés sur lesquels : FIG. 1 ; FIG. 2 ; FIG. 3 FIG. 4 ; FIG. 5 ; et FIG. 6 illustrent schématiquement des modes de mise en œuvre et de réalisation de l’invention. La FIG. 1 illustre un mode de réalisation d’un système informatique SYS. Le système informatique SYS peut être un microcontrôleur. Par exemple, le microcontrôleur peut avoir une architecture ARM® Cortex-M. Le système informatique SYS comprend un processeur émetteur CPU1. Le système informatique comprend également une mémoire d’origine MEM1. La mémoire d’origine MEM1 peut être une mémoire volatile, notamment une mémoire vive (désigné également par l’acronyme « RAM », de l’anglais « Random-access memory »). La mémoire d’origine MEM1 comprend un ensemble de mémoires tampon BUF1 (en anglais « buffer »). La mémoire d’origine MEM1 est configurée pour stocker des données pour le processeur émetteur CPU1. En particulier, la mémoire d’origine MEM1 est connectée au processeur émetteur CPU1 de manière à permettre le processeur émetteur CPU1 d’accéder en écriture et en lecture à la mémoire d’origine MEM1. Le système informatique SYS comprend également un processeur destinataire CPU2. Le système informatique comprend également une mémoire de destination MEM2. La mémoire de destination MEM2 peut être une mémoire volatile, notamment une mémoire vive. La mémoire de destination MEM2 comprend un ensemble de zones mémoire, notamment des mémoires tampon BUF2 (en anglais « buffer »). La mémoire de destination MEM2 est configurée pour stocker des données pour le processeur destinataire CPU2. En particulier, la mémoire de destination MEM2 est connectée au processeur destinataire CPU2 de manière à permettre le processeur destinataire CPU2 d’accéder en écriture et en lecture à la mémoire de destination MEM2. Le système informatique SYS comprend également un module de transmission TRM. Le module de transmission TRM peut être un contrôleur d’accès direct à la mémoire (également désigné par l’acronyme « DMA », de l’anglais « Direct Memory Access »). En variante, le module de transmission TRM peut être un circuit de type « boîte aux lettres » (en anglais « mailbox ») dans une architecture ARM® lorsque ce circuit est configuré pour pouvoir effectuer un transfert de données entre la mémoire d’origine MEM1 et la mémoire de destination MEM2. Le module de transmission TRM est partagé entre le processeur émetteur CPU1 et le processeur destinataire CPU2. En particulier, le module de transmission TRM est configuré pour transmettre des données destinées au processeur destinataire et stockées dans la mémoire d’origine MEM1 à la mémoire de destination MEM2. Ces données sont transmises dans au moins un message MSG. Le module de transmission TRM est connecté à la mémoire d’origine MEM1 de manière à pouvoir accéder en lecture à la mémoire d’origine MEM1. Cela permet au module de transmission TRM de recevoir les données stockées dans la mémoire d’origine MEM1 à transmettre à la mémoire de destination MEM2. Le module de transmission TRM est aussi connecté à la mémoire de destination MEM2 de manière à pouvoir accéder en écriture à cette mémoire de destination MEM2. Cela permet au module de transmission TRM d’écrire dans la mémoire de destination MEM2 les données reçues depuis la mémoire d’origine MEM1. Le module de transmission TRM est contrôlé par le processeur émetteur CPU1 ou par le processeur destinataire CPU2. En particulier, le processeur émetteur CPU1 est connecté au contrôleur DMA1 pour lui communiquer des données de contrôle CTRL1 permettant de contrôler certains registres du module de transmission TRM. Le processeur destinataire CPU2 est connecté au contrôleur DMA1 pour lui communiquer des données de contrôle CTRL2 permettant de contrôler d’autres registres du module de transmission TRM. Il est également possible de définir un attribut de sécurité permettant de compléter l’isolation des deux processeurs CPU1 et CPU2. L’attribut de sécurité est alors utilisé pour définir des droits d'accès des processeurs CPU1 et CPU2 à la mémoire d’origine MEM1 et à la mémoire de destination MEM2. Par exemple, l’attribut de sécurité peut permettre un accès à la mémoire d’origine MEM1 seulement pour le processeur émetteur CPU1, et pour permettre un accès à la mémoire destinataire CPU2 seulement pour le processeur destinataire CPU2. Cela permet d’isoler les deux processeurs CPU1 et CPU2 de manière à mieux protéger les données stockées dans la mémoire d’origine MEM1 et dans la mémoire de destination MEM2. Le système informatique SYS permet d’utiliser un module de transmission TRM pour transférer des messages MSG à partir de la mémoire d’origine MEM1, associée et définie par le processeur émetteur CPU1, vers la mémoire de destination MEM2, associée et définie par le processeur destinataire CPU2. Un tel système informatique SYS permet d’éviter une utilisation d’une mémoire partagée entre deux processeurs. Il n’est donc pas nécessaire pour les deux processeurs de se mettre d’accord sur une zone à partager de la mémoire. Chaque processeur peut définir sa propre zone mémoire dans laquelle stocker le message MSG. En outre, un tel système informatique SYS présente l’avantage de permettre au processeur émetteur CPU1 et au processeur destinataire CPU2 d’effectuer d’autres tâches dès que le début du transfert du message MSG. En effet, le module de transmission TRM s’occupe entièrement du transfert du message MSG. Le processeur émetteur CPU1 et le processeur destinataire CPU2 ne procède donc pas d’eux-mêmes au transfert du message MSG. Le processeur émetteur CPU1 et le processeur destinataire CPU2 peuvent également passer dans un mode de consommation réduite jusqu’à la fin du transfert du message MSG. De plus, il n’est pas nécessaire de copier les messages MSG afin de procéder à leur transfert. La FIG. 2 illustre un premier mode de réalisation d’un module de transmission TRM. Ici, le module de transmission TRM est un contrôleur DMA1 d’accès direct à la mémoire. Plus particulièrement, le contrôleur DMA1 comprend un premier registre R1 contrôlé par le processeur émetteur CPU1 pour activer le transfert du message MSG par le contrôleur DMA1 lorsque le processeur destinataire CPU2 est prêt pour recevoir le message MSG. Le contrôleur DMA1 comprend également un deuxième registre R2 configuré pour stocker une adresse d’origine @SRC de la mémoire d’origine MEM1. L’adresse d’origine @SRC pointe vers la zone mémoire de la mémoire d’origine MEM1 comprenant les données à transférer. Ce deuxième registre R2 est également contrôlé par le processeur émetteur CPU1. Le processeur émetteur CPU1 est configuré pour pouvoir définir une adresse d’origine @SRC différente pour chaque message MSG. Le contrôleur DMA1 comprend également un troisième registre R3 configuré pour stocker une adresse de destination @DST de la mémoire de destination MEM2. L’adresse de destination @DST pointe vers la zone mémoire de la mémoire de destination MEM2 destinée à recevoir les données provenant de la mémoire d’origine MEM1. Ce troisième registre R3 est contrôlé par le processeur destinataire CPU2. Le processeur destinataire CPU2 est configuré pour définir une adresse de destination @DST pour chaque message MSG à recevoir. Le contrôleur DMA1 comprend en outre un quatrième registre R4 configuré pour définir une longueur DAT_L du message MSG à transmettre. Cette longueur du message permet d’indiquer la longueur DAT_L du message MSG que la mémoire de destination MEM2 peut recevoir. Cette longueur du message correspond notamment à la zone de la mémoire de destination MEM2 allouée pour stocker les données du message MSG. Ce quatrième registre R4 est contrôlé par le processeur destinataire CPU2. Le processeur émetteur CPU1 est configuré pour lire le contenu de ce quatrième registre R4 afin de connaître la longueur du message MSG à utiliser. En outre, le processeur émetteur CPU1 est configuré pour déterminer que le processeur destinataire CPU2 est prêt à recevoir un message MSG lorsque la valeur dans ce quatrième registre R4 est différente de zéro. La valeur du quatrième registre R4 est configurée pour être décrémentée par le contrôleur DMA1 au cours du transfert d’un message MSG jusqu’à ce qu’elle atteigne zéro à la fin du transfert. La longueur DAT_L du message MSG peut être ajustée sur demande du processeur CPU1. En particulier, le processeur destinataire est configuré pour définir une longueur initiale de message. Ensuite, le processeur émetteur CPU1 est configuré pour envoyer un message demandant au processeur destinataire CPU2 d’ajuster la longueur DAT_L du message MSG. Le processeur destinataire CPU2 est alors configuré pour allouer une zone de la mémoire correspondant à la longueur DAT_L de message MSG demandée par le processeur émetteur CPU1. Par la suite, le processeur destinataire CPU2 est configuré pour mettre à jour l’adresse de destination @DST dans le registre R3 ainsi que la longueur DAT_L du message MSG dans le registre R4. Le processeur émetteur CPU1 est configuré pour vérifier ensuite la valeur de la longueur DAT_L du message MSG stockée dans le registre R4 avant d’autoriser le transfert du message MSG. Un tel contrôleur DMA1 présente ainsi l’avantage de permettre un ajustement de la longueur des messages MSG. Le contrôleur DMA1 comprend en outre un cinquième registre R5 configuré pour stocker une information contextuelle (en anglais « flag ») CLR_FG. Le processeur destinataire CPU2 est configuré pour effacer ce registre R5 afin d’acquitter la réception d’un nouveau message et de permettre au module de transmission TRM de générer des signaux d’interruption d’un transfert de message. En particulier, un signal d’interruption est transmis au processeur émetteur CPU1 via la connexion NVIC1 lorsqu’un message MSG est transmis au processeur destinataire CPU2. En outre, un signal d’interruption est transmis au processeur destinataire CPU2 via la connexion NVIC2 lorsqu’un message MSG est reçu par le contrôleur DMA1 depuis le processeur émetteur CPU1. La FIG. 3 illustre un deuxième mode de réalisation d’un module de transmission TRM, correspondant également à un contrôleur d’accès direct à la mémoire DMA2. Le contrôleur d’accès direct à la mémoire DMA2 comprend les mêmes registres R1, R2, R3, R4 et R5 que le contrôleur d’accès direct à la mémoire DMA1 décrit précédemment en relation avec la FIG. 2 . Le contrôleur d’accès direct à la mémoire DMA2 comprend aussi un registre R6 de synchronisation. Ce registre R6 permet d’indiquer quand le processeur destinataire CPU2 est prêt. Le processeur destinataire CPU2 est configuré pour définir un bit de contrôle dans ce registre R6 afin d’indiquer qu’il est prêt à recevoir. En particulier, ce registre est configuré pour générer un signal d’interruption lorsque le processeur destinataire CPU2 indique qu’il est prêt à recevoir le message MSG. Dans ce cas, le processeur émetteur CPU1 n’a plus à sonder la valeur du registre R4 destiné à contenir la longueur du message MSG. Ainsi, il est possible de modifier un mode d’alimentation du processeur émetteur CPU1 afin de réduire sa consommation du processeur émetteur CPU1 en attendant que le processeur destinataire CPU2 soit prêt à recevoir un message MSG. Le contrôleur DMA2 comprend également un registre R7 de contrôle d’accès. Le registre de contrôle d’accès permet d’isoler les registres de sorte que les registres R1 et R2 puissent être accédés uniquement par le processeur émetteur CPU1 et que les registres R3, R4, R5 et R6 puissent être accédés uniquement par le processeur destinataire CPU2. Cela permet d’obtenir une isolation élevée entre le processeur émetteur CPU1 et le processeur destinataire CPU2. En effet, chaque processeur n’a accès qu’aux registres qu’il peut contrôler. En outre, chaque processeur n’a accès qu’à la mémoire qui lui est associée. La FIG. 4 illustre un troisième mode de réalisation d’un module de transmission TRM, correspondant ici à un contrôleur d’accès direct à la mémoire DMA3. Les registres R1, R2, R3, R4, R6 et R7 du contrôleur DM3 sont similaires à ceux décrits précédemment. Néanmoins, dans ce mode de réalisation, les registres R2 et R3 du contrôleur d’accès à la mémoire DMA3 sont configurés pour supporter des listes chaînées. En particulier, le processeur émetteur CPU1 est configuré pour définir dans le registre R2 une liste chaînée des zones mémoires de la mémoire d’origine MEM1 contenant différents messages MSG à transmettre. Plus particulièrement, le registre R2 comprend l’adresse de la mémoire d’origine MEM1 contenant la liste chaînée de ces zones mémoires de la mémoire d’origine MEM1. Le processeur destinataire CPU2 est configuré pour définir dans le registre R3 une liste chaînée des zones mémoires de la mémoire de destination MEM2 destinées à recevoir les différents messages MSG. Plus particulièrement, le registre R3 comprend l’adresse de la mémoire de destination MEM2 contenant la liste chaînée de ces zones mémoires de la mémoire de destination MEM2. Pour synchroniser les listes chaînées, le rechargement des listes chaînées est réalisé uniquement lorsque le processeur émetteur CPU1 et le processeur destinataire CPU2 sont prêts, c’est-à-dire une fois que le transfert d’un précédent message MSG est terminé. Le contrôleur DMA2 comprend également un registre R8 contrôlé par le processeur émetteur CPU1 et un registre R9 contrôlé par le processeur destinataire CPU2. Ces registres R8 et R9 comprennent respectivement des valeurs de contrôle SRC_F et DEST_F, à la place d’un unique registre R5 stockant l’information contextuelle CLR_FG dans le mode de réalisation de la FIG. 2 . Ces deux registres R8 et R9 permettent de restreindre l’accès de chaque registre à un seul processeur. De la sorte, chaque processeur contrôle une valeur de contrôle respective indépendamment de l’autre processeur. Le processeur émetteur CPU1 est configuré pour recevoir un signal d’interruption lui indiquant que le processeur récepteur CPU2 est prêt à recevoir le message MSG. Une fois que le processeur émetteur CPU1 a reçu ce signal d’interruption, le processeur émetteur CPU1 est configuré pour lire la longueur du message DAT_L indiqué par le processeur destinataire CPU1 dans le registre R4. De la sorte, le processeur émetteur CPU1 n’a plus à sonder régulièrement le registre R4 afin de savoir quand le processeur destinataire CPU2 est prêt à recevoir le message MSG. La FIG. 5 illustre un exemple de procédé mis en œuvre par le processeur émetteur CPU1 pour transmettre un message MSG destiné au processeur destinataire CPU2 par l’intermédiaire du contrôleur DMA1 décrit à la FIG. 2 . En particulier, le processeur émetteur CPU1 est configuré pour exécuter un programme d’ordinateur comprenant des instructions, qui lorsqu’elles sont exécutées par le processeur émetteur CPU1, conduisent celui-ci à mettre en œuvre un tel procédé. Le procédé comprend une étape 50 dans laquelle le processeur émetteur CPU1 lit la valeur du quatrième registre R4 destiné à stocker la longueur du message MSG. Le procédé comprend une étape 51 de test dans laquelle le processeur émetteur CPU1 détermine si la longueur du message MSG a été définie par le processeur CPU2. En particulier, le processeur émetteur CPU1 compare la valeur lue du quatrième registre R4 à zéro. Si la valeur lue du quatrième registre R4 est égale à zéro, cela signifie que le processeur destinataire CPU2 n’a pas encore définie la longueur du message MSG et que le processeur destinataire CPU2 n’est pas encore prêt à recevoir le message MSG. Si la valeur lue du quatrième registre R4 est différente de zéro, cela signifie que le processeur destinataire CPU2 a défini la longueur du message MSG et que le processeur destinataire CPU2 est prêt à recevoir le message MSG. Si la valeur lue du quatrième registre R4 est égale à zéro, alors le procédé reprend à l’étape 50 pour que le processeur émetteur CPU1 continue de sonder la valeur du quatrième registre jusqu’à ce que la longueur du message MSG soit définie. Si la valeur du quatrième registre R4 est différente de zéro, alors le procédé continue avec une étape 52. Dans cette étape 52, le processeur émetteur CPU1 active le transfert du message MSG par le contrôleur DMA1. Pour ce faire, le processeur CPU1 active la connexion NVIC1 et indique l’adresse d’origine dans le deuxième registre du contrôleur DMA1 puis modifie la valeur du premier registre du contrôleur DMA1 pour activer le transfert du message MSG. Le contrôleur DMA1 peut ensuite récupérer le message à transmettre dans la mémoire d’origine MEM1 à partir de l’adresse d’origine pour le copier dans la mémoire de destination MEM2 à une adresse de destination définie par le processeur destinataire CPU2. Une fois le message MSG transmis à la mémoire de destination CPU2 par le contrôleur DMA1, le contrôleur DMA1 génère un signal d’interruption permettant de signaler la fin de la transmission du message MSG au processeur émetteur CPU1 et au processeur destinataire CPU2. Le procédé comprend également une étape 521 qui suite à une réception du signal d’interruption de fin de transmission du message MSG désactive la connexion NVIC1 utlisée par le contrôleur DMA1. Le procédé comprend ensuite une étape 522 dans laquelle le processeur émetteur CPU1 génère une notification MSG_SN afin de signaler au programme applicatif exécuté par le processeur CPU1 que le message est envoyé. Ensuite, le procédé comprend une étape de test 53 dans lequel, le processeur émetteur CPU1 détermine si la notification MSG_SN a été reçu par le programme applicatif. Si le processeur émetteur CPU1 n’a pas reçu la notification MSG_SN, alors l’étape de test est réitérée. Si le processeur émetteur CPU1 a reçu le signal d’interruption, alors cela signifie que le message MSG a bien été transféré au processeur destinataire CPU2. Ainsi, le procédé peut ensuite reprendre à l’étape 50 afin de transmettre un nouveau message MSG au processeur destinataire CPU2. La FIG. 6 illustre un exemple de procédé mis en œuvre par le processeur destinataire CPU2 pour recevoir un message MSG dans la mémoire de destination MEM2 depuis le processeur émetteur CPU1 par l’intermédiaire du contrôleur DMA1 décrit en relation avec la FIG. 2 . En particulier, le processeur destinataire CPU2 est configuré pour exécuter un programme d’ordinateur comprenant des instructions, qui lorsqu’elles sont exécutées par le processeur destinataire CPU2, conduisent celui-ci à mettre en œuvre un tel procédé. Le procédé comprend une étape 60 dans laquelle le processeur destinataire CPU2 initialise le contrôleur DMA1 en activant une horloge du contrôleur DMA1, en le configurant pour qu’il puisse effectuer un transfert de message MSG de la mémoire d’origine MEM1 à la mémoire destination MEM2 et pour qu’il puisse générer un signal d’interruption à la fin de chaque transfert de message par l’intermédiaire de la connexion NVIC2. Le procédé comprend ensuite une étape 61 dans lequel le processeur destinataire CPU2 définit l’adresse de destination @DST du message MSG dans le troisième registre. Le procédé comprend ensuite une étape 62 dans lequel le processeur destinataire CPU2 efface le cinquième registre utilisé pour le signal d’interruption. Le processeur destinataire CPU2 définit également la longueur maximum du message MSG. Le processeur destinataire CPU2 active la connexion NVIC2 pour le contrôleur DMA1 pour que le processeur destinataire CPU2 puisse recevoir un signal d’interruption de fin de transfert. Ensuite, le procédé comprend une étape 63 de test dans laquelle le processeur destinataire CPU2 détermine si le message MSG a été reçu par la mémoire de destination MEM2. En particulier, suite à l’étape 62, le procédé comprend une étape 621 dans laquelle le processeur destinataire CPU2, après avoir reçu le signal d’interruption de fin de transmission du message MSG, désactive la connexion NVIC2 du contrôleur DMA1. Ensuite, à l’étape 622, le processeur destinataire CPU2 envoie une notification MSG_RN au programme applicatif qu’il exécute afin de lui informer que le message MSG a bien été reçu par la mémoire destinataire MEM2. Si, à l’étape 63, le processeur destinataire CPU2 n’a pas reçu le signal d’interruption, alors cela signifie que le message MSG n’a pas reçu. Dans ce cas, l’étape 63 de test est réitérée. Si, à l’étape 63, le processeur destinataire CPU2 a reçu le signal d’interruption, alors cela signifie que le message MSG a bien été reçu. Dans ce cas, le procédé comprend ensuite une étape 64. Dans cette étape 64 le processeur destinataire CPU2 détermine si la prochaine zone de mémoire de la mémoire MEM2 est prête à recevoir un nouveau message MSG. Si la prochaine zone mémoire n’est pas prête à recevoir un message MSG, alors l’étape 64 est réitérée. Si la prochaine zone mémoire est prête à recevoir un message MSG, alors le procédé comprend une étape 65 dans laquelle le processeur destinataire change de la zone mémoire destinée à recevoir un nouveau message MSG. Cette nouvelle zone mémoire destinée à recevoir un nouveau message MSG correspond à la prochaine zone mémoire. Ensuite, le procédé reprend à l’étape 61 pour recevoir un nouveau message MSG. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l’homme de l’art. Par exemple, le système informatique peut comprendre plusieurs processeurs destinataires et plusieurs mémoires de destination. Dans ce cas, le module de transmission comprend des registres supplémentaires pour chaque processeur destinataire additionnel, notamment pour indiquer les zones mémoires des mémoires de destination. En particulier, le module de transmission comprend plusieurs canaux de communication (notamment des canaux « DMA ») pour communiquer avec les différents processeurs destinataires. Chaque canal est alors une copie du contrôleur d’accès direct à la mémoire qui permet une communication entre deux processeurs du système informatique, de la même manière que celle décrite précédemment en relation avec les figures 1 à 6. Système informatique comprenant : - un premier processeur, dit processeur émetteur (CPU1), et un deuxième processeur, dit processeur destinataire (CPU2), - une première mémoire, dite mémoire d’origine (MEM1), associée au processeur émetteur (CPU1), et une deuxième mémoire, dite mémoire de destination (MEM2), associée au processeur destinataire, ladite mémoire d’origine étant configurée pour stocker des données pouvant être destinées au processeur destinataire , - un module de transmission (TRM) contrôlé par le processeur émetteur (CPU1) et par le processeur destinataire (CPU2), le module de transmission (TRM) étant configuré pour transférer un message (MSG) comprenant des données destinées au processeur destinataire depuis la mémoire d’origine (MEM1) vers la mémoire de destination (MEM2). Système selon la revendication 1, dans lequel le module de transmission (TRM) est un contrôleur d’accès direct à la mémoire. Système selon l’une quelconque des revendications 1 ou 2, dans lequel le module de transmission (TRM) comprend un premier registre (R1) contrôlé par le processeur émetteur et configuré pour autoriser un transfert dudit message par ledit module de transmission. Système selon la revendication 3, dans lequel le module de transmission (TRM) comprend un deuxième registre (R2) contrôlé par le processeur émetteur et configuré pour stocker une adresse d’origine pointant une zone de la mémoire d’origine comprenant les données du message à transférer. Système selon la revendication 4, dans lequel le module de transmission (TRM) comprend un troisième registre (R3) contrôlé par le processeur destinataire et configuré pour stocker une adresse de destination pointant vers une zone de la mémoire de destination destinée à recevoir les données dudit message à transférer. Système selon l’une des revendications 5, dans lequel le module de transmission (TRM) comprend un quatrième registre (R4) contrôlé par le processeur destinataire et configuré pour stocker une longueur (DAT_L) du message à transférer. Système selon la revendication 6, dans lequel le processeur émetteur est configuré pour accéder en lecture au quatrième registre et pour démarrer le transfert du message par le module de transmission (TRM) une fois que la longueur du message a été définie par le processeur destinataire dans le quatrième registre. Système selon la revendication 6, dans lequel le processeur émetteur est configuré pour détecter que la longueur du message a été définie par le processeur destinataire lorsque la valeur stockée dans le quatrième registre est différente de zéro. Système selon l’une des revendications 1 à 8, dans lequel le module de transmission (TRM) comprend un registre (R6) de synchronisation, le processeur destinataire étant configuré pour stocker une information dans le registre (R6) de synchronisation permettant d’indiquer que la mémoire de destination (MEM2) est prête à recevoir le message, le module de transmission (TRM) étant configuré pour générer un signal d’interruption destiné au processeur émetteur (CPU1) lorsque le registre de synchronisation indique que la mémoire de destination (MEM2) est prête à recevoir le message. Système selon l’une des revendications 1 à 9, dans lequel le module de transmission (TRM) comprend un registre (R7) de contrôle d’accès configuré pour définir des autorisations d’accès aux registres du module de transmission (TRM) pour le processeur émetteur (CPU1) et pour le processeur destinataire (CPU2). Système selon l’une des revendications 1 à 10, dans lequel le module de transmission est configuré pour générer un premier signal d’interruption destiné au processeur destinataire lorsqu’un transfert d’un message destiné au processeur destinataire est terminé. Système selon l’une des revendications 11, dans lequel le module de transmission est configuré pour générer un deuxième signal d’interruption destiné au processeur émetteur lorsqu’un transfert d’un message destiné au processeur destinataire est terminé. Système selon l’une des revendications 1 à 12, dans lequel le module de transmission (TRM) comprend un cinquième registre (R5) configuré pour stocker une information contextuelle (CLR_FG) indiquant une fin de transfert du message, le processeur destinataire (CPU2) étant configuré pour effacer ce cinquième registre (R5) afin d’acquitter la réception d’un nouveau message et de permettre au module de transmission (TRM) de générer des signaux d’interruption lors d’un prochain transfert de message Système selon les revendications 6 et 13, dans lequel le module de transmission (TRM) est configuré pour décrémenter au cours du transfert la valeur stockée dans le quatrième registre (R4) et initialisée à la longueur du message (DAT_L), le premier signal d’interruption et le deuxième signal d’interruption étant générés lorsque la valeur stockée dans le quatrième registre (R4) atteint zéro. Système selon l’une des revendications 4 à 14, dans lequel l’adresse stockée dans le deuxième registre (R2) du module de transmission (TRM) pointe vers une liste chaînée dans la mémoire d’origine (MEM1) comprenant une succession d’adresses pointant vers différentes zones mémoire de la mémoire d’origine (MEM1) comportant des données destinées au processeur destinataire (CPU2), le module de transmission (TRM) étant configuré pour transmettre successivement des messages comprenant les données des différents zones mémoire pointées par ladite liste chaînée. Procédé mis en œuvre par un système informatique (SYS) comprenant : - un premier processeur, dit processeur émetteur (CPU1), et un deuxième processeur, dit processeur destinataire (CPU2), - une première mémoire, dite mémoire d’origine (MEM1), associée au processeur émetteur (CPU1), et une deuxième mémoire, dite mémoire de destination (MEM2), associée au processeur destinataire, ladite mémoire d’origine étant configurée pour stocker des données pouvant être destinées au processeur destinataire , - un module de transmission (TRM), le procédé comprenant : - un contrôle du module de transmission (TRM) par le processeur émetteur (CPU1) et par le processeur destinataire (CPU2) afin d’initialiser un transfert d’un message comprenant des données destinées au processeur destinataire (CPU2) depuis la mémoire d’origine (MEM1) vers la mémoire de destination (MEM2), puis - un transfert dudit message (MSG) par le module de transmission (TRM) depuis la mémoire d’origine (MEM1) vers la mémoire de destination (MEM2).