DE68925807T2 - Cachespeicherkohärenzsteuerung bei programmierbarer Alternativenwahl und bei Speichererweiterung - Google Patents

Cachespeicherkohärenzsteuerung bei programmierbarer Alternativenwahl und bei Speichererweiterung

Info

Publication number
DE68925807T2
DE68925807T2 DE68925807T DE68925807T DE68925807T2 DE 68925807 T2 DE68925807 T2 DE 68925807T2 DE 68925807 T DE68925807 T DE 68925807T DE 68925807 T DE68925807 T DE 68925807T DE 68925807 T2 DE68925807 T2 DE 68925807T2
Authority
DE
Germany
Prior art keywords
input
flush request
cache
signal bus
system 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
DE68925807T
Other languages
English (en)
Other versions
DE68925807D1 (de
Inventor
Paul R Culley
Karl N Walker
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.)
Compaq Computer Corp
Original Assignee
Compaq Computer 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 Compaq Computer Corp filed Critical Compaq Computer Corp
Application granted granted Critical
Publication of DE68925807D1 publication Critical patent/DE68925807D1/de
Publication of DE68925807T2 publication Critical patent/DE68925807T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)

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)
  • Multi Processors (AREA)

Description

  • Die Erfindung bezieht sich auf Speichersteuersysteme, die in Computersystemen verwendet werden, und insbesondere auf Systeme, die einen Cache-Speicher und einen Blockhauptspeicher verwenden.
  • Personalcomputersysteme halten zunehmend Einzug und werden zunehmend leistungsfähiger. Fruhe Personalcomputersysteme waren, während sie einen großen Fortschritt gegenüber manuellen Systemen darstellten, relativ einfach und besaßen begrenzte Fähigkeiten. Personalcomputer nahmen einen Schritt nach vorne in ihren Fähigkeiten vor, als die International Business Machines Corporation (IBM) den Original-IBM-PC einfuhrte. Dieses Computersystem basierte auf einem 8088 Mikroprozessor, der durch die Intel Corporation entwickelt wurde. Der IBM-PC war leistungsfähiger als frühere Personalcomputer und neue Funktionen und Fähigkeiten für den IBM-PC wurden schnell entwickelt. Die Komponenten, die für eine Verwendung in Personalcomputern zur Verfügung standen, entwickelten sich stark über diese Periode und bald war das Design des IBM-PC's zu eingeschränkt, insbesondere nach der Einführung des 80286 Mikroprozessors der Intel Corporation.
  • Benutzer von Personalcomputern verlangten die verfügbaren Verbesserungen und IBM führte den IBM-PC/AT ein, der den 80286 Mikroprozessor und viele weiterentwickelte Einrichtungen einsetzte, die entwickelt worden sind, seitdem der IBM-PC eingeführt wurde. Diese Maschine stellte die Benutzer für eine gewisse Zeitdauer zufrieden, allerdings erhöhten sich wiederum die Fähigkeiten der verfügbaren Komponenten zur Verwendung in Personalcomputern und das Erfordernis für eine erhöhte Leistung hielt an.
  • Das Betriebssystem, das in IBM kompatiblen Computern verwendet wurde, wurde zur Verwendung mit dem IBM-PC und seinem eingesetzten 8088 Mikroprozessor entwickelt. Der 8088 besitzt 20 Adressierstifte und daher ist nur ein Megabyte des Speichers direkt adressierbar. Dies war in den frühen Anfängen ausreichend, allerdings stellte die Verfügbarkeit des 80286 und seiner 24 Adressierleitungen und das Erfordernis für Programme, die auf mehr als die verfügbaren 640 kBytes eines Arbeitsspeichers (Random Access Memory) unter dem Betriebssystem zugreifen, das Betriebssystem als eine Einschränkung der Personalcomputerleistung dar. Verschiedene Formate wurden entwickelt, um diese Betriebssystemeinschränkung aufzulösen. Ein solches Format war die LIM-erweiterte Speicherspezifikation (LIM EMS), die als ein Fenster verwendet wurde, das in dem Speicherraum verfügbar war, das unter dem Betriebssystem verfügbar war, um auf mehr Speicher zurückzugreifen. Die Stelle des Fensters über dem physikalisch verfügbaren Speicher wurde durch Informationen gesteuert, die durch den Eingangs/Ausgangsraum hindurchführen Demzufolge konnte auch auf wesentlich größere Speichermengen ohne eine überarbeitung des Betriebssystems und mit nur der Einfügung einer Fenstersteuerprogrammierung in dem Anwendungsprogramm, das den zusätzlichen Speicher verwendet, zugegriffen werden.
  • Um der Benutzeranforderung nachzukommen, führte die Intel Corp. den 80386 Mikroprozessor ein. Die erhöhte Geschwindigkeit dieser Einheit half temporär, das Leistungsanforderungsproblem zu lösen, allerdings forderten bald Anwender noch mehr Leistung. Eine Technik, die in weiterentwickelten oder großen Computerarchitekturen verwendet wurden, um die Leistung zu erhöhen, war die Verwendung eines Cache-Speichers. Ein Cache-Speicher ist ein sehr schneller Speicher, der dem Mikroprozessor ermöglicht, unter seinem vollen Potential zu arbeiten, wenn er aus diesem schnellen Speicher heraus arbeitet, im Gegensaz dazu, wenn er aus dem Hauptspeicher heraus arbeitet, wo Kostenbetrachtungen die Geschwindigkeit des Speichers, der verwendet wird, begrenzen. Allerdings werden aufgrund der relativ hohen Kosten dieses Cache-Speichers nurteile der Informationen des Hauptspeichers in dem Cache-Speicher gehalten. Diese Verwendung von nur Bereichen erfordert, daß das Cache-Speichersystem eine Protokollierung führt, welche Bereiche des Hauptspeichers in dem Cache-Speicher dupliziert sind.
  • Dieses Erfordernis, um eine Protokollierung beizubehalten, welche Bereiche des Hauptspeichers in dem Cache-Speicher eingelagert sind, das als Kohärenz bezeichnet wird, ist schwierig, wenn Speicher verwendet werden, die das LIM EMS oder andere Blockspeichertechniken umsetzen, wo unterschiedliche, physikalische Speicherstellen unter derselben logischen Adresse adressiert werden können. Zum Beispiel denkt, falls das LIM EMS-Fenster zu einer ersten physikalischen Speicherstelle hin gerichtet ist und der Cache-Speicher die Daten an dieser Stelle sichert, das Cache-Speichersystem, daß es die Daten unter einer vorgegebenen Stelle in den logischen Adressenraum des Fensters gespeichert hat. Das Fenster wird dann zu einem unterschiedlichen physikalischen Bereich des Speichers bewegt, allerdings ändert sich die logische Fensteradresse nicht. Demzufolge ist die Information, die an der Stelle vorhanden ist, die durch das Cache-Speichersystem aufbewahrt wird, nicht diejenige, die momentan an dieser Stelle vorhanden ist. Dies erzeugt ein Cache-Kohärenzproblem und die spezifische Stelle in dem Cache-Speicher muß gelöscht oder auf Null gesetzt werden.
  • Eine Vorrichtung, die herkömmlich in derzeitigen Personalcomputersystemen verwendet wird, um den Cache-Speicher zu steuern, ist die 82385 Cache-Steuereinheit der Intel Corporation. Die 82385 ermöglicht nicht, daß einzelne Cache-Speicherstellen unter bestimmten Bedingungen gelöscht werden, wie beispielsweise diejenigen, die vorstehend beschrieben sind. Hierbei muß, wie in der INTEL Advance Information, Order Number 290 143 - 002, Oktober 1987, Seiten 4-287 bis 4-348 beschrieben ist, eine Cache-Flush- Operation durchgeführt werden, die alle Eingaben in dem Cache-Speichersystem löscht. In der Vergangenheit haben, um die Schwierigkeiten der Bestimmung, wann ein Cache-Flush notwendig war, zu vermeiden, die Anordnungen erfordert, daß die Anwendungsprogramme oder Treiber, die mit einem LIM oder Blockspeichersystemen verwendet werden, sicherstellen, daß Kohärenzprobleme nicht hervorgerufen werden. Dies stellte eine Belastung in Bezug auf die Programme dar und reduzierte deren Leistung.
  • Mit der Benutzerforderung nach höherer Leistung, wie dies vorstehend angeführt ist, wurde eine Anzahl von Quellen bzw. Stellen der Architektur des AT-Rechners als unzureichend betrachtet, um geeignet die vollen Leistungen der dann verfügbaren Komponenten und der Komponenten, die deutlich in der relativ nahen Zukunft verfügbar sein würden, zu nutzen. Bestimmte Operationen, die beispielsweise Vielfach-Bus-Master-Operationen, waren übermäßig schwierig durchzuführen, und nur marginale Leistungsverbesserungen konnten erhalten werden. Hierdurch wurde eine neue Architektur oder ein Interface-Standard entwickelt.
  • IBM führte eine neue Linie von Personalcomputern ein, die als Personalsystem/2 oder PS/2 bezeichnet werden. Eine Anzahl Maschinen, die in der PS/2-Familie verfügbar sind, verwendeten den neuen Interface-Standard, der als Mlkro-Channel-Architektur oder MCA bezeichnet wurde, um die weiterentwickelten, erwünschten Fähigkeiten zu erhalten, die unter einem hohen Leistungspegel vorgesehen sein sollen. Zusätzlich zu herkömmlichen Adress-Daten- und Steuersignalen, die für die Operation notwendig sind, liefert die MCA ein in Bezug auf die Karte ausgewähltes Rückführsignal oder CD_SFDBK*(n), wobei (n) anzeigt, daß ein separates Signal für jede Schaltkreisleiterplattenstelle existiert. Dieses Signal liefert eine Rückführung zu dem Computersystem, um anzuzeigen, welche Schaltkreisleiterplatte auf die Operation, die auf dem Systemsignalbus geliefert wird, angesprochen hat. Für detaillierte Informationen der MCA wird Bezug auf das IBM Personal System 2 Model 80 Technical Reference Manual, das ein Copyright-Datum von 1987 und eine Produktnummer 84X1508 besitzt, genommen.
  • Eines der Merkmale, das durch die MCA geschaffen wird, war die Fähigkeit, Schaltkreisleiterplattenparameter insgesamt durch eine Programmsteuerung zu initialisieren, und zwar ohne das Erfordernis, irgendwelche Verbindungsleitungen oder Schalter einzustellen. Dieses Merkmal wurde als programmierare Optionsauswahl (Programmable Option Select - POS) bezeichnet und verwendete definierte Eingangslausgangs-(I/0)-Raumstel len oder Anschlüsse, um zu steuern, welche Schaltkreisleiterplatten oder Adaptoren konfiguriert werden sollen und wo Konfigurationsinformationen abgelegt werden sollen. Eine Schaltkreisleiterplatte wurde durch zuerst Auswählen, welche Schaltkreisleiterplattenstelle adressiert werden soll bzw. muß, und Plazieren der Schaltkreisleiterplatte in einen Einstell- oder Konfigurationsmodus konfiguriert. Die Konfigurationsinformation wurde dann eingeladen und ein Einstellmodus abgegeben.
  • Konfigurationsinformationen, die übertragen werden konnten, hingen von der Funktion der bestimmten Schaltkreisleiterplatte, die konfigurlert wird, ab. Zum Beispiel würden, falls eine Speicherleiterplatte konfiguriert wird, die Informationen die Speicherraum-Adressenstellen umfassen, zu der hin die Speicherleiterplatte antworten würde.
  • Diese programmierbare Konfigurationsfähigkeit ist erwünscht, allerdings erzeugt sie auch ein potentielles Cache-Kohärenzproblem, ähnlich zu denjenigen, die vorstehend besprochen sind. Das Cache-Speichersystem könnte sich an eine vorgegebene, logische Adresse erinnern und das Computersystem könnte seine Resourcen rekonfigurieren, wobei ein anderes Element an der vorgegebenen, logischen Adresse endet. Zusätzlich ist eine Rekonfiguration eine Funktion mit einem hohen Pegel, die anzeigt, daß Hauptänderungen in dem Computersystem auftreten könnten, und zwar mit vielen möglichen Cache-Kohärenzverzweigungen.
  • Ein Computersystem, das den MCA-Standard und eine 82385 Cache-Steuereinheit verwendet und die vorliegende Erfindung einsetzt, bestimmt, wann Schaltkreisleiterplatten konfiguriert werden sollen oder wann eine installierte Schaltkreisleiterplatte auf eine Eingabe/Ausgabe-Raumschreiboperation anspricht, und gibt dann eine Cache-Flush-Anforderung aus. Die Anforderung kann auf einer Schaltkreisleiterplattenstelle durch eine Schaltkreisleiterplattenstellenbasis gesperrt werden.
  • Das System überwacht Schreiboperationen zu dem Adapter-Freigabe/Einstell-Register (Adpater Enable/Setup Register) Setup-Register, das in der MCA definiert ist, und decodiert, welche Schaltkreisleiterplatte konfiguriert worden ist. Das decodierte Signal wird mit einem Signal von einem Register kombiniert, das Informationen enthält, auf welchen Schaltkreisleiterplattenstellen die Cache-Flush-Option freigegeben wurde. Diese Signale werden auch mit Systemsignalen kombiniert, die anzeigen, daß eine Eingabe/Ausgabe-Raumschreiboperation auftritt.
  • Ein zweiter Bereich des Systems überwacht die in Bezug auf Karten ausgewählten Rückführsignale und kombiniert diese Signale mit den in Bezug auf Stellen freigegebenen Signalen und den Eingabelausgabe-Raumschreibsignalen.
  • Falls irgendeine Operation auftritt und diese Stelle freigegeben ist, wird ein Cache-Flush-Signal zu dem Cache-Flush-Eingang an die 82385 Cache-Steuereinheit übertragen.
  • Das System liefert auch einen Schaltkreis zum direkten Anfordern eines Cache-Flush's, was durch ein Fühlen auftritt, wenn ein bestimmtes Bit In einem bestimmten Eingabe/Ausgaberaum oder -anschluß geschrieben wird, um eine zusätzliche Flexibilität in dem Design oder in der Umsetzung der verschiedenen Programme zu ermöglichen, die auf dem Computersystem betrieben werden können.
  • Ein besseres Verständnis der Erfindung kann dann erhalten werden, wenn die nachfolgende, detallierte Beschreibung der bevorzugten Ausführungsform in Verbindung mit den beigefügten Zeichnungen berücksichtigt wird, in denen:
  • Fig. 1 zeigt ein Blockdiagramm eines Computersystems, das die vorliegende Erfindung einsetzt;
  • Fig. 2 zeigt ein Diagramm, das die relativen Beziehungen zwischen den Figuren 2A, 2B und 2C darstellt; und
  • Figuren 2A, 2B und 2C zeigen schematische Diagramme eines elektrischen Schaltkreises zum Anfordern eines Cache-Flush-Vorgangs gemäß der vorliegenden Erfindung.
  • Wie nun die Figur 1 zeigt, bezieht sich der Buchstabe C allgemein auf ein Computersystem, das die vorliegende Erfindung einsetzt. Der Computer umfaßt einen Intel Corporation 80386 Mikroprozessor 10, eine Intel Corporation 82385 Cache-Steuereinheit 12 und eine Reihe statischer Arbeitsspeicher (SRAM's), die eine Cache-Speichereinheit 14 bilden. Ein lokaler Adressbus 16 ist zwischen dem 80383 10, der 82385 12, dem Cache-RAM 14 und einem Puffer 18 verbunden. Ein lokaler Datenbus 20 ist mit dem 80386 10, der 82385 12 und dem Cache-RAM 14 ebenso wie mit einem Sendeempfänger 22 verbunden. Ein lokaler Steuerbus 24 Ist zwischen dem 80386 10 und der 82385 12 verbunden. Ein Cache-Steuerbus 26 verbindet die 82385 12 und den Cache-SRAM 14, um eine geeignete Steuerung des Cache-SRAM 14, wie dies geeignet ist, zu liefern.
  • Der Puffer 18 und der Sendeempfänger 22 werden dazu verwendet, um die lokalen Busse mit den Systembussen schnittstellenmäßig zu verbinden, die Bereiche der Mikro-Channel-Architektur bilden. Diese lokale Busanordnung ermöglicht dem Mikroprozessor, unter einer schnelleren Geschwindigkeit zu arbeiten, und ermöglicht konkurrierende Betriebsweisen während bestimmter Intervalle und Vorgänge. Der Puffer 18 ist zwischen dem lokalen Adressbus 16 und dem Systemadressbus 28 verbunden. Der Sendeempfänger 22 ist zwischen dem lokalen Datenbus 20 und dem Systemdatenbus 30 verbunden. Der Systemsteuerbus ist mit der 82385 12 verbunden und wird durch die 82385 12 angesteuert, wie dies im weiteren Detail in Veröffentlichungen erläutert ist, die sich auf die Betriebsweise und die Beschreibung der 82385 beziehen, wie beispielsweise auf den Seiten 4-287 bis 4-348 des "Mikroprozessor und Peripheral Handbook", Volume 1, Oktober 1987, veröffentlicht durch die Intel Corporation.
  • Die verschiedenen MCA-Schlitze oder -Stellen sind als MCA-Schlitze 34 dargestellt und sind mit dem Systemadressbus 28, dem Systemdatenbus 30 und dem Systemsteuerbus 32 verbunden. Dies ermöglicht den verschiedenen Schlitzen 34, notwendige Informationen zu empfangen und zu senden, um eine geeignete Betriebsweise irgendwelcher Schaltkreisleiterplatten, die in den Schlitzen umfaßt sind, zu ermöglichen. Zusätzlich ist mit dem Systemadressbus 28 und dem Systemsteuerbus 32 die Cache-Kohärenz-Logik 36 verbunden, die den Sachaltkreis der vorliegenden Erfindung enthält, der zur Bestimmung des Zustands des FLUSH*-Signals dient, das zu dem Flush-Eingang der 82385 12 geliefert wird. Die Cache-Kohärenz-Logik 36 ist vollständiger in den Figuren 2, 2A, 2B und 2C offenbart.
  • Wie zuvor erwähnt ist, können Cache-Kohärenz-Probleme dann entstehen, wenn eine Schaltkreisleiterplatte rekonfiguriert werden soll oder wenn die Aufruf- oder Speicherstelle des LIM EMS-Fensters zum Beispiel geändert wird. In einem Computer gemäß der vorliegenden Erfindung tritt dies nur während der Eingabe/Ausgabe-(I/O)-Schreibvorgänge auf. Deshalb ist es notwendig zu bestimmen, wann gültige I/O-Vorgänge auftreten. In der MCA wird dieser Zustand durch das S1*-Signal, das hoch wird, das S0*-Signal, das niedrig wird, und das M-IO*-Signal, das niedrig wird, vorgenommen und angezeigt. Hierbei werden das SO*-Signal, das M-IO*-Signal und das invertierte Sl*-Signal zu den Eingängen einer Status-Verriegelung 50 zugeführt. Das tormäßlg steuerende Signal für diese Status-Verriegelung 50 ist das ADL*-Signal, das für die Adressen- und Statuswert-Verriegelung verwendet wird. Die Verwendung der Status-Verriegelung 50 ermöglicht, daß die I/O-Schreibinformationen für die geeigneten Intervalle zurückgehalten werden. Die Ausgänge von der Status-Verriegelung 50 werden zu drei der sechs Eingange eines ODER-Gatters 52 In einem Kanalaktivitätsmodul 54 verbunden. Acht identische Module 54 werden in der bevorzugten Ausführungsform verwendet, wobei nur ein Modul 54 in Fig. 2A im Detail aus Gründen der besseren Deutlichkeit dargestellt ist. Zusätzlich ist mit einem Eingang des ODER-Gatters 52 das CMD*-Signal verbunden, das durch die MCA verwendet wird, um diesen Zustand der Daten, die auf dem Systemdatenbus 30 vorhanden sind, anzuzeigen. Deshalb liefert die Kombination des verriegelten, invertierten Sl-Signala, des verriegelten S-O*-Signals und des verriegelten M-IO*-Signals, zusätzlich zu dem CMD*-Signal, eine Anzeige, wenn alle Signale niedrig sind, daß ein I/O-Schreibvorgang auftritt und die Daten gültig sind.
  • Es ist auch notwendig zu bestimmen, welcher Schlitz oder welche Kartenstellen aktiviert worden sind, um ein Cache-Flush basierend auf diesen I/O-Schreibvorgängen zu ermöglichen. Diese Information wird in einer schlitzfreigegebenen Verriegelung 56 gespeichert. Die Eingänge zu der schlitzfreigegebenen Verriegelung 56 werden mit den D< 7:0> -Signalen der Datenleitungen verbunden, die in dem Systemdatenbus 30 enthalten sind. Die schlitzfreigegebene Verriegelung 56 wird durch ein Signal, das als CWRT104* bezeichnet wird, tormäßig gesteuert. Dies ist ein Signal, das anzeigt, daß der I/O-Vorgang ein Schreibvorgang ist, der zu der Adresse 104 hin auftritt, und daß sich das System der bevorzugten Ausführungsform in einem speziellen Modus befindet, der einen Zugriff zu dieser Verriegelung 56 ermöglicht. In der MCA besitzen die I/O-Anschlußstellen 100-107 vorgegebene und definierte Funktionen. In einigen Fällen kann die Größe des Speicherraums, der an diesen Stellen zur Verfügung steht, dahingehend bestimmt werden, daß er unzureichend ist, und deshalb ist ein alternatives Verfahren festgelegt worden, um auf zusätzliche Informationen und eine Registerspeicherfähigkeit und dennoch innerhalb dieser zugelassenen Anschlußstellen verbleibend, zuzugreifen. Jede Ausgangsleltung der schlltzfreigegebenen Verriegelung 56 ist mit einem Kanalaktivitätsmodul 54 verbunden. Die spezifische Signal- oder Ausgangsleltung ist mit einem Inverter 58 verbunden, dessen Ausgang dann mit einem Eingang des ODER-Gatters 52 verbunden ist. Deshalb wird, falls ein vorgegebenes Bit oder eine Stelle in der schlitzfreigegebenen Verriegelung 56 so eingestellt wird, daß sie einen hohen Zustand hat, der bestimmte Schlitz oder die Stelle für eine Flush-Operationsanforderung freigegeben, während dann, falls sie auf einen niedrigen Zustand gesetzt wird, der invertierte Wert eines oder hohen Pegels, der an dem ODER-Gatter 52 auftritt, derart ist, daß ein hohes Signal immer an dem Ausgang des ODER-Gatters 52 auftritt, wodurch die Operation der Cache-Flush-Anforderungsfähigkeit der bestimmten Stelle gesperrt verbleibt.
  • Ein schlitzfreigegebener Puffer 60 (Fig. 2B) besitzt seinen Eingang mit den Ausgängen der Verriegelung 56 verbunden und seinen Ausgang mit den D< 7:0> -Leitungen verbunden, um die Rückkopplung zu dem Computersystem zu schaffen, so daß der Wert, der in der schlitzfreigegebenen Verriegelung 56 enthalten ist, gelesen werden kann. Das torsteuernde Signal, das den Ausgang des schlitzfreigegebenen Puffers 60 freigibt, ist ein Signal, das als CRD104* bezeichnet wird, das das Koplementär zu dem CWRT104*-Signal ist, so daß dann, wenn eine Leseanforderung zu dem I/O-Anschluß 104 abgegeben wird und die Maschine in dem speziellen Modus arbeitet, die Werte der schlitzfreigegebenen Verriegelung 56 gelesen werden.
  • Es ist nun notwendig zu bestimmen, ob sich ein vorgegebener Schlitz oder eine Stelle in einem Konfigurationsmodus befindet oder ob eine Karte in diesem Schlitz auf die momentane Operation geantwortet hat. Aufgrund der spezifizierten Charakteristika der MCA wird, gerade obwohl die Leiterplattenkonfiguratlon durch Schreiben in den I/O-Raum vogenommen wird, das SFDBK*-Signal, das normalerweise dazu verwendet wird, anzuzeigen, daß eine Leiterplatte auf eine momentane Operation anspricht, nicht während des Konfigurationsmodus verwendet, und deshalb muß ein separater Schaltkreis verwendet werden, um diesen Fall zu bestimmen. Der I/O-Anschluß 96 ist als der Anschluß zum Zugriff auf das Kanal- oder Leiterplattenpositions-Auswahlregister (nicht dargestellt) definiert. Die drei letzten signifikanten Bits des Positionsauswahlregisters werden dazu verwendet, anzuzeigen, welche der verschiedenen Schaltkreisleiterplatten konfiguriert werden soll, und zwar mit dem nächsten, signifikanteren Bit, das anzeigt, daß die Leiterplattenkonfiguratlon in Operation ist. Diese vier Bits werden zu einer Konfigurationsverriegelung 62 geliefert, wobei das torgesteuerte Signal zu der Konfigurationsverriegelung 62 ein Signal ist, das als WRT96* bezeichnet ist, das anzeigt, daß ein Schreibvorgang zu der I/O-Anschlußadresse 96 hin auftritt.
  • Die drei letzten signifikanten Bits, Bits 0, 1 und 2, der D< 7-O> -Signale werden verriegelt und zu den drei Auswahleingängen eines 3-8-Decoders 64 zugeführt. Das vierte Bit, das als Bit 3 bezeichnet wird, wird zu einem positiven Freigabe-Bit des Decoders 64 zugeführt. Der Decoder 64 besitzt auch zwei Freigabeeingänge mit einem niedrigen Wahrheitswert. Diese Eingänge sind mit dem Ausgang eines UND-Gatters 66 verbunden, dessen zwei Eingänge die SPOSIO*- und CPOSIO*-Signal sind. Diese Signale zeigen jeweils an, daß ein standardmäßiger, IBM kompatibler POS-I/O-Operationsmodus auftritt oder daß ein spezieller POS-I/O-Operationsmodus auftritt, wenn das Signal niedrig ist. Die Ausgänge des 3-8-Decoders 64 sind Ausgänge mit einem niedrigen Wahrheitswert einer Leitung, die sich auf den binären Wert bezieht, der an den drei Auswahleingängen ausgewählt ist. Die 8 Ausgangsleitungen des Decoders 64 sind mit den Kanalaktivitätsmodulen 54, eine Leitung zu jedem Modul 54, verbunden. Die Ausgangsleitung des Decoders 64 ist mit einem Eingang eines UND-Gatters 68 verbunden. Der Ausgang des UND-Gatters 68 ist der letzte Eingang zu einem ODER-Gatter 52. Demzufolge ist, falls eine vorgegebene Leiterplattenstelle für eine Konfiguration freigegeben wird, der entsprechende Ausgang des Decoders 64 niedrig, so daß ein niedriger Wert zu dem Eingang des ODER-Gatters 52 geliefert wird. Falls diese bestimmte Leiterplattenstelle nicht konfiguriert werden soll, wird ein hoher Wert zu dem Eingang des UND-Gatters 68 geliefert, und falls der andere Ausgang zu dem UND-Gatter 68 hoch ist, wird ein hoher Wert zu dem ODER-Gatter 52 geliefert, und die spezifische Leiterplattenstelle wird nicht eine Cache-Flush-Operation triggern.
  • Der zweite Eingang zu dem UND-Gatter 68, der in jedem der Kanalaktlvltätsmodule 54 enthalten ist, wird durch den Ausgang einer Rückführ-Verriegelung 70 geliefert, deren Eingänge mit den 8 CD_SFDBK*-Signalen verbunden sind. Diese Signale, wie sie in der MCA spezifiziert sind, werden dazu verwendet, anzuzeigen, daß eine gegebene Schaltkreisleiterplatte in dem gegebenen Schlitz oder der Stelle auf die momentane Operation angesprochen hat, in diesem Fall eine I/O-Schreiboperation. Demzufolge ist es nicht notwendig, Adressendecodierfähigkeiten zu schaffen, die erkennen, welche I/O-Stellen durch Schaltkreisleiterplatten verwendet werden sollen. Es ist lediglich notwendig, die CD_SFDBK*-Leitungen zu überwachen und zu bestimmen, ob Leiterplatten konfiguriert werden sollen, um zu bestimmen, ob eine Cache-Flush-Operation notwendig ist. Das torsteuernde Signal zu der Ruckführ-Verriegelung 70 wird durch das ADL*-Signal geliefert und entspricht der Zeitabstimmung, die in den MCA-Spezifikationen angegeben sind. Deshalb befinden sich die Eingänge zu dem UND-Gatter 68 allgemein in einem hohen Zustand, ohne daß die bestimmte Leiterplatte auf eine Operation anspricht oder konfigurlert werden soll, und deshalb produziert das ODER-Gatter 52 allgemein einen hohen Ausgang. Der Ausgang des ODER-Gatters 52 ist nur während des CMD*-Teils einer I/O-Schreiboperation niedrig, wenn der bestimmte Kanal freigegeben ist und der Konfigurationsmodus eingegeben wird oder ein Operationsansprechen auftritt.
  • Die Ausgänge der 8 Kanalaktivitätsmodule 54 sind 8 Eingänge zu einem Flush-UND-Gatter 72 mit 9 Eingängen (Fig. 2C). Der Ausgang dieses Flush-UND-Gatters 72 ist das FLUSH*-Signal. Der neunte Eingang zu dem Flush-UND-Gatter 72 ist mit einem Schaltkreis verbunden, der ermöglicht, daß eine Cache-Flush-Operation direkt durch den Mikroprozessor angefordert werden kann. Ein ausgewähltes Bit, in diesem Fall Bit 2 der Datenleitung, wird als ein Eingang zu einem NAND-Gatter 74 mit drei Eingängen geliefert. Der zweite Eingang zu diesem NAND-Gatter 74 mit drei Eingängen ist ein Signal, das als CPOS105 bezeichnet ist, das anzeigt, daß eine I/O-Operation zu dem Anschluß 105 hin während der Systemleiterplattenkonfiguration in dem speziellen Modus auftritt. Diese Kombination wird dazu verwendet, die Betätigung des Cache-Flush zutriggern. Der dritte Eingang zu dem NAND-Gatter 74 Ist der Ausgang eines UND-Gatters 76, wobei der UND-Gatterausgang auch der Eingang zu dem Flush-UND-Gatter 72 ist. Der Ausgang des NAND-Gatters 74 wird als ein Eingang eines ODER-Gatters 78 geliefert, wobei der zweite Eingang des ODER-Gattes 78 das CMD*-Signal ist. Auf diese Art und Weise wird der Zustand des NAND-Gatters 74 nur durch das ODER-Gatter 78 während des aktiven Teils des CMD*-Signals hindurchgeführt. Der Ausgang des ODER-Gatters 78 ist mit einem Eingang des UND-Gatters 76 verbunden. Das CMD*-Signal ist auch mit einem Eingang eines zweiten ODER-Gatters 80 verbunden, dessen zweiter Eingang mit dem Ausgang des UND-Gatters 76 verbunden ist. Der Ausgang des ODER-Gatters 80 ist mit dem zweiten Eingang des UND-Gatters 76 verbunden. Dieser Rückführpfad von dem UND-Gatter 76 zu dem ODER-Gatter 80 und dem NAND-Gatter 74 wird so verwendet, daß der Ausgangsimpuls von dem UND-Gatter 76 nur die Länge des CMD*-Signals ist und nicht größer ist. Wenn das Signal von dem UND-Gatter 76 niedrig wird, bestimmt dies den aktiven Zustand des Ausgangssignals von dem NAND-Gatter 74, was bewirkt, daß es zu hoch übergeht. Allerdings ist dieses Signal von dem NAND-Gatter 74 auch durch das ODER-Gatter 80 als ein niedriges Signal propagiert worden, so daß der Eingang zu dem UND-Gatter 76 von dem ODER-Gatter 80 noch niedrig ist, und demzufolge fährt die Rückführsituation fort, bis das CMD*-Signal hoch wird, wobei zu diesem Zeitpunkt, und zwar nach den Ausbreitungsverzögerungen der verschiedenen Gatter, das Ausgangssignal des UND-Gatters 76 hoch wird, was mit einer Cache-Flush-Anforderung endet.
  • Das FLUSH*-Signal wird für eine Zeit niedrig gehalten, die ausreichend ist, um der 82385 12 zu ermöglichen, daß sie völlig die Tag- bzw. Markierungs-Tag-Gültigkeitsbits egalisiert oder löscht. Das FLUSH*-Signal ist für eine ausreichende Zeit niedrig, wenn es entwickelt wird, wie dies angezeigt ist, da die Länge des CMD*-Signals während einer I/O-Schreiboperation ausreichend ist, um sicherzustellen, daß die 82385 12 mindestens acht CLK2-Zyklen empfangen hat. Demzufolge ist kein gesonderter Schaltkreis notwendig. Allerdings könnte ein solcher Schaltkreis zwischen dem Flush-UND-Gatter 72 und der 82385 12 hinzugefügt werden, falls dies notwendig ist, um die minimale Zeit sicherzustellen.
  • Deshalb bewirken die Schaltkreise, die vorstehend beschrieben sind, daß eine Cache-Flush-Operation auftritt, Immer wenn ein Schlitz oder eine Stelle in dem Konfigurationsmodus oder einer Schaltkreislelterplatte auf die momentane Busoperation anspricht, diese bestimmte Stelle freigegeben wird und eine I/O-Schreiboperation auftritt. Dies stellt eine Cache-Kohärenz sicher, sollte die Schaltkreisleiterplatte eine Speicherleiterplatte oder eine andere Leiterplatte sein und die Speicherraumstelle geändert werden.

Claims (5)

1. Cache-Flush-Anforderungsschaltkreis (36) zur Verwendung in einem Computersystem, das eine Cache-Speichersteuereinheit (12), die einen Cache-Flush-Anforderungseingang besitzt, einen Systemsignalbus (28,30,32), der Adressen-, Daten- und Steuersignale besitzt, eine Vielzahl Schaltkreisleiterplattenstellen (34), die mit dem Systemsignalbus zum Einsetzen einer Schaltkreisleiterplatte verbunden sind, wobei die Schaltkreisleiterplatten über den Systembus adressiert werden und die ein Register besitzen, in das Daten durch Signale zugeführt werden, die auf dem Systemsignalbus übermittelt werden, der eine Operation in dem Eingangs/Ausgangsraum vornimmt, oder wobei das Register durch Signale initialisiert wird, die auf dem Systemsignalbus geliefert werden, umfaßt, wobei der Cache-Flush-Anforderungsschaltkreis (36) aufweist:
eine Einrichtung (50), die mit dem Systemsignalbus zum Bestimmen, wann eine Eingabe/Ausgabe-Raumschreiboperation auftritt, verbunden ist;
eine Einrichtung (68,70), die mit dem Systemsignalbus zum Bestimmen, ob eine installierte Schaltkreisleiterplatte auf eine Operation anspricht, verbunden ist; und
eine Einrichtung (52), die auf die Eingabe/Ausgabe-Raumschreibbestimmungseinrichtung und auf die installierte Schaltkreisansprecheinrichtung zum Bestirnmen, ob die Operationen konkurrierend auftreten, und zum Erzeugen eines Cache-Flush-Anforderungssignals zu dem Flush-Anforderungseingang, anspricht.
2. Schaltkreis gemäß Anspruch 1, der weiterhin aufweist:
eine Einrichtung (62,64.66), die mit dem Systemsignalbus zum Bestimmen, ob eine Schaltkreisleiterplatten-Initialisierungsoperation auftritt, verbunden ist;
und wobei die konkurrierende Operationsbestimmungseinrichtung weiterhin auf die Initialisierungseinrichtung zum Bestimmen, ob die Eingangs/Ausgangs-Raumschreiboperationen und die Initialisierungsoperationen konkurrierend auftreten, und zum Erzeugen des Cache-Flush-Anforderungssignals anspricht.
3. Cache-Flush-Anforderungsschaltkreis (36) zur Verwendung in einem Computersystem, der eine Cache-Speichersteuereinheit (12), die einen Cache-Flush-Anforderungseingang besitzt, einen Systemsignalbus (28,30,32), der Adressen-, Daten- und Steuersignale besitzt, eine Vielzahl Schaltkreisleiterplattenstellen (34), die mit dem Systemsignalbus zum Einsetzen einer Schaltkreisleiterplatte verbunden sind, wobei die Schaltkreisleiterplatten über den Systembus adressiert werden, und die ein Register besitzen, zu dem Daten durch Signale geliefert werden, die auf dem Systemsignalbus zugeführt werden, die eine Operation in dem Eingangs/Ausgangsraurn darstellen, oder wobei das Register durch Signale initialisiert wird, die auf dem Systemsignalbus geliefert werden, umfaßt, wobei der Cache-Flush-Anforderungsschaltkreis (36) aufweist:
eine Einrichtung (50), die mit dem Systemsignalbus zum Bestimmen, wann eine Eingabe/Ausgabe-Raumschreiboperation auftritt, verbunden ist;
eine Einrichtung (62,64,66), die mit dem Systemsignalbus zum Bestimmen, ob eine Schaltkreisleiterplatten-Initialisierungsoperation auftritt, verbunden ist; und
eine Einrichtung (52), die auf die Eingabe/Ausgabe-Raumschreibbestimmungseinrichtung und auf die Initialisierungsbestimmungseinrichtung zum Bestimmen, ob die Operationen konkurrierend auftreten, und zur Erzeugung eines Cache-Flush-Anforderungssignals zu dem Flush-Anforderungseingang, anspricht.
4. Schaltkreis gemäß einem der Ansprüche 1 bis 3, der weiterhin aufweist:
eine Einrichtung (56,58) zum selektiven Sperren einer Produktion des Cache-Flush-Anforderungssignals für eine gegebene Schaltkreisleiterplattenstelle.
5. Schaltkreis nach einem der Ansprüche 1 bis 4, der weiterhin aufweist:
Einrichtungen (72,74,76,78,80) zum direkten Anfordern der Produktion eines Cache-Flush-Anforderungssignals.
DE68925807T 1989-01-04 1989-12-15 Cachespeicherkohärenzsteuerung bei programmierbarer Alternativenwahl und bei Speichererweiterung Expired - Fee Related DE68925807T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/293,221 US5095428A (en) 1989-01-04 1989-01-04 Cache flush request circuit flushes the cache if input/output space write operation and circuit board response are occurring concurrently

Publications (2)

Publication Number Publication Date
DE68925807D1 DE68925807D1 (de) 1996-04-04
DE68925807T2 true DE68925807T2 (de) 1996-09-05

Family

ID=23128204

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68925807T Expired - Fee Related DE68925807T2 (de) 1989-01-04 1989-12-15 Cachespeicherkohärenzsteuerung bei programmierbarer Alternativenwahl und bei Speichererweiterung

Country Status (4)

Country Link
US (1) US5095428A (de)
EP (1) EP0377296B1 (de)
CA (1) CA2005698A1 (de)
DE (1) DE68925807T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0748190B2 (ja) * 1990-01-22 1995-05-24 株式会社東芝 キャッシュメモリ内蔵マイクロプロセッサ
US5301343A (en) * 1990-12-31 1994-04-05 International Business Machines Corp. System having microprocessor local memory expansion capability through removable coupling of local memory expansion boards directly to the high speed microprocessor local bus
EP0510242A2 (de) * 1991-04-22 1992-10-28 Acer Incorporated Anordnung und Verfahren zur Verwaltung der Leitweglenkungsausführung in einer Rechneranordnung
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
EP0585117A1 (de) * 1992-08-26 1994-03-02 Cyrix Corporation Verfahren und System zur Aufrechterhaltung der Cachespeicherübereinstimmung in einem Multimasterrechnersystem
US5913225A (en) * 1995-06-08 1999-06-15 International Business Machines Corporation Cache flush mechanism for a secondary cache memory
CN1096640C (zh) * 1995-06-08 2002-12-18 国际商业机器公司 计算机存储器系统
US5778431A (en) * 1995-12-19 1998-07-07 Advanced Micro Devices, Inc. System and apparatus for partially flushing cache memory
JP4456527B2 (ja) * 2005-05-20 2010-04-28 株式会社日立製作所 光情報記録媒体、並びにそれを用いた情報記録方法及び情報再生方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
AU569857B2 (en) * 1982-12-09 1988-02-25 Sequoia Systems, Inc. Memory backup system
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
US4868783A (en) * 1987-06-15 1989-09-19 International Business Machines Corporation Dynamic port reconfiguration
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system

Also Published As

Publication number Publication date
CA2005698A1 (en) 1990-07-04
EP0377296B1 (de) 1996-02-28
DE68925807D1 (de) 1996-04-04
EP0377296A2 (de) 1990-07-11
EP0377296A3 (de) 1991-09-11
US5095428A (en) 1992-03-10

Similar Documents

Publication Publication Date Title
DE69107460T2 (de) Assoziativer speicher.
DE68924637T2 (de) Speicheranordnung für Mehrprozessorsysteme.
DE69027348T2 (de) Speicherblockadressenermittlungsschaltkreis
DE69217761T2 (de) Lese- und Schreibschaltung für einen Speicher
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE68923944T2 (de) RAM mit doppelten Ein/Ausgängen.
DE3724317C2 (de)
DE2350225C2 (de)
DE4111483C2 (de) Dual-Port-Speicher
DE68927907T2 (de) Einchipmikrorechner
EP0908893B1 (de) Speicherarchitektur mit Mehrebenenhierarchie
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE4210857A1 (de) Halbleiterspeichereinrichtung und verfahren zum uebertragen von daten
DE2921419C2 (de)
DE68924752T2 (de) Modulare Prüfstruktur für eine digitale Fernsprechvermittlungssteuerung auf einem Chip.
DE4132833A1 (de) Hierarchischer schaltungsintegrierter cache-speicher
DE102008005865A1 (de) Halbleiterspeicherbauelement, Verfahren zum Steuern eines Zugriffs auf eine Mailbox in einem Halbleiterspeicherbauelement und computerlesbares Speichermedium
DE4238062C2 (de) Multiport-Speichereinrichtung
DE68925807T2 (de) Cachespeicherkohärenzsteuerung bei programmierbarer Alternativenwahl und bei Speichererweiterung
DE69030914T2 (de) Halbleiterspeicheranordnung
EP0513611A2 (de) Verfahren zur Datenübertragung für einen Halbleiterspeicher und Halbleiterspeicher zur Durchführung des Verfahrens
DE3786973T2 (de) Semaphorschaltung für gemeinsam genutzte Speicherzellen.
EP0185260A2 (de) Schnittstelle für direkten Nachrichtenaustausch
DE1549548A1 (de) Vorrichtung zur Aktivierung eines bestimmten Befehls aus einer Vielzahl von Befehlen,die in einem Befehlsspeicher eines Rechners gespeichert sind
DE69025782T2 (de) Registerbankschaltung

Legal Events

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