DE69028066T2 - Kombinierte synchrone und asynchrone Speichersteuerung - Google Patents

Kombinierte synchrone und asynchrone Speichersteuerung

Info

Publication number
DE69028066T2
DE69028066T2 DE69028066T DE69028066T DE69028066T2 DE 69028066 T2 DE69028066 T2 DE 69028066T2 DE 69028066 T DE69028066 T DE 69028066T DE 69028066 T DE69028066 T DE 69028066T DE 69028066 T2 DE69028066 T2 DE 69028066T2
Authority
DE
Germany
Prior art keywords
signal
bus
memory
address
time
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 - Lifetime
Application number
DE69028066T
Other languages
English (en)
Other versions
DE69028066D1 (de
Inventor
John S Thayer
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
Publication of DE69028066D1 publication Critical patent/DE69028066D1/de
Application granted granted Critical
Publication of DE69028066T2 publication Critical patent/DE69028066T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

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)
  • Bus Control (AREA)
  • Dram (AREA)

Description

  • Die Erfindung betrifft Speichersteuerungen, die in Computersystemen verwendet werden, und im besonderen Computersysteme, die mehrfachen Quellen erlauben, auf einen gegebenen Block oder Teil eines Speichers zuzugreifen.
  • Die Leistung von Personalcomputersystemen nimmt sehr schnell zu. Ein Grund für diesen Leistungszuwachs ist die Entwicklung und Verfügbarkeit leistungsfähigerer Mikroprozessoren, die die Grundlage der Personal computer bilden. Neue Mikroprozessorausführungen werden entwikkelt, und die Taktgeschwindigkeiten der bestehenden Mikroprozessoren werden erhöht, so daß immer mehr Leistung zur Verfügung steht.
  • Mit der Entwicklung von 32 Bit Mikroprozessoren wurde der Hauptspeicher von den für auswechselbare Platinen, die im allgemeinen nur 8 oder 16 Bit breit waren, bereitgestellten physikalischen Steckplätzen getrennt. Durch Abtrennen der Hauptspeicheranordnung wurde es möglich, die Speicheranordnung 32 Bit breit zu machen und bei wesentlich höheren Geschwindigkeiten zu betreiben als es sonst über den Bus, der die Steckplätze verbindet, möglich gewesen wäre. Um aber diese Speicheranordnung zu benutzen, wurde eine Speichersteuerung benötigt, die sowohl vom Prozessor kommende Zyklen als auch Zyklen, die über den Bus der auswechselbaren Leiterplatten erzeugt wurden. handhaben konnte. Zu diesen Zweck wurden verschiedene Arten von Speichersteuerungen für verschiedene Systeme entworfen. Zum Beispiel wurden für Systeme nach der auf dem PC/AT der International Business Machines Corporation (IBM) basierenden Industrienorm-Architektur (ISA) synchrone Speichersteuerungen auf der Grundlage des an den Mikroprozessor angelegten Taktes benutzt. Für Systeme nach der von IBM entwickelten Mikrokanal- Architektur (MCA) wurden asynchrone Speichersteuerungen entwickelt, weil diese Busdefinition im Gegensatz zu dem synchronen Entwurf der ISA ein asynchroner Entwurf war.
  • Bei synchronen Steuerungen besteht ein Problem darin, daß bei jeder Änderung im Mikroprozessor, sei es Architektur oder Geschwindigkeit, die Speichersteuerung neu entworfen werden muß. Dies führt bei jedem Entwurf zu größeren Erschwerungen. Während ein asynchroner Entwurf, wie bei der ISA, entwickelt werden kann, werden diese Entwürfe nicht unbedingt für die Verwendung mit einem anderen Prozessor optimiert, und es würde eine Leistungsverschlechterung im Vergleich zu den äußersten Grenzen geben, die auf der Basis gegebener Speichereinrichtungen möglich sind. Deshalb muß auch ein asynchroner Entwurf bei jedem neuen Mikroprozessor überarbeitet werden. Den Systementwicklern blieb daher die Wahl, die Speichersteuerung, einschließlich der prozessorbezogenen Funktionen und der busbezogenen Funktionen, jedesmal neu zu werfen, wenn ein neuer Prozessor benutzt wurde, oder einen asynchronen Entwurf mit inhärenten Kompromissen bei der Systemleistung zu verwenden.
  • Im IBM Technical Disclosure Bulletin, Band 29, Nr. 4, 09/88, Seiten 1452-1456, "Direct, Asynchronous and Synchronous Storage Card", wird eine Zweiport-Speicherkarte offenbart, die eine Schnittstelle zu einnem synchronen CPU-Bus und eine Schnittstelle zu einem asynchronen E/A-Bus umfaßt.
  • EP-A-0135819 offenbart eine Schnittstellenschaltuung, die einen Speicher entweder mit einem synchronen Bus oder einem asynchronen Bus verbindet, wobei das Synchronbusprotokoll ähnlich dem Asynchronbusprotokoll aufgebaut ist.
  • Erfindungsgemäß wird ein Computersystem zur Verfügung gestellt, das umfaßt:
  • einen Mikroprozessor, der Adressen-, Daten- und Steuersignale gemäß einer ersten Konvention bereitstellt;
  • eine Bussteuereinrichtung, die Adressen-, Daten- und Steuersignale gemäß einer zweiten Konvention bereitstellt;
  • einen Bus, der Adressen-, Daten- und Steuersignale befördert;
  • eine Einrichtung, die die Mikroprozessorsignale zu bestimten Perioden mit dem Bus verbindet und zu anderen Perioden die Signale der Bussteuereinrichtung mit dem Bus verbindet;
  • eine Speichereinrichtung mit Adressen- und Steuereingängen und Datenleitungen;
  • eine Einrichtung, die die Adresseneingänge und Datenleitungen der Speichereinrichtung mit dem Bus verbindet;
  • eine Speichersteuereinrichtung, die mit dem Bus, den Steuereingingen der Speichereinrichtung und der Verbindungseinrichtung der Speichereinrichtung verbunden ist und die Speichereinrichtung steuert, um Daten zu geeigneten Zeiten für sowohl die erste als auch die zweite Konvention zu speichern und bereitzustellen, wobei die Speichersteuereinrichtung einen synchronen Teil umfaßt, der benutzt wird, wenn der Mikroprozessor mit dem Bus verbunden ist, sowie einen asynchronen Teil, der benutzt wird, wenn die Bussteuereinrichtung mit dem Bus verbunden ist.
  • Bei der bevorzugten Ausführung ist der Wechselplatinenbus der erweiterte Industrienormmaster, um den Bus zu steuern, und die Speichersteuerung bildet daher die Schnittstelle für die Busmaster, um auf den Hauptspeicher zuzugreifen. Die Verwendung des synchronen Teils der Speichersteuerung erlaubt es, die Mikroprozessorleistung für jeden Mikroprozessor bei minimaler Interaktion mit dem Timing des EISA- Busses zu optimieren. Die Verwendung des asynchronen Teils erlaubt dem Teil der Speichersteuerung, der den EISA-Bus betrifft, bei Prozessoränderungen unveränderich zu bleiben, wodurch die Gesamtentwurfsaufgabe vereinfacht wird, wenn der in dem Personalcomputer benutzte Mikroprozessor geändert wird.
  • Ein besseres Verständnis der vorliegenden Erfindung kann erhalten werden, wenn die folgende ausführliche Beschreibung der bevorzugten Ausführung zusammen mit den folgenden Zeichnungen eingehend betrachtet wird.
  • Fig. 1 ist ein Blockschaltbild eines Personalcomputers, der die vorliegende Erfindung enthält.
  • Fig. 2 ist ein Zeitdiagramm, wobei der synchrone Teil der Speichersteuerung mit dem Mikroprozessor zusammenarbeitet.
  • Fig. 3 ist ein Zeitdiagramm, wobei der asynchrone Teil der Speichersteuerung mit dem EISA-Bus zusammenarbeitet.
  • Fig. 4 ist eine Zustandsmaschine zur Verwendung in dem synchronen Teil der Speichersteuerung.
  • Fig. 5-7 sind ausführliche Schaltbilder von Teilen der erfindungsgemäßen Speichersteuerung.
  • Allgemein auf die Zeichnungen verweisend stellt der Buchstabe C im allgemeinen ein erfindungsgemäßes Computersystem dar. Ein Computersystem C enthält einen Prozessor 20, vorzugsweise den 1486 oder 80488 Mikroprozessor, hergestellt von Intel Corporation (Intel). Information über den 1486 wird in dem von Intel veröffentlichten Datenbuch mit Datum vom April 1989 bereitgestellt. Der Prozessor 20 arbeitet mit einem freigestellten numerischen Coprozessor 22, vorzugsweise dem Weitek 4167, zusammen, der vorgesehen ist, mit dem 1488 zusammenzuarbeiten. Das Computersystem C enthält ferner ein Cachespeichersystem 23 zur Verwendung mit dem Prozessor 20. Die vom Prozessor 20 gelleferten Adressen sind geschaltet, um den Prozessor-Adressenbus PA zu bilden. Diese Adressenleitungen PA sind mit dem numerischen Coprozessor 22 und den verschiedenen Teilen verbunden, die das Cachesystem 23 bilden. Der Cachemarken-Direktzugriffsspeicher (RAM) 24 wird benutzt, um festzustellen, wenn vom Prozessor 20 angeforderte Adressen gültige Daten besitzen, die im Cachedaten-RAM 26 gespeichert sind. Der Cachemarken-Direktzugriffsspeicher 24 überwacht daher den Prozessor-Adressenbus PA und liefert einer Cachesteuerung 28 Vergleichsausgänge, die basierend auf den Vergleichswerten feststellt, wenn eine Übereinstimmung vorliegt. Die Cachesteuerung 28 liefert die Ausgangssignale an einen Puffer 30, der die Prozessoradressen in das Cachedaten-RAM 28 puffert. Die Cachesteuerung 28 steuert auch eine programmierbare Arraylogik (PAL) 32, die die notwendigen logischen Operationen durchführt, um mit dem Prozessor 20 beim Entwickeln der unteren Adressenleitungen zum Zugreifen auf das Cachedaten-RAM 28 zusammenzuarbeiten. Die Cachesteuerung 28 ist mit dem Prozessor 20 und dem numerischen Coprozessor 22 verbunden, um bestimmte Steuerleitungen zu benutzen, die von dem Prozessor 20 und dem numerischen Coprozessor 22 bei ihren Operationen hervorgebracht werden.
  • Die Cachesteuerung 28 ist mit einer Bussteuerung 34 verbunden, die die Funktion des Computersystems C steuert, um zu erlauben, daß Daten und Adressen vom Prozessorteil des Computersystems C zu den übrigen Teilen übertragen werden. Die Bussteuerung 34 enthält vorzugsweise den von Intel hergestellten 82358 EISA-Buscontroller. Die Bussteuerung 34 arbeitet mit einem Speicherzuordner 36 zusammen, der den Prozessor- Adressenbus PA analysiert, um festzustellen, ob sich die Speicheradressen in einem Systemapeicher 50 des Computersystems C befinden, wenn die einzelne Speicherstelle schreibgeschützt ist, und um bestimmte Adressen zu entwickeln, die vom Systemspeicher 50 zu benutzen sind. Die Bussteuerung 34 liefert die passenden Signale, um Adressenwerte vom Prozessor-Adressenbus PA an einen Host-Adressenbus HA weiterzuleiten. Ein bidirektionales Latch 38 befindet sich zwischen den zwei Adressenbussen PA und HA und empfängt die Signale /HAPAOE, /PAHAOE, PAHALE und HAPALE, um die von dem Latch 38 benutzten Signale Ausgebefreigabe und Latchfreigabe zu erzeugen. Die Bussteuerung 34 erzeugt auch die passenden Signale, die mit den bidirektionalen Latches 40 und 42 zu verwenden sind, die die Adresseninformation bzw. die Dateninformation an und von dem für die wechselbaren Leiterplatten vorgesehenen erweiteren Industrie-Architektur- (EISA) Bus zur Verfügung stellen. Der EISA-Bus 44 ist gemäß der EISA-Spezifikation, Revision 3.1 entwickelt. Diese Spezifikation ist seit dem 1. November 1989 von BCPR Services Inc., 1400 L Street N.W., Suite 100, Washington D.C., 20005- 35002 erhältlich und hiermit durch Verweisung eingeschlossen. Vertrautheit mit dem Dokument wird in dieser Beschreibung vorausgesetzt. Die Bussteuerung 34 arbeitet auch mit der integrierten Systemperipherie (ISP) 46 zusammen. Die integrierte Systemperipherie 46 handhabt die Funktionen des direkten Speicherzugriffs (DMA), der Auffrischung, der Unterbrechung und der Busschlichtung für ein nach der EISA-Spezifikation gebautes Computersystem. Die ISP 48 entscheidet, ob der Prozessor 20, die DMA-Steuerung, die Auffrischungssteuerung oder ein auf dem EISA-Bus 44 gelegener Busmaster die Steuerung über den EISA-Bus 44, den Hostbus und das Computersystem C besitzt. Die Steuerung rotiert auf der Basis eines Prioritätsplanes, so daß die Einheit die Steuerung des Busses für eine gewisse Zeitdauer erlangen wird.
  • Die Bussteuerung 34 arbeitet mit einer Speichersteuerung 48 zusammen, die die Funktion verschiedener Latches und Puffer und der Speichereinheiten in der Systemspeicheranordnung 50 steuert. Die Speichersteuerung 48 erzeugt ein als HAMACLE bezeichnetes Signal, welches das an ein Latch 52 angelegte Latch-Freigabesignal ist, das Teile der auf dem Hostbus HA bereitgestellten Adressen in den Systemapeicher 50 überträgt. Außerdem erzeugt die Speichersteuerung 48 die als /MUXRAS und /MUXCAS bezeichneten Signale, die eine Pufferanordnung 54, die zwischen den Host-Adressenbus HA und die vom Speicherzuordner 35 bereitgestellten Adressen und den Systemspeicher 50 geschaltet ist, bzw. den Ausgang des Latches 52 freigeben, so daß den Speichereinheiten in der Systemspeicheranordnung 50 Reihen- und Spaltenadressen geeignet zugeführt werden. Die Speichersteuerung 48 erzeugt ferner die Signale /HDMDOE, MDHDLE, /MDHDOEA und /MDHDOEB, und die Bussteuerung 34 erzeugt das Signal PAHALE, die zwei bidirektionalen Latches 56 und 58 zugeführt werden, um Daten zwischen dem Host-Datenbus HD, der mit dem Prozessor 20 verbunden ist, dem Cachedaten-RAM 26, das mit dem EISA-Bus 44 verbunden ist, und dem Systemspeicher 50 zu übertragen. Die zwei Latches 56 und 58 werden bei der bevorzugten Ausführung benutzt, weil die Systemspeicheranordnung vorzugsweise 64 Bit breit ist, und weil der Host-Datenbus HD vorzugsweise 32 Bit breit ist, werden zwei Puffersätze benutzt.
  • Die Speichersteuerung 48 besitzt zwei Teile, einen synchronen Teil, der benutzt wird, um Zugriffe durch die ISP 46 oder von auf dem EISA- Bus 44 gelegenen Busmastern zu steuern, und einen asynchronen Teil, der für Zugriffe vom Prozessor 20 benutzt wird. Die Funktion der Speichersteuerung 48 und weitere Einzelheiten ihres Aufbaus werden später beschrieben.
  • Fig. 2 ist ein Zeitdiagramm von verschiedenen Zyklen zwischen dem Prozessor 20 und der Systemspeicheranordnung 50. Die Speichersteuerung 48 benutzt eine Zustandsmaschine, und der Zustand dieser Maschine für jeden gegebenen Taktzyklus wird in der Zeichnung angegeben. Die Zustandsmaschine wird weiter beschrieben werden.
  • Das Grundtaktsignal des Computersystems C ist das Signal CLK1, das an den Prozessor 20 angelegt wird. Bei der bevorzugten Ausführung ist dies ein 25 MHz Signal zur Verwendung bei der 25 MHz Version des Prozessors 20. Bei Zeit 100, der ansteigenden Flanke des Signals CLK1, geht das Signal /PADS tief, wodurch der Prozessor 20 anzeigt, daß für den Zyklus 1 Adresseninformation bereitsteht. Diese Adresseninformation steht auf dem Prozessor-Adressenbus PA wie gezeigt zur Verfügung. Bei Zeit 102, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /HADS tief, um der Bussteuerung 34 anzuzeigen, daß ein gültiger Adressenzyklus durchgeführt wird. Ebenfalls zu dieser Zeit geht das Signal /SMEMGO tief, um anzuzeigen, daß ein Systemspeicherzyklus beginnt. Dieses Signal wird von der Speichersteuerung 48 benutzt, um ihre Operationen zu beginnen. Ebenfalls bei Zeit 102 werden die auf dem Prozessor-Adressenbus PA vorhandenen und von dem Speicherzuordner 38 zugeordneten Adressen dem Host-Adressenbus HA über den Puffer/Latch 38 und ein Latch 39 von dem Speicherzuordner 36 basierend auf den von der Bussteuerung 34 erzeugten Steuersignalen vorgelegt. Diese Adressensignale auf dem Host-Adressenbus werden dann über das Latch 52 und den Puffer 54 dem Speicher-Adressenbus NA zur Übergabe an die Speichereinheiten zugeführt.
  • Bei Zeit 104, der nächsten ansteigenden Flanke des Signals CLK1, gehen die Signale /HADS und /SMEMGO hoch. Bei Zeit 106, der nächsten ansteigenden Flanke des Signals GLK1, geht das /RAS- oder Reihenadressen-Strobesignal tief, um den Speichereinheiten anzuzeigen, daß eine gültige Reihenadreese vorliegt. Bei Zeit 108, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /NUXCAS tief, so daß die Adressen für die Spalte in den Speichereinheiten den Speichereinheiten vorgelegt werden. Das an den Puffer 54 angelegte Signal /MUXRAS wird der Klarheit wegen in den Zeitdiagrammen nicht gezeigt, weil es einfach die Umkehrung des Signals /MUXCAS ist. Wenn das Signal /MUXCAS tief ist, werden daher Spaltenadressen bereitgestellt, und wenn es hoch ist, werden Reihenadressen an den Speicher-Adressenbus MA angelegt.
  • Bei Zeit 110, der nächsten ansteigenden Flanke des Signals CLK1, geht das /CAS- oder Spaltenadressen-Strobesignal tief, um den Speichereinheiten anzuzeigen, daß eine gültige Spaltenadresse vorliegt, und in diesem Fall Daten aus den Speichern gelesen werden sollen, weil das Signal /MWE hoch ist. Kurz danach beginnen die Speicherdaten auf dem Speicher-Datenbus zu erscheinen. Bei Zeit 112, der nächsten ansteigenden Flanke des Signals CLK1, werden die auf dem Speicher-Datenbus erscheinenden Daten und das erste Doppelwort an den Host-Datenbus HD angelegt. Es wird bemerkt, daß das Speichersystem 50 vorzugsweise aus 80 ns Seitenmodus-Speichereinheiten organisiert ist und 64 Bit breit ist, so daß, wenn eine Adresse an den Systemspeicher 50 angelegt wird, zwei Doppelwörter zu einer Zeit erzeugt werden, um dadurch eine Auswahl des geeigneten Puffer/Latch 56 oder 58 abhängig von dem gewünschten Doppelwort zu erlauben. Bei Zeit 112 wird somit das passende Latch 56 oder 58 freigegeben, um das erste Doppelwort an den Host-Datenbus HD anzulegen.
  • Bei Zeit 114, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /MDHDLE hoch, um so die Werte auf dem Speicher-Datenbus in die Latches 56 und 58 einzuklinken. Dieser Übergang beeinflußt das Einklinken, da die Latches 56 und 58 invertierte Tastungseingänge besitzen. Das System C kann jetzt beginnen, auf das zweite Doppelwort zuzugreifen, auf das in dem durch den Prozessor 20 in dieser Darstellung durchgeführten Burst-Zyklus zuzugreifen ist. Bei einer Zeit kurz nach der Zeit 114 geht das Signal /PBRDY tief, um dem Prozessor 20 anzuzeigen, daß ein Burstzugriff bereit ist und der Prozessor die nächste Adresse vorlegen kann. Diese Adresse wird bei Zeit 116, der nächsten ansteigenden Flanke des Signals CLK1, vorgelegt. Eine Adressenänderung wird von dem Prozessor vorgelegt, aber diese Adressenänderung wird nicht an den Host-Adressenbus HA angelegt, weil der bevorzugte i486 Prozessor 20 eine vorbestimmte Reihenfolge zum Erlangen von Datenbytes besitzt und die nachfolgende Adresse auf der Basis der ersten Adresse bestimmt werden kann. Deshalb ist nur die ursprüngliche Adresse für die restlichen Adressen der Burst-Operation erforderlich. Bei Zeit 116 geht das Signal /INVMA00 tief, was eine Umkehrung des Signals HA< 3> bewirkt, das in das niedrigstwertige Adressenbit für den Systemspeicher 50 umgesetzt wird. Die Spaltenadresse, die an den Speicher-Adressenbus MA angelegt wird, wird daher in die des dritten zu erlangenden Doppelwortes geändert. Damit diese neue Spaltenadresse von den Speichereinheiten erkannt werden kann, geht bei Zeit 116 das Signal /CAS in Vorbereitung auf das Eintakten eines neuen Spaltenadressenwertes in die Speichereinheiten hoch. Schließlich wird bei Zeit 116 das andere der Latches 56 und 58 freigegeben, so daß das zweite Doppelwort an den Host-Datenbus HD und an den Prozessor 20 angelegt wird.
  • Bei Zeit 118, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /PBRDY erneut tief gesetzt, um dem Prozessor 20 anzuzeigen, daß der zweite Satz von Daten zur Verfügung steht. Ebenfalls zu dieser Zeit geht das Signal /CAS tief, um die nächsten Spaltenadressen in die Speichereinheiten des Systemspeichers 50 einzutakten. Dies kann ein kurzer Zugriff sein, weil er per Definition ein auf den vom Prozessor 20 vorgelegten Adressen basierender Seitentreffer ist. Bei Zeit 120, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /PBRDY hoch, und der Prozessor 20 legt die nächste Adresse an den Adressenbus PA an. Ebenfalls zu dieser Zeit geht das Signal /INVMA00 hoch, um so das Anlegen der Adressen an den Systemspeicher 50 zu beenden. Zu dieser Zeit werden die Daten von den Speichereinheiten beginnen, gültig zu sein, und somit geht das Signal MDHDLE tief, um die Latches 56 und 58 zu öffnen. Die Ausgabe-Freigabeeingänge der Latches 58 und 58 werden von der Speichersteuerung 48 getrieben, so daß das dritte Doppelwort an den Host-Datenbus HD angelegt wird.
  • Bei Zeit 122, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /PBRDY tief, um dem Prozessor 20 anzuzeigen, daß das nächte Doppelwort bereitsteht, und das Signal MDHDLE geht hoch, um so die auf dem Speicher-Datenbus MD vorgelegten Daten einzuklinken. Bei Zeit 124, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /PBRDY in Vorbereitung auf den nächsten Zyklus hoch, und das Signal /CAS geht hoch, um die Leseoperation der Speichereinheiten zu beenden. Ebenfalls bei dieser Zeit wird das vierte Doppelwort von Daten an den Host-Datenbus HD angelegt, indem die Ausgabefreigaben der Puffer/Latches 56 und 58 geändert werden. Nach Zeit 124 zeigt der Prozessor 20 durch Tiefsetzen des Signals /BLAST an, daß dies der letzte Zugriff in dem Burstzugriff ist.
  • Bei Zeit 126, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /PBRDV tiefgesetzt, um dem Prozessor 20 anzuzeigen, daß der Zyklus vollendet ist, und das Signal /RAS geht hoch, so das die nächste Reihenadresse in die Speichereinheiten eingetaktet werden kann. Bei Zeit 128, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /PBRDY hoch, die letzte vom Prozessor 20 bereitgestellte Adresse wird von dem Prozessor-Adressenbus PA entfernt, wobei die Adressen von Zyklus 2 vorgelegt werden, um so anzuzeigen, daß der Burstzyklus vollendet ist. Bei Zeit 128 wird das Signal MDHDLE tiefgesetzt, so daß alle Daten, die von den Speichereinheiten in der Speicheranordnung 50 vorhanden sind, über die Puffer/Latches 56 und 58 vorgelegt werden können.
  • Außerdem setzt bei Zeit 128 der Prozessor 20 das Signal /PADS tief, um anzuzeigen, daß eine neue Adresse vorliegt und somit der Zyklus 2 beginnt. Dieser wird ein einzelner Doppelwortzugriff sein, was durch die Tatsache angezeigt wird, daß das Signal /BLAST zu dieser Zeit tief geht. Dieser Zyklus wird als eine Anfangsspeicheroperation angesehen, weil eine volle Burstleseoperation vollendet worden ist. Bei Zeit 128 legt der Prozessor 20 die neuen Adressen für den Zyklus 2 an den Prozessor-Adressenbus PA an. Bei Zeit 130, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /PADS durch den Prozessor 20 hochgesetzt, und das Signal /HADS, das anzeigt, daß eine gültige Adresse auf dem Host-Adressenbus HA vorhanden sein wird, wird tiefgesetzt. Kurz nach dieser Zeit, was auf Laufzeitverzögerungen beruht, wird auch das Signal /SMEMGO tiefgesetzt, um anzuzeigen, daß ein Speicherzyklus beginnt. Ebenfalls bei Zeit 130 beginnen die Adressenwerte für den Zyklus 2 auf dem Host-Adressenbus HA zu erscheinen, und kurz danach erscheinen über den Puffer 54 die Reihenadressen auf dem Speicher-Adressenbus MA. Die Reihenadressen erscheinen, weil das Signal /MUXRAS zu dieser Zeit tiefgesetzt und das Signal /MUXCAS hochgesetzt wird, so daß die Spaltenadressen, die mit den Reihenadressen in Konflikt stehen, nicht an den Systemspeicher 50 angelegt werden. Bei Zeit 130 wird das Signal 'not cache hit' oder /CHIT tiefgesetzt, um anzuzeigen, daß ein Cachetreffer vorliegt. Schließlich beginnen bei Zeit 130 die Daten vom Prozessor 20 auf dem Host-Datenbus HD zu erscheinen.
  • Bei Zeit 132, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /HADS hochgesetzt. Zu dieser Zeit wird das Signal /PRDV tiefgesetzt, um anzuzeigen, daß dies keine Burstantwort sein wird. Außerdem wird bei Zeit 132 das Signal /SMEMGO hochgesetzt, und das Signal PAHALE wird hochgesetzt, um die auf dem Host-Datenbus HD vorhandenen Daten und die auf dem Prozessor-Adressenbus PA vorhandenen Adressen in die geeigneten Latches 38, 56 und 58 einzuklinken. Ebenfalls zu dieser Zeit beginnen die auf dem Prozessor-Datenbus PD erscheinenden Daten auf dem Speicher-Datenbus MD zu erscheinen. Bei Zeit 134, der nächsten ansteigenden Flanke des Signals CLK1, setzt der Prozessor das Signal /PADS tief, um den Zyklus 3 zu beginnen, was er tun kann, weil ihm ein Hinweis gegeben wurde, daß das Speichersystem bereit gewesen ist. Dies beginnt den Adressenteil von Zyklus 3 durch den Prozessor 20. Zu dieser Zeit geht das Signal /BLAST hoch, so daß es, wenn nötig, bei dem nächsten Zyklus des Signals CLK1 tiefgesetzt werden kann. Ebenfalls zu dieser Zeit geht das Signal /PRDY hoch, um den Bereit-Hinweis zu beenden, und neue Adressen werden auf dem Prozessor-Adressenbus PA vorgelegt. Bei Zeit 134 wird das Signal /RAS tiefgesetzt, da jetzt die Vorladungszeit beendet worden ist und daher die Reihenadressen von Zyklus 2 in die Speichereinheit eingetaktet werden. Ebenfalls zu dieser Zeit entfernt der Prozessor 20 die Daten von Zyklus 2 von dem Host-Datenbus HD.
  • Bei Zeit 136, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /PADS hochgesetzt, und das Signal /HADS wird tiefgesetzt. Das Signal /BLAST ist tief, um anzuzeigen, daß dies nur eine einzelne Doppelwortübertragung ist. Außerdem werden zu dieser Zeit die an die Speichereinheiten und die Speicheranordnung 50 angelegten Adressen In die Spaltenadressen geändert, wobei das Signal MUXCAS tief und das Signal MUXRAS hoch geht, um diesen Vorgang zu erlauben. Bei Zeit 138, der nächsten ansteigenden Flanke des Signals CLK1, geht das Signal /HADS hoch. Außerdem gehen bei dieser Zeit die Signale /MWE und /CAS tief, so daß die Daten, die auf dem Speicher-Datenbus erscheinen, bei den bereitgestellten und gespeicherten Spaltenadressen in die Speichereinheiten geschrieben werden. Die Speichereinheiten der bevorzugten Ausführung speichern die Reihenadresse, Spaltenadresse und Daten bei der abfallenden Flanke des geeignten Strobe-Impulses. Ebenfalls bei Zeit 138 liefert den Prozessor 20 die Daten von Zyklus 3 an den Host-Datenbus HD. Bei Zeit 140, der nächsten ansteigenden Flanke des Signal CLK1, wird das Signal /SMEMGO tiefgesetzt, um dem System anzuzeigen, daß der dritte Speicherzyklus, der eine Speicherschreib- Seite-Verpassen-Operation ist, beginnt. Zu dieser Zeit geht das Signal PAHALE tief, um zu erlauben, daß neue Daten in die Latches 38, 56 und 58 übertragen werden. Zu dieser wechseln daher die auf dem Host- Adressenbus HA vorhandenen Daten zu denen von Zyklus 3. Außerdem geht bei Zeit 140 das Signal /CAS hoch.
  • Bei Zeit 142, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /PRDY tiefgesetzt, um dem Prozessor 20 anzuzeigen, daß der Zyklus 3 zu Ende gehen wird, und zu dieser Zeit werden die Signale /SMEMGO und PAHALE hochgesetzt, um so zu veranlassen, daß die Daten in die Latches 38, 56 und 58 gespeichert werden. Ebenfalls zu dieser Zeit werden die neuen Reihenadressen für den Zyklus 3 an den Speicher- Adressenbus MA angelegt, und das Signal /RAS wird hochgesetzt, um eine Vorladungszeit zu erlauben. Die neue Reihenadresse ist erforderlich, dies weil eine Seite-Verpassen-Operation gewesen ist und somit eine volle Adresse erzeugt werden muß. Außerdem werden zu dieser Zeit die Daten für den Zyklus 3 an den Speicher-Datenbus MD angelegt.
  • Bei Zeit 144, der nächsten ansteigenden Flanke des Signals CLK1, setzt der Prozessor 20 das Signal /PADS tief, um anzuzeigen, daß sich der nächste Zyklus entwickeln wird. In diesem Fall ist der Zyklus 4 ein Cachelesetreffer, und der Zyklus 4 ist daher für den Systemspeicher 50 völlig transparent, wird aber gezeigt, um zu veranschaulichen, daß Prozessorzyklen gleichzeitig mit Speicherzyklen ablaufen können. Bei Zeit 144 setzt der Prozessor 20 das Signal /BLAST hoch, und die Speichersteuerung 48 setzt das Signal /PRDY hoch.
  • Bei Zeit 146, der nächsten ansteigenden Flanke des Signals CLK1, setzt der Prozessor 20 das Signal /PADS hoch, und die Bussteuerung 34 setzt das Signal /HADS tief, um den nächsten Zyklus anzuzeigen. Weil dies ein Cachelesetreffer ist, geht kurz nach Zeit 146 das Signal /PBRDY hoch, um anzuzeigen, daß der Burstzugriffsmodus benutzt werden wird. Ebenfalls zu dieser Zeit geht das Signal /CHIT tief, um die Cachetreffersituation anzuzeigen. Kurz nach dieser Zeit beginnen die Daten auf dem Host-Datenbus HD für den Burstzyklus zu erscheinen. Außerdem wird bei Zeit 146 das Signal /MUXCAS hochgesetzt, und das Signal /MUXRAS wird tiefgesetzt, so daß die Reihenadressen von Zyklus 3 an die Speichereinheiten angelegt weren.
  • Bei Zeit 148, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /HADS für den Zyklus 4 hochgesetzt. Ebenfalls bei Zeit 148 wird das Signal /RAS tiefgesetzt, um die Reihenadressen von Zyklus 3 in die Speichereinheiten einzutakten. Bei Zeit 150, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /MUXCAS tiefgesetzt, und daher das Signal /MUXRAS hochgesetzt, so daß die Spaltenadressen an den Speicher-Adressenbus MA angelegt werden. Bei Zeit 152, der nächsten ansteigenden Flanke des Signals CLK1, werden die Signale /MWE und /CAS tiefgesetzt, so daß die Spaltenadressen und die Daten In die Speichereinheiten eingetaktet werden. Bei Zeit 154, der nächsten ansteigenden Flanke des Signals CLK1, ist das Signal /BLAST vom Prozessor 20 tief, um anzuzeigen, daß der Zyklus 4, der für den Systemspeicher 50 transparent war, zu Ende geht. Zu dieser Zeit wird daher das Signal PAHALE tief gesetzt, um zu erlauben, daß neue Daten und Adressen an die betreffenden Busse angelegt werden. Bei Zeit 154 werden die Signale /MWE und /CAS hochgesetzt, um die Schreiboperation in die Speichereinheiten MD abzuschließen, wobei die Daten kurz danach von dem Speicher-Datenbus entfernt werden. Ebenfalls bei Zeit 154 setzt der Prozessor 20 das Signal /PADS tief, um anzuzeigen, daß Adressen des Zyklus 5 auf dem Prozessor-Adressenbus PA vorhanden sind. Bei Zeit 156, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /PADS durch den Prozessor 20 hochgesetzt, und das Signal /HADS wird durch die Bussteuerung 34 tiefgesetzt, um den Beginn des nächsten Zyklus anzuzeigen, in diesem Fall eine Speicherschreib-Seitentreffer-Operation, die in einer relativ kurzen Zeit durchgeführt wird. Außerdem wird bei Zeit 156 das Signal /SMEMGO tiefgesetzt, um den Beginn eines Systemspeicherzyklus anzuzeigen.
  • Bei Zeit 158, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /HADS hochgesetzt, und das Signal /PRDY wird tiefgesetzt. Außerdem wird bei dieser Zeit das Signal /SMEMGO hochgesetzt. Ebenfalls bei dieser Zeit wird das Signal PAHALE hochgesetzt, um die Daten in den Latches 38, 56 und 58 zu speichern. Bei Zeit 160, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /PRDY hochgesetzt, das Signal /MWE wird tiefgesetzt, und das Signal /CAS wird tiefgesetzt. Nur Spaltenadressen werden an die Speicheranordnung 50 angelegt, in diesem Fall beginnend bei Zeit 156, weil es eine Seitentreffer-Operation ist. Deshalb muß nur das Signal /CAS getaktet werden, wobei das Signal /RAS tief bleibt. Daher gehen bei Zeit 162, der nächsten ansteigenden Flanke des Signals CLK1, die Signale /MWE und /CAS hoch. Der nächste Zyklus, der nicht gezeigt wird, beginnt bei Zeit 162.
  • Es ist somit zu sehen, daß der synchrone Teil der Speichersteuerung 48 Burstoperationen erlaubt, in dem Fall von Lesevorgängen aufzutreten, und bekanntgegebene Schreiboperationen erlaubt, so daß gleichzeitige Prozessor- und Systemspeicheroperationen stattfinden können. Es ist ebenfalls zu sehen, daß Speicherseiten-Verpassen-Operationen eine Anzahl von Wartezuständen benötigen, während Speicherschreib-Seitentreffer-Operationen nur einen Wartezustand für den Prozessor 20 benötigen.
  • Dies war die Zeitsteuerung für den sychronen Teil der Speichersteuerung 48 zur Verwendung mit dem Prozessor 20. Die Speichersteuerung 48 umfaßt auch einen asynchronen Teil zur Verwendung mit dem EISA-Bus 44. Der Grundtakt des EISA-Busses 44 ist das Signal BCLK, wie in Fig. 3 gezeigt. Das Signal BCLK wird durch die Bussteuerung 34 aus dem Signal CLK1 erzeugt. Es wird auf der Basis der Taktgeschwindigkeit des Prozessor geteilt. Im Fall der bevorzugten Ausführung wird das Signal CLK1 von 25 MHz durch 3 geteilt. Die Bussteuerung 34 enthält einen Eingang /STRETCH, der es erlaubt, eine Phase des Signals BCLK zu vergrößern oder zu dehnen, während das Signal /STRETCH tief ist.
  • Bei Zeit 200, der abfallenden Flanke des Signals BCLK, werden die Speicheradressen an den EISA-Adressenbus LA angelegt. Ebenfalls zu dieser Zeit ist das an das Spaltenadressenlatch 52 angelegte Signal /HAMACLE hoch. Kurz nach Zeit 200 beginnen die Reihenadressen auf dem Speicher-Adressenbus MA zu erscheinen, weil das Signal /MUXRAS tief und das Signal /MUXCAS hoch ist. Die Adressenwerte wurden vom EISA- Bus LA über das Latch 40 an den Host-Adressenbus HA und dann über den Puffer '54 an den Speicher-Adressenbus MA übertragen. Bei Zeit 402, der nächsten ansteigenden Flanke des Signals BCLK, geht das Signal /START hoch, un anzuzeigen, daß gültige Speicheradressen vorhanden sind und die Speicheradresse des Zyklus beginnt. Bei Zeit 204, einer Periode kurz nach der nächsten abfallenden Flanke des Signals BCLK, geht das Signal /RAS tief, um die Reihenadressen in die Speichereinheiten einzutakten. Das Signal /RAS geht zu dieser Zeit auf der Basis einer verzögerten Version des Signals BCLK tief, die über eine Verzögerungsleitung erzeugt wird. Bei Zeit 206, der nächsten ansteigenden Flanke des Signals BCLK, geht das Signal /START hoch, und das Signal /CMD geht tief, um so den Beginn des Datenteils des Zyklus anzuzeigen. Zu dieser Zeit werden die Spaltenadressen an den Speicher-Adressenbus MA angelegt, wenn das Signal /MUXCAS tief geht. Ebenfalls bei dieser Zeit, wenn ein Schreibzyklus stattfindet, erscheinen die Daten auf dem Host-Datenbus HD und erscheinen kurz danach auf dem Speicher-Datenbus MD, weil das Signal PAHALE tief ist, um so die Latches 56 und 58 transparent zu machen, und das Signal /HDMDOE ist tief, so daß die Ausgänge für einen Schreibzustand auf einen Speicher-Datenbus getrieben werden. Bei Zeit 208, einer auf einer Verzögerung von der abfallenden Flanke des Signals /CMD beruhenden Zeit, geht das Signal /CAS bei einer Leseoperation hoch, um die Spaltenadressen in den Speichereinheiten zu speichern. Bei Zeit 210, etwa bei der nächsten abfallenden Flanke des Signals BCLK, werden die neuen Adressen an den EISA-Adressenbus LA angelegt, und das Signal /MSBURST geht tief, um anzuzeigen, daß dies eine Burstoperation sein wird. Wenn der duchgeführte Zyklus ein Lesezyklus ist, beginnen zu dieser Zeit die gültigen Daten von den Speichereinheiten auf dem Speicher-Datenbus MD zu erscheinen. Bei der nächsten ansteigenden Flanke des Signals CLK1, bei Zeit 212, geht das Signal /STRETCH tief, um der Bussteuerung 34 anzuzeigen, daß das Signal BCLK gedehnt werden sollte, um dem Speicherzugriff zusätzliche Zeit zu gewähren. Das Signal /STRETCH wird aus einer Kombination von zwei verzögerten Signalen basierend auf dem Signal BCLK erzeugt. Das erste verzögerte Signal, das Signal SBCLK, ist das Signal BCLK, das durch ein vom Signal CLK1 getaktetes Flipflop gespeichert wird. Das zweite verzögerte Signal, das Signal SBCLKD, ist das Signal SBCLK, das durch ein ebenfalls vom Signal CLK1 getaktetes Flipflop gespeichert wird. Während diese Verzögerung unter Verwendung von sequentieller Logik und Flipflops erzeugt wird, wird bemerkt, daß sie mit einer Verzögerungsleitung erzeugt werden könnte.
  • Bei Zeit 214, einer Zeit, die ebenfalls auf einer Verzögerung von dem Signal /CMD beruht, geht das Signal /CAS tief, wenn eine Schreiboperation ausgeführt wird. Dieses speichert die Spaltenadressen und die Daten in den Speichereinhelten, wobei das Signal /MWE zuvor tiefgesetzt worden ist. Bei Zeit 216, der nächsten ansteigenden Flanke des Signals CLK1, wird das Signal /STRETCH hochgesetzt, so daß nur eine einzige Takterweiterung des Signals CLK1 dem Signal BCLK hinzugefügt wird. Basierend auf dem Entfernen des Signals /STRETCH geht das Signal /HAMACLE hoch. Dies leitet die Spaltenadressen von Zyklus 2 an den Speicher-Adressenbus MA.
  • Bei Zeit 218, der nächsten ansteigenden Flanke des Signals BCLK, wird das Signal /CAS bei Schreibzyklen hochgesetzt, um den einzelnen Zyklus abzuschließen, wodurch die Speicheroperation wirksam vollendet wird. Ebenfalls bei dieser Zeit geht das Signal /HAMACLE tief, um die Spaltenadressenwerte in dem Spaltenadressenlatch 52 zu speichern. Bei Zeit 220, die auf einer verzögerten Zeit von dem Signal BCLK beruht, geht das Signal /CAS bei Leseoperationen hoch, um so die Leseoperation zu beenden. Zu dieser Zeit werden daher bei Lesezyklen die Datenwerte von dem Speicher-Datenbus MD und dem Host-Datenbus HD entfernt. Bei Zeit 222, der nächsten abfallenden Flanke des Signals BCLK, geht für Leseoperationen das Signal /CAS tief, und die Daten für Schreiboperationen beginnen, auf dem Host-Datenbus HD zu erscheinen, und werden an den Speicher-Datenbus MD übertragen. Ebenfalls zu dieser Zeit werden die Adressenwerte für den Zyklus 3 auf dem EISA-Adressenbus LA vorgelegt. Die restlichen Teile von Zyklus 2 enden an diesem Punkt wie die Operation von Zyklus 1 nach der Zeit 210. Das Timing von Zyklus 3, der auch eine Burstoperation ist, ist ähnlich dem von Zyklus 2.
  • Fig. 4 zeigt die Zustandsmaschine, die mit der Speichersteuerung 48 benutzt wird, um Zugriffe des Prozessors 20 auf die Systemspeicheranordnung 50 zu steuern. Die Zustandsmaschine wird auf den ansteigenden Flanke des Signals CLK1 getaktet. Die Operation der Zustandsmaschine beginnt nach Rücksetzung bei Zustand MIDLE. Der Zustand MIDLE, der der Leerlaufzustand bei hohem Signal /RAS ist, wird bei Anfangsoperationen, z.B. Rücksetzung, nachdem der Prozessor angehalten worden ist und gerade die Steuerung des Busses wiedererlangt hat, und nach Cachezellen-Fülloperationen benutzt. Die Steuerung bleibt bei Zustand MIDLE, wenn ein Cachelesetreffer vorhanden ist, oder bis das Signal /SMEMGO tief geht, um anzuzeigen, daß ein Speicherzyklus beginnt. Wenn das Signal SMEMGO hoch ist, d.h. das Signal /SMEMGO tief ist, ist es eine Leseoperation und kein Treffer in den Cache, und die Steuerung geht bei der nächsten ansteigenden Flanke des Signals CLK1 zu Zustand PRS. Bei der nächsten ansteigenden Flanke des Signals CLK1 geht die Steuerung zu Zustand RR0 und dann bei aufeinanderfolgenden ansteigenden Flanken des Signals CLK1 zu den Zuständen RR1, RC0, RC1 und RC2.
  • Vom Zustand RC2 gibt es zwei Ausgänge. Wenn das Signal /BLAST hoch ist, um anzuzeigen, daß mehr Adressen in einem Burst zu erzeugen sind, geht die Steuerung zu Zustand RC3 und dann zu Zustand RC4. Der Zustand RC4 hat zwei Ausgangsbedingungen, die auf dem Signal /BLAST beruhen. Wenn das Signal /BLAST hoch ist, geht die Steuerung bei nachfolgenden ansteigenden Flanken des Signals CLK1 zu Zustand RCS und zu Zustand RC6. Bei der nächsten ansteigenden Flanke des Signals CLK1 geht die Steuerung vom Zustand RC6 zu Zustand RC1, wenn das Signal /BLAST hoch ist. Die Steuerung geht dann vom Zustand RC1 zu Zustand RC8 und vom Zustand RCB zu Zustand MIDLE. Wenn in den Zuständen RC2, RC4 oder RC6 das Signal /BLAST tief war, um anzuzeigen, daß der Prozessor 20 die letzte Adresse in einer Burstoperation vorlegt, geht die Steuerung zu Zustand RIDLE.
  • Wenn das Signal SMEMGO hoch war und eine Schreiboperation stattgefunden hat, geht die Steuerung vom Zustand MIDLE zu Zustand WRS. Bei nachfolgenden ansteigenden Flanken des Signals CLK1 geht die Zustandsmaschine vom Zustand WRS zu Zustand WR0, zu Zustand WR1, zu Zustand WC und zu Zustand RIDLE.
  • Es gibt zahlreiche Ausgänge vom Zustand RIDLE, der der Hauptleerlaufzustand ist, bei dem das Signal /RAS tiefgehalten wird, und benutzt wird, während der Prozessor 20 die Steuerung des Busses besitzt. Die Steuerung bleibt im Zustand RIDLE, während der Prozessor erst angehalten wird, wenn das Signal /SMEMGO tief geht, um den Beginn eines Speicherzyklus anzuzeigen, oder wenn ein Cachelesetreffer auftritt. Die Steuerung geht vom Zustand RIDLE zu Zustand WR1, wenn eine Speicheroperation beginnen soll, es eine Schreiboperation ist, es ein Speicherseitentreffer ist und der Prozessor 20 nicht gehalten wird. Dies wird in Zyklus 5 in Fig. 2 für eine Speicherschreib-Seitentrefferoperation gezeigt. Wenn eine Cacheverpassen-Speicherseiten-Trefferoperation, die eine Leseoperation ist, stattfindet, und der Prozessor 20 nicht hält, geht die Steuerung vom Zustand RIDLE zu Zustand RR1, wenn das Signal SMEMGO vorgelegt wird. Wenn der Prozessor 20 einen Haltezustand betritt, wie durch die Anwesenheit des Signals PHLDA anzeigt, ein Anzeichen, daß die DMA-Steuerung oder ein anderer Busmaster die Steuerung des EISA-Busses und damit auch des Hostbusses übernehmen wird, geht die Steuerung vom Zustand RIDLE zu Zustand MIDLE, so daß die nächste Prozessor-Speicheroperation ein Anfangszyklus sein wird.
  • Ein RAS-Vorladungszeitpfad wird in der Zustandsmaschine für Seitenverpassen-Operationen vom Zustand RIDLE bereitgestellt. Wenn der Prozessor 20 nicht im Halt ist, eine Speicheroperation beginnt, wie durch das Signal SMEMGO angezeigt, die Operation kein Seitentreffer ist und die Operation entweder ein Schreibvorgang oder kein Cachetreffer ist, geht die Steuerung vom Zustand RIDLE zu Zustand P0. Die Steuerung geht dann bei aufeinanderfolgenden ansteigenden Flanken von CLK1 vom Zustand P0 zu Zustand P1 und Zustand P2, um die RAS-Vorladungszeit bereitzustellen. Wenn es eine Leseoperation ist, geht die Steuerung vom Zustand P2 zu Zustand RR0, während, wenn es eine Schreiboperation ist, die Steuerung vom Zustand P2 zu Zustand WR0 geht. Somit werden drei Zustände P0, P1 und P2 bereitgestellt, um die RAS-Vorladungszeit für die Speichereinheiten zu berücksichtigen.
  • Die verschiedenen Zustände der Zustandsmaschine werden in Verbindung mit anderen Schaltkreisen benutzt, um die Puffer- und Latchfreigabeund -torsteuersignale und die an die Speichereinheiten angelegten Reihenadressen- und Spaltenadressen-Strobesignale zu erzeugen. Die allgemeine Anordnung in der bevorzugten Ausführung soll diese kombinatorischen und sequentiellen Operationen in programmierbaren Arraylogik- (PAL) Einheiten ausführen.
  • Die an die Speichereinheiten angelegten Reihenadressen-Strobesignale werden von zwei PAL-Einheiten 300 und 302 erzeugt. Die ERAS-PAL 300 erzeugt die Signale /RASA und /RASB für die zwei Speicherbänke während des asynchronen Betriebs, und die PRAS-PAL 302 erzeugt die Signale /RAS und /RASB während der Prozessorzyklen. Außerdem erzeugt die PRAS-PAL 302 das Signal /INVMA00, das beim Vorbestimmen der Adresse des zweiten Vierfachwortes benutzt wird, das während der Burstzyklen des Prozessors zu erlangen ist. Die durch die ERAS-PAL 300 erzeugten Signale /RASA und /RASB werden durch das Signal HHLDA freigegeben, das hoch ist, wenn der Prozessor 20 im Halt ist, und das tief ist, wenn der Prozessor aktiv ist. Die Signale RASA und RASB und ein als STARTHO bezeichnetes Signal werden mit Hilfe der folgenden Gleichung entwickelt:
  • Die Signale START, CMD, MWTC, MRDC und REFRESH sind die, die auf dem EISA-Bus bereitgestellt werden. Das Signal SYSTEM ist ein durch den Speicherzuordner 38 bereitgestelltes Signal, das anzeigt, daß die Speicheroperation durch in der Systemspeicheranordnung 50 gelegene Speichereinheiten auszuführen Ist. Das Signal EMSTR16 ist ein durch die Bussteuerung 34 bereitgestelltes Signal, das anzeigt, daß ein ISA- Master die Signale mit Rücksicht auf einen EISA-Master oder die in der ISP 46 gelegenen DMA-Steuerung liefert. Das Signal BCLDK30 ist eine um 30 ns verzögerte Version des Signals BCLK und wird vorzugsweise mit einer Verzögerungsleitung erzeugt. Das Signal RASAD30 ist ähnlich eine Version des Signals RASA, das durch eine Verzögerungsleitung 304 um 30 ns verzögert wird. Das Signal STARTHD wird benutzt, um ein Signal zu erzeugen, das den Signalen RASA und RASB erlaubt, über das Signal START bis zum Übergang des Signals CMD stabilzu sein. In den RASA- und RASB-Gleichungen für die ERAS-PAL 300 wird das erste Glied benutzt, um das Signal für EISA-Master einzuleiten, das zweite Glied wird benutzt, um das Signal START bis zum Übergang des Signals CMD aufrechtzuerhalten, und das dritte Glied wird benutzt, um das Signal bis zum Ende des Signals CMD zu halten. Die vierten und fünften Glieder werden benutzt, wenn ein ISA-Master die Steuerung des Busses besitzt. Das letzte Glied wird für Auffrischungsoperationen benutzt. Es wird bemerkt, daß das RASB-Auffrischungsglied eine Phase besitzt, die etwas später als das RASA-Glied beginnt, um von den Speichereinheiten im Systemspeicher 50 erzeugte Stromspitzen zu reduzieren. Die ERAS-PAL 300 erzeugt außerdem ein als /EXFRC bezeichnetes Signal, dessen Gleichung wie folgt ist:
  • Diese Gleichung zeigt an, daß ein EISA-Zyklus begonnen hat oder ein Burstzyklus im Gange ist.
  • Wenn das Signal HHLDA tief ist, um anzuzeigen, daß der Prozessor 20 die Steuerung des Busses besitzt, werden die Signale /RASA und /RASB von der PRAS-PAL 302 erzeugt. Dies ist, weil das Signal HHDLA mit dem invertierten Ausgabe-Freigabeeingang der PAL 302 verbunden ist. Es wird vermerkt, daß die PAL 302 eine registrierte PAL ist, d.h. sie enthält Flipflops. Das Signal CLK1 wird an den taktenden Eingang der PAL 302 als der taktende Eingang für die verschiedenen Flipflops angelegt. Die Gleichungen für die Erzeugung der Signale RASA und RASB in der PAL 302 sind wie folgt.
  • Das Signal /SMEMG0 ist ein Signal, das, wenn tief, anzeigt, daß ein Speicherzyklus beginnen sollte, und seine Erzeugung wird später beschrieben. Das Signal RHDIT wird von einer weiteren PAL erzeugt, und ist ein Anzeichen, daß ein Cachespeicher-Lesetreffer eingetreten ist. Das Signal PHIT ist ein Anzeichen, daß ein Seitentreffer in den Speichereinheiten eingetreten ist und somit kein Reihenzugriff und keine Reihenadressierung durchgeführt werden müssen. Das Signal /XHLDA zeigt an, daß der Prozessor 20 in einem Haltezustand ist, wie durch entweder eine durch das Signal HLDA bestätigte HOLD-Signalanforderung oder ein geltend gemachtes Adressenhalte- oder AHOLD-Signal angezeigt. Die PRAS-PAL 302 hat fünf Eingangssignale MS< 4-0> , die, wenn decodiert, die verschiedenen Zustände der Zustandamaschine bilden. Die Zustandsidentifizierungen sind zur Klarheit in den Gleichungen benutzt worden.
  • Das Signal /INVMA00 wird ebenfalls in der PRAS-PAL 302 erzeugt. Die Gleichung für dieses Signal ist wie folgt:
  • In einer ähnlichen Weise werden die Signale /CASA< 3-0> und /CASB< 3-0> von einer ECAS-PAL 306 und einer PCAS-PAL 308 erzeugt. Die ECAS-PAL 306 wird wieder während asynchroner Operationen basierend auf dem Hochzustand des Signals HHLDA benutzt, und die PCAS-PAL 308 treibt die Leitungen, wenn das Signal HHLDA tief ist, was anzeigt, daß der Prozessor die Steuerung des Busses besitzt. Die Gleichungen für die Signale /CASA< 3-0> und /CASB< 3-0> , wie von der ECAS-PAL 306 erzeugt, sind wie folgt:
  • Das Signal DRAS60 wird als der Ausgang eines Zweieingang-ODER-Gatters 310 erzeugt, dessen Eingänge das Signal /RASA und eine Version des Signals /RASA sind, das durch eine Verzögerungsleitung 312 um 60 ns verzögert wird. Das Signal LW-R ist eine gespeicherte Version des auf dem EISA-Bus vorhandenen Signals W-R und wird benutzt, um den Status der Lese und Schreiboperationen während des gesamten Zyklus anzuzeigen. Der Kleinbustabe n in den Gleichungen deutet an, daß die Gleichung für den geeigneten Bytepfad oder die Bitposition in den Signalen /CASA< 3-0> ist, die auf dem zugehörigen Signal /LBE< 3-0> beruhen. Das L in dem Signal /LBE< 3-0> zeigt an, daß dies eine gespeicherte Version des Byte-Freigabesignals ist, so daß diese Werte während des ganzen Zyklus bleiben können. Das Signal LLA02 ist eine gespeicherte Version des Signals LA< 2> , das der Adressenwert der Bitposition 2, wie auf dem EISA-Bus vorhanden, ist. Dieses Signal wird benutzt, um zwischen den Bänken A und B des Systemspeichers 50 umzuschalten, wie durch die zwei Sätze von Gleichungen zu sehen ist. Das Signal /EXFR wird durch den nichtinvertierten Ausgang eines D-Flipflops 314 erzeugt, dessen D- Eingang mit dem Signal /EXFRC verbunden ist, und dessen Takteingang mit dem Signal BCLK verbunden ist. Das erste Glied der Gleichung startet das Signal /CAS für EISA-Lesezyklen, das zweite Glied setzt es über die ansteigenden und abfallenden Flanken des Signals BCLK fort, und das dritte Glied setzt das Signal zwischen den Übergängen des Signals BCLK fort. Das vierte Glied wird für EISA-Schreibvorgänge benutzt, während das fünfte Glied für ISA-Master benutzt wird.
  • Die Signale /CASA< 3-0> und /CASB< 3-0> werden ebenfalls durch die PCAS- PAL 308 erzeugt, wenn der Prozessor die Steuerung des Busses besitzt. Die zum Entwickeln dieser Signale benutzten Gleichungen sind wie folgt:
  • Das Signal /BLAST zeigt an, daß der Burstzyklus nicht zu Ende geht, während das Signal HWP ein Schreibschutzsignal ist, das durch den Speicherzuordner 38 erzeugt wird und für den Schreibschutz von gewünschten Bereichen benutzt wird. Die Signale HBE, die für den einzelnen Bytepfad, wie durch den Kleinbuchstaben n angezeigt, geeignet sind, sind die auf dem Hostbus vorhandenen Byte-Freigabesignale. Das Signal HA02 ist das Signal der Bitposition 2 auf dem Host-Adressenbus HA. Die PCAS-PAL 308 wird durch das Signal CLK1 getaktet und ist eine registrierte Konstruktion, die dem synchronen Teil der Speichersteuerung 48 zu arbeiten erlaubt. Die PCAS-PAL 308 umfaßt als Eingänge auch die Signale MS< 4-0> , aber die Zustände werden in der Gleichung wieder nicht gezeigt.
  • Außerdem werden verschiedene PALs benutzt, um die Puffer- und Latchsteuersignale zu erzeugen. Die erste dieser PALs ist die POUT-PAL 320 (Fig. 5). Die POUT-PAL 320 ist eine registrierte PAL mit internen Flipflops, die durch das Signal CLK1 getaktet werden. Der invertierte Ausgabe-Freigabeeingang der POUT-PAL 320 ist mit dem Signal HHLDA verbunden, so daß, wenn der Prozessor aktiv ist, d.h. das Signal HHLDA tief ist, die POUT-PAL 320 die Ausgangssignale treibt. Die Gleichungen der verschiedenen durch die POUT-PAL 320 erzeugten Signale sind wie folgt.
  • Das Signal IOPOST wird als ein Ausgang der POST-PAL 322 (Fig. 1) entwickelt, wie später erörtert werden wird. Das Signal CA02 ist eine gespeicherte Version der Bit-2-Position des Prozessor-Adressenbusses PA. Die Signale MS< 4-0> wurden an die POUT-PAL 320 zur Zustandsbestimmung angelegt. Die Signale /MDHDOEA und /MDHDOEB sind ähnlich, außer für den Zustand des Signals CA02, so daß die Ausgänge der Latches 58 und 58 in einer abwechselnden Folge freigegeben werden.
  • Zwei PALs 324 und 328, die PALs EOUT1 und EOUT2, werden benutzt, um diese Puffer- und Latchsteuersignale für asynchrone Operationen zu erzeugen. Das Signal HHLDA ist ein Eingang für sowohl die PAL EOUT1 324 als auch die PAL EOUT2 326, um die Ausgänge zu steuern. Wenn das Signal HHLDA hoch ist, um anzuzeigen, daß der Prozessor die Steuerung des Busses nicht besitzt, treiben die asynchronen PALs EOUT1 324 und EOUT2 328 die Leitungen und werden abgeschaltet, oder hochohmig gemacht, wenn das Signal HHLDA tief ist. Die Gleichung für die Logik in der EOUTI-PAL 324 ist wie folgt:
  • Die Latches 56 und 58 werden daher während asynchroner Operationen immer von dem Speicher-Datenbus MD In den Host-Datenbus HD getaktet, und die Ausgänge werden während der Datentelle von Schreiboperationen von den Latches 56 und 58 an den Systemspeicher 50 freigegeben.
  • Die EOUT2-PAL 326 erzeugt die Signale /MUXRAS, /MUXCAS, /MDHDOEB und MDHDOEA zur Verwendung durch die Puffer und Latches und erzeugt außerdem das Signal IMWE, das an die Schreib-Freigabeeingänge der Speichereinheiten des Systemspeichers 50 angelegt wird. Die in der EOUT2- PAL 326 entwickelten Gleichungen sind wie folgt:
  • Die Hochohmig-Steuerungen der vier Puffer- und Latchsignale werden durch das Signal HHLDA entwickelt, während das Signal /MWE immer durch die EOUT2-PAL 326 für sowohl synchrone als auch asynchrone Zyklen getrieben wird. Das Signal LHWP ist eine gespeicherte Version des von dem Speicherzuordner 36 erzeugten Schreibschutzsignals. Das erste Glied der MWE-Signalgleichung wird für synchrone Zyklen des Prozessors bereitgestellt, während das zweite Glied für asynchrone Zyklen des EISA-Busses 44 oder der ISP 46 bereitgestellt wird. Das dritte Glied wird bereitgestellt, so daß Lese/Modifizier/Schreib-Zyklen von den Speichereinheiten nicht ausgeführt werden, und die letzten zwei Glieder werden zur Störspitzenbeseitigung bereitgestellt.
  • Eine Anzahl anderer PALs wird benutzt, um einige der Signale zu erzeugen, die benötigt werden, um die Latches 56 und 58 zu treiben, und Signale, die durch die vorangehend beschriebenen PALs benutzt werden. Die CA23-PAL 328 erzeugt das Signal /MA00, das das niedrigstwertige Bit der Speicheradresse ist. Dieses Signal wird durch eine PAL 328 erzeugt, weil während Burstoperationen, wie in Zyklus 1 in Fig. 1 gezeigt, der bevorzugte Prozessor 20 eine vorhersagbare Adressenerzeugung besitzt. Es ist möglich, das zweite, dritte und vierte Doppelwort ohne Bezug auf die vom Prozessor 20 tatsächlich vorgelegten Adressen später zu erzeugen. Dies erlaubt es, Daten bei einer früheren Zeitperiode einfacher zu erlangen, wodurch Burstleseoperationen mit Null-Wartezustand nach dem ersten Lesen möglich sind. Die in der CA23-PAL 328 implementierte Gleichung ist wie folgt:
  • Das Signal HAMACLE wird benutzt, um die Spaltenadressen in dem Latch 52 zu speichern, und wird als der Ausgang einer MISCELLANEOUS-PAL 330 bereitgestellt. Die Signale HA< 3> und HA< 12> sind die jeweiligen Bits in dem Host-Adressenbus HA. Das erste Glied der Gleichung wird für normale Spaltenzugriffe vom Prozssor 20, vom EISA-Bus 44 oder von der ISP 46 benutzt. Das zweite Glied wird beim Holen des zweiten Vierfachwortes für Burstoperationen des Prozessors 20 benutzt. Das dritte Glied wird während des Anlegens von Reihenadressen an die Speichereinheiten benutzt, während das vierte Glied benutzt wird, um die Speicheradresse während der Zugriffe des EISA-Busses 44 oder der ISP 48 zu speichern. Das letzte Glied wird zur Störspitzenbeseitigung bereitgestellt. Das niedrigstwertige Bit kann daher für den Fall von CPU- Burstleseoperationen, wie sie bei Cachezeilenfüllungen ausgeführt werden, früh vorhergesagt und entwickelt werden.
  • Eine weitere, als CHIT-PAL 334 bezeichnete PAL, erzeugt das Signal /RDHIT, das von dem synchronen Teil der Speichersteuerung 48 benutzt wird, um festzustellen, ob ein Cachelesetreffer stattgefunden hat. Die Gleichungen in der CHIT-PAL 334 sind wie folgt:
  • Das Signal MATCH wird von der Cachesteuerung 28 basierend auf von dem Oschemarken-RAM 24 bereitgestellten Signalen erzeugt und ist hoch, wenn die vom Prozessor 20 vorgelegten Adressen mit denen, die in dem Cachemarken-RAM 24 gespeichert sind, übereinstimmen. Das Signal GT256M zeigt an, daß die vom Prozessor 20 angeforderte Adresse größer als 256 Mbyte ist, der Grenze des Speichers, der in dem Computersystem der bevorzugten Ausführung für Zwischenspeicherungszwecke adressierbar ist. Das Signal PW-R ist das Signal WRITE&submin;READ wie vom Prozessor 20 geliefert. Das Signal LNFILL zeigt an, daß der Prozessor 20 eine interne Cachezeilenfüllung anfordert, und ist eingeschlossen, weil es nach dem ersten Teil einer Cachezeilenfüllung ein falsches Cache-Übereinstimmungssignal geben kann. Das Lesetreffersignal ist daher hoch, wenn die Adresse kleiner als 256 Mbyte ist, es eine Leseoperation ist, eine übereinstimmende Adresse vorhanden ist und keine Zeilenfülloperation ausgeführt wird.
  • Das Signal /SMEMGO wird von der MEMGO-PAL 332 erzeugt. Die SMENGO- Signalgleichung ist wie folgt:
  • Das Signal T2A ist ein Anzeichen des Zustandes des Prozessors 20 und zeigt an, daß entweder ein Nicht-Burst-Speicherzyklus beginnt oder dies der erste Zyklus in einem Burstzyklus ist. Wenn ein Speicherzyklus, wie durch den Prozessor 20 angezeigt, begonnen wird, es wirkklich ein Speichersignal ist, wie durch das Signal HN/IO bezeichnet, und es an einen in der Systemspeicheranordnung 50 gelegenen Speicher gerichtet ist, ist daher das Signal SMEMGO für einen Zyklus des Signals CLK1 aktiv.
  • Die POST-PAL 322 erzeugt das Signal PAHALE, das benutzt wird, um die Daten des Host-Datenbusses HD in den Latches 56 und 58 zu speichern, und erzeugt das Signal IOPOST, das von der POUT-PAL 320 benutzt wird. Die Gleichungen für die zwei Signale sind wie folgt:
  • Das Signal HM-IO ist das auf dem Hostbus vorhandene Signal M-IO und zeigt an, ob eine Speicher- oder E/A-Operation stattfindet. Das Signal HD-C ist das auf dem Hostbus vorhandene Datencodesignal und zeigt an, ob eine Daten- oder Codeoperation ausgeführt wird. Das Signal DEC8259 ist ein Signal, das bedeutet, daß bestimmte Adressen der in der ISP 46 gelegenen Unterbrechungssteuerung adressiert worden sind. Dieses Glied ist vorhanden, weil diese einzelnen Adressen nicht bekanntgegeben werden. Das Signal HERDY0 ist ein von der Bussteuerung 34 erzeugtes Signal und ist der Früh-Bereit-Ausgang der Bussteuerung 34, um anzuzeigen, daß die Einheiten bereit sind. Das Signal EMWRDY ist ein ähnliches Frühschreibbereit-Signal, das von der Speichersteuerung 48 erzeugt wird. Diese zwei Signale werden erzeugt, um anderen Systemkomponenten Zeit zu geben, sich auf das Ende des Zyklus vorzubreiten. Es wird bemerkt, daß die Signale IOPOSTD, PAHALE und POST aus Flipflops in der POST-PAL 322 entwickelt werden. Das Taktsignal für diese Flipflops wird durch das Signal CLK1 bereitgestellt.
  • Die MISCELLANEOUS-PAL 330 wird benutzt, um die Signale /STRETCH und /HAMACLE zu erzeugen. Das Signal /STRETCH wird benutzt, um während asynchroner Operationen die Zykluserweiterung des Signals CLK1 zu erzeugen, und wird an die Bussteuerung 34 angelegt. Das Signal HAMACLE wird benutzt, um während asynchroner Operationen die Spaltenadressen im Latch 52 zu speichern. Während synchroner Operationen bleiben sowohl das Signal /STRETCH als auch das Signal /HAMACLE auf einem hohen Pegel. Die Gleichungen für die in der MISCELLANEOUS-PAL 330 gelegene Logik ist wie folgt:
  • Die MISCELLANEOUS-PAL 330 ist eine registrierte Konstruktion, die Flipflops enthält, wobei das Signal CLK1 den Takteingang dieser Flip- flops liefert. Das Signal LSYSMEM ist eine gespeicherte Version des Signals SYSMEM, während das Signal LM-IO eine gespeicherte Version des auf dem Hostbus vorhandenen Signals M-IO ist. Die Signale SBCLK und SBCLKD werden in Fig. 3 gezeigt. Es gibt Teile jedes Signals, wo kein gültiger Zustand gewährleistet ist, was durch das Vorhandensein. hoher und tiefer Pegel angezeigt wird. Dieser Zustand ergibt sich, weil die Abfallzeit des Signals BCLK verglichen mit der ansteigenden Flanke des Signals CLK1 so ist, daß nicht sichergestellt werden kann, daß das Signal BCLK sich in einem gegebenen Zustand befinden wird. Dieser Zustand kann deshalb als eine Unbekannte betrachtet werden und wird folglich sowohl mit dem hohen als auch dem tiefen Signalpegel gezeigt. Das Signal PHLDA ist das um zwei CLK1-Signalzyklen verzögerte Signal XHLDA.
  • Die vorangehende Offenbarung und Beschreibung der Erfindung sind veranschaulichend und erklärend, und verschiedene Änderungen in der Größe, der Form, dem Material, den Komponenten, den Schaltkreisen, den Leitungsverbindungen und Kontakten sowie in den Einzelheiten der dargestellten Schaltungen, der Konstruktion und des Betriebsverfahrens können vorgenommen werden, ohne vom Umfang der Erfindung, wie in den Ansprüchen definiert, abzuweichen.

