[go: up one dir, main page]

FR2799020A1 - Multiple processor device has a common memory, access to which is controlled by a memory interface that treats each processor as if it had its own FIFO buffer memory, although there is only one buffer memory, thus reducing cost - Google Patents

Multiple processor device has a common memory, access to which is controlled by a memory interface that treats each processor as if it had its own FIFO buffer memory, although there is only one buffer memory, thus reducing cost Download PDF

Info

Publication number
FR2799020A1
FR2799020A1 FR9912068A FR9912068A FR2799020A1 FR 2799020 A1 FR2799020 A1 FR 2799020A1 FR 9912068 A FR9912068 A FR 9912068A FR 9912068 A FR9912068 A FR 9912068A FR 2799020 A1 FR2799020 A1 FR 2799020A1
Authority
FR
France
Prior art keywords
memory
access
interface
macro
data
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.)
Withdrawn
Application number
FR9912068A
Other languages
French (fr)
Inventor
Thierry Nouvet
Perthuis Hugues De
Stephane Mutz
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Priority to FR9912068A priority Critical patent/FR2799020A1/en
Priority to US09/640,734 priority patent/US6738840B1/en
Priority to CNB001317210A priority patent/CN1145893C/en
Priority to DE60009618T priority patent/DE60009618T2/en
Priority to EP00203005A priority patent/EP1081597B1/en
Priority to KR1020000050303A priority patent/KR100676982B1/en
Priority to JP2000259435A priority patent/JP2001125826A/en
Priority to TW089122325A priority patent/TW475115B/en
Publication of FR2799020A1 publication Critical patent/FR2799020A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory

Landscapes

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

Abstract

Data processing device comprises multiple processors and a memory interface via which the processors access a common memory. The memory interface comprises interface memory (SRAM) for temporarily stocking the data belonging to different processors. The interface also comprises a controller circuit for the interface memory such that it acts as an individual FIFO memory for each processor. Independent claims are made for data processing method for use with multiple processors with a common memory and a computer program with a set of instructions for controlling multiple processors with a common memory.

Description

Dispositif à plusieurs processeurs ayant une interface pour une mémoire collective. DOMAINE TECHNIQUE L'invention concerne un dispositif de traitement de signaux comprenant plusieurs processeurs et une interface mémoire à travers laquelle les processeurs peuvent accéder à une mémoire collective. Multiprocessor device having an interface for a collective memory. TECHNICAL FIELD The invention relates to a signal processing device comprising a plurality of processors and a memory interface through which the processors can access a collective memory.

ETAT DE LA TECHNIQUE ANTERIEURE Le brevet US 5,072,420 décrit une interface à travers laquelle plusieurs dispositifs périphériques et externes peuvent accéder à une memoire DRAM (en anglais: Dynamic Random Access Memory). L'interface comprend une voie d'entrée et sortie pour chaque dispositif périphérique et externe. Chaque voie contient une mémoire FIFO (en anglais: First In, First Out) reliant le dispositif concerné à mémoire DRAM. EXPOSE DE L'INVENTION Un but de l'invention est de permettre des implémentations à relativement faible coût notamment en ce qui concerne des implémentations sous forme d'un circuit intégré.  STATE OF THE PRIOR ART US Pat. No. 5,072,420 describes an interface through which several peripheral and external devices can access a memory DRAM (in English: Dynamic Random Access Memory). The interface includes an input and output channel for each peripheral and external device. Each channel contains a FIFO memory (in English: First In, First Out) connecting the device concerned to DRAM memory. SUMMARY OF THE INVENTION An object of the invention is to enable relatively low-cost implementations, particularly with regard to implementations in the form of an integrated circuit.

L'invention prend les aspects suivants en considération. mémoire généralement comprend des éléments constituant des cellules de mémoire et des éléments supplémentaires pour accéder aux cellules de mémoire. Plus la mémoire est petite, plus grande est la proportion des éléments supplémentaires. Donc, on pourrait dire qu'une mémoire d'une taille relativement petite a un faible taux d'efficacité. Par exemple, considérons une mémoire faisant partie d'un circuit intégré. Si la mémoire est relativement petite, elle n'offre qu'une capacité de stockage unité de surface relativement faible. Autrement dit, la mémoire occupe relativement beaucoup de surface en vue le nombre de données qu'elle peut stocker. The invention takes the following aspects into consideration. Memory generally includes memory cell components and additional elements for accessing the memory cells. The smaller the memory, the greater the proportion of additional elements. So, we could say that a memory of a relatively small size has a low efficiency rate. For example, consider a memory that is part of an integrated circuit. If the memory is relatively small, it offers only a relatively small unit-of-area storage capacity. In other words, the memory occupies a relatively large area in view of the number of data it can store.

Selon l'art antérieur, l'interface entre la mémoire DRAM les dispositifs périphériques et externes comprend une mémoire FIFO pour chaque dispositif. En supposant qu'on réalise cette interface sous forme d'un circuit intégré, les mémoires FIFO occuperons relativement beaucoup de surface. En plus, chaque mémoire FIFO requière des connections spécifiques comme par exemple des rails d'alimentations. Ceci complique le routage de ces connections. Donc, l'interface selon l'art antérieur occupe relativement beaucoup de surface et est relativement difficile à implémenter. Selon l'invention, l'interface mémoire d'un dispositif tel que défini dans le paragraphe d'ouverture comprend: - une mémoire d'interface pour temporairement stocker des données appartenant à différents processeurs; - un circuit de contrôle pour gérer la mémoire d'interface d'une telle façon que celle ' constitue une mémoire FIFO pour chaque un des différents processeurs Donc, en effet, la mémoire d'interface remplace un ensemble de mémoires FIFO individuelles qu'on trouve dans l'art antérieur. Le circuit de contrôle peut être relativement simple par rapport à la totalité des éléments supplémentaires d'un ensemble de mémoires FIFO. Par conséquent, l'invention permet de réaliser la capacité de stockage voulue avec moins d'éléments par rapport à l'art antérieur. Plus spécifique, l'invention permet d'implémenter une interface mémoire sur relativement peu surface d'un circuit intégré. Par conséquent, l'invention permet des implémentations à relativement faible coût. L'invention et des caractéristiques additionnelles qui peuvent être utilisees avec avantage pour mettre en oeuvre l'invention, seront décrites ci-dessous plus en grand détail référence à des figures. BREVE DESCRIPTION DES FIGURES Figure 1 illustre un dispositif de traitement de signaux selon l'invention; La Figure z illustre le fonctionnement de l'interface mémoire du dispositif; La Figure 3 illustre un bloc de traitement de signaux du dispositif; La Figure 4 illustre l'interface mémoire du dispositif; La Figure 5 illustre un accès en lecture d'un bloc; La Figure 6a et 6b illustrent un arbitrage d'accès une mémoire collective La Figure 7 illustre un interface d'accès de l'interface mémoire; La Figure 8 illustre un dispositif de mémoire tampon de l'interface mémoire; La Figure 9 illustre un dispositif de mémoire tampon pour lecture. MODES DE REALISATION DE L'INVENTION Les remarques suivantes concernent les signes de référence. Des entités similaires sont désignées par une référence par lettres identiques dans toutes figures. Plusieurs entités similaires peuvent apparaître dans une seule figure. Dans ce cas, un chiffre ou un suffixe est ajouté à la référence par lettres afin de distinguer entre des entités similaires. Le chiffre ou le suffixe peut être omis pour des raisons de convenance. Ceci s'applique pour la description ainsi que pour les revendications. La Figure 1 illustre un dispositif de traitement de signaux. Le dispositif comprend une mémoire collective SDRAM, une interface mémoire INT et trois blocs de traitement de signaux B1,B2 et B3. Ces derniers seront nommé "bloc" dans le suivant. Chaque bloc B est relié à l'interface mémoire INT via un bus de lecture privé BBR et un bus d'écriture privé BBW. Chaque bus de lecture privé BBR et chaque bus d'écriture privé BBW est dédié à un certain bloc B. L'interface mémoire INT est relié à la mémoire collective SDRAM via un bus collectif BM. According to the prior art, the interface between the DRAM peripheral and external devices comprises a FIFO memory for each device. Assuming that this interface is implemented in the form of an integrated circuit, the FIFOs will occupy a relatively large area. In addition, each FIFO memory requires specific connections such as power rails. This complicates the routing of these connections. Therefore, the interface according to the prior art occupies a relatively large area and is relatively difficult to implement. According to the invention, the memory interface of a device as defined in the opening paragraph comprises: an interface memory for temporarily storing data belonging to different processors; a control circuit for managing the interface memory in such a way that it constitutes a FIFO memory for each of the different processors Thus, indeed, the interface memory replaces a set of individual FIFO memories that found in the prior art. The control circuit may be relatively simple with respect to all of the additional elements of a FIFO memory set. Therefore, the invention makes it possible to achieve the desired storage capacity with fewer elements compared to the prior art. More specifically, the invention makes it possible to implement a memory interface on a relatively small surface of an integrated circuit. Therefore, the invention allows implementations at relatively low cost. The invention and additional features that can be advantageously used to implement the invention will be described below in greater detail with reference to figures. BRIEF DESCRIPTION OF THE FIGURES FIG. 1 illustrates a signal processing device according to the invention; Figure z illustrates the operation of the device memory interface; Figure 3 illustrates a signal processing block of the device; Figure 4 illustrates the device memory interface; Figure 5 illustrates a read access of a block; Figure 6a and 6b illustrate a collective memory access arbitration. Figure 7 illustrates an access interface of the memory interface; Figure 8 illustrates a buffer memory device of the memory interface; Figure 9 illustrates a read buffer device. EMBODIMENTS OF THE INVENTION The following remarks relate to the reference signs. Similar entities are designated by a reference by identical letters in all figures. Several similar entities may appear in a single figure. In this case, a number or suffix is added to the reference by letters to distinguish between similar entities. The number or suffix may be omitted for convenience. This applies for the description as well as for the claims. Figure 1 illustrates a signal processing device. The device comprises a collective SDRAM memory, an INT memory interface and three signal processing blocks B1, B2 and B3. These will be named "block" in the following. Each block B is connected to the memory interface INT via a private reading bus BBR and a private write bus BBW. Each private reading bus BBR and each private write bus BBW is dedicated to a certain block B. The memory interface INT is connected to the collective memory SDRAM via a collective bus BM.

Le dispositif de traitement de signaux fonctionne globalement comme suit. Les blocs B reçoivent sur demande des données à traiter stockées dans la mémoire collective SDRAM. Après avoir traité ces données, les blocs B envoient les données traitées vers la mémoire collective SDRAM via l'interface mémoire INT. L'interface mémoire INT régularise l'accès à la mémoire collective SDRAM par les différents blocs B. The signal processing device generally operates as follows. The blocks B on request receive data to be processed stored in the SDRAM collective memory. After having processed this data, the blocks B send the processed data to the SDRAM collective memory via the memory interface INT. The memory interface INT regulates the access to the collective memory SDRAM by the different blocks B.

