Brevet FR2632090A1 — publié le 19891201

COMMANDE DU FONCTIONNEMENT EN PIPE-LINE D'UN SYSTEME DE MICRO-CALCULATEUR UTILISANT LE DIMENSIONNEMENT DYNAMIQUE DES BUS AVEC UN PROCESSEUR 80386 ET UNE UNITE DE COMMANDE D'ANTEMEMOIRE 82385 La présente invention concerne des améliorations apportées aux systèmes de micro-calculateur et plus particulièrement aux systèmes de microcalculateur qui utilise le dimensionnement dynamique des bus et exécutent des opérations en pipe-line et encore plus particulièrement, des améliorations apportées à de tels systèmes qui comprennent en outre un sous-système d'antémémoire. Les informations de base concernant l'unité 80386, ses caractéristiques et son utilisation dans des systèmes de microcalculateur comprenant des sous-systèmes de mémoire à antémémoire sont décrites dans les manuels d'Intel "Introduction to the 80386", avril 1986 et "80386 Hardware Reference Manual" (1986). Les caractéristiques et les performances de fonctionnement de l'unité 82385 sont décrites dans la publication d'Intel "82385 High Performance 32-Bit Cache Controller" (1987). Dans les systèmes de micro-calculateur comme dans d'autres systèmes de calcul, la vitesse de fonctionnement est un critère important qui dans la plupart des cas, doit être fonction du co t du système. Beaucoup d'améliorations qui furent tout d'abord apportées aux gros calculateurs et aux mini-calculateurs pour accélérer leur fonctionnement sont maintenant appliquées aux systèmes de micro-calculateur. Ces améliorations comprennent les sous-systèmes de mémoire antémémoire et les opérations exécutées en "pipe-line". Dans certains systèmes de micro-calculateur (par exemple dans ceux utilisant l'unité Intel 80386), les opérations en pipe-line constituent une option de fonctionnement attractive. Pour les systèmes de micro-calculateur 80386/82385, l'unité de commande d'antémémoire 82385 fournit un signal NA qui, par exemple, doit être connecté à une entrée correspondante sur l'unité 80386. Ceci permet à l'unité 82385 de revendiquer le signal NA à l'unité 80386 avant la fin d'un cycle de bus donné pour permettre à l'unité 80386 de délivrer en sortie des informations (données, adresse et/ou commande) pour le cycle de fonctionnement suivant. La chronologie est agencée, ainsi que les composants connectés, pour que si une opération d'antémémoire constitue une opération donnée, les informations relatives à l'opération donnée aient déjà été acceptées par la mémoire antémémoire et donc la modification des informations de sortie de l'unité 80386 pour qu'elles correspondent au cycle suivant, ne gênera pas le fonctionnement qui est en cours d'achèvement. Ceci reste aussi vrai pour les cas dans lesquels un état de "manque d'antémémoire" est apparu, requérant de se référer non pas à la mémoire antémémoire mais à la mémoire principale puisque l'accès à la mémoire principale se fait par l'intermédiaire de mémoires intermédiaires verrouillées qui contiennent donc des informations relatives à l'opérations donnée. L'unité 80386 a aussi la possibilité de fonctionner en utilisant ce que l'on appelle le dimensionnement dynamique des bus. L'unité 80386 est nominalement une machine de 32 bits, c'est à dire que la largeur du bus de données est de 32 bits. Cependant,-l'unité 80386 peut fonctionner avec des dispositifs de 16 bits (des dispositifs qui ne transféreront que 16 bits de données) en répondant à un signal BS16 qui est délivré à l'unité 80386 pour indiquer la présence d'un dispositif de 16 bits. Le signal BS16 est important pour l'unité 80386 dans le. cas de l'exécution d'une opération de 32 bits. Naturellement, le dispositif de 16 bits ne peut pas en une seule opération, transférer les 32 bits de données que l'unité 80386 est capable de générer et/ou d'accepter. Ainsi, une seconde opération (cycle) est nécessaire et l'unité 80386 répond au signal BS16 pour générer automatiquement le cycle nécessaire suivant. Pour que ce type d'opération soit réussi lorsque l'unité 82385 est présente, il est aussi nécessaire que l'unité 82385 reçoive des informations relatives au caractère du dispositif prenant part à l'opération de façon que le signal NA envoyé à l'unité 80386 ne soit pas généré de manière imprévue. Comme décrit dans les publications d'Intel référencées ci dessus, l'unité 82385 requiert des informations de dispositif au début d'un cycle contrairement à l'unité 80386 qui peut accepter et agir à la réception d'informations de dispositif délivrées substantiellement plus tard dans le cycle. Dans certains systèmes de micro-calculateur, cette contrainte est acceptée en mettant en corrélation l'adresse d'un dispositif avec sa taille de façon que, par exemple, tous les dispositifs de 32 bits soient inclus dans une première plage d'adresse prédéterminée et que tous les dispositifs de 16 bits soient inclus dans une seconde plage d'adresse différente. Par l'application de cette technique, la taille d'un dispositif peut alors être déterminée par son adresse. Cependant, dans les systèmes qui requièrent une localisation souple d'une grande variété de dispositifs inclus dans des plages d'adresse variant de manière importante, cette contrainte ne peut pas être satisfaite. Une catégorie de ces systèmes est celle dont les systèmes utilisent le bus à micro-canal IBM. Dans de nombreux systèmes, y compris des systèmes du type indiqué précédemment, un dispositif lorsqu'il est adressé, renvoie une indication de sa taille. Cependant, étant donné que l'unité 82385 requiert* la disponibilité d'informations relatives à la taille du dispositif au début d'un cycle de bus, dans des systèmes o ces informations ne sont disponibles qu'ultérieurement au cours du cycle, il est possible de rencontrer un signal NA imprévu. Un objet de la présente invention est donc de fournir un agencement dans un système de micro-calculateur 80386/82385 qui commande sélectivement le signal NA de façon que celui ci ne soit envoyé à l'unité 80386 que dans des circonstances appropriées. Dans les autres cas, on empêche le signal NA d'atteindre l'unité 80386. Le fait d'empêcher le signal NA d'atteindre l'unité 80386 interdit le fonctionnement en pipe line, c'est & dire évite la génération d'informations pour un cycle suivant avant la fin du cycle donné. Grâce à cette commande souple du signal NA, le système de microcalculateur peut maintenant fonctionner avec un dimensionnement dynamique des bus, c'est à dire qu'il peut maintenant fonctionner avec des dispositifs de diverses tailles sans informations au début du cycle en ce qui concerne la taille du dispositif en fonctionnement associé. Les dispositifs à possibilité d'antémémoire, c'est à dire les dispositifs générant des données qui peuvent être mises en antémémoire, sont nécessairement des dispositifs de 32 BITS. Tous ces dispositifs ont des adresses (plus précisément des étiquettes) qui indiquent la possibilité d'antémémoire. Tous les autres dispositifs (que ce soit ou non des dispositifs de 32 bits) ont des adresses indiquant que les informations qu'ils génèrent ne seront pas trouvées en antémémoire. La commande du signal NA dépend en partie de la possibilité d'antémémoire. Plus précisément, étant donné que tout dispositif à possibilité d'antémémoire est un dispositif de 32 bits, il n'est pas question de signaux NA imprévus en fonctionnement avec des dispositifs à possibilité d'antémémoire. De plus, dans le cas d'une présence d'antémémoire, il n'est pas question que le signal NA soit inapproprié puisqu'il n'y a que les dispositifs à possibilité d'antémémoire (dispositifs de 32 bits) qui produisent une touche antémémoire. Ainsi, la caractéristique importante qui consiste à permettre l'utilisation du dimensionnement dynamique des bus et des opérations en pipe line, empêche le signal NA d'atteindre l'unité 80386 dans le cas de la revendication d'une adresse à un dispositif sans possibilité d'antémémoire. Si pendant le déroulement d'un cycle donné (o le signal NA a ét déconditionné), il apparaît que le dispositif est un dispositif de 32 bits, le cycle s'achève alors de manière normale (sans fonctionnement en pipeline). D'autre part, s'il apparaît pendant le déroulement du cycle que le dispositif en fonctionnement associé est un dispositif de 16 bits (et que le cycle est un cycle de 32 bits), l'unité 80386 génère alors le cycle supplémentaire nécessaire. Cette opération est entièrement transparente à l'unité 82385, c'est à dire que l'unité 82385 ne prend pas part à la commande du second des deux cycles. Finalement, si le dispositif en fonctionnement associé apparaît comme un dispositif de 8 bits, l'unité 80386 "voit" alors un dispositif de 16 bits si bien qu'il fonctionne exactement comme décrit dans le cas du dispositif de 16 bits. Autrement dit, l'unité 80386 "voit" un dispositif de 16 bits si bien qu'après la fin du premier cycle (cycle pendant lequel il est informé qu'il fonctionne avec un dispositif de 16 bits), un second cycle est généré. Cependant, non seulement transparents à l'unité 82385 mais aussi transparents à l'unité 80386, d'autres éléments logiques convertissent chacun des cycles de 16 bits de l'unité 80386 en deux cycles de 8 bits. Ainsi, dans le cas o un cycle de 32 bits est dirigé vers un dispositif de 8 bits, l'unité 82385 ne prend pas part à l'opération, l'unité 80386 génère deux cycles de 16 bits et d'autres éléments logiques fonctionnent sur chacun des cycles de 16 bits de l'unité 80386 pour générer deux cycles de 8 bits. Selon l'une de ses caractéristiques, la présente invention permet ainsi de réaliser un système de micro-calculateur avec la mise en séquences d'instructions en pipeline en réponse à un signal d'adresse suivant avant la fin d'une opération en cours, ledit système de micro-calculateur comprenant: un processeur d'une largeur de bit donnée, un sous système de mémoire antémémoire de ladite largeur de bit donnée connecté audit processeur par un bus local, un autre bus connectant ledit bus local à d'autres composants ayant ladite largeur de bit donnée et avec au moins un composant d'une largeur de bit réduite, au moins certains desdits composants ayant ladite largeur de bit donnée ayant une adresse comprise dans une plage d'adresse associée audit sous système d'antémémoire et ledit au moins un composant de largeur de bit réduite ayant une adresse à l'extérieur d'une plage d'adresse associée audit sous système d'antémémoire, dans lequel ledit système de micro-calculateur comprend en outre: a) des moyens décodeurs d'adresses répondant à une adresse revendiquée sur ledit bus local pour générer un signal indiquant si ladite adresse revendiquée est ou n'est pas comprise dans ladite plage d'adresse associée audit sous système de mémoire antémémoire, et b) des moyens logiques répondant audit signal depuis lesdits moyens décodeurs d'adresses pour générer un signal d'adresse suivant audit microprocesseur pour un fonctionnement en pipeline à moins que lesdits moyens décodeurs d'adresses n'indiquent une adresse revendiquée à l'extérieur d'une plage associée audit sous système d'antémémoire Brève description des dessins La figure 1 est une vue générale en trois dimensions d'un système de micro-calculateur classique utilisant la présente invention. La figure 2 est représentation schématique détaillée de la majorité des composants d'un système de micro-calculateur classique utilisant la présente invention. La figure 3 est une représentation schématique un peu plus détaillée que la figure 2, montrant les connexions entre les unités 80386 et 82385 recommandées par le fabricant, qui est utile pour comprendre pourquoi un tel agencement est incompatible avec le dimensionnement dynamique des bus. La figure 4 est une représentation schématique plus détaillée similaire à la figure 3 mais illustrant l'application de la présente invention qui permet à la fois la mise en séquences d'instructions en pipeline et le dimensionnement dynamique des bus. La figure 5 est une autre représentation schématique détaillée du dispositif qui traite la conversion des cycles de 16 à 8 bits, en transparence vis à vis à& la fois de l'unité 82385 et de l'unité 80386, et Les figures 6 et 7 comprennent un schéma chronologique et une représentation schématique de la bascule DL et de son signal de commande LEDMA (Conditionnement bascule depuis DMA) pour montrer comment le sous système DMA synchrone est mis en interface avec le bus local CPU (fonctionnant sous une horloge différente) pour éviter un encombrement possible sur le bus de système 250. Description détaillée d'une réalisation préférée La figure 1 représente un système de micro-calculateur classique dans lequel la présente invention peut être utilisée. Comme on le voit sur la figure, le système de micro-calculateur comprend un certain nombre de composants qui sont interconnectés ensemble. Plus particulièrement, une unité de système 30 est raccordée à et commande une unité de contrôle 20 (comme un affichage vidéo classique). L'unité de système 30 est aussi raccordée à des dispositifs d'entrée comme un clavier 40 et une souris 50. Un dispositif de sortie comme une imprimante peut aussi être connecté à l'unité de système 30. Finalement, l'unité de système 30 peut comprendre une ou plusieurs unités à disques comme l'unité à disques 30. Comme on l'expliquera ci dessous, l'unité de système 30 répond à des dispositifs d'entrée comme le clavier 40 et la souris 50, et des dispositifs d'entrée/sortie comme l'unité à disques 70 pour délivrer des signaux afin de commander des dispositifs de sortie comme l'unité de contrôle 20 et l'imprimante 60. Naturellement, l'homme de l'art reconnaîtra que d'autres composants classiques pourraient aussi être connectés à l'unité de système 30 pour fonctionner en interaction avec celle ci. Selon les enseignements de la présente invention, le système de microcalculateur 10 comprend (comme on le décrira plus particulièrement ci dessous) un sous système de memoire antémémoire de façon qu'il y ait un bus local CPU interconnectant un processeur, une unité de commande d'antémémoire et une mémoire antémémoire qui est elle même raccordée par l'intermédiaire d'une mémoire intermédiaire à un bus de système. Le bus de système est interconnecté et fonctionne en interaction avec les dispositifs E/S comme le clavier 40, la souris 50, l'unité à disques 70, l'unité de contrôle 20 et l'imprimante 60. De plus, selon la présente invention, l'unité de système 30 peut aussi comprendre un troisième bus comprenant une architecture de micro-canal pour l'interconnexion entre le bus de système et d'autres dispositifs d'entrée/sortie. La figure 2 est une représentation schématique illustrant les divers composants d'un système de micro-calculateur courant réalisé selon les enseignements de la présente invention. Un bus local CPU 230 (comprenant des composants de données, d'adresses et de commande) assure la connexion d'un microprocesseur 225 (comme une unité 80386), d'une unité de commande d'antémémoire 260 (qui peut comprendre une unité de commande d'antémémoire 82385) et une mémoire antémémoire à accès aléatoire 255. Une mémoire intermédiaire 240 est aussi raccordée sur le bus local CPU 230. La mémoire intermédiaire 240 est elle même connectée au bus de système 250 comprenant aussi des composants d'adresses, de données et de commande. Le bus de système 250 est disposé entre la mémoire intermédiaire 240 et une autre mémoire intermédiaire 253. Le bus de système 250 est aussi connecté à un élément de commande et de chronologie de bus 265 et à une unité de commande DMA 325. Un bus de commande d'arbitrage 340 raccorde l'élément de commande et de chronologie de bus 265 et un élément d'arbitrage central 335. La mémoire principale 350 est aussi connectée au bus de système 250. La mémoire principale comprend un élément de commande de mémoire 351, un multiplexeur d'adresses 352 et une mémoire intermédiaire de données 353. Ces éléments sont interconnectés aux élémects de mémoire 360 à 364 comme le montre la figure 2. Une autre mémoire intermédiaire 254 est raccordée entre le bus de système 250 et un bus planaire 270. Le bus planaire 270 comprend des composants d'adresses, de données et de commande, respectivement. Sont raccordés le long du bus planaire 270, divers adaptateurs E/S et autres composants comme l'adaptateur d'affichage 275 (qui est utilisé pour commander l'unité de contrôle 20), une horloge 280, une mémoire à accès aléatoire supplémentaire 285, un adaptateur RS 232 290 (utilisé pour des opérations E/S en sériesi, un adaptateur d'imprimante 295 (qui peut être utilisé pour commander l'imprimante 60), une unité de chronologie 300, un adaptateur de disquette 305 (qui coopère avec l'unité à disques 70), une unité de commande d'interruption 310 et la mémoire permanente 315. La mémoire intermédiaire 253 (raccordée d'un côté au bus de système 250) est raccordée de l'autre côté aux prises 401 de micro-canal (TM) du bus à micro-canaux 320. Le bus 320 peut porter des dispositifs de diverses tailles y compris des dispositifs de 32 bits, des dispositifs de 16 bits et des dispositifs de 8 bits. Un dispositif de mémoire classique 331 est raccordé sur le bus 320 comme le montre la figure. L'un des avantages de ce bus est la souplesse dont bénéficie l'utilisateur pour insérer librement divers dispositifs dans les différentes prises selon son choix. La combinaison de ces dispositifs et leur installation dans les différentes prises évite une attribution d'adressage rigide et constituent une raison principale de la présente invention. En dehors de la présente invention, le système de micro-calculateur 80386/82385 tel que décrit ici, ne pourrait absolument pas assurer des là opérations en pipeline ou aurait un fonctionnement défectueux provoqué par des opérations en pipeline imprévues ou inappropriées. La figure 3 représente des interconnexions sélectionnées entre les unités 80386 et 82385 relatives à la génération et à l'utilisation du signal d'adresse suivante (NA),comme recommandé par le fabricant. Plus particulièrement, l'interface entre le bus local CPU 230 et le bus de système 250 est la mémoire intermédiaire 240 dont les composants comprennent une mémoire intermédiaire de commande DL (pour les données) et AL (pour l'adresse). Comme le montre la figure 3, le composant de données du bus local CPU (CPULBD) constitue une connexion d'entrée/sortie pour DL du côté du bus local CPU. De la même manière, le composant de données SBD du bus local de système 250 constitue la connexion d'entrée/sortie de DL du côté du bus de système 250. La mémoire intermédiaire DL est commandée par ses signaux d'entrée LDSTB, BT/R et DOE. LDSTB verrouille des données dans DL et DOE conditionne la sortie de DL. Le point depuis lequel l'entrée est acceptée (bus local CPU 230 ou bus de système 250) et vers lequel la sortie est dirigée (bus de système 250 ou bus local CPU 230) est déterminé par BT/R. De la même manière, le composant d'adresse de la mémoire intermédiaire AL comporte une entrée issue du composant d'adresse du bus local CPU (CPULBA) et une sortie au composant d'adresse du bus local de système 250 (SBA). D'une manière similaire, le composant AL de la mémoire intermédiaire est commandé par ses deux signaux de commande BACP et BAOE, le premier verrouille des informations d'adresse de CPULBA dans AL et le dernier conditionne la sortie, c'est à dire au bus de système 250. Les signaux de commande LDSTB, DOE, BACP et BAOE sont générés par l'unité 82385. Le composant d'adresse CPULBA du bus local CPU 230 a son origine à l'unité 80386 et le composant de données CPULBD du bus local CPU 230 a son origine et se termine à l'unité 80386. L'unité 82385 utilise deux signaux supplémentaires X16 et NCA pour la génération du signal NA. Le signal X16 indique si le dispositif en utilisation associé est un dispositif à 16 bits ou & 32 bits. Une source du signal X16 est le décodeur d'adresses de bus local (LBAD). En outre, le fabricant recommande que le signal BS16 soit lié au signal X16. Le signal BS16 est appliqué en entrée à l'unité 80386 pour indiquer à l'unité 80386 si le dispositif en fonctionnement associé est à 16 ou 32 bits. Une source du signal BS16 est constituée oar un décodeur d'adresses de dispositifs comme MAD. MAD représente le décodeur d'adresses d'un dispositif quelconque raccordé au bus de système 250 ou à tout autre bus qui lui est raccordé comme le bus 270 ou le bus 320. Lorsqu'un dispositif comme MAD reconnaît son adresse sur un composant d'adresses de bus comme MA, il renvoie le signal BS16 qui est au niveau haut ou au niveau bas suivant que le dispositif est un dispositif à 16 bits ou à 32 bits. L'adresse sans possibilité d'antémémoire (NCA) constitue une autre entrée à l'unité 82385 qui indique si une adresse revendiquée est une adresse à possibilité d'antémémoire. Une adresse à possibilité d'antémémoire est définie comme une adresse de dispositif qui est compatible avec le soussystème d'antémémoire et est donc un dispositif de 32 bits. Ce signal est généré par le décodeur d'adresses d'antémémoire (CAD) en raison d'une entrée issue du composant d'adresses du bus local CPU 230. Le fabricant suggère qu'une partie de mémoire peut être mise de c8té comme sans possibilité d'antémémoire en utilisant cette entrée à l'unité 82385. L'architecture recommandée de la figure 3 permet des opérations en pipeline effectives (par l'utilisation du signal NA) dans l'une quelconque des circonstances suivantes: 1) lorsque tous les dispositifs connectés au bus de système 250 ou à un bus quelconque raccordé, sont des dispositifs de 32 bits, ou 2) lorsque les dispositifs connectés au bus de système 250 ou à n'importe quel bus raccordé, peuvent être des dispositifs de 32 bits ou de 16 bits, aussi longtemps que le signal X16 est disponible au début d'un cycle de bus quelconque. Lorsque le signal X16 est disponible au début d'un cycle de bus donné, l'unité 82385 se basant sur cette information, détermine si le signal NA est approprié et s'il n'est pas approprié, il n'est pas généré. Ainsi, dans le cas o l'unité 80386 fonctionne avec un dispositif de 32 bits, le signal NA est alors normalement généré avant la fin d'un cycle donné pour l'exécution d'une opération en pipeline. D'autre part, si le dispositif est un dispositif de 16 bits, le signal NA n'est alors pas généré, ce qui permet à l'unité 80386 de générer le second cycle nécessaire à un fonctionnement approprié avec un dispositif à 16 bits. Cependant, l'architecture de certains sous-systèmes de bus (par exemple le bus à micro-canaux), permet le mélange de dispositifs de 8 bits, de 16 bits et de 32 bits. En raison du fait que le signal BS16 n'est pas renvoyé avant un certain temps après que le dispositif classique MAD ait reconnu son adresse sur le sous-système de bus, il n'est pas généré suffisamment tôt pour que l'unité 82385 le prenne en compte pour déterminer si NA doit être généré. En conséquence, les particularités de l'unité 82385 la rendent incompatible, plus particulièrement en ce qui concerne la génération du signal NA, avec les sous-systèmes de bus ayant une souplesse telle que celle présentée par le bus à micro-canaux. La figure 4 est une représentation schématique similaire à celle de la figure 3 mais modifiée pour être utilisée selon les enseignements de la présente invention. Avant de commencer à décrire le fonctionnement du dispositif de la figure 4, on va décrire un certain nombre de différences existant entre les figures 3 et 4. Une différence principale est constituée par le fait que les sorties X16 et NA de l'unité 82385 ne sont plus utilisées. En outre, un nouvel élément logique CL est placé entre l'unité 82385 et l'unité 80386. L'élément logique CL génère le signal CPUNA (remplaçant le signal NA non utilisé issu de l'unité 82385). L'unité logique CL répond au signal NCA issu de CADR et au signal BADS issu de l'unité 82385 (indiquant s'il y a un insuccès antémémoire). L'élément logique CL a aussi une entrée BW/R indiquant s'il y a un cycle de bus de système quelconque qui est une lecture ou une écriture. Comme on le décrira ultérieurement, bien que BW/R soit utilisé dans une réalisation particulière de la présente invention, il s'agit d'un signal qui n'est pas essentiel. Le décodeur CADR reçoit, outre ses entrées depuis les bits A17-A26 et A31 de CPULBA, des bits de possibilité d'antémémoire programmable (PCB). Dans une réalisation actuelle, le premier de ces trois bits représente une décision de permettre de mettre en antémémoire de l'espace ROM. Un second bit soit. conditionne le décodeur CADR pour délivrer en sortie NCA en se basant sur les informations décodées, soit, alternativement pour déclarer tous les accès sans possibilité d'antémémoire, c'est à dire revendique NCA indépendamment de l'adresse revendiquée sur CPULBA. Finalement, un troisième bit indique dans un état, que l'espace d'adresses entre 0 et 8 mégamultiplets est à possibilité d'antémémoire et que l'espace d'adresses entre 8 et 16 mégamultiplets est sans possibilité d'antémémoire. Dans l'autre état, le bit indique que l'espace d'adresses dans la plage de 0 à 16 mégamultiplets est tout à possibilité d'antémémoire. Si on le désire, l'effet de ce bit peut être multiplié en réfléchissant simplement le statut des 16 premiers mégamultiplets au travers des plages de 16 mégamultiplets suivantes. Naturellement, l'utilisation de ces indicateurs de possibilité d'antémémoire particuliers (ou autres) n'est pas essentielle à la présente invention. Il est cependant important d'agencer CADR de façon qu'il puisse rapidement décoder ses entrées et produire NCA. Dans une réalisation actuelle, la fenêtre de chronologie pour produire NCA à partir d'adresses valides sur CPULBA, était très courte, de l'ordre de dix nanosecondes. Une autre différence principale entre les figures 3 et 4 est que le dispositif MAD courant génère maintenant non seulement un seul signal BS16 (comme dans le cas de la figure 3), mais deux signaux, CS32 et CS16. Ceci permet à MAD de s'identifier lui-même comme un dispositif de 32 bits, de 16 bits ou de 8 bits. Le signal CS32 est appliqué en entrée à une bascule FF qui est maintenant utilisée pour générer le signal BS16 qui est dans un état dans le cas o MAD est un dispositif de 32 bits et dans un état différent dans le cas o MAD est un dispositif de 8 bits ou de 16 bits. Si ni CS32, ni CS16 n'est généré par le dispositif, le dispositif est alors par défaut un dispositif de 8 bits. Les équations logiques qui ont été citées 'en référence ci dessus, sont reproduites immédiatement ci dessous. Les symboles ont les significations suivantes: e Symbole Définition / Négation := Terme enregistré A, égal à = Un terme combinatoire, égal à & ET logique + OU logique 17 2632090 Equations logiques /BT2:=BUSCYC385 & PIPECYC385 & /BADS & CLK & BT2 (1) + BUSCYC385 & /PIPECYC385 & BADS & CLK & NACACHE & BT2 + MISS1 & /BUSCYC385 & /BADS -& /(BW/R) & CLK & NCA & /BREADY * /MISS1 & /BREADY & /BUSCYC385 & CLK + /BT2 & BREADY & NACACHE + /CLK & /BT2 /BUSCYC385:=BUSCYC385 & /BADS & CLK (2) + BUSCYC385 & /PIPECYC385 & CLK + BUSCYC385 & /BT2.& CLK + /BUSCYC385 & BREADY + /BUSCYC385 & /CLK /CPUNA:=/MISS1 & CLK & CPUNA & /NACACHE (3) + /MISS1 & CLK-& CPUNA & /BREADY & /BUSCYC385 + /CPUNA & /CLK + /CPUNA & /MISS1 & CLK + /CPUNA & CLK & BREADY + /CPUNA & BUSCYC385 & NACACHE & CLK /MISSl:=MISSl &.BUSCYC385 & CPUNA & /BADS & /(BW/R) & CLK & NCA (4) + MISSI & /BUSCYC385 & /BADS & /(BW/R) & CLK & NCA & /BREADY + /MISS1 & /CLK + /MISS1 & BREADY /PIPECYC385:=PIPEcYC385 & /BADS & /BOSCYC385 & CLK & /BREADY -(5) + PIPECYC385 & /MISS1 & BT2 & /BUSCYC385 & CLK & /BREADY + /PIPECYC385 & /CLK | Dans les équations logiques qui précèdent, les signaux suivants sont décrits ou cités relativement aux publications Intel auxquelles on s'est référé précédemment: BADS BREADY (BW/R) actuellement référencé BW/R, les parenthèses sont utilisées pour indiquer que le terme en entier est un signal CLK. BADS, lorsqu'il est actif, indique une adresse valide sur le bus de système 250. BREADY est un signal d'état "prêt" du bus de système 250 au bus local CPU 230. BW/R définit une Ecriture ou Lecture de bus de système 250. CLK est un signal de chronologie de processeur qui est en phase avec le processeur 225. (W/R) est le signal Lecture ou Ecriture classique pour le bus local CPU 230. Les équations (l)-(5) définissent: BT2 BUSCYC385 CPUNA MISS1 PIPECYC385 en termes de signaux définis, les signaux décrits ou auxquels on se réfère dans les publications Intel citées précédemment et NCA et NACACHE. BT2 réfléchit l'état du bus de système 250. L'état BT2 est un état défini dans les publications Intel citées précédemment. BUSCYC385 réfléchit aussi l'état du bus de système 250. Il est au niveau haut pour les états de bus BTI, BT1, BT1P et au niveau bas pour les états de bus BT2, BT2P et BT2I (ce sont à nouveau des états de bus référencés dans les publications Intel citées précédemment). CPUNA est un signal à l'unité 80386 permettant des opérations en pipeline. I1 s'agit du signal qui remplace le signal NA depuis l'unité 82385. MISS1 est actif pour définir le premier cycle d'un double cycle pour la manipulation de lecture de 64 bits à des dispositifs à possibilité d'antémémoire. PIPECYC385 est actif pendant BT1P (qui est un état de bus auquel on se réfère dans les publications Intel citées précédemment). NCA est un signal crée par le décodage du composant d'adresses sur le bus local CPU 230 pour réfléchir, à l'état actif, un accès sans possibilité d'antémémoire. La possibilité d'antémémoire est déterminée par un composant étiquette (A31 à A17) et des informations programmables définissant les étiquettes (s'il y en a) qui se réfèrent aux adresses à possibilité d'antémémoire par opposition aux adresses sans possibilité d'antémémoire. NACACHE est un signal similaire au signal BNA. BNA est un signal généré par le système requérant une adresse suivante du bus local CPU 230 et est référencé dans les publications de Intel citées précédemment. NACACHE ne diffère de BNA que par rapport au fait que BNA est crée pour une antémémoire de 32 K tandis que NACACHE est crée pour une antémémoire de 64K. Aussi longtemps que la mémoire antémémoire est de 32K, comme indiqué dans les-publications de Intel, le signal NACACHE auquel on se réf réfère ici pourrait être remplacé par le signal BNA. A l'équation 3, les termes fixes sont trouvés aux lignes 1 et 2. Le terme de la ligne 1 indique une opération en pipeline. /MISS1 indique une opération de 32 bits (comme on le décrira ultérieurement) et ainsi CPUNA est approprié. Le terme sur la ligne 2 est un cycle qui se termine prématurément sans pipeline, par exemple /BREADY. En se reportant à l'équation 4, les termes des lignes 1 et 2 sont les termes fixes. Ces deux termes dépendent de NCA. La figure 5 représente un détail du dispositif associé à la mémoire intermédiaire et au décodeur 254 (associé au bus 270) et à la mémoire intermédiaire 253 (associée à un bus à micro-canaux (TM) 320). Comme on l'a déjà décrit, le dispositif de la figure 4 est prévu pour des cycles de 16 bits lorsque des cycles de 32 bits sont dirigés vers des dispositifs de 8 ou 16 bits et ceci est fait d'une manière transparente pour l'unité 82386. Plus particulièrement, le dispositif comprend l'unité logique de commande CLA, un dispositif de mise en séquences S et une unité de couplage commandée ALS qui connecte des lignes sélectives des lignes de données à d'autres lignes des lignes de données. Comme on le voit plus particulièrement à la figure , les huit bits d'ordre inférieur (D0-D7) peuvent être connectés au second segment de 8 bits (D8-D15) sous la commande du signal DIR et /G. De plus, le sens du transfert (de gauche à droite ou vice versa) est aussi commandé par DIR. Il apparalt plus particulièrement que dans n'importe quel cycle de 16 bits généré par l'unité 80386, des données sont placées sur les seize bits d'ordre inférieur du bus de données. Afin de convertir un cycle de 16 bits généré par l'unité 80386 en deux cycles de 8 bits pour l'unité MAD appropriée, le matériel représenté à la figure 5 force l'opération de 16 bits à ressembler à deux opérations de 8 bits effectués au dispositif de 8 bits MAD tandis qu'à l'unité 80386, les deux cycles de 8 bits ressemblent à un seul cycle de 16 bits. L'unité logique de commande CLA assure une fonction de décodage pour la commande de cycle de conversion. Elle détecte lorsqu'un cycle de conversion doit se dérouler et commande les signaux GATE 245 et DIR 245 de l'unité ALS qui connectent les huit bits d'ordre inférieur du bus de données à un second segment de 8 bits du bus de données. Les équations logiques pour CLA sont indiquées ci dessous. Une fois que les conditions des cycles de conversion ont été détectées, le signal DATACONV active la séquence. Le signal CS16, lorsqu'il est inactif, indique la présence d'un dispositif de 8 bits et donc la nécessité de la conversion. Le signal CS16, lorsqu'il est actif, indique un dispositif de 16 ou de 32 bits. Q1 est utilisé dans la séquence pour indiquer la fin de la première moitié du cycle de conversion. Les signaux DATACONV et Q1 sont appliqués en entrée au dispositif de mise en séquences S. Le dispositif de mise en séquences S assure deux fonctions. L'une consiste à maintenir l'unité 80386 à l'état non prêt jusqu'à ce que la seconde moitié du cycle ait été amorcée. ARDYEN est passé au niveau logique 1 pour indiquer à l'unité 80386 qu'elle ne doit pas terminer le cycle. L'unité de mise en séquences stimule aussi la fin d'un cycle de 8 bits et le début d'un second. ALTALE synchronise un niveau logique 1 sur la ligne d'adresses A0 et provoque le redémarrage du générateur d'état d'attente. CMTLOFF provoque le passage à l'état inactif, puis à nouveau à l'état actif, du signal de commande actif pour stimuler la fin d'un cycle et le début d'un autre. CONVAO est utilisé comme une entrée à la bascule d'adresse A0 pour forcer AO à un état logique 1 pour la seconde moitié du cycle de conversion. Le cycle de conversion de 16 à 8 bits achevé est équivalent en temps et fonction à deux cycles de 8 bits consécutifs. 22 2632090 Les signaux auxquels on s'est référé ci dessus et qui sont représentés à la figure 5, sont définis ci dessous: e MEMCS16 Sélection dispositif mémoire 16 bits (I/OCS16) Sélection dispositif E/S 16 bits. Les parenthèses sont utilisées pour indiquer que l'expression ne concerne qu'un seul signal AEN1, AEN2 Conditionnements adresses depuis unités commande DMA MEMR, MEMW, Signaux commande CPU IOR, IOW XBHE Conditionnement niveau haut bus, indique quand des données doivent apparaître sur un segment de huit bits d'ordre plus élevé de la ligne d'ordre d'adresse la moins significative du bus de données XAO Q1 Sortie générateur état attente (2ième sortie état) D0-D7 Segment de huit bits d'ordre le plus bas du bus de données D8-D15 Second segment de huit bits du bus de données ARDYEN Conditionnement état prêt asynchrone à l'unité 82284 -?-, ajoute états attente dans cycle conversion pour permettre la génération des deux cycles de 8 bits. ALT ALE Bascule adresses alternative (haut actif) Utilisateur pour synchroniser AO au 1 logique et redémarrer générateur état attente pour second transfert de 8 bits CONV.AO Cycle conversion AO. (haut actif) Fournit 1 logique à bascule adresse AO si bien que AO est incrémenté pour le second cycle de 8 bits CNTLOFF Commande coupée. Coupure signal commande actif pour 3 horloge -?- pour simuler la fin d'un cycle de 8 bits et le début d'un second cycle de 8 bits. CNTLOFF est aussi utilisé pour verrouiller le bus de données d'ordre inférieur à l'unité CPU (pendant un cycle de lecture) au premier transfert de 8 bits. Entrée à l'unité 82288. Equations logiques /GATE 245:= MEMCS16 & AEN1 & AEN2 & /MEMR & /XBHE & XAO (6) + MEMCS16 & AEN1 & AEN2 & /MEMW & /XBHE & XA0 + (I/OCS16) & AEN1 & AEN2 & /IOR & /XBHE & XA0 + (I/OCS16) & AEN1 & AEN2 & /IOW & /XBHE & XA0 + /AEN1 & /MEMCS16 & /XBHE & /IOR + /AEN1 & /MEMCS16 & /XBHE & /MEMR /DIR245:= /AEN1 & /MEMR (7) + AEN1 & AEN2 & /XBHE & /MEMW + AEN1 & AEN2 & /XBHE & /IOW /DATA CONV:=MEMCS16 & AEN1 & AEN2 & /MEMR & Q1 & /XBHE & /XA0 (8) + MEMCS16 & AEN1 & AEN2 & /MEMW & Q1 & /XBHE & /XAO + (I/OCS16) & AEN1.& AEN2 & /IOR & Q1 & /XBHE & /XAO + (I/OCS16) & AEN1 & AEN2 & /IOW & Q} & /XBHE & /XAO La figure 7 représente un détail de la bascule DL, les connexions d'entrée/sortie de données entre le bus de système 250 et le bus local CPU 230 ainsi que le signal de commande LEDMA. La figure 6 compare le signal LEDMA à d'autres signaux sur le bus local CPU 230 (indiqué dans le tiers supérieur de la figure 6 avec la légende "Signaux de bus local 82385 & 25 MHz"), aux signaux sur le bus de fonction optionnelle 320 (indiqués par la référence "Micro-canal (TM)"), aux signaux du bus 320 et aux signaux sur le bus de système 250 (indiqués dans le tiers inférieur par la légende "Signaux DMA"). Comme indiqué dans le tiers supérieur de la figure 6, le bus local CPU 230 est un bus à horloge synchrone (les horloges CPUCLK2 et CPUCLK sont concernées comme indiqué sur la figure). La partie centrale (comprenant la partie principale de la figure 6) montre un seul cycle sur le bus local CPU 230. Le début du cycle est indiqué par la ligne verticale la plus à gauche et la fin du cycle est indiquée par la ligne verticale la plus à droite. Comme le montre la figure 6 dans son tiers médian, une fois qu'un cycle a commencé sur le bus local CPU 230, pour un cycle qui va au travers du bus de système 250 jusqu'au bus 320, les signaux de commande SSO* et SS1* deviennent actifs (niveau bas). Peu de temps après, une adresse est verrouillée dans la mémoire intermédiaire 253 (référencée ADL*). Puis le signal CMD* devient aussi actif (niveau bas). C'est ce point qui définit le début du cycle DMA sur le bus de système 250 et le bus de fonction optionnelle 320. Ceci est indiqué par la continuation de la troisième ligne verticale (depuis la gauche) s'étendant dans le tiers inférieur de la figure 6. Peu après le début du cycle DMA, les signaux DMAS0 et DMAS1 deviennent actifs (niveau bas). Comme on le voit à la figure 6, le signal DMARDY* change ultérieurement d'état. A la transition suivante dans DMARDY* (la transition au niveau bas), les données requises sont localisées sur le bus de système 250. En conséquence, le signal 26 2632090 26C KY LEADMA change d'état (transition montante). Ceci a pour effet de verrouiller les données sur le bus de système 250 dans la bascule DL. La même transition qui a produit le changement d'état dans LEDMA a aussi un effet sur BREADY* (comme montré par la flèche de la figure 6). Autrement dit, une fois que DMARDY* a été échantillonné au niveau bas, les données requises ont déjà été verrouillées dans la bascule DL et le canal DMA a libéré le bus 250. Ainsi, comme le montre la figure 6, la transition dans DMARDY* conduit à une transition dans BREADY*. A la transition au niveau haut immédiatement suivante de BT2, le cycle CPU peut se terminer en toute sécurité (et c'est la ligne verticale la plus à droite de la figure 6). Comme on le voit à la figure 6, la terminaison du cycle CPU produit un changement d'état dans CMD* (sur le bus à micro-canaux (TM) 320) et a aussi pour effet de déconditionner LEDMA étant donné qu'à la fin du cycle, l'unité CPU 225 a accepté les données issues de la bascule DL. Ce qui précède montre que préalablement à la terminaison du cycle CPU et comme exigence pour la terminaison du cycle CPU, il y a la terminaison préalable du cycle DMA. Ceci garantit que lorsque l'unité CPU amorce un cycle suivant (à droite de la ligne verticale la plus à droite de la figure 6),le cycle DMA s'est précédemment achevé et qu'ainsi le bus est exempt de toute donnée qui pourrait avoir été transférée au cours du cycle DMA. La présente invention permet ainsi un arrangement entre le dimensionnement dynamique des bus (qui donne la souplesse essentielle au bus à micro-canaux (TM) 320) et le fonctionnement en pipeline par l'intermédiaire de la génération sélectionnée de CPUNA à l'instant approprié. Comme on l'a indiqué, CPUNA dépend de la détection d'un accès à possibilité d'antémémoire auquel cas CPUNA est produit avant l'achèvement du cycle en cours. D'autre part, lorsqu'un accès sans possibilité d'antémémoire est détecté, le fonctionnement en pipeline est alors empêchée, c'est à dire que CPUNA n'est pas revendiqué jusqu'à ce que le bus de système 250 indique que le cycle s'est achevé (BREADY est revendiqué). En même temps, un arrangement est crée entre le mécanisme DMA synchrone et le bus local CPU synchrone (mais commandé par une horloge différente) au travers de la mémoire intermédiaire DL. Tandis que le cycle DMA est amorcé par le bus local CPU 230, le cycle sur le bus local CPU 230 ne se termine pas avant la fin du cycle DMA. Bien qu'une réalisation particulière de la présente invention ait été décrite ici, il est évident que ladite invention peut être mise en oeuvre sous de nombreuses formes différentes. En conséquence, la présente invention ne doit pas être analysée d'après l'exemple décrit ici mais plutôt d'après les revendications ci jointes. REVENDICATIONS Un système de micro-!alculateur comprenant: un microprocesseur ayant une largeur de données prédéterminée pouvant fonctionner dans un mode de mise en séquences d'instructions en pipeline et répondant à l'entrée du signal d'adresse suivant pour générer une adresse relative à une opération suivant immédiatement une opération en cours, un sous-système de mémoire antémémoire de ladite largeur de données prédéterminée et raccordé au microprocesseur par un bus local ayant ladite largeur de données prédéterminée, un autre bus raccordé audit bus local et connecté à des premiers composants de système adressables de ladite largeur de données prédéterminée et à un ou plusieurs seconds composants de système adressables de largeur inférieure à ladite largeur de données prédéterminée, au moins certains desdits premiers composants adressables ayant des adresses comprises dans la plage d'adresses du sous-système d'antémémoire et le ou chaque second composant ayant une adresse en dehors de la plage d'adresses du sous-système d'antémémoire, un décodeur d'adresses répondant à une adresse sur ledit bus local pour générer un signal de commande indiquant si oui ou non l'adresse est comprise dans la plage du sous-système d'antémémoire, et des moyens logiques répondant audit signal de commande pour ne générer un signal d'adresse suivant que lorsque ledit signal de commande indique une adresse comprise dans la plage du sous-système d'antémémoire. 2. Un système selon la revendication 1 dans lequel ledit décodeur d'adresses répond à des bits prédéterminés d'une dite adresse suivante sur le bus local pour générer ledit signal de commande. 3. Un système selon la revendication 2 dans lequel ledit décodeur d'adresses répond en outre à un second signal de commande qui, dans un état, permet des accès d'antémémoire et, dans son autre état, déconditionne tous les accès d'antémémoire, permettant audit signal de commande de ne pouvoir indiquer une adresse comprise dans la plage du sous-système d'antémémoire que lorsque le second signal de commande est dans ledit premier état. 4. Un système selon la revendication 3 dans lequel ledit décodeur d'adresses répond en outre à un troisième signal de commande qui, dans un état, indique une première plage d'adresses à possibilité d'antémémoire et, dans son autre état, indique une seconde plage d'adresses à possibilité d'antémémoire, de telle sorte que ledit signal de commande ne peut indiquer une adresse dans la plage du sous-système d'antémémoire que lorsque l'adresse définie par lesdits bits prédéterminés tombent dans la plage d'adresses indiquée par le troisième signal de commande. 5. Un système selon la revendication 1 ou la revendication 2 dans lequel ledit sous-système d'antémémoire comprend une mémoire antémémoire et une unité de commande d'antémémoire, et dans lequel lesdits moyens logiques répondent en outre à un signal d'unité de commande d'antémémoire indiquant une adresse valide pour que le bus local ne génère ledit signal d'adresse suivant que lorsqu'une adresse valide dans ladite plage de sous-système d'antémémoire est générée. 6. Procédé de fonctionnement d'un système de micro- calculateur du type comprenant un microprocesseur ayant une largeur de données prédéterminée, pouvant fonctionner dans un mode de mise en séquences d'instructions en pipeline et répondant à une entrée d'un signal d'adresse suivant, pour générer une adresse relative à une opération suivant immédiatement une opération en cours, un sous-système de mémoire antémémoire de ladite largeur de données prédéterminée et raccordé au microprocesseur par un bus local ayant ladite largeur de données prédéterminée, un autre bus raccordé audit bus local et connecté à des premiers composants de système adressables de ladite largeur de données prédéterminée et un ou plusieurs seconds composants de système adressables de largeur inférieure à ladite largeur de données donnée, au moins certains desdits premiers composants adressables ayant des adresses comprises dans la plage d'adresses du sous-système d'antémémoire et le ou chaque second composant ayant une adresse en dehors de la plage d'adresses du sous-système d'antémémoire, et comprenant les étapes suivantes: la génération d'un signal de commande indiquant si oui ou non l'adresse est comprise dans la plage du sous-système d'antémémoire en réponse à une adresse sur ledit bus local, et en réponse audit signal de commande, la génération dudit signal d'adresse suivant uniquement lorsque ledit signal de commande indique une adresse comprise dans la plage du sous-système d'antémémoire.