DE68923402T2 - Mikrorechnersystem, der ein Cache-Subsystem mit Nachschreibfähigkeit enthält. - Google Patents

Mikrorechnersystem, der ein Cache-Subsystem mit Nachschreibfähigkeit enthält.

Info

Publication number
DE68923402T2
DE68923402T2 DE68923402T DE68923402T DE68923402T2 DE 68923402 T2 DE68923402 T2 DE 68923402T2 DE 68923402 T DE68923402 T DE 68923402T DE 68923402 T DE68923402 T DE 68923402T DE 68923402 T2 DE68923402 T2 DE 68923402T2
Authority
DE
Germany
Prior art keywords
bus
microprocessor
data
ready signal
signal
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.)
Expired - Fee Related
Application number
DE68923402T
Other languages
English (en)
Other versions
DE68923402D1 (de
Inventor
Ralph Murray Begun
Patrick Maurice Bland
Mark Edward Dean
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68923402D1 publication Critical patent/DE68923402D1/de
Application granted granted Critical
Publication of DE68923402T2 publication Critical patent/DE68923402T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Microcomputers (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Bus Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Compositions Of Macromolecular Compounds (AREA)
  • Peptides Or Proteins (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf Mikrorechnersysteme, insbesondere Mikrorechnersysteme, die ein Cache-Subsystem mit einem Cache-Controller enthalten, das in der Lage ist, Schreibzyklen zu hinterlegen.
  • Die Verwendung von Cache-Subsystemen in Mikrorechnersystemen bietet eine Reihe attraktiver Betriebsvorteile. Ein Mikrorechnersystem mit einem Cache-Subsystem ist in Wirklichkeit ein Mikrorechner mit Dual-Bus. Die CPU und das Cache-Subsystem sind über eine Einrichtung miteinander verbunden, die als CPU-Localbus bezeichnet werden kann. Getrennt von dem CPU-Localbus ist ein Systembus vorhanden, an den andere Geräte (E/A-Geräte, zusätzliche Speicher etc.) angeschlossen werden können. Durch das Cache-Subsystem ist der Systembus von allen Lese-Speicherzugriffen befreit, sofern die gesuchte Information im Cache-Subsystem gefunden wird. Da nicht alle gewünschten Informationen im Cache-Subsystem gefunden werden, und Schreiboperationen normalerweise sowohl an das Cache-Subsystem als auch an den Speicher gerichtet sind, muß natürlich zwischen dem Systembus und dem CPU-Localbus eine Verbindung bestehen. Handelt es sich hierbei um einen Auffangpuffer, sind zusätzliche Vorteile, insbesondere das Hinterlegen von Schreiboperationen, möglich.
  • Bei jeder Schreiboperation muß auf den Speicher (der sich nicht auf dem CPU-Localbus befindet) zugegriffen werden. Die Informationen (Daten und Adressen) für den Schreibzugriff werden zunächst auf dem CPU-Localbus abgelegt, wo sie zum Schreiben in das Cache-Subsystem verwendet werden können. Da die Schnittstelle zwischen dem CPU-Localbus und dem Systembus ein Auffangpuffer ist, können dieselben Daten im Puffer zwischengespeichert werden. Nachdem die Information im Puffer zwischengespeichert ist, muß sie nicht mehr von der CPU angetrieben werden. Ein hinterlegter Schreibzyklus verläßt sich also darauf, daß die Adreß- und Dateninformationen für eine Speicherschreiboperation im Auffangpuffer zur Verfügung stehen. Um diesen Schreibzyklus abzuschließen, ist ein Eingreifen der CPU nicht nötig. Bei einer "hinterlegten" Schreiboperation werden also die Daten und die Adresse für den Schreibzyklus in dem Puffer zwischengespeichert, der mit dem CPU-Localbus und dem Systembus eine Schnittstelle bildet, und die CPU kann dann ihre Arbeit mit der Einleitung eines Folgezyklus fortsetzen. Das Cache-Steuersystem (einschließlich Cache-Controller) kann dann den Abschluß der Schreiboperation in den Speicher überwachen.
  • Mikrorechnersysteme mit einem 80386-Prozessor und einem 82385-Cache-Controller, beide von Intel Corporation, nutzen die Vorteile hinterlegter Schreiboperationen in genau dieser Weise.
  • Der 80386 und die von ihm erzeugten Signale werden in "Introduction to the 80386 Including the 80386 Data Sheet" von Intel Corporation (April 1986) beschrieben. Der 82385- Cache-Controller und die von ihm erzeugten Signale werden in "82385 High Performance 32-Bit Cache Controller", erhältlich von Intel Corporation (Juli 1987), beschrieben.
  • Ein weiteres attraktives Merkmal des 80386 ist seine Fähigkeit, mit Dynamic Bus Sizing arbeiten zu können. Der 80386 ist nominell eine 32-Bit-Maschine, das heißt, sein Datenbus ist 32 Bit breit. Dynamic Bus Sizing ist die Fähigkeit des 80386-Prozessors, nicht nur mit 32-Bit-Geräten (Speicher, E/A, etc.), zusammenarbeiten zu können, sondern auch mit Geräten, die keine 32-Bit-Fähigkeit haben, das heißt, Geräte, die in einem Zyklus nicht 32 Datenbits gleichzeitig übertragen können. Es gibt zum Beispiel eine große Vielfalt von Speichern und/oder E/A-Geräten, die 16-Bit-Geräte sind, das heißt, sie können in einem gegebenen Zyklus höchstens 16 Datenbits übertragen. Außerdem gibt es auch E/A-Geräte, Speicher und andere Geräte mit 8-Bits. Diese Geräte können nur 8 Datenbits in einem gegebenen Zyklus übertragen.
  • Der 80386 kann mit einem BS16-Signal arbeiten. Wird dieses Signal angemeldet, hat das die folgende Wirkung. Hat der 80386 einen 32-Bit-Zyklus erzeugt, das heißt, hat er 32 Datenbits erzeugt bzw. erwartet er 32 Datenbits, zeigt die Anmeldung des 8516-Signals dem 80386 an, daß er nicht mit einem 32-Bit-Gerät arbeitet. Durch Anmeldung des BS16-Signals wird während des 32-Bit-Zyklus automatisch die Erzeugung eines zweiten Zyklus eingeleitet. Normalerweise ruft jedes 16--/ Bit-Gerät eine vorbestimmte Gruppe von 16 Bits von dem 32- Bit-Datenbus ab. Beim zweiten durch das BS16-Signal erzeugten Zyklus plaziert der 80386 diese Gruppe von 16 Datenbits, die im ersten Zyklus nicht in der vorbestimmten Gruppe von Datenbits waren, auf einer vorbestimmten Gruppe von Datenleitungen, die der vorbestimmten Gruppe von 16 Bits zugeordnet sind. Von dem 16-Bit-Gerät wird also in dem ersten der beiden Zyklen eine gegebene Gruppe von 16 Bits des 32-Bit-Datenbereichs abgerufen. Im zweiten Zyklus werden von dem 16-Bit-Gerät weitere 16 Datenbits abgerufen, so daß in beiden 16-Bit- Zyklen zusammen 32 Bits abgerufen werden.
  • Zwischen den hinterlegten Schreibzyklen und Dynamic Bus Sizing besteht jedoch eine Unverträglichkeit. Diese Unverträglichkeit entsteht aus dem folgenden Grund. Nehmen wir an, der 80386 leitet eine hinterlegte Schreiboperation ein. Die Daten und die Adresse für den hinterlegten Schreibzyklus werden in der gepufferten Schnittstelle zwischen dem CPU-Localbus und dem Systembus zwischengespeichert. Obwohl der Schreibzyklus noch nicht abgeschlossen ist, wird an den 80386 ein Bereit-Signal zurückgemeldet. Hierdurch wird simuliert, daß der Zyklus abgeschlossen ist, und der 80386 kann eine Folgeoperation einleiten. Da das BS16-Signal (das an den 80386 zurückgemeldet wird, um diesem die Größe des Geräts, mit dem er arbeitet, anzuzeigen) von dem Gerät erzeugt wird, wird dieses Signal erst dann erzeugt, wenn das Gerät seine Adresse erkannt hat. Setzen wir das Beispiel fort und nehmen wir an, daß das Gerät, für das der hinterlegte Schreibzyklus bestimmt ist, in Wirklichkeit ein 16-Bit-Gerät ist; zu dem Zeitpunkt, an dem das BS16-Signal an den 80386 zurückgemeldet wird, ist dieser bereits nicht mehr mit der gegebenen Operation, sondern bereits mit der Folgeoperation beschäftigt. Der 80386 kann daher den zweiten, für das 16-Bit-Gerät notwendigen Zyklus nicht erzeugen.
  • Es ist daher ein Ziel der Erfindung, Schreibzyklen selektiv zu hinterlegen. Dieses Ziel wird durch die Erfindung nach Anspruch 1 erreicht.
  • Ein Ausführungsbeispiel der Erfindung soll nun unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben werden; es zeigt:
  • Fig. 1 eine dreidimensionale Gesamtansicht eines typischen Mikrorechnersystems, das die vorliegende Erfindung ausgestaltet;
  • Fig. 2 ein ausführliches Blockdiagramm der meisten Komponenten eines typischen Mikrorechnersystems, das die vorliegende Erfindung ausgestaltet;
  • Fig. 3 ein Blockdiagramm, etwas ausführlicher als Fig. 2, mit den Verbindungen zwischen einem 80386 und 82385, die vom Hersteller empfohlen werden; das Diagramm hilft, zu verstehen, warum eine solche Anordnung mit Dynamic Bus Sizing nicht vereinbar ist; und
  • Fig. 4 ist ein Blockdiagramm, ähnlich wie Fig. 3, in dem jedoch die Anwendung der vorliegenden Erfindung für das selektive Hinterlegen von Schreibzyklen erläutert wird.
  • Fig. 1 zeigt ein typisches Mikrorechnersystem, in dem die vorliegende Erfindung eingesetzt werden kann. Wie dargestellt, umfaßt das Mikrorechnersystem 10 eine Reihe von miteinander verbundenen Komponenten. Im einzelnen ist eine Systemeinheit 30 mit einem Monitor 20 verbunden und treibt diesen an (beispielsweise eine herkömmliche Video-Anzeige). Die Systemeinheit 30 ist außerdem init Eingabegeräten, wie Tastatur 40 und Maus 50, verbunden. Außerdem kann ein Ausgabegerät, wie zum Beispiel ein Drucker 60, an die Systemeinheit 30 angeschlossen werden. Schließlich kann die Systemeinheit 30 ein oder mehrere Plattenlaufwerke enthalten, zum Beispiel das Plattenlaufwerk 70. Wie nachfolgend beschrieben wird, reagiert die Systemeinheit 30 auf Eingabegeräte, beispielsweise die Tastatur 40 und die Maus 50, und Ein-/Ausgabegeräte, zum Beispiel das Plattenlaufwerk 70, um Signale zum Antreiben der Ausgabegeräte, beispielsweise den Monitor 20 und den Drucker 60, zu liefern. Der Fachmann kann natürlich erkennen, daß auch andere und konventionelle Komponenten interaktiv an die Systemeinheit 30 angeschlossen werden können. Gemäß der vorliegenden Erfindung umfaßt das Mikrorechnersystem 10 (wie nachfolgend noch im einzelnen beschrieben wird) ein Cache- Speicher-Subsystem, so daß ein CPU-Localbus vorhanden ist, der mit einem Prozessor, einem Cache-Steuerwerk und einem Cache-Speicher verbunden ist, wobei der CPU-Localbus über einen Puffer mit einem Systembus gekoppelt ist. Der Systembus ist mit den E/A-Geräten, zum Beispiel Tastatur 40, Maus 50, Plattenlaufwerk 70, Monitor 20 und Drucker 60, interaktiv verbunden. Desweiteren kann, gemäß der vorliegenden Erfindung, die Systemeinheit 30 außerdem einen dritten Bus enthalten, der einen Micro Channel (TM)-Bus als Verbindung zum Systembus und anderen (optionalen) Ein/Ausgabegeräten mit unterschiedlichen Datenbreiten umfaßt.
  • Fig. 2 ist ein high-level-Blockdiagramm, das die verschiedenen Komponenten eines typischen Mikrorechnersystems gemäß der vorliegenden Erfindung erläutert. Ein CPU-Localbus 230 (mit Daten-, Adressen- und Steuerkomponenten) stellt die Verbindung zwischen einem Mikroprozessor 225 (beispielsweise ein 80386), einem Cache-Steuerwerk 260 (das einen 82385-Cache- Controller enthalten kann) und einem Cache-Speicher 255 mit wahlfreiem Zugriff her. An den CPU-Localbus 230 ist außerdem ein Puffer 240 gekoppelt. Der Puffer 240 selbst ist an den Systembus 250 angeschlossen, der auch Adreß-, Daten- und Steuerkomponenten umfaßt. Der Systembus 250 liegt zwischen dem Puffer 240 und einem weiteren Puffer 253.
  • Der Systembus 250 ist außerdem an ein Bussteuer- und Zeitgeberelement 265 und einen DMA-Controller 325 angeschlossen. Ein Zuteilungs-Steuerbus 340 verbindet das Bussteuer- und Zeitgeberelement 265 mit einem Zuteilungsüberwacher 335. Der Hauptspeicher 350 ist ebenfalls an den Systembus 250 angeschlossen. Der Hauptspeicher umfaßt ein Speichersteuerelement 351, einen Adressen-Multiplexer 352 und einen Datenpuffer 353. Diese Elemente sind mit den Speicherelementen 361 bis 364 verbunden, wie in Fig. 2 zu sehen ist. Speichergeräte und cachefähige Speichergeräte können an den Bus 320 angeschlossen werden; ein typisches Speichergerät 331 ist in Fig. 2 dargestellt.
  • Ein weiterer Puffer 254 ist zwischen dem Systembus 250 und einem Planarbus 270 angeschlossen. Der Planarbus 270 umfaßt Adreßdaten beziehungsweise Steuerkomponenten. An den Planarbus 270 sind verschiedene E/A-Adapter und andere Komponenten angeschlossen, zum Beispiel der Bildschirm-Adapter 275 (zum Antreiben des Monitors 20), ein Taktgeber 280, zusätzliche Direktzugriffsspeicher 285, ein RS 232-Adapter 290 (für serielle E/A-Operationen), ein Drucker-Adapter 295 (der zum Antreiben des Druckers 60 verwendet werden kann), ein Zeitgeber 300, ein Disketten-Adapter 305 (der mit dem Plattenlaufwerk 70 zusammenarbeitet), ein Interrupt-Controller 310 und ein Nurlesespeicher 315. Ein weiterer Puffer 253 ist zwischen dem Systembus 250 und einem weiteren Bus, beispielsweise einem Micro-Channel (TM)-320-Bus angeschlossen, der zum Anschluß optionaler Funktionseinheiten dient.
  • Fig. 3 ist ein Blockdiagramm der Verbindungen zwischen dem 80386, dem 82385-Cache-Controller, dem Auffangpuffer 240, der die Schnittstelle zwischen dem CPU-Localbus und dem Systembus bildet, wie sie vom Hersteller empfohlen werden. Im einzelnen zeigt Fig. 3 die Adreß- und Steuerbuskomponenten des CPU- Localbus CPULBA (einschließlich der Adreßleiter A2-A31 und der Steuerleiter D/C, W/R und M/10), gekoppelt an einen Eingang des gesteuerten Adressen-Zwischenspeichers (AL) , der ein Element des Puffers 240 darstellt. Die Ausgänge des Zwischenspeichers AL gehen zur Adressenkomponente SBA und zur Steuerkomponente SBC des Systembusses. Ähnlich ist der Dateneingangs-/Datenausgangsanschluß des 80386 (mit den Leitern D0-D31) mit einem Anschluß des Daten-Zwischenspeichers (DL) zwischen dem CPU-Localbus und dem Systembus verbunden und stellt ein weiteres Element des Puffers 240 dar. Der andere Anschluß des DL ist die Datenkomponente des Systembusses SBD. Fig. 3 zeigt, daß der Cache-Controller 82385 über eine externe Logik, die durch das UND-Gatter 300 und das ODER-Gatter 301 dargestellt ist, ein READYO-Signal an den 80386 liefert. READYI ist das Bereit-Signal, das entweder anzeigt, daß der Buszyklus abgeschlossen ist, oder das vor Abschluß des Systembuszyklus für eine hinterlegte Schreiboperation angemeldet wird. Da DL bidirektional ist, können entweder Daten von der CPU-Localbus-Komponente (CPULBD) oder von der Systembus-Datenkomponente (SBD) zwischengespeichert werden; der 82385 liefert außerdem ein Richtungssignal (BT/R), um anzuzeigen, ob der DL Daten vom CPU-Localbus oder vom Systembus überträgt. Die Signale BE0-8E3 (sowohl die vom 80386 ausgegebenen als auch die vom 82385 ausgegebenen Wiederhol-Signale) sind zusätzliche Adressierungssignale. Das Mikrorechnersystem 80386/82385 ist bei jedem Hauptspeicherzugriff so angeordnet, daß auf eine "Zeile" von Daten, die vier Bytes darstellt, zugegriffen wird. Die 4-Bit-Adressiersignale (BE0-8E3) können zur Auswahl von ein oder mehr Bytes aus den vier Bytes der "Zeile" verwendet werden. Die Signale BHOLD und BHLDA sind ein Signalpaar "Bus halten - Bus halten bestätigen", das zwischen dem 82385-Cache-Controller und dem Zuteilungsüberwacher 335 läuft. BADS ist ein Signal, welches anzeigt, daß das Adressierelement des Systembusses SBA eine gültige Adresse anmeldet. BREADY ist ein Bereit-Signal vom Systembus 250 zum 82385.
  • Wie in Fig. 3 gezeigt und in den genannten Intel-Handbüchern erläutert, werden alle Schreiboperationen hinterlegt, das heißt, Adressen und Daten werden in den Elementen DL und AL des Puffers 240 zwischengespeichert und der 82385 meldet dann READYO an, so daß sich der 80386 bereits der Einleitung einer Folgeoperation widmen kann. Die hinterlegte Schreiboperation kann dann aus den Daten im AL und DL komplettiert werden; dieser Vorgang wird vom 82385 überwacht. Solange die Geräte, für die die hinterlegte Schreiboperation bestimmt ist, 32-Bit-Geräte sind, so daß die Schreiboperation in einem einzigen Zyklus abgeschlossen werden kann, oder sind die hinterlegten Schreiboperationen 16-Bit-Schreiboperationen an ein 16-Bit-Gerät etc., sind die hinterlegten Schreiboperationen wirksam. Andererseits sind hinterlegte Schreiboperationen ungeeignet, wenn die Datenmenge in einem hinterlegten Schreibzyklus Daten enthält, die die Größe des Geräts, an das die Schreiboperation gerichtet ist, überschreiten. Der Grund dafür ist, daß in diesen Fällen zusätzliche Zyklen notwendig sind (ein 32-Bit-Zyklus an ein 16-Bit-Gerät erfordert zwei Zyklen etc.). Zu dem Zeitpunkt, an dem der 80386 ein 8516- Signal empfängt, das (bei einem 32-Bit-Zyklus) anzeigt, daß die hinterlegte Schreiboperation an ein 16-Bit-Gerät geht, ist er aber bereits mit der Folgeoperation beschäftigt und kann den früheren Zyklus nicht wiederholen.
  • Fig. 4 ist ähnlich wie Fig 3, zeigt jedoch, wie der 80386, der 82385, der AL, der DL, der CPU-Localbus 230 und der Systembus 250 gemäß der vorliegenden Erfindung miteinander verbunden sind. Der BT/R-Ausgang des 82385 wird jetzt nicht an den DL angekoppelt, sondern in ein neues Steuerelement C eingegeben. Andere Eingänge in das Steuerlement C sind das DOE#-Signal und das WBS-Signal vom 82385 und das READYO- Signal (das vorher an den 80386 angeschlossen war - siehe Fig. 3). Ein Decodierer CADR ist mit der Adreßkomponente des CPU-Localbus (CPULBA) gekoppelt, im einzelnen mit den Kennzeichen-Bits A17-A26 und A31. Der CADR meldet ein Signal NCA an, das in das Steuerelement C eingegeben wird, wodurch eine angemeldete Adresse auf dem CPULBA angezeigt wird; es handelt sich hierbei um die Adresse eines nicht cachefähigen Geräts. Ähnlich entstehen jetzt in dem Steuerelement C Steuersignale für das Element DL, insbesondere LEAB (um Daten in dem Element DL zwischenzuspeichern) und OEAB# (um den Ausgang des DL-Elements freizugeben). Ein weiterer Eingang in das Steuerelement C ist das vom Systembus generierte Signal BREADY.
  • Neben seinen Eingängen von den Bits A17-A26 und A31 der CPULBA empfängt der Decodierer CADR programmierbare Cachefähigkeits-Bits (PCB) - In einem tatsächlich konstruierten Ausführungsbeispiel stellt das erste dieser drei Bits eine Entscheidung dar, die ein Caching des ROM-Bereichs erlaubt. Ein zweites Bit befähigt entweder den Decodierer CADR, NCA aus zugeben, basierend auf der decodierten Information, oder, alternativ, alle Zugriffe für nicht cachefähig zu erklären, das heißt, NCA anzumelden, unabhängig von der angemeldeten Adresse des CPULBA. Schließlich gibt ein drittes Bit in einem bestimmten Zustand an, daß Adreßraum zwischen 0 und 8 Megabytes cachefähig ist, und daß Adreßraum zwischen 8 bis 16 Megabytes nicht cachefähig ist. In einem anderen Zustand gibt dieses Bit an, daß Adreßraum im Bereich 0 bis 16 Megabytes cachefähig ist. Falls gewünscht, kann die Wirkung dieses Bits multipliziert werden, indem einfach der Status der ersten 16 Megabytes in den Bereichen der folgenden 16 Megabytes reflektiert wird Natürlich ist die Nutzung dieser besonderen (oder anderer) Cachefähigkeits-Indikatoren für die Erfindung nicht wesentlich. Es ist jedoch wichtig, den CADR so anzuordnen, daß er seine Eingänge schnell decodieren und NCA erzeugen kann. In einem tatsächlich konstruierten Ausführungsbeispiel war das Zeitgeber-Fenster für die Erzeugung von NCA aus gültigen Adressen auf dem CPULBA mit etwa zehn Nanosekunden sehr kurz.
  • Der Begriff CPUREADY soll nachfolgend definiert werden (siehe Gleichung 7) Die fünfte Zeile der Gleichung (auf der rechten Seite des Gleichheitszeichens) gibt die Abhängigkeit von CPUREADY von NCA an, das heißt, wenn NCA zusammen mit READYO angemeldet wird, wird CPUREADY negiert.
  • Gleichzeitig mit der Anmeldung von CPUREADY muß LEAB angemeldet werden, um die in den DL zu schreibenden Daten zwischenzuspeichern. Das Signal LEAB wird in Gleichung 8 (siehe unten) definiert. Es enthält einen Setz-Term (auf der ersten Zeile rechts vom Gleichheitszeichen) und zwei Halte-Terme auf der zweiten und dritten Zeile. Der Setz-Term erfordert die Konjunktion von /BUSCYC3B6, /CPUREADY, (W/R), CLK und ADS.
  • In einem tatsächlich konstruierten Ausführungsbeispiel der Erfindung wurde die Steuerlogik C (sowie eine andere Steuerlogik, die nicht dargestellt ist, mit der andere Gleichungen der nachfolgend gezeigten Gleichungen 1-11 implementiert wurden) in Form einer programmierbaren Logikanordnung realisiert. Für einen Fachmann dürfte klar sein, daß auch andere konventionelle Logik-Implementierungen zur Verfügung stehen.
  • Durch Nutzung der in Fig. 4 gezeigten (und nachfolgend in Verbindung mit den logischen Gleichungen erläuterten) externen Logik stehen also hinterlegte Schreiboperationen nur für cachefähige Zugriffe zur Verfügung. Der Definition nach ist ein cachefähiger Zugriff ein 32-Bit-Gerät, obwohl auch andere 32-Bit-Geräte vorhanden sein können, die nicht cachefähig sind. Die Hauptentscheidung, die für die Implementierung dieser Erfindung erforderlich war, bestand darin, zu entscheiden, ob eine hinterlegte Schreiboperation geeignet ist. Nachdem diese Entscheidung getroffen ist, wird sie durch Entwicklung der entsprechenden Steuersignale an DL und AL implementiert. Die vom 82385 erzeugten Signale sind insoweit geeignet, als sie mit der Entscheidung, die Schreiboperation zu hinterlegen, kompatibel sind.
  • Dementsprechend erlaubt die Anwendung der Erfindung eine Fortsetzung der hinterlegten Operationen, obwohl auch Geräte an den Systembus und/oder den Bus mit optionalen Funktionen angeschlossen sein können, die kleiner als 32 Bits sind.
  • Die oben erwähnten logischen Gleichungen werden nachfolgend wiedergegeben. Den Symbolen wurden hierbei folgende Bedeutungen zugeordnet:
  • Symbol Definition
  • / Negation
  • := ein registrierter Term, ist gleich
  • = ein kombinatorischer Term, ist gleich
  • & logisches UND
  • + logisches ODER Logische Gleichungen
  • In den oben genannten logischen Gleichungen werden in den zitierten Intel-Publikationen folgende Signale beschrieben oder genannt:
  • ADS
  • BADS
  • BRDYEN
  • BREADY
  • (BW/R) eigentlich in der Form BW/R genannt, die Klammern sollen darauf hinweisen, daß der gesamte Term ein Signal ist
  • CLK
  • READYO
  • RESET
  • WBS
  • (W/R) eigentlich in der Form W/R genannt, die Klammern sollen darauf hinweisen, daß der gesamte Term ein Signal ist
  • Wenn ADS aktiv ist, zeigt es eine gültige Adresse auf dem CPU-Localbus 230 an. Wenn BADS aktiv ist, zeigt es eine gültige Adresse auf dem Systembus 250 an. BRDYEN ist ein Ausgang von 82385, der ein Vorgänger der READY-Signale ist. BREADY ist ein Bereit-Signal vom Systembus 250 an den CPU-Localbus 230. BW/R definiert eine Schreib- oder Leseoperation auf dem Systembus 250. CLK ist ein Prozessor-Taktsignal, das in der Phase mit dem Prozessor 225 übereinstimmt. READYO ist ein weiterer Ausgang des 82385 in der Reihe der Bereit-Signale. RESET bedarf keiner weiteren Erläuterung. WBS zeigt den Zustand des Schreibpuffers an. (W/R) ist ein herkömmliches Schreib- oder Lesesignal für den CPU-Localbus 230. Die Gleichungen (1)-(11) definieren:
  • BREADY385
  • BT2
  • BUFWREND
  • BUSCYC385
  • BUSCYC386
  • CPUNA
  • LEAB
  • MISS1
  • PIPECYC385
  • PIEPCYC386
  • CPUREADY
  • in Form der definierten Signale, der Signale, die in den zitierten Intel-Publikationen beschrieben oder genannt werden, und NCA, NACACHE, READYO387 und RDY387PAL.
  • BREADY385 ist ein Signal wie BREADY, das in einem tatsächlich konstruierten Ausführungsbeispiel für einen 64K-Cache modifiziert wurde. Bei einem 32K-Cache (wie er vom Hersteller empfohlen wird) kann BREADY anstelle von BREADY385 verwendet werden.
  • BT2 gibt den Zustand des Systembusses 250 wieder. Der Zustand BT2 ist ein in den genannten Intel-Publikationen definierter Zustand.
  • BUFWREND stellt das Ende eines gepufferten Schreibzyklus dar. BUSCYC385 gibt ebenfalls den Zustand des Systembusses 250 wieder. Für die Bus-Zustände BTI, BT1, BT1P ist es high, für die Bus-Zustände BT2, BT2P und BT2I ist es low (auch hier handelt es sich um Bus-Zustände, die in den zitierten Intel- Publikationen genannt werden).
  • BUSCYC386 ist während der Zustände TI, T1, T1P, T2I des CPU- Localbus 230 high, und während T2 low. Auch bei T2P ist es low, es sei denn, T2I tritt zuerst auf.
  • CPUNA ist ein Signal an den 80386, das eine Pipeline-Operation zuläßt.
  • LEAB ist die Zwischenspeicherfreigabe (in den Puffer 240) für hinterlegte Schreiboperationen.
  • MISS1 ist aktiv und definiert den ersten Zyklus in einem Doppelzyklus, um 64-Bit-Leseoperationen an cachefähige Geräte abzuwickeln.
  • PIPECYC385 ist während BT1P aktiv (hierbei handelt es sich um einen Bus-Zustand, der in den zitierten Intel-Publikationen genannt wird).
  • PIPECYC386 ist während des Zustands T1P des CPU-Localbus 230 low.
  • CPUREADY ist der Bereit-Eingang an den 80386.
  • NCA ist ein Signal, das durch Decodieren der Adreßkomponente auf dem CPU-Localbus 230 erzeugt wird und, wenn es aktiv ist, einen nicht cachefähigen Zugriff wiedergibt. Die Cachefähigkeit wird durch eine Kennzeichen-Komponente (A31 bis A17) und eine programmierbare Information bestimmt, die definiert, welche Kennzeichen sich (gegebenenfalls) auf cachefähige im Gegensatz zu nicht cachefähigen Adressen beziehen.
  • NACACHE ist ein Signal ähnlich wie das BNA-Signal. BNA ist ein vom System erzeugtes Signal, das die nächste Adresse vom CPU-Localbus 230 anfordert, und wird in den zitierten Intel- Veröffentlichungen genannt. NACACHE unterscheidet sich von BNA nur hinsichtlich der Tatsache, daß BNA für einen 32K-Cache erzeugt wird, während NACACHE für einen 64K-Cache erzeugt wird. Solange der Cache-Speicher ein 32K-Cache ist, wie in den Intel-Veröffentlichungen zitiert, könnte das hier genannte NACACHE-Signal durch das BNA-Signal ersetzt werden.
  • READYO387 ist der Bereit-Ausgang eines mathematischen Coprozessors 80387, wenn ein solcher in das System eingebaut ist.
  • RDY387PAL ist ein Ausgang der externen Logik, der verwendet wird, wenn ein mathematischer Coprozessor 80387 nicht eingebaut ist, um zu verhindern, daß hierdurch die Systemoperationen gestört werden.
  • Es dürfte deutlich geworden sein, daß die vorliegende Erfindung eine mögliche Unverträglichkeit zwischen Dynamic Bus Sizing und hinterlegten Schreiboperationen beseitigt hat. Im einzelnen wird diese Unverträglichkeit dadurch überwunden, daß erkannt wird, ob die auf dem CPU-Localbus 230 angemeldete Adresse in einem Adressenbereich liegt, der als cachefähig identifiziert wurde, oder nicht. Hinterlegte Schreiboperationen werden nur für cachefähige Geräte zugelassen. CPUREADY wird erzeugt, damit die CPU die nächste Operation einleiten kann. Dieses Signal kann vor Abschluß einer anstehenden Operation erzeugt werden oder nicht. Bezugnehmend auf Gleichung 7; der in Zeile 1 definierte Term bezieht sich auf einen Lese-Treffer. Diese Operation arbeitet interaktiv mit dem Cache und ist eine Operation mit einem Null-Wartestatus, CPUREADY ist also aktiv. Zeile 2 bezieht sich auf Cache-Lese- Fehlversuche. CPUREADY wird nur aktiv, wenn BREADY aktiv ist, das heißt, der Zyklus wird nicht hinterlegt. Zeile 4 bezieht sich auf nicht hinterlegte Schreiboperationen, zum Beispiel ist CPUREADY nur mit BREADY385 aktiv (wie BREADY). Zeile 5 bezieht sich auf eine cachefähige Schreiboperation (NCA inaktiv), es handelt sich also um eine hinterlegte Operation, das heißt CPUREADY ist aktiv, ohne BREADY oder BREADY385.

Claims (6)

1. Ein Mikrorechnersystem mit einem Mikroprozessor (225), einem Cache-Speicher (255) mit fester Datenbreite und einem Cache-Controller (260), die mit einem Localbus (230) gekoppelt sind, der über Zwischenspeicher-Mittel (240) mit einem Systembus (250) gekoppelt ist, wobei an diesen Systemkomponenten (275-315) mit unterschiedlichen Datenbreiten angeschlossen sind, wobei der genannte Mikroprozessor (225) Schreiboperationen an den Systembus (250) hinterlegen kann, wodurch Daten und Adressen vom Mikroprozessor in dem Zwischenspeicher-Mittel (240) zwischengespeichert werden, und ein Bereit-Signal (READYO) vom Cache-Controller an den Mikroprozessor geschickt wird, um einen nachfolgenden Mikroprozessorzyklus einzuleiten, dadurch gekennzeichnet, daß ein Decodierer (CADR) an die Adreßausgänge (A17-A26, A31) des Mikroprozessors (225) angeschlossen ist, um einen Ausgang (NCA) bereitzustellen, der anzeigt, wenn Systemkomponenten adressiert werden, deren Datenbreite unter der Datenbreite des Cache-Speichers (255) liegt, und ein Logik- Mittel (C) angeschlossen ist, um den Ausgang des genannten Decodierers (CADR) und das genannte Bereit-Signal (READYO) zu empfangen, um das genannte Bereit-Signal an den Mikroprozessor in bezug auf die genannten adressierten Systemkomponenten zurückzuhalten.
2. Ein Mikrorechnersystem nach Anspruch 1, in dem das genannte Logik-Mittel (C) so gekoppelt ist, daß es ein Bus-Bereit-Signal (BREADY) von dem genannten Systembus (250) empfängt, wodurch das genannte Bereit-Signal (READYO) zum Mikroprozessor von dem Logik-Mittel zurückgehalten wird, bis das Bus-Bereit-Signal empfangen wird.
3. Ein Mikrorechnersystem nach Anspruch 1 oder Anspruch 2, in dem das genannte Zwischenspeicher-Mittel einen bidirektionalen Datenpuffer (AL, DL) enthält, der zwischen dem Localbus (230) und dem Systembus (250) angeschlossen ist und über einen Eingangs-Freigabe- Steuereingang (LEAB) und einen Ausgangs-Freigabe- Steuereingang (OEAB) verfügt, wobei das genannte Logik- Mittel (C) Steuermittel zur Erzeugung von Steuersignalen für die genannten Eingänge enthält.
4. Ein Mikrorechnersystem nach jedem der vorherigen Ansprüche, in dem das genannte Logik-Mittel (C) auf ein Signal (NCA) vom Decodierer (CADR) reagiert, das die Erzeugung einer Adresse von einer Systemkomponente anzeigt, deren Datenbreite der Datenbreite des Cache-Speichers (255) entspricht, um das genannte Bereit-Signal (READYO) vor Empfang eines Bus-Bereit-Signals (BREADY) vom Systembus (250) zu erzeugen.
5. Ein Mikrorechnersystem nach jedem der vorherigen Ansprüche, in dem der genannte Decodierer (CADR) so angeschlossen ist, daß er nur ausgewählte Ausgänge der Adreßausgänge des Mikroprozessors (225) empfängt.
6. Ein Mikrorechnersystem nach jedem der vorherigen Ansprüche, desweiteren einen Bus mit optionalen Funktionen (320) enthaltend, der an eine Vielzahl von Einbauplätzen mit optionalen Funktionen (330) gekoppelt ist, um Einheiten mit optionalen Funktionen an den Bus mit optionalen Funktionen anzuschließen, wobei die genannten Einheiten über unterschiedliche Datenbreiten verfügen, Kopplungsmittel (253), um den Bus mit den optionalen Funktionen bidirektional mit dem Systembus (250) zu koppeln, um ein Bus-Bereit-Signal von einer Einheit mit optionalen Funktionen, das bei Abschluß einer Schreiboperation zu dieser Einheit erzeugt wird, durch den Systembus (250) an den Localbus (230) zu leiten, um ein Bereit-Signal zum Mikroprozessor (225) zu senden, wenn das Bereit-Signal von dem Logik-Mittel zurückgehalten wird.
DE68923402T 1988-05-26 1989-03-03 Mikrorechnersystem, der ein Cache-Subsystem mit Nachschreibfähigkeit enthält. Expired - Fee Related DE68923402T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US19889388A 1988-05-26 1988-05-26

Publications (2)

Publication Number Publication Date
DE68923402D1 DE68923402D1 (de) 1995-08-17
DE68923402T2 true DE68923402T2 (de) 1996-03-07

Family

ID=22735311

Family Applications (2)

Application Number Title Priority Date Filing Date
DE68923402T Expired - Fee Related DE68923402T2 (de) 1988-05-26 1989-03-03 Mikrorechnersystem, der ein Cache-Subsystem mit Nachschreibfähigkeit enthält.
DE3909909A Granted DE3909909A1 (de) 1988-05-26 1989-03-25 Verfahren und anordnung fuer selektive abgekoppelte schreibzyklen

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE3909909A Granted DE3909909A1 (de) 1988-05-26 1989-03-25 Verfahren und anordnung fuer selektive abgekoppelte schreibzyklen

Country Status (24)

Country Link
EP (1) EP0343768B1 (de)
JP (1) JPH0218640A (de)
KR (1) KR930001585B1 (de)
CN (1) CN1019153B (de)
AT (1) ATE125051T1 (de)
AU (1) AU611288B2 (de)
BE (1) BE1002652A4 (de)
BR (1) BR8902381A (de)
CA (1) CA1314330C (de)
DE (2) DE68923402T2 (de)
DK (1) DK189789A (de)
ES (1) ES2075044T3 (de)
FI (1) FI891785A7 (de)
FR (1) FR2632095A1 (de)
GB (1) GB2219107A (de)
HK (1) HK23796A (de)
IT (1) IT1230190B (de)
MX (1) MX171667B (de)
MY (1) MY108557A (de)
NL (1) NL8901255A (de)
NO (1) NO174984C (de)
NZ (1) NZ228784A (de)
PT (1) PT90632B (de)
SE (1) SE8901305L (de)

Also Published As

Publication number Publication date
MY108557A (en) 1996-10-31
GB2219107A (en) 1989-11-29
EP0343768A2 (de) 1989-11-29
CN1040875A (zh) 1990-03-28
NO174984B (no) 1994-05-02
DK189789D0 (da) 1989-04-19
BR8902381A (pt) 1990-01-16
NO174984C (no) 1994-08-10
DE3909909A1 (de) 1989-11-30
CA1314330C (en) 1993-03-09
GB8904918D0 (en) 1989-04-12
FR2632095A1 (fr) 1989-12-01
AU3409889A (en) 1989-11-30
NL8901255A (nl) 1989-12-18
NO891582D0 (no) 1989-04-18
FI891785A0 (fi) 1989-04-14
FI891785A7 (fi) 1989-11-27
NO891582L (no) 1989-11-27
DE68923402D1 (de) 1995-08-17
JPH0218640A (ja) 1990-01-22
CN1019153B (zh) 1992-11-18
DE3909909C2 (de) 1990-05-31
PT90632B (pt) 1995-12-29
IT1230190B (it) 1991-10-18
HK23796A (en) 1996-02-16
PT90632A (pt) 1989-11-30
IT8920625A0 (it) 1989-05-24
MX171667B (es) 1993-11-10
ES2075044T3 (es) 1995-10-01
SE8901305L (sv) 1989-11-27
BE1002652A4 (fr) 1991-04-23
NZ228784A (en) 1991-04-26
AU611288B2 (en) 1991-06-06
SE8901305D0 (sv) 1989-04-11
KR890017614A (ko) 1989-12-16
KR930001585B1 (ko) 1993-03-05
DK189789A (da) 1989-11-27
EP0343768A3 (de) 1991-03-20
EP0343768B1 (de) 1995-07-12
ATE125051T1 (de) 1995-07-15

Similar Documents

Publication Publication Date Title
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE69028066T2 (de) Kombinierte synchrone und asynchrone Speichersteuerung
DE69127773T2 (de) Vorrichtung zur echten LRU-Ersetzung
DE3909896C2 (de)
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE69032655T2 (de) Seitenspeicher-Steuerschaltung
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69322310T2 (de) Busarchitektur für integrierten Daten/- und Videospeicher
DE69432314T2 (de) Cachespeicher mit aufgeteiltem pegel
DE69518286T2 (de) Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister
DE19882853B3 (de) Verfahren und Steuereinrichtung zum automatischen Korrigieren von in einem Speichersubsystem erfassten Fehlern und Computersystem, das eine solche Steuereinrichtung aufweist
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE4010384C2 (de) Verfahren zur Burst-Datenübertragung
DE69018100T2 (de) Datenübertragung über Busadressleitungen.
DE69812685T2 (de) System und verfahren zur spekulativen arbitrierung bei datenübertragung
DE68902193T2 (de) Datenspeicheranordnung.
DE69710515T2 (de) Verfahren und Vorrichtung zur Bestimmung von Wartezuständen auf einer Zyklusbasis in einem Datenverarbeitungssystem
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE69126756T2 (de) Prüfbare RAM-Architektur in einem Mikroprozessor mit eingebettetem Cache-Speicher
DE102018119881A1 (de) Verwaltung einer DRAM-Bankaktivierung
DE68924368T2 (de) Datenverarbeitungssystem mit verzögertem Cache-Schreibvorgang.
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee