Brevet FR2838208A1 — publié le 20031010

d'inrmations (4). ARCHITECTURE DE CALCUL LOGIQUE COMPRENANT PLUSIEURS MODES DE CONFIGURATION La présente invention se rapporte au domaine de l'électronique programmable. L'un des grands enjeux de ce domaine est d'utiliser le plus efficacement possible le temps et la place disponible. Pour cela, les développements ont cherché à fournir des solutions reconfigurables dynamiquement, c'est-à-dire sans arrêter les calculs. Pour cela, l'idée la plus simple est de configurer une partie de l' architecture quand une autre partie indépendante est en train de calculer. La présente invention se rapporte plus particulièrement à la conception de modes de configuration multi-niveaux, c'est-à-dire, dans une architecture comprenant un grand nombre de composants programmables la coexistence de deux modes de configuration desdits composants: un mode global pour configurer toute l' architecture et un mode local pour configurer un petit sous-ensemble de composants. L'art antérieur connaît déjà par le brevet américain N US6023742 une architecture de calcul configurable dont les fonctionnalités sont contrôlées par une combinaison de contrôles statiques et dynamiques. Le contrôle statique est une configuration contenue dans une mémoire et les contrôles dynamiques sont des signaux envoyés par un contrôleur et interprétées par un chemin de contrôle qui configure les unités logiques en fonction de ces instructions. Ce document de l'art antérieur propose une architecture supportant deux niveaux de configuration: local et global. Cependant, cette architecture n'est pas configurée pour des éléments logiques travaillant au niveau mot (sur des octets par exemple). La présente invention entend remédier aux inconvénients de l'art antérieur en proposant une architecture de compos ants logique s configurable s comprenant plusieurs modes de configuration et utilisant des composants de calcul logique au niveau mot. Pour ce faire, la présente invention est du type décrit ci-dessus et elle est remarquable, dans son acception la plus large, en ce qu'elle concerne une architecture de calaul logique comportant: - une pluralité de composants de calcul configurables; - une pluralité de composants d'interaonnexion; - un premier ensemble de signaux destinés à configurer l' architecture, c'est- à-dire les connexions entre lesdits composants de calcul et lesdits composants d'interconnexion; - un processeur qui génère ledit premier ensemble de signaux de configuration; caractérisée en ce qu'elle comprend en outre: - une pluralité de composants de contrôle configurables, chaque composant de contrôle étant relié à un desdits composants de calcul et lesdits composants de contrôle étant capables de générer au moins une instruction de calcul à destination desdits composants de calcul; - un deuxième ensemble de signaux destinés à configurer lesdits composants de contrôle. De préférence, lesdits composants de calcul réalisent des calculs sur des ensembles de données, chaque ensemble comprenant une pluralité de bits. Avantageusement, lesdits composants de contrôle sont reliés audit processeur. On comprendra mieux l' invention à l' aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l' invention, en référence aux figures annexées: - la figure 1 illustre un ensemble que celles-ci réalisent un calcul prédéfini. Dans une réalisation de cette architecture, la couche de configuration envoie des informations de configuration directement aux éléments constitutifs des unités de calcul. Si cette architecture comprend un grand nombre d'unités de calcul et de routage, la configuration de la couche opérative peut être longue. L' architecture selon linvention permet de reconfigurer les éléments de la couche opérative selon plusieurs modes: un mode dit selon chaque mode est dynamique. L' architecture mise en _uvre pour le mode opérative est reconfigurable à chaque cycle d'horloge. Pendant qu'un calcul est réalisé par un premier groupe de la couche opérative, le contrôleur de configuration modifie la configuration d'un groupe de la couche de configuration correspondant à un deuxième groupe de la couche opérative. Au coup d'horloge suivant, le deuxième groupe de la couche opérative est reconfiguré en fonction du groupe de la couche de configuration correspondante. De plus, la présence d'un processeur dédié à la gestion de la configuration autorise la gestion de la configuration conditionne l le: le s résultats c alculés par les éléments de la couche opérative peuvent influer sur la configuration de l' architecture. Pour cela, l' architecture met en place un bus de communication entre la couche opérative et le contrôleur de configuration. De plus, l' architecture selon l' invention concerne la mise en _uvre d'un mode de configuration . L' architecture selon l' invention propose d'ajouter des unités dites de contrôle aux unités de calcul. Ces unités de contrôle comprennent un séquenceur d' au moins une instruction (et de préférence 8) et une machine d'état finie qui permet de connaître l'état de l'unité de contrôle à tout instant. La couche de configuration envoie à l'unité de contrôle une information comprenant les instructions de contrôle de l'unité de calcul. L'ensemble de ces instructions forme un microprogramme. Ensuite, le sequenceur commande l'envoi du microprogramme à l'unité de calcul. L'unité de calcul réalise ainsi une suite d' instructions nécessitant des configurations différentes sans faire appel au contrôleur de configuration. Un ensemble > est illustré figure 1. L'unité de calcul (1) est reliée à au moins un flux de données d'entrée (3) et à au moins un flux de données de sortie (4). Elle est de plus reliée à l'unité de contrôle (2) par la liaison (5). L'unité de contrôle (2) est composée d'un démultiplexeur (21), d'un contr81eur de mode (22), d'un module de chargement (23), d'un ensemble de registres (24) et d'un module de sortie (25). Selon le mode de configuration de l' architecture, le contrôleur de mode (22) ordonne au démultiplexeur (21) de router le signal de configuration entrant: - en mode global, c'est-à-dire o l'unité de calcul (1) est directement configurée par la couche de configuration, le signal est transféré directement du démultiplexeur (21) au module de sortie (25) par la liaison (26). Le module de sortie (25) transmet l' information de configuration à l'unité de calcul (1) par la liaison (5); - en mode local, c'est-à-dire o l'unité de calcul (1) est configurée par l'unité de contrôle (2), le démultiplexeur (21) transmet l' information de configuration au module de chargement (23) qui télécharge alors le microprogramme dans l'ensemble de registres (24). Une fois chargé et sous commande d'une instruction le spécifiant, le microprogramme est exécuté par l'unité de contrôle. L'exécution du microprogramme peut suivre deux procédures: - la première procédure consiste en l'exécution des instructions stockées dans les registres de l'unité de contr81e une seule fois; - la seconde procédure consiste en l'exécution des instructions en boucle, c'est-à-dire jusqu'à l'arrét de l'exécution par le contrôleur de configuration. Un registre supplémentaire est présent dans l'unité de calcul, ledit registre supplémentaire contenant l'adresse de fin du microprogramme. Enfin, dans un autre mode de réalisation de l' architecture, certains éléments de calcul logique de l' architecture sont configurés de manière . Cette architecture est de préférence réalisée avec une unité de calcul qui opère sur des " mots >, de bits, c'est-à-dire des ensembles de bits. Les calculs sont plus difficiles à programmer dans l'unité de calcul mais un plus grand nombre de bits sont traités à chaque coup d'horloge, ce qui accélère le processus de calcul. Si on utilise une architecture de calcul par mot, la complexité des calauls mis en _uvre rend la configuration plus difficile. L'utilisation d'une architecture selon l' invention permet de réduire la difficulté de configuration de l' architecture. Une unité de calcul logique est illustrée figure 2. L'unité de calcul logique illustrée figure 2 est unité reconfigurable dynamiquement, apte à effectuer des opérations arithmétiques et logiques simples au niveau mot. Ce composant est constitué d'une pluralité de registres (de préférence 4), d'une unité logique et arithmétique (ALU: ) incluant un multiplieur et d'une machine d'état. L' invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l' invention sans pour autant sortir du cadre du brevet. REVENDICATIONS 1. Architecture de calcul logique comportant: - une pluralité de composants de calcul configurables; - une pluralité de composants d'interconnexion; - un premier ensemble de signaux destinés à configurer l' architecture, c'est-à-dire les connexions entre lesdits composants de calcul et lesdits composants d'interconnexion; - un processeur qui génère ledit premier ensemble de signaux de configuration; caractérisée en ce qu'elle comprend en outre: - une pluralité de composants de contrôle configurables, chaque composant de contrôle étant relié à un desdits composants de calcul et lesdits composants de contrôle étant capables de générer au moins une instruction de calcul à destination desdits composants de calcul; - un deuxième ensemble de signaux destinés à configurer lesdits composants de contrôle. 2. Architecture de calcul logique selon la revendication 1, caractérisée en ce que lesdits composants de calcul réalisent des calculs sur des ensembles de données, chaque ensemble comprenant une pluralité de bits. 3. Architecture de calcul logique selon la revendication 1 ou la revendication 2, caractérisée en ce que lesdits composants de contrôle sont reliés audit