FR 3093197 A1 20200828 FR 1901746 A 20190221 Description Titre de l'invention : Procédé d'arbitrage d'accès à une mémoire partagée, et dispositif électronique correspondant [0001] Des modes de mise en oeuvre et de réalisation de l'invention concernent les dis- positifs électroniques, plus particulièrement les dispositifs électroniques (l'arbitrage d'accès à une mémoire partagée, communément connue de l'homme du métier sous le terme d'arbitrage de mémoire partagée (« shared memory arbitration » en langue anglaise). [0002] En général, un dispositif électronique (l'arbitrage d'accès à une mémoire partagée est configure pour accorder l'accès à la mémoire, supposée libre, à une première interface qui en fait la demande en premier. [0003] Autrement dit, lorsque l'accès à la mémoire n'est pas occupé, le dispositif élec- tronique est configure pour accepter une demande d'accès délivrée par une interface quelconque et reçue en premier par le dispositif électronique. [0004] Une fois que l'accès à la mémoire est accordé, un tel dispositif électronique est configure pour suspendre ou refuser des demandes d'accès ultérieures délivrées par une deuxième interface, jusqu'à la fin d'occupation de l'accès accordé à la première interface. [0005] Lorsque l'accès à la mémoire est déjà accordé, une solution classique pour la deuxième interface est de répéter périodiquement sa demande d'accès, communément connue dc l'homme du métier comme procédé d'attente active (« poil ing process » en anglais), jusqu'à ce que l'accès à la mémoire soit de nouveau disponible. [0006] Cependant, lorsque la durée d'occupation de l'accès à la mémoire accordé à la première interface est longue, cette solution classique devient généralement très coûteuse au niveau du temps et dc la consommation énergétique à cause des nombreuses répétitions de la demande d'accès émanant de la deuxième interface. [0007] De surcroît, l'obtention de l'accès à la mémoire par la deuxième interface ne peut pas être garantie de façon systématique à la fin d'occupation de l'accès à la mémoire accordé à la première interface car le dispositif électronique peut probablement recevoir une autre demande d'accès de la première interface entre ladite fin d'occupation de l'accès accordé à la première interface et une prochaine répétition de la demande d'accès de la deuxième interface. [0008] Si les demandes d'accès de la première interface sont fréquentes et imprévisibles, il est possible que la deuxième interface se bloque toujours dans le procédé d'attente active (« polling process » en anglais). [0009] En d'autres termes, il est généralement requis une synchronisation fine et précise 2 pour obtenir un accès à la mémoire après un ou des procédés d'attente active et il est impossible d'interrompre l'accès à la mémoire une fois accordé, ce qui est problématique voire dangereux pour la sécurité globale du dispositif électronique car l'accès à la mémoire peut être monopolisé en permanence, en toute mauvaise foi, par une seule interface dans des cas de piratages informatiques (« hacking » en langue anglaise). [0010] Il existe ainsi un besoin de proposer une solution technique à faible complexité et à faible consommation d'énergie permettant d'éviter un blocage permanent d'accès à la mémoire et de gérer de façon plus efficace des alternances d'accès à la mémoire. [0011] Selon un aspect, il est proposé un procédé d'arbitrage d'accès à une mémoire partagée entre au moins une première interface et une deuxième interface. [0012] Ce procédé comprend un déclenchement d'un comptage ayant une durée maximale de comptage, à la suite d'une demande d'accès à la mémoire émanant de la deuxième interface alors que l'accès actuel à la mémoire est accordé à la première interface, et une autorisation d'accès à la mémoire pour la deuxième interface à la fin d'occupation de l'accès accordé à la première interface si la fin d'occupation se termine avant la fin de la durée maximale de comptage ou sinon à la fin de ladite durée maximale de comptage. [0013] Avantageusement, un tel procédé permet d'assurer, lorsqu'une demande d'accès de la deuxième interface est reçue pendant que l'occupation de l'accès à la mémoire a déjà été accordé à la première interface, une alternance de l'accès à la mémoire à la fin d'une durée maximale de comptage ou à la fin d'occupation de l'accès actuel si cette fin d'occupation se termine plus tôt que la fin de ladite durée maximale de comptage. [0014] De ce fait, l'accès à la mémoire ne peut pas être occupé de façon exclusive une fois l'accès accordé à une interface. Une alternance de l'accès à la mémoire est garantie, au plus tard, au bout de la durée maximale de comptage. [0015] Il convient de noter qu'un tel procédé peut avantageusement être appliqué pour toutes les interfaces demandant l'accès à la mémoire ou sélectivement pour une ou plusieurs interfaces de façon à permettre à cette ou ces interfaces d'obtenir de façon prioritaire l'accès à la mémoire. [0016] Par ailleurs, il convient de noter qu'un déclenchement du comptage à la suite d'une demande d'accès peut s'entendre comme signifiant un déclenchement du comptage dès la réception de la demande d'accès ou bien après un laps de temps après cette réception. [0017] Selon un mode de mise en oeuvre, la première interface est susceptible de procéder à une opération d'écriture dans ladite mémoire, cette opération d'écriture ayant une durée inférieure ou égale à une durée maximale d'écriture, et la durée maximale de 3 comptage est choisie pour être supérieure à ladite durée maximale d'écriture. [0018] Ainsi ceci permet de laisser se terminer toute écriture en cours dans la mémoire évitant ainsi avantageusement une éventuelle corruption des données écrites en mémoire. [0019] Selon un mode de mise en oeuvre, la deuxième interface comporte un signal de contrôle pouvant basculer entre deux états logiques. [0020] On peut alors effectuer par exemple un premier basculement du signal de contrôle à la suite de ladite demande d'accès émanant de la deuxième interface, et le comptage est déclenché lors dudit premier basculement du signal de contrôle. [0021] Ceci peut par exemple être mis en oeuvre dans le cadre d'un bus du type PC. [0022] A titre indicatif mais non limitatif, on peut par exemple effectuer un deuxième bas- culement du signal de contrôle à la fin d'occupation de l'accès accordé à la première interface si la fin d'occupation se termine avant la fin de la durée maximale de comptage ou sinon à la fin de ladite durée maximale de comptage, et on autorise l'accès à la mémoire pour la deuxième interface à la suite du deuxième basculement du signal de contrôle. [0023] Là encore ceci peut être avantageusement mis en oeuvre dans le cadre d'un bus PC. [0024] Selon un mode de mise en oeuvre, la première interface comprend une interface de communication radiofréquence du type de communication en champ proche ou de radio-identification, et la deuxième interface comprend un bus série synchrone bidirectionnel du type PC ou SMBus. [0025] Ainsi, un tel procédé permet avantageusement d'accorder à l'interface du type PC ou SMBus l'accès à la mémoire, dans un pire cas, à la fin de la durée maximale de comptage. [0026] A titre d'exemple non limitatif, dans le cas par exemple d'une interface du type PC, le signal de contrôle de la deuxième interface est un signal de ligne série d'horloge, communément connu de l'homme du métier sous l'acronyme anglo-saxon SCL (« System CLock » en langue anglaise). [0027] Ce signal de contrôle SCL est avantageusement utilisé ici pour informer des moyens de contrôle, par exemple un microcontrôleur, couplé à l'interface du type PC ou SMBus que l'accès à la mémoire est actuellement indisponible pour satisfaire sa demande d'accès à la mémoire via l'interface du type PC ou SMBus. [0028] Selon encore un autre mode de mise en oeuvre, la durée maximale de comptage est choisie entre 25ms et 35ms si la deuxième interface comprend un bus série synchrone bidirectionnel du type SMBus, ce qui est compatible avec les normes SMBus. [0029] Par exemple dans le cas d'une deuxième interface du type 12C, ou SMBus, la demande d'accès émanant de la deuxième interface peut par exemple comporter au moins un octet et le premier basculement a lieu à la suite du premier octet de la demande d'accès de la deuxième interface, et le signal de contrôle de la deuxième interface est dans un état bas à la suite du premier basculement et dans un état haut à la suite du deuxième basculement, ce qui peut être désigné sous le terme « étirement de SCL » (« SCL strctch » en langue anglaise). [0030] L'état bas du signal de contrôle SCL signifie que la deuxième interface n'est pas prête à traiter une demande d'accès à la mémoire tandis que l'état haut du signal de contrôle SCL signifie que la deuxième interface est de nouveau prête à traiter une demande d'accès à la mémoire. [0031] Selon un autre aspect, il est proposé un dispositif électronique comprenant au moins une première interface et une deuxième interface, une mémoire destinée à être partagée entre lesdites au moins première et deuxième interfaces, et des moyens d'arbitrage configurés pour déclencher un comptage ayant une durée maximale de comptage, à la suite d'une demande d'accès à la mémoire émanant de la deuxième interface alors que l'accès actuel à la mémoire est accordé à la première interface, et autoriser l'accès à la mémoire pour la deuxième interface à la fin d'occupation de l'accès accordé à la première interface si la fin d'occupation se termine avant la fin de la durée maximale de comptage ou sinon à la fin de ladite durée maximale de comptage. [0032] A titre indicatif mais non limitatif, la première interface est susceptible de procéder à une opération d'écriture dans ladite mémoire, cette opération d'écriture ayant une durée inférieure ou égale à une durée maximale d'écriture, et la durée maximale de comptage (DT) est avantageusement choisie pour être supérieure à ladite durée maximale d'écriture. [0033] Selon un mode de réalisation, la deuxième interface comporte un signal de contrôle pouvant basculer entre deux états logiques, et les moyens d'arbitrage sont configurés pour effectuer un premier basculement du signal de contrôle à la suite de ladite demande d'accès émanant de la deuxième interface, et déclencher le comptage lors dudit premier basculement du signal de contrôle. [0034] Les moyens d'arbitrage peuvent par exemple être configurés pour effectuer un deuxième basculement du signal de contrôle à la fin d'occupation de l'accès accordé à la première interface si la fin d'occupation se termine avant latin de la durée maximale de comptage ou sinon à la fin de ladite durée maximale de comptage, et autoriser l'accès à la mémoire pour la deuxième interface à la suite du deuxième basculement du signal de contrôle. [0035] Selon un mode de réalisation, la première interface comprend une interface de com- munication radiofréquence du type de communication en champ proche ou de radio- identification, et la deuxième interface comprend un bus série synchrone bidirectionnel du type PC ou SMBus. [0036] Le signal de contrôle de la deuxième interface peut par exemple être un signal de ligne série d'horloge. [0037] Selon encore un autre mode de réalisation, la durée maximale de comptage est choisie entre 25ms et 35ms si la deuxième interface comprend un bus série synchrone bidirectionnel du type SMBus. [0038] La demande d'accès émanant de la deuxième interface peut par exemple comporter au moins un octet et les moyens d'arbitrage peuvent par exemple être configurés pour effectuer le premier basculement à la suite du premier octet de la demande d'accès de la deuxième interface, et tirer le signal de contrôle de la deuxième interface dans un état bas à la suite du premier basculement et dans un état haut à la suite du deuxième basculement. [0039] Selon un autre aspect, il est proposé un appareil électronique comprenant un dispositif électronique tel que défini ci-avant et des moyens de contrôle couplés au dispositif électronique. [0040] A titre indicatif mais non limitatif, les moyens de contrôle peuvent par exemple comporter un rnicrocontrôleur. [0041] Selon encore un autre aspect, il est proposé un système de communication comportant un appareil électronique tel que défini ci-dessus et des moyens de communication sans fil couplés au dispositif électronique. [0042] Selon un mode de réalisation, les moyens de communication comportent un lecteur du type de communication en champ proche (« Near Field Communication » : NFC en langue anglaise) ou de radio-identification (« Radio Frequency Identification » : RFID en langue anglaise). [0043] D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : [0044] [fig.1] illustre schématiquement un mode de réalisation de l'invention, [0045] [fig.2] illustre schématiquement un exemple de mode de mise en oeuvre de l'invention, [0046] [fig.3] illustre en diagramme de temps un exemple de mode de mise en oeuvre de l'invention, [0047] [fig.4] illustre en diagramme de temps un autre exemple de mode de mise en oeuvre de l'invention, 6 [0048] La figure 1 illustre un système de communication 1, ici par exemple un système de communication sans fil à courte portée basé sur la technologie de communication en champ proche (« Near Field Communication : NFC en langue anglaise) ou de radio-identification (« Radio Frequency Identification » : RFID en langue anglaise), susceptible d'être implémenté dans des applications industrielles ou domestiques telles que des contrôles d'accès chantier ou logement. [0049] Le système de communication 1 comporte un appareil électronique de contrôle 2 et des moyens de communication 3. [0050] Les moyens de communication 3 peuvent par exemple comporter plusieurs lecteurs de NEC ou de RFID connus dc l'homme du métier. A des fins de simplification, on n'illustre qu'un lecteur de NFC/RFID 4 sur la figure 1. [0051] L'appareil électronique de contrôle 2 comporte un dispositif électronique 5, ici par exemple une étiquette (« Tag » en langue anglaise) électronique compatible avec la technologie de NEC ou de RFID et des moyens de contrôle 6 comportant un micro-contrôleur 7. [0052] L'étiquette S comporte au moins deux interfaces, ici par exemple une première interface 8 comportant une interface de communication radiofréquence configure° pour communiquer de façon sans fil avec le lecteur NEC/RFID 4 et une deuxième interface 9 de bus informatique, une mémoire 10 destinée à être partagée entre lesdites au moins première et deuxième interfaces 8, 9, et des moyens d'arbitrage 11 couplés respectivement à la mémoire 10 et auxdites au moins première et deuxième interfaces. [0053] La deuxième interface 9 comprend un bus série synchrone bidirectionnel du type PC (« Inter-Integrated Circuit » en langue anglaise) ou SMBus k System Management Bus » en langue anglaise) connu de l'homme du métier. [0054] La deuxième interface 9 est configurée pour communiquer avec le microcontrôleur 7 par l'intermédiaire d'un signal d'horloge SCL et d'un signal de données SDA défini dans les normes PC et SMBus. [0055] Le microcontrôleur 7 fonctionne en tant que maître sur le bus PC (« PC master » en langue anglaise) tandis que la deuxième interface 9 fonctionne en tant qu'esclave sur le bus PC (« PC slave » en langue anglaise). [0056] Les moyens d'arbitrage 11 peuvent par exemple être implémentés sous forme d'une unité de contrôle numérique comportant des circuits logiques et sont configurés pour arbitrer l'accès à la mémoire 10 entre lesdites première et deuxième interfaces 8, 9. [0057] Selon un exemple pratique, une demande d'accès émanant de la première interface 8 est imprévisible car cela dépend de la présence ou non du lecteur NFC/RFID 4. [0058] Dans ce cas là, afin de privilégier des demandes d'accès de la deuxième interface et 7 d'éviter un éventuel blocage d'accès à la mémoire 10 lié à un piratage informatique via la première interface 8, une demande d'accès de la deuxième interface 9 est traitée de manière que son accès à la mémoire soit garanti au plus tard au bout d'une durée choisie. [0059] On se réfère maintenant à la figure 2 pour illustrer, sous forme de schémas de machine d'état (« state machine » en langue anglaise), un exemple de mise en oeuvre des moyens d'arbitrage 11. [0060] Initialement, les moyens d'arbitrage sont dans un état de veille E0 (« standby state » en langue anglaise) et l'accès à la mémoire n'est pas accordé. Il y a un premier signal d'état SE1 représentatif de l'état d'occupation de la première interface 8 et un deuxième signal d'état SE2 représentatif de l'état d'occupation de la deuxième interface 9. [0061] Les premier et deuxième signaux d'état SE1, SE2 sont tous dans un premier état d'occupation E01, ce qui signifie que la mémoire 10 est actuellement accédée via aucune des première et deuxième interfaces 8, 9. [0062] En outre, dans cet état de veille E0, les moyens d'arbitrage 11 sont configurés pour être prêts à autoriser une demande d'accès quelconque qui est reçue en premier par les moyens d'arbitrage 11. [0063] Par exemple, si une première demande d'accès Dl émanant de la première interface 8 est reçue en premier, les moyens d'arbitrage 11 sont configurés pour basculer l'état de veille E0 en un premier état de traitement ETI. [0064] De la même façon, si une deuxième demande d'accès D2 émanant de la deuxième interface 9 est reçue en premier, les moyens d'arbitrage 11 sont configurés pour basculer l'état de veille E0 dans un deuxième état de traitement ET2. [0065] Une fois basculé dans le premier état de traitement ETI, le premier signal d'état SEI est basculé dans un deuxième état d'occupation E02, ce qui signifie que la mémoire 10 est actuellement accédée via la première interface 8. [0066] Si les moyens d'arbitrage 11 ne reçoivent pas une demande d'accès de la deuxième interface 9 avant la fin d'occupation de l'accès accordé à la première interface 8, les moyens d'arbitrage il sont configurés pour basculer le premier état de traitement ETI en l'état de veille EO. [0067] Si une deuxième demande d'accès D2 émanant de la deuxième interface 9 est reçue par les moyens d'arbitrage 11 lors du premier état de traitement ET1, les moyens d'arbitrage 11 sont en outre configurés pour basculer un signal de contrôle, ici le signal d'horloge SCL défini dans les normes I2C ou SMBus. [0068] Plus précisément, les moyens d'arbitrage 11 sont configurés pour basculer le signal d'horloge SCL dans un état bas à la suite du premier octet (« byte » en langue anglaise) de la deuxième demande D2. 8 [0069] Ce basculement du signal d'horloge SCL est désigné sous le terme « étirement SCL » (« SCL strech » en langue anglaise) et a pour objet d'informer au maître sur le bus PC, autrement dit le microcontrôleur 7 que l'esclave sur le bus PC, ici la deuxième interface 9 n'est actuellement pas disponible pour passer la deuxième demande d'accès D2. [0070] De ce fait, la transmission de la deuxième demande d'accès D2 est suspendue par le microcontrôleur 7. [0071] Un signal de comptage SC est activé pour une durée de temporisation DT (« Timcout » en langue anglaise), autrement dit une durée maximale de comptage, lors du basculement du signal d'horloge SCL. [0072] Si la première interface 8 a fait une demande d'accès à la mémoire pour effectuer une écriture dans la mémoire, en fonction notamment des données à écrire, la durée d'écriture dans la mémoire peut être plus ou moins longue. [0073] Il est toutefois possible de déterminer une durée maximale possible d'écriture. Ladite durée de temporisation DT est alors choisie de façon à être supérieure à ladite durée maximale d'écriture, par exemple de l'ordre de 20 ms. ce qui permet avantageusement d'éviter une éventuelle corruption des données écrites en mémoire. [0074] Dans un cas où la deuxième interface 9 est un bus série synchrone bidirectionnel du type SMBus, cette durée de temporisation DT peut par exemple être choisie entre 25 ms et 35 ms conformément aux normes SMBus. [0075] 11 existe deux cas CF', CF2 pour basculer le premier état de traitement ETI dans le deuxième état de traitement ET2. [0076] Dans un premier cas CF1, si la fin d'occupation de l'accès accordé à la première interface 8 se termine avant la fin de la durée de temporisation DT, les moyens d'arbitrage 11 sont configurés pour basculer le premier état de traitement ET1 en le deuxième état de traitement ET2 à la suite de la fin d'occupation de l'accès accordé à la première interface 8. [0077] Dans un deuxième cas CF2, si ladite fin d'occupation se termine au moment ou après ladite durée de temporisation DT, les moyens d'arbitrage 11 sont configurés pour interrompre l'accès à la mémoire accordé à la première interface 8 et l'accorder à la deuxième interface 9. [0078] En d'autres termes, ces deux cas CFI, CF2 sont mis en place pour privilégier la deuxième interface 9, ici l'interface du type I2C ou SMBus, de façon à assurer l'obtention de l'accès à la mémoire à la fin d'occupation de l'accès accordé à la première interface 8 ou, dans le pire cas, à l'issue de la durée de temporisation DT. [0079] Par contre, pendant le deuxième état de traitement ET2, les moyens d'arbitrage 11 sont par exemple configurés pour ne pas répondre ou répondre avec une erreur à une éventuelle demande d'accès de la première interface 8. 9 [0080] A la fin d'occupation de l'accès accordé à la deuxième interface 9, les moyens d'arbitrage 11 sont configurés pour basculer le deuxième état de traitement ET2 en état de veille EO. [0081] On se réfère maintenant à la figure 3 pour illustrer en diagramme de temps un exemple de mise en oeuvre du premier cas CM. [0082] Comme on peut l'observer sur la partie supérieure de la figure 3, la première demande d'accès Dl de la première interface 8 est reçue en premier et déclenche le deuxième état d'occupation E02, se traduisant ici un état haut du premier signal d'état 8E1 qui signifie que l'occupation de l'accès à la mémoire est accordée à la première interface 8. [0083] Pendant la période d'occupation de l'accès accordé à la première interface 8, on peut observer que la première demande Dl a délivré une requête REQ1 et reçu une réponse REP1. [0084] La deuxième demande d'accès D2 de la deuxième interface, ici le signal de données SIDA, est illustrée en bas de la figure 3 et est reçue par les moyens d'arbitrage 11 pendant la première demande d'accès Dl. [0085] Le signal d'horloge SCL est basculé dans un état bas LOW à la suite du premier octet, (soit 8 premiers bits suivant un évènement de contrôle dit « départ » (« start » en langue anglaise) et incluant des bits de choix des dispositifs (« &vice select » en langue anglaise)), de la deuxième demande D2. [0086] Comme expliqué ci-avant, il s'agit avantageusement d'un étirement du signal SCL (« SCL-STRETCH » en langue anglaise » selon les normes PC ou SMBus pour informer le microcontrôleur 7 que la deuxième interface 9 n'est pas disponible pour recevoir des données de la deuxième demande D2. [0087] En même temps, le signal de comptage SC est activé et basculé dans un état haut pendant la durée de temporisation DT. [0088] Comme on peut le constater dans ce premier cas CFT, le premier signal d'état SEI, le deuxième signal d'état SE2 et le signal d'horloge SCL sont respectivement basculés dans le premier état d'occupation E01, le deuxième état d'occupation E02 et l'état haut HIGH à la fin d'occupation de l'accès accordé à la première interface 8. [0089] Un bit de confirmation ACK (« acknowledgement » en langue anglaise) est généré une fois le signal d'horloge SCL entré dans l'état haut HIGH et des données DATA sont ensuite délivrées, à la suite du bit de confirmation ACK, par le microcontrôleur 7 dans le cas d'une écriture ou par l'étiquette 5 dans le cas d'une lecture. [0090] De ce fait, la deuxième interface 9 a obtenu l'accès à la mémoire 10 à la fin d'occupation de l'accès accordé à la première interface 8 sans attente supplémentaire. [0091] La figure 4 illustre en diagramme de temps un exemple de mise en oeuvre du deuxième cas CF2. [0092] A la différent du premier cas CF1, la première demande Dl de la première interface 8 dans ce deuxième cas CF2 n'est pas encore terminée au moment de la fin de la de temporisation DT. [0093] Dans cette circonstance, les moyens d'arbitrage 11 sont configurés pour basculer le signal d'horloge SCL dans l'état haut FITCH si le signal de comptage est de nouveau dans l'état bas. [0094] Par conséquent, les premier et deuxième signaux d'état SE1, SE2 sont respec- tivement basculés dans le premier état d'occupation E01 et le deuxième état d'occupation E02. [0095] La transaction de la première demande Dl de la première interface 8 est interrompue et l'accès à la mémoire 10 est désormais accordé à la deuxième interface 9. [0096] -11 convient de noter que le procédé d'arbitrage d'accès à la mémoire 5 illustré ci- avant peut par exemple être appliqué de façon réciproque sur n'importe quelle paire d'interfaces du dispositif électronique et que les désignations des première et deuxième interfaces peuvent être échangées. [0097] Ainsi, on obtient un procédé et un dispositif électronique d'arbitrage d'accès à une mémoire partagée permettant d'accorder l'accès à la mémoire à une ou des interfaces prioritaires, dans le pire cas, au bout d'une durée maximale de comptage de façon à éviter des blocages d'accès à la mémoire et assurer la sécurité globale du dispositif électronique. 11 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] [Revendication 6]