Brevet FR3088767A1 — publié le 20200522

B17236 - DD18432 DESCRIPTION TITRE : Circuit mémoire adapté à mettre en oeuvre des opérations de calcul Domaine technique [0001] La. présente description concerne le domaine des circuits mémoire. Elle vise plus particulièrement un circuit mémoire adapté à mettre en oeuvre des opérations de calcul. Techniaue antérieure [0002] Il a déjà été proposé, dans la demande de brevet européen E93252774 (DD16812/B14843), dans la demande de brevet français N°17/62534 (DD17938/1316054) déposée le 19 décembre 2017, dans la demande de brevet français N°17/62470 (DE17955/1316064) déposée le 19 décembre 2017, dans la demande de brevet français N017/63221 (D1717956/816065) déposée le 26 décembre 2017, et dans la demande de brevet français N°17/62468 (DD17885/1316288) déposée le 19 décembre 2017, un circuit mémoire adapté non seulement à. stocker des données, mais aussi à effectuer, in-situ, lors d'accès au contenu de la mémoire., un certain nombre d'opérations logiques et/ou arithmétiques ayant pour opérandes des données stockées dans la mémoire. Ce circuit comprend, comme dans un circuit mémoire classique, une pluralité de cellules élémentaires agencées en matrice selon des rangées et des colonnes, et un circuit de contrôle adapté à mettre en oeuvre des opérations de lecture ou d'écriture de données dame des rangées de la. matrice, A. la différence d'un circuit mémoire classique dans lequel une seule rangée de la matrice peut être sélectionnée à la fois lors d'une opération de lecture, le circuit de contrôle est adapté à sélectionner simultanément en lecture une pluralité de rangées de la matrice de façon à réaliser une opération ayant pour opérandes des données contenues dans les rangées sélectionnées. 2 B17236-DD18432 [0003] Il serait souhaitable d'améliorer au moins en partie certains aspects d'un tel circuit mémoire. Résumé de l'invention [0004] Ainsi, un mode de réalisation prévoit un circuit mémoire comportant : - une pluralité de cellules élémentaires de stockage agencées en matrice selon des rangées et des colonnes, les cellules d'une même colonne partageant une même ligne de bit de lecture et une même ligne de bit d'écriture ; - un circuit interne de contrôle adapté à mettre en oeuvre une opération de calcul comprenant l'activation simultanée en lecture d'au moins deux rangées de la matrice ; et - un circuit de permutation comportant un registre d'entrée de données, un registre de configuration, et un port de sortie, circuit de permutation étant adapté à fournir sur son port de sortie les données mémorisées dans son registre d'entrée permutées selon une permutation définie en fonction de l'état de son registre de configuration. [0005] Selon un mode de réalisation, le circuit de contrôle interne est adapté â mettre en oeuvre une opération de permutation comprenant - l'activation en _Lecture d'au moins une première rangée de r matrice ; - la copie de données lues sur les lignes de bit de lecture de la matrice dans le registre d'entrée de données du circuit de permutation ; - la copie de données fournies sur le port de sortie du circuit de permutation sur les lignes de bit d'écriture de la matrice ; et - l'activation en écriture d'au moins une rangée de la matrice. [0006] Selon un mode de réalisation, l'opération de permutation comprend en outre : activation en lecture d'au moins une deuxième rangée de B17236-DD18432 la matrice ; et - la copie de données lues sur les lignes de bit de lecture de la matrice dans le registre de configuration du circuit de permutation, [0007] Selon un mode de réalisation, le circuit mémoire comprend, en plus de la matrice de cellules élémentaires de stockage, une mémoire additionnelle destinée a stocker des données de configuration du circuit de permutation. [0008] Selon un mode de réalisation, l'opération. de Permutation comprend en outre la copie de données lues dans la mémoire additionnelle dans le registre de configuration du circuit de permutation. [0009] Selon un mode de réalisation, la mémoire additionnelle est une mémoire non volatile_ [0010] Selon un mode de réalisation, le circuit de permutation comprend une pluralité de cellules élémentaires de permutation comprenant chacune deux entrées de données el et e2, deux sorties de données si et s2, et une entrée de configuration c, [0011] Selon un mode de réalisation, le circuit de permutation comprend*(2*log2(K)-1) cellules élémentaires de permutation agencées selon un réseau de Benes, oO K est un entier désignant la dimension du registre d'entrée et du port de sortie du circuit de permutation. [0012] Selon un mode de réalisation, le circuit de permutation comprend 16 cellules élémentaires de permutation agencées selon 5 rangées, les rangées de rang 1=1 à 1=3 comportant chacune 4 cellules élémentaires, et les rangées de rang 1=4 à 1=5 comportant chacune 2 cellules élémentaires, le registre d'entrée et le port de sortie du circuit de permutation étant de dimension P, et étant un entier allant de 1 à 5. 4 B17236-DD18432 [0013] Selon un mode de réalisation, le circuit mémoire comporte en outre un circuit d'entrée-sortie configurable pour relier les lignes de bit de lecture de la matrice au registre d'entrée du circuit de permutation et/ou pour relier les lignes de bit d'écriture de la matrice au port de sortie du circuit de permutation. [0014] Selon un mode de réalisation, le circuit mémoire comporte en outre un circuit de calcul adapté à mettre en oeuvre des opérations logiques ou arithmétiques ayant pour opérandes des données mémorisées dans la matrice de cellules élémentaires de stockage du circuit mémoire. [0015] Selon un mode de réalisation, le circuit d'entrée- sortie est en outre configurable poux relier les lignes de bit de lecture de la matrice à un registre d'entrée du circuit de calcul et/ou pour relier les lignes de bit d'écriture de la matrice à un port de sortie du circuit de calcul. Brève description des dessins [0016] Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : [0017] [Fig. 1] la figure 1 représente de façon schématique un exemple d'un circuit mémoire adapté à. mettre en oeuvre des opérations de calcul ; [0018] [Fig. 2] la. figure 2 est un schéma électrique plus détaillé d'un exemple d'une cellule élémentaire de stockage d'un circuit mémoire ; [0019] [Fig. 3] la figure 3 représente de façon schématique un exemple d'un. circuit mémoire selon un mode de réalisation. ; [0020] [Fig. 4] la figure 4 représente plus en détail un exemple de réalisation d'un circuit de permutation du circuit mémoire de la figure 3; B17236-DD18432 [0021] [Fig. 5] la figure 5 représente un exemple de réalisation d'une cellule élémentaire de permutation du circuit de permutation de la figure 4 ; [0022] [Fig. 6] la figure 6 représente un autre exemple de réalisation d'un circuit de permutation du circuit mémoire de la figure 3 ; [0023] [Fig. 7] la figure 7 représente de façon schématique un autre exemple de réalisation d'un circuit mémoire selon un mode de réalisation ; [0024] [Fig. 8] la figure 8 représente plus en détail un exemple de réalisation du circuit mémoire de la figure 7 ; [0025] [Fig. 9] la figure 9 représente de façon schématique un exemple d'un procédé de traitement de données pouvant être mis en oeuvre par un circuit mémoire selon un mode de réalisation ; [0026] [Fig. 10] la figure. 10 représente de façon schématique un autre exemple d'un procédé de traitement de données pouvant être mis en oeuvre par un circuit mémoire selon un mode de réalisation ; et [0027] [Fig. 11] la figure 11 illustre schématiquement un autre exemple d'un procédé de traitement de données pouvant être mis en oeuvre par un circuit mémoire selon un. mode de réalisation.. Description des modes de réalisation mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. 6 B17236-DD18432 [0029] Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier la réalisation complète d'un circuit mémoire adapté à mettre en oeuvre des opérations de calcul par activation simultanée en lecture d'une pluralité de rangées d'une matrice de cellules élémentaires n'a pas été détaillée, les modes de réalisation décrits étant compatibles avec les architectures connues de tels circuits, et notamment celles décrites dans les demandes de brevet susmentionnées. [0030] Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à. deux éléments reliés ou couplés entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés ou couplés par l'intermédiaire d'un ou plusieurs autres éléments. [0031] Sauf précision contraire, les expressions "environ", "approximativement', "sensiblement", et "de l'ordre de" signifient à 10 95 prés, de préférence à 5 96 près [0032] Dans la. description qui suit, les références à des signaux de niveau haut et bas doivent être interprétées de façon relative, comme correspondant à deux états distincts des signaux binaires traités par les circuits décrits. A titre d'exemple, le niveau haut des signaux correspond à des potentiels de l'ordre d'un potentiel d'alimentation haut VDD des circuits décrits (par exemple égal à VDD à 0,5 V près), et le niveau bas des signaux correspond â des potentiels de l'ordre d'un potentiel d'alimentation bas GND des circuits décrits (par exemple égal à OND à 0,5 V près), [0033] La figure 1 représente de façon schématique un exemple d'un circuit mémoire 100. L'ensemble des éléments du circuit 7 B17236 - DD18432 mémoire 100 est par exemple intégré dans et sur une même puce de circuit intégré. [0034] Le circuit mémoire 100 de la figure 1 comprend une pluralité de cellules élémentaires 10 agencées en matrice selon des rangées et des colonnes, Dans l'exemple de la figure 1, la matrice comprend M rangées et N colonnes, où M et N sont des entiers supérieurs ou égaux à 2. [0035] Chaque cellule élémentaire 10 est adaptée à mémoriser un bit de donnée. Les cellules élémentaires 10 d'une même colonne de la matrice sont connectées à une même piste conductrice de sortie de données ou ligne de bit de lecture RB', du circuit, et à une même piste conductrice d'entrée de données ou ligne de bit d'écriture WEL du circuit, étant entendu que les cellules élémentaires 10 de colonnes distinctes sont connectées à des lignes de bit de lecture REL distinctes et à des lignes de bit d'écriture WEL distinctes. Autrement dit, pour chaque colonne de rang j de la matrice, où j est un entier allant de 0 à N-1, le circuit mémoire 100 comprend une ligne de bit de lecture REL et une ligne de bit d'écriture W-BL spécifiques à la colonne, connectant entre elles les cellules de la colonne. Les lignes de bit de lecture RELcj> et d'écriture WELcj> s'étendent dans la direction des colonnes de la matrice, c'est-à-dire verticalement dans l'orientation de la figure 1. Les lignes de bit de lecture REL et d'écriture WEL:j> sont connectées à un même circuit d'entrée-sortie IO du circuit mémoire, par exemple disposé à une extrémité des colonnes de la matrice. [0036] Le circuit mémoire 100 comprend de plus un circuit de sélection de rangées RS, par exemple disposé à une extrémité des rangées de la matrice, [0037] Le circuit mémoire 100 comprend en outre un circuit de contrôle CTRL adapté â recevoir des instructions provenant d'un dispositif externe au circuit mémoire, et à commander en 8 B17236-DD18432 conséquence les cellules élémentaires 10 du circuit mémoire via le circuit de sélection de rangées RS et/ou via le circuit d'entrée-sortie 10. [0038] Dans cet exemple, le circuit mémoire est adapte non seulement à stocker des données, mais aussi à effectuer, in-situ, lors d'accès au contenu de la. mémoire, un certain nombre d'opérations logiques et/ou arithmétiques avant pour opérandes des données stockées dans le circuit mémoire. Les résultats des calculs peuvent etre transmis à des circuits externes au circuit mémoire, et/ou être réécrits dans le circuit mémoire sans transiter par des circuits externes au circuit mémoire, et notamment par un bus de données externe au circuit mémoire. [0039] Dans l'exemple de la figure 1, le circuit mémoire 100 comprend un circuit de calcul 20, par exemple disposé à une extrémité des colonnes de la matrice, adapté à mettre en oeuvre des opérations logiques ou arithmétiques ayant poux opérandes des données mémorisées dans la matrice de stockage du circuit mémoire. Dans l'exemple représenté, le circuit de calcul 20 comprend un registre d'entrée de données 22, par exemple de dimension Ni, et un port de sortie de données 24, Dar exemple de même dimension. N. Le registre d'entrée de données 22 Pt le port de sortie de données 24 du circuit de. calcul 20 sont reliés au circuit. d'entrée-sortie 10 du circuit mémoire. Pour mettre en oeuvre une opération de calcul au moyen du circuit 20, le circuit de contrôle CTRL commande la. lecture d'une ou plusieurs données opérandes dans la matrice de stockage du circuit mémoire et l'écriture de ces données opérandes, via le circuit d'entrée-sortie IO, dans le registre d'entrée de données 22 du circuit de calcul. 20. Le circuit de contrôle CTRL commande en outre le circuit 20 pour mettre en oeuvre l'opération souhaitée. Le résultat de l'opétation est fourni sur le port de sortie 24 du circuit de calcul 20, et. 9 B17236-DD18432 peut être directement réécrit dans la matrice de stockage du circuit mémoire par l'intermédiaire du circuit d'entrée-sortie IO, sans transiter par des circuits externes au circuit mémoire. [0040] La figure 2 est un schéma électrique détaillé d'un exemple d'une cellule élémentaire 10 d'un circuit mémoire du type décrit en relation avec la figure 1. [0041] La cellule élémentaire 10 de la figure 2 est une cellule à dix transistors. Elle comprend une cellule de stockage SRAM 12 à six transistors, et deux ports de lecture RPT et RP2 à deux transistors chacun. La cellule de stockage 12 comprend deux inverseurs (deux transistors chacun) montés en antiparallèle entre un premier noeud. BI= de stockage d'un bit de donnée, et un deuxième noeud BLFI de stockage d'un bit de donnée complémentaire du bit stocké sur le noeud BLTI. La cellule de stockage 12 comprend en outre un premier transistor d'accès Ti, reliant, par ses noeuds de conduction, le noeud BLrM à une piste conductrice WRLT appelée ligne de bit d'écriture, et un deuxième transistor d'accès 12, reliant, par ses noeuds de conduction, le noeud BLFI à une piste conductrice WELF appelée ligne de bit d'écriture complémentaire. Les grilles des transistors Ti et T2 sont reliées à une même piste conductrice de contrôle d'écriture WWL. Le port de lecture PST comprend deux transistors T3 et 14 montés en série, via leurs noeuds de conduction, entre une piste conductrice VGNDT d'application, d'un potentiel de référence et une piste conductrice de sortie RBLT appelée ligne de bit de lecture. Le transistor T3 est situé coté piste VGNDT et a sa grille reliée au noeud BLTI, et le transistor T4, est situé côté piste RBLT et a. sa grille reliée à une piste conductrice de contrôle de lecture RWLT. Le port de lecture RPF comprend deux transistors T5 et T6 montés en série, via leurs noeuds de conduction, entre une piste conductrice VGFIDF 10 B17236-DD18432 d'application d'un potentiel de référence et une piste conductrice de sortie RBLF appelée ligne de bit de lecture complémentaire. Le transistor T5 est situé côté piste VGNDF et a sa grille reliée au noeud BLFI, et le transistor T6 est situé côté piste RBLF et a sa grille reliée à une piste conductrice de contrôle de lecture RWLF. Dans cet exemple, les transistors Tl, T2, T3, T4, T5, T6 sont des transistors MOS à canal N. [0042] Dans un circuit mémoire du type décrit en relation avec la figure 1, les cellules élémentaires d'une même rangée du circuit sont interconnectées via leurs pistes conductrices WWL, respectivement RWLF, respectivement RWLT, et les cellules élémentaires d'une même colonne du circuit sont interconnectées via leurs pistes conductrices RBLT, respectivement VGNDT, respectivement WELT, respectivement WBLF, respectivement VGNDF, respectivement RBLF. En d'autres termes, J-üs cellules d'une même rangée partagent une même piste conductrice WWL, une même piste conductrice RWLF, et une même piste conductrice RWLT, et les cellules d'une même colonne partagent une même piste conductrice RBLT, une même piste conductrice VGNDT, une même piste conductrice WBLT, une même piste conductrice WBLF, une même piste conductrice VGNDF, et une même piste conductrice RBLF. Les cellules da rangées distinctes ont quant à elles des pistes conductrices WWL, respectivement RWLF, respectivement RWLT, distinctes, et les cellules de colonnes distinctes ont des pistes conductrices RBLT, respectivement VGMDT, respectivement WBLT, respectivement WBLF, respectivement VGNDF, respectivement. RIBLF, distinctes. A titre d'exemple, les pistes conductrices WWL. RWLF et RWLT sont connectées au circuit de sélection de rangées RS du circuit mémoire, et les pistes conductrices RBLT, VGNDT, WBUT, WBLF, VGNDF et RBLF sont connectees au circuit d'entrée-sortie IO du circuit mémoire. 11 B17236 - DD18432 [0043] A titre d'exemple, la ligne de bit de lecture RBLT et la ligne de bit d'écriture WBLT de la cellule 10 de la figure 2 correspondent respectivement à. une ligne de bit de lecture RBL et à une ligne de bit d'écriture WBL du circuit mémoire de la figure 1. Par souci de simplification, dans les figures de circuit mémoire de la présente demande (les figures 1, 3 et 7), une seule ligne de bit de lecture et une seule ligne de bit d'écriture ont été représentées par cellule élémentaire du circuit mémoire. En pratique, les modes de réalisation décrits peuvent étre mis en oeuvre soit dans des circuits mémoire constitués de cellules élémentaires à une seule ligna de bdt de lecture et une seule ligne de bit d'écriture, soit dans des circuits mémoire constitués de cellules élémentaires à deux lignes de bit de lecture complémentaires, par exemple du type décrit en relation avec la figure 2. [0044] Pour réaliqer une lecture d'une cellule élémentaire 10 du type décrit en relation avec la figure 2 via son port de lecture RPT, la ligne de bit de lecture RBLT de la cellule est d'abord préchargée à un niveau haut, par exemple à. la tension d'alimentation. VDD du circuit mémoire. La piste conductrice VGNDT est quant à elle maintenue à un niveau bas, par exemple au potentiel bas GND par rapport auquel est référencée la tension d'alimentation. VDD du circuit mémoire. Le transistor U4 de la cellule est ensuite rendu passant par application d'un signal de niveau haut sur la piste conductrice RWLT de la cellule. Après l'activation du transistor T4, la piste conductrice RBLT se décharge si le potentiel du. noeud BLTI est à un niveau haut (transistor T3 passant.), et reste sensiblement à son niveau de précharge si le potentiel BLTI est à. un niveau bas (transistor T3 bloqué). La lecture du potentiel de la piste RBLT vie le circuit d'entrée-sortie 10 du circuit mémoire permet de déterminer la valeur du bit de donnée stocké dans la cellule élémentaire. 12 B17236-DD18432 La cellule peut en outre être lue sensiblement de la même manière via son port de lecture RPF. [0045] Pour mettre en oeuvre des opérations de calcul, dans un circuit mémoire constitua de cellules élémentaires 10 du type décrit en relation avec la figure 2, le circuit de contrôle CTRL du circuit mémoire est adapté à activer simultanément en lecture (via le circuit de sélection de rangées RS) deux, ou un nombre supérieur à deux, de cellules élémentaires d'une même colonne du circuit mémoire, via les ports d'accès RPT, et/ou via les ports d'accès RPF de ces cellules. [0046] A titre d'exemple illustratif, on considère que deux cellules élémentaires 10 d'une même colonne sont activées simultanément en lecture via leurs ports RPT et RPF. Pour cela, après avoir précharge à un niveau haut les lignes de bit de lecture RBLT et RBLF de la colonne et mis à, un niveau bas les pistes conductrices de référence VGNDT et VGNDF de la colonne, les transistors de sélection TA et T6 des deux cellules sélectionnées sont simultanément rendus passant, via les pistes conductrices de commande RWLT et RWLF des rangées correspondantes_ On désigne respectivement par A et B les valeurs binaires mémorisées sur les noeuds BLTI des deux cellules considérées. Les valeurs binaires complémentaires NA et NB sont alors stockées sur les noeuds BLFI respectifs des deux cellules. La piste conductrice de sortie RBLT de la colonne reste à son niveau haut de précharge uniquement si les deux valeurs A et B sont à un niveau bas, Ainsi, le niveau lu sur la piste de sortie RBLT de la colonne à la fin de l'opération de lecture correspond au résultat NA.NB d'une opération de calcul logique NON OU- entre les deux cellules mémoire sélectionnées. De plus, la piste conductrice de sortie RBLF de la colonne reste à son niveau haut de precharc'e uniquement si les deux valeurs A et B sont A un niveau haut. 13 B17236-DD18432 Ainsi, le niveau lu sur la piste de sortie RED& de la colonne à la fin de l'opération de lecture correspond au résultat A.B d'une opération de calcul logique ET entre les deux cellules mémoire sélectionnées. [0047] En activant simultanément en lecture un nombre supérieur à deux de cellules dune même colonne, les opérations de calcul susmentionnées peuvent être mises en oeuvre avec un nombre d'opérandes supérieur à 2. De plus, en activant simultanément en lecture plusieurs colonnes du circuit mémoire, ces opérations de calcul peuvent être mises en oeuvre sur des mots de plusieurs bits. [0048] Ainsi, des opérations de calcul logique de base peuvent être mises en oeuvre directement dans la mémoire, sans avoir à faire transiter les données par une unité arithmétique et logique externe au circuit. [0049] Pour permettre la réécriture du résultat d'une opération de calcul sans faire transiter la donnée calculée par des circuits externes au circuit mémoire, et notamment par un bus de données externe au ercilit mémoire, le circuit d'entrée-sortie IO du circuit mémoire peut comprendre un circuit interne de redirection. (non détaillé) permettant de relier la ou les lignes de bit de lecture de chaque colonne du circuit mémoire à un noeud d'entrée de données de la colonne et/ou d'une autre colonne de la matrice, par exemple à la piste conductrice WBLT et/ou à la piste conductrice WELF de la colonne ou d'une autre colonne de la matrice dans une architecture du type décrit en relation avec la figure 2. [0050] complexes, de calcul p.-lus par exemple des opérations arithmétiques, les Pour mettre en oeuvre des opération données opérandes peuvent être transmises au circuit de calcul 20. Pour cela, le circuit interne de redirection du circuit d'entrée-sortie IO peut être configure pour relier les lignes de bit de lecture du circuit mémoire à des noeuds d'entrée du 14 B17236-DD18432 registre d'entrée de données 22 du circuit de calcul 20. Une fois l'opération réalisée, le circuit interne de redirection du circuit d'entrée-sortie 10 peut être configuxé pour relier les lignes de bit d'écriture du circuit mémoire à des noeuds de sortie du port de sortie de données 24 du circuit de calcul 20 de façon à permettre la réécriture du résultat de l'opération de calcul sans faire transiter la donnée calcinée par des circuits externes au circuit mémoire- et notamment par un bus de données externe au circuit mémoire. [0051] La. figure 3 représente de façon schématique un exemple d'un circuit mémoire 200 selon un mode de réalisation. Comme dans l'exemple de la figure I, l'ensemble des éléments du circuit mémoire 200 peut être intégré dans et sur une même puce semiconductrice. [0052] Le circuit mémoire 200 de la figure 3 comprend les mêmes éléments que le circuit mémoire 100 de la figure 1, agencés sensiblement de la même manière. [0053] Le circuit mémoire 200 comprend en outre un circuit de permutation 30. Le circuit de permutation 30 comprend un registre d'entrée de données 32 de dimension K, c'est-à-dire adapté à recevoir simultanément (en parallèle) et à mémoriser K bits de données, et un port de sortie de données 34 de même dimension K, c'est-à-dire adapté à fournir simultanément (en parallèle) K bits de données. A titre d'exemçle, la dimension K du circuit de permutation 30 est égale au nombre N de colonnes de la matrice de cellules de stockage du circuit mémoire. Le circuit de permutation 30 comprend en outre un registre de configuration 36. Le circuit de permutation est adapté à fournir sur son port de sortie les K bits mémorisés dans son registre d'entrée de données, permutés selon une permutation définie en fonction de l'état de son registre de configuration 36. 15 B17236 - DD18432 [0054] Par permutation, on entend ici que les K bits d'entrée du circuit 30 sont recopiés en sortie du circuit 30, mais dans un ordre différent. Le nombre total de permutations possible pour un vecteur d'entrée de K bits est égal à Ki (K factorielle), soit K*(K-1)*(K-2)* *2*1. Le circuit de permutation 30 est par exemple configurable, via son registre de configuration. 36, pour mettre en oeuvre l'une quelconque des K! permutations possibles, rnrcr, Le registre d'entrée de données 32, le port de sortie de données 34 et le registre de configuration 36 du circuit de permutation 30 sont reliés au circuit d'entrée-sortie IO du circuit mémoire. Pour mettre en oeuvre une opération de permutation au moyen du circuit 30, le circuit de contrôle CTRL commande la lecture d'une donnée d'entrée dans la matrice de stockage du circuit mémoire, l'écriture de cette donnée, via le circuit d'entrée-sortie IO, dans le registre d'entrée de données 32 du circuit de per- mfltation 20, la lecture d'une donnée de configuration dans la matrice de stockage du circuit mémoire, et l'écriture de cette donnée, via le circuit d'entrée-sortie IO, dans le registre de configuration 36 du circuit de permutation 30. Pour cela, le circuit interne de redirection du circuit d'entrée-sortie IO peut être configure pour relier les lignes de bit de lecture du circuit mémoire à des noeuds d'entrée du registre d'entrée de données 32 du circuit de permutation 30 et/ou à des noeuds d'entrée du registre de configuration 36 du circuit de permutation 30. Le résultat de la permutation est fourni sur le bort de sortie 34 du circuit 30, et peut être directement réécrit dans la matrice de stockage du circuit mémoire par l'intexmédiaire du circuit d'entrée-sortie IO, sans transiter par des circuits externes au circuit mémoire. Pour cela, le circuit interne de redirection du circuit d'entrée-sortie IO peut être configure pour relier Les lignes de bit d'écriture du circuit mémoire 16 B17236-DD18432 à des noeuds de sortie du port de sortie de données 34 du circuit de permutation 30. [0056] La figure 4 représente plus en détail un exemple de réalisation du circuit de permutation 30 du circuit mémoire de la figure 3. Dans cet exemple, on considère, à titre d'exemple illustratif, un circuit de permutation de dimension K = 8, c'est-à-dire dans lequel les registres d'entrée 32 et de sortie 34 sont chacun de dimension K - 8. L'homme de l'art saura généraliser cet exemple à la réalisation d'un circuit de permutation de dimension K quelconque, où K =2H (deux puissance H) et est un entier positif. On notera que dans cas où la dimension D des données de la mémoire n'est pas une puissance de deux, on pourra choisir K supérieur à D, par exemple égal à la première puissance de deux supérieure à D 2H avec H tel que 2)1-1 REVENDICATIONS1. Circuit mémoire (200 ; 300) comportant : - une pluralité de cellules élémentaires de stockage (10) agencées en matrice selon des rangées et des colonnes, les cellules d'une même colonne partageant une même ligne de bit de lecture (REL) et une même ligne de bit d'écriture (WBL) - un circuit interne de contrôle (CTRL) adapté à mettre en oeuvre une , de calcul comprenant l'activation operai.ion simultanée en lecture d'au moins deux rangées de la matrice ; et - un circuit de permutation. (30) comportant un registre d'entrée de données (32), un registre de configuration (36), et un port de sortie (34), le circuit de permutation (30) étant adapté à fournir sur son port de sortie (34) les données mémorisées dans son registre d'entrée (32) permutées selon une permutation définie en fonction de l'état de son registre de configuration (36). 2, Circuit mémoire (200 ; 300) selon la revendication 1, dans lequel le circuit de contrôle interne (CTRL) est adapté à mettre en oeuvre une opération de permutation comprenant : - l'activation en lecture d'au moins une première rangée de la matrice ; - la copie de données lues sur les lignes de bit de lecture (RBL) de la matrice dans le registre d'entrée de données (32) du circuit de permutation (30) ; - la copie de données fournies sur. le Port de sortie (34) du circuit de permutation (30) sur les lignes de bit d'écriture. (WBL) de la matrice. ; et l'activation en écriture d'au moins une rangée de la matrice. 33 B17236-DD18432 3. Circuit mémoire (200) selon la revendication 2, dans lequel l'opération de permutation comprend en outre --l'activation en lecture d'au moins une deuxième rangée de la matrice ; et - la copie de données lues sur les lignes de bit de lecture (RBL) de la matrice dans le registre de configuration (36) du circuit de permutation (30). 4. Circuit mémoire (300) selon la revendication 1 ou 2, comprenant, en plus de la matrice de cellules élémentaires de stockage (10), une mémoire additionnelle (50) destinée à stocker des données de configuration du circuit de permutation (30). 5. Circuit mémoire (300) selon la revendication 4 dans son rattachement à la revendication 2, dans lequel l'opération de permutation comprend en outre la copie de données lues dans la mémoire additionnelle (50) dans le registre de configuration (36) du circuit de permutation (30), 6, Circuit mémoire (300) selon la revendication 4 ou. E, dans lequel la mémoire additionnelle (50) est une mémoire non volatile. 7. Circuit mémoire (200 ; 300) selon l'une quelconque des revendications 1 à 6, dans lequel le circuit de permutation (30) comprend une pluralité de cellules élémentaires de Permutation (40) comprenant chacune deux entrées de données el et e2, deux sorties de données sl et s2, et une entrée de configuration. c. 8, Circuit mémoire (200 ; 300) selon la revendication 7, dans lequel le circuit de permutation comprend (K72)*(2*log2(K)- 1) cellules élémentaires de permutation (40) agencées selon un réseau de Benes, où K est un entier désignant la 34 B17236- DD18432 dimension du registre d'entrée (32) et du port de sortie (34) du circuit de permutation (30), 9. Circuit mémoire (200 ; 300) selon la revendication 7, dans lequel le circuit de permutation comprend 16 cellules élémentaires de permutation (40) agencées selon 5 rangées, les rangées de rang 1=1 à 1=3 comportant chacune 4 cellules élémentaires (40), nt les rangées de rang 1=4 à 1=5 comportant chacune 2 cellules élémentaires (40), le registre d'entrée (32) et le port de sortie (34) du circuit de permutation (30) étant de dimension B, et 1 étant un entier allant de 1 à H, 10. Circuit mémoire (200 ; 300) selon l'une quelconque des revendications 1 à 9, comportant en outre un circuit d'entrée-sortie (10) configurable pour relier les lignes de bit de lecture (RBL) de la matrice au registre d'entrée (32) du circuit de permutation (30) et/ou pour relier les lignes de bit d'écriture (WEL) de la matrice au port de sortie (34) du circuit de permutation (30). 11. Circuit mémoire (200 ; 300) selon la revendication 10, comportant en outre un circuit de calcul (20) adapté à mettre en oeuvre des opérations logiques ou arithmétiques ayant pour opérandes des données mémorisées dans la matrice de cellules élémentaires de stockage (10) du circuit mémoire. 12. Circuit mémoire (200 ; 300) selon la revendication 11, dans lequel le circuit d'entrée-sortie (10) est en outre configurable pour relier les lignes de bit de lecture (REL) de la matrice à un registre d'entrée (22) du circuit de calcul (2O) et/ou pour relier les lignes de bit d'écriture (WBL) de la matrice à. un port de sortie (24) du. circuit de calcul (20).