Claims (5)

1. Computersystem, wobei das System umfaßt:
einen Mikroprozessor (20), der Adressen-, Daten- und Steuersignale gemaß einer ersten Konvention bereitstellt;
eine Bussteuereinrichtung (34), die Adressen-, Daten- und Steuersignale gemäß einer zweiten Konvention bereitstellt;
einen Bus (44), der Adressen-, Daten- und Steuersignale befördert;
eine Einrichtung (40, 42), die die Mikroprozessorsignale zu bestimmten Perioden mit dem Bus verbindet und zu anderen Perioden die Signale der Bussteuereinrichtung mit dem Bus verbindet;
eine Speichereinrichtung (50) mit Adressen- und Steuereingängen und Datenleitungen;
eine Einrichtung (52, 54, 56, 58), die die Adresseneingänge und Datenleitungen der Speichereinrichtung mit dem Bus verbindet;
eine Speichersteuereinrichtung (48), die mit dem Bus, den Steuereingängen der Speichereinrichtung und der Verbindungseinrichtung der Speichereinrichtung verbunden ist und die Speichereinrichtung steuert, um Daten zu geeigneten Zeiten für sowohl die erste als auch die zweite Konvention zu speichern und bereitzustellen, wobei die Speichersteuereinrichtung (48) einen synchronen Teil umfaßt, der benutzt wird, wenn der Mikroprozessor mit dem Bus verbunden ist, sowie einen asynchronen Teil, der benutzt wird, wenn die Bussteuereinrichtung mit dem Bus verbunden ist.
2. Computersystem nach Anspruch 1, bei dem der Mikroprozessor und die Speichersteuereinrichtung je einen Taktsignaleingang aufweisen, wobei das Computersystem weiter umfaßt:
ein Taktsignal, das mit dem Mikroprozessor und der Speichersteuereinrichtung verbunden ist.
3. Computersystem nach Anspruch 2, bei dem der synchrone Teil der Speichersteuereinrichtung (48) eine Zustandsmaschine umfaßt und die Zustandsmaschine durch das Taktsignal vorgerückt wird.
4. Computersystem nach Anspruch 3, bei dem die Verbindungseinrichtung der Speichereinrichtung einen Puffer (54) mit einem Ausgabe-Freigabeeingang und eine Mehrzahl von Latches (56, 58) mit Ausgabe-Freigabeeingängen umfaßt, und bei dem die Speichersteuereinrichtung Signale an die Ausgabe-Freigabeeingänge liefert.
5. Computersystem nach Anspruch 4, bei dem der synchrone Teil der Speichersteuereinrichtung eine Mehrzahl dieser Ausgabe-Freigabesignale auf der Basis des Zustandes der Zustandsmaschine liefert.
DE69028066T 1989-11-03 1990-10-17 Kombinierte synchrone und asynchrone Speichersteuerung Expired - Lifetime DE69028066T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/431,656 US5218686A (en) 1989-11-03 1989-11-03 Combined synchronous and asynchronous memory controller

