INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
En particulier, le convertisseur 2300 est par exemple configuré pour prendre en charge le codage d'exposant biaisé, exactement comme le format de la norme IEEE-754. C'est une façon de représenter l'exposant, différente de celle du complément à deux. La différence principale est uniquement une constante fixe à ajouter à l'exposant, qui est toujours égale à la valeur exp_min. Afin de prendre en charge cela, un additionneur supplémentaire à 16 bits 2302 est prévu au niveau de la sortie d'exposant du circuit NORM & ROUND.
On notera que l'exposant qui est fourni comme entrée du circuit NORM & ROUND, ainsi que les paramètres exp_min et exp_max, qui ne sont par exemple pas biaisés, en raison du fait que le format à nombres g et l'arrondi g-norm lui-même, fonctionnent tous deux par exemple avec des exposants à compléments à deux.
Une représentation sous-normale signifie qu'il est possible de représenter une valeur inférieure à celle fixée par le paramètre exp_min. En particulier, cela est par exemple effectué par la dé-normalisation de la mantisse lorsque le minimum défini par le paramètre exp_min est atteint, ce qui signifie que la mantisse n'est plus sous la forme 1.x, mais sous la forme 0.0..01x. La mantisse est par exemple décalée d'une quantité subnorm_shamnt, définie par l' équation 21 suivante : [Math 22] où exp est la valeur d'exposant.
Cette représentation sous-normale est par exemple appliquée si l'exposant d'entrée à nombres g est inférieur ou égal à la valeur définie par le paramètre exp_min. Cela signifie que, si une représentation sous-normale est prise en charge, le paramètre exp_min pour lequel la mantisse est toujours normalisée n'est plus le minimum, mais plutôt le minimum plus 1, également désigné comme étant le biais sous-normal (voir tableau 7 plus bas). La différence est que le bit entier caché de la mantisse est 0.x au lieu de 1.x.
La dé-normalisation est par exemple automatiquement effectuée par la logique effectuant la normalisation du nombre final.
Dans le mode de réalisation de la , la prise en charge du biais sous-normal est par exemple mise en œuvre par l'ajout, par rapport au mode de réalisation de la , d'un multiplexeur 2304 afin d'effectuer une sélection de l'exposant correct au niveau de la sortie du circuit NORM & ROUND. Cela est dû, de nouveau, au fait que le normaliseur travaille en complément à deux et, si le minimum défini par exp_min est atteint, et donc qu'une dé-normalisation doit être effectuée, la sortie correcte du circuit NORM & ROUND est exp_min+subnorm_bias. Au contraire, le paramètre exp_min doit être sélectionné.
Afin d'effectuer la sélection de l'exposant correct dans le cas sous-normal, il suffit par exemple de considérer le bit caché de mantisse "int bit" : lorsqu'il est 0, cela signifie que la mantisse a été dé-normalisée et que le paramètre courant exp_min doit être sélectionné. Autrement, l'exposant à nombres g exp est sélectionné.
La représente schématiquement un convertisseur 2400 pour effectuer une conversion IEEE-like en nombres g selon un exemple de mode de réalisation de la présente description. Cette architecture comprend par exemple un seul macro-étage, avec une latence globale de 1 cycle d'horloge, bien que cette latence puisse augmenter lorsque la précision augmente.
Selon le premier mode de réalisation du transpondeur optique, l’élément d’émission 3 peut correspondre à un transducteur. Le transducteur 3 comprend une diode électroluminescente 32 agencée pour recevoir le ou les signaux électriques SE2. La diode électroluminescente 32 est apte à élaborer et émettre au moins un signal lumineux SL2 qui est représentatif du ou des signaux électriques SE2.
Selon un deuxième mode de réalisation du transpondeur optique 1, l’élément d’émission 3 peut comprend un dispositif de rétrodiffusion (« backscattering » en anglais) configuré pour recevoir le ou les signaux électrique SE2 et émettre le ou les signaux lumineux SL2 ( ). Par exemple, le dispositif de rétrodiffusion comprend au moins un réflecteur 34 configuré pour réfléchir le ou les signaux lumineux SL1 et un volet 35 configuré pour être, alternativement, dans une position empêchant le ou les signaux lumineux SL1 d’atteindre le réflecteur 34 et une position permettant le ou les signaux lumineux SL1 d’atteindre le réflecteur 34. Le ou les signaux lumineux SL2 correspondent au ou aux signaux lumineux SL1 réfléchis par le réflecteur 34. La position du volet 35 est fonction du ou des signaux électriques SE2. Ce deuxième mode de réalisation du transpondeur optique 1 est plus complètement décrit ci-après dans la description.
Le ou les transpondeurs optiques 1 comprennent en outre une unité de contrôle 4. L’unité de contrôle 4 comporte un module de réception 40 configuré pour recevoir le ou les signaux électriques SE1 provenant de l’élément de réception 2. Le ou les transpondeurs optiques 1 présentent aussi un module de réception 41 configuré pour recevoir d’au moins capteur 9, 10 logé dans le conteneur communicant 6 (équipé du ou des transpondeurs optiques 1) au moins un signal électrique SE3 représentatif au moins d’un premier paramètre physique caractérisant un état physique instantané de l’intérieur du conteneur communicant 6 et/ou d’un deuxième paramètre physique caractérisant un état physique instantané du ou des dispositifs internes 7 destinés à être contenus dans le conteneur communicant 6.
À titre d’exemple non limitatif, le filtre optique 31 correspond à un filtre passe-bande afin de resserrer le spectre fréquentiel du ou des signaux lumineux SL2 émis par la diode électroluminescente 32. Cela permet aussi d’éviter que des signaux lumineux parasites susceptibles d’être émis par la diode électroluminescente 32 ne soit émis par le transpondeur optique 1.
Selon le deuxième mode de réalisation de transpondeur optique 1 ( , et ), le transpondeur optique 1 comprend en outre une lentille de collection 38 agencée pour recevoir le ou les premiers signaux lumineux SL1, un filtre optique 36 configuré pour filtrer le ou les signaux lumineux SL1 reçus par la lentille de collection 38.
Le filtre optique 36 est configuré pour bloquer des fréquences du ou des signaux lumineux SL1 hors d’une plage de fréquences prédéterminée.
Un calcul à précision variable (VP), également connu dans le domaine sous les noms de calcul à précision multiple, à précision trans et à précision contrôlée, fournit un moyen pour obtenir des améliorations en termes de précision si nécessaire, réduisant ainsi les erreurs de calcul. Le calcul VP est particulièrement adéquat pour résoudre des problèmes qui ne sont pas très stables numériquement ou lorsqu'une précision particulièrement élevée est souhaitée à certains stades du calcul.
Le calcul VP est basé sur l'hypothèse que chaque variable est précisément ajustée en longueur et en précision par le programmeur, optimisant l'erreur de l'algorithme et/ou la latence et/ou l'empreinte mémoire en fonction des exigences de l'algorithme en cours d'exécution. Des exemples de format VP qui ont déjà été proposés incluent le format à nombre universel (UNUM) et le format Posit.
Des solutions de calcul VP impliquent généralement l'utilisation d'une unité de traitement, qui effectue des opérations sur des valeurs à virgule flottante VP. Une ou plusieurs mémoires, telles qu'une mémoire cache et/ou une mémoire centrale, sont utilisées pour stocker les résultats des calculs à virgule flottante, ainsi que des résultats intermédiaires. Une unité de chargement et de stockage (LSU) est souvent utilisée comme interface entre la FPU et la mémoire.
Il existe toutefois un défi à fournir une LSU et/ou une solution d'arrondi permettant de modifier des formats FP entre des mémoires interne et externe avec une flexibilité relativement élevée et une complexité relativement faible.
Selon un aspect, on prévoit un circuit de calcul à virgule flottante comprenant : une mémoire interne stockant une ou plusieurs valeurs à virgule flottante dans un premier format ; des registres d'états définissant une pluralité de types de format de nombres à virgule flottante associés à des identifiants correspondants, chaque type de format indiquant au moins une taille maximale ; et une unité de chargement et de stockage pour charger des valeurs à virgule flottante provenant d'une mémoire externe dans une mémoire interne et pour stocker des valeurs à virgule flottante provenant de la mémoire interne dans la mémoire externe, l'unité de chargement et de stockage étant configurée : - pour recevoir, dans le cadre d'une première opération de stockage, une première valeur à virgule flottante en provenance de la mémoire interne et un premier desdits identifiants ; et - pour convertir la première valeur à virgule flottante depuis le premier format en un premier format de mémoire externe ayant une taille maximale définie par le type de format de nombres à virgule flottante désigné par le premier identifiant.
Selon un mode de réalisation, chaque taille maximale est désignée avec une granularité de bits.
Selon un mode de réalisation, un type de format de nombres à virgule flottante désigné par un deuxième parmi les identifiants correspond à un deuxième format de mémoire externe différent du premier format de mémoire externe, l'unité de chargement et de stockage comprenant : - un premier circuit de conversion depuis un format interne en un format externe configuré pour convertir des valeurs à virgule flottante depuis le premier format en le premier format de mémoire externe ; et - un deuxième circuit de conversion du format interne en un format externe configuré pour convertir des valeurs à virgule flottante depuis le premier format en le deuxième format de mémoire externe.
Selon un mode de réalisation, l'unité de chargement et de stockage comprend en outre : - un premier démultiplexeur configuré pour fournir sélectivement l'au moins une valeur à virgule flottante à un circuit sélectionné parmi les premier et deuxième circuits de conversion depuis un format interne en un format externe ; et - un premier multiplexeur configuré pour fournir sélectivement la valeur convertie générée par le premier ou le deuxième circuit de conversion depuis un format interne en un format externe à la mémoire externe, dans lequel les sélections effectuées par le premier démultiplexeur et le premier multiplexeur sont commandées par un premier signal de commande commun.
Selon un mode de réalisation, l'unité de chargement et de stockage est configurée pour fournir l'au moins une valeur à virgule flottante à la fois aux premier et deuxième circuits de conversion depuis un format interne en un format externe, l'unité de chargement et de stockage comprenant en outre un circuit de commande configuré pour valider sélectivement un des premier et deuxième circuits de conversion depuis un format interne en un format externe ou les deux afin de sélectionner celui qui doit effectuer la conversion.
Selon un mode de réalisation, l'unité de chargement et de stockage comprend en outre : - un premier circuit de conversion depuis un format externe en un format interne configuré pour convertir au moins une valeur à virgule flottante à précision variable chargée à partir de la mémoire externe depuis le premier format de mémoire externe en le premier format, et pour stocker le résultat de la conversion dans la mémoire interne ; et - un deuxième circuit de conversion depuis un format externe en un format interne configuré pour convertir au moins une autre valeur chargée à partir de la mémoire externe depuis le deuxième format de mémoire externe en le premier format, et pour stocker le résultat de la conversion dans la mémoire interne.
Selon un mode de réalisation, le premier format de mémoire externe est un format à virgule flottante à précision variable Custom Posit comprenant, pour représenter un nombre, un bit de signe, un champ de bits de régime rempli avec des bits de la même valeur, la longueur du champ de bits de régime indiquant un facteur d'échelle du nombre et étant limitée par une limite supérieure, une partie d'exposant d'au moins un bit et une partie de fraction d'au moins un bit et dans lequel l'unité de chargement et de stockage comprend un circuit pour calculer la limite supérieure.
Selon un mode de réalisation, le premier format de mémoire externe est d'un type, tel que le format à virgule flottante à précision variable Not Contiguous Posit, comprenant, pour représenter un nombre soit : - un bit indicateur ayant une première valeur et un format Posit ou Custom Posit comprenant un bit de signe, un champ de bits de régime rempli avec des bits de la même valeur, la longueur du champ de bits de régime indiquant un facteur d'échelle du nombre et étant limitée par une limite supérieure, une partie d'exposant d'au moins un bit et une partie de fraction d'au moins un bit ; ou - le bit indicateur ayant une deuxième valeur et un format par défaut représentant le nombre, le format par défaut ayant un bit de signe, une partie d'exposant d'au moins un bit et une partie de fraction d'au moins un bit ; dans lequel l'unité de chargement et de stockage comprend un circuit pour calculer une taille d'exposant sur la base par exemple du format Custom Posit et pour comparer la taille d'exposant avec une taille d'exposant du format par défaut et pour fixer la valeur du bit indicateur de façon correspondante.
Selon un mode de réalisation, le premier format de mémoire externe est un format à virgule flottante à précision variable Modified Posit, comprenant un bit de signe, un champ de bits de régime rempli avec des bits de la même valeur, une longueur lzoc du champ de bits de régime indiquant un facteur d'échelle du nombre et étant limitée par une limite supérieure, une partie d'exposant d'au moins un bit et une partie de fraction d'au moins un bit, dans lequel l'unité de chargement et de stockage comprend un circuit pour calculer la longueur lzoc de sorte que l'exposant exp du nombre soit codé par l'opération suivante : [Math 1] où K représente la longueur d'exposant minimale lorsque la taille du champ de bits de régime est égale à un bit, et S représente le pas d'incrémentation de bits de régime.
Selon un mode de réalisation, le premier format de mémoire externe est un premier format à virgule flottante à précision variable et le deuxième format de mémoire externe est un deuxième format à virgule flottante à précision variable différent du premier format à virgule flottante à précision variable.
Selon un mode de réalisation, le premier format à virgule flottante à précision variable et/ou le deuxième format à virgule flottante à précision variable prend en charge à la fois des codages d'exposant biaisé et non biaisé.
Selon un mode de réalisation, le type de format de nombres à virgule flottante désigné par le premier identifiant correspond à un premier format de mémoire externe, un type de format de nombres à virgule flottante désigné par un deuxième identifiant parmi les identifiants correspond à un deuxième format de mémoire externe différent du premier format de mémoire externe, et un type de format de nombres à virgule flottante désigné par un troisième identifiant parmi les identifiants correspond à un troisième format de mémoire externe différent des premier et deuxième formats de mémoire externe.
LOCUS mutant_M.EcoKI 2981 bp ds-DNA linear 09-NOV-2021 (SEQ ID NO: 6)
Le dispositif de traitement 102 est par exemple une unité arithmétique VP, également désignée ici par VRP (de l'anglais "VaRiable Precision processor", processeur à précision variable). Le dispositif de traitement 102 comprend par exemple, dans l'étage de fourniture, un ou plusieurs fichiers de registres (gRF) 114, qui sont par exemple constitués d'un ou de plusieurs fichiers de registres à nombres g gRF, configurés pour stocker des valeurs de données dans un format à nombres g, qui est décrit plus en détail ultérieurement en relation avec la . Les un ou plusieurs fichiers de registres 114 sont par exemple configurés pour stocker des données à traiter par l'étage d'exécution, et des données résultant du traitement par l'étage d'exécution. Le dispositif de traitement 102 comprend par exemple, dans l'étage d'exécution, une ou plusieurs unités à virgule flottante (gFPU) 116, qui sont par exemple des FPU à nombres g configurées pour traiter des valeurs de données dans le format à nombres g. La FPU à nombres g comprend par exemple un additionneur à nombres g, un multiplicateur à nombres g et/ou d'autres opérateurs à nombres g. Le nombre g dans cette FPU est par exemple constitué de L=4 fragments de mantisse à 64 bits, en plus d'autres champs. La précision du nombre g est par exemple stockée dans le champ L de chaque nombre g.
Le dispositif de traitement 101 comprend également par exemple, dans l'étage d'exécution, une unité de chargement et de stockage (LSU) 118.
Dans certains modes de réalisation, un ou plusieurs registres d'états (SR) 124 sont prévus. Ces registres d'états 124 sont par exemple des registres d'états internes mis en œuvre dans le dispositif de traitement 102. Les registres d'états 124 stockent par exemple des informations définissant une pluralité de types de format FP qui peuvent être sélectionnés pour une valeur FP à stocker dans une mémoire externe et/ou des informations définissant la précision de calcul de la FPU 116. Toutefois, d'autres solutions pour définir la précision de calcul, et d'autres précisions dans le système, seraient possibles.
Chaque type de format FP définit par exemple la configuration de paramètres tels que des modes d'arrondi et la configuration des données dans la mémoire, par exemple, sa taille en octets MBB ou de bits stockés BIS, sa longueur (ou taille) d'exposant ES, et d'autres paramètres pour des formats VP. En outre, dans certains modes de réalisation, il y a de nombreuses instances de ces registres d'états, de sorte que, en fonction des données envoyées à traiter, les valeurs des registres d'états puissent être pré-chargées et/ou pré-calculées afin d'accélérer des applications et des cycles d'horloge non perdus pendant une modification du registre d'états.
Bien que, dans l'exemple de la , les un ou plusieurs registres d'états 124 soient illustrés sous forme d'éléments séparés du fichier de registres gRF 114, de l'unité de traitement gFPU 116, et de la LSU 118, dans des variantes de mode de réalisation ils pourraient être hébergés ailleurs dans le système, par exemple stockés en tant que partie du fichier de registres 114 stocké dans une mémoire, ou stockés en tant que registres d'états externes.
Dans certains modes de réalisation, les registres d'états 124 comprennent un paramètre WGP (de l'anglais "Working G-number Precision" précision des nombres G de travail), qui définit par exemple la précision des nombres g, telle que la précision de la sortie d'une arithmétique (par exemple, une addition).
Les unités de traitement 106, 116 dans les étages d'exécution des dispositifs de traitement 101, 102 sont par exemple configurées pour exécuter des instructions provenant d'un cache d'instructions (INSTR CACHE) 115. Par exemple, des instructions sont acquises à partir du cache d'instructions 115 de l'étage de fourniture, puis décodées, par exemple dans un étage de décodage (DECODE) 117 entre les étages de fourniture et d'exécution, avant d'être exécutées par l'étage d'exécution.
Les unités de traitement 106, 116 sont par exemple configurées pour traiter des valeurs de données dans un ou plusieurs formats d'exécution. Par exemple, le format d'exécution pris en charge par les une ou plusieurs unités à virgule flottante 116 est le format à nombres g. Le format d'exécution pris en charge par les une ou plusieurs unités de traitement 106 dépend par exemple du type de processeur. Dans le cas d'une ALU, le traitement d'entiers signés ou non signés est par exemple pris en charge. Dans le cas d'une FPU, des formats IEEE-754 flottant et/ou double sont par exemple pris en charge. Afin de simplifier la mise en œuvre matérielle des unités de traitement 106, 116, ces unités sont par exemple configurées pour effectuer un traitement sur des valeurs de données d'une longueur de bits d'exécution fixe EBL, égale par exemple à 32 bits ou 64 bits. Ainsi, les données dans les unités de traitement 106, 116 sont par exemple réparties en des fragments de mantisse ayant une largeur de bit EBL, égale dans certains modes de réalisation à 512 bits. Toutefois, les largeurs de données traitées par tout ou partie des étages en pipeline peuvent être inférieures à la largeur de bits EBL. Par exemple, certains étages en pipeline, tels que le multiplicateur de mantisse, traitent des données en fragments de 64 bits, alors que d'autres, tels que l'additionneur de mantisse, pourraient traiter des données en fragments de 128 bits, alors qu'encore d'autres, tels que déplacement, un compte conduisant à zéro et un décalage (décrits plus en détail ultérieurement), pourraient traiter des données avec la longueur EBL complète de 512 bits. Le "parallélisme de fragments" sur lequel le calcul de mantisse peut être effectué dépend par exemple du "remplissage disponible" dans la mise en œuvre matérielle finale de l'unité.
Une partie mémoire 103 du dispositif de calcul 100 comprend par exemple une mémoire cache 120 qui est par exemple une mémoire cache de niveau un (L1) et une mémoire RAM supplémentaire 122 mise par exemple en œuvre par une DRAM (de l'anglais "Dynamic Random Access Memory", mémoire vive dynamique). Dans certains modes de réalisation, les dispositifs de traitement 101, 102 et la mémoire cache 120 sont mis en œuvre par un système sur puce (SoC) et la mémoire 122 est une mémoire externe, qui est externe au SoC. Comme cela est connu de la personne de métier, la mémoire cache 120 est par exemple une mémoire ayant une taille plus petite que la mémoire 122, et ayant des temps d'accès relativement rapides, de sorte que certaines données puissent être directement stockées dans ou chargées à partir de la mémoire cache 120, conduisant ainsi à des temps d'accès mémoire rapides. Dans des variantes de mode de réalisation la mémoire externe 103 pourrait être une mémoire RAM, un disque dur, un disque Flash, ou une autre mémoire accédée par exemple par l'intermédiaire d'une MMU (de l'anglais "memory management unit", unité de gestion de mémoire – non représentée).
Les unités de chargement et de stockage 108, 118 sont par exemple responsables du chargement de valeurs de données provenant de la mémoire 120, 122 dans les fichiers de registres 104, 114 respectivement, et du stockage des valeurs de données provenant des fichiers de registres 104, 114 respectivement, dans la mémoire 120, 122.
Bien que dans l'exemple de la les unités de traitement 106, 116 soient mises en œuvre sous forme matérielle, il serait également possible que l'une de ces unités de traitement 106, 116 ou les deux soient mises en œuvre par une mise en œuvre logicielle sur la base d'une bibliothèque logicielle telle que softfloat (le terme "softfloat" peut correspondre à une ou plusieurs marques déposées).
Premier aspect – Prise en charge de plusieurs types de formats FP
Comme cela sera décrit en détails ultérieurement, avantageusement, le format de stockage utilisé pour stocker des valeurs de données dans la mémoire 103 est différent du format d'exécution ou des formats utilisés par les unités de traitement 106, 116 et, en outre, une pluralité de différents types de format FP et/ou une pluralité de différents formats FP VP sont pris en charge pour le stockage des valeurs de données dans la mémoire 103. En particulier, les unités de chargement et de stockage 108, 118 des étages d'exécution des dispositifs de traitement 101, 102 sont par exemple configurées pour charger des valeurs de données en provenance de la mémoire 103 dans un format de stockage, pour effectuer une conversion de format depuis le format de stockage en un format d'exécution et pour stocker les valeurs de données converties dans un fichier de registres correspondant 104, 114. Les unités de chargement et de stockage 108, 118 sont également par exemple configurées pour convertir des valeurs de données dans les fichiers de registres correspondants 104, 114 depuis un format d'exécution en un format de stockage et pour stocker les valeurs de données converties dans la mémoire 103.