Brevet FR3072798A1 (20190426)

REVENDICATIONS1. Processeur comprenant : une unité d'exécution agencée pour exécuter un fil respectif dans chaque créneau temporel d'une séquence répétitive de créneaux temporels différents, la séquence étant constituée d'une pluralité de créneaux temporels dans lesquels la logique d'exécution est actionnable pour entrelacer l'exécution des fils respectifs ; et une pluralité d'ensembles de registres de contexte, chacun comprenant un ensemble respectif de registres pour représenter un état respectif d'un fil respectif, les ensembles de registres de contexte comprenant un ensemble de registres de contexte de fil de travail respectif pour chacun des créneaux temporels que l'unité d'exécution est capable d'entrelacer dans ladite séquence et au moins un ensemble de registres de contexte supplémentaire, de sorte que le nombre d'ensembles de registres de contexte est supérieur d'au moins un par rapport au nombre de créneaux temporels que l'unité d'exécution est capable d'entrelacer, les ensembles de registres de contexte de travail étant agencés pour représenter les états respectifs de fils de travail respectifs qui réalisent des tâches de calcul, et l'ensemble de registres de contexte supplémentaire étant agencé pour représenter l'état d'un fil superviseur qui planifie l'exécution des tâches réalisées par les fils de travail ; dans lequel le processeur est agencé pour commencer à exécuter le fil superviseur dans chacun des créneaux temporels, et pour permettre au fil superviseur d'abandonner ensuite individuellement chacun des créneaux temporels dans lesquels il s'exécute à l'un respectif des fils de travail. 41 B17823 FR - 400479FR\n<CLM>\1\tProcesseur selon la revendication 1, le processeur étant agencé pour autoriser le fil superviseur à réaliser ledit abandon en exécutant une ou plusieurs instructions d'abandon dans le créneau temporel dans lequel il s'exécute.\n<CLM>\1\tProcesseur selon la revendication 2, dans lequel lesdites une ou plusieurs instructions d'abandon sont une seule instruction d'abandon.\n<CLM>\1\tProcesseur selon la revendication 2 ou 3, dans lequel l'unité d'exécution est agencée pour fonctionner selon un jeu d'instructions définissant des types d'instructions de code machine reconnus par le processeur, chaque instruction de code machine étant définie par un code opération respectif ; et dans lequel au moins l'une desdites une ou plusieurs instructions d'abandon est une instruction dédiée du jeu d'instructions ayant un code d'opération qui lorsqu'il est exécuté déclenche ledit abandon.\n<CLM>\1\tProcesseur selon la revendication 4, dans lequel il est implicite dans le code opération de ladite au moins une instruction d'abandon que le créneau temporel qui est abandonné est le créneau temporel dans lequel ladite au moins une instruction d'abandon est exécutée.\n<CLM>\1\tProcesseur selon l'une quelconque des revendications 4 ou 5, dans lequel une ou plusieurs instructions du jeu d'instructions comprenant au moins lesdites une ou plusieurs instructions d'abandon sont réservées pour une utilisation par le fil superviseur et ne sont pas exécutables par les fils de travail.\n<CLM>\1\tProcesseur selon l'une quelconque des revendications précédentes, dans lequel lesdites une ou plusieurs instructions d'abandon spécifient comme opérande une adresse du fil de travail auquel est abandonné le créneau temporel abandonné. 42 B17823 FR - 400479FR S. Processeur selon l'une quelconque des revendications précédentes, le processeur étant agencé pour autoriser le fil de travail, auquel l'un des créneaux temporels a été abandonné, à retourner le créneau temporel dans lequel il s'exécute au fil superviseur en exécutant une instruction de sortie dans le créneau temporel dans lequel il s'exécute.\n<CLM>\1\tProcesseur selon la revendication 8, dans lequel l'unité d'exécution est agencée pour fonctionner selon un jeu d'instructions définissant des types d'instructions de code machine reconnus par le processeur, chaque instruction de code machine étant définie par un code opération respectif ; et dans lequel l'instruction de sortie est une instruction dédiée du jeu d'instructions ayant un code opération qui lorsqu'il est exécuté réalise ledit retour du créneau temporel abandonné au fil superviseur.\n<CLM>\1\tProcesseur selon la revendication 9, dans lequel il est implicite dans le code opération de l'instruction de sortie que le créneau temporel qui est retourné est le créneau temporel dans lequel l'instruction de sortie est exécutée.\n<CLM>\1\tProcesseur selon la revendication 9 ou 10, dans lequel il est implicite dans le code opération de l'instruction de sortie que le fil auquel le créneau temporel retourné est retourné est le fil superviseur.\n<CLM>\1\tProcesseur selon l'une quelconque des revendications 8 à 11, dans lequel une ou plusieurs instructions du jeu d'instructions comprenant au moins l'instruction de sortie sont réservées pour une utilisation par les fils de travail et ne sont pas exécutables par le fil superviseur.\n<CLM>\1\tProcesseur selon l'une quelconque des revendications précédentes, dans lequel le fil superviseur est agencé pour 43 B17823 FR - 400479FR réaliser une synchronisation à barrière pour synchroniser les fils de travail.\n<CLM>\1\tProcesseur selon l'une quelconque des revendications précédentes, dans lequel le fil superviseur est agencé pour réaliser une communication avec une ressource externe de la part d'un ou plusieurs des fils de travail.\n<CLM>\1\tProcesseur selon la revendication 2 ou l'une quelconque des revendications dépendantes, dans lequel l'instruction d'abandon copie en outre un ou plusieurs modes à partir d'un ou plusieurs registres d'état de l'ensemble de registres de contexte de superviseur dans un ou plusieurs registres d'état correspondants du fil de travail lancé par l'instruction d'abandon, contrôlant par cela le fil de travail pour qu'il adopte lesdits un ou plusieurs modes.\n<CLM>\1\tProcesseur selon l'une quelconque des revendications précédentes, le processeur étant en outre agencé pour exécuter une instruction qui lance un ensemble de plus qu'un seul fil de travail conjointement dans certains créneaux respectifs desdits créneaux, tous les fils exécutant le même code.\n<CLM>\1\tProcesseur selon la revendication 4 ou l'une quel- conque des revendications dépendantes, dans lequel le jeu d'instructions que le processeur est destiné à exécuter comprend en outre une instruction de multi-exécution qui lance une pluralité de fils de travail ensemble dans des créneaux respectifs desdits créneaux, la pluralité de fils de travail étant de trois ou plus ; dans lequel l'un des fils de travail comprend du code extrait d'une première adresse spécifiée par un opérande de l'instruction de multi-exécution, et dans lequel les autres fils de la pluralité de fils de travail comprennent du code extrait 44 B17823 FR - 400479FR d'adresses respectives espacées d'un pas de progression d'une valeur de pas par rapport à la première adresse, la valeur de pas étant spécifiée par un autre opérande de l'instruction de multi-exécution.\n<CLM>\1\tProcesseur selon la revendication 17, dans lequel le nombre de fils de travail est égal au nombre de créneaux temporels.\n<CLM>\1\tProcédé d'actionnement d'un processeur, le procédé comprenant : utiliser une unité d'exécution pour exécuter un fil respectif dans chaque créneau d'une séquence répétitive de créneaux temporels différents, la séquence étant constituée d'une pluralité de créneaux temporels dans lesquels la logique d'exécution est actionnable pour entrelacer l'exécution des fils respectifs ; dans lequel _Le processeur comprend une pluralité d'ensembles de registres de contexte, chacun comprenant un ensemble respectif de registres pour représenter un état respectif d'un fil respectif, dans lequel les ensembles de registres de contexte comprennent un ensemble de registres de contexte de travail respectif pour chaque créneau de la pluralité de créneaux temporels que l'unité d'exécution est capable d'entrelacer dans ladite séquence et au moins un ensemble de registres de contexte supplémentaire, de sorte que le nombre d'ensembles de registres de contexte est supérieur d'au moins un par rapport au nombre de créneaux temporels que l'unité d'exécution est capable d'entrelacer, les ensembles de registres de contexte de travail étant utilisés pour représenter les états respectifs de fils de travail respectifs qui réalisent des tâches de calcul, et l'ensemble de registres de contexte supplémentaire étant utilisé pour représenter l'état d'un fil superviseur qui planifie l'exécution des tâches réalisées par les fils de 45 B17823 FR - 400479FR travail ; et le procédé comprend en outre le fait de commencer l'exécution du fil superviseur dans chacun des créneaux temporels, et le fil superviseur abandonne ensuite individuellement chacun des créneaux temporels dans lesquels il s'exécute à l'un respectif des fils de travail.\n<CLM>\1\tProduit programme informatique comprenant du code incorporé sur un stockage lisible par un ordinateur et gui est agencé pour s'exécuter sur le processeur de l'une quelconque des revendications 1 à 18, dans lequel le code comprend le fil superviseur et les fils de travail.