L'interface mémoire INT a deux fonctions de base. Premièrement, elle effectue un arbitrage entre les différents blocs B au niveau d'accès à la mémoire collective SDRAM. Un seul bloc B peut accéder à la mémoire collective SDRAM à la fois, soit en écriture soit en lecture. Ceci implique qu'un bloc B ne peut accéder à la mémoire qu'en rafale (en anglais: burst). Deuxièmement, en cas de lecture, l'interface mémoire INT transforme les rafales de données provenant de la mémoire collective SDRAM et destinées pour un certain bloc B, en flux de données sensiblement régulier. Ce flux de données est ainsi transféré via le bus privé de lecture BBR concerné vers le bloc B. En cas d'écriture, l'interface mémoire INT transforme un flux de données sensiblement régulier provenant d'un certain bloc B en rafales de données pour écriture dans la mémoire collective SDRAM. The INT memory interface has two basic functions. First, it arbitrates between the different B blocks at the access level to the SDRAM collective memory. A single block B can access the collective memory SDRAM at a time, either in writing or in reading. This implies that a block B can only access burst memory (burst). Secondly, in the case of reading, the memory interface INT converts the bursts of data from the SDRAM collective memory and intended for a certain block B, in a substantially regular data stream. This data flow is thus transferred via the concerned private BBR reading bus to block B. In the case of writing, the memory interface INT transforms a substantially regular data stream originating from a certain block B into data bursts for writing in the SDRAM collective memory.

La Figure 2 illustre le fonctionnement de l'interface mémoire INT. T(BM) représente un trafic de données sur le bus collectif BM entre la mémoire collective SDRAM et l'interface mémoire INT. T(BBR1), T(BBR2) et T(BBR3) représentent des trafics de données sur les bus privés de lecture BBR1, BBR2 et BBR3 entre l'interface mémoire INT et les blocs B1, B2 et B3, respectivement. T(BBW1), T(BBW2) et T(BBW3) représentent des trafics de données sur les bus privés d'écriture BBW1, BBW2 et BBW3 entre l'interface mémoire INT et les blocs B1, B2 et B3, respectivement. Figure 2 illustrates the operation of the INT memory interface. T (BM) represents a data traffic on the collective bus BM between the collective memory SDRAM and the memory interface INT. T (BBR1), T (BBR2) and T (BBR3) represent data traffic on the private BBR1, BBR2 and BBR3 read busses between the memory interface INT and the blocks B1, B2 and B3, respectively. T (BBW1), T (BBW2) and T (BBW3) represent data traffic on the private write buses BBW1, BBW2 and BBW3 between the memory interface INT and the blocks B1, B2 and B3, respectively.

Le trafic de données T(BM) est composé de rafales de données DB. Chaque rafale de données DB correspond à un accès de la mémoire collective SDRAM par un bloc B soit en écriture soit en lecture. Les références entre parenthèses qui suivent DB indiquent à quel bloc B les données dans la rafale appartiennent et, en plus, le type d'accès: écriture (W) ou lecture (R). Par exemple, DB1(B1/R) indique que la rafale de données DB1 concerne un accès en lecture la mémoire collective SDRAM par B1. T (BM) data traffic consists of DB data bursts. Each burst of data DB corresponds to an access of the SDRAM collective memory by a block B is written or read. The references in parentheses that follow DB indicate which block B the data in the burst belong to and, in addition, the type of access: write (W) or read (R). For example, DB1 (B1 / R) indicates that the burst of data DB1 relates to read access to the collective memory SDRAM by B1.

La Figure 2 illustre que l'interface mémoire INT effectue un "lissage" des rafale de données provenant de la mémoire collective SDRAM et appartenant à un certain bloc B. Cette Figure illustre également qu'inversement l'interface mémoire INT concentre dans le temps des données provenant d'un bloc B pour écrire ces données dans la mémoire collective SDRAM en rafale (compactage de données). Donc, les trafics de données via les bus privés de lecture BBR et les bus privés d'écriture BBW ont des débits relativement faibles. Par conséquent, ceci permet aux bus privés de lecture BBR et aux bus privés d'écriture BBW d'avoir des bandes passantes relativement faibles et, de ce fait, ceci permet à ces bus d'avoir une largeur relativement modeste. A cet égard il faut noter que la taille d'un bus ne doit pas nécessairement correspondre aux nombre de bits contenus dans les données transférées par ce bus. Par exemple, une donnée comprenant 16 bits se laisse découper en mots de 4 bits. Ainsi on peut transférer cette donnée via un bus d'une taille de 4 bits sous forme d'une succession de 4 mots. La Figure 3 illustre un bloc B. Le bloc B comprend un processeur P et un circuit d'adressage global AGA. Le processeur P fait des requêtes logiques LRQ. Supposant que le bloc B traite des données vidéo, une requête logique LRQ peut-être par exemple une demande de pixels d'une certaine ligne dans l'image courante. Le circuit d'adressage global AGA transforme la requête logique LRQ en requête physique PRQ. La requête physique PRQ définie les adresses physiques dans la mémoire collective SDRAM sous lesquelles les données demandées sont stockées. Les requêtes physiques PRQ peuvent avoir la forme suivante: une adresse de départ, un nombre d'adresses à aller chercher à partir de cette adresse et éventuellement un schéma à appliquer lors de la recherche des données. Le schéma peut être défini sous forme de: nombre d'adresses consécutives à lire, nombre d'adresses à sauter et nombre d'itérations "lire et sauter". L'AGA peut être programmable de telle façon que des paramètres de traduction définissent les traductions des requêtes logiques LRQ en requêtes physiques PRQ. Ceci permet une flexibilité de stockage des données dans la mémoire collective SDRAM. La Figure 4 illustre l'interface mémoire INT. L'interface mémoire INT comprend un arbitre ARB, une interface d'accès SIF, un dispositif de mémoire tampon BUF et des circuits d'adressage en macro-commandes AGB. II y a un circuit d'adressage en macro-commandes AGB pour chaque bloc B. Le fonctionnement interne de l'interface mémoire INT est globalement comme suit. Chaque circuit d'adressage en macro-commandes AGB découpe une requête physique du bloc B auquel il est associé en macro-commandes. Une macro- commande représente une requête d'accès d'une certain ligne dans la mémoire. Avant qu'une macro-commande soit soumise à l'arbitre ARB, le circuit d'adressage en macro- commandes AGB vérifie s'il y a suffisamment de place dans le dispositif de mémoire tampon BUF. A cet effet, il soumet d'abord la macro-commande au dispositif de mémoire tampon BUF. Si le dispositif de mémoire tampon BUF confirme qu'il y a de la place pour stocker le nombre de données définie par la macro-commande, le circuit d'adressage en macro-commandes AGB soumet la macro-commande à l'arbitre ARB. L'arbitre ARB recueille les macro-commandes provenant des différents circuit d'adressage en macro-commandes AGB et sélectionne une macro-commande pour envoi à l'interface d'accès SIF. Cette sélection se fait selon un schéma d'arbitrage qui est décrite ci-après. L'interface d'accès SIF traite les macro-commandes provenant de l'arbitre ARB dans l'ordre de leur réception. Ainsi, l'interface d'accès SIF effectue des accès à la mémoire collective SDRAM, accès étant définies par la macro-commande en cours de traitement. FIG. 2 illustrates that the memory interface INT performs a "smoothing" of the burst of data coming from the collective SDRAM memory and belonging to a certain block B. This Figure also illustrates that conversely the memory interface INT concentrates in time data from a block B to write this data into the collective memory SDRAM burst (data compacting). Therefore, data traffic via private BBR read buses and BBW private write buses have relatively low data rates. Therefore, this allows private BBR read buses and BBW private write buses to have relatively low bandwidths and, as a result, this allows these buses to be relatively small in width. In this respect, it should be noted that the size of a bus does not have to correspond to the number of bits contained in the data transferred by this bus. For example, a data item comprising 16 bits can be split into 4-bit words. Thus we can transfer this data via a bus of a size of 4 bits in the form of a succession of 4 words. Figure 3 illustrates a block B. Block B comprises a processor P and a global addressing circuit AGA. The processor P makes logical requests LRQ. Assuming that block B processes video data, a logic request LRQ may be for example a request for pixels of a certain line in the current image. The global addressing circuit AGA transforms the logical request LRQ into a physical request PRQ. The physical request PRQ defines the physical addresses in the SDRAM collective memory under which the requested data is stored. The PRQ physical requests can have the following form: a starting address, a number of addresses to fetch from this address and possibly a diagram to apply when searching for the data. The schema can be defined as: number of consecutive addresses to read, number of addresses to jump and number of iterations "read and jump". The AGA can be programmable such that translation parameters define the translations of the logical requests LRQ into physical requests PRQ. This allows data storage flexibility in the SDRAM collective memory. Figure 4 illustrates the INT memory interface. The memory interface INT comprises an ARB arbiter, a SIF access interface, a BUF buffer memory device and AGB macro-command addressing circuits. There is an AGB macro-command addressing circuit for each block B. The internal operation of the memory interface INT is generally as follows. Each AGB macro-command addressing circuit cuts a physical request of the block B to which it is associated in macro-commands. A macro command represents a request to access a certain line in the memory. Before a macro command is submitted to the ARB arbiter, the AGB macro addressing circuit checks whether there is sufficient room in the buffer memory device BUF. For this purpose, it first submits the macro-command to the buffer memory device BUF. If the BUF buffer device confirms that there is room to store the number of data defined by the macro-command, the macro-command addressing circuit AGB submits the macro-command to the arbiter ARB. The arbiter ARB collects the macro-commands from the different AGB macro-command addressing circuit and selects a macro-command for sending to the access interface SIF. This selection is done according to an arbitration scheme which is described below. The SIF access interface processes the macro commands from the ARB arbiter in the order of their reception. Thus, the access interface SIF makes access to the collective memory SDRAM, access being defined by the macro-command being processed.

Une macro-commande permet d'accéder à X groupes d'adresses, chaque groupe contenant Y adresses, les groupes d'adresses étant séparés les un des autres de Z mots, X, Y et Z étant des entiers. Une macro-commande contient donc les informations suivantes: - première adresse à accéder; - nombre d'adresses à accéder consécutivement à la première adresse dans un groupe d'adresses (Y-1); - nombre d'adresses à sauter entre deux groupes d'adresses consécutifs (Z); - nombre de groupes d'adresses à accéder en plus du premier groupe (X-1); - type d'accès: lecture ou écriture. A macro-command provides access to X groups of addresses, each group containing Y addresses, the groups of addresses being separated from one another by Z words, X, Y and Z being integers. A macro-command therefore contains the following information: - first address to access; - number of addresses to consecutively access the first address in a group of addresses (Y-1); - number of addresses to jump between two groups of consecutive addresses (Z); - number of groups of addresses to access in addition to the first group (X-1); - access type: read or write.

