Brevet FR3084179A1 — publié le 20200124

B16981 - 18-GR2-0015 1 Description Accès direct en mémoire [0001] Domaine [0002] La présente description concerne de façon générale le domaine des systèmes électroniques, et plus particulièrement des systèmes électroniques dans lesquels des exécutions de tâches, par exemple des transferts de données par accès direct en mémoire (DMA - "Direct Memory Access"), sont paramétrées par une liste chainée d'enregistrements stockée dans une mémoire. [0003] Exposé de l'art antérieur [0004] L'accès direct en mémoire est un procédé permettant, dans un système électronique, des transferts de données entre un périphérique et une mémoire, entre deux périphériques ou entre deux mémoires sans intervention d'une unité centrale de traitement (CPU - "Central Processing Unit") si ce n'est pour lancer et conclure le transfert. [0003] L'accès direct en mémoire est généralement mis en oeuvre par un circuit de contrôle d'accès direct en mémoire. Pour effectuer un transfert de données, le circuit lit dans une mémoire un enregistrement d'une liste chainée d'enregistrements ("Linked List Item" - LLI) afin d'obtenir les paramètres du transfert. Ces paramètres lus sont stockés temporairement dans un ensemble de registres, ou banque de registres, du circuit. Le circuit effectue ensuite le transfert en fonction des paramètres stockés. [0006] Résumé [0007] Un mode de réalisation pallie au moins certains inconvénients des systèmes électroniques connus. [0008] Un mode de réalisation pallie au moins certains inconvénients des systèmes électroniques dans lesquels une 2 B16981 - 18-GR2-0015 tâche est paramétrée par des registres programmés à partir d'une liste chainée d'enregistrements stockée en mémoire. [0009] Un mode de réalisation pallie au moins certains inconvénients des systèmes électroniques dans lesquels la tâche paramétrée par les registres est un transfert de données par accès direct en mémoire. [0010] Ainsi, selon un premier aspect, un mode de réalisation prévoit une mémoire contenant au moins une liste chainée d'enregistrements, chaque enregistrement contenant un premier champ déterminant le nombre de champs de l'enregistrement suivant. [0011] Selon un mode de réalisation, chaque champ d'un enregistrement est représentatif d'un contenu à programmer dans un registre d'une banque de registres. [0012] Selon un mode de réalisation, le premier champ détermine dans quels registres doivent être programmés lesdits contenus. [0013] Selon un mode de réalisation, le premier champ comprend des bits dont chacun identifie un registre, les valeurs desdits bits déterminant les champs de l'enregistrement à programmer. [0014] Selon un mode de réalisation, chaque enregistrement est représentatif de paramètres d'exécution d'une tâche. [0015] Selon un mode de réalisation, la tâche est un transfert de données par un circuit de contrôle d'accès direct en mémoire. [0016] Selon un mode de réalisation, pour chaque enregistrement représentatif d'un transfert de données, les paramètres d'exécution du transfert comprennent une condition de début de transfert et un événement de fin de transfert. 3 B16981 - 18-GR2-0015 [0017] Selon un mode de réalisation, pour chaque enregistrement, les paramètres d'exécution du transfert comprennent en outre une indication d'au moins un moment où ladite condition doit être détectée et d'au moins un moment où ledit événement doit être généré. [0018] Selon un mode de réalisation, la mémoire contient une première et une deuxième listes chainées d'enregistrements, la condition de début d'un enregistrement de la première liste correspondant à une détection de l'événement d'un enregistrement de la deuxième liste. [0019] Selon un mode de réalisation, la mémoire est de type SRAM. [0020] Selon le premier aspect, un mode de réalisation prévoit un procédé comprenant des mises à jour successives d'une banque de registres à partir d'une liste chainée d'enregistrements contenue dans une mémoire telle que définie précédemment. [0021] Selon un mode de réalisation, chaque enregistrement détermine une des mises à jour successives. [0022] Selon un mode de réalisation, le procédé comprend : - lire le registre programmé à partir du premier champ d'un enregistrement courant ; - en déduire, pour chaque registre, si l'enregistrement suivant comprend un champ à partir duquel le registre doit être programmé lors de la prochaine programmation de la banque de registres ; et - lors de ladite prochaine programmation de la banque de registres, programmer à partir de chaque champ de l'enregistrement suivant, le registre correspondant de la banque de registres. [0023] Selon le premier aspect, un mode de réalisation prévoit un système électronique comprenant une mémoire telle 4 B16981 - 18-GR2-0015 que définie précédemment, et un circuit muni d'une banque de registres, le circuit étant configuré pour mettre en oeuvre le procédé défini précédemment. [0024] Selon un mode de réalisation, le circuit est un contrôleur d'accès direct en mémoire. [0025] Selon un deuxième aspect, un mode de réalisation prévoit une mémoire contenant au moins une liste chainée d'enregistrements, chaque enregistrement étant représentatif de paramètres d'un transfert de données par un circuit de contrôle d'accès direct en mémoire, les paramètres comprenant une condition de début de transfert et un événement de fin de transfert. [0026] Selon un mode de réalisation, pour chaque enregistrement, les paramètres comprennent en outre une indication d'au moins un moment où ladite condition doit être détectée et d'au moins un moment où ledit événement doit être généré. [0027] Selon un mode de réalisation, la mémoire contient une première et une deuxième listes chainées d'enregistrements, la condition de début d'un enregistrement de la première liste correspondant à une détection de l'événement de fin d'un enregistrement de la deuxième liste. [0028] Selon un mode de réalisation, chaque enregistrement contient un premier champ déterminant le nombre de champs de l'enregistrement suivant. [0029] Selon un mode de réalisation, chaque champ d'un enregistrement est représentatif d'un contenu à programmer dans un registre d'une banque de registres. [0030] Selon un mode de réalisation, le premier champ détermine dans quels registres doivent être programmés lesdits contenus. B16981-18-GR2-0015 [0031] Selon un mode de réalisation, le premier champ comprend des bits dont chacun identifie un registre, les valeurs desdits bits déterminant les champs de l'enregistrement à programmer. [0032] Selon un mode de réalisation, le premier enregistrement de la liste contient autant de champs qu'il y a de registres. [0033] Selon un mode de réalisation, la mémoire est de type SRAM. [0034] Selon le deuxième aspect, un mode de réalisation prévoit un procédé de transfert de données par accès direct en mémoire dans lequel des premiers transferts sont effectués sur un premier canal d'un circuit de contrôle d'accès direct en mémoire et des deuxièmes transferts sont effectués sur un deuxième canal du circuit, chaque premier transfert étant paramétré par un enregistrement correspondant d'une première liste d'une mémoire telle que définie précédemment. [0035] Selon un mode de réalisation, chaque enregistrement de la première liste correspond à une mise à jour d'une première banque de registres associée au premier canal, et chaque enregistrement de la deuxième liste correspond à une mise à jour d'une deuxième banque de registres associée au deuxième canal. [0036] Selon un mode de réalisation, un contenu courant de chaque banque de registres paramètre un transfert correspondant sur le canal auquel est associée la banque de registres. [0037] Selon un mode de réalisation, pour chaque enregistrement, le transfert correspondant ne débute que si la condition de début de l'enregistrement est détectée. [0038] Selon le deuxième aspect, un mode de réalisation prévoit un système électronique comprenant une mémoire telle 6 B16981 - 18-GR2-0015 que définie précédemment, et un circuit de contrôle d'accès direct en mémoire muni de plusieurs canaux dont chacun est associé à une banque de registres, le circuit étant configuré pour mettre en oeuvre le procédé tel que défini précédemment. [0039] Bref exposé des dessins [0040] 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 : [0041] [Fig. 1] la figure 1 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un circuit électronique 1 du type auquel s'appliquent, à titre d'exemple, les modes de réalisation qui vont être décrits ; [0042] [Fig. 2] la figure 2 est un organigramme illustrant, sous forme de blocs, un mode de réalisation d'un procédé de transfert de données par accès direct en mémoire ; [0043] [Fig. 3] la figure 3 représente, schématiquement et sous forme de blocs, un mode de réalisation d'une banque de registres d'un circuit de contrôle d'accès direct en mémoire ; [0044] [Fig. 4] la figure 4 représente schématiquement une mémoire contenant un mode de réalisation d'une liste chainée d'enregistrements pour programmer les registres de la figure 3 ; [0045] [Fig. 5] la figure 5 est un organigramme illustrant plus en détail un mode de réalisation d'une étape du procédé de la figure 2 ; [0046] [Fig. 6] la figure 6 illustre, schématiquement et sous forme de blocs, un autre mode de réalisation d'une banque de registres d'un circuit de contrôle d'accès direct en mémoire ; et 7 B16981 - 18-GR2-0015 [0047] [Fig. 7] la figure 7 est un organigramme illustrant un mode de réalisation d'un procédé de transfert de données par accès direct en mémoire. [0048] Exposé détaillé [0049] De 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. [0050] 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, les divers paramètres couramment utilisés pour des transferts de données par accès direct en mémoire n'ont pas été détaillés, les modes de réalisation décrits étant compatibles avec ces paramètres usuels. En outre, les divers systèmes électroniques dans lesquels un contrôleur d'accès direct en mémoire est prévu n'ont pas été détaillés, les modes de réalisation décrits étant compatibles avec la plupart de ces systèmes électroniques usuels. [0051] La figure 1 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un circuit ou système électronique 1 du type auquel s'appliquent, à titre d'exemple, les modes de réalisation qui vont être décrits. [0052] Le système électronique 1 comporte : - une unité centrale de traitement 11 (CPU), par exemple une machine d'états, un microprocesseur, un circuit logique programmable, etc. ; - une ou plusieurs mémoires parmi lesquelles au moins une mémoire vive 12 (MEM), par exemple de type SRAM ; - au moins une interface d'entrée-sortie 13 (I/O) de 8 B16981 - 18-GR2-0015 communication, par exemple de type bus série, avec l'extérieur du système 1 ; - un circuit de contrôle d'accès direct en mémoire 14 (DMA) ; et - un ou plusieurs bus de données, d'adresses et/ou de commandes entre les différents éléments internes au système 1, représentés ici sous la forme d'un unique bus 15. [0053] Par ailleurs, le système 1 peut intégrer d'autres fonctions, symbolisées par un bloc 16 (FCT), selon l'application, par exemple, un processeur dédié au traitement d'images, d'autres interfaces, d'autres mémoires, etc. [0054] Le système 1 est configure pour exécuter diverses applications telles que du traitement d'images, de l'encodage et/ou du décodage vidéo, du traitement de données provenant d'un capteur, etc... Ces applications requièrent des transferts de données, par l'intermédiaire du bus 15, entre des éléments internes au système 1. Afin de fluidifier le fonctionnement du système 1 et de réduire la charge de l'unité centrale 11, ces transferts de données sont effectués par accès direct en mémoire, sous le contrôle du circuit 14. Dans ce mode de réalisation, le circuit 14 comprend plusieurs canaux de transfert de données. Chaque canal du circuit 14 permet de réaliser des transferts de données entre deux éléments (circuit et/ou mémoire) du système 1. Chaque canal est associé à une banque de registres stockant, pour chaque transfert de données sur le canal, les paramètres du transfert. [0055] Lorsqu'une application doit être exécutée par le système 1, l'unité centrale 11 configure le circuit 14 de sorte que le circuit 14 réserve l'un de ces canaux à l'application. Tous les transferts de données de l'application s'effectuent alors via le canal réservé à l'application. Dans les modes de réalisation décrits, l'élément de source et/ou l'élément de destination des données 9 B16981 - 18-GR2-0015 à transférer peuvent changer pendant l'exécution de l'application. [0056] La figure 2 est un organigramme illustrant, sous forme de blocs, un mode de réalisation d'un procédé de transfert de données par accès direct en mémoire. Plus particulièrement, la figure 2 illustre, pour une application donnée, un procédé de mises à jour successives d'une banque de registres associée à un canal du circuit 14 de la figure 1, à partir d'une liste chainée d'enregistrements représentative des transferts de données de l'application. [0057] A une étape initiale 200 (ALLOCATE CHANNEL), un canal est attribué à une application en programmant la banque de registres associée à ce canal avec les paramètres d'un premier transfert de données de cette application. Cette étape revient à indiquer au circuit 14, quelle liste chainée d'enregistrements il doit utiliser pour paramétrer les transferts devant avoir lieu sur ce canal. Chaque enregistrement de la liste détermine l'adresse en mémoire de l'enregistrement suivant. Chaque enregistrement détermine en outre les paramètres d'un transfert de données correspondant, par exemple l'indication que le transfert concerne des données ou des blocs de données, l'adresse de début d'une plage d'adresses d'une source où sont stockés les données ou les blocs de données à transférer, l'adresse de début d'une plage d'adresses d'une destination où doivent être copiés les données ou les blocs de données transférés, le nombre de données ou de blocs de données à transférer, la taille des données, le nombre de données par blocs, des décalages d'adresses entre deux données successives ou entre deux blocs successifs à transférer, etc. Chaque enregistrement peut donc correspondre au transfert d'une donnée, de plusieurs données, d'un bloc de données ou de plusieurs blocs entre une source et une destination. B16981 - 18-GR2-0015 [0058] Selon un mode de réalisation, à l'étape 200, la banque de registres est programmée en lisant en mémoire 12, à une adresse mémoire fournie par l'unité centrale 11, le premier enregistrement d'une liste et en programmant la banque de registres à partir de cet enregistrement. [0059] Selon un autre mode de réalisation, à l'étape 200, la banque de registres est programmée directement, sans lecture d'un enregistrement en mémoire 12, par exemple à l'initialisation du système 1 ou par l'unité centrale 11. En particulier, l'adresse du premier enregistrement d'une liste est alors programmée dans la banque de registres. [0060] Une fois que la banque de registres a été programmée pour attribuer le canal à l'application, l'unité centrale 11 indique au circuit 14 qu'il peut commencer à exécuter les transferts de données de l'application. [0061] A une étape 202 suivante (EXECUTE TRANSFER), le circuit 14 effectue, sur le canal réservé à l'application, le transfert de données paramétré par le contenu de la banque de registres du canal, étant entendu que ce transfert peut concerner plusieurs données ou plusieurs blocs de données. [0062] Un test 203 (REPEAT?) est ensuite réalisé pour déterminer, à partir du contenu de la banque de registre, si le transfert de données exécuté à l'étape 202 précédente, et dont les paramètres sont stockés dans la banque de registres, doit ou non être répété. [0063] Si ce transfert doit être répété (sortie Y du bloc 203), le procédé se poursuit à l'étape 202. On comprend que, du fait que le contenu de la banque de registres n'est alors pas modifié, ce transfert est ensuite exécuté en boucle. [0064] Si ce dernier transfert n'a pas à être répété (sortie N du bloc 203), le procédé se poursuit par un test 204 (NEXT LLI?). Ce test détermine, à partir du contenu courant de la 11 B16981 - 18-GR2-0015 banque de registres, s'il y a un enregistrement suivant dans la liste, autrement dit s'il reste au moins un transfert à effectuer pour cette application. [0065] S'il n'y a pas d'enregistrement suivant dans la liste (sortie N du bloc 204), le test 204 est suivi d'une étape 206 (END) où le canal est libéré et peut ensuite être attribué à une nouvelle application. [0066] S'il y a un enregistrement suivant (sortie Y du bloc 204), le test 204 est suivi d'une étape 208 (LOAD NEXT LLI) où cet enregistrement suivant est lu en mémoire 12 par le circuit 14 et la banque de registres est mise à jour avec les paramètres du transfert de données suivant de l'application. Le procédé se poursuit alors à l'étape 202. [0067] On notera que l'ordre et/ou le nombre des étapes du procédé de la figure 2 peuvent être modifiés. En particulier, les tests 203 et 204 peuvent être effectués simultanément. [0068] A titre d'exemple, on considère dans la suite de la description le cas où les transferts devant avoir lieu sur un canal ne s'effectuent pas au niveau bloc de données, mais uniquement au niveau donnée. On considère également que lorsqu'un transfert correspond au transfert de plusieurs données, ces données sont stockées les unes à la suite des autres dans une plage d'adresses de source et copiées les unes à la suite des autres dans une plage d'adresses de destination. [0069] La figure 3 représente, schématiquement et sous forme de blocs, un mode de réalisation d'une banque de registres associée à un canal de transfert de données du circuit 14. [0070] Dans cet exemple, la banque de registres comprend cinq registres R1, R2, R3, R4 et R5 permettant de stocker temporairement les paramètres d'un transfert de données. Les registres R1, R2, R3, R4 et R5 sont ici destinés à stocker 12 B16981 - 18-GR2-0015 respectivement l'adresse S@ de début d'une plage d'adresses d'une source des données à transférer, l'adresse D@ de début d'une plage d'adresses d'une destination des données à transférer, le nombre NB données à transférer, la taille BL des données à transférer et l'adresse NLLI@ de l'enregistrement suivant dans la mémoire 12. Dans la suite de la description, on appelle registre de liste chainée ou registre LLR (Linked List Register), le registre destiné à stocker les informations sur la liste chainée d'enregistrements, et en particulier l'adresse NLLI@. De préférence, le registre LLR est le dernier registre de la banque de registres, dans cet exemple le registre R5. [0071] Dans ce mode de réalisation, un des registres, de préférence le registre LLR, est également destiné à stocker des informations sur l'enregistrement suivant de la liste. Ces informations déterminent le nombre de champs de l'enregistrement suivant de la liste. Chaque champ d'un enregistrement est par exemple représentatif d'un contenu à programmer dans un registre correspondant, lors de la mise à jour suivante de la banque de registres. De préférence, chaque champ est directement recopié dans un registre correspondant lors de cette mise à jour. Les informations sur l'enregistrement suivant de la liste déterminent en outre à quel registre est affecté chaque champ de l'enregistrement suivant. Ces informations sont stockées par des bits du registre LLR R5, par exemple cinq bits Ul, U2, U3, U4 et U5. Dans ce mode de réalisation, les bits Ul, U2, U3, U4 et U5 sont affectés respectivement aux registres R1, R2, R3, R4 et R5, la valeur de chaque bit Ul, U2, U3, U4, U5 déterminant si l'enregistrement suivant comprend un champ représentatif d'un contenu à programmer dans le registre respectivement R1, R2, R3, R4, R5. Par exemple, si le bit Ul est à une première valeur binaire, par exemple '1', l'enregistrement suivant comprend un champ représentatif d'un contenu à programmer 13 B16981 - 18-GR2-0015 dans le registre R1, et si le bit est à la deuxième valeur binaire, par exemple '0', l'enregistrement suivant ne comprend pas de tel champ. [0072] A titre d'exemple, le test 203 décrit en relation avec la figure 2 consiste à vérifier si tous les bits Ul à U5 sont à '0' et si l'adresse @NLLI n'est pas nulle. Si c'est le cas, cela signifie que la banque de registre ne doit pas être mise à jour et que le dernier transfert exécuté doit être répété. [0073] A titre d'exemple encore, le test 204 décrit en relation avec la figure 2 consiste à vérifier si l'adresse @NLLI est nulle. Si c'est le cas, cela signifie qu'il n'y a pas d'enregistrement suivant et que tous les transferts de l'application ont été effectués. [0074] On notera que les informations relatives au nombre de champs de l'enregistrement suivant et au registre auquel est affecté chacun de ces champs, l'indication selon laquelle un transfert doit être répété et/ou l'indication selon laquelle la liste ne contient plus d'enregistrement suivant peuvent être représentées sous une forme différente de celle décrite ci-dessus à titre d'exemple. [0075] La figure 4 représente schématiquement une mémoire, par exemple la mémoire 12 de la figure 1, contenant un mode de réalisation d'une liste chainée d'enregistrements pour programmer les registres de la figure 3. [0076] La mémoire 12 est divisée en plusieurs mots mémoire 41 de taille fixe, par exemple 4 octets, étant chacun associé à une adresse 43 de la mémoire. La mémoire 12 contient une liste chainée d'enregistrements constituée, dans cet exemple, de trois enregistrements LLI-1, LLI-2 et LLI-3. Les champs d'un même enregistrement sont enregistrés les uns à la suite des autres dans la mémoire 12, ici à partir de l'adresse en mémoire du premier champ de cet enregistrement. Dans cet 14 B16981 - 18-GR2-0015 exemple, chaque champ occupe un mot mémoire 41. En variante, chaque champ peut nécessiter plus d'un mot mémoire pour son stockage mémoire ou un mot mémoire peut contenir plus d'un champ. De préférence, les champs de chaque enregistrement se succèdent dans le même ordre que les registres correspondants de la banque de registres. Dans cet exemple, l'adresse en mémoire d'un enregistrement correspond à l'adresse à laquelle est enregistré le premier champ de cet enregistrement. [0077] Dans cet exemple, on considère le cas où, à l'étape 200 de la figure 2, la banque de registres est programmée à partir du premier enregistrement LLI-1 de la liste. Comme cela est illustrée en figure 4, ce premier enregistrement LLI-1 comprend alors autant de champs qu'il y a de registres, cinq dans cet exemple, de sorte que chaque registre puisse être programmé avec un champ de l'enregistrement. Plus particulièrement, l'enregistrement LLI-1 comprend des champs successifs Cl, C2, C3, C4 et C5 représentatifs d'un contenu à programmer dans les registres respectivement R1, R2, R3, R4 et R5. Dans cet exemple, les champs Cl, C2, C3 et C4 de l'enregistrement LLI-1 sont représentatifs respectivement d'une adresse Sl@, d'une adresse D1@, d'un nombre NB-1 et d'une taille BL-1. Le champ C5 de l'enregistrement est représentatif de l'adresse @k2 de l'enregistrement suivant LLI-2 dans la mémoire 12, et d'informations sur cet enregistrement suivant LLI-2. Dans cet exemple, les informations relatives à l'enregistrement suivant sont sous la forme de cinq bits de valeurs '1', '0', '1', '0' et '1' correspondant respectivement aux bits Ul, U2, U3, U4 et U5 du registre R5. Dans cet exemple, le premier champ Cl de l'enregistrement LLI-1 est enregistré dans le mot mémoire d'adresse @kl et les champs suivants C2, C3, C4 et 05 sont enregistrés dans les mots mémoire suivants d'adresses respectives @k1+4, @k1+8, @k1+12 et @k1+16, chaque mot mémoire occupant ici quatre octets. B16981 - 18-GR2-0015 [0078] Le deuxième enregistrement LLI-2 comprend des champs successifs Cl, C3 et CS représentatifs d'un contenu à programmer dans les registres respectivement R1, R3 et R5. Les champs Cl et C2 sont représentatifs respectivement d'une adresse S20 et d'un nombre NB-2, le champ C5 étant représentatif de l'adresse @k3 de l'enregistrement suivant LLI-3 et de cinq bits de valeurs '0', '1', '1', '1' et '1' correspondant respectivement aux bits Ul, U2, U3, U4 et U5 du registre R5. Dans cet exemple, le premier champ Cl de l'enregistrement LLI-2 est enregistré dans le mot mémoire d'adresse @k2 et les champs suivants C3 et 05 sont enregistrés dans les mots mémoire suivants d'adresses respectives @k2+4 et @k2+8. [0079] Le troisième enregistrement LLI-3 comprend des champs successifs C2, C3, C4 et C5 représentatifs d'un contenu à programmer dans les registres respectivement R2, R3, R4 et R5. Les champs C2, C3 et C4 sont représentatifs respectivement d'une adresse D3@, d'un nombre NB-3 et d'une taille BL-3 Dans l'exemple représenté, le champ C5 est représentatif d'une adresse nulle @NULL et de cinq bits Ul à U5 de valeur '0', ce qui indique que l'enregistrement LLI-3 est le dernier de la liste et que le transfert correspondant à cet enregistrement n'a pas à être répété. Dans cet exemple, le premier champ C2 de l'enregistrement LLI-3 est enregistré dans le mot mémoire d'adresse @k3 et les champs suivants C3, C4 et 05 sont enregistrés dans les mots mémoire suivants d'adresses respectives @k3+4, @k3+8 et @k3+12. [0080] Dans la liste décrite ci-dessus, au moins certains enregistrements stockés dans la mémoire contiennent un nombre de champs inférieur au nombre de registres de la banque de registres mise à jour à partir de ces enregistrements. Ainsi, la capacité de stockage de la mémoire 12 peut être réduite par rapport à celle d'une mémoire dans laquelle chaque 16 B16981 - 18-GR2-0015 enregistrement d'une liste chainée aurait autant de champs qu'il y a de registres dans la banque de registres. La diminution de la capacité de stockage de la mémoire 12 entraîne une diminution de sa surface et de sa consommation statique. [0081] La figure 5 illustre, sous la forme d'un organigramme, l'étape 208 du procédé de la figure 2 décrite ci-dessus, c'est-à-dire la mise à jour de la banque de registres à partir d'un enregistrement d'une liste chainée d'enregistrements stockée en mémoire. [0082] A une étape d'initialisation 500 (i=1), une variable de boucle i, avec i entier, est initialisée, à 1 dans cet exemple. [0083] A une étape de test 502 suivante (Ui=1 ?), le circuit 14 teste la valeur courante du bit Ui du registre LLR R5 pour déterminer si l'enregistrement suivant contient un champ Ci représentatif d'un contenu à programmer dans le registre Ri. [0084] Si, lors du test 502, la valeur courante du bit Ui du registre LLR R5 est '1' (sortie Y du bloc 502), cela signifie que l'enregistrement suivant comprend un champ Ci représentatif d'un contenu à programmer dans le registre Ri. Le test est alors suivi d'une étape 504 (Ri REVENDICATIONS[Revendication 1] 1. Mémoire (12) contenant au moins une liste chainée d'enregistrements, chaque enregistrement (LLI-1, LLI-2, LLI-3) contenant un premier champ (C5) déterminant le nombre de champs (C1, C2, C3, C4, 05) de l'enregistrement suivant. [Revendication 2] 2. Mémoire selon la revendication 1, dans laquelle chaque champ (Cl, C2, C3, C4, 05) d'un enregistrement est représentatif d'un contenu à programmer dans un registre (R1, R2, R3, R4, R5) d'une banque de registres. [Revendication 3] 3. Mémoire selon la revendication 2, dans laquelle le premier champ (C5) détermine dans quels registres (R1, R2, R3, R4, R5) doivent être programmés lesdits contenus. [Revendication 4] 4. Mémoire selon la revendication 2 ou 3, dans laquelle le premier champ (C5) comprend des bits (U1, U2, U3, U4, U5) dont chacun identifie un registre (R1, R2, R3, R4, R5), les valeurs desdits bits déterminant les champs de l'enregistrement à programmer. [Revendication 5] 5. Mémoire selon l'une quelconque des revendications 1 à 4, dans laquelle chaque enregistrement (LLI-1, LLI-2, LLI-3) est représentatif de paramètres (S@, D@, NB, BL, NLLI@, ctrl-in, ctrl-out) d'exécution d'une tâche. [Revendication 6] 6. Mémoire selon la revendication 5, dans laquelle ladite tâche est un transfert de données par un circuit (14) de contrôle d'accès direct en mémoire. [Revendication 7] 7. Mémoire selon la revendication 6, dans laquelle, pour chaque enregistrement (LLI-1, LLI-2, LLI-3) représentatif 24 B16981 - 18-GR2-0015 d'un transfert de données, les paramètres d'exécution du transfert comprennent une condition (ctrl-in) de début de transfert et un événement (ctrl-out) de fin de transfert. [Revendication 8] 8. Mémoire selon la revendication 7, dans laquelle, pour chaque enregistrement, les paramètres d'exécution du transfert comprennent en outre une indication d'au moins un moment où ladite condition doit être détectée et d'au moins un moment où ledit événement doit être généré. [Revendication 9] 9. Mémoire selon la revendication 7 ou 8, contenant une première et une deuxième listes chainées d'enregistrements, la condition (ctrl-in) de début d'un enregistrement de la première liste correspondant à une détection de l'événement (ctrl-out) d'un enregistrement de la deuxième liste. [Revendication 10] 10. Mémoire selon l'une quelconque des revendications 1 à 9, la mémoire (12) étant de type SRAM. [Revendication 11] 11. Procédé comprenant des mises à jour successives d'une banque de registres (R1, R2, R3, R4, R5) à partir d'une liste chainée d'enregistrements (LLI-1, LLI-2, LLI-3) contenue dans une mémoire (12) selon l'une quelconque des revendications 1 à 10. [Revendication 12] 12. Procédé selon la revendication 11, dans lequel chaque enregistrement (LLI-1, LLI-2, LLI-3) détermine une des mises à jour successives. [Revendication 13] 13. Procédé selon la revendication 11 ou 12 comprenant : - lire le registre (Ré) programmé à partir du premier champ (C5) d'un enregistrement courant (LLI-1, LLI-2) ; - en déduire, pour chaque registre (R1, R2, R3, R4, R5), si l'enregistrement suivant (LLI-2, LLI-3) comprend 25 B16981 - 18-GR2-0015 un champ à partir duquel le registre doit être programmé lors de la prochaine programmation de la banque de registres ; et - lors de ladite prochaine programmation de la banque de registres, programmer à partir de chaque champ de l'enregistrement suivant, le registre correspondant de la banque de registres. [Revendication 14] 14. Système électronique comprenant une mémoire (12) selon l'une quelconque des revendications 1 à 10, et un circuit (14) muni d'une banque de registres, le circuit étant configuré pour mettre en oeuvre le procédé de l'une quelconque des revendications 11 à 13. [Revendication 15] 15. Système selon la revendication 14, dans lequel le circuit (14) est un contrôleur d'accès direct en mémoire. :