FR2824647A1 - Systeme d'adressage de memoire pour bus d'interconnexions de composants peripheriques - Google Patents

Systeme d'adressage de memoire pour bus d'interconnexions de composants peripheriques Download PDF

Info

Publication number
FR2824647A1
FR2824647A1 FR0203396A FR0203396A FR2824647A1 FR 2824647 A1 FR2824647 A1 FR 2824647A1 FR 0203396 A FR0203396 A FR 0203396A FR 0203396 A FR0203396 A FR 0203396A FR 2824647 A1 FR2824647 A1 FR 2824647A1
Authority
FR
France
Prior art keywords
pci
memory
address
switch
interconnection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0203396A
Other languages
English (en)
Other versions
FR2824647B1 (fr
Inventor
Alan Edward Ball
David John White
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.)
Thales Training and Simulation Ltd
Original Assignee
Thales Training and Simulation Ltd
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 Thales Training and Simulation Ltd filed Critical Thales Training and Simulation Ltd
Publication of FR2824647A1 publication Critical patent/FR2824647A1/fr
Application granted granted Critical
Publication of FR2824647B1 publication Critical patent/FR2824647B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

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

Abstract

Ce système comprend un décodeur (5) d'adresses de mémoire (5) et des moyens de débranchement (6), connectés à un bus (1) d'interconnexions PCI de composants et agencés de manière à interrompre des signaux du bus PCI provenant d'un premier dispositif à interconnexions PCI (A), le décodeur (5) activant sélectivement les moyens de débranchement de sorte qu'une adresse entrant dans une gamme d'adresses identifiée dans un registre d'adresses de base du premier dispositif à interconnexions PCI et dans un registre de base d'un second dispositif à interconnexions PCI (B), est reçue par ce second dispositif mais pas par le premier.Application aux transmissions entre une unité centrale et des composants périphériques reliés par un bus PCI dans un système informatique.

Description