Un exemple d'une macro-commande au niveau du bit se fait comme suit. On suppose que les données stockées dans la mémoire collective SDRAM sont de 32 bits de large et la mémoire collective SDRAM a une taille maximale de 256 Mbits. Ceci implique qu'une adresse s'exprime sur 23 bits. On suppose de plus que les accès sont limites à une taille maximale de 16 adresses. Une telle limite est préférable du point de vue de latence. Donc X-1 et Y-1 valent 15 au maximum et, par conséquent, peuvent être codé sur 4 bits. Enfin, ligne contient au maximum 512 adresses suivant la configuration de la mémoire collective SDRAM. Par conséquent, le nombre d'adresses à sauter ne peut excéder 511 et donc ce nombre peut être codé sur 9 bits. Les macro-commandes ont donc une taille de 23+2X4+9+1=41 bits. L'adresse peut être codée sur les bits 40 à 18, le type d'accès sur le bit 17, le nombre de mots à lire (Y-1) sur les bits 16 à 13, le nombre de mots à sauter (Z) sur les bits 12 à 4, et le nombre de groupes de mots (X-1) sur les bits 3 à 0. An example of a bit-level macro command is as follows. It is assumed that the data stored in the SDRAM collective memory is 32 bits wide and the SDRAM collective memory has a maximum size of 256 Mbits. This implies that an address is expressed on 23 bits. It is further assumed that access is limited to a maximum size of 16 addresses. Such a limit is preferable from a latency point of view. Thus X-1 and Y-1 are at most 15 and therefore can be 4-bit coded. Finally, line contains at most 512 addresses according to the configuration of the SDRAM collective memory. Therefore, the number of addresses to jump can not exceed 511 and therefore this number can be coded on 9 bits. The macro-commands have a size of 23 + 2X4 + 9 + 1 = 41 bits. The address can be bit-coded 40 to 18, the access type on bit 17, the number of words to read (Y-1) on bits 16 to 13, the number of words to jump (Z) on bits 12 to 4, and the number of groups of words (X-1) on bits 3 to 0.

La Figure 5 illustre une procédure d'accès à la mémoire collective SDRAM en lecture par un certain bloc B. La dimension horizontale représente le temps. La dimension verticale de ce diagramme représente les différents éléments fonctionnels qui entrent en jeu. Le diagramme contient des flèches. Ces flèches représentent des différentes étapes S dans la procédure d'accès à la mémoire d'interface SRAM. Figure 5 illustrates a procedure for accessing the SDRAM collective memory read by a certain block B. The horizontal dimension represents the time. The vertical dimension of this diagram represents the different functional elements that come into play. The diagram contains arrows. These arrows represent different steps S in the procedure for accessing the SRAM interface memory.

S1 = Le processeur P du bloc B concerné soumet une requête logique LRQ au circuit d'adressage global AGA. La requête logique LRQ spécifie un sous-ensemble de données, par exemple, les pixels de luminance d'une ligne, dans un ensemble de données à traiter, par exemple une image. S1 = The processor P of the concerned block B submits a logic request LRQ to the global addressing circuit AGA. The logical request LRQ specifies a subset of data, for example, the luminance pixels of a line, in a set of data to be processed, for example an image.

S2 = Le circuit d'adressage global AGA transforme la requête logique LRQ en requête physique PRQ. S2 = The global addressing circuit AGA transforms the logical request LRQ into a physical request PRQ.

S3 = Le circuit d'adressage global AGA soumet la requête physique PRQ au circuit d'adressage en macro-commandes AGB. S4 = Le circuit d'adressage en macro-commandes AGB transforme la requête physique PRQ en macro-commandes. S3 = The global addressing circuit AGA submits the physical request PRQ to the addressing circuit in macro-commands AGB. S4 = The AGB macro-command addressing circuit transforms the PRQ physical request into macro commands.

S5 = Le circuit d'adressage en macro-commandes AGB soumet la première des macro- commandes dérivées de la requête physique PRQ au dispositif de mémoire tampon BUF. S6 = Le dispositif de mémoire tampon BUF vérifie s'il y a de la place pour stocker le nombre de données spécifiées par la macro-commande. S7 = Le dispositif de mémoire tampon BUF confirme au circuit d'adressage macro- commandes AGB qu'il y a de la place (en anglais: acknowledge). S5 = The AGB macro-command addressing circuit submits the first of the macro-commands derived from the physical request PRQ to the buffer memory device BUF. S6 = The BUF buffer device checks whether there is room to store the number of data specified by the macro command. S7 = BUF buffer device confirms to the AGB macro-command addressing circuit that there is room (in English: acknowledge).

SB = Représente un certain délai. SB = Represents a certain delay.

S9 Le circuit d'adressage en macro-commandes AGB soumet la macro-commande à l'arbitre ARB. S9 The macro-command addressing circuit AGB submits the macro-command to the arbiter ARB.

S10 = L'arbitre ARB traite la macro-commande en tant que demande d'accès la mémoire collective SDRAM selon un schéma d'arbitrage valable pour tous les accès des blocs à la mémoire collective SDRAM (en lecture et en écriture) S11 = L'arbitre ARB soumet la macro-commande à l'interface d'accès SIF Siia =L'arbitre ARB signale au dispositif de mémoire tampon BUF que la macro- commande a été soumise à l'interface d'accès SIF (en anglais: acknowledge). S12= La macro-commande est en attente dans l'interface d'accès SIF qui traite d'abord les macro-commandes précédemment reçues. S13 = L'interface d'accès SIF génère des signaux de contrôle pour la mémoire collective SDRAM à la base de la macro-commande. Ces signaux de contrôle pour effet que les données sous les adresses spécifiées par la macro-commande sont successivement lues. S10 = The referee ARB processes the macro-command as an access request the collective memory SDRAM according to an arbitration scheme valid for all the accesses of the blocks to the collective memory SDRAM (read and write) S11 = L referee ARB submits the macro-command to the access interface SIF Siia = The referee ARB signals to the buffer memory device BUF that the macro-command has been submitted to the access interface SIF (in English: acknowledge ). S12 = The macro command is pending in the SIF access interface which first processes previously received macro commands. S13 = The SIF access interface generates control signals for the SDRAM collective memory at the base of the macro-command. These control signals cause the data under the addresses specified by the macro-command to be successively read.

S14 = Les données successivement lues de la mémoire collective SDRAM sont transférées au dispositif de mémoire tampon BUF. S14 = The successively read data from the SDRAM collective memory is transferred to the buffer memory device BUF.

S15 = Les donnees sont stockées temporairement dans le dispositif de mémoire tampon BUF. S15 = The data is stored temporarily in the BUF buffer device.

S16 = Le dispositif de mémoire tampon BUF transfère les données au processeur P d'une façon sensiblement régulière. S16 = BUF buffer device transfers data to processor P in a substantially regular manner.

étapes S5-S15 sont répétées pour chaque macro-commande suite la requête logique LRQ faite à l'étape S1. Steps S5-S15 are repeated for each macro-command following the logical request LRQ made in step S1.

Les étapes suivantes ne sont pas représentées dans la Figure 5. Suite l'étape S1, le circuit d'adressage global AGA envoie un signal de confirmation (en anglais: acknowledge) au processeur P, le signal indiquant que la requête logique LRQ a été acceptée et sera traitée. En réponse à ce signal de confirmation, le processeur P fait une nouvelle requête logique et la maintient jusqu'à nouvel ordre. Quand le circuit d'adressage en macro-commandes AGB soumet la dernière macro-commande suite à la requête logique LRQ, le traitement de la requête logique LRQ est achevé. Dans ce cas, le circuit d'adressage en macro-commandes AGB envoie un signal de confirmation (en anglais: acknowledge) au circuit d'adressage global AGA signalant au dernier que le traitement de la requête logique LRQ est achevé. En réponse, le circuit d'adressage global AGA commencera le traitement de la nouvelle requête logique LRQ d'une façon similaire au traitement de la requête logique LRQ faite dans l'étape S1. Autrement dit, l'histoire se répète. Les Figures 6a et 6b illustrent un schéma d'arbitrage pour l'arbitre ARB. La Figure 6a représente huit état ST1-ST8 sous forme de cercles. Ces états ST se produisent l'un après l'autre et d'une façon cyclique. Chaque état ST représente une possibilité d'envoi d'une macro-commande à l'interface d'accès SIF. Donc, chaque état représente une possibilité d'un accès mémoire. Chaque état appartient à un certain processeur P. Le processeur P auquel appartient un certain état figure dans le cercle représentant l'état. The following steps are not shown in FIG. 5. Following step S1, the global addressing circuit AGA sends a confirmation signal (in English: acknowledge) to the processor P, the signal indicating that the logical request LRQ has been sent. accepted and will be processed. In response to this confirmation signal, the processor P makes a new logical request and maintains it until further notice. When the macro-command addressing circuit AGB submits the last macro-command following the logical request LRQ, the processing of the logical request LRQ is completed. In this case, the macro-command addressing circuit AGB sends a confirmation signal (in English: acknowledge) to the global addressing circuit AGA signaling to the latter that the processing of the logical request LRQ is completed. In response, the AGA global addressing circuit will begin processing the new logic request LRQ in a manner similar to the processing of the logical request LRQ made in step S1. In other words, history repeats itself. Figures 6a and 6b illustrate an arbitration scheme for the ARB arbiter. Figure 6a shows eight state ST1-ST8 in the form of circles. These ST states occur one after another and cyclically. Each state ST represents a possibility of sending a macro-command to the access interface SIF. So, each state represents a possibility of a memory access. Each state belongs to a certain processor P. The processor P to which a certain state belongs is in the circle representing the state.