Publications (2)

Publication Number Publication Date
DE69028066D1 DE69028066D1 (de) 1996-09-19
DE69028066T2 true DE69028066T2 (de) 1997-02-20

Family

ID=23712877

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69028066T Expired - Lifetime DE69028066T2 (de) 1989-11-03 1990-10-17 Kombinierte synchrone und asynchrone Speichersteuerung

Country Status (4)

Country Link
US (1) US5218686A (de)
EP (1) EP0426329B1 (de)
CA (1) CA2027947A1 (de)
DE (1) DE69028066T2 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2511146B2 (ja) * 1989-07-07 1996-06-26 富士通株式会社 デ―タ処理装置
DE69123987T2 (de) * 1990-01-31 1997-04-30 Hewlett Packard Co Stossbetrieb für Mikroprozessor mit externem Systemspeicher
JPH04230508A (ja) * 1990-10-29 1992-08-19 Internatl Business Mach Corp <Ibm> 低電力消費メモリ装置
US5265216A (en) * 1991-06-28 1993-11-23 Digital Equipment Corporation High performance asynchronous bus interface
US5345573A (en) * 1991-10-04 1994-09-06 Bull Hn Information Systems Inc. High speed burst read address generation with high speed transfer
US5576554A (en) * 1991-11-05 1996-11-19 Monolithic System Technology, Inc. Wafer-scale integrated circuit interconnect structure architecture
EP0541288B1 (de) * 1991-11-05 1998-07-08 Fu-Chieh Hsu Redundanzarchitektur für Schaltungsmodul
US5831467A (en) * 1991-11-05 1998-11-03 Monolithic System Technology, Inc. Termination circuit with power-down mode for use in circuit module architecture
US5498990A (en) * 1991-11-05 1996-03-12 Monolithic System Technology, Inc. Reduced CMOS-swing clamping circuit for bus lines
US5448714A (en) * 1992-01-02 1995-09-05 Integrated Device Technology, Inc. Sequential-access and random-access dual-port memory buffer
EP0654168B1 (de) * 1992-08-10 2001-10-31 Monolithic System Technology, Inc. Fehlertolerantes hierarchisiertes Bussystem
CA2118662C (en) * 1993-03-22 1999-07-13 Paul A. Santeler Memory controller having all dram address and control signals provided synchronously from a single device
US5444857A (en) * 1993-05-12 1995-08-22 Intel Corporation Method and apparatus for cycle tracking variable delay lines
US5813028A (en) * 1993-10-12 1998-09-22 Texas Instruments Incorporated Cache read miss request invalidation prevention method
US5611072A (en) * 1993-10-12 1997-03-11 Texas Instruments Incorporated Cache with an extended single cycle read/write system and method
GB2283596B (en) * 1993-11-01 1998-07-01 Ericsson Ge Mobile Communicat Multiprocessor data memory sharing
US5729709A (en) * 1993-11-12 1998-03-17 Intel Corporation Memory controller with burst addressing circuit
JPH07175728A (ja) * 1993-12-20 1995-07-14 Hokkaido Nippon Denki Software Kk ディスクキャッシュデータ保全方式
US5544334A (en) * 1993-12-22 1996-08-06 International Business Machines Corporation Micro channel bus computer system with IDE hard drive interface
US5692189A (en) * 1994-07-05 1997-11-25 Microsoft Corporation Method and apparatus for isolating circuit boards in a computer system
US5655113A (en) * 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
WO1996002036A1 (en) * 1994-07-07 1996-01-25 Elonex Technologies, Inc. Micro personal digital assistant
US5652915A (en) * 1995-02-21 1997-07-29 Northern Telecom Limited System for controlling mode of operation of a data cache based on storing the DMA state of blocks by setting the DMA state to stall
JP4341043B2 (ja) * 1995-03-06 2009-10-07 真彦 久野 I/o拡張装置,外部記憶装置,この外部記憶装置へのアクセス方法及び装置
US5916311A (en) * 1996-03-27 1999-06-29 Matsushita Electric Industrial Co., Ltd. Bus controller and information processing device providing reduced idle cycle time during synchronization
US6209071B1 (en) * 1996-05-07 2001-03-27 Rambus Inc. Asynchronous request/synchronous data dynamic random access memory
US6047361A (en) * 1996-08-21 2000-04-04 International Business Machines Corporation Memory control device, with a common synchronous interface coupled thereto, for accessing asynchronous memory devices and different synchronous devices
US6263448B1 (en) 1997-10-10 2001-07-17 Rambus Inc. Power control system for synchronous memory device
DE69919992T2 (de) * 1999-06-09 2005-01-20 Texas Instruments Inc., Dallas Verteilter Speicher mit programmierbarer Grösse
US6871251B1 (en) * 2000-05-17 2005-03-22 Marvell International Ltd. High latency interface between hardware components
US7389374B1 (en) 2000-05-17 2008-06-17 Marvell International Ltd. High latency interface between hardware components
US6421280B1 (en) * 2000-05-31 2002-07-16 Intel Corporation Method and circuit for loading data and reading data
US7281065B1 (en) 2000-08-17 2007-10-09 Marvell International Ltd. Long latency interface protocol
CA2316590A1 (en) * 2000-08-23 2002-02-23 Celestica International Inc. System and method for using a synchronous device with an asynchronous memory controller
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US7149824B2 (en) * 2002-07-10 2006-12-12 Micron Technology, Inc. Dynamically setting burst length of memory device by applying signal to at least one external pin during a read or write transaction
US7213084B2 (en) * 2003-10-10 2007-05-01 International Business Machines Corporation System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US8478947B2 (en) * 2005-07-05 2013-07-02 Arm Limited Memory controller
US7349258B2 (en) * 2005-12-06 2008-03-25 Sandisk Corporation Reducing read disturb for non-volatile storage
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
EP2519887A1 (de) * 2010-06-17 2012-11-07 Hitachi, Ltd. Speichersystem mit mehreren mikroprozessoren und verfahren zur geteilten verarbeitung in dem speichersystem
US9830086B2 (en) * 2016-03-03 2017-11-28 Samsung Electronics Co., Ltd. Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3999163A (en) * 1974-01-10 1976-12-21 Digital Equipment Corporation Secondary storage facility for data processing systems
US4292669A (en) * 1978-02-28 1981-09-29 Burroughs Corporation Autonomous data communications subsystem
US4615017A (en) * 1983-09-19 1986-09-30 International Business Machines Corporation Memory controller with synchronous or asynchronous interface
US4937777A (en) * 1987-10-07 1990-06-26 Allen-Bradley Company, Inc. Programmable controller with multiple task processors