<Desc/Clms Page number 1>
La présente invention concerne le décodage d'adresses de mémoire pour bus d'interconnexions de composants périphériques (PCI).
Un bus d'interconnexions PCI est habituellement utilisé pour connecter une unité centrale de traitement (CPU) à des composants périphériques, par exemple un adaptateur graphique ou un appareil périphérique audio.
L'architecture du bus d'interconnexions PCI a été développée par la société Intel pour réaliser un transfert efficace de données en direction de composants périphériques et entre de tels composants et est adoptée en tant qu'architecture standard. Le standard d'interconnexions PCI est révisé périodiquement, par exemple pour accroître la vitesse autorisée de fonctionnement.
L'architecture d'interconnexions PCI fournit trois espaces adressables séparément. Il s'agit d'un espace de configuration, d'un espace d'entrée/sortie (espace 10) et d'un espace de mémoire. Chaque composant ou dispositif à interconnexions PCI requiert que des régions de mémoire et/ou un espace 10 lui soient affectés exclusivement de manière à lui permettre d'assumer sa fonction prévue. Cette affectation est placée sous la responsabilité du logiciel d'initialisation du système, qui agit dans un contrôleur du système, souvent désigné comme étant le "système central";
Chaque dispositif à interconnexions PCI occupe une région fixe d'un espace de configuration et dans cette région utilise un ensemble de registres, désigné comme étant l'en-tête de configuration du dispositif. Les contenus de certains de ces registres sont préprogrammés pendant le fonctionnement du dispositif avec différents attributs du dispositif, par exemple le vendeur et le type de dispositif, en particulier la quantité de mémoire et l'espace I/O requis par le dispositif pour exécuter sa fonction de post-initialisation. L'agencement des registres dans l'entête de configuration de chaque dispositif est défini par
<Desc/Clms Page number 2>
la spécification d'interconnexions PCI, tandis que la plate-forme matérielle interconnectant le système central aux dispositifs à interconnexions PCI forme un système câblé garantissant que chaque en-tête de configuration est situé à une adresse différente dans l'espace de configuration d'interconnexions PCI. Ceci permet au système central d'adresser aisément tout registre dans l'en-tête de configuration de n'importe quel dispositif dès la mise sous tension du système, par exemple lors du démarrage le système central est capable de déterminer quels dispositifs à interconnexions PCI sont présents, par exploration de toutes les adresses d'espaces de configuration possibles.
L'espace de mémoire et/ou l'espace 10, qui est nécessaire à un dispositif à interconnexions PCI pour lui permettre d'effectuer sa fonction, est spécifié dans des registres d'adresses de base (BAR) situés dans l'en-tête de configuration. Le dispositif d'interconnexions PCI peut comporter jusqu'à 6 registres BAR séparés. Le nombre de registres BAR dépend du nombre de zones séparées de l'espace de mémoire et/ou de l'espace 10, qui sont requises par le dispositif. Chaque registre BAR définit la taille et les attributs d'une région demandée de mémoire et/ou de l'espace 10. Pendant l'initialisation du système, le système central lit le contenu du registre BAR et détermine l'endroit où il faut situer l'espace de mémoire demandé et/ou l'espace 10 demandé, en tenant compte des exigences d'autres dispositifs. Le système central écrit ensuite dans chaque registre BAR l'adresse de base de l'espace de mémoire et/ou l'espace 10 affecté en réponse à la demande provenant de ce registre BAR. Le dispositif à interconnexions PCI n'exerce aucune commande ni aucune influence sur l'adresse de base allouée. Pour simplifier la réalisation du registre BAR, la spécification d'interconnexions PCI spécifie que l'espace de mémoire 10 puisse seulement être
<Desc/Clms Page number 3>
requis dans des tailles modulo 2, c'est-à-dire 4 KB, 8 KB, 16 KB, etc., et que l'adresse de base affectée doit être alignée sur la taille demandée de l'espace (par exemple si 2 MB sont requis, l'adresse de mémoire allouée se situe sur une limite à 2 MB).
Les ressources affectées ne peuvent pas se chevaucher entre le dispositif à interconnexions PCI (c'est-à-dire que les ressources utilisées par tous les dispositifs dans le système doivent être mutuellement exclusives).
Le nombre de dispositifs à interconnexions PCI, qui peuvent être connectés à un bus d'interconnexions PCI, est limité par la spécification d'interconnexions PCI de manière à garantir la performance électrique du bus. Pour supprimer cette limitation, on a développé un pont d'interconnexions PCI-PCI. Le pont d'interconnexions PCI-PCI est un dispositif matériel (plaquette) qui forme un pont logiquement transparent entre les deux segments "de bus d'interconnexions PCI séparés électriquement". Un système à interconnexions PCI de grande taille peut comporter de nombreux segments et, dans certains cas, plus d'un niveau de ponts (c'est-à-dire qu'un pont est connecté à un segment de bus auquel est rattaché un autre pont qui comporte luimême un pont qui lui-même est raccordé à un autre pont raccordé à un autre segment de bus, etc.).
Un système d'interconnexions PCI comprenant plusieurs segments supporte un grand nombre de dispositifs à interconnexions PCI, dont chacun peut nécessiter un espace 10 et/ou un espace de mémoire. La quantité totale d'espaces de mémoire/IO disponible est limitée par la gamme d'adressages du bus d'interconnexions PCI lui-même. Dans un système étendu contenant de nombreux dispositifs PCI, qui requièrent chacun des quantités importantes d'espaces de mémoire/d'espaces 10, la quantité totale d'espace de mémoire/IO devant être affectée peut commencer à se rappro-
<Desc/Clms Page number 4>
cher de l'espace maximum disponible.
Une autre complication apparaît dans le fait que les ponts d'interconnexions PCI-PCI eux-mêmes, bien que ne requérant pas de ressources pour leur propre utilisation (étant donné qu'elles n'effectuent aucune fonction autre qu'une interconnexion) doivent fournir des "fenêtres" pour permettre les transactions de manière à lire les dispositifs à interconnexions PCI, sur lesquels elles établissent un pont. Cela signifie que les ponts d'interconnexions PCIPCI eux-mêmes doivent inclure des registres BAR pour les espaces 10 et les espaces de mémoire. De la même manière que les ressources affectées à chaque dispositif d'interconnexions PCI ne peuvent pas se chevaucher, chaque pont d'interconnexions PCI-PCI peut seulement "fenêtrer" une région unique de chaque espace de données.
Les contraintes du standard d'interconnexions PCI peuvent conduire à un problème d'adressage de mémoire lorsqu'on utilise un pont d'interconnexions PCI-PCI. Chaque pont d'interconnexions PCI-PCI comporte uniquement un seul registre BAR pour définir la fenêtre qui s'ouvre dans l'espace de mémoire. Cela signifie qu'une quantité importante d'espace de mémoire est perdue lorsque deux dispositifs à interconnexions PCI, qui requièrent des tailles très différentes de ressources sont situés tous deux en arrière d'un pont d'interconnexions PCI-PCI. Par exemple un premier dispositif à interconnexions PCI, qui requiert une quantité 1 MB d'espace de mémoire et un second dispositif à interconnexions PCI, qui requiert 64 MB d'espace de mémoire, peuvent être situés en arrière d'un pont d'interconnexions PCI-PCI. Le pont d'interconnexions PCI-PCI possède un seul registre BAR pour définir la fenêtre qu'il ouvre dans l'espace de mémoire. Etant donné que le registre BAR dans le pont d'interconnexions PCI-PCI peut seulement demander des tailles modulo 2 de mémoire, il doit demander 128 MB pour couvrir les 65 MB requis. Aucun
<Desc/Clms Page number 5>
autre dispositif ne peut chevaucher cette fenêtre de 128MB, et les 63 MB non utilisés sont effectivement perdus pour le système sauf si d'autres dispositif PCI peuvent être situés derrière le pont pour utiliser une partie de l'espace de mémoire (dans de nombreux cas ceci peut ne pas être possible en raison de l'absence de fentes disponibles ou d'autres contraintes du système).
Dans un système étendu comportant plusieurs agencements de ce type de dispositifs de ponts d'interconnexions PCI-PCI et de dispositifs à interconnexions PCI, cette perte d'espace de mémoire utilisable peut finalement conduire à l'occupation de l'ensemble de l'espace de mémoire, ce qui empêche l'addition dans le dispositif d'interconnexions PCI au système.
Un but de la présente invention est de supprimer cette limitation.
Selon un premier aspect de l'invention, il est prévu un système d'adressage de mémoire pour bus d'interconnexions de composants périphériques (PCI), caractérisé en ce qu'il comporte un décodeur d'adresses de mémoire et des moyens de débranchement connectés à un bus PCI d'interconnexions PCI, les moyens de débranchement étant agencés de manière à déconnecter un ou plusieurs signaux du bus d'interconnexions PCI d'un premier dispositif à interconnexions PCI, et que le décodeur d'adresses de mémoire est agencé de manière à activer sélectivement les moyens de débranchement de telle sorte qu'une adresse, qui se situe dans une gamme d'adresses identifiées dans un registre d'adresses de base du premier dispositif d'interconnexions PCI et dans un registre d'adresses de base d'un second dispositif à interconnexions PCI, est reçue par le second dispositif à interconnexions PCI, mais pas par le premier dispositif à interconnexions PCI.
L'invention permet également d'affecter des adresses de chevauchement à des registres d'adresses de
<Desc/Clms Page number 6>
base des premier et second dispositifs à interconnexions PCI. Ceci est particulièrement utile lorsque les gammes d'adresses des premier et second dispositifs à interconnexions PCI ont des tailles très différentes et que les dispositifs sont tous deux situés en arrière d'un pont d'interconnexions PCI-PCI qui comporte seulement un registre d'adresses de base, étant donné que ceci évite que le pont d'interconnexions PCI-PCI n'affecte une gamme d'adresses de mémoire qui est nettement supérieure à la somme des gammes d'adresses de mémoire requises par les premier et second dispositifs à interconnexions PCI.
De façon appropriée, les moyens de débranchement comprennent un interrupteur agencé de manière à déconnecter le signal PCI~FRAME* du premier dispositif à interconnexions PCI.
De façon appropriée, l'interrupteur est fermé lorsqu'aucune transaction de données n'est exécutée, l'interrupteur étant ouvert lorsque le décodeur d'adresses de mémoire décode une adresse qui se situe dans la gamme d'adresses identifiée à la fois dans le registre d'adresses de base du premier dispositif à interconnexions PCI et dans le registre d'adresses de base du second dispositif à interconnexions PCI.
De façon appropriée, l'interrupteur reste ouvert pendant une transaction avec le second dispositif à interconnexions PCI, et est fermé lorsque cette transaction s'achève.
De façon appropriée, l'interrupteur est un interrupteur à retardement zéro et le décodeur d'adresses de mémoire est agencé de manière à décoder une adresse et à ouvrir l'interrupteur avant une incrémentation d'horloge, qui intervient immédiatement à la suite du signal d'adresse.
De façon appropriée, les moyens de débranchement comprennent un interrupteur agencé de manière à déconnecter
<Desc/Clms Page number 7>
le signal PCI~FRAME*, le signal PCI~AD [31... 0] et d'autres signaux de commande provenant du premier dispositif à interconnexions PCI.
De façon appropriée, l'interrupteur est ouvert lorsque aucune transaction de données ne s'effectue, l'interrupteur étant fermé lorsque le décodeur d'adresses de mémoire décode une adresse qui se situe dans la gamme d'adresses identifiée dans le registre d'adresses de base du premier dispositif à interconnexions PCI et qui ne se situe pas dans le registre d'adresses de base du second dispositif à interconnexions PCI.
De façon appropriée, en plus de l'ouverture de l'interrupteur, le décodeur d'adresses de mémoire transfère l'adresse PCI~FRAME* et d'autres signaux de commande au premier dispositif à interconnexions PCI.
De façon appropriée, l'adresse, le signal PCI~FRAME* et d'autres signaux de commande sont transférés au premier dispositif à interconnexions PCI après l'incrémentation d'horloge qui suit immédiatement le signal d'adresse.
De façon appropriée, l'interrupteur reste fermé jusqu'à ce que la transaction avec le premier dispositif à interconnexions PCI soit terminée, à la suite de quoi l'interrupteur est ouvert.
De façon appropriée, l'interrupteur est un interrupteur à 39 bits.
De façon appropriée, l'interrupteur est un interrupteur à retard zéro.
De façon appropriée, les autres signaux de commande incluent au moins les signaux PCI~IRDY*, PCI PAR et PCI~CBE[3...0]*.
De façon appropriée, les premier et second dispositifs à interconnexions PCI, les moyens de décodage d'adresses de mémoire, l'interrupteur et le bus d'interconnexions PCI sont tous situés derrière un pont PCI-PCI.
<Desc/Clms Page number 8>
De façon appropriée, le décodeur d'adresses de mémoire est programmable et est programmé avec des gammes d'adresses allouées pour les premier et second dispositifs à interconnexions PCI.
Conformément à un second aspect de l'invention, il est prévu un procédé d'adressage de mémoire pour bus d'interconnexions PCI comprenant la détermination des exigences d'espace de mémoire d'un premier dispositif d'interconnexions PCI et d'un second dispositif à interconnexions PCI connectés à un bus d'interconnexions PCI, la limitation des sources de mémoire utilisées par le premier dispositif à interconnexions PCI et l'affectation de la gamme d'adresses de l'espace de mémoire économisé résultant au second dispositif à interconnexions PCI, ce procédé comprend en outre la connexion d'un décodeur d'adresses de mémoire et de moyens de débranchement aux bus d'interconnexions PCI, le décodeur d'adresses de mémoire étant agencé de manière à activer sélectivement les moyens de débranchement de telle sorte qu'une adresse qui se situe dans une gamme d'adresses identifiées dans un registre d'adresses de base du premier dispositif à interconnexions PCI et dans un registre d'adresses de base d'un second dispositif à interconnexions PCI, est reçue par le second dispositif à interconnexions PCI, mais pas par le premier dispositif à interconnexions PCI.
Le procédé peut incorporer toutes les caractéristiques mentionnées précédemment du premier aspect de l'invention.
D'autres caractéristiques et avantages de la présente invention ressortiront de la description donnée ciaprès prise en référence aux dessins annexés, sur lesquels : - la figure 1 est une illustration schématique d'une première forme de réalisation de l'invention; - la figure 2 montre une illustration graphique
<Desc/Clms Page number 9>
du fonctionnement de la première forme de réalisation de l'invention; - la figure 3 montre une illustration graphique d'une seconde forme de réalisation de l'invention ; - la figure 4 montre une illustration schématique d'une forme de réalisation de la seconde forme de réalisation de l'invention.
En référence à la figure 1, deux dispositifs, à savoir le dispositif A et le dispositif B, sont connectés à un bus d'interconnexions PCI désigné d'une manière générale par la référence 1. Le bus d'interconnexions PCI n'est pas représenté complètement, mais au lieu de cela seuls des composants spécifiques du bus d'interconnexions PCI sont représentés : PCI~FRAME* 2 et PCI~AD[31...0] 3. PCI~FRAME* est un signal qui indique qu'une transaction est sur le point de se produire ou est déjà en cours. PCI~AD[31...0] est un signal qui indique l'adresse du destinataire prévu d'une transaction pendant un premier cycle de cette transaction et véhicule des données pendant des cycles suivants de la transaction.
Le bus d'interconnexions PCI 1 est situé en arrière d'un pont d'interconnexions PCI-PCI 4.
Le dispositif A requiert 1 MB d'espace de mémoire et le dispositif B requiert 64 MB de l'espace de mémoire.
Ces exigences sont indiquées dans les registres de base (BAR) des dispositifs. Le pont d'interconnexions PCI-PCI comporte un seul registre BAR pour définir la fenêtre qui est ouverte dans l'espace de mémoire.
De façon typique, il est établi que le dispositif B ne requiert pas 64 MB de mémoire et en réalité fonctionne correctement avec seulement 63 MB de mémoire. C'est pourquoi le dispositif B est forcé de demander (par l'intermédiaire de ces registres BAR) un espace de mémoire plus important que ce dont il a réellement besoin en tant que conséquence de la limitation de l'espace de mémoire modulo
<Desc/Clms Page number 10>
2 mentionnée précédemment. Le dispositif B peut être une unité centrale CPU. Lorsque c'est le cas, la limitation de la quantité de l'espace de mémoire affectée a pour effet de rendre une partie de la mémoire de l'unité centrale CPU invisible à partir de l'interconnexion PCI. Si le logiciel agissant sur l'unité centrale CPU n'utilise pas cette partie invisible (c'est-à-dire met en oeuvre une plus grande quantité de mémoire que ce qui est requis par le logiciel), alors la limitation de la quantité de mémoire affectée n'a aucun impact. Si le logiciel fonctionnant dans l'unité centrale CPU utilise la partie invisible, alors l'effet de la limitation de l'espace de mémoire peut être de rendre une partie du logiciel d'exécution invisible à partir de l'interconnexion PCI. Si l'on sait par avance quel logiciel doit être appliqué au dispositif B, il est facile de déterminer la quantité d'espace de mémoire dont il a besoin, et ce qu'est l'effet probable de la limitation de l'espace de mémoire.
L'espace de mémoire requis par le dispositif B est réduit à 63 MB, de sorte que l'espace de mémoire total requis par le dispositif A et le dispositif B est égal à 64 MB. Ceci permet d'ouvrir une fenêtre de 64 MB dans l'espace de mémoire au niveau du pont d'interconnexions PCI-PCI, qui est suffisamment large pour permettre un fonctionnement correct à la fois du dispositif A et du dispositif B.
Il serait préférable de programmer le registre BAR du dispositif B sur 63 MB plutôt que sur 64 MB, de telle sorte que les registres BAR du dispositif A et du dispositif B se combinent pour remplir la fenêtre de 64 MB fournie par la fenêtre au niveau du pont d'interconnexions PCI-PCI. Malheureusement le registre BAR du dispositif B ne peut pas être programmé sur 63 MB étant donné que la norme PCI spécifie que seules des tailles modulo 2 de mémoire peuvent être programmées. Par conséquent le registre BAR du
<Desc/Clms Page number 11>
dispositif B reste programmé sur 64 MB, et le premier 1 MB des 64 MB affectés au dispositif B possède la même adresse que le registre BAR du dispositif A. Une adresse entrant dans ce premier 1 MB active à la fois le dispositif A et le dispositif B, ce qui conduit à une défaillance du système.
Pour éviter la défaillance du système, un matériel supplémentaire doit décoder l'adresse et activer le dispositif A uniquement lorsque la gamme d'adresses se situe dans le premier 1 MB des 64 MB affectés au dispositif B. Le matériel utilisé est représenté sur la figure 1 et comporte un dispositif 5 de décodage d'adresses d'interconnexions PCI et un interrupteur à retard zéro 6, qui sont ajoutés au bus d'interconnexions PCI. Le décodeur d'adresses 5 est connecté à PCI~AD[31...0] et PCI~FRAME*.
L'interrupteur 6 est connecté à PCI~FRAME* du bus d'interconnexions PCI. L'interrupteur 6 est situé "en aval" de la liaison du signal PCI~FRAME* aboutissant au dispositif A, de sorte que l'interrupteur n'interrompt pas des signaux PCI~FRAME* transmis au dispositif A. Le fonctionnement de l'interrupteur 6 est commandé par le décodeur d'adresses 5.
L'interrupteur 6 est choisi de manière à posséder une faible valeur résistive lorsqu'il est fermé et une faible capacité de sorte qu'il n'affecte pas les caractéristiques électriques du bus d'interconnexions PCI.
La figure 2 illustre le fonctionnement du matériel d'interconnexions PCI. Un signal d'horloge 10 forme un signal d'entrée périodique envoyé à chaque dispositif PCI connecté au pont d'interconnexions PCI. Chaque flanc montant du signal d'horloge est interprété en tant qu'incrémentation du signal d'horloge, et habituellement toutes les opérations des dispositifs à interconnexions PCI sont synchronisées sur ces flancs montants. Une nouvelle transaction dans le bus d'interconnexions PCI est marquée par le signal PCI~FRAME 11a qui passe au niveau bas. Lors
<Desc/Clms Page number 12>
de la détermination du fait que le signal PCI~FRAME* est passé au niveau bas, chaque dispositif à interconnexions PCI est configuré de manière à recevoir et décoder une adresse. L'adresse est indiquée par le signal PCI~AD [31...0] 12. Si le signal tombe dans la gamme d'adresses d'un dispositif à interconnexions PCI donné, alors le dispositif à interconnexions PCI reçoit cette transaction.
En référence à la figure 1 et à la figure 2, le décodeur d'adresses 5 est configuré de manière à recevoir et décoder le signal PCI~AD[31...0] 12 lorsque le signal PCI~FRAME* 11a passe au niveau bas. Lorsque le signal décodé PCI~AD[31...0] 12 correspond à une adresse qui se situe dans la gamme de 1 MB du dispositif A, le décodeur d'adresses 5 ouvre l'interrupteur 6 (indiqué en tant que INTERRUPTEUR 13 sur la figure 2). L'actionnement du décodeur d'adresses 5 et de l'interrupteur 6 n'est pas synchronisé sur les incrémentations de signaux d'horloge. Au lieu de cela, le décodeur d'adresses 5 contrôle continûment le signal PCI~FRAME* et, lorsqu'il est établi que le signal PCI~FRAME* est passé au niveau bas, décode immédiatement le signal PCI~AD[31...0]. De façon similaire, l'interrupteur 6 est ouvert immédiatement lorsque le décodeur d'adresses 5 établit que l'adresse décodée se situe dans la gamme de 1 MB du dispositif A.
Le dispositif A et le dispositif B échantillonnent le signal PCI~FRAME* et le signal PCI~AD[31...0] lors de chaque incrémentation du signal d'horloge. Les incrémentations du signal d'horloge sont numérotées sur la figure 2. Pour l'incrémentation numéro 1, le signal PCI~FRAME* est au niveau haut et le dispositif A et le dispositif B n'effectuent par conséquent aucune action. Lors de l'incrémentation numéro 2, le signal PCI~FRAME* est passé au niveau bas, mais l'interrupteur 6 a été actionné de sorte que le dispositif B est déconnecté du signal PCI~FRAME*. Cela signifie que le dispositif A établit que
<Desc/Clms Page number 13>
le signal PCI-FRAME* est au niveau bas (comme indiqué par 11a) et est par conséquent configuré de manière à recevoir et décoder un accès. Le dispositif B détermine que le signal PCI~FRAME* est au niveau haut (comme indiqué par llb) et par conséquent n'entreprend aucune action. Une résistance élévatrice 7 est connectée au signal PCI~FRAME* directement adjacent au dispositif B pour garantir que le signal PCI~FRAME* reste au niveau haut lorsque l'interrupteur 6 est actionné.
Le dispositif A demande la transaction en cours en commandant le signal DEVSEL 14 au niveau bas. Ceci indique que le dispositif A est prêt à recevoir des données. Une fois que le signal DEVSEL a été activé, l'auteur de la transaction sait que le dispositif A écoute et transfère par conséquent des données.
On notera qu'une incrémentation du signal d'horloge se déroule avant que le signal DVSEL passe au niveau bas. Ceci est dû à la vitesse limitée de réponse du dispositif A. Un dispositif qui répond à cette vitesse est désigné comme étant un dispositif "moyen". Un dispositif qui répond au bout de deux incrémentations du signal d'horloge, est désigné comme étant un dispositif "lent", et un dispositif qui répond avant incrémentation du signal d'horloge, immédiatement à la suite du signal d'adresse, est désigné comme étant un dispositif "rapide".
A la fin de la transaction, l'interrupteur 6 est fermé dans un état prêt pour la transaction suivante (non représentée sur la figure 2). Ceci permet au dispositif B de recevoir (ou de délivrer) une fois de plus le signal PCI FRAME*.
On notera pour que la forme de réalisation représentée de l'invention fonctionne correctement, l'actionnement de l'interrupteur doit s'effectuer avant l'incrémentation du signal d'horloge, qui se produit juste après que le signal PCI~FRAME* est passé au niveau bas. Le temps qui
<Desc/Clms Page number 14>
s'est écoulé entre l'arrivée de l'adresse dans le décodeur d'adresses 5 et l'incrémentation ultérieure du signal d'horloge, est indiqué sur la figure 2, et est égal à environ 15 ns pour des incrémentations du signal d'horloge à 33 MHz.
Certains bus d'interconnexions PCI utilisent une horloge à 66 MHz, en particulier des bus mezzanines (sur puce). En référence à la figure 2, on estime que l'intervalle de temps qui s'écoule entre une adresse délivrée au bus et une horloge suivante est d'environ 5 ns pour un signal d'horloge à 66 MHz. Il est difficile d'activer le décodeur d'adresses 5 et l'interrupteur 6 d'une manière fiable pendant un intervalle de temps aussi bref.
Ce problème est résolu grâce à la seconde forme de réalisation de l'invention, qui est illustrée sur la figure 3. Le dispositif représenté sur la figure 3 comprend un dispositif A et un dispositif B, un décodeur d'adresses 5a et un interrupteur 6a qui sont tous connectés à un bus d'interconnexions PCI indiqué d'une manière générale par la. Le bus d'interconnexions PCI est situé en arrière d'un pont d'interconnexions PCI-PCI 4a.
Le décodeur d'adresses 5a et l'interrupteur 6a sont plus complexes que ceux représentés sur la figure 1.
De façon spécifique, le décodeur d'adresses 5a est configuré de manière à verrouiller les adresses (conjointement avec les signaux de commande) à l'intérieur du décodeur et de les appliquer au dispositif B avec un retard d'incrémentation d'un signal d'horloge. L'interrupteur 6a est un interrupteur à 39 bits qui, en plus de réaliser la commutation du signal PCI~FRAME*, réalise une commutation également d'autres signaux de commande et du signal PCI~AD[31...0].
L'interrupteur 6a est maintenu ouvert lorsqu'aucune transaction ne s'effectue dans le bus d'interconnexions PCI la. Lorsque le signal PCI~FRAME*
<Desc/Clms Page number 15>
passe au niveau bas, le décodeur d'adresses 5a décode le signal PCI~AD[31...0]. Si l'adresse décodée se situe dans la gamme d'adresses affectée au dispositif B, alors le signal PCI~FRAME*, PCI~AD[31...0] et des signaux de commande sont transmis au dispositif B. Un retard d'incrémentation de 1 signal d'horloge est appliqué de sorte que les signaux PCI~FRAME* et PCI~AD[31...0] arrivent dans le dispositif B avec un retard correspondant à une incrémentation d'un signal d'horloge plus tard que ce n'aurait été le cas en l'absence du décodeur d'adresses 5a et de l'interrupteur 6a. En même temps que les signaux PCI~FRAME* et PCI~AD[31...0] sont transmis au dispositif B, l'interrupteur 6a est fermé. Le dispositif B décode le signal PCI~AD[31...0] puis positionne le signal DEVSEL au niveau bas, ce qui indique qu'il est prêt pour recevoir des données. L'activation du signal DEVSEL* informe l'initiateur du fait que la transaction a été demandée par le dispositif B, et permet un transfert de données par l'intermédiaire de PCI~AD[31...0].
L'interrupteur 6a est ouvert une fois que la communication avec le dispositif B est achevée.
Le dispositif B peut désirer déclencher la communication par l'intermédiaire du bus d'interconnexions PCI.
A cet effet, le dispositif B émet habituellement un signal DEMANDE. Un dispositif d'arbitrage séparé (non représenté) détermine le moment où le dispositif B peut utiliser le bus, et renvoie un signal GRANT (accordé) qui permet au dispositif B de s'approprier le bus et de déclencher une transaction. Le décodeur d'adresses 5a reçoit un signal d'entrée à partir du signal GRANT du dispositif B. Lorsque ce signal est activé, l'interrupteur 6a est fermé de manière à permettre au dispositif B de communiquer.
Si le décodeur d'adresses établit que l'adresse située dans la gamme d'adresses du dispositif A, alors l'interrupteur 6a reste ouvert. L'adresse et les signaux de
<Desc/Clms Page number 16>
commande ne sont pas transmis au dispositif B. Le dispositif A communique avec le bus d'interconnexions PCI de façon classique.
Comme cela a été indiqué précédemment, la réponse du dispositif B à un signal PCI~FRAME* et un signal PCI AD[31...0] est plus lente, d'une incrémentation d'un signal d'horloge, que ce ne serait le cas dans un système d'interconnexions classique, le retard étant introduit par le décodeur d'adresses 5a. Cela signifie que lorsque la seconde forme de réalisation de l'invention est utilisée, le dispositif qui répond normalement à un signal PCI~FRAME* et PCI~AD[31...0] à la troisième incrémentation d'un signal d'horloge (c'est-à-dire le dispositif "lent") ne répond pas avant la quatrième incrémentation d'un signal d'horloge.
Malheureusement dans la norme d'interconnexions PCI, l'initiateur d'une transaction attend pendant seulement 3 incrémentations d'horloge pour une réponse après la délivrance d'un signal PCI~FRAME* et d'un signal PCI~AD[31...0]. Si aucune réponse n'a été reçue au bout de trois incrémentations d'horloge, l'initiateur de la transaction interprète l'absence d'une réponse comme une erreur. Par conséquent, lorsqu'on utilise la seconde forme de réalisation, le dispositif B ne peut pas être un dispositif lent. De la même manière, si le dispositif B est en soi un dispositif "rapide", il devient "moyen" en raison de l'addition du décodeur d'adresses 5a, alors que s'il est en soi "moyen", il devient "lent".
La seconde forme de réalisation de l'invention introduit un coût temporel d'un cycle uniquement pendant la phase d'adressage au début de la transaction - il n'existe aucun retard additionnel pendant la phase de données ou pendant les phases qui suivent. La communication avec le dispositif A s'effectue de façon classique et n'introduit aucun coût temporel.
La figure 4 représente l'application de la seconde
<Desc/Clms Page number 17>
forme de réalisation de l'invention. Un bus d'interconnexions PCI Mezzanine (sur puce) à 66 MHz, désigné d'une manière générale en 21, interconnecte deux ponts d'alimentation Motorola MPC107 PowerPC 22,23, un site d'expansion de cartes mezzanines d'interconnexions PCI 24 et un pont d'interconnexions PCI-PCI 25 relié à un système de bus d'interconnexions PCI d'arrière-plan du système central. Un dispositif logique programmable (PLD) 26 de "commande de carte d'adresses" (AMC) correspond aux décodeurs d'adresses 5, 5a représenté sur les figures 1 et 3. Le dispositif de commande AMC est responsable du décodage d'adresses dans le bus d'interconnexions PCI local 21 et d'une interruption sélective du signal PCI~AD[31...0] et de signaux de commande provenant du second pont Motorola MPC107 PowerPC 23 moyennant l'utilisation d'un interrupteur 27 à 39 bits. Ceci permet de diviser un seul bloc de l'espace de 64 MB d'espaces d'adresses entre le MPC107 et le dispositif installé dans le site PMC 120. Dans cet exemple, le système central peut écrire dans un registre situé dans le dispositif de commande AMC pour définir la fente requise entre des espaces d'adresses affectés, de sorte que différents dispositifs peuvent être installés dans le système PC et être correctement traités.

Claims (16)

REVENDICATIONS
1. Système d'adressage de mémoire pour bus d'interconnexions de composants périphériques (PCI), caractérisé en ce qu'il comporte un décodeur (5) d'adresses de mémoire et des moyens de débranchement (6) connectés à un bus PCI d'interconnexions PCI, les moyens de débranchement étant agencés de manière à déconnecter un ou plusieurs signaux du bus d'interconnexions PCI (1) d'un premier dispositif à interconnexions PCI (A), et que le décodeur (5) d'adresses de mémoire est agencé de manière à activer sélectivement les moyens de débranchement de telle sorte qu'une adresse, qui se situe dans une gamme d'adresses identifiées dans un registre d'adresses de base du premier dispositif à interconnexions PCI (A) et dans un registre d'adresses de base d'un second dispositif à interconnexions PCI (B), est reçue par le second dispositif d'interconnexions PCI, mais pas par le premier dispositif d'interconnexions PCI.
2. Système d'adressage de mémoire pour bus d'interconnexions PCI selon la revendication 1, caractérisé en ce que les moyens de débranchement (6) comprennent un interrupteur agencé de manière à déconnecter le signal PCI~FRAME* du premier dispositif à interconnexions PCI (A).
3. Système d'adressage de mémoire à bus d'interconnexions PCI selon la revendication 2, caractérisé en ce que l'interrupteur (6) est fermé lorsque aucune transaction de données n'est exécutée, l'interrupteur étant ouvert lorsque le décodeur (5) d'adresses de mémoire décode une adresse qui se situe dans la gamme d'adresses identifiée à la fois dans le registre d'adresses de base du premier dispositif à interconnexions PCI (A) et dans le registre d'adresses de base du second dispositif à interconnexions PCI (B) .
4. Système d'adressage de mémoire pour bus d'interconnexions PCI selon la revendication 3, caractérisé
<Desc/Clms Page number 19>
en ce que l'interrupteur (6) reste ouvert pendant une transaction avec le second dispositif à interconnexions PCI (B), et est fermé lorsque cette transaction s'achève.
5. Système d'adressage de mémoire pour bus d'interconnexions PCI selon l'une quelconque des revendications 2 à 4, caractérisé en ce que l'interrupteur (6) est un interrupteur à retardement zéro et que le décodeur (5) d'adresses de mémoire est agencé de manière à décoder une adresse et à ouvrir l'interrupteur avant une incrémentation d'horloge, qui intervient immédiatement à la suite du signal d'adresse.
6. Système d'adressage de mémoire pour bus d'interconnexions PCI selon la revendication 1, caractérisé en ce que les moyens de débranchement (6) comprennent un interrupteur agencé de manière à déconnecter le signal PCI~FRAME*, le signal PCI~AD[31...0] et d'autres signaux de commande provenant du premier dispositif d'interconnexions PCI.
7. Système d'adressage de mémoire pour bus d'interconnexions PCI selon la revendication 6, caractérisé en ce que l'interrupteur (6) est ouvert lorsque aucune transaction de données ne s'effectue, l'interrupteur étant fermé lorsque le décodeur d'adresses de mémoire décode une adresse qui se situe dans la gamme d'adresses identifiée dans le registre d'adresses de base du premier dispositif à interconnexions PCI et qui ne se situe pas dans le registre d'adresses de base du second dispositif à interconnexions PCI.
8. Système d'adressage de mémoire pour bus d'interconnexions PCI selon la revendication 7, dans lequel en plus de l'ouverture de l'interrupteur (6), le décodeur (5) d'adresses de mémoire transfère l'adresse PCI~FRAME* et d'autres signaux de commande au premier dispositif à interconnexions PCI.
9. Système d'adressage de mémoire pour bus
<Desc/Clms Page number 20>
d'interconnexions PCI selon la revendication 8, caractérisé en ce que l'adresse, le signal PCI~FRAME* et d'autres signaux de commande sont transférés au premier dispositif à interconnexions PCI après l'incrémentation d'horloge qui suit immédiatement le signal d'adresse.
10. Système d'adressage de mémoire pour bus d'interconnexions PCI selon l'une quelconque des revendications 7 à 9, caractérisé en ce que l'interrupteur (6a, 27) reste fermé jusqu'à ce que la transaction avec le premier dispositif à interconnexions PCI soit terminée, à la suite de quoi l'interrupteur est ouvert.
11. Système d'adressage de mémoire pour bus d'interconnexions PCI selon l'une quelconque des revendications 6 à 10, caractérisé en ce que l'interrupteur (6a, 27) est un interrupteur à 39 bits.
12. Système d'adressage de mémoire pour bus d'interconnexions PCI selon l'une quelconque des revendications 6 à 11, caractérisé en ce que l'interrupteur (6a, 27) est un interrupteur à retard zéro.
13. Système d'adressage de mémoire pour bus d'interconnexions PCI selon l'une quelconque des revendications 6 à 12, caractérisé en ce que les autres signaux de commande incluent au moins les signaux PCI~IRDY*, PCI~PAR et PCI~CBE[3...0]*.
14. Système d'adressage de mémoire pour bus d'interconnexions PCI selon l'une quelconque des revendications 1 à 13, caractérisé en ce que les premier et second dispositifs à interconnexions PCI, les moyens de décodage d'adresses de mémoire, l'interrupteur et le bus d'interconnexions PCI sont tous situés derrière un pont PCI-PCI (4).
15. Système d'adressage de mémoire pour bus d'interconnexions PCI selon l'une quelconque des revendications 1 à 14, caractérisé en ce que le décodeur (5) d'adresses de mémoire est programmable et est programmé
<Desc/Clms Page number 21>
avec des gammes d'adresses allouées pour les premier et second dispositifs à interconnexions PCI.
16. Procédé d'adressage de mémoire pour bus d'interconnexions PCI comprenant la détermination des exigences d'espace de mémoire d'un premier dispositif à interconnexions PCI et d'un second dispositif à interconnexions PCI connectés à un bus d'interconnexions PCI, la limitation des sources de mémoire utilisées par le premier dispositif à interconnexions PCI et l'affectation de la gamme d'adresses de l'espace de mémoire économisé résultant au second dispositif à interconnexions PCI, caractérisé en ce que le procédé comprend en outre la connexion d'un décodeur d'adresses de mémoire et de moyens de débranchement au bus d'interconnexions PCI, le décodeur d'adresses de mémoire étant agencé de manière à activer sélectivement les moyens de débranchement de telle sorte qu'une adresse qui se situe dans une gamme d'adresses identifiées dans un registre d'adresses de base du premier dispositif à interconnexions PCI et dans un registre d'adresses de base d'un second dispositif à interconnexions PCI, est reçue par le second dispositif à interconnexions PCI, mais pas par le premier dispositif à interconnexions PCI.
FR0203396A 2001-03-20 2002-03-19 Systeme d'adressage de memoire pour bus d'interconnexions de composants peripheriques Expired - Fee Related FR2824647B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0107037A GB2373598B (en) 2001-03-20 2001-03-20 Peripheral component interconnect bus memory address decoding

Publications (2)

Publication Number Publication Date
FR2824647A1 true FR2824647A1 (fr) 2002-11-15
FR2824647B1 FR2824647B1 (fr) 2005-07-08

Family

ID=9911224

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0203396A Expired - Fee Related FR2824647B1 (fr) 2001-03-20 2002-03-19 Systeme d'adressage de memoire pour bus d'interconnexions de composants peripheriques

Country Status (5)

Country Link
US (1) US20020138709A1 (fr)
AU (1) AU784334B2 (fr)
CA (1) CA2371509A1 (fr)
FR (1) FR2824647B1 (fr)
GB (1) GB2373598B (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931457B2 (en) * 2002-07-24 2005-08-16 Intel Corporation Method, system, and program for controlling multiple storage devices
GB2444745B (en) * 2006-12-13 2011-08-24 Advanced Risc Mach Ltd Data transfer between a master and slave
US9317446B2 (en) * 2014-09-23 2016-04-19 Cisco Technology, Inc. Multi-level paging and address translation in a network environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0291741A (ja) * 1988-09-29 1990-03-30 Toshiba Corp アドレスバスの切換制御方式
JP2000148664A (ja) * 1998-11-12 2000-05-30 Nec Corp Pci機能拡張制御装置、及びpci機能拡張制御方法
US6085273A (en) * 1997-10-01 2000-07-04 Thomson Training & Simulation Limited Multi-processor computer system having memory space accessible to multiple processors

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363500A (en) * 1990-01-25 1994-11-08 Seiko Epson Corporation System for improving access time to video display data using shadow memory sized differently from a display memory
US5668973A (en) * 1995-04-14 1997-09-16 Ascom Hasler Mailing Systems Ag Protection system for critical memory information
US6317657B1 (en) * 1998-08-18 2001-11-13 International Business Machines Corporation Method to battery back up SDRAM data on power failure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0291741A (ja) * 1988-09-29 1990-03-30 Toshiba Corp アドレスバスの切換制御方式
US6085273A (en) * 1997-10-01 2000-07-04 Thomson Training & Simulation Limited Multi-processor computer system having memory space accessible to multiple processors
JP2000148664A (ja) * 1998-11-12 2000-05-30 Nec Corp Pci機能拡張制御装置、及びpci機能拡張制御方法
US6567882B1 (en) * 1998-11-12 2003-05-20 Nec Corporation PCI function extension control device and method of PCI function extension control

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 0142, no. 96 (P - 1067) 26 June 1990 (1990-06-26) *
PATENT ABSTRACTS OF JAPAN vol. 2000, no. 08 6 October 2000 (2000-10-06) *

Also Published As

Publication number Publication date
GB0107037D0 (en) 2001-05-09
US20020138709A1 (en) 2002-09-26
AU2753502A (en) 2002-09-26
GB2373598A (en) 2002-09-25
AU784334B2 (en) 2006-03-16
FR2824647B1 (fr) 2005-07-08
CA2371509A1 (fr) 2002-09-20
GB2373598B (en) 2004-12-29

Similar Documents

Publication Publication Date Title
FR2632090A1 (fr) Commande du fonctionnement en pipe-line d&#39;un systeme de micro-calculateur utilisant le dimensionnement dynamique des bus avec un processeur 80386 et une unite de commande d&#39;antememoire 82385
FR2632096A1 (fr) Systeme de microcalculateur a bus multiple avec arbitrage d&#39;acces aux bus
EP0349371B1 (fr) Système informatique à interconnexion centrale
FR2616025A1 (fr) Methode et systeme de controle de flux de paquets
FR2806505A1 (fr) Procede de communication entre une carte a puce et une station hote
FR2519441A1 (fr) Systeme de selection de priorite pour l&#39;acces a un bus utilise en mode partage
FR3103586A1 (fr) Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
EP1324175B1 (fr) Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
EP0005722A1 (fr) Système de sélection de circuit d&#39;interface prioritaire
WO2011070262A1 (fr) Controleur d&#39;acces dircet a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques
BE1001065A3 (fr) Conversion du mode de signaux de commande pour ordinateurs.
FR3103585A1 (fr) Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
CA2250999A1 (fr) Dispositif d&#39;echange entre unites de traitement d&#39;informations a processeurs interconnectes par un bus commun
EP0837396A1 (fr) Opération atomique sur mémoire distante et dispositif permettant d&#39;effectuer cette opération
FR2896368A1 (fr) Appareil pour ameliorer l&#39;efficacite du microprogramme pour une interface serie multitrame
FR3103584A1 (fr) Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR2632092A1 (fr) Circuit de conditionnement d&#39;ecriture d&#39;antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
FR2824647A1 (fr) Systeme d&#39;adressage de memoire pour bus d&#39;interconnexions de composants peripheriques
EP2507712A1 (fr) Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme
FR2744539A1 (fr) Systeme et procede de traitement par augmentation du nombre d&#39;entrees de donnees
FR2717645A1 (fr) Procédé et appareil de transmission de signaux par une ligne partagée.
EP0359607B1 (fr) Unité centrale pour système de traitement de l&#39;information
FR2810426A1 (fr) Dispositif et procede de controle d&#39;acces de peripherique informatique
EP0344052B1 (fr) Mémoire modulaire
EP0709787B1 (fr) Système de traitement d&#39;informations comportant au moins deux processeurs

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20091130