La Figure 6b représente le procédé d'arbitrage associé à la Figure 6a. Ce procédé comprend plusieurs étapes SA1-SA8 et est effectué pour chaque état ST dans la Figure 6a. L'étape SA1 est la première étape effectuée après un saut d'état. Dans l'étape SA1 l'arbitre ARB vérifie si une macro-commande soumise par circuit d'adressage en macro-commandes AGB et suite à une requête logique LRQ du processeur P[j] auquel appartient l'état S[i], est en attente. Si une telle macro- commande est en attente, l'étape SA2 suit l'étape Dans l'étape SA2, l'arbitre ARB envoie la macro-commande concernée à l'interface d'accès SIF. Ceci aura pour effet qu'après un certain délai, un accès de la mémoire collective SDRAM pour le processeur P concerné sera effectué tel que défini par la macro-commande. Après l'envoi de la macro-commande, l'arbitre ARB saute vers l'état suivant ce qui implique que le procédé représenté par la Figure 6b se répète. Si, par contre, l'arbitre ARB constate dans l'étape S1 qu'il n'y a pas en attente une macro-commande liée au processeur P auquel appartient l'état S[i], l'étape SA3 suit l'étape SA1. Dans l'étape SA3 l'arbitre ARB vérifie si d'autres macro-commandes sont en attente. S'il n'y a pas d'autres macro-commandes en attente, l'arbitre ARB saute vers l'état suivant et le procédé représenté par la Figure 6b se répète. S'il y a d'autres macro-commandes en attente, l'arbitre ARB effectue l'étape SA4. Dans l'étape SA4, l'arbitre ARB sélectionne une macro-commande selon un schéma de priorité. Chaque macro-commande a un certain niveau de priorité. Le niveau de priorité est déterminé par le processeur P qui est à l'origine de la macro-commande. L'arbitre ARB sélectionne donc la macro-commande ayant le niveau de priorité le plus élevé et envoie cette macro-commande à l'interface d'accès SIF. Après l'envoi de la macro-commande, l'arbitre ARB saute vers l'état suivant ce qui implique que le procédé représenté par la Figure 6b se répète. A l'égard des Figures 6a et 6b il faut noter qu'il n'est pas nécessaire que chaque état appartienne à un processeur P. On pourrait introduire un ou plusieurs états n'appartenant à aucun processeur P, ce qui dire qu l'on pourrait introduire des états libres. Dans le cas d'un état libre, l'arbitre ARB sélectionne une macro-commande qu'à la base du schéma de priorité. Un état libre peut être utile dans le cas où le dispositif de traitement de signaux contient un processeur P dont les contraintes en termes de temps de latence et de bande passante au niveau de l'accès à la mémoire collective SDRAM, sont relativement peu sévères. Dans ce cas, il serait préférable de ne pas attribuer un état à ce processeur P. Pour éviter que ce processeur P souffre d'une pénurie d'accès, on pourra donc introduire des états libres. Le processeur P pourra profiter de ces états libres pour accéder à la mémoire collective SDRAM. Figure 6b shows the arbitration method associated with Figure 6a. This method comprises several SA1-SA8 steps and is performed for each ST state in Figure 6a. Step SA1 is the first step performed after a state jump. In step SA1, the arbiter ARB checks whether a macro-command submitted by AGB macro-command addressing circuit and following a logic request LRQ of the processor P [j] to which the state S [i] belongs, is waiting. If such a macro-command is waiting, the step SA2 follows the step. In the step SA2, the arbiter ARB sends the concerned macro-command to the access interface SIF. This will have the effect that after a certain time, an access of the SDRAM collective memory for the processor P concerned will be performed as defined by the macro-command. After sending the macro-command, the arbiter ARB jumps to the next state which implies that the process represented by Figure 6b is repeated. If, on the other hand, the arbiter ARB finds in the step S1 that there is not pending a macro-command linked to the processor P to which the state S [i] belongs, the step SA3 follows the step SA1. In step SA3 the referee ARB checks if other macro-commands are waiting. If there are no other pending macro-commands, the ARB referee jumps to the next state and the process shown in Figure 6b repeats. If there are other pending macro-commands, the referee ARB performs the step SA4. In step SA4, the arbiter ARB selects a macro-command according to a priority scheme. Each macro-command has a certain level of priority. The priority level is determined by the processor P which is at the origin of the macro-command. The arbitrator ARB therefore selects the macro-command having the highest priority level and sends this macro-command to the access interface SIF. After sending the macro-command, the arbiter ARB jumps to the next state which implies that the process represented by Figure 6b is repeated. With regard to Figures 6a and 6b it should be noted that it is not necessary that each state belongs to a processor P. One could introduce one or more states not belonging to any processor P, which means that we could introduce free states. In the case of a free state, the referee ARB selects a macro-command at the base of the priority scheme. A free state may be useful in the case where the signal processing device contains a processor P whose constraints in terms of latency and bandwidth at the level of access to the collective memory SDRAM are relatively low. In this case, it would be preferable not to assign a state to this processor P. To prevent this processor P suffers from a lack of access, it will be possible to introduce free states. The processor P can take advantage of these free states to access the collective memory SDRAM.

