Brevet FR3093830A1 — publié le 20200918

Description Titre de l'invention : Procédé de gestion d'accès à un bus partagé, 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 destinés à gérer l'accès à un bus partagé par des interfaces. [0002] D'une façon générale, lorsqu'un bus tel qu'un bus de données, est libre, ce bus est configuré pour autoriser l'accès audit bus à une interface qui a effectué une demande d'accès reçue en premier par le bus. [0003] Une fois que l'accès audit bus est accordé, une ou des demandes d'accès ultérieures émanant d'au moins une autre interface sont suspendues ou refusées, jusqu'à la fin d'occupation de l'accès audit bus accordé à ladite interface. [0004] Dans certains cas, le bus peut être occupé de façon quasi-permanente, voire en toute mauvaise foi, si la durée d'occupation de l'accès accordé à ladite interface est trop longue, cc qui est souvent problématique pour des applications temps réel, par exemple des applications d'affichages d'image en temps réel. [0005] Il existe une solution classique qui limite la durée d'occupation de l'accès et fait libérer périodiquement l'accès accordé à l'interface pour créer des points d'arbitrage permettant de déterminer une autre interface à laquelle l'accès au bus sera accordé si d'autres demandes d'accès sont reçues au préalable desdits points d'arbitrage. [0006] Cependant, selon cette solution classique, ladite interface information est obligée de libérer l'accès accordé même s'il n'y a pas d'autre demande d'accès reçue, cc qui ralentit considérablement la vitesse de la transaction effectuée par l'interface. [0007] Une augmentation de la durée d'occupation de l'accès diminue proportionnellement le temps passé lors des phases d'arbitrage et augmente ainsi l'efficacité du bus. Mais cette stratégie génère un temps d'attente (« latcncy » en langue anglaise) plus important pour les autres interfaces, parfois rédhibitoire en regard de contraintes temps réel du système. C'est pourquoi les points d'arbitrage sont généralement fréquents, cc qui diminue fortement l'efficacité du bus. [0008] Ainsi, il existe un besoin de proposer une solution technique à faible complexité permettant d'augmenter l'efficacité d'un bus partagé par des interfaces tout en évitant d'éventuels problèmes pour des applications temps réel. [0009] Selon un aspect, il est proposé un procédé de gestion d'accès à un bus par des in- terfaces. [0010] Ce procédé comprend un déclenchement, lorsque l'accès audit bus est accordé à une des interfaces, d'un 2 comptage ayant une durée minimale de comptage, et une libération de l'accès accordé à l'une des interfaces et unc création d'un point d'arbitrage à l'issue de la durée minimale si au moins unc demande d'accès audit bus émanant d'au moins une autre des interfaces est reçut pendant la durée minimale de comptage. [0011] En d'autres termes, une fois que l'accès à un bus est accordé à une interface, on ne peut avoir un point d'arbitrage pour accorder l'accès à une autre interface qu'à l'issue d'une durée minimale de comptage. Cette durée minimale de comptage est mise en place pour assurer une taille de transaction minimale de l'interface de façon à assurer une bonne efficacité du bus. [0012] De ce fait, pour ladite au moins une autre des interfaces qui demande l'accès au bus, il suffit d'attendre ladite durée minimale de comptage pour obtenir un point d'arbitrage, ce qui permet avantageusement d'éviter une occupation permanente de l'accès par unc seule interface. [0013] Selon un mode de mise en oeuvre, le procédé comprend en outre, au point d'arbitrage, un arbitrage d'accès à l'un dudit au moins un bus pour ladite au moins une autre des interfaces de façon à déterminer une interface autorisée, et une autorisation d'accès audit bus pour l'interface autorisée à la suite dudit arbitrage. [0014] Avantageusement, l'interface qui sera prochainement autorisée à accéder au bus est déterminée au point d'arbitrage créé à la suite de la durée minimale de comptage et on peut appliquer tous les mécanismes d'arbitrage classiques pour déterminer l'interface autorisée. [0015] Selon un autre mode de mise en oeuvre, le procédé comprend en outre une libération de l'accès accordé à l'une des interfaces et une autorisation d'accès audit bus pour une autre interface à la suite d'une demande d'accès tardive audit bus émanant de cette autre interface si aucune demande d'accès n'est reçue pendant ladite durée minimale et si la demande d'accès tardive est reçue en premier à la suite de la durée minimale [0016] Une demande d'accès est considérée comme tardive si elle se produit après l'expiration de la durée minimale de comptage. [0017] Une fois que la durée minimale de comptage est passée, l'interface qui occupe ac- tuellement l'accès est prête à libérer l'accès de façon imminente à la suite de la réception de la prochaine demande d'accès. [0018] Selon un autre mode de mise en oeuvre, le procédé comprend en outre une conservation de l'accès accordé à l'une des interfaces jusqu'à la fin d'occupation de l'accès si aucune demande d'accès audit bus n'est reçue avant la fin d'occupation. [0019] Avantageusement, l'interface qui occupe l'accès audit bus peut garder l'accès jusqu'à sa fin d'occupation si aucune demande d'accès n'est reçue pendant la durée d'occupation de l'accès, ce qui peut augmenter considérablement l'efficacité dudit bus. 3 [0020] A titre d'exemple non limitatif, la durée minimale de comptage peut être configurablc et correspondre à l'une des interfaces. [0021] Autrement dit, une durée minimale de comptage est dédiée à une interface corres- pondante et peut être configurée pour être supérieure à une durée exigée pour transmettre une commande et une ou des adresses associées sur ledit bus par ladite interface. Ladite durée exigée n'inclut par contre pas de transmissions d'éventuelles données. [0022] Avantageusement, chaque interface peut avoir une durée minimale de comptage cor- respondante. Chaque durée minimale de comptage est configurablc de façon à équilibrer de manière précise l'utilisation du bus. [0023] Les interfaces peuvent par exemple comporter des interfaces périphériques séries (« Serial Peripheral Interface » SPI : en langue anglaise). [0024] A titre indicatif mais non limitatif, les interfaces périphériques séries peuvent par exemple comporter au moins une interface périphérique série du type octal, communément connue de l'homme du métier sous l'acronyme anglo-saxon OctoSPi (« Octal Serial Peripheral Interface » en langue anglaise). [0025] Ledit bus peut par exemple être un bus de données d'entrée-sortie. [0026] Plus précisément, cela peut par exemple être un cas où plusieurs interfaces péri- phériques partagent un unique bus de données d'entrée-sortie. [0027] Selon un autre aspect, il est proposé un dispositif électronique comprenant des in- terfaces chacune comportant un compteur, un bus partagé par les interfaces, et des moyens de commande. [0028] Les moyens de commande sont configurés pour déclencher, lorsque l'accès audit bus est accordé à une des interfaces, un comptage du compteur de l'une des interfaces ayant une durée minimale de comptage, et libérer l'accès accordé à l'une des interfaces et créer un point d'arbitrage à l'issue de la durée minimale si au moins une demande d'accès audit bus émanant d'au moins une autre des interfaces est reçue pendant la durée minimale de comptage. [0029] Selon un autre mode de réalisation, les moyens de commande sont en outre configurés pour effectuer, audit point d'arbitrage, un arbitrage d'accès audit bus pour ladite au moins une autre des interfaces de façon à déterminer une interface autorisée, et autoriser l'accès audit bus pour l'interface autorisée à la suite dudit arbitrage. [0030] Selon un autre mode de réalisation, les moyens de commande sont en outre configurés pour libérer l'accès accordé à l'une des interfaces et autoriser l'accès audit bus pour une autre interface à la suite d'une demande d'accès tardive audit bus émanant de cette autre interface si aucune demande d'accès n'est reçue pendant la durée minimale et si la demande d'accès tardive est reçue en premier à la suite de la durée minimale. [0031] Les moyens de commande peuvent par exemple être configurés pour maintenir l'accès accordé à l'une des interfaces jusqu'à la fin d'occupation de l'accès si aucune demande d'accès audit bus n'est reçue avant la fin d'occupation. [0032] A titre indicatif mais non limitatif, la durée minimale de comptage peut par exemple être configurable et correspond à l'une des interfaces. [0033] Les interfaces peuvent par exemple comporter des interfaces périphériques séries. [0034] Les interfaces périphériques séries peuvent par exemple comporter au moins une interface périphérique série du type octal, (« Octal Serial Peripheral Interface » en langue anglaise). [0035] Ledit bus peut par exemple être un bus de données d'entrée-sortie. [0036] Selon encore un autre aspect, il est proposé un appareil électronique, par exemple un système sur puce, comportant un dispositif tel que défini ci-avant, et un module de multiplexage couplé aux moyens de commande. [0037] Selon un mode de réalisation, le module de multiplexage comporte un jeu de broches d'entrée-sortie destiné à être couplé à des moyens de mémoire comportant plusieurs mémoires externes. [0038] Selon un autre mode de réalisation, le module de multiplexage comporte autant de jeux de broches d'entrée-sortie que d'interfaces et chaque jeu de broches d'entrée-sortie est destiné à être couplé à une mémoire externe. [0039] 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 : [0040] [fig.1] illustre schématiquement un mode de réalisation de l'invention, [0041] [fig.2] illustre schématiquement un autre exemple de mode de réalisation de l'invention, [0042] [fig.3] illustre en diagramme de temps un exemple de mode de mise en oeuvre de l'invention, [0043] [fig.4] illustre en diagramme de temps un autre exemple de mode de mise en oeuvre de l'invention. [0044] La référence 1 dans la figure 1 désigne un appareil électronique, ici par exemple un système sur puce, communément connu de l'homme du métier sous l'acronyme SOC (« System On Chip » en langue anglaise). [0045] Ce système sur puce 1 comporte une unité de traitement 2, ici par exemple un microcontrôleur de 32 bits, un module de multiplexage d'entrée-sortie 3 comportant des broches d'entrée-sortie (« Input/Output Pins » en langue anglaise), et un dispositif électronique 4 couplé entre l'unité de traitement 2 et le module de multiplexage d'entrée-sortie 3. [0046] Ce dispositif électronique 4 comprend plusieurs interfaces, ici par exemple une première interface périphérique série 5a et une deuxième interface périphériques série (« Serial Peripheral Interface » en langue anglaise) 5h couplées respectivement à l'unité de traitement 2 et configurécs pour communiquer hi-directionnellement des commandes et des données avec l'unité de traitement 2, et des moyens de commande 6 couplés respectivement aux première et deuxième interfaces 5a, 5h, et au module multiplexage d'entrée-sortie 3 via au moins un bus, ici par exemple un premier bus de données 7a et un deuxième bus de données 7h. [0047] Il convient de noter que l'unité de traitement 2 fonctionne ici en tant que maître (« master » en langue anglaise) vis-à-vis des première et deuxième interfaces périphériques séries 5a, 5h. [0048] Le système sur puce 1 peut par exemple comporter d'autres maîtres comme par exemple un processeur graphique (« Graphics Processing Unit » : GPU en langue anglaise). [0049] A des fins de simplification, on n'illustre que l'unité de traitement 2 sur la figure 1. [0050] Ces première et deuxième interfaces périphériques séries 5a, 5b sont ici par exemple des interfaces périphériques séries du type octal, communément connues sous l'acronyme anglo-saxon OctoSPI (« Octal Serial Peripheral Interface » en langue anglaise). [0051] Avantageusement, ces interfaces OctoSPI 5a, 5b peuvent fournir jusqu'à huit lignes de données pour adresser à un ou des esclaves (« slave » en langue anglaise) vis-à-vis des première et deuxième interfaces périphériques séries 5a, 5b, ici par exemple une mémoire non volatile MNV du type Flash et une mémoire volatile MV du type de mémoire dynamique synchrone à accès aléatoire (« Synchronous Dynamic Random Access Memory » : SDRAM en langue anglaise). [0052] Les première et deuxième interfaces OctoSPI 5a, Sb comportent respectivement un premier compteur CEI et un deuxième compteur CE2. [0053] Les premier et deuxième compteurs CE1 et CE2 possèdent respectivement une première durée minimale de comptage DM1 et une deuxième durée minimale de comptage DM2. [0054] Ces première et deuxième durée minimale de comptage DMi, DM2 peuvent être identiques ou différentes, et sont configurées pour être supérieures à une durée exigée pour transmettre une commande et une ou des adresses associées sur le premier ou 6 deuxième bus de données 7a, 7h par la première et deuxième interface Sa, 5h, sans inclure des transmissions d'éventuelles données, ce qui permet avantageusement d'équilibrer de manière précise l'utilisation des premier et deuxième bus de données 7a, 7h par les première et deuxième interfaces 5a, 5h correspondantes. [0055] Afin de répondre au mieux au besoin de chaque interface Sa, 5h, c'est-à-dire le besoin de transmettre des données de façon suffisante dans une période donnée, les première et deuxième durées minimales de comptage DM1, DM2 sont configurables et adaptées pour les première et deuxième interfaces Sa, 5h correspondantes. [0056] Le module de multiplexage d'entrée-sortie 3 est configure pour recevoir un premier signal de sélection CS1 émanant de la première interface 5a, un deuxième signal de sélection CS2 émanant de la deuxième interface 5h, et des données et des signaux d'horloge délivrées par les première et deuxième interfaces 5a, 5h via les premier et deuxième bus de données 7a. 7h, et faire passer lesdites données et signaux d'horloge aux différentes broches d'entrée-sortie en fonction de la configuration du module de multiplexage d'entrée-sortie 3. [0057] Dans le cas illustré sur la figure 1, les broches d'entrée-sortie comportent ici un premier jeu de broches 8a couplé à la mémoire non volatile MNV du type Flash et un deuxième jeu de broches Rb couplé à la mémoire volatile du type SDRAM. [0058] Dans cette configuration illustrée sur la figure 1, les première et deuxième interfaces 5a, 5b peuvent être simultanément et respectivement associées à un des premier et deuxième jeux de broches 8a, 8b. Chaque interface 5a. 5b comporte également un signal d'horloge correspondant Sclkl, Sclk2 de façon à cadencer la transaction dans la mémoire MNV, MV correspondante. [0059] Les première et deuxième interfaces 5a, 5b sont configurées pour délivrer respec- tivement des premières données DATAI et des deuxièmes données DATA2 aux moyens de commande 6. [0060] La première interface 5a est en outre configurée pour délivrer un premier signal de demande d'accès REQI et recevoir un premier signal de confirmation (« Acknowledgement » en langue anglaise) ACK1 émanant des moyens de commande 6. [0061] De la même façon, la deuxième interface 5b est en outre configurée pour délivrer un deuxième signal de demande d'accès REQ2 et recevoir un deuxième signal de confirmation (« Acknowledgement » en langue anglaise) ACK2 émanant des moyens de commande 6. [0062] 11 convient de noter que dans la configuration illustrée sur la figure 1, les premier et deuxième signaux de confirmation peuvent par exemple être activés en même temps grâce aux premier et deuxième jeux de broches 8a, 8b. 7 [0063] Comme on le verra plus loin dans la description, les moyens de commande 6 sont configurés pour gérer des accès aux hus de données 7a, 7h demandés par les première et deuxième interfaces 5a, 5b, notamment lorsque l'accès au premier ou deuxième hus de données 7a, 7h est déjà accordé. [0064] On se réfère à la figure 2 pour illustrer une autre configuration de l'appareil élec- tronique 1 dans laquelle le module de multiplexage d'entrée-sortie 3 est configure pour couplé à des moyens de mémoire 9, ici par exemple une mémoire multi-puces contenant plusieurs mémoires, ici par exemple la mémoire non volatile MNV et la mémoire volatile MV illustrées précédemment. [0065] Dans ce cas là, un seul jeu de hroches d'entrée-sortie ici par exemple le premier jeu de hroches 8a, est utilisé. [0066] Les signaux d'horloge Sclkl, SIck2 et les signaux de sélection CS1, CS2 sont transmis via les moyens de commande 6 et les moyens de commande 6 sont configurés pour déterminer quel signal d'horloge sera transmis aux moyens de mémoire 9 soit via le premier hus de données 7a soit via le deuxième hus de données 7h. [0067] En utilisant les signaux REQ1/ACK1/REQ2/ACK2, les moyens de commande 6 sont configurés pour déterminer de manière dynamique quelle interface, Sa ou 5h, est sélectionnée. Les signaux de l'interface sélectionnée sont ici par exemple envoyés via le hus 7a. Le hus 7h n'est donc pas utilisé dans cette configuration. [0068] Autrement dit, les données délivrées par les première et deuxième interfaces Sa, 5h ne peuvent pas être simultanément transmises aux moyens de mémoire 9. [0069] Avantageusement, le deuxième jeu de broches d'entrée-sortie 8b peut, grâce à l'utilisation du module de multiplexage d'entrée-sortie 3, être utilisé par d'autres interfaces externes. [0070] On se réfère maintenant à la figure 3 pour illustrer un exemple de mise en oeuvre de la gestion d'accès à un bus de données, ici par exemple le premier bus de données 7a, effectuée par les moyens de commande 6. [0071] Comme illustré sur la figure 3, le premier bus de données 7a n'est pas occupé, c'est-à-dire le signal BUS7a_CS est dans un état haut, avant la réception d'une première demande d'accès émanant de la première interface Sa. [0072] Le signal REQ1 est dans un état haut, à l'instant A. [0073] Les moyens de commande 6 sont configurés pour accorder l'accès au premier bus de données 7a à la première interface Sa au cycle suivant (ACK1 à l'instant B illustré sur la figure 3) et déclencher un comptage (CEl_clk) ayant la première durée minimale de comptage DM1. [0074] Par conséquent, la première interface Sa commence la transaction à l'instant C. [0075] Une demande d'accès REQ2 au premier bus de donnée 7a émanant de la deuxième interface 5b est reçue par les moyens de commande 6 à l'instant D, soit avant la fin de 8 la première durée minimale DM1. [0076] Le signal ACK1 bascule dans l'état bas au cycle suivant (instant E) mais la transaction de la première interface 5a se termine à l'instant G à l'issue de la première durée minimale de comptage (instant F). [0077] Autrement dit, la première interface 5a libère l'accès au premier bus de données 7a à l'instant G et les moyens de commande 6 sont configurés pour créer un point d'arbitrage PA à l'instant G. [0078] Il convient de noter que s'il y a plusieurs demandes d'accès reçues avant la création du point d'arbitrage PA, les moyens de commande 6 sont configurés pour déterminer une interface autorisée INTA en appliquant des algorithmes d'arbitrage classiques connus de l'homme du métier, par exemple en fonction d'ordre de réception, de niveau de priorité, ou de temps d'attente, etc. [0079] Comme il n'y a qu'une demande d'accès à arbitrer ici, les moyens de commande 6 sont en suite configurés pour accorder l'accès au premier bus de données 7a à la deuxième interface 5h en tant qu'interface autorisée INTA à l'instant H et déclencher un comptage (CE2 clk) ayant la deuxième durée minimale de comptage DM2. [0080] La transaction de la deuxième interface 5h débute au cycle suivant à l'instant 1. [0081] Si aucune demande d'accès émanant d'une autre interface, ici la première interface 5a, n'est reçue avant la fin d'occupation de l'accès accordé à la deuxième interface 5h, la transaction de la deuxième interface 5h continue et l'accès accordé à la deuxième interface 5b est conservé (ou maintenu) jusqu'à la fin même si le comptage (CE2_clk) ayant la deuxième durée minimale de comptage DM2 est déjà terminé, à savoir à l'instant J. [0082] Comme on peut le constater sur la figure 3, la transaction de la deuxième interface 5b est terminée à l'instant K et le signal ACK2 revient dans son état bas au cycle suivant (instant L). Le signal BUS7a_CS est dans l'état bas lorsqu'il y a une transaction. [0083] On se réfère maintenant à la figure 4 pour illustrer un autre exemple de mise en oeuvre de la gestion d'accès à un bus de données, ici par exemple toujours le premier bus de données 7a. [0084] 11 convient de noter que les exemples illustrés sur les figures 3 et 4 peuvent également être mis en oeuvre pour la gestion d'accès au deuxième bus de données 7b. [0085] Les instants A' à C' sont identiques aux instants A à C illustrés sur la figure 3. [0086] L'instant E' auquel le premier bus de données 7a reçoit une demande d'accès émanant de la deuxième interface 5b se situe après la fin du comptage ayant la première durée minimale de comptage DM1 (instant D'). En d'autres termes, la demande d'accès émanant de la deuxième interface 5b est ici considérée comme étant une demande d'accès tardive DAT. [0087] Comme la demande d'accès tardive DAT est la première demande reçue à la suite de 9 la première durée minimale de comptage DM1 alors que la transaction de la première interface 5a est toujours en cours, la première interface Sa est prête à libérer de façon imminente l'accès au premier bus de données 7a. [0088] Par conséquent, les moyens de commande 6 sont configurés pour arrêter la transaction de la première interface Sa à l'instant F' et le signal ACK1 bascule en état bas au cycle suivant à l'instant G'. [0089] Les moyens de commande 6 sont en outre configurés pour accorder l'accès au premier bus de données 7a à la deuxième interface 5h à l'instant G' et déclencher un comptage (CE2 clk) ayant la deuxième durée minimale de comptage DM2. La transaction de la deuxième interface 5h débute au cycle suivant à l'instant H'. [0090] Ainsi, une transaction d'une interface ne sera pas interrompue de façon systématique et l'accès à un bus partagé par plusieurs interfaces est géré de façon équilibrée et équitable tout en prenant en compte une durée minimale de comptage dédié à une interface correspondante. [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] [Revendication 6] [Revendication 7]