FR2808605A1 - Transfer of data between two memories, uses interpretation of target memory address to separate part of the address used to write to memory from part that is incremented during data transfer - Google Patents

Transfer of data between two memories, uses interpretation of target memory address to separate part of the address used to write to memory from part that is incremented during data transfer Download PDF

Info

Publication number
FR2808605A1
FR2808605A1 FR0005594A FR0005594A FR2808605A1 FR 2808605 A1 FR2808605 A1 FR 2808605A1 FR 0005594 A FR0005594 A FR 0005594A FR 0005594 A FR0005594 A FR 0005594A FR 2808605 A1 FR2808605 A1 FR 2808605A1
Authority
FR
France
Prior art keywords
address
memory
transfer
target memory
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0005594A
Other languages
French (fr)
Other versions
FR2808605B1 (en
Inventor
Stephane Bizet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0005594A priority Critical patent/FR2808605B1/en
Publication of FR2808605A1 publication Critical patent/FR2808605A1/en
Application granted granted Critical
Publication of FR2808605B1 publication Critical patent/FR2808605B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

The data transfer places an address for the target memory zone (22) on the communication bus (10), places data on the bus, then increments part of the target address during data transfer. The target address is interpreted to identify the unique address in target memory and to ignore the part of the address modified during incrementing of the address.

Description

La présente invention concerne un procédé de transfert données entre au moins deux mémoires par l'intermédiaire d'au moins un de communication et d'un initiateur du transfert des données sur ledit au moins un bus. The present invention relates to a data transfer method between at least two memories by means of at least one of communication and of an initiator of the transfer of data on said at least one bus.

Dans les systèmes informatiques, on connaît des méthodes transfert données entre deux mémoires reliées entre elles par l'intermédiaire d'un bus communication, par exemple de type PCI (acronyme signifiant terminologie anglo-saxonne "Peripheral Component Interconnect"). In computer systems, data transfer methods are known between two memories linked together via a communication bus, for example of PCI type (acronym meaning English terminology "Peripheral Component Interconnect").

La connexion de chacune de ces mémoires avec le bus communication est réalisée à travers un adaptateur de bus ou un contrôleur bus. The connection of each of these memories with the communication bus is carried out through a bus adapter or a bus controller.

Au moins un de ces adaptateurs ou contrôleurs comporte initiateur de transfert des données sur le bus qui est par exemple un contrôleur du transfert en mode d'accès direct en mémoire ou contrôleur DMA (connu en terminologie anglo-saxonne sous le terme de "Direct Memory Access"). At least one of these adapters or controllers comprises initiator for transferring data on the bus which is for example a controller for transfer in direct memory access mode or DMA controller (known in English terminology under the term "Direct Memory Access ").

Lorsqu'un transfert de données est initié par le contrôleur depuis une des mémoires dite "source" vers l'autre zone mémoire dite "cible", contrôleur DMA ou initiateur du transfert présente sur le bus de communication l'adresse de la mémoire à laquelle doivent être transférées lesdites données lors d'un cycle d'écriture ou l'adresse de la mémoire à partir de laquelle doivent être transférées lesdites données lors d'un cycle de lecture. Cette adresse a été préalablement déterminée par exemple par l'unité centrale de traitement du système informatique considéré. When a data transfer is initiated by the controller from one of the memories called "source" to the other memory area called "target", DMA controller or initiator of the transfer present on the communication bus the address of the memory to which said data must be transferred during a write cycle or the address of the memory from which said data must be transferred during a read cycle. This address has been previously determined for example by the central processing unit of the computer system in question.

Dans le cas d'un bus PCI cette adresse est exprimée sur bits. Cette adresse comporte un premier champ contenant des informations qui permettent d'identifier les différentes mémoires accessibles via le bus PCI. In the case of a PCI bus, this address is expressed in bits. This address contains a first field containing information which makes it possible to identify the various memories accessible via the PCI bus.

La structure de cette adresse fait également apparaitre un deuxième champ représentatif de la position de la prochaine donnée à transférer dans la mémoire identifiée par le premier champ. The structure of this address also brings up a second field representative of the position of the next datum to be transferred in the memory identified by the first field.

Le processeur qui ordonne le transfert, pouvant être par exemple l'unité centrale de traitement du système, doit informer le contrôleur ou initiateur du transfert au moins de l'adresse de début et du nombre de données à transférer. Entre chaque transfert de données le contrôleur DMA ou initiateur de transfert génère automatiquement la nouvelle adresse en incrémentant l'adresse courante de la taille de la donnée qui vient d'être transférée. The processor ordering the transfer, which may for example be the central processing unit of the system, must inform the controller or initiator of the transfer at least of the start address and of the number of data to be transferred. Between each data transfer, the DMA controller or transfer initiator automatically generates the new address by incrementing the current address by the size of the data that has just been transferred.

Dans le cas d'un transfert en mode rafale (connu en terminologie anglosaxonne sous 1e terme "burst mode"), cette adresse n'est pas présentée pour chaque donnée sur le bus PCI. Elle est cependant mémorisée par l'initiateur du transfert pour pouvoir reprendre le transfert après interruption, dans cas par exemple où un transfert plus prioritaire doit intervenir le bus PCI. In the case of a transfer in burst mode (known in English terminology under the 1st term "burst mode"), this address is not presented for each data item on the PCI bus. It is however memorized by the initiator of the transfer in order to be able to resume the transfer after interruption, in the case for example where a higher priority transfer must take place on the PCI bus.

A la reprise du transfert, l'initiateur dudit transfert devra repositionner sur le bus PCI une adresse. II utilisera l'adresse aura mémorisée précédemment. Cette adresse aura pour valeur l'adresse utilisée à l'initialisation du transfert incrémentée du nombre de données déjà transférées. When the transfer is resumed, the initiator of the transfer must reposition an address on the PCI bus. It will use the address previously stored. This address will have the value of the address used at the initialization of the transfer incremented by the number of data already transferred.

Après positionnement sur le bus de l'adresse référençant la donnée à transférer, l'adaptateur de bus associé à la mémoire source" concernée par le transfert positionne sur le bus une donnée ou une série de plusieurs données destinées à l'adaptateur de bus associé à la mémoire "cible". After positioning the address referencing the data to be transferred on the bus, the bus adapter associated with the source memory "concerned by the transfer positions on the bus a data or a series of several data intended for the associated bus adapter to the "target" memory.

Une seule donnée est positionnée sur le bus pour une adresse dans le cas d'un transfert simple et une série de données est positionnée sur le bus après positionnement de l'adresse dans le cas d'un transfert en mode "rafale". A single datum is positioned on the bus for an address in the case of a simple transfer and a series of data is positioned on the bus after positioning of the address in the case of a transfer in "burst" mode.

La Demanderesse s'est aperçue que cette méthode transfert n'est adaptée lorsque la mémoire concernée par le transfert comporte un accès unique comme c'est le cas avec des mémoires de type "FIFO", FO"... The Applicant has noticed that this transfer method is not suitable when the memory concerned by the transfer comprises a single access as is the case with memories of the "FIFO", FO "type ...

En effet, dans le cas d'une opération d'écriture vers une mémoire à accès unique, l'initiateur du transfert ou contrôleur DMA fournit adresse sur bus et des données destinées à la mémoire à accès unique. Cette adresse varie car l'initiateur incrémente à chaque transfert l'adresse de destination même si cette adresse n'est pas positionnée sur le , comme c'est le pour un transfert en mode rafale . In fact, in the case of a write operation to a single access memory, the initiator of the transfer or DMA controller supplies address on bus and data intended for the single access memory. This address varies because the initiator increments with each transfer the destination address even if this address is not positioned on the, as it is for a transfer in burst mode.

Ainsi, lorsque le transfert est interrompu, lors de la reprise du transfert l'initiateur positionne l'adresse à laquelle il est arrivé sur le bus. L'adaptateur de bus relié à la mémoire à accès unique va donc voir des données destinées à des adresses différentes d'après l'initiateur du transfert, mais qui sont en fait destinées à la mémoire à accès unique. Cet adaptateur ne va donc transférer les données à la mémoire unique. Thus, when the transfer is interrupted, when the transfer is resumed, the initiator positions the address at which he arrived on the bus. The bus adapter connected to the single access memory will therefore see data intended for different addresses according to the initiator of the transfer, but which are in fact intended for the single access memory. This adapter will therefore not transfer the data to the single memory.

Pour résoudre ce problème, la société Motorola propose un contrôleur DMA inclus dans un composant de communication portant la référence commerciale MC68360. Ce composant dispose d'un registre dans lequel il possible d'invalider l'incrément automatique effectué par le contrôleur de l'adresse concernée par le transfert. To solve this problem, Motorola offers a DMA controller included in a communication component bearing the commercial reference MC68360. This component has a register in which it is possible to invalidate the automatic increment carried out by the controller of the address concerned by the transfer.

Toutefois, cette solution n'est pas satisfaisante étant donné qu'il s'agit d'un composant intégré, coûteux et qui n'est notamment pas compatible avec les bus de type PCI. However, this solution is not satisfactory since it is an integrated component, expensive and which is in particular not compatible with PCI type buses.

Par ailleurs, le choix d'un tel composant pour résoudre le problème susvisé semble disproportionné puisque cette fonctionnalité offerte par ce composant ne représente qu'une infime partie de ses fonctionnalités. Furthermore, the choice of such a component to solve the aforementioned problem seems disproportionate since this functionality offered by this component represents only a tiny part of its functionality.

Par conséquent, il serait intéressant de trouver une solution simple au problème susvisé. La présente invention a ainsi pour objet un procédé de transfert de données entre au moins deux mémoires par l'intermédiaire d'au moins un bus de communication et d'un initiateur du transfert sur ledit au moins un bus, l'une desdites mémoires à accéder étant appelée mémoire cible, ledit procédé comportant les étapes suivantes positionnement d'une adresse de la mémoire cible sur le bus, positionnement d'au moins une donnée sur le bus, incrémentation d'une partie de ladite adresse de la mémoire cible lors de chaque transfert d'au moins une donnée, caractérisé en ce que ledit procédé comporte une étape d'interprétation de l'adresse pour identifier la mémoire cible à accès unique et qui ne prend pas en compte la partie de l'adresse modifiée lors de l'étape d'incrémentation. Therefore, it would be interesting to find a simple solution to the above problem. The present invention thus relates to a method of transferring data between at least two memories by means of at least one communication bus and an initiator of the transfer on said at least one bus, one of said memories to access being called target memory, said method comprising the following steps positioning an address of the target memory on the bus, positioning at least one piece of data on the bus, incrementing part of said address of the target memory during each transfer of at least one piece of data, characterized in that said method includes a step of interpreting the address to identify the target memory with single access and which does not take into account the part of the address modified during the 'increment step.

Ainsi, si la mémoire cible est une mémoire à accès unique, même si l'initiateur transfert incrémente l'adresse, le contrôleur de mémoire qui est relié à la mémoire à accès unique n'interprète pas la partie incrémentée l'adresse et il adressera les données à la mémoire à accès unique. Si ce n' pas la mémoire cible qui est à accès unique mais la mémoire présente sur carte de l'initiateur, l'initiateur présente l'adresse incrémentée au contrôleur mémoire de sa carte et celui-ci n'interprète pas la partie incrémentée l'adresse pour savoir quelle est la mémoire à laquelle il doit accéder. Thus, if the target memory is a single access memory, even if the initiator transfers increments the address, the memory controller which is connected to the single access memory does not interpret the incremented part of the address and it will address data to single access memory. If it is not the target memory which is single access but the memory present on the initiator's card, the initiator presents the incremented address to the memory controller of his card and the latter does not interpret the incremented part l address to find out which memory it should access.

On résout donc de manière simple le problème d'accès à mémoire à accès unique puisque la fonction d'incrémentation automatique l'adresse n'est pas inhibée comme dans l'art antérieur. The problem of access to single access memory is therefore solved in a simple manner since the automatic address incrementing function is not inhibited as in the prior art.

Selon une caractéristique, lorsque la mémoire cible comporte moins deux zones mémoires à accès unique, l'une desdites zones mémoires accéder étant appelée zone mémoire cible, l'adresse de cette zone mémoire cible à accès unique comporte au moins un champ qui comporte un premier sous-champ représentatif de la zone mémoire cible à accès unique et deuxième sous-champ sur lequel est appliquée l'étape d'incrémentation. Le fait de ne pas interpréter le deuxième sous-champ l'adresse simplifie l'étape d'interprétation de l'adresse et donc le procédé de transfert. According to one characteristic, when the target memory comprises at least two single-access memory zones, one of said access memory zones being called target memory zone, the address of this single-access target memory zone comprises at least one field which comprises a first sub-field representative of the target memory area with single access and second sub-field to which the incrementing step is applied. Failure to interpret the second address sub-field simplifies the address interpretation step and therefore the transfer process.

Corrélativement, l'invention propose un dispositif de transfert de données entre moins deux mémoires par l'intermédiaire d'au moins un bus de communication et d'un initiateur du transfert sur ledit au moins un , l'une desdites mémoires à accéder étant appelée mémoire cible, ledit dispositif comportant - moyen de positionnement d'une adresse de la mémoire cible sur le bus, - un moyen de positionnement d'au moins une donnée sur le bus, - moyen d'incrémentation d'une partie de ladite adresse de la mémoire cible lors de chaque transfert d'au moins une donnée, caractérisé en ce que ledit dispositif comporte un moyen d'interprétation l'adresse pour identifier la mémoire cible à accès unique et qui ne prend pas en compte la partie de l'adresse modifiée par ledit moyen d'incrémentation. Correlatively, the invention provides a device for transferring data between at least two memories by means of at least one communication bus and an initiator of the transfer on said at least one, one of said memories to be accessed being called target memory, said device comprising - means for positioning an address of the target memory on the bus, - means for positioning at least one datum on the bus, - means for incrementing part of said address by the target memory during each transfer of at least one data item, characterized in that said device includes a means of interpretation of the address to identify the target memory with single access and which does not take into account the part of the address modified by said increment means.

Selon un autre aspect, l'invention propose un appareil de traitement de données comportant un dispositif tel que décrit précédemment. L'invention vise par ailleurs un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un ordinateur ou un processeur contenant des instructions d'un programme d'ordinateur, caractérisé en ce qu'il permet la mise en oeuvre du procédé de transfert de données tel que brièvement exposé ci-dessus. According to another aspect, the invention provides a data processing apparatus comprising a device as described above. The invention further relates to an information storage means, possibly totally or partially removable, readable by a computer or a processor containing instructions from a computer program, characterized in that it allows the implementation of the data transfer method as briefly explained above.

L'invention vise également une interface permettant de recevoir les instructions d'un programme d'ordinateur, caractérisé en ce qu'il permet la mise en oeuvre du procédé de transfert de données tel que brièvement exposé ci-dessus. The invention also relates to an interface making it possible to receive the instructions of a computer program, characterized in that it allows the implementation of the data transfer method as briefly explained above.

L'invention vise également un "produit programme d'ordinateur" comportant des séquences d'instructions ou des portions de code logiciel adaptées â mettre en oeuvre le procédé de transfert de données conforme â l'invention. Les avantages et caractéristiques propres au dispositif de transfert de données, ' l'appareil de traitement de données comportant un tel dispositif ainsi qu'aux moyens de stockage d'informations, à l'interface et au "produit programme d'ordinateur" étant les mêmes que ceux exposés ci-dessus concernant procédé de transfert de données selon l'invention, ils ne seront pas rappelés D'autres caractéristiques et avantages apparaîtront au cours de la description va suivre donnée à titre d'exemple illustratif et non limitatif, faite en référence aux dessins annexés sur lesquels la figure 1 représente un dispositif mettant en oeuvre l'invention - la figure 2 représente l'organisation de la mémoire à acces unique ; - la figure 3 représente une adresse mémoire telle que décrite dans l'invention ; - la figure 4 représente un algorithme de calcul de la taille premier sous-champ 62 de l'adresse mémoire de la figure 3 ; - la figure 5 représente un algorithme de calcul de la taille du deuxième sous-champ 63 de l'adresse mémoire de la figure 3 ; - la figure 6 représente l'algorithme de codage de l'adresse mémoire de la figure 3 ; - la figure 7 représente l'algorithme de décodage de l'adresse mémoire de la figure 3 ; - la figure 8 représente un algorithme illustrant un transfert de données entre deux zones mémoires ; - la figure 9 représente les mécanismes d'écriture de données en mode rafale qui interviennent entre l'adaptateur de bus 33 (respectivement 23) et la zone mémoire 32 (respectivement 22) de la figure 1. The invention also relates to a "computer program product" comprising sequences of instructions or portions of software code suitable for implementing the data transfer method according to the invention. The advantages and characteristics specific to the data transfer device, the data processing apparatus comprising such a device as well as to the information storage means, the interface and the "computer program product" being the same as those set out above concerning data transfer method according to the invention, they will not be recalled. Other characteristics and advantages will appear during the description which follows, given by way of illustrative and nonlimiting example, made in reference to the appended drawings in which FIG. 1 represents a device implementing the invention - FIG. 2 represents the organization of the memory with single access; - Figure 3 shows a memory address as described in the invention; - Figure 4 shows an algorithm for calculating the size of the first sub-field 62 of the memory address of Figure 3; - Figure 5 shows an algorithm for calculating the size of the second subfield 63 of the memory address of Figure 3; - Figure 6 shows the algorithm for coding the memory address of Figure 3; - Figure 7 shows the algorithm for decoding the memory address of Figure 3; - Figure 8 shows an algorithm illustrating a data transfer between two memory areas; FIG. 9 represents the mechanisms for writing data in burst mode which intervene between the bus adapter 33 (respectively 23) and the memory area 32 (respectively 22) of FIG. 1.

La figure 1 représente un dispositif de transfert de données permettant de mettre en oeuvre l'invention et qui est désigné par la référence générale notée 1. Le dispositif comporte un bus communication 10 qui est par exemple un bus de type PCI (acronyme signifiant en terminologie anglo- saxonne "Peripheral Component Interconnect"). FIG. 1 represents a data transfer device making it possible to implement the invention and which is designated by the general reference noted 1. The device comprises a communication bus 10 which is for example a PCI type bus (acronym meaning in terminology "Peripheral Component Interconnect").

Le dispositif selon l'invention comporte également des cartes électroniques 2, 3 et 4 mises en relation par le 10. The device according to the invention also includes electronic cards 2, 3 and 4 linked by the 10.

La carte 2 est par exemple carte dite mère comportant au moins un processeur ou unité centrale de traitement 11, une mémoire 12 et un contrôleur de bus PCI 13. Le processeur est par exemple un processeur de la famille Intel de type pentium, le contrôleur par exemple un contrôleur de bus de la famille Intel de type Triton de "férences 82439HX et 82371 SB et la mémoire est par exemple une mémoire de type DRAM (acronyme signifiant en terminologie anglo-saxonne "Dynamic Random Access Memory"). The card 2 is for example a so-called motherboard comprising at least one processor or central processing unit 11, a memory 12 and a PCI bus controller 13. The processor is for example a processor of the Intel family of the pentium type, the controller by example a bus controller of the Intel family of the Triton type of "82439HX and 82371 SB references and the memory is for example a memory of the DRAM type (acronym meaning in English terminology" Dynamic Random Access Memory ").

La mémoire 12 constitue un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible et lisible par un ordinateur ou un processeur. The memory 12 constitutes a means of storing information, possibly totally or partially removable and readable by a computer or a processor.

Cette mémoire contient des instructions ou portions de code logiciel d'un programme d'ordinateur qui, lorsqu'il exécuté, permet de mettre en oeuvre le procédé de transfert de données selon l'invention. This memory contains instructions or portions of software code of a computer program which, when executed, makes it possible to implement the data transfer method according to the invention.

Les étapes de chaque algorithme représenté sur les figures 4 à 8 correspondent à des instructions ou portions code logiciel d'un programme d'ordinateur qui est basé sur l'algorithme en question et qui peut être stocké dans la mémoire 12. The steps of each algorithm represented in FIGS. 4 to 8 correspond to instructions or software code portions of a computer program which is based on the algorithm in question and which can be stored in memory 12.

Les cartes 3 et 4 sont par exemple des cartes de communication comportant des interfaces respectives 23 et avec le bus PCI 10 et pouvant être, par exemple, un composant de type AMCC S5933. The cards 3 and 4 are, for example, communication cards comprising respective interfaces 23 and with the PCI bus 10 and which can be, for example, a component of the AMCC S5933 type.

Ces interfaces ou contrôleurs de bus PCI permettent de gérer les signaux propres à ce type de bus. These PCI bus interfaces or controllers are used to manage the signals specific to this type of bus.

Les cartes 3 et 4 comportent en outre des contrôleurs de mémoire respectifs 21 et 31 permettant de gérer l'accès respectif aux mémoires 22 et 32. Les contrôleurs de bus PCI 23 et 33 peuvent être également des initiateurs de transfert sur le bus PCI, c'est-à-dire qu'ils peuvent demander à être maître du bus, le contrôleur PCI 13 de la carte mère 2 étant, quant à lui généralement l'arbitre du bus. The cards 3 and 4 also include respective memory controllers 21 and 31 making it possible to manage the respective access to memories 22 and 32. The PCI bus controllers 23 and 33 can also be transfer initiators on the PCI bus, c that is to say that they can request to be master of the bus, the PCI controller 13 of the motherboard 2 being, as for him generally the arbiter of the bus.

Le dispositif 1 comporte également une interface de communication 38 permettant la connexion vers un réseau 39 de type éthernet par exemple. The device 1 also includes a communication interface 38 allowing connection to a network 39 of ethernet type for example.

L'interface 38 permet de recevoir les instructions ou portions code logiciel programme d'ordinateur qui, lorsqu'il est exécuté, permet mettre en oeuvre procédé de transfert de données selon l'invention.  The interface 38 makes it possible to receive the instructions or portions of the computer program software code which, when executed, makes it possible to implement the data transfer method according to the invention.

Comme représenté sur la figure 1, le dispositif 1 est intégré dans un appareil traitement de données 40 tel qu'une caméra. As shown in FIG. 1, the device 1 is integrated into a data processing apparatus 40 such as a camera.

figure 2 représente la mémoire 22 qui est constituée plusieurs zones mémoires à accès unique notées 50, 51, 52, 53 et 54. Ces zones mémoires sont par exemple des mémoires de type FIFO, signifiant anglais "First-In First Out" pour "premier entré premier sorti", ou de type LIFO signifiant en anglais "Last-In First-Out" pour "dernier entré premier sorti". FIG. 2 represents the memory 22 which is made up of several single access memory zones denoted 50, 51, 52, 53 and 54. These memory zones are for example memories of the FIFO type, meaning English "First-In First Out" for "first entered first out ", or LIFO type meaning in English" Last-In First-Out "for" last entered first out ".

Ces zones mémoires peuvent être de tailles différentes. mémoire 32 peut également contenir des zones mémoires à accès unique. These memory areas can be of different sizes. memory 32 can also contain single access memory areas.

II convient de noter que l'adaptateur 23 peut non seulement communiquer avec la mémoire à accès unique 22 mais également avec d'autres types mémoires. It should be noted that the adapter 23 can not only communicate with the single access memory 22 but also with other types of memory.

figure 3 représente l'organisation d'une adresse mémoire 60 en deux champs 61 et 64, le champ 64 étant divisé en deux sous-champs 62 et 63, au sens de la présente invention. FIG. 3 represents the organization of a memory address 60 into two fields 61 and 64, the field 64 being divided into two sub-fields 62 and 63, within the meaning of the present invention.

champ 61 permet de coder les différentes mémoires du système, c'est-a-dire les mémoires 12, 22 et 32. field 61 makes it possible to code the various memories of the system, that is to say memories 12, 22 and 32.

champ 64 permet de coder toutes les adresses d'une zone mémoire codée elle-même par le champ 61. field 64 makes it possible to code all the addresses of a memory area coded itself by field 61.

l'initialisation du système, chaque composant qui nécessite de l'espace mémoire ou de l'espace d'entrée-sortie, demande au maître du bus la quantité d'espace d'adressage dont il a besoin. Le contrôleur PCI de la carte mère 2, après avoir analysé toutes les requêtes, alloue à tous les contrôleurs PCI du système de l'espace d'adressage en fonction de leur requête. Cette procédure est particulière au type de bus et, dans le mode de realisation préféré, au bus PCI.  system initialization, each component that requires memory space or input-output space, asks the bus master how much address space it needs. The PCI controller on motherboard 2, after having analyzed all the requests, allocates all the PCI controllers in the system address space according to their request. This procedure is specific to the type of bus and, in the preferred embodiment, to the PCI bus.

L'espace d'adressage du système est réparti entre les contrôleurs 13, 23 et 33. The address space of the system is distributed between the controllers 13, 23 and 33.

Ainsi, lorsqu'une adresse est positionnée sur le bus , les contrôleurs 23 et 33 la décodent et celui dont l'adresse fait partie de l'espace d'adressage qui lui est alloué exécute la requête. Thus, when an address is positioned on the bus, the controllers 23 and 33 decode it and the one whose address is part of the address space allocated to it executes the request.

Bien souvent les contrôleurs PCI 23 et 33 doivent accéder à plusieurs mémoires et demandent donc de l'espace d'adressage correspondant à plusieurs mémoires. Ceci est également connu dans un système PCI et se fait par l'intermédiaire de registres spécifiques : les registres d'adresse de base (connus en anglais sous la terminologie "BAR", acronyme correspondant à "Base Address Register"). Very often the PCI controllers 23 and 33 must access several memories and therefore require address space corresponding to several memories. This is also known in a PCI system and is done through specific registers: the basic address registers (known in English under the terminology "BAR", acronym corresponding to "Base Address Register").

Suivant la taille de ces mémoires, un certain nombre bits est requis pour coder les adresses de la mémoire considérée. L'adresse se decompose donc en un premier champ 61 permettant de coder la mémoire et deuxième champ 64 permettant de coder l'adresse dans cette mémoire. Les bits de poids fort de l'adresse servent donc en général à coder la memoire. Le nombre de bits nécessaires pour coder les différentes mémoires, c'est-à-dire la taille du premier champ 61, dépend du nombre de mémoires dans le système et de la taille de ces mémoires. La taille du champ 64 est calculée, quant à elle, en fonction de la taille maximale d'une mémoire à laquelle on souhaite accéder. Depending on the size of these memories, a certain number of bits is required to code the addresses of the memory considered. The address is therefore broken down into a first field 61 making it possible to code the memory and second field 64 making it possible to code the address in this memory. The most significant bits of the address are therefore generally used to code the memory. The number of bits necessary to code the different memories, that is to say the size of the first field 61, depends on the number of memories in the system and on the size of these memories. The size of the field 64 is calculated, as for it, according to the maximum size of a memory to which one wishes to access.

A l'initialisation du système, le contrôleur PCI 23 est initialisé de manière à demander une quantité d'espace d'adressage au moins égale à la capacité de mémoire de la plus grande zone mémoire à accès unique multipliée par le nombre de zones mémoires à accès unique présentes sur la carte 3. On system initialization, the PCI controller 23 is initialized so as to request an amount of address space at least equal to the memory capacity of the largest single access memory area multiplied by the number of memory areas to be single access present on the card 3.

On demande ainsi une quantité d'espace d'adressage supérieure à la capacité de mémoire réellement présente sur la carte. This requires an amount of address space greater than the memory capacity actually present on the card.

Le maître du bus 10 procède alors à une réservation de cet espace d'adressage pour les zones mémoires à accès unique dont la taille totale est égale à la taille de la plus grande zone mémoire cible à accès unique à accéder multipliée par le nombre de zones mémoires à accès unique. Ainsi, le décodage de la zone à accéder est simplifié car le nombre de bits pour coder la zone mémoire est diminué. The master of the bus 10 then proceeds to reserve this address space for the one-access memory areas whose total size is equal to the size of the largest single-access target memory area to be accessed multiplied by the number of areas. single access memories. Thus, the decoding of the area to be accessed is simplified because the number of bits for encoding the memory area is reduced.

Le champ 64 (Figure 3) est décomposé en deux sous-champs 62 et 63. Le sous-champ 62 permet de coder le nombre de zones mémoires à accès unique présents sur la carte et donc de coder 1'identificateur, soit, exemple, numéro, de la zone mémoire à accès unique. Lorsqu'il n'y a qu' zone mémoire à accès unique dans la mémoire 22, le sous-champ 62 devient inutile. Field 64 (FIG. 3) is broken down into two sub-fields 62 and 63. Sub-field 62 makes it possible to code the number of single access memory areas present on the card and therefore to code the identifier, ie, number, of the single access memory area. When there is only one-time memory area in memory 22, subfield 62 becomes unnecessary.

Ainsi, il suffit donc de décoder le sous-champ 62 pour décoder zone mémoire cible à accès unique à accéder. Le sous-champ 63 permet de coder zone mémoire dont la taille est celle de la plus grande zone mémoire à accès unique présente sur la carte. Thus, it is therefore sufficient to decode the subfield 62 to decode the target memory area with single access to access. The subfield 63 makes it possible to code memory area whose size is that of the largest single access memory area present on the card.

La figure 4 représente un algorithme permettant de calculer la taille sous-champ 62 de l'adresse. Cet algorithme est exécuté par le contrôleur mémoire 21. FIG. 4 represents an algorithm making it possible to calculate the subfield size 62 of the address. This algorithm is executed by the memory controller 21.

L'étape E1 consiste â obtenir le nombre de zones mémoires à accès unique comprises dans la mémoire 22. Ce nombre est un paramètre qui peut être inscrit dans une mémoire non volatile à l'initialisation du système. Step E1 consists in obtaining the number of single access memory areas included in the memory 22. This number is a parameter which can be written to a non-volatile memory when the system is initialized.

A l'étape E2, ce nombre est codé en binaire. In step E2, this number is coded in binary.

A l'étape E3, on calcule combien de bits sont nécessaires pour coder cette valeur. Par exemple, si la mémoire contient cinq zones mémoires à accès unique comme représenté à la figure 2, le résultat de l'étape E2 donne la valeur binaire 101 et le résultat de l'étape E3 donne alors la valeur 3. La taille du sous-champ 62 est donc 3. In step E3, it is calculated how many bits are necessary to code this value. For example, if the memory contains five unique access memory zones as shown in FIG. 2, the result of step E2 gives the binary value 101 and the result of step E3 then gives the value 3. The size of the sub -field 62 is therefore 3.

Ainsi, on peut accéder à toutes les zones mémoires à accès unique car leur identificateur peut être codé dans le sous-champ 62. Thus, it is possible to access all the memory areas with single access since their identifier can be coded in subfield 62.

La figure 5 représente un algorithme permettant de calculer la taille du sous-champ 63 de l'adresse mémoire. Cet algorithme est exécuté par le contrôleur mémoire 21. L'étape S1 consiste à obtenir la taille de la plus grande zone mémoire à accès unique contenue dans la mémoire 22. Ce nombre est un paramètre qui peut être inscrit dans une mémoire non volatile à l'initialisation système. FIG. 5 represents an algorithm making it possible to calculate the size of the subfield 63 of the memory address. This algorithm is executed by the memory controller 21. Step S1 consists in obtaining the size of the largest single access memory area contained in the memory 22. This number is a parameter which can be written in a non-volatile memory at system initialization.

A l'étape S2, ce nombre est codé en binaire. In step S2, this number is coded in binary.

A l'étape S3, on calcule combien de bits sont nécessaires pour coder cette valeur. Par exemple, si la plus grande zone mémoire à acces unique a une taille de 1 kilo octet, le résultat de l'étape S2 donne la valeur binaire 111111111 et le résultat de l'étape S3 donne alors la valeur 9. La taille du sous-champ 62 est donc 9. In step S3, it is calculated how many bits are necessary to code this value. For example, if the largest single access memory area has a size of 1 kilobyte, the result of step S2 gives the binary value 111111111 and the result of step S3 then gives the value 9. The size of the sub -field 62 is therefore 9.

Ainsi, on peut transférer, en mode rafale ou non, un bloc données contenant autant de données que peut en contenir la zone mémoire taille maximale sans avoir â réinitialiser le transfert en mode d'accès direct mémoire (mode DMA). Cette caractéristique permet d'initier le transfert en mode DMA de taille maximale autorisée, c'est-à-dire le remplissage total de la zone mémoire à accès unique de plus grande taille, sans que l'incrément genéré sur l'adresse par l'initiateur de transfert ne vienne dégrader la valeur du premier sous-champ. Thus, it is possible to transfer, in burst mode or not, a data block containing as much data as can contain the memory area of maximum size without having to reinitialize the transfer in direct memory access mode (DMA mode). This characteristic makes it possible to initiate the transfer in DMA mode of maximum authorized size, that is to say the total filling of the memory area with single access of larger size, without the increment generated on the address by l the transfer initiator does not degrade the value of the first subfield.

La figure 6 représente l'algorithme de codage d'une adresse de la mémoire 22. FIG. 6 represents the algorithm for coding an address of memory 22.

Cet algorithme est exécuté, par exemple, par le contrôleur PCI initiateur du transfert. This algorithm is executed, for example, by the transfer initiating PCI controller.

Lorsque l'un des contrôleurs PCI du dispositif de la figure 1 , par exemple le contrôleur 33, souhaite accéder à la zone mémoire à accès unique 54 (Figure 2), il obtient le numéro de la zone mémoire à accès unique 54 au cours de l'étape T1, par exemple en le demandant au contrôleur PCI 23. When one of the PCI controllers of the device in FIG. 1, for example the controller 33, wishes to access the single access memory zone 54 (FIG. 2), it obtains the number of the single access memory zone 54 during step T1, for example by requesting it from the PCI controller 23.

Au cours de l'étape T2 le contrôleur concerné va donc placer ce numéro dans le sous-champ 62. During step T2, the controller concerned will therefore place this number in subfield 62.

Au cours de l'étape T3 le contrôleur concerné place dans le sous- champ 63 une valeur qui est telle que, si l'on rajoute à cette valeur la taille du bloc de données à transférer, le sous-champ 63 ne déborde pas sur le sous- champ 62. Cette valeur sera, par exemple, une suite de zéros de longueur egale à la longueur du sous-champ 63. During step T3, the controller concerned places a value in the subfield 63 which is such that, if the size of the data block to be transferred is added to this value, the subfield 63 does not overflow subfield 62. This value will, for example, be a series of zeros of length equal to the length of subfield 63.

C'est cette partie de l'adresse (deuxième sous-champ 63) qui sera incrémentée par le contrôleur PCI considéré à chaque transfert d'au moins une donnée. Conformément à l'invention, cette partie modifiée de l'adresse ne sera interprétée pour identifier la zone mémoire cible â accès unique qui simplifiera la tâche de décodage. It is this part of the address (second subfield 63) which will be incremented by the PCI controller considered on each transfer of at least one data item. According to the invention, this modified part of the address will only be interpreted to identify the target memory area with single access which will simplify the decoding task.

En effet, seul le premier sous-champ 62 sera interprété pour identifier la zone mémoire cible à accès unique. Indeed, only the first subfield 62 will be interpreted to identify the target memory area with single access.

Par ailleurs, bien que cette partie modifiée de l'adresse ne soit pas interprétée l'invention prévoit, contrairement à l'art antérieur, de ne pas remettre question le processus d'incrémentation. Furthermore, although this modified part of the address is not interpreted, the invention provides, unlike the prior art, not to question the incrementation process.

En modifiant ainsi le moins d'éléments possibles par rapport a un procédé connu de transfert de données, l'invention est particulièrement simple a mettre en oeuvre et peu coûteuse. By thus modifying as few elements as possible with respect to a known method of data transfer, the invention is particularly simple to implement and inexpensive.

On notera que, la taille du deuxième sous-champ 63 étant calculée de façon à ce que ce sous-champ 63 puisse coder toutes les adresses, il n'y a pas d'écrasement du sous-champ 63 sur le sous-champ 62 lorsque les adresses sont incrémentées. It will be noted that, the size of the second sub-field 63 being calculated so that this sub-field 63 can encode all the addresses, there is no overwriting of the sub-field 63 on the sub-field 62 when the addresses are incremented.

L'adresse de début de la zone mémoire concernée par le transfert augmentée de la taille maximale d'un transfert peut ainsi être codée dans le sous-champ 63. The start address of the memory zone concerned by the transfer increased by the maximum size of a transfer can thus be coded in subfield 63.

La figure 7 représente l'algorithme de décodage de l'adresse mis ceuvre, par exemple, au niveau du contrôleur PCI 23 et du contrôleur de mémoire 21 de la carte 3 de la figure 1. FIG. 7 represents the algorithm for decoding the address implemented, for example, at the level of the PCI controller 23 and the memory controller 21 of the card 3 of FIG. 1.

Au cours d'une étape G1 de l'algorithme, le contrôleur PCI décode champ 61 et, si l'adresse est décodée comme étant une adresse à laquelle il peut accéder, il le signale et accepte le transfert. During a step G1 of the algorithm, the PCI controller decodes field 61 and, if the address is decoded as being an address to which it can access, it signals it and accepts the transfer.

Au cours de l'étape suivante G2, le contrôleur de mémoire 21 interprète (décodage) le champ 64 et, plus particulièrement, le premier sous- champ 62 afin d'identifier la zone mémoire à accès unique à accéder. Ceci s'applique aussi bien pour un accès en écriture que pour un accès en lecture. During the next step G2, the memory controller 21 interprets (decoding) the field 64 and, more particularly, the first subfield 62 in order to identify the single access memory area to be accessed. This applies to both write access and read access.

Lors de cette étape d'interprétation le contrôleur ne tient pas compte du deuxieme sous-champ 63. During this interpretation step, the controller does not take account of the second subfield 63.

S'il n'y a qu'une seule zone mémoire à accès unique dans la mémoire 22, alors le champ 64 peut se réduire au deuxième sous-champ 63. Au cours de l'étape suivante G3, le contrôleur sélectionne la zone mémoire cible (FIFO) adressée et écrit ou lit les données dans celle-ci. If there is only one single access memory area in memory 22, then field 64 can be reduced to the second subfield 63. During the following step G3, the controller selects the memory area target (FIFO) addressed and writes or reads data into it.

On maintenant s'intéresser à un transfert de données entre la mémoire 32 et la mémoire 22 des cartes respectives 4 et 3 du dispositif la figure 1 pour illustrer les mécanismes mis en oeuvre dans l'invention, se basant sur la figure 8 et les figures précédemment décrites. We are now interested in a data transfer between memory 32 and memory 22 of the respective cards 4 and 3 of the device in FIG. 1 to illustrate the mechanisms used in the invention, based on FIG. 8 and the figures. previously described.

Cet exemple est donné à titre illustratif. This example is given by way of illustration.

II convient de noter que l'invention s'applique dans le cas mode lecture ou d'un mode écriture entre au moins deux mémoires du système. La figure 8 représente un algorithme illustrant le transfert de données entre les mémoires 32 et 22 et qui est mis en oeuvre par le dispositif selon l'invention. It should be noted that the invention applies in the case of read mode or of a write mode between at least two memories of the system. FIG. 8 represents an algorithm illustrating the transfer of data between the memories 32 and 22 and which is implemented by the device according to the invention.

Au cours de la première étape Z1 de cet algorithme, lorsque le contrôleur 33 la carte 4 (Figure 1) veut transférer des données de la mémoire 32 vers la zone mémoire 54 (FIFO 5) en mode d'accès direct en mémoire (en anglais DMA pour "Direct Memory Access" ), II va positionner l'adresse de la donnée qu'il veut lire dans la mémoire 32 sur le bus 34. During the first step Z1 of this algorithm, when the controller 33 the card 4 (Figure 1) wants to transfer data from memory 32 to memory area 54 (FIFO 5) in direct memory access mode (in English DMA for "Direct Memory Access"), it will position the address of the data it wants to read from memory 32 on bus 34.

contrôleur de mémoire 31 analyse cette adresse au cours de l'étape Z2 et effectue, au cours de l'étape Z3, un test pour savoir si l'adresse correspond à une mémoire â accès unique ou non. Ce test est effectué en lisant le champ 61 de l'adresse représentée à la Figure 3. memory controller 31 analyzes this address during step Z2 and performs, during step Z3, a test to know whether the address corresponds to a single access memory or not. This test is carried out by reading field 61 of the address shown in Figure 3.

Suivant la valeur du champ 61, le contrôleur de mémoire passe à l'étape Z4 ou à l'étape Z5. Depending on the value of field 61, the memory controller goes to step Z4 or to step Z5.

Si le champ 61 code une mémoire qui n'est pas à accès unique, on passe à l'étape Z4. Lors de cette étape Z4, la mémoire codée dans le champ 61 est sélectionnée, l'adresse est positionnée sur le bus 34 et la donnée est lue dans la mémoire 32. If the field 61 codes a memory which is not with single access, one proceeds to step Z4. During this step Z4, the memory coded in the field 61 is selected, the address is positioned on the bus 34 and the data is read from the memory 32.

Si, par contre, le champ 61 code une mémoire à accès unique, passe à l'etape Z5 après l'étape Z3 et le contrôleur de mémoire 31 interprète (décodage) alors le sous-champ 62 (Figure 3) pour identifier la zone mémoire cible à accès unique à laquelle il faut accéder. On ne tient pas compte deuxième sous-champ 63 pour interpréter l'adresse de la zone mémoire, ce qui simplifie procédé. La zone mémoire cible à accès unique codée dans le sous- champ 62 est donc sélectionnée, l'adresse est positionnée sur le bus 34 et la donnée est lue dans la mémoire 32. If, on the other hand, field 61 codes a single access memory, go to step Z5 after step Z3 and the memory controller 31 interprets (decoding) then subfield 62 (Figure 3) to identify the area one-time target memory to be accessed. The second subfield 63 is not taken into account for interpreting the address of the memory area, which simplifies the process. The target memory area with single access coded in the subfield 62 is therefore selected, the address is positioned on the bus 34 and the data is read from the memory 32.

Tout ce qui a été dit précédemment à propos de l'étape d'interprétation dans l'algorithme de la figure 7 reste valable ici. Everything that has been said previously about the interpretation step in the algorithm of FIG. 7 remains valid here.

Lors de l'étape suivante Z6, l'adresse de stockage des données dans la mémoire 22 de la carte 3 de la figure 1 est positionnée sur le bus 10 par le contrôleur PCI 33. During the next step Z6, the address for storing the data in the memory 22 of the card 3 in FIG. 1 is positioned on the bus 10 by the PCI controller 33.

Au cours de l'étape suivante Z7 les différents contrôleurs PCI du système, à savoir les contrôleurs 13 et 23 décodent le champ 61 de l'adresse présente le bus de communication 10. During the next step Z7, the various PCI controllers of the system, namely the controllers 13 and 23 decode the field 61 of the address present on the communication bus 10.

Si cette adresse est une adresse destinée à la mémoire 22, alors le contrôleur PCI 23 accepte le transfert de données en positionnant un signal sur le 10, (par exemple le signal DEVSEL dans le cas d'un bus PCI) pour signaler qu'il reconnaît l'adresse. If this address is an address intended for the memory 22, then the PCI controller 23 accepts the data transfer by positioning a signal on the 10, (for example the DEVSEL signal in the case of a PCI bus) to signal that it recognizes the address.

Au cours de l'étape Z8, le contrôleur 33 positionne la donnée extraite de la mémoire 32 sur le bus 10. During step Z8, the controller 33 positions the data extracted from the memory 32 on the bus 10.

Au cours de l'étape suivante Z9, le contrôleur PCI 23 positionne l'adresse de stockage des données sur le bus 24. During the next step Z9, the PCI controller 23 positions the data storage address on the bus 24.

Le contrôleur de mémoire 21 analyse cette adresse et effectue un test lors de l'étape Z10 pour savoir si cette adresse est destinée à une mémoire à accès unique ou non. Ce test est effectué en lisant le champ 61. Suivant la valeur du champ 61, le contrôleur de mémoire 21 passe à l'étape Z11 ou à l'étape Z12. The memory controller 21 analyzes this address and performs a test during step Z10 to find out whether this address is intended for a single access memory or not. This test is carried out by reading the field 61. Depending on the value of the field 61, the memory controller 21 goes to step Z11 or to step Z12.

Si le champ 61 code une mémoire qui n'est pas à accès unique, on passe à l'étape Z11 qui consiste à sélectionner la mémoire codée par le champ 61. If the field 61 codes a memory which is not with single access, one passes to step Z11 which consists in selecting the memory coded by the field 61.

le champ 61 code une mémoire qui est à accès unique alors on passe à l'étape Z12 et le contrôleur de mémoire 21 interprète (décodage) alors le sous-champ 62 pour identifier la zone mémoire cible à accès unique à laquelle il faut accéder. La zone mémoire cible à accès unique codée dans le sous-champ est donc sélectionnée et l'adresse est présentée sur le bus de la carte 2. field 61 codes a memory which is single-access then we go to step Z12 and the memory controller 21 then interprets (decoding) the sub-field 62 to identify the target memory area with single access to which it is necessary to access. The target unique access memory area coded in the subfield is therefore selected and the address is presented on the bus of card 2.

Tout ce qui a été dit précédemment à propos de l'étape d'interprétation dans l'algorithme de la figure 7 reste valable ici. Everything that has been said previously about the interpretation step in the algorithm of FIG. 7 remains valid here.

cours de l'étape Z13, la donnée récupérée par le contrôleur est positionnée sur le bus 24. Cette donnée est ensuite écrite dans la mémoire 22 à l'adresse décodée par le contrôleur de mémoire 21 au cours de l'étape Z14. during step Z13, the data recovered by the controller is positioned on the bus 24. This data is then written in the memory 22 at the address decoded by the memory controller 21 during the step Z14.

Si le transfert a lieu en mode rafale, l'adresse présentée sur le 10 sera suivie par un certain nombre de données, ce nombre étant paramètre du système qui est prévu pour éviter les congestions et qui tient compte des caractéristiques du système. If the transfer takes place in burst mode, the address presented on the 10 will be followed by a certain number of data, this number being a parameter of the system which is designed to avoid congestion and which takes account of the characteristics of the system.

Si le transfert n'a pas lieu en mode rafale, adresses et données se succéderont de manière consécutive sur le bus. If the transfer does not take place in burst mode, addresses and data will follow one another consecutively on the bus.

Après l'étape Z14, l'étape Z1 est de nouveau exécutée description donnée en exemple ci-dessus est également valable pour transfert de données de la mémoire 32 vers la mémoire 22 initiée par le contrôleur 33. After step Z14, step Z1 is again executed. Description given in example above is also valid for data transfer from memory 32 to memory 22 initiated by the controller 33.

Les opérations décrites dans cette figure sont décrites dans un ordre qui peut éventuellement être modifié suivant le type de composant utilisé, certaines de ces opérations pouvant être réalisées en parallèle. La figure 9 illustre les mécanismes d'écriture de données en mode rafale qui interviennent entre l'adaptateur de bus 33 (respectivement 23) et la mémoire 32 (respectivement 22). The operations described in this figure are described in an order which can possibly be modified according to the type of component used, some of these operations being able to be carried out in parallel. FIG. 9 illustrates the mechanisms for writing data in burst mode which intervene between the bus adapter 33 (respectively 23) and the memory 32 (respectively 22).

Les échanges dans le système sont cadencés avec une horloge de MHz, notée 'cik_33' sur la figure 9. Au début du cycle d'écriture l'adaptateur de bus 33 active sur le bus de communication 14 - le signal 'Iptatn' qui informe d'un début de transfert en mode d'accès direct mémoire, - le signal 'ptnum' qui spécifie lequel des registres d'adresse de base est concerné par le transfert, c'est-à-dire quelle mémoire déclarée à l'initialisation est à accéder, - le signal 'ptwr' qui spécifie si l'adaptateur de bus 33 fait une requête d'écriture ou de lecture, - le signal Iptburst' qui spécifie si le transfert est à faire en mode rafale ou non. Exchanges in the system are clocked with a MHz clock, noted 'cik_33' in Figure 9. At the start of the write cycle, the bus adapter 33 activates on the communication bus 14 - the signal 'Iptatn' which informs the start of a transfer in direct memory access mode, - the 'ptnum' signal which specifies which of the basic address registers is concerned by the transfer, i.e. which memory declared at initialization is to be accessed, - the signal 'ptwr' which specifies whether the bus adapter 33 makes a write or read request, - the signal Iptburst 'which specifies whether the transfer is to be made in burst mode or not.

Le système est alors en attente de l'activation par le contrôleur mémoire 31 du signal 'Iptadr' qui indique que ledit contrôleur de mémoire est attente de l'adresse de la zone mémoire concernée par le transfert. The system is then awaiting activation by the memory controller 31 of the signal 'Iptadr' which indicates that said memory controller is waiting for the address of the memory area concerned by the transfer.

L'adaptateur de bus 33 positionne alors sur les signaux de données 'DQ[31..0]' l'adresse provenant du bus de communication 10. The bus adapter 33 then positions the address from the communication bus 10 on the data signals 'DQ [31..0]'.

Le contrôleur de mémoire 31 interprète (décodage) cette adresse comme décrit sur la figure 7. The memory controller 31 interprets (decoding) this address as described in FIG. 7.

L'adaptateur de bus 33 pourra commencer à transférer la série données dès que le contrôleur de mémoire 31 aura activé le signal 'Iptrdy'. Une nouvelle donnée sera présentée sur le bus de communication 34 à chaque coup d'horloge à 33 MHz. The bus adapter 33 can start to transfer the data series as soon as the memory controller 31 has activated the 'Iptrdy' signal. New data will be presented on the communication bus 34 at each clock stroke at 33 MHz.

Si le signal 'Iptatn' devient inactif, comme c'est le cas autour 200 le transfert est momentanément interrompu et la donnée qui était présente sur le bus de communication 34 est maintenue jusqu'à réactivation du signal 'Iptatn'. Lorsque le signal Iptburst' devient inactif, cela signifie que la donnée présente sur le bus de communication 34 est la dernière du transfert en mode rafale. Une fois la donnée écrite dans la zone mémoire cible, le contrôleur de mémoire 31 désactive le signal 'Iptrdy', signifiant ainsi la fin du transfert en mode rafale.If the 'Iptatn' signal becomes inactive, as is the case around 200, the transfer is momentarily interrupted and the data which was present on the communication bus 34 is maintained until the 'Iptatn' signal is reactivated. When the Iptburst 'signal becomes inactive, this means that the data present on the communication bus 34 is the last of the transfer in burst mode. Once the data has been written to the target memory area, the memory controller 31 deactivates the 'Iptrdy' signal, thus signifying the end of the transfer in burst mode.

Claims (1)

<U>REVENDICATIONS</U> 1. Procédé de transfert de données entre au moins deux mémoires (32,22) par l'intermédiaire d'au moins un bus de communication (10) et d'un initiateur du transfert (33) sur ledit au moins un bus l'une desdites mémoires à accéder étant appelée mémoire cible (22), ledit procédé comportant les étapes suivantes - positionnement d'une adresse (60) de la mémoire cible (22) sur le bus, - positionnement d'au moins une donnée sur le , - incrémentation d'une partie de ladite adresse de mémoire cible (22) lors chaque transfert d'au moins une donnée, caracterisé en ce que ledit procedé comporte une étape d'interprétation de l'adresse (60) pour identifier mémoire cible à accès unique (50, 51, 52, 53, 54) et qui ne prend pas en compte la partie de l'adresse modifiée lors de l'étape d'incrémentation. . 2. Procédé de transfert selon la revendication 1 caractérisé en ce que, lorsque la mémoire cible (22) comporte au moins deux zones mémoires à accès unique, l'une desdites zones mémoires à accéder étant appelée zone mémoire cible, l'adresse (60) de cette zone mémoire cible à accès unique comporte au moins un champ (64) qui comporte un premier sous-champ (62) représentatif de la zone mémoire cible à accès unique (50, 51, 53, 54) et un deuxième sous-champ (63) sur lequel est appliquée l'étape d'incrémentation. 3. Procédé selon la revendication 2 caractérisé ce que l'étape d'interprétation analyse seulement le premier sous-champ (62) pour identifier la zone mémoire cible à accéder. 4. Procédé selon la revendication 2 ou 3, caractérisé en ce que le premier sous-champ (62) de l'adresse code l'identificateur de la zone mémoire à accès unique. 5. Procédé selon l'une des revendications 2 à 4, caractérisé en ce que la taille du premier sous-champ (62) est calculée pour permettre de coder moins tous les identificateurs des zones mémoires ' accès unique (50,51,52,53,54). 6. Procédé selon l'une des revendications 2 à 5, caractérisé en ce la taille du deuxième sous-champ (63) correspond à la taille permettant de coder la plus grande zone mémoire à accès unique. 7. Procédé selon l'une des revendications 2 à 6, caractérisé en ce qu'il comporte une étape de réservation d'un espace d'adressage égal à la taille de la plus grande zone mémoire cible à accéder multipliée le nombre de zones mémoires à accès unique. 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce que le transfert de données est effectué en mode d'accès direct en mémoire. 9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que le transfert de données est effectué en mode rafale. 10. Procédé selon l'une des revendications 1 à 9, caractérisé en que le bus de communication est un bus de type PCI. 11. Dispositif de transfert de données entre moins deux mémoires (32, 22) par l'intermédiaire d'au moins un bus de communication (10) d'un initiateur du transfert (33) sur ledit au moins un bus l'une desdites mémoires à accéder étant appelée mémoire cible, ledit dispositif comportant - un moyen de positionnement d'une adresse (60) de la mémoire cible (22) sur le bus, - un moyen de positionnement d'au moins une donnée sur le bus, - un moyen d'incrémentation d'une partie de ladite adresse de la mémoire cible (22) lors de chaque transfert d'au moins une donnée, caractérisé en ce que ledit dispositif comporte un moyen d'interprétation de l'adresse (60) pour identifier la mémoire cible à accès unique (50, 51, 52, 53, 54) et qui ne prend pas en compte la partie de l'adresse modifiée par ledit moyen d'incrémentation. 12. Dispositif de transfert selon la revendication 11, caractérisé en ce que, lorsque la mémoire cible (22) comporte au moins deux zones mémoires à accès unique, l'une desdites zones mémoires à accéder étant appelée zone mémoire cible, l'adresse (60) de cette zone mémoire cible à accès unique comporte au moins un champ (64) qui comporte un premier sous-champ (62) représentatif de la zone mémoire cible à accès unique (50, 51, 53, 54) et un deuxième sous-champ (63) sur lequel s'applique le moyen d'in crementation. 13. Dispositif selon la revendication 12, caractérise en ce que le moyen d'interprétation de l'adresse analyse seulement le premier sous-champ (62) pour identifier la zone mémoire cible à accéder. 14. Dispositif selon la revendication 12 ou 13, caractérisé en ce le premier sous-champ (62) de l' adresse code l'identificateur de la zone memoire à accès unique.<U> CLAIMS </U> 1. Method for transferring data between at least two memories (32,22) via at least one communication bus (10) and a transfer initiator (33) on said at least one bus one of said memories to be accessed being called target memory (22), said method comprising the following steps - positioning of an address (60) of the target memory (22) on the bus, - positioning of '' at least one piece of data on the - incrementing part of said target memory address (22) during each transfer of at least one piece of data, characterized in that said method includes a step of interpreting the address ( 60) to identify target memory with single access (50, 51, 52, 53, 54) and which does not take into account the part of the address modified during the incrementation step. . 2. A transfer method according to claim 1 characterized in that, when the target memory (22) comprises at least two memory areas with single access, one of said memory areas to be accessed being called target memory area, the address (60 ) of this single-access target memory zone comprises at least one field (64) which comprises a first subfield (62) representative of the single-access target memory zone (50, 51, 53, 54) and a second sub- field (63) to which the increment step is applied. 3. Method according to claim 2 characterized in that the interpretation step analyzes only the first sub-field (62) to identify the target memory area to be accessed. 4. Method according to claim 2 or 3, characterized in that the first sub-field (62) of the address codes the identifier of the single access memory area. 5. Method according to one of claims 2 to 4, characterized in that the size of the first subfield (62) is calculated to allow coding less all the identifiers of the memory areas' single access (50,51,52, 53.54). 6. Method according to one of claims 2 to 5, characterized in that the size of the second subfield (63) corresponds to the size for coding the largest single access memory area. 7. Method according to one of claims 2 to 6, characterized in that it comprises a step of reserving an address space equal to the size of the largest target memory area to be accessed multiplied by the number of memory areas single access. 8. Method according to one of claims 1 to 7, characterized in that the data transfer is carried out in direct memory access mode. 9. Method according to one of claims 1 to 8, characterized in that the data transfer is carried out in burst mode. 10. Method according to one of claims 1 to 9, characterized in that the communication bus is a PCI type bus. 11. Device for transferring data between at least two memories (32, 22) via at least one communication bus (10) of a transfer initiator (33) on said at least one bus, one of said memories to be accessed being called target memory, said device comprising - means for positioning an address (60) of the target memory (22) on the bus, - means for positioning at least one data item on the bus, - means for incrementing a part of said address of the target memory (22) during each transfer of at least one data item, characterized in that said device comprises means for interpreting the address (60) for identifying the target memory with single access (50, 51, 52, 53, 54) and which does not take into account the part of the address modified by said incrementing means. 12. Transfer device according to claim 11, characterized in that, when the target memory (22) comprises at least two memory areas with single access, one of said memory areas to be accessed being called target memory area, the address ( 60) of this single access target memory zone comprises at least one field (64) which comprises a first subfield (62) representative of the target single access memory zone (50, 51, 53, 54) and a second sub -field (63) to which the incrementation means apply. 13. Device according to claim 12, characterized in that the address interpretation means analyzes only the first subfield (62) to identify the target memory area to be accessed. 14. Device according to claim 12 or 13, characterized in that the first subfield (62) of the address code the identifier of the memory area with single access. 1 Dispositif selon l'une des revendications 12 à 14, caractérisé en ce que taille du premier sous-champ (62) est calculée pour permettre de coder au moins tous les identificateurs des zones mémoires à accès unique (50,51,52,53,54). 16. Dispositif selon l'une des revendications 12 à 15, caractérisé ce que la taille du deuxième sous-champ (63) correspond à la taille permettant de coder la plus grande zone mémoire à accès unique (50,51,52,53,54). 17. Dispositif selon l'une des revendications 12 à 16, caractérisé en ce qu'il comporte un moyen de réservation d'un espace d'adressage égal à taille de la plus grande zone mémoire cible à accéder multipliée par le nombre de zones mémoires à accès unique. 18. Dispositif selon l'une des revendications 11 à 17, caractérisé ce que le transfert de données est effectué en mode d'accès direct en mémoire. 19. Dispositif selon l'une des revendications 11 à 18, caractérisé en ce que le transfert de données est effectué en mode rafale. 20. Dispositif selon l'une des revendications 11 à 19, caractérisé en ce que le bus de communication est un bus de type PCI. 1 Device according to one of claims 12 to 14, characterized in that the size of the first subfield (62) is calculated to allow coding at least all the identifiers of the memory areas with single access (50,51,52,53 , 54). 16. Device according to one of claims 12 to 15, characterized in that the size of the second subfield (63) corresponds to the size making it possible to code the largest single access memory area (50,51,52,53, 54). 17. Device according to one of claims 12 to 16, characterized in that it comprises a means for reserving an address space equal to the size of the largest target memory area to be accessed multiplied by the number of memory areas single access. 18. Device according to one of claims 11 to 17, characterized in that the data transfer is carried out in direct memory access mode. 19. Device according to one of claims 11 to 18, characterized in that the data transfer is carried out in burst mode. 20. Device according to one of claims 11 to 19, characterized in that the communication bus is a PCI type bus.
FR0005594A 2000-05-02 2000-05-02 METHOD AND DEVICE FOR TRANSFERRING DATA BETWEEN TWO MEMORIES Expired - Fee Related FR2808605B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0005594A FR2808605B1 (en) 2000-05-02 2000-05-02 METHOD AND DEVICE FOR TRANSFERRING DATA BETWEEN TWO MEMORIES

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0005594A FR2808605B1 (en) 2000-05-02 2000-05-02 METHOD AND DEVICE FOR TRANSFERRING DATA BETWEEN TWO MEMORIES

Publications (2)

Publication Number Publication Date
FR2808605A1 true FR2808605A1 (en) 2001-11-09
FR2808605B1 FR2808605B1 (en) 2003-10-10

Family

ID=8849807

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0005594A Expired - Fee Related FR2808605B1 (en) 2000-05-02 2000-05-02 METHOD AND DEVICE FOR TRANSFERRING DATA BETWEEN TWO MEMORIES

Country Status (1)

Country Link
FR (1) FR2808605B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061821B2 (en) * 1998-10-20 2006-06-13 International Business Machines Corporation Address wrap function for addressable memory devices
WO2015000788A1 (en) * 2013-07-01 2015-01-08 Hero Ag New prophylactic use for prevention of infections

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0332910A2 (en) * 1988-03-15 1989-09-20 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Memory system having predictive module selection
US5974501A (en) * 1996-12-19 1999-10-26 Compaq Computer Corporation Method and apparatus for detecting memory device types
US5991861A (en) * 1996-03-15 1999-11-23 Adaptec, Inc. Method of enabling and disabling a data function in an integrated circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0332910A2 (en) * 1988-03-15 1989-09-20 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Memory system having predictive module selection
US5991861A (en) * 1996-03-15 1999-11-23 Adaptec, Inc. Method of enabling and disabling a data function in an integrated circuit
US5974501A (en) * 1996-12-19 1999-10-26 Compaq Computer Corporation Method and apparatus for detecting memory device types

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061821B2 (en) * 1998-10-20 2006-06-13 International Business Machines Corporation Address wrap function for addressable memory devices
WO2015000788A1 (en) * 2013-07-01 2015-01-08 Hero Ag New prophylactic use for prevention of infections

Also Published As

Publication number Publication date
FR2808605B1 (en) 2003-10-10

Similar Documents

Publication Publication Date Title
EP0227530B1 (en) Method for recording with updating and for the reproduction of data on a non-erasable sectorial record carrier
FR2681707A1 (en) FILE SYSTEM FOR SELECTIVELY REDISTRIBUTING FILES AND METHOD FOR AFFECTING MEMORY SPACE IN A COMPUTER SYSTEM COMPRISING MULTIPLE DATA STORAGE DEVICES.
EP0434483A1 (en) Processor with plural microprogrammed execution units
FR3027128A1 (en)
EP0837396B1 (en) Atomic operation on a remote memory and device for performing this operation
EP0602282A1 (en) Resequencing means for a cell switching system node
FR2808605A1 (en) Transfer of data between two memories, uses interpretation of target memory address to separate part of the address used to write to memory from part that is incremented during data transfer
EP1594065A1 (en) System on a chip with an arbiter, and storage key including it
FR2828972A1 (en) DATA PROCESSING AND ROUTING DEVICE
EP2585931B1 (en) Device, string, and method for processing data, and corresponding computer program
EP0512881B1 (en) Apparatus and method for the selection of information usable by a local unit linked to a digital transmission system
EP0838053A1 (en) Method and device enabling a fixed programme to be developed
EP3716086A1 (en) Direct memory access
FR2980611A1 (en) CIRCUIT FOR PLANNING THE PROCESS OF DATA PROCESSING
FR2865291A1 (en) METHOD OF TRANSFERRING DATA IN A MULTIPROCESSOR SYSTEM, MULTIPROCESSOR SYSTEM AND PROCESSOR EMPLOYING SAID METHOD
FR2825167A1 (en) METHOD AND SYSTEM FOR ACCESSING A COMMON MEMORY
EP1293909B1 (en) Dynamic access control of a function to a shared resource
FR2695227A1 (en) Interleaved transfer of data between computer memory and multiple peripherals - uses processor with interfaces to disc units and to computer to divide data into specified units for interleaved transfer
EP1632863A1 (en) Programmable device for a command interface.
WO1999049385A1 (en) Electronic fund-raising method and system
EP0346420B1 (en) Process for exchanging information in a multiprocessor system
EP1341093B1 (en) Access to a shared resource
EP1233419A2 (en) Refreshing method of a dynamic memory
EP0957435A1 (en) Microprocessor interface with an external memory optimized by an anticipated decoding system
WO2006063911A1 (en) Method for positioning elementary data of a data structure in a storage unit

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140131