Brevet FR3072800A1 (20190426)

REVENDICATIONS1. Système de traitement comprenant un agencement de pavés et une interconnexion pour communiquer entre _Les pavés, dans lequel : chaque pavé comprend une unité d'exécution pour exécuter des instructions de code machine, chacune étant une instance d'un ensemble prédéfini de types d'instructions dans un jeu d'instructions du processeur, chaque type d'instruction se trouvant dans le jeu d'instructions étant défini par un code opération correspondant et zéro ou plus champs d'opérandes pour prendre zéro ou plus opérandes ; l'interconnexion est actionnable pour conduire des communications dans un groupe de certains ou de la totalité des pavés selon un schéma parallèle synchrone massif, d'où il résulte que chacun des pavés dudit groupe réalise une phase de calcul sur le pavé suivie d'une phase d'échange inter-pavé, la phase d'échange étant retenue jusqu'à ce que tous les pavés du groupe aient achevé la phase de calcul, chaque pavé du groupe ayant un état de sortie local à l'achèvement de la phase de calcul ; le jeu d'instructions comprend une instruction de synchronisation destinée à être exécutée par chaque pavé du groupe à l'achèvement de sa phase de calcul, l'exécution de l'instruction de synchronisation amenant l'unité d'exécution à envoyer une demande de synchronisation à de la logique matérielle se trouvant dans l'interconnexion ; et la logique se trouvant dans l'interconnexion est agencée pour agréger les états de sorties locaux en un état de sortie global, et, en réponse à l'achèvement de la phase de calcul par tous les pavés du groupe comme indiqué par la réception de la demande de synchronisation provenant de tous les pavés du groupe, pour mémoriser l'état de sortie 80 B17781 FR - 408529FR global dans un registre d'état de sortie global sur chacun des pavés du groupe, rendant ainsi l'état de sortie global accessible par une portion de code s'exécutant sur chacun des pavés du groupe.\n<CLM>\1\tSystème de traitement selon la revendication 1, dans lequel l'unité d'exécution se trouvant sur chaque pavé est agencée pour mettre en pause l'émission d'instructions en réponse à l'exécution de l'instruction de synchronisation ; et dans lequel la logique se trouvant dans l'interconnexion est agencée de manière à, en demande de synchronisation réponse à la réception de la à partir de tous les pavés du groupe, renvoyer un signal d'accusé de réception de synchronisation à chacun des pavés du groupe afin de reprendre l'émission d'instructions.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications précédentes, dans lequel chacun des états de sortie locaux et des états de sortie globaux est un seul bit.\n<CLM>\1\tSystème de traitement selon la revendication 3, dans lequel l'agrégation est constituée d'un ET booléen des états de sorties locaux ou d'un OU booléen des états de sorties locaux.\n<CLM>\1\tSystème de traitement selon la revendication 1 ou 2, dans lequel l'état de sortie agrégé comprend au moins deux bits représentant une valeur trinaire, indiquant si les états de sorties locaux sont tous vrais, tous faux ou mélangés.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications précédentes, dans lequel chacun des pavés du groupe de pavés comprend un registre d'état de sortie local agencé pour représenter l'état de sortie local du pavé.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications précédentes, dans lequel chaque pavé se trouvant 81 B17781 FR - 408529FR dans le groupe comprend : de multiples ensembles de registres de contexte, chaque ensemble de registres de contexte étant agencé pour mémoriser un état de programme de l'un respectif de multiples fils d'exécution ; et un ordonnanceur agencé pour ordonnancer l'exécution de l'un respectif d'une pluralité de fils de travail dans chacun d'une pluralité de créneaux temporels dans une séquence répétitive de créneaux temporels entrelacés, l'état de programme de chacun des fils de travail étant mémorisé dans l'un respectif des ensembles de registres de contexte ; dans lequel selon le schéma parallèle synchrone massif, la phase d'échange est retenue jusqu'à ce que tous les fils de travail sur tous les pavés du groupe aient achevé la phase de calcul ; dans lequel l'état de sortie local sur chaque pavé est un agrégat d'un état de sortie individuel fourni par chacun des fils de travail sur le pavé ; et dans lequel ladite portion de code comprend au moins l'un des multiples fils de travail se trouvant sur le pavé.\n<CLM>\1\tSystème de traitement selon la revendication 7, dans lequel chaque pavé du groupe comprend de la logique matérielle agencée pour réaliser l'agrégation des états de sortie individuels dans l'état de sortie local.\n<CLM>\1\tSystème de traitement selon la revendication 8, dans lequel le jeu d'instructions comprend une instruction de sortie destinée à être incluse dans chacun des fils de travail, l'unité d'exécution étant agencée pour fournir l'état de sortie individuel du fil de travail respectif et pour mettre fin au fil de travail respectif en réponse au code opération de l'instruction de sortie. 82 B17781 FR - 408529FR\n<CLM>\1\tSystème de traitement selon la revendication 7, 8 ou 9, dans lequel chacun des états de sortie individuels et des états de sortie locaux est un seul bit, et l'agrégation des états de sortie individuels est constituée d'un ET booléen des états de sortie individuels ou d'un OU booléen des états de sortie individuels.\n<CLM>\1\tSystème de traitement selon la revendication 7, 8 ou 9, dans lequel l'état de sortie local comprend au moins deux bits représentant une valeur trinaire, indiquant si les états de sortie individuels sont tous vrais, tous faux, ou mélangés.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications 7 à 11, dans lequel la phase d'échange est agencée pour être réalisée par un fil superviseur séparé des fils de travail, et ledit au moins un fil comprend le fil superviseur.\n<CLM>\1\tSystème de traitement selon la revendication 12, dans sa dépendance de la revendication 2, dans lequel la mise en pause de l'émission d'instructions comprend au moins la mise en pause de l'émission d'instructions à partir du fil superviseur dans l'attente de l'accusé de réception de synchronisation.\n<CLM>\1\tSystème de traitement selon la revendication 12 ou 13, dans lequel les ensembles de registres de contexte situés sur chaque pavé comprennent : de multiples ensembles de registres de contexte de fil de travail agencés pour représenter l'état de programme de fils respectifs de la pluralité de fils de travail, et un ensemble de registres de contexte de superviseur additionnel comprenant un ensemble additionnel de registres agencé pour représenter un état de programme du fil superviseur. 83 B17781 FR - 408529FR\n<CLM>\1\tSystème de traitement selon la revendication 14, dans lequel : le fil superviseur est agencé pour commencer en s'exécutant dans chacun des créneaux temporels ; le jeu d'instructions comprend en outre une instruction d'abandon et l'unité d'exécution est agencée de manière à, en réponse au code opération de l'instruction d'abandon, abandonner le créneau temporel dans lequel l'instruction d'abandon est exécutée au fil de travail respectif ; et l'instruction de sortie amène le créneau temporel respectif dans lequel l'instruction de sortie est exécutée à être rendu au fil superviseur, de sorte que le fil superviseur reprend son exécution dans le créneau respectif.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications précédentes, programmé avec ledit code ; dans lequel ladite portion de code est agencée pour utiliser l'état de sortie global, une fois valide, pour réaliser une décision de branchement qui dépend de l'état de sortie global.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications précédentes, programmé pour réaliser un algorithme d'intelligence artificielle dans lequel chaque noeud se trouvant dans un graphe comporte une ou plusieurs arrêtes d'entrée respectives et une ou plusieurs arrêtes de sortie respectives, les arêtes d'entrée d'au moins certains des noeuds étant les arêtes de sortie d'au moins certains autres des noeuds, chaque noeud comprenant une fonction respective reliant ses arêtes de sortie à ses arêtes d'entrée, chaque fonction respective étant paramétrée par un ou plusieurs paramètres respectifs, et chacun des paramètres respectifs ayant une erreur associée, de sorte Que le graphe converge vers une solution lorsque les erreurs dans certains ou la totalité des paramètres se 84 B17781 FR - 408529FR réduisent ; dans lequel chacun des pavés modélise un sous-graphe respectif comprenant un sous-ensemble des noeuds du graphe, et chacun des états de sortie locaux est utilisé pour indiquer si les erreurs dans lesdits un ou plusieurs paramètres des noeuds dans le sous-graphe respectif ont satisfait une condition prédéterminée.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications précédentes, dans lequel le groupe est choisi au moins en partie par un opérande de l'instruction de synchronisation.\n<CLM>\1\tSystème de traitement selon la revendication 18, dans lequel l'opérande des instructions de synchronisation sélectionne s'il faut inclure seulement des pavés se trouvant sur la même puce ou des pavés se trouvant sur des puces différentes dans ledit groupe.\n<CLM>\1\tSystème de traitement selon la revendication 18 ou 19, dans lequel l'opérande des instructions de synchronisation sélectionne ledit groupe parmi différents niveaux hiérarchiques de groupements.\n<CLM>\1\tSystème de traitement selon l'une quelconque des revendications précédentes, dans lequel le jeu d'instructions comprend en outre une instruction d'abstention, qui amène le pavé sur lequel l'instruction d'abstention est exécutée à s'exclure dudit groupe.\n<CLM>\1\tProcédé d'actionnement d'un système de traitement comprenant un agencement de pavés et une interconnexion pour communiquer entre les pavés, dans lequel chaque pavé comprend une unité d'exécution pour exécuter des instructions de code machine, chacune étant une instance d'un ensemble prédéfini de types d'instructions dans un jeu d'instructions du processeur, chaque type d'instruction du 85 B17781 FR - 408529FR jeu d'instructions étant défini par un code opération correspondant et zéro ou plus champs d'opérandes pour prendre zéro ou plus opérandes ; le procédé comprenant : conduire des communications dans un groupe de certains ou de la totalité des pavés, via l'interconnexion, selon un schéma parallèle synchrone massif, d'où il résulte que chacun des pavés du groupe réalise une phase de calcul sur le pavé suivi d'une phase d'échange inter-pavé, la phase d'échange étant retenue jusqu'à ce que tous les pavés du groupe aient achevé la phase de calcul, chaque pavé du groupe ayant un état de sortie local à l'achèvement de la phase de calcul ; dans lequel le jeu d'instructions comprend une instruction de synchronisation destinée à être exécutée par chaque pavé du groupe à l'achèvement de sa phase de calcul, l'exécution de l'instruction de synchronisation amenant l'unité d'exécution à envoyer une demande de synchronisation à de la logique matérielle dans l'interconnexion ; et le procédé comprend, en réponse à l'achèvement de la phase de calcul par tous les pavés du groupe comme indiqué par la réception de la demande de synchronisation à partir de tous les pavés du groupe, le déclenchement de la logique se trouvant dans l'interconnexion pour agréger les états de sortie locaux en un état de sortie global, et pour mémoriser l'état de sortie global dans un registre d'état de sortie global sur chacun des pavés du groupe, rendant ainsi l'état de sortie global accessible à une portion de code s'exécutant sur chacun des pavés du groupe.\n<CLM>\1\tProduit programme informatique comprenant du code incorporé dans un stockage lisible par un ordinateur et agencé pour s'exécuter sur le système de traitement de l'une quelconque des revendications 1 à 21, le code comprenant une portion destinée à être exécutée sur chaque 86 B17781 FR - 408529FR pavé du groupe comprenant une instance de l'instruction de synchronisation dans chaque portion.