FR 3094810 A1 20201009 FR 1903553 A 20190403 Description Titre de l'invention : Système sur puce comprenant une pluralité de ressources master [0001] La présente invention concerne un système sur puce comprenant une pluralité de ressources master. [0002] Comme son nom l'indique, un système sur puce se présente sous la forme d'un système complet embarqué sur une seule puce. Un tel système est connu également sous le terme anglais « System on Chip » ou abréviation « SoC ». [0003] De manière connue en soi, un tel système sur puce comprend une ou plusieurs ressources mastcr et une ou plusieurs ressources esclaves utilisables par ces ressources mastcr via une pluralité de niveaux d'arbitrage. [0004] Une ressource mastcr correspond notamment à un coeur de calcul ou à un processeur. Dans le cas d'une pluralité de ressources mastcr, l'ensemble de ces ressources sont parfois appelées multi-mastcrs. Une ressource esclave correspond notamment à un périphérique utilisable par une ou chaque ressource mastcr. [0005] Dans les domaines techniques où la surcté de fonctionnement est forte comme par exemple le domaine de l'automobile, de l'aéronautique ou du nucléaire, la notion de déterminisme lors des échanges de données numériques joue un rôle important. [0006] Cette notion permet en particulier de déterminer pour chaque donnée numérique un temps de propagation maximal et de garantir donc qu'une telle donnée sera délivrée d'une ressource à une autre en un temps limité caractérisé par le temps de propagation maximal. [0007] Dans le cas où on fait intervenir des plateformes à hase de ressources multi-mastcrs, des problèmes de ralentissement (contentions) apparaissent, notamment lors de l'accès à des périphériques lents. Cela peut se traduire par des durées d'exécution de processus non maitrisécs et donc par une perte de déterminisme. [0008] En effet, dans le contexte de multi-masters, chaque périphérique a des spécificités comme par exemple le nombre de niveau d'arbitrage pour y accéder, la vitesse des bus et du média, le type de protocole, etc. Certaines architectures privilégient en outre un accès symétrique et partagé pour l'ensemble des ressources master aux périphériques. [0009] De ce fait, lorsqu'une ressource master souhaite accéder à un périphérique, il doit passer au travers d'un ensemble de bus internes comportant une pluralité de niveaux d'arbitrage. [0010] Ces bus étant cascadés du plus rapide au plus lent, il est possible de venir saturer l'accès à un périphérique dans le cas où la ressource master correspondante dispose d'un bus plus rapide. De plus, chaque périphérique étant connecté par l'intermédiaire 2 de bus à des niveaux d'arbitrage communs, si un périphérique est saturé, par effet de cascade, il sature l'ensemble des niveaux d'arbitrage supérieurs entre ce périphérique et la ressource master qui le sollicite. [0011] En venant saturer un ou plusieurs niveaux d'arbitrage, on vient ralentir l'accès des autres ressources master aux périphériques communs aux niveaux d'arbitrage impactés avec la limitation liée à la vitesse du périphérique le plus lent sollicité dans l'ensemble de la chainc. [0012] Selon des méthodes de l'état de la technique, les problèmes de saturation dans le contexte multi-masters, sont résolus en amont en prenant en compte un pourcentage de contention à rajouter à la durée d'exécution d'un processus mesuré en mono-mastcr. [0013] Toutefois, cette solution n'est pas viable car cela imposerait de caractériser le système précisément et de façon exhaustive pour l'ensemhlc du domaine d'usage. Comme l'exhaustivité est difficile à prouver, le pourcentage de contention ajouté est, de cc fait, majoré réduisant ainsi la durée allouahle aux applications et donc, les performances globales du système sur puce. [0014] La présente invention a pour objet de proposer un système sur puce permettant de résoudre efficacement les problèmes de saturation dans le contexte multi-masters sans dégrader considérablement les performances du système. [0015] À cet effet, l'invention a pour objet un système sur puce comprenant une pluralité de ressources master ; une pluralité de ressources esclaves ; une pluralité de niveaux d'arbitrages, chaque niveau d'arbitrage étant apte à contrôler l'accès d'au moins une ressource master à au moins une ressource esclave. [0016] Chaque ressource master est apte à envoyer des requêtes vers au moins une ressource esclave selon une bande passante associée à cette ressource esclave et à cette ressource master, chaque requête transmettant des données numériques ou interrogeant la ressource esclave correspondante, et étant transmise via au moins un niveau d'arbitrage. [0017] Le système comprend en outre des moyens de contrôle configurés pour contrôler chaque bande passante associée à chaque ressource esclave en fonction de la capacité de cette ressource esclave à traiter les requêtes provenant de la ressource master correspondant à cette bande passante. [0018] Suivant d'autres aspects avantageux de l'invention, le système comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : [0019] - chaque ressource esclave comprend une mémoire tampon apte à stocker des requêtes à traiter par cette ressource esclave et définissant une capacité totale de traitement des requêtes ; [0020] - chaque ressource esclave est apte à allouer pour chaque ressource master une 3 capacité de traitement des requêtes provenant de cette ressource mastcr en fonction de sa capacité totale de traitement des requêtes ; [0021] - la capacité de traitement allouée à chaque ressource mastcr par une ressource esclave est obtenue en divisant la capacité totale de traitement des requêtes par cette ressource esclave par le nombre de ressources mastcr susceptibles d'utiliser cette ressource esclave ; [0022] - chaque ressource esclave est apte à envoyer aux moyens de contrôle un signal de remplissage lorsque la capacité de traitement allouée à une ressource mastcr est remplie ; [0023] - à la réception d'un signal de remplissage, les moyens de contrôle sont aptes à inhiber l'émission de nouvelles requêtes par la ressource mastcr correspondant à cc signal de remplissage ; [0024] - les moyens de contrôle sont aptes à définir pour chaque ressource mastcr une cadence maximale d'émission des requêtes destinées à chaque ressource esclave ; [0025] - le système en outre des moyens de synchronisation aptes à détecter la sortie de chaque requête issue d'une ressource mastcr et destinée à une ressource esclave, à travers l'ensemble des niveaux d'arbitrage correspondants ; [0026] - les moyens de contrôle sont aptes à autoriser l'émission d'une nouvelle requête par une ressource master uniquement lorsque les moyens de synchronisation détectent la sortie d'une requête précédente issue de cette ressource mastcr, à travers l'ensemble des niveaux d'arbitrage correspondants ; [0027] - chaque ressource master est choisie dans un groupe comprenant : [0028] - coeur de calcul ; [0029] - processeur graphique ; [0030] - unité d'accès direct à la mémoire ; [0031] - la ressource esclave est un périphérique. [0032] Ces caractéristiques et avantages de l'invention apparaitront à la lecture de la des- cription qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels [0033] - [fig.1] la figure 1 est une vue schématique d'un système sur puce selon un premier mode et un deuxième mode de réalisation de l'invention ; et [0034] - [fig.2] la figure 2 est une vue schématique d'un système sur puce selon un troisième mode de réalisation de l'invention. [0035] On a en effet illustré sur la figure 1 un système sur puce 10 selon un premier et un deuxième mode de réalisation de l'invention. [0036] Ce système 10 comprend M ressources R1,...,Rm et N niveaux d'arbitrage A1,...,AN, les nombres M et N étant strictement supérieurs à 1. [0037] Au moins deux des ressources RI RM, dites ressources master, sont aptes à in- terroger au moins deux autres ressources dites alors ressources esclaves, en leur envoyant des requêtes. Les ressources esclaves sont donc aptes à traiter les requêtes reçues de la part des ressources master correspondantes. [0038] L'envoi des requêtes s'effectue selon une bande passante associée à la ressource esclave recevant cette requête et à la ressource master envoyant cette requête. [0039] Une ressource peut présenter à la fois une ressource master pour certaines ressources RI R' ou une ressource esclave pour certaines autres ressources RI R', , comme cela sera expliqué en détail par la suite. [0040] Ainsi, par exemple, une ressource RI R' correspondant à un coeur de calcul ou à un processeur graphique est toujours considérée comme ressource master. [0041] En revanche, une ressource RI,...,R', correspondant à un périphérique ou à une unité d'accès direct à la mémoire appelée unité DMA (de « Direct Memory Access ») peut présenter une ressource master pour au moins certaines des ressources R1,...,R' et une ressource esclave pour certaines autres ressources RI,...,R' . [0042] Chaque ressource R1,. ..,R' est identifiée au sein du système sur puce 10 par un identifiant unique. [0043] Par ailleurs, chaque ressource R1,...,R' comprend une mémoire tampon apte à stocker des requêtes à traiter et/ou des requêtes à émettre. [0044] Cette mémoire tampon définit une capacité totale de traitement des requêtes par la ressource correspondante et est mise en oeuvre sur la technologie « FIFO » (de l'anglais « First In First Out »). [0045] L'ensemble des niveaux d'arbitrage forment une composante appelée dans l'état de la technique par le terme anglais « InterConnect ». [0046] En particulier, chaque niveau d'arbitrage A1,...,A', se présente par exemple sous la forme d'un ou de plusieurs bus d'accès permettant de contrôler les droits d'accès d'une ressource master à une ressource esclave. [0047] Autrement dit, la transmission des requêtes d'une ressource master à une ressource esclave s'effectue toujours via n niveaux d'arbitrage où le nombre n est supérieur ou égal à 1 et inférieur ou égal à N. [0048] En outre, les niveaux d'arbitrage A1,...,AN sont distribués de manière hiérarchique ente eux. [0049] Tout comme les ressources RI 12, chaque niveau d'arbitrage comprend une mémoire tampon par lien apte à stocker des requêtes à transmettre au niveau d'arbitrage supérieur et/ou au niveau d'arbitrage inférieur et/ou aux ressources esclaves associés. [0050] Chaque ressource R1,...,R' est associée à l'un des niveaux d'arbitrage A1,...,AN et apte à recevoir des requêtes transmises par ce niveau d'arbitrage et/ou à émettre des requêtes vers ce niveau d'arbitrage. [0051] En particulier, chaque niveau d'arbitrage A'...,A, est apte à transmettre une requête vers une ressource R1,...,R,, associée à ce niveau d'arbitrage Al AN lorsque cette requête provient d'une ressource RI R,, associée à ce même niveau d'arbitrage A1 A, ou à un niveau d'arbitrage A,,...,A, supérieur. [0052] Ainsi, les niveaux d'arbitrage A1,...,A, définissent la hiérarchie entre les ressources et en particulier, la capacité de chaque ressource R1,...,R,,d'être une ressource master ou une ressource esclave par rapport à chaque autre ressource RI du système 10. [0053] Dans l'exemple de la figure 1, les ressources RI à12_, sont associées au niveau d'arbitrage A1 et présentent des coeurs de calcul. Ces ressources sont donc toujours des ressources master. [0054] La ressource R; associée également au niveau d'arbitrage Al présente une mémoire cache par exemple de niveau 2. Elle est donc apte à traiter des requêtes provenant des ressources RI à R4 et est considérée par ces ressources RI à RQ comme une ressource esclave. [0055] De manière analogue, la ressource RM associée au niveau d'arbitrage A, et présentant une unité DMA, est considérée comme une ressource master par la ressource R7 associée au même niveau d'arbitrage A, et présentant un périphérique. [0056] Dans l'ensemble du texte, lorsqu'il est fait mention d'une ressource mastcr, il est convenu que cette ressource est considérée comme une ressource master au moins par une autre ressource. De manière analogue, lorsqu'il est fait mention d'une ressource esclave, il est convenu que cette ressource est considérée comme une ressource esclave au moins par une autre ressource. [0057] Selon l'invention, le système 10 comprend en outre des moyens de contrôle 20 configurés pour contrôler chaque bande passante associée à chaque ressource esclave en fonction de la capacité de cette ressource esclave de traiter les requêtes provenant de la ressource master correspondant à cette bande. [0058] Autrement dit, les moyens de contrôle 20 permettent de contrôler la bande passante vers chaque ressource esclave à partir de chaque ressource master. [0059] Pour ce faire, ces moyens de contrôle 20 se présentent sous la forme d'un contrôleur intégré dans le système sur puce 10, raccordé à chaque ressource master et configuré pour contrôler l'émission des requêtes par chaque ressource master en utilisant l'une des techniques décrites ci-dessous. [0060] En particulier, selon le premier mode de réalisation de l'invention, chaque ressource esclave est configurée pour allouer pour chaque ressource master une capacité de traitement des requêtes provenant de cette ressource master en fonction de sa capacité totale de traitement des requêtes. [0061] Cette allocation est par exemple effectuée au stade de la conception du système 10 et 6 est par exemple figée lors du fonctionnement du système 10. Elle est par exemple gardée au sein de chaque ressource esclave sous la forme d'un tableau comportant l'identifiant de chaque ressource master avec la capacité de traitement allouée à cette ressource master. [0062] La capacité de traitement allouée à chaque ressource master par une ressource esclave est obtenue par exemple en divisant la capacité totale de traitement des requêtes par cette ressource esclave par le nombre de ressources master susceptibles d'utiliser cette ressource esclave. [0063] Dans ce cas, chaque ressource esclave est apte à envoyer aux moyens de contrôle 20 un signal de remplissage lorsque la capacité de traitement allouée à une ressource master est remplie. [0064] À la réception d'un signal de remplissage, les moyens de contrôle 20 sont aptes à inhiber l'émission de nouvelles requêtes par la ressource master correspondant à ce signal de remplissage. [0065] Autrement dit, selon le premier mode de réalisation, les moyens de contrôle 20 in- terdissent l'émission de chaque nouvelle requête par une ressource master vers une ressource esclave lorsque la capacité de traitement allouée par la ressource esclave à cette ressource master est remplie. [0066] Lorsque cette capacité de traitement est rétablie, la ressource esclave est apte par exemple à envoyer un signal correspondant vers les moyens de contrôle 20 qui lèvent l'interdiction de l'émission des requêtes par la ressource master correspondante. [0067] Selon un deuxième mode de réalisation, les moyens de contrôle 20 sont aptes à définir pour chaque ressource master une cadence maximale d'émission des requêtes destinées à chaque ressource esclave. [0068] Ces cadences maximales d'émission sont définies par exemple au stade de la conception du système 10 en fonction des bandes passantes des différents niveaux d'arbitrage et des ressources master, des capacités de traitement par les ressources esclaves ainsi que du nombre de ces éléments. [0069] Ainsi, les cadences maximales d'émission pour chaque ressource master vis-à-vis de chaque ressource esclave sont par exemple gardées sous la forme d'un tableau par les moyens de contrôle 20 et sont par exemple figées lors du fonctionnement du système 10. [0070] Selon ce mode de réalisation, les moyens de contrôle 20 inhibent l'émission des requêtes par une ressource master vers une ressource esclave lorsque la cadence de leur émission dépasse la cadence maximale d'émission définie pour cette ressource master et cette ressource esclave. [0071] La figure 2 présente un système sur puce 110 selon un troisième mode de réalisation. [0072] Ce système 110 est analogue au système 10 décrit en référence à la figure 1 et 7 comprend comme dans le cas précédent M ressources RI R' et N niveaux d'arbitrage analogue à ceux décris précédemment [0073] Cc système 110 comprend également des moyens de contrôle 120 configurés pour contrôler chaque bande passante associée à chaque ressource esclave en fonction de la capacité de cette ressource esclave de traiter les requêtes provenant de la ressource master correspondant à cette bande passante. [0074] Le système 110 selon le troisième mode de réalisation comprend en outre des moyens de synchronisation 130. [0075] Ces moyens de synchronisation 130 sont aptes à détecter la sortie de l'ensemble des niveaux d'arbitrage AI A, correspondants de chaque requête issue d'une ressource master et destinée à une ressource esclave. [0076] Pour ce faire, les moyens de synchronisation 130 définissent par exemple un ob- servateur d'entrée à chaque entrée de chacun des niveaux d'arbitrage AI AN et un observateur de sortie à chaque sortie de chacun des niveaux d'arbitrage AI A,. [0077] Lorsqu'un observateur de sortie détecte une requête détectée préalablement par un observateur d'entrée, les moyens de synchronisation 130 concluent que la requête cor- respondante est sortie de l'ensemble des niveaux d'arbitrage Al AN et est donc consommée par la ressource esclave de destination. [0078] Dans ce cas, les moyens de contrôle 120 sont aptes à autoriser l'émission d'une nouvelle requête par une ressource master vers une ressource esclave uniquement lorsque les moyens de synchronisation 130 détectent la sortie de l'ensemble des niveaux d'arbitrage Ai, A, correspondants d'une requête précédente issue de cette ressource master et destinée à cette ressource esclave. [0079] On conçoit alors que la présente invention présente un certain nombre d'avantages. [0080] En particulier, le contrôle de l'émission de requêtes par chaque ressource master vers une ressource esclave selon le premier mode de réalisation de l'invention permet d'éviter la saturation à l'entrée de cette ressource esclave. Cela diminue ainsi la pro- babilité de saturation des niveaux d'arbitrage menant à cette ressource esclave. [0081] Dans le deuxième mode de réalisation, la probabilité de saturation des niveaux d'arbitrage est diminuée car les cadences maximales définies pour chaque ressource master prennent en compte les bandes passantes de chacun des éléments utilisés pour transmettre les requêtes ainsi que les capacités de traitement de ces requêtes par les ressources esclaves. [0082] Enfin, dans le troisième mode de réalisation, la saturation des niveaux d'arbitrage est pratiquement exclue en synchronisant les entrées et les sorties des requêtes. [0083] Ainsi, chacun de ces modes de réalisation permet de résoudre les problèmes liés au non-déterminisme temporel d'exécution des systèmes sur puce dans le contexte multimasters. 8 [0084] Bien entendu, il est possible de prévoir d'autres modes de réalisation. [0085] En particulier, certains de ces modes de réalisation peuvent correspondre à des com- binaisons des modes de réalisation décrits ci-dessus. 9 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] REVENDICATIONSSystème sur puce (10 ; 110) comprenant : - une pluralité de ressources mastcr ; - unc pluralité de ressources esclaves ; - unc pluralité de niveaux d'arbitrages (A1,...,A,), chaque niveau d'arbitrage (A1,...,AN) étant apte à contrôler l'accès d'au moins une ressource mastcr à au moins une ressource esclave ; chaque ressource master étant apte à envoyer des requêtes vers au moins une ressource esclave selon une bande passante associée à cette ressource esclave et à cette ressource master, chaque requête transmettant des données numériques ou interrogeant la ressource esclave correspondante, et étant transmise via au moins un niveau d'arbitrage (A1,...,AN) ; le système (10 ; 110) étant caractérisé en ce qu'il comprend en outre des moyens de contrôle (20 ; 120) configurés pour contrôler chaque bande passante associée à chaque ressource esclave en fonction de la capacité de cette ressource esclave à traiter les requêtes provenant de la ressource master correspondant à cette bande passante. Système (10 ; 110) selon la revendication 1, dans lequel chaque ressource esclave comprend une mémoire tampon apte à stocker des requêtes à traiter par cette ressource esclave et définissant une capacité totale de traitement des requêtes ; chaque ressource esclave étant apte à allouer pour chaque ressource master une capacité de traitement des requêtes provenant de cette ressource master en fonction de sa capacité totale de traitement des requêtes. Système (10 ; 110) selon la revendication 2, dans lequel la capacité de traitement allouée à chaque ressource master par une ressource esclave est obtenue en divisant la capacité totale de traitement des requêtes par cette ressource esclave par le nombre de ressources master susceptibles d'utiliser cette ressource esclave. Système (10 ; 110) selon la revendication 2 ou 3, dans lequel chaque ressource esclave est apte à envoyer aux moyens de contrôle un signal de remplissage lorsque la capacité de traitement allouée à une ressource master est remplie. Système (10 ; 110) selon la revendication 4, dans lequel à la réception d'un signal de remplissage, les moyens de contrôle (20 ; 120) sont aptes 10 [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] [Revendication 10] à inhiber l'émission de nouvelles requêtes par la ressource mastcr correspondant à ce signal de remplissage. Système (10 ; 110) selon l'une quelconque des revendications précédentes, dans lequel les moyens de contrôle (20 ; 120) sont aptes à définir pour chaque ressource master une cadence maximale d'émission des requêtes destinées à chaque ressource esclave. Système (10 ; 110) selon l'une quelconque des revendications précédentes, comprenant en outre des moyens de synchronisation (30 ; 130) aptes à détecter la sortie de chaque requête issue d'une ressource mastcr et destinée à une ressource esclave, à travers l'ensemble des niveaux d'arbitrage (A1,...,AN) correspondants. Système (10 ; 110) selon la revendication 7, dans lequel les moyens de contrôle (20 ; 120) sont aptes à autoriser l'émission d'une nouvelle requête par une ressource mastcr uniquement lorsque les moyens de synchronisation (30 ; 130) détectent la sortie d'une requête précédente issue de cette ressource master, à travers l'ensemble des niveaux d'arbitrage (A1,...,AN) correspondants. Système (10 ; 110) selon l'une quelconque des revendications précédentes, dans lequel chaque ressource mastcr est choisie dans un groupe comprenant : - coeur de calcul ; - processeur graphique ; - unité d'accès direct à la mémoire. Système (10 ; 110) selon l'une quelconque des revendications précédentes, dans lequel la ressource esclave est un périphérique.