La Figure 7 illustre un exemple de l'interface d'accès SIF. L'interface d'accès SIF comprend une mémoire tampon de macro-commandes FIFO MC, un générateur de colonnes CAGU, un générateur de commandes CGU, un générateur de signaux de contrôle IF_SDRAM, une mémoire tampon de données IF-D. L'interface d'accès SIF fonctionne globalement comme suit. La mémoire tampon de macro-commandes FIFO_MC reçoit les macro-commandes provenant de l'arbitre ARB. Cette mémoire les stocke temporairement et envoie ces macro- commandes vers le générateur de colonnes CAGU dans l'ordre de leur arrivé. Dans le cas où la mémoire tampon de macro-commandes FIFO_MC est pleine, et donc ne peut pas accepter une nouvelle macro-commande, elle signale ceci l'arbitre ARB. Ce signal de l'interface d'accès SIF disant "ma FIFO est pleine" a pour effet que l'arbitre ARB attend d'envoyer la macro-commande couramment sélectionnée jusqu'au moment où la mémoire tampon de macro-commandes FIFO_MC signale qu'elle peut accepter une nouvelle macro-commande. En effet, le signal de l'interface d'accès SIF disant "ma FIFO est pleine" gèle l'arbitre ARB pour un certain temps. Le générateur de colonnes CAGU demande une nouvelle macro- commande de la mémoire tampon de macro-commandes FIFO_MC quand les accès mémoires selon la macro-commande précédente ont été effectués. Le générateur de colonnes CAGU en combinaison avec le générateur de commandes CGU traduisent, en effet, la macro-commande en une série d'adresses. Une adresse de la mémoire collective SDRAM est définie par le numéro d'un banc (en anglais: bank) de la mémoire collective SDRAM, le numéro d'une ligne et le numéro d'une colonne. II a déjà été mentionné qu'une macro-commande concerne un accès d'une seule ligne de la mémoire d'interface SRAM ce qui implique automatiquement que l'accès a lieu dans un seul banc. Donc, il suffit que le générateur de colonnes CAGU génère une série de colonnes à la base de la macro-commande pour définir une série d'adresses conformément à la macro-commande. Une implémentation du générateur de colonnes CAGU peut, par exemple, comprendre quelques compteurs et quelques circuits logiques. Dans une telle implémentation, le contenu d'une macro-commande sert à programmer les compteurs. Le générateur de commandes CGU reçoit successivement un autre numéro de colonne de la mémoire collective SDRAM. Le générateur de commandes CGU reçoit en outre de la mémoire tampon de macro-commandes FIFO_MC le numéro du banc et le numéro de la ligne des adresses telles que définies par la macro-commande. Ces informations permettent au générateur de colonnes CAGU de définir une succession de commandes d'accès à la mémoire collective SDRAM, chaque commande définissant une seule adresse. En outre le générateur de commandes CGU génère des commandes nécessaires pour mettre la mémoire collective SDRAM dans un bon état pour permettre des accès tels que définis par les macro-commandes. Ces commandes concernent des procédés propres à la mémoire collective SDRAM tel que pre-charge et activation. En outre, le générateur de commandes CGU fait en sorte que la mémoire collective SDRAM est régulièrement rafraîchie et génère les commandes nécessaires pour effectuer ces rafraîchissements. Le générateur de signaux de contrôle IF SDRAM génère des signaux de contrôle à la base des commandes reçues du générateur de commandes CGU. Par exemple, la générateur de signaux de contrôle IF _SDRAM génère des signaux connus sous les abréviations RAS, CAS. Le générateur de signaux de contrôle IF SDRAM fait en sorte que dans une suite de signaux de contrôle, certains délais propres à la mémoire collective SDRAM soient respectés. Ces délais peuvent varier en fonction du type de la mémoire collective SDRAM utilisée. Donc, le générateur de signaux de contrôle IF SDRAM est spécifique pour le type de la mémoire collective SDRAM utilise. Si on désire utiliser une mémoire collective SDRAM d'un autre type il suffirait de modifier, voire reprogrammer, le générateur de signaux de contrôle IF_SDRAM. Les autres éléments de l'interface d'accès ne nécessiteraient en principe pas de modifications. La mémoire tampon de données IF_D sert, en cas de lecture, à transférer les données de la mémoire collective SDRAM au dispositif de mémoire tampon BUF illustré dans la Figure 4 et, en cas d'écriture, à transférer les données du dispositif de mémoire tampon BUF vers la mémoire collective SDRAM. Pour cela, la mémoire tampon de données IF_D effectue une synchronisation des données provenant de la mémoire collective SDRAM (lecture) où fournies à la mémoire collective SDRAM (écriture). En outre, la mémoire tampon de données 'IF _D constitue une FIFO d'une profondeur égale à l'unité. Cela veut dire que si un certain coup d'horloge fait qu'une donnée de la mémoire collective SDRAM est lue, cette donnée sera transférée vers le dispositif de mémoire tampon BUF au coup d'horloge suivant. L'inverse s'applique en cas d'écriture. La Figure 8 illustre un exemple du dispositif de mémoire tampon BUF faisant partie de l'interface mémoire INT illustrée dans la Figure 4. Le dispositif de mémoire tampon BUF comprend un dispositif de mémoire tampon pour lecture BUFR, ainsi qu'un dispositif de mémoire tampon pour écriture BUFW et une mémoire tampon pour signaux de confirmation FIFO_ACK. Le dispositif de mémoire tampon pour lecture BUFR et le dispositif de mémoire tampon pour écriture BUFW sont reliés à la mémoire collective SDRAM via l'interface d'accès SIF et le bus collectif BM tel qu'illustré dans la Figure 1. Le dispositif de mémoire tampon pour lecture BUFR est relié aux blocs 131, B2 et B3 via les bus privé de lecture BBR1, BBR2 et BBR3, respectivement. Le dispositif de mémoire tampon pour écriture BUFW est relié aux blocs 131, B2 et B3 via les bus privé d'écriture BBW1, BBW2 et BBW3, respectivement. La mémoire tampon pour signaux de confirmation FIFO ACK est reliée à l'arbitre ARB. Le dispositif de mémoire tampon BUF fonctionne globalement comme suit. Le dispositif de mémoire tampon pour lecture BUFR stocke temporairement les données provenant de la mémoire collective SDRAM, tandis que le dispositif de mémoire tampon pour écriture BUFW stocke les données provenant des différents blocs B et écrire dans la mémoire collective SDRAM. La mémoire tampon pour signaux de confirmation FIFO ACK reçoit les signaux de confirmation provenant de l'arbitre ARB. Un tel signal indique que l'arbitre ARB a envoyé une macro-commande à l'interface d'acces SIF. La mémoire tampon pour signaux de confirmation FIFO_ a la même profondeur que la mémoire tampon de macro-commandes FIFO_MC de l'interface d'accès SIF illustrée dans la Figure 7. Par conséquent, quand une macro-commande sort la mémoire tampon de macro-commandes FIFO_MC, ce qui a pour effet qu'un accès mémoire se déroule selon la macro-commande, le signal de confirmation correspondant à cette macro-commande sort de la mémoire tampon pour signaux de confirmation FIFO ACK. Ce signal indique si l'accès concerné est un accès en lecture ou un accès en écriture. Dans le premier cas, le dispositif de mémoire tampon pour lecture BUFR sera activé pour recevoir des données depuis la mémoire collective SDRAM, tandis que dans le dernier cas le dispositif de mémoire tampon pour écriture BUFW sera activé pour envoyer des données vers la mémoire collective SDRAM. Le signal de confirmation fourni par la mémoire tampon pour signaux de confirmation FIFO ACK indique en outre le nombre de données impliqué dans l'accès tel que défini par la macro-commande. Cette indication sert au dispositif de mémoire tampon BUF pour faire la gestion interne "où stocker les données ou d'où prendre les données?" en cas de lecture ou écriture, respectivement. La Figure 9 illustre un exemple du dispositif de mémoire tampon pour lecture BUFR. Le dispositif de mémoire tampon pour lecture BUFR comprend une mémoire tampon d'entrée IB, une mémoire d'interface SRAM, un ensemble de plusieurs mémoires tampon de sortie OB, un ensemble de circuits de contrôle CON et un arbitre d'accès à la mémoire d'interface ARBBR. La mémoire tampon d'entrée IB est relie à la mémoire collective SDRAM via l'interface d'accès SIF déjà montré dans la Figure 4. Les mémoires tampon de sortie OB1,OB2 et 0B3 sont reliées aux processeurs P1, P2 et P3 via les bus privés de lecture BBR1, BBR2 et BBR3, respectivement, ces derniers éléments étant montrés dans les Figures 2 et 3. Les circuits de contrôle CON1,CON2 et CON3 sont reliées aux circuit d'adressage en macro-commandes AGB1, au circuit d'adressage en macro-commandes AGB2 et au circuit d'adressage en macro-commandes AGB3, respectivement, ainsi qu'à l'interface d'accès SIF. Le dispositif de mémoire tampon pour lecture BUFR fonctionne comme suit. Les données reçues depuis la mémoire collective SDRAM ont une largeur de N bits, N étant un entier, et arrivent à une fréquence F. La mémoire d'interface SRAM a une largeur de 2N bits, une adresse peut donc contenir 2N bits, et fonctionne à la fréquence F. La mémoire tampon d'entrée I13 forme des couples de deux données consécutives provenant de la mémoire collective SDRAM, et écrit ces couples dans la mémoire d'interface SRAM. II faut deux cycles d'horloge pour former un couple. En supposant que toutes les données successives reçues depuis la mémoire collective SDRAM puissent se mettre en couple, un accès en écriture à la mémoire d'interface SRAM aura lieu tous les deux cycles d'horloge. Un accès à une seule adresse ne prend qu'un seul cycle d'horloge. Donc, entre deux accès en écriture on dispose d'un cycle d'horloge pour accéder à la mémoire d'interface SRAM en lecture à fin de transférer les données lues de la mémoire collective SDRAM vers les blocs B. Donc, en principe, les accès à la mémoire d'interface SRAM en écriture et en les accès en lecture peuvent avoir lieu en alternance et un par un. L'accès à la mémoire d'interface SRAM sera expliqué plus en détail dans la suite. Figure 7 illustrates an example of the SIF access interface. The SIF access interface includes a FIFO MC macro buffer, a CAGU column generator, a CGU command generator, an IF_SDRAM control signal generator, an IF-D data buffer. The SIF access interface operates globally as follows. The FIFO_MC macro command buffer receives macro commands from the ARB arbiter. This memory temporarily stores them and sends these macro commands to the CAGU column generator in the order of their arrival. In the case where the FIFO_MC macro-buffer is full, and therefore can not accept a new macro-command, it signals this arb arbitrator. This signal of the access interface SIF saying "my FIFO is full" has the effect that the referee ARB is waiting to send the currently selected macro-command until the macro-command buffer memory FIFO_MC indicates that it can accept a new macro-command. Indeed, the signal of the access interface SIF saying "my FIFO is full" freezes the referee ARB for a certain time. The CAGU column generator requests a new macro-command of the FIFO_MC macro-command buffer when the memory accesses according to the preceding macro-command have been made. The CAGU column generator in combination with the CGU command generator translate the macro-command into a series of addresses. An address of the SDRAM collective memory is defined by the bank number (in English: bank) of the SDRAM collective memory, the number of a line and the number of a column. It has already been mentioned that a macro-control concerns access of a single line of the SRAM interface memory, which automatically implies that access takes place in a single bank. Therefore, it is sufficient for the CAGU column generator to generate a series of columns at the base of the macro command to define a series of addresses according to the macro command. An implementation of the CAGU column generator may, for example, include some counters and some logic circuits. In such an implementation, the contents of a macro-command is used to program the counters. The command generator CGU successively receives another column number of the SDRAM collective memory. The command generator CGU also receives from the FIFO_MC macro-command buffer the number of the bank and the number of the line of addresses as defined by the macro-command. This information enables the CAGU column generator to define a succession of access commands to the SDRAM collective memory, each command defining a single address. In addition, the command generator CGU generates commands necessary to put the collective memory SDRAM in a good state to allow access as defined by the macro-commands. These commands concern processes specific to the SDRAM collective memory such as pre-load and activation. In addition, the CGU command generator ensures that the SDRAM collective memory is regularly refreshed and generates the commands necessary to perform these refreshments. The IF SDRAM control signal generator generates control signals based on the commands received from the command generator CGU. For example, the control signal generator IF _SDRAM generates signals known under the abbreviations RAS, CAS. The IF SDRAM control signal generator ensures that in a sequence of control signals, certain delays specific to the SDRAM collective memory are respected. These times may vary depending on the type of SDRAM used. Therefore, the IF SDRAM control signal generator is specific for the type of collective memory SDRAM uses. If one wishes to use a collective memory SDRAM of another type it would be enough to modify, even to reprogram, the generator of control signals IF_SDRAM. The other elements of the access interface would in principle not require modifications. The data buffer IF_D serves, in the event of reading, to transfer the data from the collective memory SDRAM to the buffer memory device BUF illustrated in FIG. 4 and, in case of writing, to transfer the data of the buffer device BUF to the SDRAM collective memory. For this, the data buffer IF_D synchronizes the data from the collective memory SDRAM (read) where provided to the collective memory SDRAM (write). In addition, the data buffer 'IF _D constitutes a FIFO with a depth equal to unity. This means that if a certain clock pulse makes a data from the SDRAM collective memory read, this data will be transferred to the buffer memory device BUF at the next clock stroke. The opposite applies in case of writing. FIG. 8 illustrates an example of the BUF buffer device forming part of the INT memory interface illustrated in FIG. 4. The BUF buffer device comprises a BUFR buffer memory device, as well as a buffer memory device. for writing BUFW and a buffer for confirmation signals FIFO_ACK. The read buffer memory device BUFR and the write buffer memory device BUFW are connected to the collective memory SDRAM via the access interface SIF and the collective bus BM as illustrated in FIG. 1. The memory device Buffer for reading BUFR is connected to blocks 131, B2 and B3 via the private reading buses BBR1, BBR2 and BBR3, respectively. The BUFW write buffer device is connected to the blocks 131, B2 and B3 via the private write buses BBW1, BBW2 and BBW3, respectively. The FIFO confirmation signal buffer ACK is connected to the arbiter ARB. The BUF buffer device operates globally as follows. The BUFR read buffer memory temporarily stores the data from the SDRAM collective memory, while the BUFW write buffer device stores the data from the different B blocks and write to the SDRAM collective memory. The FIFO ACK confirmation signal buffer receives the confirmation signals from the ARB arbiter. Such a signal indicates that the arbiter ARB has sent a macro-command to the SIF access interface. The buffer for FIFO_ confirming signals has the same depth as the FIFO_MC macro-command buffer of the SIF access interface shown in Figure 7. Therefore, when a macro-command outputs the macro buffer, FIFO_MC commands, which has the effect that a memory access proceeds according to the macro-command, the confirmation signal corresponding to this macro-command exits the FIFO ACK confirmation signal buffer. This signal indicates whether the access concerned is read access or write access. In the first case, the BUFR read buffer will be enabled to receive data from the SDRAM collective memory, while in the latter case the BUFW write buffer will be enabled to send data to the SDRAM collective memory. . The confirmation signal provided by the FIFO ACK confirmation signal buffer further indicates the number of data involved in the access as defined by the macro command. This indication is used by the BUF buffer device to do the internal management "where to store the data or where to take the data?" in case of reading or writing, respectively. Figure 9 illustrates an example of the BUFR read buffer device. The read buffer memory device BUFR comprises an input buffer memory IB, an SRAM interface memory, a set of several OB output buffer memories, a control circuit set CON and a memory access arbitrator. ARBBR interface. The input buffer memory IB is connected to the collective memory SDRAM via the access interface SIF already shown in FIG. 4. The output buffer memories OB1, OB2 and OB3 are connected to the processors P1, P2 and P3 via the BBR1, BBR2 and BBR3 private reading buses, respectively, the latter elements being shown in FIGS. 2 and 3. The control circuits CON1, CON2 and CON3 are connected to the macro-control addressing circuits AGB1, to the circuit of FIG. AGB2 macro-command addressing and the AGB3 macro-command addressing circuit, respectively, as well as the SIF access interface. The BUFR read buffer device operates as follows. The data received from the SDRAM collective memory have a width of N bits, N being an integer, and arrive at a frequency F. The SRAM interface memory has a width of 2N bits, an address can therefore contain 2N bits, and operates at the frequency F. The input buffer I13 forms pairs of two consecutive data from the SDRAM collective memory, and writes these pairs in the SRAM interface memory. It takes two clock cycles to form a couple. Assuming that all successive data received from the SDRAM collective memory can couple, write access to the SRAM interface memory will occur every two clock cycles. Access to a single address takes only one clock cycle. Thus, between two write accesses, a clock cycle is available to access the read SRAM interface memory in order to transfer the data read from the SDRAM collective memory to the B blocks. Access to the write SRAM memory and read accesses can take place alternately and one by one. Access to the SRAM interface memory will be explained in more detail later.

