DE3909896C2 - - Google Patents

Info

Publication number
DE3909896C2
DE3909896C2 DE3909896A DE3909896A DE3909896C2 DE 3909896 C2 DE3909896 C2 DE 3909896C2 DE 3909896 A DE3909896 A DE 3909896A DE 3909896 A DE3909896 A DE 3909896A DE 3909896 C2 DE3909896 C2 DE 3909896C2
Authority
DE
Germany
Prior art keywords
memory
data
address
bus
page
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
DE3909896A
Other languages
English (en)
Other versions
DE3909896A1 (de
Inventor
Patrick Maurice Bland
Mark Edward Delray Beach Fla. Us Dean
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3909896A1 publication Critical patent/DE3909896A1/de
Application granted granted Critical
Publication of DE3909896C2 publication Critical patent/DE3909896C2/de
Granted 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
    • G11C7/1021Page serial bit line access mode, i.e. using an enabled row address stroke pulse with its associated word line address and a sequence of enabled column address stroke pulses each with its associated bit line address
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Dram (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Memory System (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Bus Control (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren nach dem Oberbegriff des Patentanspruchs 1. Insbesondere bezieht sich die Erfindung auf in Computersystemen verwendete Speicher und auf den Zugriff zu Daten, die in derartigen Speichern gespeichert sind.
Der Gegenstand des Patentanspruchs 1 geht in seinem Oberbegriff von einem Stand der Technik aus, wie er beispielsweise aus der US-Zeitschrift "Computer Design" vom 01. Nov. 1985, Seiten 69 bis 74 oder der Firmenschrift der Siemens AG, Datenblatt HYB 514 256 vom März 1988, insbesondere Seite 439 bekannt ist.
Die Ansprüche an Computersysteme, noch größere Verarbeitungsgeschwindigkeiten, erhöhte tatsächliche Verarbeitungsleistungen und größere Gesamtleistungen zu erreichen, steigen. Eine Entwicklung bestand darin, die Taktfrequenz der Zentraleinheit (CPU) des Computers zu erhöhen. Daraus ergibt sich natürlich eine größere Anzahl von pro Zeiteinheit verarbeiteten Instruktionen. Jedoch muß mit der Erhöhung der Taktfrequenz die Zugriffszeit in Verbindung mit Speichern irgendwie entsprechend gekürzt werden, um den gesamten Vorteil der Taktfrequenzerhöhung zu erhalten. Andernfalls stellt die Zugriffszeit in Verbindung mit dem Lesen von Daten aus dem Speicher einen wesentlichen beschränkenden Faktor dar, der die tatsächliche Leistung der CPU einschränkt.
Ein Weg, die tatsächliche, für das Lesen von Daten aus dem Speicher erforderliche Zugriffszeit zu verringern, ist die Verwendung von Seitenspeichern. Dies bedeutet, daß der Speicher in eine Vielzahl von Seiten aufgeteilt ist, wobei jede Seite aus Zeilen besteht, die eine gemeinsame Zeilenadresse für jede Zeile besitzen. Jede Zeile einer Seite enthält eine Vielzahl von Spalten, die entsprechende Spaltenadressen haben. Für den Zugriff auf einen bestimmten, in einem solchen Seitenspeicher gespeicherten Datensatz wird der Speicher mit der Zeilenadresse dieser Daten versorgt, um dadurch die Auswahl derjenigen Seite in dem Speicher zu ermöglichen, wo sich die Daten befinden. Danach wird der Speicher mit der zu den Daten gehörigen Spaltenadresse versorgt, um dadurch die Auswahl des bestimmten Datensatzes innerhalb der adressierten Zeile oder Seite zu ermöglichen. Normalerweise werden dann die adressierten Daten auf den Datenbus ausgelesen. Ein Beispiel für einen Seitenspeicher ist in dem IBM Personal System/2, Modell 80-Rechner vorhanden. (Personal System/2 ist ein Warenzeichen der International Business Machines Corporation.) Ein vereinfachtes Blockschaltbild, das ein Computersystem mit einem solchen Seitenspeicher allgemein darstellt, ist in der Fig. 1 als System 10 gezeigt. Das System 10 enthält eine Zentraleinheit (CPU) 20 oder einen Mikroprozessor, an den ein Adreßbus 30 und ein Datenbus 40 angeschlossen sind. Das System 10 enthält desweiteren eine Speicher­ verwaltung 40, an die der Adreßbus 30 und der Datenbus 40 angeschlossen sind. Ein Steuerbus 60 ist derart zwischen die CPU 20 und die Speicherverwaltung 50 geschaltet, daß Steuersignale in beide Richtungen zugeführt werden können. Die Speicherverwaltung 50 ist an wenigstens eine Speichereinheit 70 angeschlossen, die aus einem Speicher mit wahlfreiem Zugriff (RAM) besteht. Im vorliegenden Beispiel ist die Speicher­ einheit 70 in Seiten unterteilt, die 2K Bytes lang sind (512×32 plus parity), wobei jede Seite per Definition dieselbe Zeilenadresse besitzt. Jede Seite enthält somit 2 K Spaltenadressen. Ein Datenbus 80 ist zwischen die Speicherverwaltung 50 und die Speichereinheit 70 geschaltet, um den Datentransfer zwischen diesen Elementen zu ermöglichen.
Ein Multiplex-(HUX)-Adreßbus 90 ist derart zwischen die Speicherverwaltung 50 und die Speichereinheit 70 geschaltet, daß Reihen- und Spalten-Adreß-Informationen von der Speicherverwaltung 50 zu der Speichereinheit 70 zugeführt werden können. Aufgrund seiner Multiplex- Eigenschaft, bei der die Speichereinheit 70 innerhalb eines Speicherzugriffszyklusses zuerst mit einer Zeilen- oder Seitenadresse versorgt wird, und erst danach, später in dem Zyklus, eine Spaltenadresse der Speichereinheit 70 zugeführt wird, weist der Multiplex- Adreßbus 90 weniger Leitungen auf als der Adreßbus 30. Die Speicherverwaltung 50 versorgt die Speicherein­ heit 70 mit Zeilenadreß-Impulssignalen (RAS) und Spaltenadreß-Impulssignalen (CAS), wie dies aus der Fig. 1 zu entnehmen ist. Das Wesen der RAS- und CAS- Signale ist anhand der folgenden Erläuterungen zu dem Zeitdiagramm der Fig. 2 beschrieben.
Fig. 2 zeigt ein Zeitdiagramm eines typischen Speicher­ zyklusses in Verbindung mit dem Computersystem 10. Für den Zweck dieses Beispiels wird angenommen, daß die CPU 20 auf einen ersten Datensatz in einer vorgegebenen Datenadresse im Speicher 70 zugreifen oder diesen ab­ fragen will. Für den tatsächlichen Zugriff auf diese Information führt die CPU 20 die Datenadresse der Speicherverwaltung 50 zu. Die Speicherverwaltung 50 teilt die Datenadresse in zwei Bestandteile auf, näm­ lich in die Zeilenadresse (auch bekannt als Seitenadresse) und die Spaltenadresse. Die Zeilenadresse und die Spaltenadresse werden nacheinander dem Multiplex- Adreßbus 90 zugeführt. Dies bedeutet, daß die Zeilen­ adresse zuerst bei 100 diesem MUX-Adreßbus zugeführt wird. Das RAS-Signal ist ursprünglich "high" oder "off". Es sei angemerkt, daß aufgrund der verwendeten negativen Logik in dem Zeitdiagramm der Fig. 2 "high" einem "off"-Zustand zugeordnet ist und "low" einem "on"-Zustand. Das RAS-Signal geht bei 105 zu "on" über, um dadurch den momentan dem Multiplex-Adreßbus 90 zugeführten Zeilenadreßbestandteil auszuwählen. Auf diese Weise wählt die Speichereinheit 70 die bestimmte Seite (Zeile) aus, in der die adressierten Daten gespeichert sind. RAS verbleibt "on" während der Dauer des ersten Speicherzyklusses und des folgenden zweiten Speicherzyklusses.
Nachdem RAS "on" ist und die Zeilenadresse im ersten Speicherzyklus ausgewählt ist, wird der Multiplex- Adreßbus 90 bei 110 mit dem Spaltenadreßbestandteil der gewünschten Daten versorgt. Das CAS-Signal wird dann bei 115 nach "on" überführt, um dadurch den momentan dem Multiplex-Adreßbus 90 zugeführten Spaltenadreß­ bestandteil auszuwählen. In diesem Zeitpunkt ist die Adresse vollständig, da beide, der zu den gewünschten Daten entsprechende Zeilen- und Spaltenadreßbestandteil, der Speichereinheit 70 zugeführt worden sind. Die Speichereinheit 70 greift danach auf die derart adressierten Daten zu und führt diese Daten dem Speicher-Datenbus 80 zu. Die Daten auf dem Speicher- Datenbus 80 werden nach einer vorgegebenen Zeitver­ zögerung (TD), die nach der Vervollständigung und der Auswahl der Adresse bei 115 auftritt, bei 120 gültig. Der Mikroprozessor 20 übernimmt dann die adressierten Daten von dem Datenbus 40 der Fig. 1. In Fachkreisen wird der Ausdruck TCAS dazu verwendet, die Zeitver­ zögerung zu bezeichnen zwischen dem Zeitpunkt, an dem CAS aktiv wird, und dem Zeitpunkt, an dem die Daten auf dem Speicher-Datenbus 80 gültig werden. Der Ausdruck TRAS gehört zu der Zeitverzögerung zwischen dem Zeitpunkt, an dem RAS aktiv wird, und dem Zeitpunkt, an dem die Daten gültig werden. Allgemeiner wird TRAS als "Zugriffszeit" bezeichnet, die von einer bestimmten Speichereinrichtung erreicht wird. Beispielsweise er­ reicht eine Speichereinrichtung mit einer Zugriffszeit von 80 Nanosekunden ein TRAS von 80 Nanosekunden.
Für den Zweck dieses Beispiels wird angenommen, daß auf einen zweiten Datensatz in der Speichereinheit 70 zuge­ griffen werden soll, der sich in derselben Seite oder Zeile wie der obige erste Datensatz befindet. In Fach­ kreisen wird der Ausdruck "pipelining" dazu verwendet, die Art und Weise zu beschreiben, mit der die Adresse, beispielsweise der Spaltenadreßbestandteil vor dem Ende des derzeitigen Speicherzyklusses geändert wird zur Vor­ bereitung des nächsten Speicherzyklusses. "Pipelining" spart Zeit ein, da es den adreßdecodierenden Schaltungen in der Speicherverwaltung 50 erlaubt, früher die Adreß­ verarbeitung zu beginnen als es ansonsten möglich wäre. Ein Beispiel für ein derartiges "Pipelining" ist der Fig. 2 zu entnehmen, wo, nachdem die Daten bei 120 gültig geworden sind und bevor der erste Speicherzyklus bei 125 beendet ist, die Spaltenadresse bei 130 zur neuen Spal­ tenadresse geändert wird, welche zu dem zweiten Datensatz gehört. Da der zweite Datensatz, auf den im zweiten Spei­ cherzyklus zugegriffen werden soll, sich in derselben Seite befindet wie die Daten, auf die im ersten Speicherzyklus zugegriffen worden ist, ändert sich bei 130 nur der Spalten­ adreßbestandteil, während der Zeilenadreßbestandteil der­ selbe bleibt. Diese Situation wird "page hit" bezeichnet. Da es nicht notwendig ist, im Falle eines "page hit" den Zeilenadreßbestandteil nochmals zur Speichereinheit 70 zu­ zuführen, kann in einer Anordnung mit Seitenspeicherung wertvolle Zeit eingespart werden.
Bevor die Speichereinheit 70 die nunmehr auf dem Multiplex- Adreßbus 90 anliegende Spaltenadreß-Information auswäh­ len und tatsächlich verwenden kann, ist es erforderlich, das CAS-Signal für eine vorgegebene Zeitdauer "off" zu schalten, was als CAS-Aufladung 135 bezeichnet ist. In Fachkreisen wird die CAS-Aufladungszeit mit TCRP gekenn­ zeichnet. Für eine Speichereinrichtung mit einer Zugriffs­ zeit von 80 Nanosekunden wären 15 Nanosekunden ein typischer Wert für TCRP. Nachdem die CAS-Aufladung beendet ist, wird CAS bei 140 wieder nach "on" überführt, so daß der Spalten­ adreßbestandteil des zweiten Datensatzes von der Speicher­ einheit 70 ausgewählt wird. Auf diese Weise ist die Adresse des zweiten Datensatzes vollständig, und die Daten werden nach einer vorgegebenen Zeitverzögerung (TD) nach der Ver­ vollständigung und der Auswahl der Adresse bei 140, bei 145 auf dem Speicher-Adreßbus 80 gültig. Der Mikroprozessor 20 übernimmt dann die adressierten Daten von dem Datenbus 40 der Fig. 1. Der zweite Speicherzyklus endet bei 150.
Für die Zwecke dieses Beispiels wird angenommen, daß auf einen dritten Datensatz, der sich in einer anderen Seite oder Zeile als der erste und der zweite Datensatz befindet, in einem dritten Speicherzyklus zugegriffen wird, der bei 150 beginnt und von dem ein Teil in der Fig. 2 dargestellt ist. Diese Situation wird als "page miss" bezeichnet. Dies bedeutet, daß ein neuer, zu dem Speicherort des dritten Datensatzes gehörender Zeilenadreßbestandteil der Spei­ chereinheit 70 zugeführt werden muß. Dieser neue Zeilen­ adreßbestandteil liegt mittels "Pipelining" bei 155 an dem Multiplex-Adreßbus 90. Zur Vorbereitung der neuen Zeilenadresse wird am Anfang 150 des dritten Spei­ cherzyklusses RAS "off" geschaltet. Tatsächlich ausge­ wählt wird die neue Zeilenadresse, wenn RAS bei 160 wie­ der nach "on" überführt wird. Der Rest des dritten Spei­ cherzyklusses ist im wesentlichen gleich wie der erste Speicherzyklus in Fig. 2, wobei eine CAS-Aufladung etwa am Beginn des dritten Speicherzyklusses bei 165 vorge­ sehen ist.
Aus den obigen Erläuterungen geht hervor, daß bei einem Seitenspeicher im Falle eines "page hit" eine beträcht­ liche Zeitdauer für die Vornahme der CAS-Aufladung ver­ braucht wird (vgl. den zweiten Speicherzyklus in Fig. 2), bis der zweite Spaltenadreßbestandteil dazu verwendet werden kann, die neue Adresse zu vervollständigen und die zugehörigen Daten auszuwählen.
Aus der Firmenschrift der Intel Corp. "Memory Design Handbook" von 1977, Seiten 14-1 bis 14-8 ist bekannt, Zwischenspeicher am Ausgang von Speichern vorzusehen. Wie jedoch aus dem letzten Absatz der rechten Spalte der Seite 14-6 hervorgeht, wird dadurch nur erreicht, daß der spätestmögliche Zeitpunkt der Verfügbarkeit der Daten in den nächsten Zyklus ausgedehnt wird. Irgendwelche Auswirkungen auf die Schnelligkeit des Zugriffs auf den Speicher sind in der Druckschrift aber nicht offenbart.
Wie bereits erwähnt wurde, werden Computersysteme mit immer höheren Taktgeschwindigkeiten versehen. Unter der Voraussetzung, daß ein Speicherzyklus aus einer vorgegebenen Anzahl von Taktimpulsen besteht, die entsprechend der Erhöhung der Taktgeschwindigkeit kürzer werden, wird die Zeitdauer, die für derartige Speicher-Auffrischvorgänge wie die CAS-Aufladung erforderlich ist, ein mit wachsender Taktgeschwindigkeit immer größer werdender Anteil an dem Speicherzugriffs­ zyklus. Ein Weg, einen Mikroprozessor mit einer sehr hohen Verarbeitungsgeschwindigkeit an die Geschwindigkeit oder die Zugriffszeit von Speichern anzupassen, ist die Hinzufügung von Wartezuständen, um dadurch den Mikroprozessor tatsächlich zu verlangsamen und auf die im Speicher zuzugreifenden Daten zu warten. Diese Vorgehensweise ist allgemein unerwünscht, weil es die Vorteile der Erhöhung der Taktgeschwindigkeit des Mikroprozessors zunichte macht.
Aufgabe der Erfindung ist es, ein Verfahren für ein Computersystem mit einem Seitenspeicher zu schaffen, das einen möglichst schnellen Zugriff auf den Seitenspeicher bei gleichzeitig möglichst langer Zugriffszeit auf die adressierten Daten erlaubt. Insbesondere ist es ein Ziel der vorliegenden Erfindung, ein Computersystem zu schaffen, das bei hohen Taktgeschwindigkeiten ohne die Heranziehung von zusätzlichen Wartezuständen während des Speicherzugriffs betrieben werden kann.
Diese Aufgabe ist bei einem Verfahren nach dem Patentanspruch 1 gelöst.
Entsprechend einer Ausführung der Erfindung ist ein Computersystem vorgesehen, das einen Seitenspeicher enthält, an den ein Adreßbus und ein Datenbus ange­ schlossen sind. Ein Prozessor, z. B. ein Mikroprozessor, ist an den Adreßbus und den Datenbus angeschlossen. Der Prozessor verarbeitet Daten in dem System und versorgt den Speicher in einem ersten Speicherzyklus mit einem ersten Adreß-Signal, das dem Speicherort von Daten, auf die zugegriffen werden soll, entspricht. Das System enthält eine erste Steuerschaltung, die zur Versorgung des Speichers mit einem Zeilenadreß-Impulssignal (RAS) während des ersten Speicherzyklusses an den Speicher angeschlossen ist, sowie desweiteren eine zweite Steuerschaltung, die zu Versorgung des Speichers mit einem Spaltenadreß-Impulssignal (CAS) während des ersten Speicherzyklusses und nach dem RAS-Signal an den Speicher angeschlossen ist. Ein Zwischenspeicher ist zwischen den Speicher und den Datenbus geschaltet, um die adressierten Daten für einen späteren Transfer auf den Datenbus zwischenzuspeichern. Das Computersystem enthält eine CAS-Aufladeschaltung, um den Speicher nach der Zwischenspeicherung und vor dem Ende des ersten Speicherzyklusses einer CAS-Aufladung zu unterwerfen.
Fig. 1 ist ein vereinfachtes Blockdiagramm eines bekannten Computersystems mit einem Seiten­ speicher;
Fig. 2 ist ein Zeitdiagramm bezüglich eines typischen bekannten Seitenspeichers;
Fig. 3 ist eine vereinfachte graphische Darstellung des Computersystems nach der vorliegenden Erfindung;
Fig. 4 ist ein Blockdiagramm des Computersystems der vorliegenden Erfindung;
Fig. 5 ist ein Zeitdiagramm, das den Zeitablauf im Speicher des Computersystems nach Fig. 3 im Vergleich zu dem Zeitablauf im Speicher des bekannten Systems der Fig. 2 zeigt;
Fig. 6 ist ein Flußdiagramm, das die Ausführung des Speicherzugriffs in dem Computersystem der vor­ liegenden Erfindung zeigt;
Fig. 7 ist ein Blockdiagramm der bidirektionalen Zwi­ schenspeicherschaltung, die in dem Computer­ system der Fig. 4 verwendet wird;
Fig. 8 ist ein Blockdiagramm des gesamtem Datenpuffers nach Fig. 7;
Fig. 9 ist eine Darstellung der Pin-Belegung des Daten­ puffers der Fig. 8.
Fig. 3 zeigt eine vereinfachte Darstellung des Computer­ systems der vorliegenden Erfindung, das eine Computer­ systemeinheit 200 enthält, an die ein Monitor 205, eine Eingabetastatur 210, eine Maus 215 und ein Ausgabedrucker 220 angeschlossen sind.
Fig. 4 ist ein Blockdiagramm der Computer-Systemeinheit 200. Die Systemeinheit 200 enthält einen Prozessor 225, bei­ spielsweise einen 32-Bit-Prozessor wie der Intel 80386- Prozessor. Ein lokaler CPU-Bus 230 setzt sich aus einem 36-Bit-Adreßbus, einem 32-Bit-Datenbus und einem 10-Bit- Steuerbus zusammen, die wie in Fig. 4 gezeigt zwischen den Prozessor 225 und einen Puffer 240 geschaltet sind. Ein mathematischer Zusatzprozessor 245, wie z. B. der Intel 80387-Zusatzprozessor, ist an den lokalen CPU- Bus 230 angeschlossen, um Fließkomma-Operationen durchzuführen und damit den Systemdurchsatz zu erhöhen.
Die Systemeinheit 200 enthält lokalen Systembus 250, der zwischen den Puffer 240 und einem Puffer 253 geschal­ tet ist. Der lokale Systembus 250 enthält einen Daten­ bus, einen Adreßbus und einen Steuerbus, wie dies in Fig. 4 gezeigt ist. Der Puffer 240 dient der Zwischen­ speicherung des Adreßbusses des lokalen CPU-Busses 230 hinsichtlich des Adreßbusses des lokalen Systembusses 250. Der Puffer 240 speichert ebenfalls den Datenbus und den Steuerbus des lokalen CPU-Busses 230 hinsichtlich des Datenbusses und des Steuerbusses des lokalen Systembusses 250. Ein CPU-Datenvorratsspeicher 255, z. B. ein Daten­ vorratsspeicher mit 64 K Speicherplatz, ist an den Adreß- und den Datenbus des lokalen CPU-Busses 230 angeschlossen. Eine Vorratsspeicher-Verwaltung 260, wie beispielsweise die Intel 82385-Vorratsspeicher-Verwaltung, ist an den Adreß- und den Steuerbus des lokalen CPU-Busses 230 angeschlossen. Die Vorratsspeicher-Verwaltung 260 steuert die Speicherung und den Zugriff auf häufig benutzte Daten, die in dem Datenvorratsspeicher 255 gespeichert sind, um dadurch die Verarbeitungsgeschwindigkeit der Systemeinheit 200 zu erhöhen. Die Vorratsspeicher-Verwaltung 260 ist auch an den Adreßbus des lokalen Systembusses 250 angeschlossen.
Die Systemeinheit 200 enthält eine Bussteuer- und Zeitab­ laufschaltung 265, die an den Adreß-, den Daten- und den Steuerbus des lokalen Systembusses 250 angeschlossen ist. Der lokale Systembus 250 ist über eine Zwischenspeicher- Decodierschaltung 267 an einen Eingabe/Ausgabe-(I/O)-Bus 270 angeschlossen, der einen 10-Bit-Adreßbus, einen 8-Bit- Datenbus und einen Steuerbus enthält. Die Zwischenspeicher- Decodierschaltung 267 führt die Steuerung der Zwischen­ speicherung der Ein-/Ausgabe-Adresse und der Ein-/Ausgabe-Daten durch. Die Zwischenspeicher-Decodierschaltung 267 decodiert die lokale Systembus-Adresse und Steuersignale und erzeugt "chip select"- und Ein-/Ausgabe-Befehlssignale für den Eingabe/Ausgabe-Bus 270. Es ist bekannt, daß "chip select" dazu dient, bestimmte, an den Ein-/Ausgabe-Bus 270 angeschlossene Geräte auszuwählen, von denen bestimmte Operationen ausgeführt werden sollen. Der Ein-/Ausgabe-Bus 270 ist mit einem Bildschirmanschluß 275, einem CMOS-Takt­ geber 280, einen CMOS RAM 285, einem RS232-Anschluß 290, einem Druckeranschluß 195, sowie einem 4-Kanal-Zeitgeber 300 für allgemeine zeitabhängige Funktionen verbunden. Der Ein-/Ausgabe-Bus 270 ist des weiteren mit einem Disketten­ anschluß 305, einer Unterbrechungssteuerung 310 und einem Nur-Lese-Speicher (ROM) verbunden, der das Basic-Input/ Output-System (BIOS) enthält.
Ein Mikrokanalbus 320 mit einem Adreß-, einem Daten- und einem Steuerbus ist an den lokalen Systembus über den Puffer 253 angeschlossen. Der Aufbau des Mikrokanal­ busses ist ausführlicher in dem IBM PS/2 Modell 80 Technical Reference Manual beschrieben. Entsprechend dem Aufbau des Mikrokanals ist eine zentrale Verteilungssteuerung 325 an den Mikrokanalbus 320 und die Bussteuer- und Zeitablauf-Schaltung 265 angeschlossen, um die Verteilung des mit mehreren Geräten belegten Multikanals zu organisieren. Der Anschluß einer derartigen zentralen Verteilungssteuerung und der Bussteuer- und Zeitablaufschaltung 265 stellt einen Teil des Mikrokanalbusses 320 dar.
Eine Mehrzahl von Mikrokanalsockeln 330 sind, wie in Fig. 4 dargestellt, an den Mikrokanalbus 320 angeschlos­ sen, um Zusatzkarten wie beispielsweise Speicherkarten, Videoadapter, DASW-Adapter, SCSI-Adapter und Übertra­ gungsadapterkarten aufzunehmen. Ein oder mehrere Hard­ file Floppy Disk Sockel 335 sind an den Mikrokanalbus 320 angeschlossen, um die Verbindung einer Festplatte oder einer Diskette (nicht dargestellt) mit dem Bus 320 zu ermöglichen. Eine Direktspeicher-Zugriffs(DMA)-Ver­ waltung 337 ist an den Adreß-, Daten- und Steuerbus des lokalen Systembusses 250 angeschlossen, um exter­ nen Geräten wie der Festplatte, der Diskette und anderen mikrokanal-DMA-abhängigen Geräten einen direkten Zugriff auf den Hauptspeicher zu ermöglichen (nachfolgend be­ schrieben) und um die direkte Beteiligung des Prozessors 225 bei Datentransfers zwischen diesen externen Geräten und dem Hauptspeicher zu vermeiden.
Eine Speichersteuerschaltung 340 ist an den lokalen Systembus 250 - wie in der Fig. 4 dargestellt - ange­ schlossen. Die Funktionsweise der Speichersteuerschal­ tung 340 wird anhand des Zeitdiagramms der Fig. 5 später vollständig beschrieben und erläutert. Zum Verständnis der Speichersteuerschaltung 340 sei jedoch angemerkt, daß sie drei Bestandteile enthält, nämlich einen RAS/CAS- Decoder 345, einen Adreß-Decoder/Multiplexer 350 und einen Datenpuffer 355. Der RAS/CAS-Decoder 345 ist ein­ gangsseitig an den Steuerbus des lokalen Systembusses 250 angeschlossen. Der RAS/CAS-Decoder 345 übernimmt die Adreß- und Bus-Taktsynchronisiersignale vom Prozessor 225 und decodiert diese zur Bildung von Speicherauswahl- und Speicherzeitablauf-Signalen. Der RAS/CAS-Decoder 345 decodiert die RAS- und CAS-Signale. Das vom Decoder 345 decodierte RAS-Signal legt diejenige von 8 Speicher­ bänken (jede Bank enthält ein Megabyte in der Form von 256 K×36 Bits) fest, auf die während des momentanen Speicherzyklusses zugegriffen werden soll. Die Anord­ nung dieser 8 Speicherbänke in einem aus den Einheiten 371, 372, 373 und 374 bestehenden Speicher 370 wird später beschrieben. Das vom Decoder 345 decodierte CAS-Signal legt das Byte oder die Bytes eines im Spei­ cher 370 gespeicherten 32 Bit-Wortes fest, auf das oder auf die im momentanen Speicherzyklus zugegriffen werden soll.
Die Speichersteuerschaltung 340 ist mit dem zuvor genannten Speicher 370 in der nachfolgend beschriebenen Weise verbunden. Der Speicher 370 enthält vier Einheiten von Speichern mit wahlfreiem Zugriff (RAM), nämlich die Ein­ heiten 371, 372, 373 und 374, von denen jede 2 Megabyte Speicherplatz enthält. In der Fig. 4 sind die Einheiten 371 bis 374 als dynamische Speicher mit wahlweisem Zu­ griff (DRAM) mit einseitigem Anschlußgehäuse (SIP) oder DRAM SIP gekennzeichnet. Die Einheit 371 ist mit 2 Mega­ byte Speicherplatz ausgestattet und als "Basic 2 MB" klassifiziert. Die verbleibenden Einheiten 372 bis 374 können nach der Wahl des Benutzers mit Speichern aufge­ füllt werden und sind deshalb als "optional 2 MB" klassi­ fiziert. Der RAS/CAS-Decoder 345 enthält einen Ausgabe­ bus 348 mit 13 Einzelleitungen zur Übertragung der RAS-, CAS- und WE-Signale zu den Speichereinheiten 371 bis 374, wobei acht Leitungen den RAS-Signalen, vier Leitungen den CAS-Signalen und eine Leitung dem WE-Signal zugeordnet ist. Der RAS/-CAS-Decoder 345 erzeugt ein Write Enable (WE)-Signal, das festlegt, ob ein bestimmter Speicherzyklus ein Lesezyklus oder ein Schreibzyklus ist, und führt diese Information dem Speicher 370 zu. Jeder der Einheiten 371 bis 374 ent­ hält 2 Megabyte Speicherplatz, wobei jedes Megabyte in 512 Seiten oder Zeilen aufgeteilt ist, die jeweils 2 K Byte lang sind. Dies bedeutet, daß die Einheiten 371 bis 374 als Seitenspeicher ausgeführt sind.
Der Adreßmultiplexer (ADDR MUX) 350 ist eingangsseitig an die 36 Leitungen des Datenbusses des lokalen System­ busses 250 angeschlossen. Wenn der Prozessor 225 auf einen an einen bestimmten Ort im Speicher 370 gespeicherten Datensatz zugreifen will, dann übermittelt der Prozessor 225 diejenigen 36 Bits der Adresse dieses Speicherortes zum Adreßmultiplexer 350. Der Adreßmultiplexer 350 ermittelt die Seitenadresse (Zeilenadresse) und die Spaltenadresse aus der 36 Bits Adreß-Information und versorgt den Speicher 370 über einen den Adreßmulti­ plexer 350 und den Speicher 370 verbindenden Multiplex- Adreßbus 390 mit der Seitenadresse und der Spalten­ adresse. Ein 36 Bit Speicher-Datenbus 400 verbindet die Speichereinheiten 371 bis 374 des Speichers 370 mit dem Datenpuffer 355. Nachdem der Speicher, wie oben beschrie­ ben, adressiert worden ist, werden die Daten der bestimm­ ten Speicheradresse zum Speicher-Datenbus 400 transferiert, der die Daten, wie in der Fig. 4 gezeigt, dem Daten­ puffer 345 zuführt. In dem Speicher-Datenbus 400 sind 32 Bits (D 0 bis D 31) den Daten und 4 Bits (P 0 bis P 3) den Prüfbits zugeordnet. Sobald die adressierten Daten den Speicher-Datenbus 400 erreichen, werden die Daten von dem Datenpuffer 355 zwischengespeichert und danach dem Datenbus des lokalen Systembusses 250 zugeführt. Nachfolgend werden die Daten über den Puffer 240 und den lokalen CPU-Bus 230 dem Prozessor 225 zugeführt.
Die nachfolgende Erläuterung des Zeitdiagramms der Fig. 5B beschreibt in Einzelheiten die Funktionsweise der Speicherverwaltung 340 und des Speichers 370. Zur Erleichterung, und um einen sofortigen Vergleich zu ermöglichen, wurde das dem Stand der Technik zugehörige Zeitdiagramm der Fig. 2 im oberen Teil der Fig. 5 als Fig. 5A wiederholt. Zum Zwecke der Erläuterung des Zeitdiagramms der Fig. 5B wird angenommen, daß der Prozessor 225 auf einen Datensatz zugreifen will, der unter einer bestimmten Adresse oder einen bestimmten Ort im Speicher 370 gespeichert ist. Dieser Datensatz wird als erster ausgewählter Datensatz bezeichnet. Es wird weiter angenommen, daß der Prozessor 225 nach dem Zugriff auf den ersten ausgewählten Daten­ satz auf einen zweiten ausgewählten Datensatz an einem anderen Speicherort zugreifen will.
Der Prozessor 225 gibt die ausgewählte Adresse, in der der erste Datensatz gespeichert ist, an den Adreßbus des lokalen CPU-Busses 230 aus. Die ausgewählte Adresse be­ steht aus 32 Adreßbits (A 0 bis A 31) und 4 Byte-Auswahl­ bits (BE 0 bis BE 3), so daß die Adresse insgesamt aus 36 Bits besteht. Die 4 Byte-Auswahlbits (BE 0 bis BE 3) werden als Angabe dafür verwendet, welche der Bytes (von 1 bis 4) aus den (4 Byte bzw. 32 Bits umfassenden), unter einer bestimmten Adresse abgespeicherten Daten abgefragt werden sollen. Nachdem die ausgewählte Adresse auf den Adreßbus des lokalen CPU-Busses 230 gelagert ist, wird sie vom Puffer 240 zwischengespeichert. Die ausge­ wählte Adresse wird dann an den Adreßbus des lokalen Systembusses 250 weitergegeben und der Speicherverwaltung 340 und dem Adreßmultiplexer 250 zugeführt.
Die Systemeinheit 200 ist bei der vorliegenden Aus­ führung derart ausgebildet, daß 9 Bits der ausgewählten 36 Bit-Adresse der Seitenadresse oder Zeilenadresse (RAS-Adresse) 410 derjenigen Daten zugeordnet sind, auf die zugegriffen werden soll. Dies bedeutet, daß die Bits A 11 bis A 19 der RAS-Adresse zugeordnet sind. Die Seitenadresse 410 beginnt zeitlich am Anfang des ersten Speicherzyklusses, wie dies in der Fig. 5B dargestellt ist. Der Adreßmultiplexer 350 entnimmt diese 9 Bit- Seitenadresse 410 der 36 Bit-Adresse und führt sie über die 9 Leitungen des den Adreßmultiplexer 350 und den Speicher 370 verbindenden Multiplex-Adreßbusses 390 dem Speicher 370 zu.
Am Anfang des ersten Speicherzyklusses ist das RAS-Signal der Speicherverwaltung 340 "high", was bei der in der Fig. 5B verwendeten negativen Logik einem "off"-Zustand entspricht. Nachdem die Seitenadresse 410 auf dem Multi­ plex-Adreßbus 390 anliegt, schaltet die Speicherverwal­ tung 340 (über den RAS/CAS-Decoder 345) das RAS-Signal bei 415 "low" oder "on", wie in der Fig. 5B gezeigt. Auf diese Weise wird die Seitenadresse, die vom Speicher 370 für den Zugriff auf die bestimmten Daten verwendet werden soll, dem Speicher 370 zugeführt.
Nachdem das RAS-Signal "on" ist, entnimmt die Speicherver­ waltung 340 mit Hilfe des Adreßmultiplexers 350 die 9 Bit-Spaltenadresse 420 der Daten aus der 36 Bit-Adresse und führt diese 9 Bit-Spaltenadresse 420 über den Multi­ plex-Adreßbus 390 dem Speicher 370 zu. Dies bedeutet, daß die Bits A 3 bis A 11 dieser Spaltenadresse oder CAS- Adresse zugeordnet sind. Wie dem Zeitdiagramm der Fig. 5B entnommen werden kann, schaltet die Speicherverwaltung 340 (über den RAS/CAS-Decoder 345), nachdem die Spalten­ adresse 420 auf dem Multiplex-Adreßbus 390 anliegt, das CAS-Signal bei 425 "low" oder "on". Auf diese Weise wird die Spaltenadresse, die vom Speicher 370 für den Zugriff auf die bestimmten Daten verwendet werden soll, dem Speicher 370 zugeführt. Die Seitenadresse und die Spalten­ adresse der Daten werden somit im Multiplexbetrieb auf denselben 9 Leitungen des Multiplex-Adreßbusses 390 angelegt. Die verbleibenden Bits A 17 bis A 31 werden von dem RAS/CAS-Decoder 345 für die Angabe verwendet, welche der Einheiten 371 bis 374 den ersten, adressierten Daten­ satz enthält.
Zu diesem Zeitpunkt sind beide, die Seitenadresse 410 und die Spaltenadresse 420, die den Speicherort der ausgewähl­ ten Daten definieren, dem Speicher 370 zugeführt. Nach einer vorbestimmten Zeitverzögerung TCAS wird das CAS- Signal aktiviert oder "low" geschaltet, worauf die Daten auf dem Speicher-Datenbus 400 bei 430 Gültigkeit er­ langen. Die Daten werden dann sofort bei 435 mittels bi­ direktionaler Zwischenspeicher (ausführlichere Beschrei­ bung später), die in den Datenpuffern 355 enthalten sind, zwischengespeichert. Nachdem die Zwischenspeicherung im Datenpuffer 355 vorgenommen worden ist, werden die zwi­ schengespeicherten Daten (der erste ausgewählte Datensatz) bei 437 dem Datenbus des lokalen Systembusses 250 zur Über­ mittlung an den Prozessor 225 zugeführt.
Nach der Zwischenspeicherung der Daten bei 335 innerhalb des ersten Speicherzyklusses (des momentanen Speicher­ zyklusses) und vor dem Beginn des zweiten Speicherzyklusses (des nächsten Speicherzyklusses), wird bei 440 eine CAS- Aufladung vorgenommen. Sobald die CAS-Aufladung bei 440 begonnen hat, werden die Daten auf dem Speicher-Datenbus 400 bei 442 ungültig, nachdem eine vorgegebene Zeitdauer seit dem Beginn der CAS-Aufladung verstrichen ist. Die Zwischenspeicher-Schaltung im Datenpuffer 355 speichern die Daten, bevor diese ungültig werden, also vor 442 in dem Speicher-Datenbus-Zeitdiagramm der Fig. 5B. Diejenigen Zeitdauern, in denen die Daten auf dem Speicher- Datenbus 400 ungültig sind, sind in der Fig. 5B durch Schrägstriche gekennzeichnet. Das Ende der CAS-Aufladung legt das Ende des ersten Speicherzyklusses fest.
Der Prozessor 225 übermittelt die Adresse des zweiten ausgewählten Datensatzes über denselben Signalweg zur Speicherverwaltung 340 wie auch der erste ausgewählte Datensatz dorthin gelangt ist. Wenn die Speicherver­ waltung 340 feststellt, daß der zweite ausgewählte, aus dem Speicher 370 auszulesende Datensatz sich in der­ selben Seite wie der erste ausgewählte Datensatz befin­ det, dann wird während der CAS-Aufladung bei 440, wie dies in dem Zeitdiagramm der Fig. 5B dargestellt ist, die auf dem Multiplex-Adreßbus 390 anliegende Spalten­ adresse bei 445 geändert, und zwar in die zu dem zweiten Datensatz gehörige Spaltenadresse. Diese Spalten- Adressenänderung findet vor dem Ende des ersten Speicher­ zyklusses statt. Nach dieser Spaltenadressen-Änderung endet die CAS-Aufladung, und das CAS-Signal wird "on" ge­ schaltet, so daß der zweite Speicherzyklus bei 450 be­ ginnt. Auf diese Weise wird die zu dem zweiten ausge­ wählten Datensatz gehörige Spaltenadresse dem Speicher 370 zugeführt. Nach einer Zeitverzögerung TCAS werden die zu dieser Spaltenadresse und der bereits beschriebenen Seitenadresse zugehörigen Daten bei 455 auf dem Spei­ cher-Datenbus 400 gültig.
Die Daten werden dann sofort bei 460 mittels bidirektiona­ ler Zwischenspeicher, die in dem Datenpuffer 355 enthalten sind, zwischengespeichert. Nachdem diese Zwischenspeicherung im Datenpuffer 355 erfolgt ist, werden die gespei­ cherten Daten (nunmehr der zweite ausgewählte Datensatz) bei 465 dem Datenbus der lokalen Systembusses 250 zur Übermittlung an den Prozessor 225 zugeführt. Wie nach­ folgend bei der Erläuterung des Datenpuffers 355 noch ausführlicher beschrieben wird, arbeitet der Datenpuffer 355 in einem "durchsichtigen" oder Durch­ gangs-Modus, wenn das Zwischenspeicher-Steuersignal (LAB 0 bis 3) "low" ist. Wenn das Zwischenspeicher- Steuersignal "high" ist, speichert der Datenpuffer 355 die Daten.
Die obigen Erläuterungen haben einen Speicherzugriff für den Fall beschrieben, wenn der zweite ausgewählte Datensatz sich in derselben Seite befindet wie der erste ausgewählte Datensatz. Wenn jedoch die Speicherverwaltung 340 feststellt, daß der zweite ausgewählte Datensatz sich nicht in derselben Seite wie der erste ausgewählte Datensatz befindet, dann muß die Speicheradressierung wieder ganz von vorne am Anfang des ersten Speicherzyklusses beginnen. Dies bedeutet, daß wenn die Zeilenadresse oder Seitenadresse für den zweiten Datensatz nicht dieselbe ist wie für den ersten Datensatz, dann muß die neue, dem zweiten Datensatz zugehörige Zeilenadresse, gefolgt von der neuen Spaltenadresse dem Speicher 370 in einer Weise übermittelt werden, wie dies in dem ersten Speicherzyklus des zu der Erfindung gehörigen Zeitdiagramms der Fig. 5B dargestellt ist.
Fig. 6 ist ein Flußdiagramm, das den Ablauf der Durch­ führung eines Speicherzugriffes in der Systemeinheit 200 zusammenfaßt. Ein Speicherzugriff beginnt, wenn der Prozessor 225 mittels Adressen-"pipelining" eine gültige Adresse ausgibt, von der Daten eingelesen werden sollen, wie dies im Block 500 des Flußdiagramms gezeigt ist. Die gültige Adresse wird in der bereits beschriebenen Weise mittels der Busstruktur der Systemeinheit 200 zu der Speicherverwaltung 340 transferiert. Die gültige Adresse wird von der Speicherverwaltung 340 decodiert, wie dies im Block 505 gezeigt ist. Dies bedeutet, daß eine Seiten­ adresse und eine Spaltenadresse der gültigen Adresse ent­ nommen werden.
Gemäß Block 510 wird dann die Seitenadresse im Multiplex­ betrieb an den Multiplex-Adreßbus 390 angelegt, wobei dieser Vorgang den Beginn des laufenden Speicherzyklusses darstellt, wie dies in Block 515 gezeigt ist. Bei Block 520 wird dann das RAS-Signal aktiviert oder eingeschaltet, so daß der Speicher 370 die Seitenadresse auswählt, die momentan auf dem Multiplex-Adreßbus 390 anliegt. Danach wird die Spaltenadresse im Multiplexbetrieb an den Multi­ plex-Adreßbus 390 angelegt, wie dies in Block 525 ge­ zeigt ist. Gemäß Block 530 wird das CAS-Signal aktiviert oder eingeschaltet, so daß der Speicher 370 die Spalten­ adresse auswählt, die momentan auf dem Multiplex-Adreßbus 390 anliegt. In diesem Zeitpunkt ist die Adresse der gewünschten, im Speicher 370 gespeicherten Daten vollständig angegeben, und der Speicher 370 transferiert die Daten in der angegebenen Adresse zum Speicher- Datenbus 400, wie dies in Block 535 gezeigt ist. Ent­ sprechend Block 540 werden die Daten von den bidirektiona­ len Zwischenspeichern des Datenpuffers 355 zwischenge­ speichert, um die Daten vorübergehend zu erhalten. Nachdem die Daten zwischengespeichert sind, werden sie zum lokalen Daten-Systembus 250 transferiert, wie dies in Block 545 gezeigt ist. Gemäß Block 550 wird dann die CAS-Aufladung vor dem Ende des momentanen Speicher­ zyklusses vorgenommen. Die nächste Adresse, auf die zugegriffen werden soll, wird danach entsprechend Block 555 decodiert.
Im Entscheidungsblock 560 wird ein Test ausgeführt, um festzustellen, ob die nächste Adresse sich in derselben Seite befindet wie die vorhergehende Adresse (die frühere momentane Adresse). Wenn die nächste Adresse sich nicht in derselben Seite als die vorhergehende Adresse befindet, dann wird der Prozeßablauf bei Block 510 der Fig. 6 fortgesetzt, bei dem die nächste Seitenadresse im Multiplexbetrieb an den Multiplex- Adreßbus 390 angelegt wird. Befindet sich jedoch die nächste Adresse in derselben Seite wie die vorhergehende Adresse, dann wird der Prozeßablauf bei Block 565 fortgesetzt, bei dem die Spaltenadresse der nächsten Adresse im Multiplexbetrieb an den Multiplex-Adreßbus angelegt wird. Danach beginnt der nächste Speicher­ zyklus oder zweite Speicherzyklus bei Block 570, nach­ dem die CAS-Aufladung beendet ist. Dies bedeutet, daß am Anfang des zweiten Speicherzyklusses das CAS-Signal gemäß Block 575 aktiviert oder eingeschaltet ist, so daß der Speicher 370 die Spaltenadresse auswählt, die momentan an dem Multiplex-Adreßbus 390 angelegt ist. In diesem Zeitpunkt ist die Adresse der gewünschten, im Speicher 370 gespeicherten Daten erneut vollständig angegeben und der Speicher 370 transferiert die Daten der angegebenen Adresse zum Speicher-Datenbus 400, wie dies in Block 560 gezeigt ist. Die Daten werden von den bidirektionalen Zwischenspeichern des Datenpuffers 355 gemäß Block 585 zwischengespeichert, um sie vorüber­ gehend aufrechtzuerhalten. Nach der Zwischenspeicherung der Daten werden sie entsprechend Block 590 zum lokalen Daten-Systembus 250 transferiert. Vor dem Ende des momentanen Speicherzyklusses wird eine CAS-Aufladung durchgeführt, wie dies in Block 595 gezeigt ist. Danach wird entsprechend Block 600 die nächste Adresse, auf die zugegriffen werden soll, decodiert, worauf der Ablauf bei dem Entscheidungsblock 560 fortgesetzt wird, bei dem wieder eine Entscheidung entsprechend der Fest­ stellung getroffen wird, ob die nächste Adresse sich in derselben Seite befindet wie die letzte Adresse.
Ein Hochgeschwindigkeits-Zwischenspeicher-Datenpuffer, der als Datenpuffer 355 verwendet werden kann, ist in der Fig. 7 in Form eines Blockdiagramms dargestellt. Zur Verdeutlichung der Darstellung zeigt Fig. 7 eine von vier im wesentlichen gleiche Einheiten, die im Datenpuffer 355 als Einheiten 610 verwendet werden. Die Puffereinheit 610 enthält ein 8 Bit-Tor 615, das mit den Datenleitungen D 0 bis D 7 des Speicher-Datenbusses 400 verbunden ist. Die Puffereinheit 610 enthält einen als "A REC" gekennzeich­ neten Datenempfänger 620, der in der dargestellten Weise an das Tor 615 angeschlossen ist. Der Datenempfänger 620 ist ein Puffer, der als Schnittstelle zwischen der auf dem Speicher-Datenbus 400 vorhandenen 0 bis 5 Volt-TTL- Signalspannung und der 0 bis etwa 3 Volt Spannung arbei­ tet, die für die interne Schaltung der Puffereinheit 610 charakteristisch ist. Ausgangsseitig ist der Datenem­ pfänger 620 mit dem Eingang eines 8 Bit-Datenspeichers 625 verbunden, der anliegende Daten zwischenspeichert, wenn ein entsprechendes Zwischenspeicher-Steuersignal einem mit LEAB0 (latch enable A to B) gekennzeichneten Steuer­ eingang 625 A zugeführt ist. Der Datenspeicher 625 ist ein "durchsichtiger" Speicher. Dies bedeutet, daß der Datenspeicher 625 entweder in einer "durchsichtigen" Weise oder im Zwischenspeicher-Betrieb betrieben werden kann, in Abhängigkeit von dem entsprechenden Steuersignal am Steuereingang 625 A. Wenn der Datenspeicher 625 ange­ wiesen ist, in der "durchsichtigen" Weise zu arbeiten, dann hat ein "low" Eingangssignal ein "low" Ausgangs­ signal, ein "high" Eingangssignal ein "high" Ausgangssignal zur Folge. Dies bedeutet, daß im Transparent-Betrieb die am Eingang des Datenspeichers 625 anliegenden 8 Bit-Daten zum Ausgang desselben hindurchgehen. Wenn jedoch der Datenspeicher 625 mittels des Zwischenspeicher-Steuer­ signals am Steuereingang 625 A (LEAB0) angewiesen ist, im Zwischenspeicher-Betrieb zu arbeiten, dann nimmt der Ausgang auf ein bestimmtes, angebotenes 8 Bit-Eingangs­ signal hin einen stabilen Zustand ein und verbleibt in diesem Zustand zwischengespeichert, bis am Steuerein­ gang 625 A ein entsprechendes Steuersignal anliegt.
Es soll an dieser Stelle an vorhergehende Erläuterungen erinnert werden, wonach sofort, nachdem die adressierten Daten auf dem Speicher-Datenbus bei 430 in Fig. 5B gültig werden, diese Daten bei 435 zwischengespeichert werden.
Ein Ausgangstreiber 630 ist mit dem Ausgang des Daten­ speichers 625 verbunden, wie in Fig. 7 gezeigt. Der Aus­ gangstreiber 630 ist mit "B DRV" gekennzeichnet und dient dazu, die interne Schaltung von 0 bis 3 Volt des Daten­ puffers 610 mit der externen, am Ausgang des Treibers 630 vorhandenen 0 bis 5 Volt-TTL-Spannung zu koppeln. Der 8 Bit-Ausgang des Ausgangstreibers 630 ist mit einem Tor 635 verbunden, das an acht mit B 0 bis B 7 gekennzeichneten Datenleitungen des Datenbusses des lokalen Systembusses 250 angeschlossen ist. Auf diese Weise kann das System mit der Verarbeitung von Daten fortfahren, sobald der Daten­ speicher 625 die ihm angebotenen Daten zwischengespei­ chert hat, und die Signale auf den Speicher-Datenbus 400 (D 0 bis D 7) können sich beliebig ändern, während der Datenspeicher 625 die alten Daten für eine spätere Über­ nahme durch den Prozessor 225 über den lokalen Systembus 250 aufrechterhält.
Der Ausgangstreiber 630 enthält einen mit OEAB0 gekennzeichneten Datentor-Steuereingang 630 A. Wenn das OEAB0-Signal "on" ist, dann schaltet der Ausgangstreiber 630 die an­ liegenden Daten durch. Wenn das OEAB0-Signal jedoch "off" ist, dann ist der Ausgangstreiber 630 abgeschaltet. Der Ausgang des Datenspeichers 625 ist an den Eingang einer 8 Bit-Prüfbitschaltung 640 angeschlossen. Wenn die acht Eingaben zu der Prüfbitschaltung 640 eine gerade Anzahl von Einsen enthalten, dann erzeugt die Prüfbitschaltung 640 als einziges Ausgangssignal eine 1 (high), um eine ungerade Prüfsumme aufrechtzuerhalten. Wenn jedoch die acht Eingaben zu der Prüfbitschaltung 640 eine ungerade Anzahl von Einsen enthalten, dann erzeugt die Prüfbit­ schaltung 640 als Ausgangsbit eine 0 (low), um die un­ gerade Prüfsumme zu erhalten.
Der Datenpuffer 610 enthält einen GEN/CK-Empfänger 645 mit einem, wie in der Fig. 7 dargestellt, mit GEN/CK0 gekennzeichneten Eingang. Der GEN/CK-Empfänger 645 stellt eine Schnittstelle dar, der die 0 bis 5 Volt-TTL-Signale an seinem Eingang in 0 bis 3 Volt-Signale an seinem Aus­ gang übersetzt. Der Wert des GEN/CK0-Signals hängt von dem bestimmten Zyklus ab, den der Prozessor 225 als nächstes durchführen will. Dies bedeutet, daß das GEN/CK0- Signal (siehe Fig. 5B) den Wert 1 (high) aufweist, wenn ein Speicher-Schreibzyklus ausgeführt werden soll, und den Wert 0 (low), wenn ein Speicher-Lesezyklus ausgeführt werden soll. Für den Zweck dieses Beispiels wird ange­ nommen, daß das GEN/CK0-Signal den Wert 0 für einen vom Speicher auszuführenden Lesezyklus aufweist. Dies be­ deutet, daß die Daten und die entsprechenden Prüfsummen- Informationen bereits im Speicher 370 abgespeichert worden sind und daß nun ein Zugriff auf diese Daten gewünscht ist. Für den Zweck dieses Beispiels wird angenommen, daß ein aus vier 8 Bit-Bytes bestehendes 32 Bit-Wort aus dem Speicher 370 ausgelesen werden soll. Es wird angenommen, daß vier Prüfbits mit dem 32 Bit-Wort abgespeichert sind, was bedeutet, daß ein Prüfbit jeweils einem Byte des 32 Bit-Wortes zugeordnet ist. Es sei angemerkt, daß der Datenpuffer 610 der Fig. 7 ein Byte (8 Bits) und ein Prüfbit eines solchen 32 Bit-Wortes verarbeiten kann. Die verbleibenden 3 Bytes und 3 Prüfbits eines derartigen 32 Bit-Wortes werden von drei anderen, mit dem Datenpuffer 610 übereinstimmenden Datenpuffern verarbeitet, wie dies in Fig. 8 gezeigt ist.
Der Ausgang des GEN/CK-Empfängers 645 ist an einen Steuer­ eingang 650 A eines Prüfbit-Treibers 650 angeschlossen. Der Ausgang der Prüfbitschaltung 640 ist an einen Eingang 650 B des Prüfbit-Treibers 650 angeschlossen sowie an einen von zwei Eingängen eines XOR-Gatters 655. Der Ausgang 650 C des Prüfbit-Treibers 650 ist mit der Prüfbit-Leitung D 0 der Prüfbit-Leitungen des Speicher-Datenbusses 400 verbunden. Es soll darin erinnert werden, daß der 36 Bit-Speicher- Datenbus 400 die Leitungen D 0 bis D 31 für das abgespei­ cherte 32 Bit-Wort und vier Prüfbit-Leitungen P 0 bis P 3 enthält, die den vier Prüfbits entsprechen, die ihrer­ seits wiederum den 4 Bytes zugeordnet sind, die das 32 Bit-Wort bilden. Zusätzlich zur Verbindung mit dem Ausgang 650 C des Prüfbit-Treibers 650 ist die Prüfbit- Leitung P 0 über einen Prüfbit-Empfänger 660 an den ver­ bleibenden Eingang des XOR-Gatters 655 angeschlossen. Der Ausgang des GEN/CK-Empfängers 645 ist an einen Steuereingang 655 A des XOR-Gatters 655 angeschlossen. Der logische Zustand des dem Steuereingang 655 A zugeführten Sig­ nals bestimmt, ob das XOR-Gatter 655 eingeschaltet und damit für Signale durchgängig ist oder es ausgeschaltet und damit für Signale nicht zu seinem Ausgang hin durchgängig ist. Der Ausgang des XOR-Gatters 655 ist mit E 0 gekennzeichnet (Fehler) und an einen Fehlertreiber 665 angeschlossen. Der Ausgang des Fehlertreibers 665 ist an einen mit E bezeichneten Fehleranschlußpunkt 670 an­ geschlossen. Der Fehlertreiber 665 ist nicht Teil des Datenpuffers 610 und wird später beschrieben.
Ein Prüfbit-Fehlergenerator/-Prüfer 680 besteht aus der Prüfbit-Schaltung 640, dem GEN/CK-Empfänger 645, dem Prüfbit-Treiber 650, dem Prüfbit-Empfänger 660, dem XOR-Gatter 655 und dem Fehlertreiber 665. Wie nachfolgend beschrieben werden wird, arbeitet der Prüfbit-Fehler­ generator/-Prüfer 680 auf zwei Arten, nämlich in der Prüfbiterzeugungs-Betriebsart, wenn Daten in den Speicher eingeschrieben werden, und in der Prüfbitprüfungs- Betriebsart, wenn Daten aus dem Speicher ausgelesen wer­ den oder darauf zugegriffen wird. Da die vorliegende Er­ findung den Zugriff auf im Speicher 370 abgespeicherte Daten betrifft, wird jetzt die Prüfbitprüfungs-Betriebs­ art des Prüfbit-Fehlergenerator/-Prüfers 680 erläutert.
Wenn das GEN/CK0-Signal des GEN/CK-Empfängers 645 "low" (0) ist, gelangt der Generator/Prüfer 680 in die Prüf­ bitprüfungs-Betriebsart. Im Gegensatz dazu gelangt der Generator/Prüfer 680 in die Prüfbiterzeugungs-Betriebs­ art, wenn das GEN/CK0-Signal "high" (1) ist. Empfängt der GEN/CK-Empfänger 645 in der Prüfbitprüfungs-Betriebsart ein GEN/CK0-Signal "0" von der externen (TTL)-Schaltung, dann setzt der GEN/CK-Empfänger 645 dieses Signal an seinem Ausgang, wie bereits erwähnt, in ein 0 bis 3 Volt- Signal um. Ausgangsseitig ist der GEN/CK-Empfänger 645 mit dem Steuereingang 650 A des Prüfbit-Treibers 650 derart verbunden, daß die logische "0" oder "low", die jetzt am Steuereingang 650 A anliegt, den Prüfbit-Treiber 650 in der Weise abschaltet, daß das Signal am Ausgang der Prüfbitschaltung 640 nicht auf die Prüfbitleitung D 0 des Speicher-Datenbusses 400 geschaltet wird. Es er­ gibt sich aus den vorhergehenden Erläuterungen, daß die Funktion des Generators/Prüfers 680 in der Prüfbit­ prüfungs-Betriebsart darin besteht, das zu einem bestimm­ ten Byte der Daten D 0 bis D 7 gehörige abgespeicherte Prüfbit P 0 mit dem tatsächlichen Prüfbit P 0′ zu ver­ gleichen, das von demselben Byte nach dem Auslesen aus dem Speicher 370 abgeleitet ist. Wenn der Speicherzu­ griff erfolgreich abgeschlossen worden ist, dann sollte die Prüfsumme vor dem Zugriff, P 0 dieselbe sein wie die Prüfsumme nach dem Zugriff, P 0′. Wenn das Byte D 0 bis D 7 aus dem Speicher 370 ausgelesen ist, wird es vom Daten­ empfänger 620 empfangen und vom Datenspeicher 625 zwi­ schengespeichert. (Das bestimmte Byte, das auf den Lei­ tungen D 0 bis D 7 ausgelesen wird, wird nachfolgend als Byte 0 bezeichnet.) Die 8 Bits des Bytes 0 bleiben auf diese Weise am Ausgang des Datenspeichers 625 erhalten, so daß das Computersystem die weitere Verarbeitung fort­ setzen und die Signalwerte auf den D 0 bis D 7-Leitungen des Speicher-Datenbusses 400 ändern kann. Wenn der Daten­ speicher 625 die Zwischenspeicherung vornimmt, wird das Byte 0 der 8 Bit-Prüfbit-Schaltung 640 zugeführt, die da­ raus ein Prüfbit P 0′ für das gerade anliegende Byte 0 ab­ leitet. P 0′ ist daher die tatsächliche Prüfsumme, die aus dem Byte 0 nach dessen Auslesen aus dem Speicher 370 ab­ geleitet ist. Das P 0′-Prüfbit ist einem der beiden Ein­ gänge des XOR-Gatters 655 zugeführt. Es wird darin er­ innert, daß der verbleibende Eingang des XOR-Gatters 655 über den Prüfbit-Empfänger 660 mit der P 0-Prüfbit-Leitung des Speicher-Datenbusses 400 verbunden ist. Auf diese Weise wird mit dem Auslesen des Bytes 0 aus dem Speicher 370 das zu diesem Byte 0 gehörige Prüfbit P 0 zu dem ver­ bleibenden Eingang des XOR-Gatters 655 zugeführt. Wenn das P 0-Prüfbit vor dem Zugriff dasselbe ist wie das P 0- Prüfbit nach dem Speicherzugriff, wenn also beide 0 oder beide 1 sind, dann erzeugt das XOR-Gatter 655 ausgangs­ seitig eine 0, die darauf hinweist, daß kein Fehler beim Auslesen des Datenbytes, Byte 0, aus dem Speicher 370 er­ folgt ist. Wenn jedoch das P 0-Prüfbit vor dem Speicher­ zugriff nicht dasselbe ist wie das P 0-Prüfbit nach dem Zugriff, dann erzeugt das XOR-Gatter 655 ausgangsseitig eine 1, die darauf hinweist, daß beim Auslesen des Bytes 0 aus dem Speicher 370 ein Fehler vorgefallen ist. Das Fehlerbit am Ausgang des XOR-Gatters 655 wird über den Fehlertreiber 665 mittels einer logischen NOR- Funktion zu dem mit E bezeichneten Fehlerausgang 670 umgesetzt. Wenn der Prüfbit-Fehlergenerator/-Prüfer 680 in der Prüfbitprüfungs-Betriebsart arbeitet, dann ist das GEN/CK0-Signal am Ausgang des GEN/CK-Empfängers 645 "low" oder "0", wodurch das XOR-Gatter 655 aktiviert wird. Im Gegensatz dazu ist das GEN/CK0-Signal beim Be­ trieb des Generators/Prüfers 680 als Prüfbiterzeuger "high", wodurch das XOR-Gatter 655 abgeschaltet wird. Normalerweise prüft das Computersystem den E-Ausgang 670 am Ende jedes Speicherzyklusses, um das Auftreten eines Fehlers festzustellen.
Wie bereits erwähnt, arbeitet die Puffereinheit 610 auch in der entgegengesetzten Richtung wie vorstehend beschrie­ ben. Wenn also das Computersystem einen Schreibvorgang eines bestimmten, aus den Bytes 0, 1, 2 und 3 bestehenden 32 Bit-Wortes zum Speicher durchführt, dann wird das Byte 0 dieses Wortes vom lokalen Systembus 250 über den Puffer 610 zum Speicher-Datenbus 400 transferiert. Genauer wird das Byte 0 dem den Daten B 0 bis B 7 entsprechenden Tor 635 zugeführt. Dieses Tor 635 ist über einen Em­ pfänger 675 an einen 8 Bit-Speicher 680 angeschlossen, wie dies in Fig. 7 gezeigt ist. Der Empfänger 675 und der Speicher 680 sind jeweils im wesentlichen identisch mit dem Empfänger 620 und dem Speicher 625. Der Speicher 680 enthält einen mit LEBA0 gekennzeichneten Zwischenspeicher- Steuereingang, der bei einem "high"- oder "1"-Signal die Zwischenspeicherung der 8 an dem Speicher 680 anliegenden Datenbits bewirkt. Ausgangsseitig ist der Speicher 680 über einen Treiber 685 mit den D 0 bis D 7 Datenleitungen des Speicher-Datenbusses 400 verbunden. Der Treiber 685 ist im wesentlichen mit dem bereits beschriebenen Treiber 630 identisch. Der Treiber 685 enthält einen Datentor- Steuereingang OEBA0 (output enable B to A), der bei einer Beaufschlagung mit einem logischen "0"- oder "low"-Signal den Treiber 685 derart einschaltet, daß der Durchgang von Daten möglich ist. Zusammengefaßt besteht die Funktions­ weise des Empfängers 675, des Speichers 680 und des Trei­ bers 685 beim Beschreiben des Speichers darin, daß der Empfänger 675 die 8 Bits des am Tor 635 anliegenden Bytes 0 an den Speicher 680 weitergibt. Das Zwischenspeicher- Steuersignal LEBA0 (latch enable B to A) bringt dann den Speicher 680 dazu, die Daten am Ausgang des Speichers 680 aufrechtzuerhalten, so daß das Computersystem weiter­ arbeiten und die Signale auf den Datenleitungen B 0 bis B 7 am Tor 635 des lokalen Daten-Systembusses 250 ändern kann. Das dem Treiber 685 zugeführte OEBA0-Datentor-Steuer­ signal wird "low", mit der Folge, daß der Treiber 685 ange­ schaltet und dadurch am Ausgang des Speichers 680 zwischen­ gespeicherten 8 Bits des Bytes 0 zu den Datenleitungen B 0 bis B 7 des Speicher-Datenbusses 400 durchgeschaltet werden. Die OEBA0 bis 3-Signale spiegeln das "write enable (WE)"-Signal wieder, mit dem die Speicherverwaltung 340 den Speicher 370 beaufschlagt. Das WE-Signal ist "high" für Lesezyklen und "low" für Schreibzyklen.
Das vorstehende war eine Beschreibung desjenigen Teils des Datenpuffers 355, der der Bearbeitung von einem Byte, dem Byte 0, eines 4 Bytes (32 Bit-Wort) zugeordnet ist, das im Speicher 370 abgespeichert und aus diesem ausge­ lesen wird. Für die Bearbeitung der verbleibenden 3 Bytes, dem Byte 1, 2 und 3, dieses 32 Bit-Wortes, ist die Puffer­ einheit 610 vierfach kopiert, wie dies in der Fig. 8 ge­ zeigt ist. Zur Erleichterung sind diese vier Datenpuffer 610 als Datenpuffer 610-0, 610-1, 610-2 und 610-3 ge­ kennzeichnet, um dadurch zu verdeutlichen, daß sie die Bytes 0, 1, 2 und 3 des zuvor genannten 32 Bit-Wortes be­ arbeiten, das aus dem Speicher 370 ausgelesen oder in diesen eingeschrieben werden soll.
Die Fig. 8 zeigt ein vereinfachtes Blockdiagramm des Datenpuffers 355 bestehend aus vier im wesentlichen identischen Puffereinheiten 610, nämlich den Daten­ puffern 610-0, 610-1, 610-2 und 610-3, für die Verarbei­ tung jeweils der Bytes 0, 1, 2 und 3 eines 32 Bit-Wortes. Der Datenpuffer 355 ist genauer beschrieben in der anhängigen Patentanmeldung mit dem Titel "Bidirectional Buffer with Latch and Parity Capability" (US-SN 1 98 961, Gaudenzi et al, AT: 26. Mai 1988, FI-9-88-010). Zur Vereinfachung wurde der Empfänger 620 und der Treiber 685, die Speicher 625 und 680, und der Treiber 630 und der Empfänger 675 in der Fig. 8 jeweils zusammen als Block dargestellt. Es sei daran erinnert, daß der Datenpuffer 355 zwischen dem Datenbus des lokalen System­ busses 250 und dem Speicher-Datenbus 400 angeordnet ist. Genau genommen sind die D 0 bis D 31-Datenleitungen des Datenpuffers 355 mit den D 0 bis D 31-Datenleitungen des Speicher-Datenbusses 400 verbunden. Die D 0 bis D 31-Daten­ leitungen des Datenpuffers 355 sind mit den B 0 bis B 31- Datenleitungen des Datenbusses des lokalen Systembusses 250 verbunden.
Unabhängig davon, ob eine Lese- oder Schreiboperation für ein 32 Bit-Wort über den Datenpuffer 355 ausgeführt werden soll, bearbeiten die Puffereinheiten 610-0, 610-1, 610-2, und 610-3 jeweils die Bytes 0, 1, 2 und 3 dieses 32 Bit- Wortes. Der Datenpuffer 355 enthält vier Prüfbit-Ein/Aus­ gaben P 0, P 1, P 2 und P 3, die jeweils zu der erzeugten oder zugegriffenen Prüfsumme der Bytes 0, 1, 2 und 3 gehören. Die P 0, P 1, P 2 und P 3-Prüfbitleitungen des Datenpuffers 355 sind mit den P 0, P 1, P 2 und P 3-Prüfbitleitungen der 36 Leitungen des Speicher-Datenbusses 400 verbunden. Es sei daran erinnert, daß der Speicher-Datenbus 400 die Datenleitungen D 0 bis D 31 und die Prüfbitleitungen P 0 bis P 3 enthält. Wird daher ein bestimmtes 32 Bit-Wort in den Speicher eingeschrieben, erzeugen die jeweiligen Prüfsummen-Schaltungen 640 der Puffereinheiten 610-0 bis 610-3 die zu jedem der vier Bytes, nämlich Byte 0 bis Byte 3 des 32 Bit-Datenwortes, zugehörigen Prüfsummen, und führen vier erzeugte Prüfbits zur Speicherung im Speicher 370 den Prüfbitleitungen P 0 bis P 3 zu. Wenn bei der Ausleseoperation ein 32 Bit-Wort aus dem Spei­ cher ausgelesen wird, werden die vier zu diesem Daten­ wort gehörigen Prüfbits P 0 bis P 3 mit ausgelesen und den Prübitleitungen des Datenpuffers 355 zugeführt.
Die GEN/CK0, GEN/CK1, GEN/CK2 und GEN/CK3-Leitungen des Datenpuffers 355 sind mit entsprechenden GEN/CK0 bis GEN/CK3-Steuerleitungen (nicht dargestellt) verbunden, die in der Speicherverwaltung 340 enthalten sind. Die Speicherverwaltung 340 erzeugt ein GEN/CK-Signal, wie beispielsweise das in Fig. 5B gezeigte GEN/CK0-Signal, und führt dieses Signal den GEN/CK0 bis 3-Eingängen des Datenpuffers 355 zu, um damit dem Datenpuffer anzugeben, ob eine Lese- oder eine Schreiboperation ausgeführt werden soll. Wenn eine Schreiboperation ausgeführt werden soll, dann werden entsprechende GEN/CK0-3-Signale er­ zeugt, mit deren Hilfe den jeweiligen Puffereinheiten 610-1 bis 610-3 mitgeteilt wird, zu den vier Bytes des in den Speicher 370 einzuschreibenden 32 Bit-Wortes ent­ sprechende Prüfbits zu erzeugen. Wenn jedoch eine Lese­ operation ausgeführt werden soll, dann erzeugt die Spei­ cherverwaltung 340 entsprechende GEN/CK0-3-Steuersignale, mit deren Hilfe den jeweiligen Puffereinheiten 610-1 bis 610-3 mitgeteilt wird, die Prüfbitprüfungs-Betriebsart auszuführen, wie bereits anhand der Fig. 7 ausgeführt worden ist. Dies bedeutet, daß nach dem Auslesen der vier Bytes und ihrer jeweiligen vier Prüfbits P 0 bis P 3 aus dem Speicher 370, die Prüfbitschaltungen 640 die Prüfsumme P 0′ bis P 3′ der vier Bytes nach dem Auslesen jeweils erzeugen. Falls eines der alten P 0 bis P 3-Prüf­ bits mit dem entsprechenden neuen P 0′ bis P 3′-Prüfbit nicht übereinstimmt, so wird ein Fehlersignal auf der entsprechenden, an den Eingängen des Fehlertreibers 665 in der Fig. 8 abgebildeten Fehlerleitungen E 0 bis E 3 erzeugt. Der Fehlertreiber 665 führt eine logische NOR-Funktion aus. Wenn auf einer der Fehlerleitungen E 0, E 1, E 2 und E 3 ein Fehlersignal anliegt, dann erzeugt auch der Fehlertreiber 665 ausgangsseitig ein solches Fehlersignal. Es sei angemerkt, daß der Fehlertreiber 665 die interne Niedrigspannung des Datenpuffers 355 zu der externen, an dem mit E gekennzeichneten Fehleran­ schluß 670 vorliegenden TTL-Spannung übersetzt.
Die Fig. 9 ist eine Darstellung der Anschlüsse des Daten­ puffers 355, die die verschiedenen, vorstehend bereits er­ läuterten Eingänge und Ausgänge des Datenpuffers 355 zeigt.
Die Tabelle 1 ist hier enthalten, um die verschiedenen Zustände zusammenzufassen, in denen der Datenpuffer 355 arbeiten kann.
Tabelle 1
Die Tabelle 2 ist hier enthalten, um die verschiedenen Zustände zusammenzufassen, die der Datenpuffer 355 als Antwort auf verschiedene GEN/CK-Signale einnimmt.
Tabelle 2
Die OEAB0-3-Anschlüsse und die GEN/CK0-3-Anschlüsse des Datenpuffers 355 sind miteinander verbunden, so daß die OEAB-Signale (Datentor-Steuersignale), die GEN/CK-Signale widerspiegeln oder ihnen nachfolgen, wie dies in der Fig. 5 gezeigt ist.
Während vorstehend der Aufbau eines Computersystems mit einer verringerten Speicherzugriffszeit beschrieben worden ist, wird nachfolgend ein Ausführungsbeispiel des Verfahrens nach dem Patentanspruch 1 für den Speicher­ zugriff bei einem derartigen Computersystem zusammengefaßt und erläutert. Dieses Verfahren wird in einem Computer­ system verwendet, das einen Seitenspeicher enthält, an den ein Adreßbus und ein Datenbus angeschlossen sind, und das desweiteren in Verbingung damit erste, zweite und nachfolgende Speicherzyklen aufweist. Genauer ent­ hält das Verfahren zum Lesen von in dem genannten Spei­ cher abgespeicherten Informationen den Schritt des An­ legens eines Adreß-Signals an den Speicher, wobei das Adreß-Signal dem Ort der Daten entspricht, auf die in dem Speicher zugegriffen werden soll. Das Verfahren enthält den Schritt, den Speicher mit einem Zeilen­ adreß-Impulssignal (RAS) während des ersten Speicher­ zyklusses zu versorgen und ein Spaltenadreß-Impulssignal während des ersten Speicherzyklusses, aber nach dem RAS-Signal an den Speicher anzulegen. Das Verfahren enthält das Zwischenspeichern der auf diese Weise adressierten Daten für den späteren Transfer zum Datenbus und das Ausführen einer CAS-Aufladung des Speichers nach der Zwischenspeicherung und vor dem Ende des ersten Speicherzyklusses.
Das vorstehende war eine Erläuterung eines Computer­ systems, bei dem die Zugriffszeit auf einen Seiten­ speicher dadurch wesentlich verringert ist, daß die zu dem im nächsten Speicherzyklus erfolgenden Zugriff auf Daten gehörige CAS-Aufladung in den momentanen Speicher­ zyklus vorverlegt ist. Das Computersystem kann bei hohen Taktgeschwindigkeiten arbeiten, ohne bei Zugriff auf den Seitenspeicher zusätzliche Wartezustände auszu­ führen.
Ausgehend von der vorstehend anhand der Zeichnung beschriebenen Ausführung der Erfindung sind für den Fachmann verschiedenartige Änderungen und Modifi­ kationen offensichtlich, ohne dabei vom Kern der Er­ findung abzuweichen.

Claims (3)

1. Verfahren zum Auslesen von Daten aus derselben Seite eines Seitenspeichers (370) in aufeinanderfolgenden Speicherzyklen und
zum Transfer der Daten zu einem Datenbus (250) eines Computersystems, bei dem
in einem momentanen Speicherzyklus dem Seitenspeicher als Adresse der auszulesenden Daten eine Zeilen-(Seiten-)adresse (RAS) und eine Spaltenadresse (CAS) zugeführt wird (415, 425),
die auf diese Weise adressierten Daten aus dem Seitenspeicher ausgelesen werden (430),
die Zeilen-(Seiten-)adresse beibehalten wird,
der Seitenspeicher zum Aufnehmen der Spaltenadresse eines nächsten Speicherzyklus aufgeladen wird (440) und
dem Seitenspeicher die Spaltenadresse des nächsten Speicherzyklus zugeführt wird (450),
dadurch gekennzeichnet, daß die Aufladung des Seitenspeichers zum Aufnehmen der Spaltenadresse des nächsten Speicherzyklus am Ende des momentanen Speicherzyklus vorgenommen wird (Fig. 5b: erster Speicherzyklus) und
die ausgelesenen Daten vor dieser Aufladung für den Transfer zu dem Datenbus zwischengespeichert werden (435, 437).
2. Computersystem zur Durchführung des Verfahrens nach Anspruch 1, dadurch gekennzeichnet, daß ein Zwischenspeicher (355) zwischen den Datenbus (250) und den Seitenspeicher (370) geschaltet ist, in dem die aus dem Seitenspeicher ausgelesenen Daten für den Transfer zu dem Datenbus zwischenspeicherbar sind.
3. Computersystem nach Anspruch 2, dadurch gekennzeichnet, daß der Seitenspeicher (370) dynamische Speicher (371-374) enthält.
DE3909896A 1988-05-26 1989-03-25 Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten Granted DE3909896A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/196,721 US5034917A (en) 1988-05-26 1988-05-26 Computer system including a page mode memory with decreased access time and method of operation thereof

Publications (2)

Publication Number Publication Date
DE3909896A1 DE3909896A1 (de) 1989-11-30
DE3909896C2 true DE3909896C2 (de) 1990-09-20

Family

ID=22726583

Family Applications (2)

Application Number Title Priority Date Filing Date
DE68923403T Expired - Lifetime DE68923403T2 (de) 1988-05-26 1989-03-03 Verfahren und Anordnung zur Adressierung eines Seitenmodus-Speichers in einem Computersystem.
DE3909896A Granted DE3909896A1 (de) 1988-05-26 1989-03-25 Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE68923403T Expired - Lifetime DE68923403T2 (de) 1988-05-26 1989-03-03 Verfahren und Anordnung zur Adressierung eines Seitenmodus-Speichers in einem Computersystem.

Country Status (24)

Country Link
US (1) US5034917A (de)
EP (1) EP0343769B1 (de)
JP (1) JPH06101225B2 (de)
KR (1) KR920010950B1 (de)
CN (1) CN1010809B (de)
AT (1) ATE125058T1 (de)
BE (1) BE1003816A4 (de)
BR (1) BR8902399A (de)
CA (1) CA1319201C (de)
DE (2) DE68923403T2 (de)
DK (1) DK189589A (de)
ES (1) ES2075045T3 (de)
FI (1) FI95971C (de)
GB (1) GB2219418A (de)
HK (1) HK23896A (de)
IT (1) IT1230189B (de)
MX (1) MX167244B (de)
MY (1) MY104737A (de)
NL (1) NL8901237A (de)
NO (1) NO891581L (de)
NZ (1) NZ228610A (de)
PH (1) PH30402A (de)
PT (1) PT90631B (de)
SE (1) SE8901304L (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159679A (en) * 1988-09-09 1992-10-27 Compaq Computer Corporation Computer system with high speed data transfer capabilities
GB9008145D0 (en) * 1989-05-31 1990-06-06 Ibm Microcomputer system employing address offset mechanism to increase the supported cache memory capacity
US5276856A (en) * 1989-09-28 1994-01-04 Pixel Semiconductor, Inc. Memory controller flexible timing control system and method
CA2028085A1 (en) * 1989-11-03 1991-05-04 Dale J. Mayer Paged memory controller
GB2242294B (en) * 1990-03-19 1993-12-22 Apple Computer Memory architecture using page mode writes and single level write buffering
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US6751696B2 (en) 1990-04-18 2004-06-15 Rambus Inc. Memory device having a programmable register
US5247636A (en) * 1990-05-31 1993-09-21 International Business Machines Corporation Digital processor clock circuit
US5301299A (en) * 1990-06-07 1994-04-05 Intel Corporation Optimized write protocol for memory accesses utilizing row and column strobes
US5835945A (en) * 1990-08-06 1998-11-10 Ncr Corporation Memory system with write buffer, prefetch and internal caches
US5278967A (en) * 1990-08-31 1994-01-11 International Business Machines Corporation System for providing gapless data transfer from page-mode dynamic random access memories
US5522064A (en) * 1990-10-01 1996-05-28 International Business Machines Corporation Data processing apparatus for dynamically setting timings in a dynamic memory system
US5274786A (en) * 1990-11-28 1993-12-28 Hewlett-Packard Company Microprocessor memory bus interface for inhibiting relatching of row address portions upon subsequent accesses including a same row address portion
US5265236A (en) * 1990-11-29 1993-11-23 Sun Microsystems, Inc. Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
US5283880A (en) * 1991-01-02 1994-02-01 Compaq Computer Corp. Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
JP3180362B2 (ja) * 1991-04-04 2001-06-25 日本電気株式会社 情報処理装置
US5353417A (en) * 1991-05-28 1994-10-04 International Business Machines Corp. Personal computer with bus interface controller coupled directly with local processor and input/output data buses and for anticipating memory control changes on arbitration for bus access
US5253214A (en) * 1991-09-27 1993-10-12 Eastman Kodak Company High-performance memory controller with application-programmable optimization
US5551054A (en) * 1991-11-19 1996-08-27 Adaptec, Inc. Page mode buffer controller for transferring Nb byte pages between a host and buffer memory without interruption except for refresh
US5295247A (en) * 1992-04-17 1994-03-15 Micronics Computers, Inc. Local IDE (integrated drive electronics) bus architecture
EP0643852B1 (de) * 1992-06-04 1996-10-16 Cabletron Systems, Inc. Adaptive speichersteureinrichtung.
EP0607668B1 (de) * 1993-01-21 1999-03-03 Advanced Micro Devices, Inc. Elektronisches Speichersystem und -verfahren
US5732236A (en) * 1993-05-28 1998-03-24 Texas Instruments Incorporated Circuit and method for controlling access to paged DRAM banks with request prioritization and improved precharge schedule
US5640527A (en) * 1993-07-14 1997-06-17 Dell Usa, L.P. Apparatus and method for address pipelining of dynamic random access memory utilizing transparent page address latches to reduce wait states
JPH07129456A (ja) * 1993-10-28 1995-05-19 Toshiba Corp コンピュータシステム
US5758107A (en) * 1994-02-14 1998-05-26 Motorola Inc. System for offloading external bus by coupling peripheral device to data processor through interface logic that emulate the characteristics of the external bus
KR970001699B1 (ko) * 1994-03-03 1997-02-13 삼성전자 주식회사 자동프리차아지기능을 가진 동기식 반도체메모리장치
JPH07248963A (ja) * 1994-03-08 1995-09-26 Nec Corp Dram制御装置
JPH08314795A (ja) * 1994-05-19 1996-11-29 Hitachi Ltd 記憶装置の読み出し回路及び記憶システム
AU703750B2 (en) * 1994-10-14 1999-04-01 Compaq Computer Corporation Easily programmable memory controller which can access different speed memory devices on different cycles
US5701143A (en) * 1995-01-31 1997-12-23 Cirrus Logic, Inc. Circuits, systems and methods for improving row select speed in a row select memory device
USRE36532E (en) * 1995-03-02 2000-01-25 Samsung Electronics Co., Ltd. Synchronous semiconductor memory device having an auto-precharge function
AU5368696A (en) * 1995-03-22 1996-10-08 Ast Research, Inc. Rule-based dram controller
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5666494A (en) * 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
TW388982B (en) * 1995-03-31 2000-05-01 Samsung Electronics Co Ltd Memory controller which executes read and write commands out of order
US5765203A (en) * 1995-12-19 1998-06-09 Seagate Technology, Inc. Storage and addressing method for a buffer memory control system for accessing user and error imformation
US6209071B1 (en) 1996-05-07 2001-03-27 Rambus Inc. Asynchronous request/synchronous data dynamic random access memory
WO1999019874A1 (en) 1997-10-10 1999-04-22 Rambus Incorporated Power control system for synchronous memory device
US6052756A (en) * 1998-01-23 2000-04-18 Oki Electric Industry Co., Ltd. Memory page management
JPH11272606A (ja) * 1998-03-19 1999-10-08 Fujitsu Ltd バス制御装置
US6643752B1 (en) * 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US7266634B2 (en) * 2000-01-05 2007-09-04 Rambus Inc. Configurable width buffered module having flyby elements
US20050010737A1 (en) * 2000-01-05 2005-01-13 Fred Ware Configurable width buffered module having splitter elements
US7017002B2 (en) * 2000-01-05 2006-03-21 Rambus, Inc. System featuring a master device, a buffer device and a plurality of integrated circuit memory devices
US6502161B1 (en) 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US7404032B2 (en) * 2000-01-05 2008-07-22 Rambus Inc. Configurable width buffered module having switch elements
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US7363422B2 (en) * 2000-01-05 2008-04-22 Rambus Inc. Configurable width buffered module
US6829184B2 (en) * 2002-01-28 2004-12-07 Intel Corporation Apparatus and method for encoding auto-precharge
US7315928B2 (en) * 2005-02-03 2008-01-01 Mediatek Incorporation Apparatus and related method for accessing page mode flash memory
US8607328B1 (en) 2005-03-04 2013-12-10 David Hodges Methods and systems for automated system support
US8032688B2 (en) * 2005-06-30 2011-10-04 Intel Corporation Micro-tile memory interfaces
US8253751B2 (en) * 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US7562271B2 (en) * 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7464225B2 (en) * 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US8878860B2 (en) * 2006-12-28 2014-11-04 Intel Corporation Accessing memory using multi-tiling
US9773533B2 (en) 2013-06-06 2017-09-26 Etron Technology, Inc. Memory with low current consumption and method for reducing current consumption of a memory
CN113361683B (zh) * 2021-05-18 2023-01-10 山东师范大学 一种生物仿脑存储方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4239993A (en) * 1978-09-22 1980-12-16 Texas Instruments Incorporated High performance dynamic sense amplifier with active loads
US4318014A (en) * 1979-07-27 1982-03-02 Motorola, Inc. Selective precharge circuit for read-only-memory
JPS5727477A (en) * 1980-07-23 1982-02-13 Nec Corp Memory circuit
JPS57117168A (en) * 1981-01-08 1982-07-21 Nec Corp Memory circuit
GB2112256B (en) * 1981-11-18 1985-11-06 Texas Instruments Ltd Memory apparatus
US4625300A (en) * 1982-12-01 1986-11-25 Texas Instruments Incorporated Single-ended sense amplifier for dynamic memory array
FR2541796B1 (fr) * 1983-02-25 1987-08-21 Texas Instruments France Dispositif permettant de repartir le temps d'acces d'une memoire sur plusieurs utilisateurs
JPS60108953A (ja) * 1983-11-15 1985-06-14 モトローラ・インコーポレーテツド メモリデータバスの多重化方法
US4623986A (en) * 1984-02-23 1986-11-18 Texas Instruments Incorporated Memory access controller having cycle number register for storing the number of column address cycles in a multiple column address/single row address memory access cycle
JPS6142793A (ja) * 1984-08-02 1986-03-01 Seiko Instr & Electronics Ltd 高速メモリシステム
US4764901A (en) * 1984-08-03 1988-08-16 Kabushiki Kaisha Toshiba Semiconductor memory device capable of being accessed before completion of data output
JPH0799616B2 (ja) * 1984-08-30 1995-10-25 三菱電機株式会社 半導体記憶装置
EP0179351B1 (de) * 1984-10-11 1992-10-07 Hitachi, Ltd. Halbleiterspeicher
JPS61110394A (ja) * 1984-10-31 1986-05-28 Mitsubishi Electric Corp 半導体記憶装置
US4649522A (en) * 1985-02-11 1987-03-10 At&T Bell Laboratories Fast column access memory
JPS6228994A (ja) * 1985-07-29 1987-02-06 Nec Corp メモリ集積回路
US4658381A (en) * 1985-08-05 1987-04-14 Motorola, Inc. Bit line precharge on a column address change
US4754433A (en) * 1986-09-16 1988-06-28 Ibm Corporation Dynamic ram having multiplexed twin I/O line pairs

Also Published As

Publication number Publication date
NO891581D0 (no) 1989-04-18
CN1010809B (zh) 1990-12-12
ES2075045T3 (es) 1995-10-01
FI891784A (fi) 1989-11-27
PT90631A (pt) 1989-11-30
KR920010950B1 (ko) 1992-12-24
MX167244B (es) 1993-03-11
FI891784A0 (fi) 1989-04-14
JPH06101225B2 (ja) 1994-12-12
FI95971B (fi) 1995-12-29
PT90631B (pt) 1994-10-31
CN1037983A (zh) 1989-12-13
DE68923403D1 (de) 1995-08-17
HK23896A (en) 1996-02-16
NO891581L (no) 1989-11-27
BR8902399A (pt) 1990-01-16
GB8904917D0 (en) 1989-04-12
KR890017611A (ko) 1989-12-16
PH30402A (en) 1997-05-08
EP0343769A3 (de) 1992-04-29
GB2219418A (en) 1989-12-06
FI95971C (fi) 1996-04-10
DK189589D0 (da) 1989-04-19
CA1319201C (en) 1993-06-15
JPH0223591A (ja) 1990-01-25
NZ228610A (en) 1991-03-26
IT1230189B (it) 1991-10-18
ATE125058T1 (de) 1995-07-15
IT8920624A0 (it) 1989-05-24
DK189589A (da) 1989-11-27
MY104737A (en) 1994-05-31
EP0343769B1 (de) 1995-07-12
EP0343769A2 (de) 1989-11-29
DE3909896A1 (de) 1989-11-30
NL8901237A (nl) 1989-12-18
US5034917A (en) 1991-07-23
SE8901304D0 (sv) 1989-04-11
BE1003816A4 (fr) 1992-06-23
SE8901304L (sv) 1989-11-27
DE68923403T2 (de) 1996-03-07

Similar Documents

Publication Publication Date Title
DE3909896C2 (de)
DE68910391T2 (de) Verfahren zum Speicherdatenzugriff.
DE68926936T2 (de) Vorrichtung und Technik für Burstprogrammierung
DE3724317C2 (de)
DE69217761T2 (de) Lese- und Schreibschaltung für einen Speicher
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE69029479T2 (de) Hochleistungsspeichersystem
EP0974977A2 (de) Integrierter Speicher
DE2617408A1 (de) Datenverarbeitungsgeraet
EP1291878B1 (de) Steuereinrichtung zur Steuerung von Burst-Zugriffen
DE69333319T2 (de) Datenverarbeitungssystem mit synchronem, dynamischem Speicher in integrierter Schaltkreistechnik
DE3852695T2 (de) Multiprozessorsystem mit mehreren Speichern.
DE10309919A1 (de) Pufferbaustein und Verfahren zum Ansteuern von einer oder mehreren Speicheranordnungen
DE4210857A1 (de) Halbleiterspeichereinrichtung und verfahren zum uebertragen von daten
DE69123987T2 (de) Stossbetrieb für Mikroprozessor mit externem Systemspeicher
DE3588061T2 (de) Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät.
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
AT389951B (de) Datenuebertragungseinrichtung
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
DE3911721C2 (de)
DE10215362A1 (de) Integrierter Speicher mit einem Speicherzellenfeld mit mehreren Speicherbänken und Schaltungsanordnung mit einem integrierten Speicher
DE68924893T2 (de) Datenübertragungsverfahren.
DE69025782T2 (de) Registerbankschaltung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8330 Complete renunciation