FR2632092A1 - DELAYED ANTEMEMORY WRITE CONDITIONING CIRCUIT FOR A DUAL BUS MICROCALCULATOR SYSTEM COMPRISING AN UNIT 80386 AND A UNIT 82385 - Google Patents
DELAYED ANTEMEMORY WRITE CONDITIONING CIRCUIT FOR A DUAL BUS MICROCALCULATOR SYSTEM COMPRISING AN UNIT 80386 AND A UNIT 82385 Download PDFInfo
- Publication number
- FR2632092A1 FR2632092A1 FR8905079A FR8905079A FR2632092A1 FR 2632092 A1 FR2632092 A1 FR 2632092A1 FR 8905079 A FR8905079 A FR 8905079A FR 8905079 A FR8905079 A FR 8905079A FR 2632092 A1 FR2632092 A1 FR 2632092A1
- Authority
- FR
- France
- Prior art keywords
- memory
- cache
- write
- conditioning
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003750 conditioning effect Effects 0.000 title claims abstract description 83
- 230000003111 delayed effect Effects 0.000 title claims description 19
- 230000009977 dual effect Effects 0.000 title description 2
- 230000015654 memory Effects 0.000 claims abstract description 164
- 230000006870 function Effects 0.000 claims description 13
- 239000004065 semiconductor Substances 0.000 claims 10
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000008054 signal transmission Effects 0.000 claims 1
- 230000001934 delay Effects 0.000 abstract description 2
- AFHIIJICYLMCSH-VOTSOKGWSA-N 5-amino-2-[(e)-2-(4-benzamido-2-sulfophenyl)ethenyl]benzenesulfonic acid Chemical compound OS(=O)(=O)C1=CC(N)=CC=C1\C=C\C(C(=C1)S(O)(=O)=O)=CC=C1NC(=O)C1=CC=CC=C1 AFHIIJICYLMCSH-VOTSOKGWSA-N 0.000 description 10
- 230000007704 transition Effects 0.000 description 10
- 230000001143 conditioned effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 1
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Hardware Redundancy (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
- Saccharide Compounds (AREA)
Abstract
Dans un système de microcalculateur 80386/82385, les exigences de chronologie relatives aux éléments de mémoire sans possibilité d'antémémoire et placées par l'unité 82385 sont plus restrictives que les tolérances de chronologie placées sur les composants de mémoire sans possibilité d'antémémoire par l'unité 80386. La présente invention fonctionne sur les signaux de conditionnement d'écriture CWE d'antémémoire 82385 et retarde les signaux dans le cas d'une lecture manquée. Le retardement des signaux CWE élargit les tolérances de chronologie placée sur les composants de mémoire sans possibilité d'antémémoire et en même temps, n'affecte pas les paramètres d'état d'attente relatifs aux opérations de lecture manquée.In an 80386/82385 microcomputer system, the timeline requirements for memory elements without cache possibility and placed by unit 82385 are more restrictive than the timeline tolerances placed on memory components without cache possibility by unit 80386. The present invention operates on the CWE write conditioning signals of cache memory 82385 and delays the signals in the event of a missed read. Delaying CWE signals expands the timeline tolerances placed on memory components without the possibility of cache memory and at the same time does not affect wait state parameters relating to missed read operations.
Description
CIRCUIT DE CONDITIONNEMENT D'ECRITUREWRITING CONDITIONING CIRCUIT
D'ANTEMEMOIRE RETARDE POUR UN SYSTEME DELAYED ANTEMEMORY FOR A SYSTEM
DE MICRO-CALCULATEUR A BUS DOUBLEDUAL BUS MICROCULATOR
COMPRENANT UNE UNITE 80386 ETINCLUDING A UNIT 80386 AND
UNE UNITE 82385ONE UNIT 82385
La présente invention concerne un système de micro-calculateur à bus multiples avec un sous-système de mémoire antémémoire et plus particulièrement, une amélioration pour accroître la tolérance des composants de mémoire lents en cas de lecture manquée d'antémémoire sans affecter les paramètres d'état d'attente. Des informations concernant l'art antérieur relatif à l'unité 80386, ses caractéristiques et son utilisation dans des systèmes de micro-calculateur comprenant des soussystèmes de mémoire antémémoire, sont décrites dans les publications de Intel "Introduction to the 80386", avril 1986 et "80386 Hardware Reference Manual (1986)". Les caractéristiques et performances d'utilisation de l'unité 82385 sont décrites dans la publication de Intel "82385 High Performance 32-Bit Cache The present invention relates to a multi-bus microcomputer system with a cache memory subsystem and more particularly, an improvement to increase the tolerance of slow memory components in case of missed cache reading without affecting the parameters of waiting state. Information relating to the prior art relating to the 80386 unit, its characteristics and its use in microcomputer systems comprising cache memory subsystems, is described in the publications of Intel "Introduction to the 80386", April 1986 and "80386 Hardware Reference Manual (1986)". The characteristics and performance of using the 82385 unit are described in the Intel publication "82385 High Performance 32-Bit Cache
Controller" (1987).Controller "(1987).
Dans les systèmes de micro-calculateur comme dans d'autres systèmes de calcul, la vitesse des opérations constitue un critère important qui dans la plupart des cas doit être considéré par rapport au coût du système. Beaucoup de fonctions qui furent d'abord introduites pour accélérer les opérations effectuées dans les calculateurs principaux et les minicalculateurs sont maintenant appliquées dans les systèmes de microcalculateur. Ceux ci comprennent des sous-systèmes de mémoire antémémoire. L'utilisation de sous-systèmes de mémoire antémémoire résulte en une architecture de calculateur à bus multiples. Plus particulièrement, dans un microprocesseur à d'horloge. D'autres opérations qui requièrent plus de deux cycles d'horloge sont considérées comme ayant le nombre d'états d'attente qui est égal à la différence entre le nombre des cycles d'horloge requis pour l'opération et le minimum de deux cycles d'horloge (auquel. on se réfère aussi comme à un état In microcomputer systems as in other computing systems, the speed of operations is an important criterion which in most cases must be considered in relation to the cost of the system. Many of the functions that were first introduced to speed up operations in the main computers and minicomputers are now applied in microcomputer systems. These include cache memory subsystems. The use of cache memory subsystems results in a multi-bus computer architecture. More particularly, in a clock microprocessor. Other operations that require more than two clock cycles are considered to have the number of wait states which is equal to the difference between the number of clock cycles required for the operation and the minimum of two cycles clock (which. we also refer to as a state
d'attente zéro).wait zero).
Etant donné que la vitesse des opérations constitue un critère important, il est avantageux de s'assurer que, dans la mesure du possible, les opérations peuvent être adaptées en opérations & état d'attente zéro par opposition aux opérations à état Since the speed of operations is an important criterion, it is advantageous to ensure that, as far as possible, operations can be adapted to zero waiting operations as opposed to state operations
d'attente un ou deux, etc...waiting one or two, etc ...
Les accès d'antémémoire constituent un type d'opération à état Cache accesses are a type of stateful operation
d'attente zéro.waiting zero.
Bien qu'il soit souhaitable qu'un nombre d'accès en mémoire aussi élevé que possible soit manipulé par le sous-système d'antémémoire, il est naturellement nécessaire à certains moments, d'accéder à la mémoire principale. L'un des principes utilisés pour l'actionnement d'un soussystème d'antémémoire, est que dans le cas d'une lecture manquée, c'est à dire une opération de lecture au cours de laquelle les informations requises ne sont pas trouvées dans le sous-système d'antémémoire, les informations lorsqu'elles sont lues en mémoire principale, sont immédiatement écrites au sous-système d'antémémoire. En utilisant ce principe, les informations lues sont ensuite disponibles dans le soussystème d'antémémoire (sauf en cas de sur-écriture) si bien que les accès ultérieurs aux mêmes informations ne requièrent pas d'accès en mémoire principale. Ainsi, dans le cas d'une lecture manquée, deux opérations sont requises, (1) l'accès en mémoire principale pour lire les informations requises pour les rendre disponibles pour le processeur et (2) l'écriture dans le sous-système sous-système de mémoire antémémoire, un premier bus que l'on appelle un bus local CPU, connecte le microprocesseur (par exemple une unité 80386), une unité de commande d'antémémoire (qui peut comprendre une unité de commande d'antémémoire 82385) et une mémoire à accès aléatoire servant de mémoire antémémoire. Le bus local CPU peut être interconnecté par l'intermédiaire d'une mémoire intermédiaire, à un second système de bus appelé dans un souçi de simplification, un bus de système. D'autres composants peuvent être connectés au bus de système (soit directement, soit indirectement) comme une mémoire principale, un équipement d'entrée/sortie, une mémoire Although it is desirable that as many memory accesses as possible be handled by the cache subsystem, it is of course necessary at times to access the main memory. One of the principles used for operating a cache subsystem is that in the case of a missed read, that is, a read operation in which the required information is not found in the cache subsystem, the information when read from main memory, is immediately written to the cache subsystem. Using this principle, the information read is then available in the cache subsystem (except in the case of overwriting) so that subsequent accesses to the same information do not require access to main memory. Thus, in the case of a missed read, two operations are required, (1) access to main memory to read the information required to make it available to the processor and (2) writing to the subsystem under - cache memory system, a first bus called a local bus CPU, connects the microprocessor (for example a unit 80386), a cache control unit (which can include a cache control unit 82385) and a random access memory serving as cache memory. The local bus CPU can be interconnected via an intermediate memory, to a second bus system called in a simplification, a system bus. Other components can be connected to the system bus (either directly or indirectly) such as a main memory, an input / output device, a memory
permanente, etc...permanent, etc ...
L'une des raisons principales d'utiliser un sous-système d'antémémoire est de permettre l'accélération des opérations de mémoire en conditionnant le processeur pour la lecture dans le sous-système de mémoire antémémoire dans la mesure o les informations requises y sont stockées. Le sous-système de mémoire antémémoire bénéficie généralement d'un avantage de vitesse par rapport à la mémoire principale. Dans la mesure o les accès en mémoire peuvent être limités au sous-système d'antémémoire, le-processeur ne requiert alors pas l'accès au bus de système. Ceci libère de manière significative le bus de système pour son utilisation dans d'autres opérations, par exemple des opérations d'entrée/sortie, DMA, etc... Il s'agit là d'un autre avantage des systèmes de micro-calculateur à One of the main reasons for using a cache subsystem is to allow the acceleration of memory operations by conditioning the processor for reading from the cache memory subsystem since the required information is there. stored. The cache memory subsystem generally has a speed advantage over main memory. Because memory accesses can be limited to the cache subsystem, the processor does not require access to the system bus. This significantly frees up the system bus for its use in other operations, for example input / output operations, DMA, etc. This is another advantage of microcomputer systems at
sous-systèmes de mémoire antémémoire. cache memory subsystems.
Afin de maintenir une mise en séquences ordonnée des diverses opérations qui doivent être exécutées, les opérations sont divisées en unités de temps auxquelles on se réfère comme à des états d'horloge. Dans un système de micro-calculateur utilisant par exemple le processeur 80386 et l'unité de commande d'antémémoire 82385, les opérations de mémoire les plus rapides requièrent deux cycles d'horloge, chacun à deux états d'antémémoire des informations lues à l'instant en mémoire principale. L'une des particularités de l'unité 82385 est que, dans le cas d'un état d'écriture manquée, les informations auxquelles on doit accéder depuis la mémoire principale, sont nécessairement ré-écrites dans le sous-système d'antémémoire avant qu'elles ne soient disponibles pour le processeur. Le fabricant des microprocesseurs reconnaît cet état et suggère l'une des deux solutions suivantes: soit la sélection d'une mémoire principale suffisamment rapide pour que les données puissent être accédées et rendues disponibles pour l'unité 82385 à l'intérieur de la période de temps nécessaire à une opération à état d'attente fixe, soit l'augmentation de la longueur du cycle par rapport à celle qui serait normalement requise par l'addition d'un état ou d'états d'attente supplémentaires suivant nécessité. Bien que les deux possibilités soient pratiques, la première possibilité affecte le coût du système étant donné que les mémoires plus rapides requises pour répondre aux exigences de chronologie de l'unité 82385, sont plus chères et la deuxième possibilité introduit un retard dans toute opération de lecture manquée en imposant un ou plusieurs In order to maintain an orderly sequencing of the various operations to be performed, the operations are divided into time units which are referred to as clock states. In a microcomputer system using for example the processor 80386 and the cache control unit 82385, the fastest memory operations require two clock cycles, each with two cache states of information read at 'instant in main memory. One of the peculiarities of the 82385 unit is that, in the case of a missed write state, the information to be accessed from the main memory, is necessarily rewritten in the front cache subsystem that they are not available for the processor. The manufacturer of the microprocessors recognizes this state and suggests one of the following two solutions: either the selection of a main memory fast enough so that the data can be accessed and made available for the 82385 unit within the period of time required for a fixed standby operation, i.e. increasing the cycle length over that which would normally be required by adding an additional standby state or states as necessary. Although both possibilities are practical, the first possibility affects the cost of the system since the faster memories required to meet the chronology requirements of the 82385 unit are more expensive and the second possibility introduces a delay in any operation of missed reading by imposing one or more
états d'attente.waiting states.
Un objet de la présente invention est donc d'éliminer la nécessité de choisir entre ces deux possibilités de façon à améliorer la tolérance du système aux composants de mémoire plus lents sans affecter les paramètres d'état d'attente An object of the present invention is therefore to eliminate the need to choose between these two possibilities so as to improve the tolerance of the system to slower memory components without affecting the wait state parameters.
relatifs aux opérations de lecture manquée. relating to missed read operations.
La présente invention satisfait à cet objet ainsi qu'à d'autres en prévoyant un circuit logique pour sélectivement retarder des signaux de conditionnement d'écriture d'antémémoire dans le cas The present invention satisfies this and other objects by providing a logic circuit for selectively delaying cache write conditioning signals in the case
d'un état de lecture manquée.of a missed read state.
Le circuit logique comprend plus particulièrement des moyens pour détecter un état de lecture manquée. Un état de lecture manquée est indiqué lorsqu'un signal de lecture de bus de système (BUSRD) est actif et qu'un signal de conditionnement d'écriture d'antémémoire (CWE) est aussi actif. Le circuit logique comprend en outre des moyens répondant à une sortie de conditionnement d'écriture d'antémémoire (CWE) par l'unité 82385 pour retarder le signal de conditionnement d'écriture d'antémémoire actif dans le cas o une opération de lecture The logic circuit more particularly comprises means for detecting a missed read state. A missed read state is indicated when a system bus read signal (BUSRD) is active and a cache write conditioning signal (CWE) is also active. The logic circuit further includes means responsive to a cache write conditioning (CWE) output by the 82385 unit for delaying the active cache write conditioning signal in the case of a read operation.
manquée est détectée.missed is detected.
Dans une réalisation particulière de la présente invention qui sera décrite ultérieurement, le sous-système de mémoire antémémoire est une. mémoire antémémoire associative en deux parties et comprenant ainsi deux bancs de mémoire. L'unité 82385 rend disponible un signal de conditionnement d'écriture In a particular embodiment of the present invention which will be described later, the cache memory subsystem is one. associative cache memory in two parts and thus comprising two memory banks. Unit 82385 makes a write conditioning signal available
d'antémémoire spécifique pour chacun des bancs de mémoire. specific cache memory for each memory bank.
L'unité 82385 génère aussi un signal de conditionnement de verrouillage d'adresses d'antémémoire (CALEN) ainsi que des signaux de sélection de microprocesseurs (CS0, CS1, CS2 et CS3). Le circuit logique selon la présente invention fonctionne sur les signaux de conditionnement d'écriture d'antémémoire, c'est à dire les signaux de conditionnement d'écriture d'antémémoire pour les deux bancs de mémoire A et B. Lorsqu'une opération de lecture manquée est détectée, l'une des deux portes (conditionnement écriture antémémoire) est partiellement conditionnée par le signal actif des signaux de conditionnement d'écriture d'antémémoire (qu'il soit destiné au banc A ou au banc B). Le circuit logique détecte le signal BUSRD actif et répond aussi aux signaux de conditionnement d'écriture d'antémémoire pour le signal particulier (pour le banc A ou le banc B) qui est conditionné. Le circuit logique retarde le signal actif des signaux de conditionnement d'écriture d'antémémoire et après application du retard sélectionné, conditionne entièrement la porte appropriée qui est attribuée The 82385 also generates a cache address conditioning conditioning signal (CALEN) as well as microprocessor selection signals (CS0, CS1, CS2 and CS3). The logic circuit according to the present invention operates on the cache write conditioning signals, that is to say the cache write conditioning signals for the two memory banks A and B. When an operation of missed read is detected, one of the two doors (cache write conditioning) is partially conditioned by the active signal of cache write conditioning signals (whether for bank A or bank B). The logic circuit detects the active BUSRD signal and also responds to cache write conditioning signals for the particular signal (for bank A or bank B) that is conditioned. The logic circuit delays the active signal of cache write conditioning signals and after application of the selected delay, fully conditions the appropriate gate which is assigned
au banc d'antémémoire en cours d'écriture. to the cache bench being written.
Le circuit logique de la présente invention comprend une pluralité de mémoires intermédiaires, une pour chacun des signaux CALEN, CS0, CS1, CS2 et CS3 et ces signaux sont connectés au sous-système d'antémémoire au travers d'une The logic circuit of the present invention comprises a plurality of intermediate memories, one for each of the signals CALEN, CS0, CS1, CS2 and CS3 and these signals are connected to the cache subsystem through a
mémoire intermédiaire appropriée. appropriate intermediate memory.
Ainsi, dans le cas d'une opération de lecture manquée, le signal de conditionnement d'écriture approprié est retardé. Les mémoires intermédiaires assurent un retard de porte équivalent correspondant au retard interpose par la porte de conditionnement d'écriture d'antémémoire pour les signaux Thus, in the case of a missed read operation, the appropriate write conditioning signal is delayed. The intermediate memories provide an equivalent gate delay corresponding to the delay interposed by the cache write conditioning gate for the signals.
CALEN, CS0, CS1, CS2 et CS3.CALEN, CS0, CS1, CS2 and CS3.
Dans le cas o un signal de conditionnement d'écriture d'antémémcire devilent actif (par exemple pour exécuter une écriture d'antémémoire qui n'est pas associée à un état de lecture manquée), le circuit logique ne détecte alors naturellement pas un état de lecture manquée si bien qu'aucun retard n'est imposé par le circuit logique au signal de conditionnement d'écriture d'antémémoire. Cependant, la porte associée impose un retard de porte à ce signal et les mémoires intermédiaires imposent un retard pratiquement équivalent aux In the case where a cache write conditioning signal becomes active (for example to execute a cache write which is not associated with a missed read state), the logic circuit then naturally does not detect a state read failure so that no delay is imposed by the logic circuit on the cache write conditioning signal. However, the associated gate imposes a gate delay on this signal and the intermediate memories impose a delay practically equivalent to the
signaux associés CALEN, CS0, CSl, CS2 et CS3. associated signals CALEN, CS0, CSl, CS2 and CS3.
Ainsi, un aspect de la présente invention permet de réaliser un système de micro-calculateur à bus multiples, antémémoire et unités 80386/82385 pour retarder sélectivement des signaux d'écriture d'antémémoire suivant un lecture manquée afin d'améliorer la tolérance du système aux composants de mémoire plus lents sans affecter les paramètres d'état d'attente relatifs à des opérations de lecture manquée, ledit système de micro-calculateur comprenant: un sous-système d'antémémoire comprenant ladite unité de commande d'antémémoire 82385, une mémoire antémémoire et un bus local connectant ladite unité de commande d'antémémoire 82385 et ladite mémoire antémémoire à un processeur 80386, et des moyens logiques de retard répondant à un état d'écriture d'antémémoire provoqué par une lecture manquée pour sélectivement retarder des signaux de conditionnement d'écriture d'antémémoire, lesdits moyens logiques de retard comprenant: (a) des moyens logiques à réseaux programmables dont une entrée est connectée aux signaux de conditionnement d'écriture depuis ladite unité de commande d'antémémoire 82385 pour produire à une borne de conditionnement d'écriture un signal de conditionnement d'écriture retardé en réponse à une lecture de bus active, (b) une première porte logique dont une première entrée répond audit signal de conditionnement d'écriture depuis ladite unité de commande d'antémémoire 82385 et une seconde entrée est connectée à ladite borne de conditionnement d'écriture et une sortie est connectée à une entrée de Thus, one aspect of the present invention provides a multi-bus microcomputer system, cache memory and 80386/82385 units for selectively delaying cache write signals following a missed read in order to improve system tolerance. to slower memory components without affecting the wait state parameters relating to missed read operations, said microcomputer system comprising: a cache subsystem comprising said cache controller 82385, a cache memory and a local bus connecting said cache control unit 82385 and said cache memory to a processor 80386, and logic delay means responsive to a cache write state caused by a read failure to selectively delay signals cache write conditioning, said delay logic means comprising: (a) logic means with programmable networks, one input of which is c connected to write conditioning signals from said cache control unit 82385 to produce a delayed write conditioning signal at a write conditioning terminal in response to an active bus read, (b) a first gate logic a first input of which responds to said write conditioning signal from said cache control unit 82385 and a second input of which is connected to said write conditioning terminal and one output of which is connected to an input of
conditionnement d'écriture de ladite mémoire antémémoire. write conditioning of said cache memory.
Brève description des dessinsBrief description of the drawings
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 une représentation schématique détaillée de la majorité des composants d'un système de micro-calculateur Figure 1 is a general three-dimensional view of a conventional microcomputer system using the present invention. Figure 2 is a detailed schematic representation of the majority of the components of a microcomputer system
classique utilisant la présente invention. conventional using the present invention.
La figure 3 est une représentation schématique détaillée de l'unité 82385, de la mémoire à accès aléatoire antémémoire, du circuit logique et des mémoires intermédiaires de la présente invention. La figure 4 est un schéma chronologique illustrant les différentes exigences relatives à la chronologie de l'unité 82385 et de l'unité 80386, et Les figures 5A-5C montrent le fonctionnement de la présente invention pour des écritures d'antémémoire de lecture manquée ainsi que pour des écritures d'antémémoire non provoquées par Figure 3 is a detailed schematic representation of the 82385 unit, the cache random access memory, the logic circuit and the intermediate memories of the present invention. FIG. 4 is a chronological diagram illustrating the various requirements relating to the chronology of the unit 82385 and of the unit 80386, and FIGS. 5A-5C show the operation of the present invention for writes of read cache memories thus missed than for cache writes not caused by
une lecture manquée.a missed reading.
La figure 1 représente un système de micro-calculateur Figure 1 shows a microcomputer system
classique dans lequel la présente invention peut être utilisée. in which the present invention can be used.
Comme le montre la figure, le système de micro-calculateur 10 comprend un certain nombre de composants qui sont interconnectés. Plus particulièrement, une unité de-système 30 est connectée à et commande une unité de contrôle 20 (comme une unité d'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 As shown in the figure, the microcomputer system 10 comprises a number of components which are interconnected. More particularly, a system unit 30 is connected to and controls a control unit 20 (like a conventional video display unit). The system unit 30 is also connected to input devices such as a keyboard 40 and a mouse 50. An output device such as a printer
peut aussi être connecté à l'unité de système 30. can also be connected to system unit 30.
Finalement, l'unité de système 30 peut comprendre une ou plusieurs unités de commande de disques comme l'unité de commande de disques 70. Comme on le décrira 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é de commande de disque 70 pour délivrer des signaux pour 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 en interaction avec celle ci. Selon la présente invention, le système de micro-calculateur 10 comprend (comme on le verra plus particulièrement ci dessous) un sous-système de mémoire 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, lequel bus local CPU Finally, the system unit 30 may include one or more disk control units such as the disk control unit 70. As will be described below, the system unit 30 responds to input devices such as the keyboard 40 and mouse 50 and input / output devices such as the disk control unit 70 for outputting signals to control output devices such as the control unit 20 and the printer 60. Naturally, the Those skilled in the art will recognize that other conventional components could also be connected to the system unit 30 in interaction therewith. According to the present invention, the microcomputer system 10 comprises (as will be seen more particularly below) a cache memory subsystem so that there is a local bus CPU interconnecting a processor, a control unit d cache and memory cache, which local bus CPU
est raccordé par une mémoire intermédiaire à un bus de système. is connected by an intermediate memory to a system bus.
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é de commande de disque 70, l'unité de contrôle 20 et l'imprimante 60. De plus, selon les enseignements de la présente invention, l'unité de système 30 peut aussi comprendre un troisième bus comprenant un bus Micro Channel * pour assurer l'interconnexion entre le bus de système et d'autres dispositifs d'entrée/sortie (optionnels), mémoire, etc... * Micro Channel est une marque d'IBM Corporation La figure 2 est une représentation schématique illustrant les divers composants d'un système de micro- calculateur classique selon 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), 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 au 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 The system bus is interconnected to and operates in interaction with I / O devices such as the keyboard 40, the mouse 50, the disk control unit 70, the control unit 20 and the printer 60. In addition, according to the teachings of the present invention, the system unit 30 can also comprise a third bus comprising a Micro Channel bus * to ensure the interconnection between the system bus and other input / output devices (optional), memory, etc ... * Micro Channel is a trademark of IBM Corporation Figure 2 is a schematic representation illustrating the various components of a conventional microcomputer system according to the present invention. A local CPU 230 bus (including data, address, and control components) connects a microprocessor 225 (such as an 80386 unit), a cache control unit 260 (which may include a control unit cache memory 82385) 'and a random access cache memory 255. An intermediate memory 240 is also connected to the local bus CPU 230. The intermediate memory 240 is itself connected to the system bus 250, also comprising address components, data and control. System bus 250 is located between the memory
intermédiaire 240 et une autre mémoire intermédiaire 253. intermediate 240 and another intermediate memory 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 350 est aussi connectée au bus de système 250. La mémoire 350 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 avec les éléments de mémoire 360 à 364, The system bus 250 is also connected to a bus control and chronology element 265 and to a DMA control unit 325. An arbitration control bus 340 connects the bus control and chronology element 265 and a central arbitration element 335. The memory 350 is also connected to the system bus 250. The memory 350 comprises a memory control element 351, an address multiplexer 352 and an intermediate data memory 353. These elements are interconnected with memory elements 360 to 364,
comme le montre la figure 2.as shown in 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. 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éries), 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é de commande de disque 70), une unité de commande d'interruption 310 et une mémoire permanente 315 sont également raccordés au bus planaire 270. La mémoire intermédiaire 253 fait fonction d'interface entre le bus de système 250 et un bus de fonction optionnel comme le bus Micro Channel 320 représenté par les prises Micro Channel. Des dispositifs comme la mémoire 331 peuvent être Another intermediate memory 254 is connected between the system bus 250 and a planar bus 270. The planar bus 270 comprises address, data and control components, respectively. Various I / O adapters and other components such as the display adapter 275 (which is used to control the control unit 20), a clock 280, an additional random access memory 285, an RS 232 adapter 290 (used for serial I / O operations), a printer adapter 295 (which can be used to control the printer 60), a chronology unit 300, a floppy disk adapter 305 (which cooperates with the disk control unit 70), an interrupt control unit 310 and a permanent memory 315 are also connected to the planar bus 270. The intermediate memory 253 acts as an interface between the system bus 250 and an optional function bus such as the Micro Channel bus 320 represented by Micro Channel sockets. Devices like memory 331 can be
raccordés au bus 320.connected to bus 320.
Bien que des données pour des écritures d'antémémoire puissent être dérivées de la mémoire 350, ces données peuvent aussi être dérivées d'une autre mémoire comme la mémoire installée sur le Although data for cache writes can be derived from memory 350, this data can also be derived from other memory such as the memory installed on the
bus Micro Channel.Micro Channel bus.
Dans un système de micro-calculateur à unités 80386/82385 classique, l'utilisateur est contraint de sélectionner l'une de deux possibilités non attrayantes en rapport avec des opérations de mémoire et plus particulièrement des. opérations In a conventional 80386/82385 unit microcomputer system, the user is forced to select one of two unattractive possibilities relating to memory operations and more particularly to. operations
suivant une lecture manquée.following a missed reading.
Dans un tel système, pendant un cycle de lecture, le microprocesseur 225 place une adresse sur le composant d'adresse du bus local CPU 230. L'unité de commande d'antémémoire 260 répond à l'adresse et détermine si les informations requises sont contenues dans la mémoire antémémoire 255. Dans le cas o les informations sont trouvées dans la mémoire antémémoire 255, la mémoire antémémoire 255 est adressée, elle place les données sur le composant de données du bus local CPU o elles sont disponibles pour le microprocesseur 225. Dans le cas o les informations requises ne sont pas dans la mémoire antémémoire 255, l'unité de commande d'antémémoire 260 conditionne alors la mémoire intermédiaire 240 de façon que l'adresse puisse être passée du bus local CPU 230 au bus de système 250. Lorsque l'adresse requise atteint le bus de système 250, elle est disponible pour la mémoire 350 et après une période de temps requise par les caractéristiques de la mémoire 350, les données adressées apparaissent sur le composant de données du bus de système 250. Les données sont raccordées au travers de la mémoire intermédiaire 240 o elles sont disponibles à la fois pour la mémoire antémémoire 255 et le microprocesseur 225. Les informations seront utilisées dans la mémoire antémémoire 255 pour y être écrites de façon que dans le cas o les mêmes informations sont requises, un autre accès en mémoire 350 ne soit pas requis. Des opérations similaires peuvent se dérouler avec la mémoire sur le bus planaire 270 ou sur le bus de fonction. Dans le cas du bus de fonction optionnelle, les informations d'adresse sont raccordées au travers de la mémoire intermédiaire 253 à la mémoire sur le bus de fonction optionnelle. Des données de cette mémoire sont raccordées à nouveau au travers de la mémoire intermédiaire 253, du bus de système 250 au bus local In such a system, during a read cycle, the microprocessor 225 places an address on the address component of the local bus CPU 230. The cache control unit 260 responds to the address and determines whether the required information is contained in the cache memory 255. In the case where the information is found in the cache memory 255, the cache memory 255 is addressed, it places the data on the data component of the local bus CPU where it is available for the microprocessor 225. In the case where the required information is not in the cache memory 255, the cache control unit 260 then conditions the intermediate memory 240 so that the address can be passed from the local bus CPU 230 to the system bus 250 When the required address reaches the system bus 250, it is available for the memory 350 and after a period of time required by the characteristics of the memory 350, the addressed data appear on r the data component of the system bus 250. The data is connected through the intermediate memory 240 where it is available for both cache memory 255 and microprocessor 225. The information will be used in cache memory 255 to be written so that if the same information is required, another access to memory 350 is not required. Similar operations can take place with the memory on the planar bus 270 or on the function bus. In the case of the optional function bus, the address information is connected through the intermediate memory 253 to the memory on the optional function bus. Data from this memory is connected again through the intermediate memory 253, from the system bus 250 to the local bus
CPU 230 par la mémoire intermédiaire 240. CPU 230 through intermediate memory 240.
Cependant, comme on l'a indiqué plus haut, les particularités de l'unité 82385 requièrent que les informations extraites à la suit d'une lecture manquée soient disponibles au bus local CPU pour leur écriture dans la mémoire antémémoire 255 avant que cela ne soit requis par le processeur 225.. Autrement dit, les exigences de chronologie placées sur la mémoire 350 ou toute autre mémoire par l'unité 82385 sont plus restrictives que les exigences de chronologie dictées par l'unité 80386. Le fabricant de l'unité 82385 suggère ainsi que l'utilisateur puisse: 1) soit sélectionner des éléments de mémoire (comme les éléments 361-364) en mémoire principale 350 ou dans toute autre mémoire pour être suffisamment rapide à répondre aux exigences de chronologie de l'unité 82385 avec un état d'attente spécifié, ou 2) s'assurer que la double opération amorcée par une lecture However, as indicated above, the peculiarities of the 82385 unit require that the information extracted following a missed read be available on the local bus CPU for their writing in the cache memory 255 before this is done. required by processor 225 .. In other words, the chronology requirements placed on memory 350 or any other memory by unit 82385 are more restrictive than the chronology requirements dictated by unit 80386. The manufacturer of unit 82385 thus suggests that the user can: 1) either select memory elements (such as elements 361-364) in main memory 350 or in any other memory to be fast enough to meet the chronology requirements of unit 82385 with a specified wait state, or 2) ensure that the double operation initiated by a read
manquée occupe un état d'attente supplémentaire. missed occupies an additional waiting state.
Comme on le décrira ci dessous, la présente invention élimine cette exigence de sélection de l'une de deux possibilités peu souhaitables par l'élimination effective des exigences de chronologies restrictives dictées par l'unité 82385 de façon que les exigences de chronologie placées sur la mémoire principale 350 ou toute autre mémoire ne soient pas plus As will be described below, the present invention eliminates this selection requirement from one of two undesirable possibilities by effectively eliminating the restrictive chronology requirements dictated by unit 82385 so that the chronology requirements placed on the main memory 350 or any other memory is not more
restrictives que celles dictées par le processeur 80386. restrictive than those dictated by the 80386 processor.
Afin de mettre en oeuvre la présente invention, plusieurs éléments logiques ont été ajoutés à l'unité de commande d'antémémoire 260, au delà de l'unité 82385 comme illustré à la In order to implement the present invention, several logic elements have been added to the cache control unit 260, beyond the unit 82385 as illustrated in the
figure 3.figure 3.
La figure 3 représente sous forme schématique les composants détaillés de l'unité de commande d'antémémoire 260 et de la mémoire antémémoire 255. Plus particulièrement, la mémoire antémémoire 255 est raccordée à l'élément de données du bus local CPU 230 et par la bascule 255L, au composant d'adresses FIG. 3 represents in schematic form the detailed components of the cache control unit 260 and of the cache memory 255. More particularly, the cache memory 255 is connected to the data element of the local bus CPU 230 and by the flip-flop 255L, to the address component
du bus local CPU 230.of the local bus CPU 230.
L'unité de commande d'antémémoire 260 comprend l'unité de The cache control unit 260 includes the memory unit
commande d'antémémoire 82385 ainsi qu'un élément logique 261. cache control 82385 and a logic element 261.
La figure 3 montre les signaux de sortie de l'unité 82385 qui Figure 3 shows the output signals from the 82385 unit which
sont concernés par les opérations d'écriture d'antémémoire. are affected by cache write operations.
Ceux ci comprennent le signal de conditionnement de verrouillage d'antémémoire (CALEN), les signaux d'écriture d'antémémoire comprenant CWEA (pour le banc A) et CWEB (pour le banc B) et les signaux de sélection de microprocesseurs CS0, These include the cache lock conditioning signal (CALEN), the cache write signals including CWEA (for bank A) and CWEB (for bank B) and the microprocessor selection signals CS0,
CS1, CS2 et CS3.CS1, CS2 and CS3.
Comme le montre la figure 3, la logique 261 reçoit comme entrées, les signaux CWEA et CWEB en même temps que deux signaux d'horloge CLK et CLK2 (le premier est exactement égal à la moitié du dernier) et le signal BUSRD (indiquant une lecture de bus de système). Le signal BUSRD devient actif pour des opérations qui se déroulent sur le bus de système 250. Toute lecture de mémoire (autre que l'antémémoire) se déroule (au As shown in FIG. 3, the logic 261 receives as inputs the signals CWEA and CWEB at the same time as two clock signals CLK and CLK2 (the first is exactly equal to half of the last) and the signal BUSRD (indicating a system bus reading). The BUSRD signal becomes active for operations that take place on the system bus 250. Any reading of memory (other than the cache memory) takes place (at
moins en partie) sur le bus de système 250. less in part) on system bus 250.
La logique 261 répond à ses signaux d'entrée et dans la circonstance appropriée, génère le signal DCWEA (Conditionnement écriture antémémoire retardée A) ou le signal DCWEB (Conditionnement écriture antémémoire retardée B). Plus particulièrement, dans le cas o le signal DCWEA est actif et le signal BUSRD actif (ce qui indique ainsi sans risque d'erreur une lecture manquée), le signal DCWEA sera alors généré au moment approprié. D'une manière similaire, en présence d'un signal CWEB actif ainsi que d'un signal BUSRD Logic 261 responds to its input signals and, when appropriate, generates the DCWEA signal (Delayed cache write conditioning A) or the DCWEB signal (Delayed cache write conditioning B). More particularly, in the case where the DCWEA signal is active and the BUSRD signal active (which thus indicates a missed reading without risk of error), the DCWEA signal will then be generated at the appropriate time. Similarly, in the presence of an active CWEB signal as well as a BUSRD signal
actif, le signal DCWEB sera alors généré à l'instant approprié. active, the DCWEB signal will then be generated at the appropriate time.
Les sorties DCWEA et DCWEB de la logique 261 fournissent The DCWEA and DCWEB outputs of logic 261 provide
chacune une entrée à la porte logique associée 263A ou 263B. each an input to the associated logic gate 263A or 263B.
Chacune de ces portes reçoit aussi une entrée correspondante de la sortie associée de l'unité 82385, c'est à dire que l'autre entrée de la porte 263A est alimentée avec CWEA et de la même Each of these doors also receives a corresponding input from the associated output of unit 82385, that is to say that the other input of door 263A is supplied with CWEA and from the same
manière, l'autre entrée de la porte 263B reçoit CWEB. way, the other input of gate 263B receives CWEB.
Outre les portes logiques 263A et 263B, l'unité de commande d'antémémoire 260 comprend une mémoire intermédiaire 262 comprenant des éléments de mémoire intermédiaire 262a-262e, un pour chacun des signaux CALEN, CS0, CSl, CS2 et CS3. Comme le montre la figure 3, chaque élément de la mémoire intermédiaire 262 est une porte logique qui est en permanence partiellement conditionnée (par une entrée qui est reliée au potentiel approprié). L'autre entrée à l'élément de mémoire intermédiaire est issue de la sortie correspondante de l'unité 82385. La sortie de l'élément de mémoire intermédiaire 262a est appliquée comme entrée de commande à la bascule de verrouillage 255L. Les sorties des éléments de mémoire intermédiaire 262b-262e sont appliquées directement en entrée à la mémoire antémémoire 255 In addition to logic gates 263A and 263B, the cache control unit 260 includes an intermediate memory 262 comprising intermediate memory elements 262a-262e, one for each of the signals CALEN, CS0, CSl, CS2 and CS3. As shown in FIG. 3, each element of the intermediate memory 262 is a logic gate which is permanently partially conditioned (by an input which is connected to the appropriate potential). The other input to the intermediate memory element comes from the corresponding output of the unit 82385. The output of the intermediate memory element 262a is applied as a control input to the latch latch 255L. The outputs of the intermediate memory elements 262b-262e are applied directly as input to the cache memory 255
sous la forme de CS0-CS3.in the form of CS0-CS3.
Avant de décrire le fonctionnement des composants de la figure 3, on se reportera à la figure 4 pour l'illustration de la Before describing the operation of the components of Figure 3, refer to Figure 4 for the illustration of the
chronologie appropriée.appropriate timeline.
La figure 4 est composée de trois schémas chronologiques. Figure 4 is made up of three chronological diagrams.
Chacun des schémas commence au moment o une utilisation du bus de système est amorcée, c'est à dire lorsque le signal BUSRD devient actif. La ligne référencée 80386 montre qu'à un instant MT1 suivant le début d'une lecture manquée, les données délivrées en sortie -de la mémoire sont valides. L'instant MT1 est la tolérance de chronologie imposée à la mémoire par les Each of the schemes begins at the moment when use of the system bus is initiated, ie when the signal BUSRD becomes active. The line referenced 80386 shows that at an instant MT1 following the start of a missed read, the data delivered as an output from the memory are valid. The instant MT1 is the chronology tolerance imposed on the memory by the
exigences de l'unité 80386.requirements of unit 80386.
Sur la ligne de la figure 4 référencée 82385, les exigences de chronologie imposées par l'unité 82385 sont illustrées. Plus particulièrement, l'unité 82385 génère les signaux CWEA et CWEB de façon que des données valides soient disponibles depuis la mémoire à l'instant MT2, c'est à dire à un moment avant que des données valides ne soient requises par l'unité 80386. Ainsi, la figure 4 représente l'exigence de chronologie la plus restrictive (MT2) de l'unité 82385 par comparaison aux In the line of FIG. 4 referenced 82385, the chronology requirements imposed by the unit 82385 are illustrated. More particularly, the unit 82385 generates the signals CWEA and CWEB so that valid data are available from the memory at time MT2, that is to say at a time before valid data is required by the unit. 80386. Thus, Figure 4 represents the most restrictive chronology requirement (MT2) of unit 82385 compared to
exigences de chronologie (MT1) plus souples de l'unité 80386. more flexible chronology (MT1) requirements of unit 80386.
La figure 4 montre aussi les effets de la logique 261. Plus particulièrement, les sorties DCWEA et/ou DCWEB de la logique 261 suivent les exigences de chronologie plus souples de l'unité 80386. Plus particulièrement, les signaux DCWEA et/ou DWCEB sont retardés du "retard" représenté à la figure 4 par comparaison avec les signaux CWEA et CWEB. Ainsi, par ce retard, les exigences de chronologie plus souples de l'unité 80386 sont les seules exigences de chronologie imposées à la mémoire principale 350 dans le cas d'une lecture manquée. Ceci permet l'utilisation de composants de mémoire meilleur marché par comparaison aux composants qui seraient requis pour l'unité 82385 afin de compléter une lecture manquée à l'intérieur d'un Figure 4 also shows the effects of logic 261. More specifically, the DCWEA and / or DCWEB outputs of logic 261 follow the more flexible timing requirements of unit 80386. More specifically, the DCWEA and / or DWCEB signals are delayed by the "delay" shown in Figure 4 by comparison with the CWEA and CWEB signals. Thus, by this delay, the more flexible chronology requirements of the unit 80386 are the only chronology requirements imposed on the main memory 350 in the case of a missed reading. This allows the use of cheaper memory components compared to the components that would be required for the 82385 unit in order to complete a missed reading within a
nombre spécifié d'états d'attente. specified number of wait states.
Les composants internes de la logique 261 mettent en oeuvre les équations logiques suivantes: The internal components of logic 261 implement the following logic equations:
/DCWEA: = /BUSRD & /CLK & /CWEA /DCWEB: = /BUSRD & /CLK & /CWEB / DCWEA: = / BUSRD & / CLK & / CWEA / DCWEB: = / BUSRD & / CLK & / CWEB
o l'opérateur "&"est un ET logique, l'opérateur "/" représente la négation et les autres éléments du signal (à part BUSRD) ont o the operator "&" is a logical AND, the operator "/" represents the negation and the other elements of the signal (apart from BUSRD) have
déjà été définis.already defined.
Les figures 5A-5C sont utiles à l'explication du fonctionnement de l'élément représenté à la figure 3. Plus particulièrement, la figure 5A représente un signal CWE typique. Le signal a deux transitions, une première transition de passage au niveau bas Figures 5A-5C are useful in explaining the operation of the element shown in Figure 3. More specifically, Figure 5A shows a typical CWE signal. The signal has two transitions, a first transition from low pass
et une seconde transition de passage au niveau haut. and a second transition from transition to high level.
L'antémémoire 255 est agencée pour effectuer une opération d'écriture à la transition au niveau haut de CWE comme illustré Cache 255 is arranged to perform a write operation at the high level transition of CWE as illustrated
à la figure 5A. La figure 5B représente des signaux CWE, DCWE typiques et la sortie de lain Figure 5A. Figure 5B shows typical CWE, DCWE signals and the output of the
porte (soit 263A, soit 263B) pour un état de lecture manquée. Comme montré sur une première ligne, le signal CWE est généré par l'unité 82385. Dans un état de lecture manquée, l'élément logique 261 génère le signal DCWE retardé depuis le signal CWE d'un retard approprié. La troisième ligne de la figure 5B (référencée PORTE) montre la sortie de la porte appropriée (263A ou 263B). Plus particulièrement, la sortie de la porte 263 présente une transition au niveau bas produite à la suite du signal CWE à transition au niveau bas. Lorsque le signal CWE est affecté d'une transition au niveau haut, la sortie de porte reste au niveau bas en raison de l'entrée au niveau bas du signal DCWE. C'est seulement lorsque le signal DCWE passe au niveau haut que la sortie de la porte passe au niveau haut de façon que la chronologie de l'opération d'écriture soit occasionnée par la transition au niveau haut du signal DCWE. Comme on le voit à la troisième ligne de la figure B, l'opération d'écriture est retardée du retard interposé par l'élément logique 261 par comparaison avec la transition au door (either 263A or 263B) for a missed read state. As shown on a first line, the CWE signal is generated by the unit 82385. In a missed read state, the logic element 261 generates the DCWE signal delayed from the CWE signal by an appropriate delay. The third line in Figure 5B (referenced DOOR) shows the output of the appropriate door (263A or 263B). More particularly, the output of gate 263 has a low level transition produced following the low level transition CWE signal. When the CWE signal is transitioned to the high level, the gate output remains at the low level due to the low level input of the DCWE signal. It is only when the DCWE signal goes high that the door output goes high so that the chronology of the writing operation is caused by the transition to the high level of the DCWE signal. As seen in the third line of Figure B, the write operation is delayed by the delay interposed by the logic element 261 by comparison with the transition to
niveau haut du signal CWE.high level of the CWE signal.
La figure 5C représente le fonctionnement pendant une écriture d'antémémoire autre que celle occasionnée par une lecture manquée. La première ligne de la figure 5C (référencée CWE) montre le signal CWE tel que généré par l'unité 82385. Etant donné que la figure 5C illustre une écriture d'antémémoire non occasionnée par une lecture manquée, le signal DCWE ne présente pas de transition du tout (BUSRD reste inactif). En conséquence, la sortie de la porte (263A ou 263B) est synchrone avec CWE de façon que l'opération d'écriture ne soit pas FIG. 5C shows the operation during a cache write other than that caused by a missed read. The first line of FIG. 5C (referenced CWE) shows the CWE signal as generated by the unit 82385. Since FIG. 5C illustrates a cache write not caused by a missed read, the DCWE signal does not show any transition at all (BUSRD remains inactive). As a result, the gate output (263A or 263B) is synchronous with CWE so that the write operation is not
retardée du tout.delayed at all.
Dans une réalisation de la présente invention, la durée du In one embodiment of the present invention, the duration of the
RETARD est de l'ordre de 25 nanosecondes. DELAY is around 25 nanoseconds.
Les équations logiques auxquelles on s'est référé ci dessus, sont reproduites immédiatement ci dessous. Dans ces équations, les symboles ont les significations suivantes: Symboles Définitions / Négation := Terme enregistré A, égal au = Terme combinatoire A, égal à & ET logique + OU logique The logic equations to which we have referred above, are reproduced immediately below. In these equations, the symbols have the following meanings: Symbols Definitions / Negation: = Recorded term A, equal to = Combinative term A, equal to & logical AND + logical OR
19 2 6263209219 2 62 632 092
Equations logiquesLogic equations
/BUSRD:=BUSRD & BUSCYC385 & /BADS & /(BW/R) & CLK / BUSRD: = BUSRD & BUSCYC385 & / BADS & / (BW / R) & CLK
(1) + BUSRD & /PIPECYCLE385 & /(BW/R) & CLK + /BUSRD & (1) + BUSRD & / PIPECYCLE385 & / (BW / R) & CLK + / BUSRD &
BREADY + /BUSRD & /MISSl + /BUSRD & /CLK BREADY + / BUSRD & / MISSl + / BUSRD & / CLK
/BUSCYC385:=BUSCYC385 & /BADS & CLK/ BUSCYC385: = BUSCYC385 & / BADS & CLK
(2) + BUSCYC385 & /PIPECYC385 & CLK + BUSCYC385 & /BT2 & (2) + BUSCYC385 & / PIPECYC385 & CLK + BUSCYC385 & / BT2 &
CLK + /BUSCYC385 & BREADY + /BUSCYC385 & /CLK CLK + / BUSCYC385 & BREADY + / BUSCYC385 & / CLK
/PIPECYC385:=PIPECYC385 & /BADS & /BUSCYC385 & CLK & / PIPECYC385: = PIPECYC385 & / BADS & / BUSCYC385 & CLK &
/BREADY (3) + PIPECYC385 & /MISS1 & BT2 & /BUSCYC385 / BREADY (3) + PIPECYC385 & / MISS1 & BT2 & / BUSCYC385
& CLK & /BREADY + /PIPECYC385 & /CLK & CLK & / BREADY + / PIPECYC385 & / CLK
/MISSl:=MISSl & BUSCYC385 & CPUNA & /BADS & /(BW/R) & CLK / MISSl: = MISSl & BUSCYC385 & CPUNA & / BADS & / (BW / R) & CLK
& NCA (4) + MISS1 & /BUSCYC385 & /BADS & /(BW/R) & CLK & & NCA (4) + MISS1 & / BUSCYC385 & / BADS & / (BW / R) & CLK &
NCA & /BREADY + JMISSl & /CLK + /MISSl & BREADY NCA & / BREADY + JMISSl & / CLK + / MISSl & BREADY
/CPUNA:=/MISS1 & CLK & CPUNA & /NACACHE / CPUNA: = / MISS1 & CLK & CPUNA & / NACACHE
(5) + /MISS1 & CLK & CPUNA & iBREADY & /BUSCYC385 + /CPUNA & /CLK + /CPUNA & /MISSl & CLK + JCPUNA & CLK & BREADY + (5) + / MISS1 & CLK & CPUNA & iBREADY & / BUSCYC385 + / CPUNA & / CLK + / CPUNA & / MISSl & CLK + JCPUNA & CLK & BREADY +
/CPUNA & BUSCYC385 & NACACHE & CLK/ CPUNA & BUSCYC385 & NACACHE & CLK
/BT2:=BUSCYC385 & PIPECYC385 & /BADS & CLK & BT2 / BT2: = BUSCYC385 & PIPECYC385 & / BADS & CLK & BT2
(6) + BUSCYC385 & /PIPECYC385 & BADS & CLK & NACACHE & BT2 (6) + BUSCYC385 & / PIPECYC385 & BADS & CLK & NACACHE & BT2
+ MISS1 & /BUSCYC385 & /BADS & /(BW/R) & CLK & NCA & + MISS1 & / BUSCYC385 & / BADS & / (BW / R) & CLK & NCA &
/BREADY + /MISS1 & /BREADY & /BUSCYC385 & CLK + /BT2 & / BREADY + / MISS1 & / BREADY & / BUSCYC385 & CLK + / BT2 &
BREADY & NACACHE + /CLK & /BT2BREADY & NACACHE + / CLK & / BT2
Dans les équations logiques précédentes, on s'est référé ou on a décrit les signaux suivants tels qu'indiqués dans les publications de Intel citées précédemment: BADS BREADY (BW/R) actuellement référencé comme BW/R, les parenthèses sont utilisées pour indiquer que le terme complet est un seul signal d'horloge 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" issu du bus de système 250 et qui va au bus local CPU 230. BW/R définit un signal d'écriture ou de lecture du bus de système 250. CLK est un signal de chronologie de processeur qui est en phase In the previous logic equations, the following signals have been referred to or described as indicated in the Intel publications cited above: BADS BREADY (BW / R) currently referenced as BW / R, parentheses are used to indicate that the full term is a single CLK BADS clock signal, when active, indicates a valid address on the system bus 250. BREADY is a "ready" status signal from the system bus 250 and which will to the local bus CPU 230. BW / R defines a write or read signal from the system bus 250. CLK is a processor chronology signal which is in phase
avec le processeur 225.with processor 225.
Les équations (1)-(6) définissent: BT2 BUSCYC385 BUSRD CPUNA MISSl PIPECYC385 En termes de signaux définis, les signaux que l'on a décrit ou auxquels l'on se réfère, sont les signaux indiqués dans les Equations (1) - (6) define: BT2 BUSCYC385 BUSRD CPUNA MISSl PIPECYC385 In terms of defined signals, the signals that have been described or to which we refer, are the signals indicated in the
publications de Intel citées précédemment et NCA et NACACHE. Intel publications cited above and NCA and NACACHE.
BT2 reflète l'état du bus de système 250. L'état BT2 est un BT2 reflects the state of system bus 250. State BT2 is a
état défini dans les publications de Intel citées précédemment. state defined in Intel publications cited above.
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 de BUSCYC385 also reflects the state of the system bus 250. It is high for bus states BTI, BT1, BT1P and low for bus states BT2, BT2P and BT2I (these are again bus states referenced in the publications of
Intel citées précédemment).Intel cited above).
/BUSRD est actif pendant des lectures apparaissant sur le bus / BUSRD is active during readings appearing on the bus
de système 250.of system 250.
CPUNA est un signal appliqué à l'unité 80386 et permettant une CPUNA is a signal applied to unit 80386 and allowing a
opération en pipeline.pipeline operation.
MISS1 est actif pour définir le premier cycle d'un cycle double pour la manipulation d'une lecture de 64 bits appliquée aux MISS1 is active to define the first cycle of a double cycle for the manipulation of a 64-bit reading applied to
dispositifs à possibilité d'antémémoire. cache memory devices.
PIPECYC385 est actif pendant BT1P (qui est un état de bus auquel on se réfère dans les publications de 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 d'étiquettes (A31 à A17) et des informations programmables définissant les étiquettes (s'il y en a) qui se réfèrent à des adresses à possibilité d'antémémoire par opposition- aux adresses sans PIPECYC385 is active during BT1P (which is a bus state which is referred to in the Intel publications cited above. NCA is a signal created by the decoding of the address component on the local bus CPU 230 to reflect on the active state , access without cache possibility The cache possibility is determined by a label component (A31 to A17) and programmable information defining the labels (if any) which refer to addresses with possibility cache as opposed to addresses without
possibilité d'antémémoire.possibility of cache memory.
NACACHE est un signal similaire au signal BNA. BNA est un signal généré par le système demandant une adresse suivante au 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 32K 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 Intel, le signal NACACHE auquel on se réfère ici pourrait être remplacé par le signal BNA. Dans une réalisation, l'élément logique 261 se présentait sous la forme d'un réseau logique programmable. Il est évident que d'autres dispositifs logiques pourraient être utilisés pour assurer une fonction identique. Bien qu'une réalisation préférée de la présente invention ait été décrite ici, il est évident que des modifications peuvent y être apportées sans pour autant sortir du cadre de celle ci qui doit être analysée non pas en fonction NACACHE is a signal similar to the BNA signal. BNA is a signal generated by the system requesting a following address from the local bus CPU 230 and is referenced in the Intel publications cited above. NACACHE differs from BNA only in that BNA is created for a 32K cache while NACACHE is created for a 64K cache. As long as the cache memory is 32K as reported in Intel publications, the NACACHE signal referred to here could be replaced by the BNA signal. In one embodiment, the logic element 261 was in the form of a programmable logic network. It is obvious that other logic devices could be used to provide an identical function. Although a preferred embodiment of the present invention has been described here, it is obvious that modifications can be made thereto without departing from the scope of the latter which must be analyzed not in terms of
de l'exemple décrit ici mais en fonction des revendications ci of the example described here but according to the claims ci
jointes.attached.
Claims (11)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/198,890 US5175826A (en) | 1988-05-26 | 1988-05-26 | Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385 |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2632092A1 true FR2632092A1 (en) | 1989-12-01 |
Family
ID=22735299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR8905079A Pending FR2632092A1 (en) | 1988-05-26 | 1989-04-11 | DELAYED ANTEMEMORY WRITE CONDITIONING CIRCUIT FOR A DUAL BUS MICROCALCULATOR SYSTEM COMPRISING AN UNIT 80386 AND A UNIT 82385 |
Country Status (25)
Country | Link |
---|---|
US (1) | US5175826A (en) |
EP (1) | EP0343989B1 (en) |
JP (1) | JP2755330B2 (en) |
KR (1) | KR930001584B1 (en) |
CN (1) | CN1019151B (en) |
AT (1) | ATE128566T1 (en) |
AU (1) | AU615542B2 (en) |
BE (1) | BE1002653A4 (en) |
BR (1) | BR8902383A (en) |
CA (1) | CA1314103C (en) |
CO (1) | CO4520299A1 (en) |
DE (2) | DE3911721A1 (en) |
DK (1) | DK170677B1 (en) |
ES (1) | ES2078237T3 (en) |
FI (1) | FI96244C (en) |
FR (1) | FR2632092A1 (en) |
GB (2) | GB8904920D0 (en) |
HK (1) | HK11592A (en) |
IT (1) | IT1230208B (en) |
MX (1) | MX170835B (en) |
MY (1) | MY106968A (en) |
NL (1) | NL8901327A (en) |
NO (1) | NO175837C (en) |
SE (1) | SE8901308L (en) |
SG (1) | SG110991G (en) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5586302A (en) * | 1991-06-06 | 1996-12-17 | International Business Machines Corporation | Personal computer system having storage controller with memory write control |
US5361368A (en) * | 1991-09-05 | 1994-11-01 | International Business Machines Corporation | Cross interrogate synchronization mechanism including logic means and delay register |
US5802548A (en) * | 1991-10-25 | 1998-09-01 | Chips And Technologies, Inc. | Software programmable edge delay for SRAM write enable signals on dual purpose cache controllers |
US5333276A (en) * | 1991-12-27 | 1994-07-26 | Intel Corporation | Method and apparatus for priority selection of commands |
US5309568A (en) * | 1992-03-16 | 1994-05-03 | Opti, Inc. | Local bus design |
US5426739A (en) * | 1992-03-16 | 1995-06-20 | Opti, Inc. | Local bus - I/O Bus Computer Architecture |
US5471585A (en) * | 1992-09-17 | 1995-11-28 | International Business Machines Corp. | Personal computer system with input/output controller having serial/parallel ports and a feedback line indicating readiness of the ports |
US5898894A (en) | 1992-09-29 | 1999-04-27 | Intel Corporation | CPU reads data from slow bus if I/O devices connected to fast bus do not acknowledge to a read request after a predetermined time interval |
US6487626B2 (en) | 1992-09-29 | 2002-11-26 | Intel Corporaiton | Method and apparatus of bus interface for a processor |
US5613153A (en) * | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
US5890216A (en) * | 1995-04-21 | 1999-03-30 | International Business Machines Corporation | Apparatus and method for decreasing the access time to non-cacheable address space in a computer system |
US6397295B1 (en) | 1999-01-04 | 2002-05-28 | Emc Corporation | Cache mechanism for shared resources in a multibus data processing system |
US6874039B2 (en) | 2000-09-08 | 2005-03-29 | Intel Corporation | Method and apparatus for distributed direct memory access for systems on chip |
JP2005221731A (en) * | 2004-02-05 | 2005-08-18 | Konica Minolta Photo Imaging Inc | Imaging device |
US8996833B2 (en) * | 2013-03-11 | 2015-03-31 | Intel Corporation | Multi latency configurable cache |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4190885A (en) * | 1977-12-22 | 1980-02-26 | Honeywell Information Systems Inc. | Out of store indicator for a cache store in test mode |
US4171538A (en) * | 1978-01-23 | 1979-10-16 | Rockwell International Corporation | Elastic store slip circuit apparatus for preventing read and write operations interference |
US4189770A (en) * | 1978-03-16 | 1980-02-19 | International Business Machines Corporation | Cache bypass control for operand fetches |
JPS58169958A (en) * | 1982-03-31 | 1983-10-06 | Fujitsu Ltd | Mis static random access memory |
US4494190A (en) * | 1982-05-12 | 1985-01-15 | Honeywell Information Systems Inc. | FIFO buffer to cache memory |
US4513372A (en) * | 1982-11-15 | 1985-04-23 | Data General Corporation | Universal memory |
US4686621A (en) * | 1983-06-30 | 1987-08-11 | Honeywell Information Systems Inc. | Test apparatus for testing a multilevel cache system with graceful degradation capability |
JPH0795395B2 (en) * | 1984-02-13 | 1995-10-11 | 株式会社日立製作所 | Semiconductor integrated circuit |
US4736293A (en) * | 1984-04-11 | 1988-04-05 | American Telephone And Telegraph Company, At&T Bell Laboratories | Interleaved set-associative memory |
US4623990A (en) * | 1984-10-31 | 1986-11-18 | Advanced Micro Devices, Inc. | Dual-port read/write RAM with single array |
US4835678A (en) * | 1985-02-01 | 1989-05-30 | Nec Corporation | Cache memory circuit for processing a read request during transfer of a data block |
US4630239A (en) * | 1985-07-01 | 1986-12-16 | Motorola, Inc. | Chip select speed-up circuit for a memory |
JPS6261135A (en) * | 1985-09-11 | 1987-03-17 | Nec Corp | Cache memory |
JPS62194563A (en) * | 1986-02-21 | 1987-08-27 | Hitachi Ltd | buffer storage device |
US4710903A (en) * | 1986-03-31 | 1987-12-01 | Wang Laboratories, Inc. | Pseudo-static memory subsystem |
US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
-
1988
- 1988-05-26 US US07/198,890 patent/US5175826A/en not_active Expired - Fee Related
-
1989
- 1989-03-03 GB GB898904920A patent/GB8904920D0/en active Pending
- 1989-04-11 DE DE3911721A patent/DE3911721A1/en active Granted
- 1989-04-11 SE SE8901308A patent/SE8901308L/en not_active Application Discontinuation
- 1989-04-11 FR FR8905079A patent/FR2632092A1/en active Pending
- 1989-04-14 FI FI891788A patent/FI96244C/en not_active IP Right Cessation
- 1989-04-18 NO NO891583A patent/NO175837C/en unknown
- 1989-04-19 DK DK189689A patent/DK170677B1/en active
- 1989-04-20 BE BE8900440A patent/BE1002653A4/en not_active IP Right Cessation
- 1989-04-25 CN CN89102658A patent/CN1019151B/en not_active Expired
- 1989-04-26 CA CA000597892A patent/CA1314103C/en not_active Expired - Fee Related
- 1989-04-26 KR KR1019890005468A patent/KR930001584B1/en not_active IP Right Cessation
- 1989-04-26 MY MYPI89000552A patent/MY106968A/en unknown
- 1989-05-05 AU AU34096/89A patent/AU615542B2/en not_active Ceased
- 1989-05-12 JP JP1117622A patent/JP2755330B2/en not_active Expired - Lifetime
- 1989-05-16 CO CO92302647A patent/CO4520299A1/en unknown
- 1989-05-24 BR BR898902383A patent/BR8902383A/en not_active Application Discontinuation
- 1989-05-24 MX MX016169A patent/MX170835B/en unknown
- 1989-05-25 IT IT8920649A patent/IT1230208B/en active
- 1989-05-25 AT AT89305307T patent/ATE128566T1/en not_active IP Right Cessation
- 1989-05-25 ES ES89305307T patent/ES2078237T3/en not_active Expired - Lifetime
- 1989-05-25 GB GB8912019A patent/GB2219111B/en not_active Expired - Lifetime
- 1989-05-25 EP EP89305307A patent/EP0343989B1/en not_active Expired - Lifetime
- 1989-05-25 DE DE68924368T patent/DE68924368T2/en not_active Expired - Fee Related
- 1989-05-26 NL NL8901327A patent/NL8901327A/en not_active Application Discontinuation
-
1991
- 1991-12-31 SG SG1109/91A patent/SG110991G/en unknown
-
1992
- 1992-02-13 HK HK115/92A patent/HK11592A/en unknown
Non-Patent Citations (3)
Title |
---|
82385 HIGH PERFORMANCE 32-BIT CACHE CONTROLLER, octobre 1987, Intel Corp., Santa Clara, US * |
ELECTRONICS & WIRELESS WORLD, vol. 93, no. 1621, novembre 1987, pages 1121-1123, Sutton, Surrey, GB; D. JONES et al.: "The 68030" * |
ELECTRONICS, vol. 60, no. 12, 11 juin 1987, pages 74-76, New York, US; B.C. COLE: "How a cache control chip supercharges 386 processor" * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2632092A1 (en) | DELAYED ANTEMEMORY WRITE CONDITIONING CIRCUIT FOR A DUAL BUS MICROCALCULATOR SYSTEM COMPRISING AN UNIT 80386 AND A UNIT 82385 | |
FR2827684A1 (en) | MEMORY CONTROLLER HAVING 1X / MX WRITE CAPACITY | |
FR2632090A1 (en) | CONTROL OF THE PIPE-LINE OPERATION OF A MICRO-COMPUTER SYSTEM USING DYNAMIC BUS SIZING WITH AN 80386 PROCESSOR AND AN ANEMORY 82385 CONTROL UNIT | |
FR2632096A1 (en) | MULTIPLE BUS MICROCALCULATOR SYSTEM WITH BUS ACCESS ARBITRATION | |
FR2539528A1 (en) | MICROPROCESSOR SYSTEM COMPRISING TWO PROCESSORS | |
EP0683454B1 (en) | Method for testing program flow | |
EP0578540B1 (en) | Method of testing the functionality of an ASIC and related ASIC | |
FR2513410A1 (en) | MICROPROCESSOR AND METHOD FOR INORGANIZING ACCESS IN MEMORY OF THIS MICROPROCESSOR | |
FR2528195A1 (en) | COMMUNICATION SYSTEM BETWEEN COMPUTERS | |
FR2849228A1 (en) | Data transfer device for linking two asynchronous systems communicating via a FIFO buffer memory, each system having a pointing register with associated primary and secondary phantom registers | |
FR2613097A1 (en) | CONVERSION OF THE MODE OF CONTROL SIGNALS FOR COMPUTERS | |
EP1748355B1 (en) | FIFO-type unidirectional interfacing device between a master block and a slave block, corresponding slave block | |
FR2899985A1 (en) | Circular buffer controlling device for memorizing data word, has delay circuit adjusted when clock signals associated with systems have same frequency, such that edges of delayed clock signal are off set with edges of clock signals | |
FR2778254A1 (en) | Memory cache cleaning method to reduce clock cycles in computer system with cache memories | |
EP0683455B1 (en) | Microcomputer with integrated breakpoint circuit triggered by combined events | |
EP0707260B1 (en) | Serial access asynchronous memory device and corresponding storing and reading method | |
EP0025731A1 (en) | Selecting circuit for asynchronous requests in an information processing system | |
FR2759178A1 (en) | MEMORY MANAGEMENT CIRCUIT IN A MULTI-USER ENVIRONMENT WITH REQUEST AND PRIORITY OF ACCESS | |
EP0344052B1 (en) | Modular memory | |
EP1338956A1 (en) | Electronic data processing apparatus, especially audio processor for audio/video decoder | |
FR2497596A1 (en) | COMPUTER MACHINE COMPRISING AN ANEMEMY | |
FR2717921A1 (en) | Device for managing access conflict between a CPU and memories. | |
EP0264325B1 (en) | Automatic device for making a processor compatible with the bus of another processor | |
EP0020931B1 (en) | Programme interrupt processor for computer with instruction pre-fetch | |
EP0908828A1 (en) | Distributed access control system for memory and method |