La mémoire d'interface SRAM est en effet découpée en trois zones Z1, Z2 et Z3. Les zones Z1, Z2 et Z3 contiennent les données destinées pour les processeur P1, P2 et P3, respectivement. Les données provenant de la mémoire collective SDRAM sont écrites par l'intermédiaire de 1'I13 dans la zone Z1, Z2 ou Z3 en fonction du processeur P qui est à l'origine de la macro-commande en cours. Les données contenues dans les zones Z1, Z2 et Z3 sont transférées dans les mémoires tampon de sortie 0B1, O132 et<B>083,</B> respectivement, d'une façon sensiblement régulière et selon un schéma plus ou moins fixe. Une mémoire tampon de sortie OB découpe, en effet, une donnée en plusieurs morceaux et envoie la donnée au processeur P concerné, morceau par morceau. Par exemple, une mémoire tampon de sortie OB peut découper une donnée de 16 bits en 4 morceaux de 4 bits. Donc, au lieu d'envoyer la donnée dans un seul coup d'horloge, ce qui nécessite un bus d'une taille de 16 bits, on envoie la donnée morceau par morceau en 4 coups d'horloge ce qui nécessite un bus d'une taille de 4 bits seulement. Les circuits de contrôle CON1, CON2 et CON3 gèrent les zones Z1, Z2 et Z3 respectivement. A cet effet, chaque circuit de contrôle CON gère un ensemble de paramètres. Ces paramètres comprennent un pointeur d'écriture, un pointeur de lecture et une valeur de remplissage de la zone. Le pointeur d'écriture définit l'adresse dans laquelle une donnée provenant de la mémoire collective SDRAM sera écrite. Le pointeur de lecture définit l'adresse de la donnée devant être transférée vers la mémoire tampon de sortie OB concernée. La valeur de remplissage indique le nombre d'adresses encore disponibles pour stocker des données provenant de la mémoire collective SDRAM. Les circuits de contrôle CON1, CON2 et CON3 gèrent aussi les mémoires tampons de sortie 0B1, 0B2 et , respectivement. Pour cela chaque circuit de contrôle CON gère un paramètre représentant l'état de remplissage de 1'0B qui lui appartient. La gestion effectuée par un circuit de contrôle CON sera maintenant décrite en supposant qu'un accès à la mémoire collective SDRAM a lieu tel qu'illustré dans la Figure 5. Dans l'étape S5, le circuit d'adressage en macro-commandes AGB soumet une macro-commande au dispositif de mémoire tampon BUF. Cette macro- commande est traitée par le circuit de contrôle CON appartenant au processeur P qui était à l'origine de la macro-commande. Le circuit de contrôle CON compare le nombre de données défini par la macro-commande avec la valeur de remplissage. Ainsi, le circuit de contrôle CON vérifie s'il y a suffisamment de place dans la zone Z concernée pour stocker les données voulues. S'il y a suffisamment de place, le circuit de contrôle CON le signale au circuit d'adressage en macro-commandes AGB et, en plus, met jour le paramètre de remplissage. Ceci veut dire qu'il considère que les données sont déjà stockées dans la zone concernée tandis que ceci doit encore se produire. La mise jour du paramètre de remplissage peut donc être considéré comme une réservation dans la zone concernée. Ce qui se passe pendant l'étape S12 tel qu'illustré dans la Figure 5 va maintenant être décrit. Cette étape S12 représente une lecture de la mémoire collective SDRAM selon macro-commande concernée. II a déjà été expliqué qu'au moment où l'interface d'accès SIF commence à traiter la macro-commande et donc commence à faire la lecture, le signal de confirmation associé à la macro-commande concernée sort de la mémoire tampon pour signaux de confirmation FIFO ACK illustré dans la Figure 7. Ce signal de confirmation indique qu'il s'agit d'un accès en écriture et, en plus, ce signal indique le processeur P qui était à l'origine de la macro-commande. Ainsi, le circuit de contrôle CON appartenant à ce processeur P sait qu'il doit fournir les adresses sous lesquelles les données doivent être stockées dans la mémoire collective SDRAM. En plus, le circuit de contrôle CON reçoit une indication du nombre de données impliqué dans l'accès selon la macro-commande, cette indication faisant partie du signal de confirmation. Après chaque écriture d'un couple de données provenant de la mémoire collective SDRAM dans la zone Z concernée, le circuit de contrôle CON incrémente le pointeur d'écriture. En plus, il met à jour la valeur de remplissage. Le circuit de contrôle CON continue à faire ceci jusqu'à ce que l'accès en lecture de la mémoire collective SDRAM tel que défini par la macro-commande ait été achevé. Le circuit de contrôle CON détecte la fin de l'accès grâce au nombre de données impliqué dans l'acces, ce nombre lui étant indiqué par le signal de confirmation, et une comptabilisation des données écrites dans la mémoire d'interface SRAM. The SRAM interface memory is indeed divided into three zones Z1, Z2 and Z3. The zones Z1, Z2 and Z3 contain the data intended for the processors P1, P2 and P3, respectively. The data from the SDRAM collective memory is written via the I13 in the zone Z1, Z2 or Z3 as a function of the processor P which is at the origin of the current macro-command. The data contained in the zones Z1, Z2 and Z3 are transferred into the output buffer memories 0B1, O132 and 083, respectively, in a substantially regular manner and in a more or less fixed pattern. An output buffer OB in fact cuts data into several pieces and sends the data to the processor P concerned, piece by piece. For example, an output buffer OB can cut 16-bit data into 4 4-bit pieces. So, instead of sending the data in a single clock stroke, which requires a bus of a size of 16 bits, we send the data piece by piece in 4 clock ticks which requires a bus of a size of only 4 bits. The control circuits CON1, CON2 and CON3 manage the zones Z1, Z2 and Z3 respectively. For this purpose, each control circuit CON manages a set of parameters. These parameters include a write pointer, a read pointer, and a fill value for the zone. The write pointer defines the address in which data from the SDRAM collective memory will be written. The read pointer defines the address of the data to be transferred to the concerned OB output buffer. The fill value indicates the number of addresses still available for storing data from the SDRAM collective memory. The control circuits CON1, CON2 and CON3 also manage the output buffers 0B1, 0B2 and, respectively. For this purpose each control circuit CON manages a parameter representing the filling state of 1'0B which belongs to it. The management performed by a control circuit CON will now be described assuming that access to the collective memory SDRAM takes place as illustrated in FIG. 5. In step S5, the addressing circuit in AGB macro-commands submits a macro-command to the BUF buffer device. This macro-command is processed by the control circuit CON belonging to the processor P which was at the origin of the macro-command. The control circuit CON compares the number of data defined by the macro-command with the filling value. Thus, the control circuit CON checks whether there is sufficient space in the area Z concerned to store the desired data. If there is enough room, the control circuit CON signals it to the AGB macro addressing circuit and, in addition, updates the filling parameter. This means that it considers that the data is already stored in the relevant area while this still needs to happen. The update of the filling parameter can therefore be considered as a reservation in the zone concerned. What happens during step S12 as illustrated in Figure 5 will now be described. This step S12 represents a reading of the SDRAM collective memory according to the macro-command concerned. It has already been explained that at the moment when the access interface SIF begins to process the macro-command and thus begins to read, the confirmation signal associated with the macro-command concerned leaves the buffer for signals. The confirmation signal indicates that it is a write access and, in addition, this signal indicates the processor P which was at the origin of the macro-command. Thus, the control circuit CON belonging to this processor P knows that it must provide the addresses under which the data must be stored in the collective memory SDRAM. In addition, the control circuit CON receives an indication of the number of data involved in the access according to the macro-command, this indication being part of the confirmation signal. After each writing of a data pair from the SDRAM collective memory in the zone Z concerned, the control circuit CON increments the write pointer. In addition, it updates the fill value. The control circuit CON continues to do this until the read access of the collective memory SDRAM as defined by the macro-command has been completed. The control circuit CON detects the end of the access thanks to the number of data involved in the access, this number being indicated to it by the confirmation signal, and an accounting of the data written in the SRAM interface memory.

Après chaque lecture d'un couple de données d'une certaine zone Z, le circuit de contrôle CON qui gère cette zone incrémente le pointeur de lecture. En plus, il à jour la valeur de remplissage. After each reading of a data pair of a certain zone Z, the control circuit CON which manages this zone increments the reading pointer. In addition, it updates the filling value.

L'arbitre d'accès à la mémoire d'interface ARBBR gère l'accès à la mémoire d'interface SRAM. II y a différents types d'accès: (1) accès par l'interface d'accès SIF pour écrire des données provenant de la mémoire collective SDRAM dans la mémoire d'interface SRAM, (2) des accès par la mémoire tampon de sortie OB1, (3) des accès par la mémoire tampon de sortie OB2 et (4) des accès par la mémoire tampon de sortie OB3. Ces trois derniers accès servent à transférer des données contenues dans la mémoire d'interface SRAM vers les processeurs P1, P2 et P3 respectivement. The ARBBR interface memory access arbitrator manages access to the SRAM interface memory. There are different types of access: (1) access by the SIF access interface to write data from the SDRAM collective memory into the SRAM interface memory, (2) access by the output buffer OB1, (3) accesses by the output buffer OB2 and (4) accesses by the output buffer OB3. These last three ports are used to transfer data contained in the SRAM interface memory to the processors P1, P2 and P3 respectively.

Chaque accès à la mémoire d'interface SRAM se fait suite à une requête soumise à l'arbitre d'accès à la mémoire d'interface ARBBR. L'arbitre d'accès la mémoire d'interface ARBBR sélectionne parmi les requêtes en cours, la requête ayant la priorité la plus élevée. Les requêtes pour accès en écriture (accès par l'interface d'accès SIF) ont la priorité maximale. Grâce au fait qu'on écrit des couples de données comme expliqué dans ce qui précède, une telle requête ne se produit en général qu'une fois tous les deux cycles d'horloge. Une écriture ne prend qu'un cycle d'horloge. Donc, il y aura suffisamment d'opportunités pour accéder à la mémoire d'interface SRAM en lecture afin de transférer les données vers les différents processeurs P. Each access to the SRAM interface memory is made following a request submitted to the arbitrator to access the ARBBR interface memory. The access arbitrator ARBBR interface memory selects among the current requests, the request having the highest priority. The requests for write access (access via the SIF access interface) have the highest priority. Owing to the fact that couples of data are written as explained in the foregoing, such a request generally occurs only once every two clock cycles. A write takes only one clock cycle. Thus, there will be enough opportunity to access read SRAM memory in order to transfer the data to the different processors P.

Les requêtes d'accès en lecture par une certaine mémoire tampon de sortie OB se font en fonction de la taille du bus privé de lecture BBR entre l'OB et le bloc B. Par exemple, supposons que la taille du bus est N/2 bits. Ceci implique qu'on peut transférer un morceau de N/2 bits de l'OB vers le bloc B à chaque cycle d'horloge. Un lecture de la mémoire d'interface SRAM se fait par couple de données. Un couple de données comprend 2N bits. II faut donc 4 cycles d'horloge pour envoyer un couple de données vers le bloc B. Le transfert d'un couple de données implique une requête d'accès à la mémoire d'interface SRAM en lecture. Donc, selon l'exemple, l'OB fera une requête d'accès tous les 4 cycles d'horloge. Cet exemple montre que les largeurs des bus vers les blocs<B>B</B> conditionne la fréquence des requêtes d'accès des diverses mémoires tampon de sortie OB. Si la taille du bus privé de lecture BBR égale bit, il y a une requête d'accès tout les 8 cycle d'horloge. Read access requests by a certain output buffer OB are based on the size of the private BBR read bus between the OB and the block B. For example, suppose the bus size is N / 2 bits. This implies that one piece of N / 2 bits can be transferred from the OB to the B block at each clock cycle. A reading of the SRAM interface memory is done by data pair. A pair of data includes 2N bits. It is therefore necessary 4 clock cycles to send a data pair to the block B. The transfer of a pair of data involves a request to access the SRAM read interface memory. So, according to the example, the OB will make an access request every 4 clock cycles. This example shows that the bus widths to the <B> B </ B> blocks determines the frequency of the access requests of the various output buffer memories OB. If the size of the private BBR read bus equals bit, there is an access request every 8 clock cycles.