Also Published As

Publication number Publication date
DE69028066D1 (de) 1996-09-19
EP0426329B1 (de) 1996-08-14
CA2027947A1 (en) 1991-05-04
US5218686A (en) 1993-06-08
EP0426329A1 (de) 1991-05-08

Similar Documents

Publication Publication Date Title
DE69028066T2 (de) Kombinierte synchrone und asynchrone Speichersteuerung
DE3889366T2 (de) Interface für ein Rechnersystem mit reduziertem Befehlssatz.
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE69124905T2 (de) Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE19882418B4 (de) System einer quellensynchronen Schnittstelle zwischen Master- und Slave-Einrichtungen und zugehöriges Verfahren
DE19847642C2 (de) PCI-PCI-Brücke
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE68923944T2 (de) RAM mit doppelten Ein/Ausgängen.
DE3887324T2 (de) Speicheranordnung.
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE68923403T2 (de) Verfahren und Anordnung zur Adressierung eines Seitenmodus-Speichers in einem Computersystem.
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE69020220T2 (de) Direktspeicherzugriff zwischen unterschiedlichen Bussystemen mit Cachespeicherübereinstimmung.
DE69636452T2 (de) Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus
DE69021594T2 (de) Hochgeschwindigkeitsdatenübertragung auf einem Rechnersystembus.
DE4132833A1 (de) Hierarchischer schaltungsintegrierter cache-speicher
CH619309A5 (de)
DE3885985T2 (de) Speichersteueranordnung für ein Daten verarbeitendes System.
DE3784368T2 (de) Datenprozessor mit wartesteuerung, die hochgeschwindigkeitszugriff gestattet.
DE19828620A1 (de) Während des Betriebs aufteilbarer Computerbus für einen verbesserten Betrieb mit sich ändernden Bustaktfrequenzen
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition