Brevet FR3078439A1 — publié le 20190830

Procédé de gestion du routage de transactions entre des équipements sources, au moins un équipement cible, par exemple une mémoire multiports, et système sur puce correspondant Des modes de mise en oeuvre et de réalisation de l'invention concernent le routage de transactions entre des équipements sources et au moins un équipement cible, par exemple mais non limitativement une mémoire multiports, au sein d'un système sur puce (SoC : System on Chip). Il existe un besoin de pouvoir gérer un tel routage de façon flexible en fonction de l'application envisagée. Selon un aspect il est proposé un système sur puce, comprenant un circuit d'interconnexion (connu par l'homme du métier sous la dénomination anglo-saxonne « interconnect ») comportant plusieurs interfaces d'entrée et plusieurs interfaces de sortie, plusieurs équipements sources respectivement couplés auxdites interfaces d'entrée, au moins un équipement cible (par exemple une mémoire multiports) ayant plusieurs ports d'accès respectivement couplés auxdites interfaces de sortie, chaque équipement source étant configuré pour délivrer des transactions (par exemple des transactions d'écriture ou de lecture) audit au moins un équipement cible. Des transactions émises par des équipements sources différents peuvent être émises séquentiellement ou simultanément. Lorsque plusieurs équipements cibles sont prévus, tous peuvent recevoir des transactions émanant de tous les équipements sources ou bien certains de ces équipements cibles peuvent recevoir des transactions de certains seulement des équipements sources. Le système sur puce contient également des moyens de commande programmables aptes, une fois programmés, à délivrer au circuit d'interconnexion, en présence de chaque transaction émanant d'un équipement source, un mot de commande désignant un port d'accès affecté à cet équipement source, 2 le circuit d'interconnexion étant alors configuré pour router ladite transaction depuis l'interface d'entrée correspondante vers l'interface de sortie couplée à ce port d'accès et délivrer ladite transaction audit port d'accès, le contenu de chaque transaction 5 délivrée à un port d'accès étant identique au contenu de la transaction correspondante délivrée par l'équipement source quel que soit le port d'accès sélectionné. Ainsi, le circuit d'interconnexion est configuré pour recevoir avec chaque transaction un mot de commande et pour router ladite 10 transaction vers l'un des ports d'accès en fonction de la valeur de ce mot de commande. Ainsi, en fonction de l'application envisagée, c'est-à-dire par exemple en fonction de la nature des équipements sources, l'utilisateur pourra programmer pour chaque équipement source, la valeur du mot 15 de commande correspondant de façon à toujours router les transactions émanant de cet équipement source vers le port d'accès choisi. Par ailleurs, quel que soit le port d'accès choisi pour une transaction émanant d'un équipement source, le contenu de cette transaction délivré au port d'accès est identique au contenu de la 20 transaction délivré par l'équipement source. En d'autres termes, si par exemple l'équipement cible est une mémoire double port, et si la transaction comporte une adresse d'écriture dans la mémoire, la transaction ne doit pas être perturbée par le mot de commande de façon à ce que son contenu soit identique quel que soit le port d'accès 25 de la mémoire de façon que ladite transaction permette de pointer à la même adresse dans l'espace-mémoire de la mémoire, que la transaction soit reçue sur l'un ou l'autre des ports d'accès. Ainsi, le même système sur puce peut être utilisé pour différentes applications nécessitant des allocations de port d'accès 30 différentes. Selon un mode de mise en oeuvre, une façon particulièrement simple pour obtenir que le contenu de chaque transaction délivré à un port d'accès soit identique au contenu de la transaction correspondante délivré par l'équipement source quel que soit le port d'accès 3 sélectionné, est de prévoir que chaque transaction soit routée conjointement avec le mot de commande vers l'interface de sortie correspondante et que l'interface de sortie soit configurée pour ne pas délivrer le mot de commande au port d'accès correspondant. 5 Selon un mode de réalisation, chaque transaction est incorporée au sein d'un mot principal de n bits tandis que le mot de commande comporte m bits additionnels. La valeur de m est au moins égale à 1 et dépend du nombre de ports d'accès à sélectionner. 10 Ainsi, si le nombre de ports d'accès est égal à 2, m pourra être égal à 1. Si le nombre de ports d'accès est égal à 3 ou 4, m sera égal à 2. La valeur des m bits permet de programmer les moyens de commande de façon à désigner le port d'accès affecté à l'équipement 15 source. Chaque interface d'entrée est alors configurée pour recevoir un mot global de n+m bits comportant le mot principal et le mot de commande. Le circuit d' interconnexion est alors avantageusement 20 configuré pour router le mot global vers l'interface de sortie correspondante et ladite interface de sortie est avantageusement configurée pour ne pas délivrer le mot de commande au port d'accès. Selon un mode de réalisation, chaque interface d'entrée est couplée à l'équipement source correspondant par un bus d'entrée de n 25 pistes et aux moyens de commande par un bus de commande de m pistes. Le mot global de n+m bits est destiné à être routé sur un réseau de bus interne de n+m pistes au sein du circuit d'interconnexion. Chaque interface de sortie est configurée pour recevoir un bus 30 interne de n+m bits et est couplée au port d'accès correspondant par un bus de sortie de n pistes, les m pistes du bus interne de n+m pistes aboutissant à l'interface de sortie correspondante ne sont pas connectées au port d'accès. 4 Il est possible que les moyens de commande soient programmables par l'un des équipements sources, par exemple par un coeur programmable ou un (micro)processeur. Lorsque ledit au moins un équipement cible est un moyen de 5 mémoire multiports, ladite transaction comporte une adresse de l'espace-mémoire physique du moyen de mémoire. Selon un autre aspect, il est proposé un procédé de gestion du routage de transaction au sein d'un système sur puce entre plusieurs équipements sources délivrant lesdites transactions et au moins un 10 équipement cible ayant plusieurs ports d'accès. Le procédé selon cet aspect comprend les étapes suivantes : -équiper le système sur puce d'un circuit d'interconnexion comportant plusieurs interfaces d'entrée et plusieurs interfaces de sortie, 15 -coupler respectivement les interfaces d' entrée auxdits équipements sources et coupler respectivement les interfaces de sortie auxdits ports d'accès, -configurer chaque interface d'entrée de façon à ce qu'elle puisse recevoir chaque transaction émanant de l'équipement source 20 correspondant et un mot de commande de valeur programmable associé à cette transaction, -configurer le circuit d'interconnexion de façon à ce que chaque transaction et son mot de commande soient routés vers l'une des interfaces de sortie en fonction de la valeur du mot de commande, 25 -configurer chaque interface de sortie de façon que la transaction correspondante soit délivrée au port d'accès couplé à cette interface de sortie et que le mot de commande correspondant ne soit pas délivré à ce port d'accès et, pour chaque équipement source, programmer la valeur du mot de commande correspondant de façon à 30 affecter un port d'accès pour toutes les transactions émanant de cet équipement source. Selon un mode de mise en oeuvre, le procédé comprend un chargement dans l'un des équipements sources, par exemple un coeur programmable ou un (micro)processeur, d'un logiciel applicatif 5 contenant des instructions de programmation des différents mots de commande, et une programmation des différents mots de commande lors d'une exécution du logiciel applicatif. Ledit au moins un équipement cible peut-être un moyen de 5 mémoire multiports et ladite transaction peut comporter alors une adresse de l'espace-mémoire physique du moyen de mémoire. D'autres avantages et caractéristiques de l'invention apparaîtront à la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitative, et des dessins annexés sur lesquels : 10 -les figures 1 à 3 illustrent schématiquement des modes de mise en oeuvre et de réalisation de l'invention. Sur la figure 1, la référence 1 désigne un système sur puce comportant plusieurs équipements sources ES1-Esp pouvant être de natures différentes. 15 Ainsi, l'un des équipements, par exemple l'équipement ES1 peut être un capteur LCD, un autre équipement, par exemple l'équipement E52 peut être un processeur de traitement du signal, un autre équipement source peut être par exemple un décodeur et un autre équipement source, par exemple l'équipement ESp peut être un 20 microprocesseur, par exemple un microprocesseur commercialisé par la société STMicroelectronics sous la référence 5TM32. Le système sur puce 1 comporte également au moins un équipement cible EC, par exemple une mémoire multiports, ici une mémoire comportant deux ports d'accès PAO et PAL 25 Bien entendu, plusieurs équipements cibles, de nature identique ou différente, peuvent être prévus sur le système sur puce. Afin d'interconnecter les équipements sources ESi avec l'équipement cible EC, le système sur puce 1 comporte également un circuit d'interconnexion ICN. 30 Ce circuit d'interconnexion comporte des interfaces d'entrée IE1-IEp respectivement couplées aux équipements sources ES1-ESp ainsi que des interfaces de sortie ISO, IS1 respectivement couplées aux ports d'accès PAO-PA1 de l'équipement cible EC. 6 Un tel circuit d'interconnexion est capable de router des transactions entre les différents équipements sources et le ou les équipements cibles. Des transactions peuvent être par exemple des transactions 5 d'écriture dans une mémoire, si l'équipement cible est une mémoire, ou des transactions de lecture. La structure d'un tel circuit d'interconnexion, qui est en général un circuit d'interconnexion multicouches, ainsi que le protocole permettant l'échange et le routage des transactions 10 l'intérieur du circuit d'interconnexion sont bien connus de l'homme du métier. Celui-ci pourra par exemple se référer notamment : à l'article de Venkateswara Rao et autres intitulé « A Frame work on AMBA bus based Communication Architecture to improve the 15 Real Time Computing Performance in MPSoC », International Journal of Computer Applications (0975-8887), Volume 91 - N° 5, Avril 2014, ou à une présentation générale de ces circuits d'interconnexion effectuée en 2015 par A. Gerstlauer et disponible à l'adresse internet 20 http ://users. ece.utexas. edui-gerstliee382v f14/lectures/lecture 12 . pdf. Par ailleurs, à titre indicatif mais non limitatif, on peut utiliser par exemple le circuit d'interconnexion commercialisé par la société ARM sous la référence NIC-400 (version R0p3 ). Comme illustré sur la figure 1, chaque interface d'entrée IEi du 25 circuit d'interconnexion ICN est connectée à l'équipement source correspondant ESi par un bus de n bits BSi. Dans l'exemple décrit ici, le bus est un bus de 32 bits. Chaque transaction émanant d'un équipement source ESi est incorporée au sein d'un mot dit « mot principal » de n bits véhiculé 30 sur le bus BSi. Comme il est connu en la matière, une transaction, par exemple une transaction d'écriture, contient notamment un champ d'adresse et de bits de contrôle et un champ de données à écrire. 7 Par exemple, l'adresse contenue dans la transaction peut être codée sur 16 bits. Le système sur puce 1 comporte par ailleurs des moyens de commande MCM, par exemple des registres, respectivement affectés 5 aux différents équipements sources ES1-ESp et respectivement connectés aux interfaces d'entrée correspondantes IE1-IEp par des bus BC1-BCp. Chaque interface d'entrée est donc couplée à un bus de n+m bits. 10 La taille du m de chaque bus BCi dépend du nombre de ports d'accès du ou des équipements cibles EC. Dans le cas présent, puisqu'on a deux ports d'accès PAO et PA1 pour l'équipement EC, m vaut 1. Chaque registre contient donc 1 bit formant un mot de 15 commande qui va être véhiculé sur le bus correspondant BCi conjointement au mot principal de 32 bits contenant la transaction. Dans l'exemple décrit ici, les valeurs des registres sont programmées par l'un des équipements sources, en l'espèce l'équipement source ESp qui est par exemple ici le microprocesseur 20 STM 32. Le mot principal de 32 bits et le mot de commande de 1 bit forment un mot global de 33 bits. D'une façon générale les différents mots globaux de 33 bits BSGi sont véhiculés vers les différentes interfaces de sortie ISO, IS1 25 par un réseau de bus internes de n+ m pistes Dans l'exemple décrit ici (n=32 et m=1), les différents mots globaux de 33 bits BSGi sont véhiculés vers les différentes interfaces de sortie ISO, IS1 par un réseau de bus internes de 33pistes. Chaque interface de sortie est donc configurée pour recevoir un 30 bus interne de n+m bits (33 bits dans cet exemple), en l'espèce BSGSO pour l'interface ISO et BSGS1 pour l'interface IS1. Par contre, comme illustré sur la figure 1, seules les n pistes (n=32 dans cet exemple) des bus BSGSO et BSGS1 destinées à contenir la transaction, sont connectées aux ports d'accès PAO, PAL 8 En d'autres termes, les m pistes (ici la 33ème piste) véhiculant le mot de commande de m bits (ici le mot de commande de 1 bit), ne sont pas connectées au port d'accès correspondant. De ce fait, la transaction délivrée à un port d'accès est 5 identique à la transaction émanant d'un équipement source, et ce quel que soit le port d'accès sélectionné. En fonction de la valeur du mot de commande contenu dans un registre des moyens de commande MCM, la transaction émanant de l'équipement source correspondant sera routée soit vers l'interface de 10 sortie ISO, et donc vers le port d'accès PAO, soit vers l'interface de sortie IS1 et donc le port d'accès PAL Ainsi, à titre d'exemple non limitatif dans le cas ou m=1, si la valeur du bit contenu dans un registre est égale à 0, la transaction sera routée vers le port d'accès PAO tandis que si la valeur du bit est égale 15 à 1, la transaction sera routée vers le port d'accès PAL En fait, en pratique, le bit de commande est par exemple le bit de poids fort du mot d'adresse contenu dans la transaction. Ainsi, si le mot d'adresse contenu dans la transaction est un mot de 16 bits, le mot d'adresse véhiculé sur le réseau de bus internes 20 du circuit d'interconnexion est un mot de 17 bits. Le circuit d'interconnexion interprète donc le mot de 17 bits comme une adresse sur 17 bits. Et, le circuit d'interconnexion est alors configuré pour router ce mot de 17 bits soit vers l'interface de sortie ISO soit vers l'interface de sortie IS1 en fonction de la valeur du bit de poids fort. 25 La configuration d'un circuit d'interconnexion s'effectue de façon classique, par exemple en langage VHDL. Puis, ce langage VHDL est transformé en un circuit matériel comportant un circuit de contrôle, des commutateurs et des bus et dont les différents chemins sont définis par la configuration du circuit d'interconnexion. 30 Un exemple de gestion du routage des transactions est illustré sur la figure 2. Dans une première étape S20, on couple le circuit d'interconnexion ICN aux différents équipements sources ESi, aux différents ports d'accès PAj, ainsi qu'aux moyens de commande MCM. 9 Puis, on effectue dans une étape S21, la configuration du circuit d'interconnexion ICN de façon à ce que le routage d'une transaction vers un port d'accès dépende de la valeur logique du bit de commande associé à cette transaction. 5 Bien entendu, on a représenté sur la figure 2 l'étape S21 postérieurement à l'étape S20, il serait bien entendu tout à fait envisageable de configurer tout d'abord le circuit d'interconnexion ICN de façon à le réaliser matériellement puis d'effectuer le couplage de ce circuit d'interconnexion ICN avec les équipements sources ESi, 10 les ports d'accès PAj, et les moyens de commande MCM. Dans une étape S22, on charge dans l'équipement source ESP, qui est en l'espèce un microprocesseur, un logiciel applicatif qui contient des instructions de programmation des valeurs des registres MCM. 15 Ainsi, lors de l'exécution du logiciel applicatif (étape S23), la programmation des moyens MCM est effectuée (étape S24). Ainsi, par exemple, comme illustré sur la figure 3, on suppose que la programmation a conduit à obtenir un mot de commande MC1 égal à 0 pour l'équipement source ES1 et des mots de commande MC2, 20 MCp égaux à 1 pour les autres équipements sources ES2-ESp. De ce fait, toute transaction Ti émanant de l'équipement source ES1 sera routée vers l'interface de sortie ISO et par conséquent vers le port d'accès PAO. Par contre, toutes transactions émanant des autres équipements 25 sources ES2-ESp, par exemple les transactions T2-Tp seront routées vers l'interface de sortie IS1 et donc vers le port d'accès REVENDICATIONS1. Système sur puce, comprenant un circuit d'interconnexion (ICN) comportant plusieurs interfaces d'entrée (IEi) et plusieurs interfaces de sortie (ISj), plusieurs équipements sources (ESi) respectivement couplés auxdites interfaces d'entrée, au moins un équipement cible (EC) ayant plusieurs ports d'accès (PAO, PA1) respectivement couplés auxdites interfaces de sortie, chaque équipement source étant configuré pour délivrer des transactions (T1- Tp) audit au moins un équipement cible (EC), et des moyens de commande programmables (MCM) aptes, une fois programmés, délivrer au circuit d'interconnexion, en présence de chaque transaction émanant d'un équipement source, un mot de commande (MCi) désignant un port d'accès affecté à cet équipement source, le circuit d'interconnexion (ICN) étant alors configuré pour router ladite transaction depuis l'interface d'entrée correspondante vers l'interface de sortie couplée à ce port d'accès et délivrer ladite transaction audit port d'accès, le contenu de chaque transaction délivrée à un port d'accès étant identique au contenu de la transaction correspondante délivrée par l'équipement source quel que soit le port d'accès sélectionné. 2. Système selon la revendication 1, dans lequel chaque transaction est routée conjointement avec le mot de commande (MCi) vers l'interface de sortie correspondante, et l'interface de sortie est configurée pour ne pas délivrer le mot de commande au port d'accès correspondant. 3. Système selon la revendication 2, dans lequel chaque transaction est incorporée au sein d'un mot principal de n bits, le mot de commande comporte m bits additionnels, la valeur de m étant au moins égale à un et dépendant du nombre de ports d'accès à sélectionner, et la valeur des m bits permettant de programmer les moyens de commande (MCM) de façon à désigner ledit port d'accès affecté à l'équipement source, et chaque interface d'entrée est configurée pour recevoir un mot global de n+m bits comportant le mot 11 principal et le mot de commande, le circuit d'interconnexion est configuré pour router le mot global vers l'interface de sortie correspondante, et ladite interface de sortie est configurée pour ne pas délivrer le mot de commande au port d'accès. 5 4. Système selon la revendication 3, dans lequel chaque interface d'entrée est couplée à l'équipement source correspondant par un bus d'entrée de n pistes et aux moyens de commande par un bus de commande de m pistes, le mot global de n+m bits est destiné à être routé sur un réseau de bus internes de n+m pistes au sein du circuit 10 d'interconnexion, chaque interface de sortie est configurée pour recevoir un bus interne de n+m bits et est couplée au port d'accès correspondant par un bus de sortie de n pistes, les m pistes du bus interne (BSGSO, BSGS1) de n+m pistes aboutissant à l'interface de sortie correspondante n'étant pas connectées audit port d'accès. 15 5. Système selon l'une des revendications précédentes, dans lequel les moyens de commande (MCM) sont programmables par l'un des équipements sources (ESp). 6. Système selon la revendication 5, dans lequel l'équipement source (ESp) apte à programmer les moyens de commande comporte un 20 coeur programmable ou un microprocesseur. 7. Système selon la revendication 5 ou 6, dans lequel l'équipement source (ESp) apte à programmer les moyens de commande incorpore un logiciel applicatif contenant des instructions destinées à programmer les moyens de commande. 25 8. Système selon l'une des revendications précédentes, dans lequel ledit au moins un équipement cible (EC) est un moyen de mémoire multiports et ladite transaction comporte une adresse de l'espace mémoire physique du moyen de mémoire. 9. Procédé de gestion du routage de transactions au sein d'un 30 système sur puce entre plusieurs équipements sources délivrant lesdites transactions et au moins un équipement cible ayant plusieurs ports d'accès, le procédé comprenant : 12 équiper le système sur puce d'un circuit d'interconnexion (ICN) comportant plusieurs interfaces d'entrée et plusieurs interfaces de sortie, coupler respectivement les interfaces d' entrée auxdits 5 équipement source et coupler respectivement les interfaces de sortie auxdits ports d'accès, configurer chaque interface d'entrée de façon à ce qu'elle puisse recevoir chaque transaction émanant de l'équipement source correspondant et un mot de commande de valeur programmable associé 10 à cette transaction, configurer le circuit d'interconnexion (ICN) de façon à ce que chaque transaction et son mot de commande soient routés vers l'une des interfaces de sortie en fonction de la valeur du mot de commande, configurer chaque interface de sortie de façon que la 15 transaction correspondante soit délivrée au port d'accès couplé à cette interface de sortie et que le mot de commande correspondant ne soit pas délivré à ce port d'accès, et pour chaque équipement source, programmer la valeur du mot de commande correspondant de façon à affecter un port d'accès pour 20 toutes les transactions émanant de cet équipement source. 10. Procédé selon la revendication 9, comprenant un chargement dans l'un des équipements sources (ESp) d'un logiciel applicatif contenant des instructions de programmation des différents mots de commande, et une programmation des différents mots de 25 commande lors d'une exécution du logiciel applicatif. 11. Procédé selon la revendication 9 ou 10, dans lequel ledit au moins un équipement cible (EC) est un moyen de mémoire multiports et ladite transaction comporte une adresse de l'espace mémoire physique du moyen de mémoire. 30