La description suivante concerne un exemple d'arbitrage de l'accès à la mémoire d'interface SRAM. Il est supposé que la taille du bus privé de lecture BBR1 égale N/2 bits et que la taille des bus privé de lecture BBR2 et celle du bus privé de lecture BBR3 égale N/4 bits. Les accès de l'interface d'accès SIF sont les plus prioritaires, viennent ensuite les accès des mémoire tampon de sortie 0B1, 0B2, et dans l'ordre de priorité. Finalement, il est supposé que tout les types d'accès (SIF, ,0B3) font une requête en même temps dans le premier cycle d'horloge. Cycle 1 : Tout le monde fait sa requête en même temps; Requêtes en cours : l'interface d'accès SIF, les mémoires tampon de sortie OB1, et , Cycle 2 : l'interface d'accès SIF étant la plus prioritaire, a la main et baisse sa requete; mémoires tampon de sortie OB1,OB2 et OB3 maintiennent leurs requêtes; Requêtes en cours : les mémoire tampon de sortie OB1, OB2 et 0B3; Cycle 3 : la mémoire tampon de sortie OB1, qui est le second plus prioritaire, a la main baisse sa requête; l'interface d'accès SIF fait à nouveau une requête; Requêtes en cours : interface d'accès SIF, les mémoires tampon de sortie 0B2 et , Cycle 4 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requete; les mémoires tampon de sortie 0B2 et 0B3 maintiennent leurs requêtes; Requêtes en cours : les mémoire tampon de sortie 0B2 et 0133; Cycle 5 : la mémoire tampon de sortie OB2, qui est le troisième plus prioritaire, a main et baisse sa requête; l'interface d'accès SIF fait à nouveau une requête; Requêtes en cours : l'interface d'accès SIF et la mémoire tampon de sortie 0133; Cycle 6 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; mémoire tampon de sortie 0B1 va épuiser son tampon et refait une requête; Requêtes en cours :l'interface d'accès SIF, les mémoires tampon de sortie OB1 et 0133; Cycle 7 : la mémoire tampon de sortie 0B1, qui est le second plus prioritaire, a la main baisse sa requête; l'interface d'accès SIF fait à nouveau une requête; Requêtes en cours : l'interface d'accès SIF, la mémoire tampon de sortie OB3; Cycle 8 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requete; la mémoire tampon de sortie OB3 maintient sa requête; Requête en cours : la mémoire tampon de sortie 0133; Cycle 9 : la mémoire tampon de sortie 0B3, qui est le quatrième plus prioritaire, a main et baisse sa requête; l'interface d'accès SIF fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 10 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon de sortie OB1 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0131; Cycle 11 : la mémoire tampon de sortie OB1, qui est le second plus prioritaire, a la main et baisse sa requête; l' interface d'accès fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 12 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon sortie OB2 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0B2; Cycle 13 : la mémoire tampon de sortie OB2 étant troisième plus prioritaire a la main et baisse sa requête; l'interface d'accès fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 14 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon sortie 0B1 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0B1; Cycle 15 : la mémoire tampon de sortie OB1 étant second plus prioritaire a la main et baisse sa requête; l'interface d'accès fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 16 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse requête, la mémoire tampon sortie OB3 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0B3; Cycle 17 : la mémoire tampon de sortie OB3 étant quatrième plus prioritaire, la main et baisse sa requête; l'interface d'accès fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 18 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon de sortie 0B1 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0131; Cycle 19 : la mémoire tampon de sortie OB1 second plus prioritaire a la main et baisse sa requête; l'interface d'accès fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 20 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon de sortie OB2 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0132; Cycle 21 : la mémoire tampon de sortie OB2 étant troisième plus prioritaire a la main baisse sa requête; l'interface d'accès fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 22 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon sortie OB1 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0131; Cycle 23 : la mémoire tampon de sortie<B>081</B> second plus prioritaire a la main et baisse sa requête; l'interface d'accès SIF fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 24 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon de sortie OB3 va épuiser son tampon et refait une requête; Requête en cours : mémoire tampon de sortie 0133; Cycle 25 : la mémoire tampon de sortie OB3 étant quatrième plus prioritaire a la main et baisse sa requête; l'interface d'accès fait à nouveau une requête; Requête en cours : l'interface d'accès SIF; Cycle 26 : l'interface d'accès SIF étant la plus prioritaire a la main et baisse sa requête; la mémoire tampon sortie 0B1 va épuiser son tampon et refait une requête; Requête en cours : la mémoire tampon de sortie 0131; Etc. Les accès dans l'exemple ci-dessus ont une périodicité de 8 cycles. C'est comme si l'arbitrage était assuré par une machine circulaire à huit état. Ce résultat dû au fait que dans l'exemple il est supposé que tous les blocs B consomment leur données d'une façon régulière. En outre, il est supposé que les requêtes d'accès par l'interface d'accès SIF se font d'une façon régulière une fois tous les deux cycles d.'horloge. Ces suppositions ne sont pas nécessairement correctes dans la pratique. Pour cette raison, il est préférable de gérer les accès à la mémoire d'interface SRAM à l'aide d'un arbitre d'un schéma de priorité au lieu d'une machine circulaire. L'arbitre permet une certaine flexibilité au niveau de l'accès à la mémoire d'interface SRAM et, par conséquent, il permet une meilleure utilisation de la bande passante disponible pour le transfert données. Ce qui suit est un exemple d'exception la règle selon laquelle il n'y a qu'un accès en écriture à la mémoire d'interface SRAM (= accès par l'interface d'accès SIF) tous les deux cycles d'horloge. L'exception se présente lorsqu'il y a un accès à la mémoire collective SDRAM suite à une macro-commande qui implique un nombre de données impair. Toutes les données de cet accès sauf la dernière, trouvent un partenaire et ainsi forment des couples pour l'écriture dans la mémoire d'interface SRAM. La dernière donnée se trouve seule. On ne peut pas prendre la donnée qui suit pour faire un couple car cette donnée est la première donnée d'un autre accès et donc elle est destinée à un autre processeur P. Par conséquent, cette première donnée d'un autre accès doit être stockée dans une autre zone Z de la mémoire d'interface SRAM. Donc, suite à l'arrivée dans l'IB de la dernière donnée de l'accès comprenant un nombre de données impair, cette donnée est écrite dans la mémoire d'interface SRAM sans partenaire dans le cycle d'horloge qui suit l'écriture du dernière couple de données compris dans l'accès. Par conséquent, il y aura deux accès d'écriture de suite sans pause d'un cycle d'horloge qui autrement permettrait un accès en lecture entre deux accès en écriture. Les Figures 5 et 9 concernent le fonctionnement de l'interface mémoire INT en lecture. Le fonctionnement en écriture et sensiblement symétrique. Ceci implique que le dispositif de mémoire tampon pour écriture BUFW et similaire au dispositif de mémoire tampon pour lecture BUFR décrit précédemment. Donc, le dispositif de mémoire tampon pour écriture BUFW comprend une mémoire d'interface repartie en zones, chaque zone appartenant à un bloc B différent. Les blocs B peuvent envoyer des données à écrire dans la mémoire collective avant ou après la macro- commande qui indique ou ces données doivent être stockées. En effet, une zone va se remplir dès que le bloc B auquel la zone appartient envoie des données destinées à être stockées dans la mémoire collective. Ce remplissage peut, par exemple, continuer jusqu'à ce que la zone soit complètement remplie de données. Dans ce cas, l'interface mémoire INT indiquera au bloc B concerné qu'il n'y a plus de place pour stocker de nouvelles données. Ceci empêchera le bloc B d'envoyer de nouvelles données jusqu'à ce que de la place soit libérée dans la zone concernée. Un transfert de données de la zone Z vers la mémoire collective fait que de la place est libérée. Une telle vidange pourra intervenir dès qu'une macro-commande sera acceptée par l'arbitre ARB et traitée par l'interface d'accès SIF. II est également possible qu'une macro-commande soit émise avant que le bloc B concerné ait envoyé les données. De toute façon, aucune macro-commande ne sera présentée à l'arbitre ARB tant que le dispositif de mémoire tampon pour écriture BUFW n'indiquera pas un niveau de remplissage suffisant de la zone concernée. The following description is an example of arbitration of access to the SRAM interface memory. It is assumed that the size of the private BBR1 read bus is equal to N / 2 bits and that the size of the private BBR2 read bus and that of the BBR3 private read bus is N / 4 bit. The accesses of the access interface SIF are the highest priority, then come the accesses of the output buffer 0B1, 0B2, and in the order of priority. Finally, it is assumed that all access types (SIF,, 0B3) make a request at the same time in the first clock cycle. Cycle 1: Everyone makes his request at the same time; Queries in progress: SIF access interface, output buffers OB1, and, Cycle 2: the SIF access interface is the highest priority, by hand and lowers its request; output buffers OB1, OB2 and OB3 maintain their requests; Queries in progress: the output buffer OB1, OB2 and 0B3; Cycle 3: the output buffer OB1, which is the second highest priority, has the hand drop its request; the SIF access interface makes a request again; Queries in progress: SIF access interface, output buffers 0B2 and, Cycle 4: the SIF access interface is the highest priority by hand and lowers its request; output buffers 0B2 and 0B3 maintain their requests; Current queries: output buffer 0B2 and 0133; Cycle 5: the output buffer OB2, which is the third highest priority, has hand and drop its request; the SIF access interface makes a request again; Queries in progress: the SIF access interface and the output buffer 0133; Cycle 6: the SIF access interface is the highest priority by hand and lowers its request; output buffer 0B1 will exhaust its buffer and retry a request; Queries in progress: SIF access interface, output buffers OB1 and 0133; Cycle 7: the output buffer 0B1, which is the second highest priority, has the hand drop its request; the SIF access interface makes a request again; Queries in progress: the SIF access interface, the OB3 output buffer; Cycle 8: the RIS access interface is the highest priority by hand and lowers its request; the output buffer OB3 maintains its request; Current request: output buffer 0133; Cycle 9: the output buffer 0B3, which is the fourth highest priority, has hand and drop its request; the SIF access interface makes a request again; Querying: the SIF access interface; Cycle 10: the SIF access interface is the highest priority by hand and lowers its request; the output buffer OB1 will exhaust its buffer and redo a request; Request in progress: output buffer 0131; Cycle 11: the output buffer OB1, which is the second highest priority, has the hand and lowers its request; the access interface makes a request again; Querying: the SIF access interface; Cycle 12: the SIF access interface is the highest priority by hand and lowers its request; the output buffer OB2 will exhaust its buffer and redo a request; Current request: output buffer 0B2; Cycle 13: the output buffer memory OB2 being the third highest priority by hand and lowers its request; the access interface makes a request again; Querying: the SIF access interface; Cycle 14: the SIF access interface is the highest priority by hand and lowers its request; the buffer memory output 0B1 will exhaust its buffer and redo a request; Request in progress: output buffer 0B1; Cycle 15: the output buffer memory OB1 being a second highest priority by hand and lowers its request; the access interface makes a request again; Querying: the SIF access interface; Cycle 16: the access interface SIF being the highest priority by hand and drop request, the output buffer OB3 will exhaust its buffer and redo a request; Current request: output buffer 0B3; Cycle 17: the output buffer OB3 being the fourth highest priority, the hand and drop its request; the access interface makes a request again; Querying: the SIF access interface; Cycle 18: the SIF access interface is the highest priority by hand and lowers its request; the output buffer 0B1 will exhaust its buffer and redo a request; Request in progress: output buffer 0131; Cycle 19: the second highest priority OB1 output buffer memory by hand and lowers its request; the access interface makes a request again; Querying: the SIF access interface; Cycle 20: the SIF access interface is the highest priority by hand and lowers its request; the output buffer OB2 will exhaust its buffer and redo a request; Current request: output buffer 0132; Cycle 21: the output buffer memory OB2 being the third highest priority by hand lowers its request; the access interface makes a request again; Querying: the SIF access interface; Cycle 22: the SIF access interface is the highest priority by hand and lowers its request; the output buffer memory OB1 will exhaust its buffer and redo a request; Request in progress: output buffer 0131; Cycle 23: the second highest priority buffer <B> 081 </ B> by hand and lowers its request; the SIF access interface makes a request again; Querying: the SIF access interface; Cycle 24: the SIF access interface is the highest priority by hand and lowers its request; the output buffer memory OB3 will exhaust its buffer and redo a request; Current request: output buffer 0133; Cycle 25: the output buffer memory OB3 being the fourth highest priority by hand and lowers its request; the access interface makes a request again; Querying: the SIF access interface; Cycle 26: the SIF access interface is the highest priority by hand and lowers its request; the buffer memory output 0B1 will exhaust its buffer and redo a request; Querying: the output buffer 0131; Etc. The accesses in the example above have a periodicity of 8 cycles. It is as if the arbitration was ensured by an eight-state circular machine. This result is due to the fact that in the example it is assumed that all B blocks consume their data in a regular way. In addition, it is assumed that the access requests by the SIF access interface are done in a regular manner once every two clock cycles. These assumptions are not necessarily correct in practice. For this reason, it is preferable to manage accesses to the SRAM interface memory using an arbiter of a priority scheme instead of a circular machine. The arbiter allows some flexibility in accessing the SRAM interface memory and, therefore, it allows better use of the available bandwidth for the data transfer. The following is an example of an exception to the rule that there is only write access to the SRAM interface memory (= access by the SIF access interface) every two clock cycles . The exception is when there is access to the SDRAM collective memory following a macro-command that involves an odd number of data. All data in this access except the last, find a partner and thus form couples for writing in the SRAM interface memory. The last data is alone. We can not take the data that follows to make a couple because this data is the first data of another access and therefore it is intended for another processor P. Therefore, this first data of another access must be stored in another zone Z of the SRAM interface memory. Therefore, following the arrival in the IB of the last data of the access comprising an odd number of data, this data is written in the partnerless SRAM interface memory in the clock cycle that follows the writing. the last couple of data included in the access. Therefore, there will be two write accesses in a row without pausing a clock cycle that would otherwise allow read access between two write accesses. Figures 5 and 9 relate to the operation of the INT memory interface in reading. The operation in writing and substantially symmetrical. This implies that the BUFW write buffer device and similar to the BUFR read buffer device described above. Thus, the BUFW write buffer device includes a zone-based interface memory, each zone belonging to a different B block. Blocks B can send data to be written to the collective memory before or after the macro command which indicates where these data are to be stored. In fact, a zone will fill up as soon as the block B to which the zone belongs sends data intended to be stored in the collective memory. This filling may, for example, continue until the area is completely filled with data. In this case, the memory interface INT will indicate to the concerned block B that there is no more room to store new data. This will prevent block B from sending new data until space is released in the area. A transfer of data from the Z zone to the collective memory means that space is freed up. Such an emptying can take place as soon as a macro-command is accepted by the ARB arbitrator and processed by the SIF access interface. It is also possible that a macro command is issued before the concerned block B has sent the data. In any case, no macro-command will be presented to the ARB arbitrator until the BUFW write buffer device indicates a sufficient level of filling of the zone concerned.

entités fonctionnelles ou fonctions peuvent être réparties de nombreuses manières différentes. A cet égard, il faut noter que les figures sont très schématiques, chaque figure représentant uniquement une seule réalisation de l'invention. Donc, quoiqu' figure montre des entités fonctionnelles en blocs séparés, ceci n'exclut pas du tout plusieurs entités fonctionnelles soient présentes dans une seule entité physique. Functional entities or functions can be distributed in many different ways. In this regard, it should be noted that the figures are very schematic, each figure representing only one embodiment of the invention. Therefore, whatever shows functional entities in separate blocks, this does not exclude at all several functional entities are present in a single physical entity.

Finalement, aucun signe de référence entre parenthèses dans revendication ne doit etre interprété de façon limitative.Finally, no reference sign in parentheses in the claim must be interpreted in a limiting manner.

Claims (1)

<U>Revendications.</U><U> Claims. </ U> 1. Un dispositif de traitement de signaux comprenant plusieurs processeurs et une interface mémoire à travers laquelle les processeurs peuvent accéder à une mémoire collective, l'interface mémoire comprenant: - une mémoire d'interface pour temporairement stocker des données appartenant à différents processeurs; - un circuit de contrôle pour gérer la mémoire d'interface d'une telle façon que celle-ci constitue une mémoire FIFO pour chacun des différents processeurs.A signal processing device comprising a plurality of processors and a memory interface through which the processors can access a collective memory, the memory interface comprising: an interface memory for temporarily storing data belonging to different processors; a control circuit for managing the interface memory in such a way that it constitutes a FIFO memory for each of the different processors.
FR9912068A 1999-08-31 1999-09-28 Multiple processor device has a common memory, access to which is controlled by a memory interface that treats each processor as if it had its own FIFO buffer memory, although there is only one buffer memory, thus reducing cost Withdrawn FR2799020A1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
FR9912068A FR2799020A1 (en) 1999-09-28 1999-09-28 Multiple processor device has a common memory, access to which is controlled by a memory interface that treats each processor as if it had its own FIFO buffer memory, although there is only one buffer memory, thus reducing cost
US09/640,734 US6738840B1 (en) 1999-08-31 2000-08-17 Arrangement with a plurality of processors having an interface for a collective memory
CNB001317210A CN1145893C (en) 1999-08-31 2000-08-28 Multi processers with interface having a shared storage
DE60009618T DE60009618T2 (en) 1999-08-31 2000-08-29 Multiprocessor device having a shared memory interface
EP00203005A EP1081597B1 (en) 1999-08-31 2000-08-29 Multiprocessor device having an interface for a collective memory
KR1020000050303A KR100676982B1 (en) 1999-08-31 2000-08-29 Data processing devices and methods and computer readable storage media
JP2000259435A JP2001125826A (en) 1999-08-31 2000-08-29 Device provided with plural processors having interface for set memory
TW089122325A TW475115B (en) 1999-08-31 2000-10-24 Arrangement with a plurality of processors having an interface for a collective memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9912068A FR2799020A1 (en) 1999-09-28 1999-09-28 Multiple processor device has a common memory, access to which is controlled by a memory interface that treats each processor as if it had its own FIFO buffer memory, although there is only one buffer memory, thus reducing cost

Publications (1)

Publication Number Publication Date
FR2799020A1 true FR2799020A1 (en) 2001-03-30

Family

ID=9550304

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9912068A Withdrawn FR2799020A1 (en) 1999-08-31 1999-09-28 Multiple processor device has a common memory, access to which is controlled by a memory interface that treats each processor as if it had its own FIFO buffer memory, although there is only one buffer memory, thus reducing cost

Country Status (1)

Country Link
FR (1) FR2799020A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0330836A2 (en) * 1988-02-29 1989-09-06 Convex Computer Corporation Method for multiprocessor system having self-allocating processors
EP0422310A1 (en) * 1989-10-10 1991-04-17 International Business Machines Corporation Distributed mechanism for the fast scheduling of shared objects
US5327419A (en) * 1990-07-16 1994-07-05 Siemens Aktiengesellschaft Communication system having a multiprocessor system serving the purpose of central control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0330836A2 (en) * 1988-02-29 1989-09-06 Convex Computer Corporation Method for multiprocessor system having self-allocating processors
EP0422310A1 (en) * 1989-10-10 1991-04-17 International Business Machines Corporation Distributed mechanism for the fast scheduling of shared objects
US5327419A (en) * 1990-07-16 1994-07-05 Siemens Aktiengesellschaft Communication system having a multiprocessor system serving the purpose of central control

Similar Documents

Publication Publication Date Title
EP1081598B1 (en) Multiprocessor device sharing a collective memory
US5586299A (en) Systems and methods for accessing multi-port memories
FR2778258A1 (en) Memory traffic access controller
JP2000501536A (en) Memory controller unit that optimizes the timing of the memory control sequence between various memory segments
EP1081597B1 (en) Multiprocessor device having an interface for a collective memory
JP2009015832A (en) Inter-access arbitration circuit, semiconductor device, and inter-access arbitration method
US20110296124A1 (en) Partitioning memory for access by multiple requesters
JP2004508634A (en) Intermediate buffer control to improve split transaction interconnect throughput
WO2017055732A1 (en) Computer device provided with processing in memory and narrow access ports
US6502173B1 (en) System for accessing memory and method therefore
US7436728B2 (en) Fast random access DRAM management method including a method of comparing the address and suspending and storing requests
EP1588276A1 (en) Processor array
FR2799020A1 (en) Multiple processor device has a common memory, access to which is controlled by a memory interface that treats each processor as if it had its own FIFO buffer memory, although there is only one buffer memory, thus reducing cost
CN112882986A (en) Many-core processor with super node and super node controller
FR2797970A1 (en) ADDRESSING A MEMORY
US8930616B2 (en) System refresh in cache memory
FR2797971A1 (en) ACCESS TO A COLLECTIVE RESOURCE
CN100418077C (en) memory control system
EP1341093B1 (en) Access to a shared resource
JP2000029777A (en) Data transfer device
FR2778255A1 (en) Memory control circuit for coupling to memory for direct memory access
JPH036768A (en) Ring-shaped hierarchical multiprocessor
JPS62290949A (en) Main storage control system
JP2004046371A (en) Memory controller and memory access control method
JPS63140353A (en) Main memory access control system

Legal Events

Date Code Title Description
ST Notification of lapse