DE69230129T2 - Schreibüberlappung mit Verhinderung des Überschreibens - Google Patents

Schreibüberlappung mit Verhinderung des Überschreibens

Info

Publication number
DE69230129T2
DE69230129T2 DE69230129T DE69230129T DE69230129T2 DE 69230129 T2 DE69230129 T2 DE 69230129T2 DE 69230129 T DE69230129 T DE 69230129T DE 69230129 T DE69230129 T DE 69230129T DE 69230129 T2 DE69230129 T2 DE 69230129T2
Authority
DE
Germany
Prior art keywords
memory
write
data
processing system
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69230129T
Other languages
English (en)
Other versions
DE69230129D1 (de
Inventor
Gilman Chesley
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69230129D1 publication Critical patent/DE69230129D1/de
Publication of DE69230129T2 publication Critical patent/DE69230129T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung:
  • Die vorliegende Erfindung bezieht sich auf das Gebiet der Computerspeicher und insbesondere auf eine Einrichtung und ein Verfahren zum vorteilhaften Bereitstellen einer Speicheroperationsüberlappung unter Vermeidung des Problems des Überschreibens.
  • 2. Hintergrund im Stand der Technik:
  • Üblicherweise speichern und lesen Datenverarbeitungssysteme im Speicher vorhandene Daten. Das Speichern von Daten wird im allgemeinen durch die Verwendung einer Schreiboperation ausgeführt, die auf eine bestimmte Adresse im Speicher gerichtet ist, und umfaßt das Weiterleiten von Daten aus einem Prozessor zum Speicher. Das Wiedergewinnen von Daten wird üblicherweise durch die Verwendung einer Leseoperation, die auf eine bestimmte Adresse im Speicher gerichtet ist, ausgeführt und umfaßt das Weiterleiten von Daten aus dem Speicher zu einem Prozessor.
  • Lese- und Schreiboperationen können vorteilhafterweise durch eine Speichersteuereinheit verwaltet werden, die zwischen dem Prozessor und dem Speicher angeordnet ist. Eine derartige Speichersteuereinheit kann darüber hinaus etwas bereitstellen, was als Daten-"Pipelines" bezeichnet wird. Insbesondere können separate Lese- und Schreib-Pipelines bereitgestellt werden, so daß eine Lese-Pipeline, durch welche gelesene Daten aus dem Speicher zu dem Prozessor weitergeleitet werden, von einer Schreib-Pipeline, durch welche zu schreibende Daten von dem Prozessor zu dem Speicher weitergeleitet werden, getrennt ist. Eine Speichersteuereinheit mit separaten Lese- und Schreib-Pipelines ermöglicht ein "Schreib-Überlappen", bei dem eine Schreiboperation vor dem Abschluß einer vorhergehenden Leseoperation gestartet wird.
  • Beim Schreib-Überlappen wird eine Schreiboperation von der Speichersteuereinheit in den letzten Stufen einer vorhergehenden Leseoperation zu einem Zeitpunkt initiiert, zu dem die gelesenen Daten noch durch die getrennte Lese-Pipeline voranschreiten. Die Verwendung des Schreib-Überlappens ist allgemein erwünscht, weil sie die Gesamtgeschwindigkeit des Datenverarbeitungssystems erhöht.
  • Die uneingeschränkte Verwendung des Schreib-Überlappens jedoch schafft ein Problem, wenn eine überlappende Schreiboperation an die gleiche Speicheradresse gerichtet wird, wie die vorhergehende Leseoperation und ein korrigierbarer Bit- Fehler bei der vorhergehenden Leseoperation eine Rückschreiboperation zu dieser Speicheradresse erfordert. Unter diesen Umständen tritt die Rückschreiboperation in fehlerhafter Weise auf, nachdem die überlappende Schreiboperation die Daten an die Speicheradresse schreibt. Die Rückschreiboperation überschreibt folglich fehlerhaft die neu geschriebenen Daten. Wie beschrieben werden wird, ermöglicht die vorliegende Erfindung vorteilhafterweise ein Schreib-Überlappen, während sie das Problem des Überschreibens vermeidet.
  • Beispiele bekannter Anordnungen sind in EP-A-0 141 743 (DEC) und EP-A-0 380 846 (DEC) offenbart, welche sich bei Verwendung anderer Techniken Problemen zuwenden, die denen der vorliegenden Erfindung ähnlich sind.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Die vorliegende Erfindung, wie sie in den unabhängigen Ansprüchen 1 und 11 definiert ist, arbeitet innerhalb eines Datenverarbeitungssystems, das einen Prozessor, Speicher und eine Speichersteuereinrichtung (Speicher-Controller) aufweist. Die Speichersteuereinrichtung, die zwischen dem Prozessor und dem Speicher eingekoppelt ist, stellt separate Daten-Pipelines für aus dem Speicher gelesene Daten und in den Speicher zu schreibende Daten bereit. Grundsätzlich ermöglicht dadurch die Speichersteuereinrichtung, daß Schreiboperationen Leseoperationen überlappen. Die Speichersteuereinrichtung ermöglicht darüber hinaus Rückschreiboperationen in dem Fall, daß ein korrigierbarer Fehler in den Daten, welche aus dem Speicher gelesen wurden, erfaßt wird.
  • Das gegenwärtig bevorzugte Ausführungsbeispiel der Erfindung vermeidet das Problem des "Überschreibens", indem es bestimmte Schreiboperationen verzögert. Die Speicheradresse, zu welcher eine Leseoperation gerichtet wird, wird zunächst zu Vergleichszwecken gespeichert. Diese Speicheradresse wird dann mit derjenigen Speicheradresse verglichen, zu welcher eine nachfolgende Schreiboperation gerichtet ist. Wenn die beiden Adressen äquivalent sind, wird ein Schreib- Wartezähler mit einem vorgegebenen ersten Wert geladen und mit jedem Taktzyklus dekrementiert. Die nachfolgende Schreiboperation wird solange nicht initiiert, bis der Schreib-Wartezähler einen vorgegebenen zweiten Wert erreicht. Die nachfolgende Schreiboperation wird dadurch um eine vorgegebene Zeitdauer verzögert, statt sie zu überlappen, um die Möglichkeit eines fehlerhaften "Überschreibens" zu vermeiden. Ein alternatives Ausführungsbeispiel der vorliegenden Erfindung löst das Problem des "Überschreibens", indem Rückschreiboperationen für Leseoperationen unterdrückt werden, die von Schreiboperationen zur gleichen Adresse gefolgt werden, statt diese Schreiboperationen zu verzögern. Somit ermöglicht die vorliegende Erfindung ein Schreib-Überlappen und Rückschreiben, während sie das Problem des "Überschreibens" vermeidet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Details werden unten unter Zuhilfenahme der in den beigefügten Zeichnungen veranschaulichten Beispiele erläutert, wobei in den Zeichnungen:
  • Fig. 1 eine Funktionsblockdarstellung eines möglichen Datenverarbeitungssystems ist, das die Lehren der vorliegenden Erfindung benutzt.
  • Fig. 2 ist ein Funktionsblockschaltbild der Module und Warteschlangen innerhalb der Speichersteuereinrichtung, die für die vorliegende Erfindung relevant sind.
  • Fig. 3 ist ein Ablaufdiagramm, das das Verfahren des gegenwärtig bevorzugten Ausführungsbeispiels veranschaulicht.
  • Fig. 4 ist ein Ablaufdiagramm, das das Verfahren des alternativen Ausführungsbeispiels veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es werden eine Speichersteuereinrichtung und ein Verfahren offenbart, die in einem Datenverarbeitungssystem Anwendung finden. Insbesondere ist die vorliegende Erfindung auf das in der Veröffentlichung GB-A-2246219, die am 22.01.1992 veröffentlicht wurde, beschriebene Datenverarbeitungssystem anwendbar. Diese Anmeldung offenbart ein verbessertes Single-in-line-Speichermodul (SIMM), das dynamische Speicher mit wahlfreiem Zugriff (DRAMs) benutzt, die insbesondere bei einem Digitalcomputer zum Speichern und Lesen von Daten und Programmen Anwendung finden. Während die vorliegende Erfindung zumindest teilweise innerhalb des Kontext dieses speziellen Datenverarbeitungssystems beschrieben wird, ist es für einen Fachmann klar, daß die vorliegende Erfindung bei einer Vielzahl von Datenverarbeitungssystemen verwendet werden kann.
  • In der folgenden Beschreibung werden aus Gründen der Erläuterung zahlreiche Details angegeben, wie beispielsweise spezielle Speichergrößen, Datenpfade, etc., um ein sorgfältigeres Verständnis der vorliegenden Erfindung zu erreichen. Für einen Fachmann ist es jedoch klar, daß diese speziellen Details nicht erforderlich sind, um die vorliegende Erfindung auszuführen. An anderen Stellen werden gut bekannte elektrische Strukturen und Schaltungen in Blockschaltbildform gezeigt, um die vorliegende Erfindung nicht unnötigerweise zu verdunkeln.
  • Fig. 1 veranschaulicht ein mögliches Datenverarbeitungssystem, in welchem die Lehren der vorliegenden Erfindung benutzt werden können. Ein Prozessor 10 ist mit einem Systembus 12 zur Kommunikation mit verschiedenen Systemkomponenten gekoppelt, die Eingabe/Ausgabe-Einrichtungen 14 und eine Speichersteuereinrichtung 16 umfassen. Der Prozessor 10 speichert und liest Daten, welche Programme und/oder alphanumerische oder andere Daten umfassen können und sich in Single-in-line-Speichermodulen (SIMMs 20, 21, 22 und 23) befinden. Jedes dieser SIMMs 20-23 enthält sechzehn dynamische Speicherbauelemente mit wahlfreiem Zugriff (DRAMs). Wie veranschaulicht, kommunizieren die SIMMs 20-23 mit der Speichersteuereinrichtung 16 über einen Speicherbus 24. Zusätzlich stellt ein Taktgeber 26 zeitlich abgeglichene digitale Taktsignale über den Speicherbus 24 an die SIMMs 20-23 zur Verfügung. Obwohl Fig. 1 vier Single-in-line-Speichermodule veranschaulicht, die mit dem Speicherbus 24 gekoppelt ist, ist es für einen Fachmann auf diesem Gebiet klar, daß die vorliegende Erfindung in einem Datenverarbeitungssystem mit einer beliebigen Anzahl von SIMMs verwendet werden kann.
  • Im Betrieb gibt der Prozessor 10 Lese- und Schreibkommandos über den Systembus 12 aus, welcher wiederum die Kommandos mit der Speichersteuereinrichtung 16 koppelt. Bei einer Leseoperation werden Daten aus den SIMMs an die Speichersteuereinrichtung 16 über den Speicherbus 24 gekoppelt, und die Speichersteuereinrichtung 16 koppelt dann die Daten an den Systembus, damit sie gelesen werden. Bei einer Schreiboperation werden die Daten an die Speichersteuereinrichtung 16 über den Systembus 12 angekoppelt, und die Speichersteuereinrichtung 16 koppelt dann die Daten an die SIMMs über den Speicherbus 24. Es werden verschiedene Steuersignale von der Speichersteuereinrichtung 16 bereitge stellt, um die Speicherung von Daten, das Wiedergewinnen (Lesen) von Daten und die Auffrischung der DRAMs innerhalb der SIMMs auszuführen. Insbesondere stellt die Speichersteuereinrichtung 16 Zeilenadreß-Strobe-Signale (RAS), Spaltenadreß-Strobe-Signale (CAS) und Ladeimpulse (LDL) für die in den SIMMs angeordneten DRAMs neben andere Zeitgabesignalen, die der Speicherung und dem Lesen von Daten in den SIMMs zugeordnet sind, zur Verfügung.
  • Im folgenden wird das Schreib-Überlappen mit dem Überschreiben-Vermeidungssystem gemäß der vorliegenden Erfindung beschrieben. Fig. 2 veranschaulicht ein Funktionsblockschaltbild der Module und Warteschlangen in der Speichersteuereinrichtung 16, die für die vorliegende Erfindung relevant sind. Im allgemeinen ist der Systembus 12 mit der Speichersteuereinrichtung 16 über die Systembussteuerlogik 30 gekoppelt. Insbesondere werden Speicheroperationskommandos, welche mit dem Systembus 12 gekoppelt worden sind, mit der Speichersteuereinrichtung 16 über die Systembussteuerlogik 30 gekoppelt. Die Systembussteuerlogik 30 koppelt die Speicheroperationskommandos mit einer Speicheroperationskommandowarteschlange (CMDQUE) 32. Daten, welche, beispielsweise bei einer Schreiboperation, mit dem Systembus gekoppelt worden sind, werden in ähnlicher Weise über die Systembussteuerlogik 30 mit einer Daten-hinein-Warteschlange (DIQUE) 50 gekoppelt. Speicheradressen, welche mit dem Systembus 12 gekoppelt worden sind, werden über die Systembussteuerlogik 30 mit einer Adreß-Warteschlange (ADRQUE) 60 gekoppelt. Daten, welche beispielsweise bei einer Leseoperation auf den Speicherbus 24 gekoppelt worden sind, werden mit einer Daten-hinaus-Warteschlange (DOQUE) 50 gekoppelt, welche wiederum die Daten über die Systembussteuerlogik 30 mit dem Systembus 12 koppelt.
  • Die Speichersteuereinrichtung 16 enthält ferner ein Speicher-Master-Modul 34, ein Speicher-Slave-Modul 38 und ein Speichersteuermodul 36. Das Speicher-Master-Modul 34 verkörpert eine Zustandsmaschine und ist die Master-Steuereinrichtung zum Ausführen von Speicheroperationen (Leseoperationen werden, wie beschrieben werden wird, von dem Speicher-Slave-Modul 38 überwacht). Das Speicher-Master- Modul 34 ist mit der Speicheroperationskommandowarteschlange 32 gekoppelt, welche dem Speicher-Master-Modul 34 Speicheroperationskommandos zur Verfügung stellt. Das Speicher- Master-Modul 34 enthält einen Schreib-Wartezähler (WWC) 35. Wie beschrieben werden wird, veranlaßt der Schreib-Wartezähler 35 selektiv, daß bestimmte Schreiboperationen eine vorgegebene Zeitdauer warten, bevor sie fortgesetzt werden.
  • Das Speicher-Slave-Modul 38 verkörpert eine Zustandsmaschine, die eine Logik zum Überwachen und Steuern von Leseoperationen enthält. Diese Logik ist von dem Speicher- Master-Modul 34 getrennt, um ein Überlappen zwischen einer Leseoperation und nachfolgenden Speicheroperationen zu ermöglichen. Das Speicher-Slave-Modul 38 steuert den Verlauf einer Leseoperation, indem es Steuersignale an die Datenhinaus-Warteschlange (DOQUE) 52 ausgibt. Eine weitere Hauptaufgabe des Speicher-Slave-Moduls 38 besteht darin, Speicherfehler, die von einem Fehlererfassungs- und Steuermodul 70 erfaßt wurden, zu behandeln. Das Fehlererfassungs- und -korrekturmodul 70 empfängt aus dem Speicher über den Speicherbus 24 gelesene Daten. Wie beschrieben werden wird, koppelt es dann, wenn das Fehlererfassungs- und Korrekturmodul 70 bestimmt, daß ein Fehler aufgetreten ist, ein Fehlersteuersignal an das Speicher-Slave-Modul 38.
  • Sowohl das Speicher-Master-Modul 34 als auch das Speicher-Slave-Modul 38 sind mit einem Speichersteuermodul 36 gekoppelt. Das Speichersteuermodul 36 stellt die Zeitgabesignale, RAS, CAS und LD_L, über den Speicherbus 24 an die DRAMs in den SIMMs zur Verfügung (siehe Fig. 1). Darüber hinaus stellt das Speichersteuermodul 36 Zeitgabesignale an das Speicher-Master-Modul 34 und das Speicher-Slave-Modul 38 zur Verfügung, wodurch die Zeitgabe der Zustandsmaschinen dieser Module kontrolliert wird.
  • Im folgenden wird die allgemeine Operation der vorliegenden Erfindung beschrieben. Im Falle einer Leseoperation wird ein Lesekommando aus dem Systembus 12 über die Systembussteuerlogik 30 an die Speicheroperationskommandowarteschlange (CMDQUE) 32 gekoppelt. Die spezielle zu lesende Speicheradresse wird aus dem Systembus 12 über die Systembussteuerlogik 30 an die Adreßwarteschlange (ADRQUE) 60 gekoppelt. Wie erläutert werden wird, wird bei Leseoperationen diese spezielle Speicheradresse in einem Frühere- Adresse-Register (PAR) 80 für einen Vergleich mit der Speicheradresse einer unmittelbar nachfolgenden Schreiboperation eingefangen. Die Speicheroperationskommandowarteschlange 32 koppelt das Lesekommando an das Speicher-Master-Modul 34, welches in Erwiderung ein Steuersignal an das Speichersteuermodul 36 koppelt, um die für diese Leseoperation erforderlichen Zeitgabesignale zu aktivieren. Die Adreßwarteschlange 60 stellt die Speicheradresse für die Leseoperationen an das Speichersteuermodul 36 bereit.
  • Daten, welche aus dem Speicher gelesen werden sollen, werden dann auf dem Speicherbus 24 plaziert. Aus dem Speicherbus 24 werden die Daten zu dem Fehlererfassungs- und Steuermodul 70 gekoppelt, welches Einzel- und Doppelbitfehler erfaßt. Angenommen, daß kein Fehler erfaßt wird, so werden die Daten dann zu der Daten-hinaus-Warteschlange (DOQUE) 52 gekoppelt, welche wiederum die Daten an den Systembus 12 koppelt. Sofern entweder ein Einzel- oder ein Doppelbitfehler erfaßt wird, liefert das Fehlererfassungs- und Steuermodul 70 entweder ein SBE- oder DBE-Steuersignal an das Speicher-Slave-Modul 38. Sofern der Bitfehler korrigierbar ist, wie im Falle eines Einzelbitfehlers, werden die Daten korrigiert, und es wird eine Rückschreiboperation initiiert. Insbesondere stellt das Speicher-Slave-Modul 38 ein SBEWB-Steuersignal an das Speicher-Master-Modul 34 zur Ver fügung, das ein Rückschreiben anfordert. In Erwiderung stellt das Speicher-Master-Modul 34 ein Steuersignal an das Speichersteuermodul 36 zur Verfügung, um die für das Rückschreiben erforderlichen Zeitgabesignale zu aktivieren. Die rückzuschreibenden Daten werden dann aus der Daten-hinaus- Warteschlange 52 über einen Multiplexer 72 zu dem Speicherbus 24 unter der Steuerung des Speicher-Slave-Moduls 38 und der Zeitgabesignale aus dem Speichersteuermodul 36 gekoppelt.
  • Im Falle einer Schreiboperation wird das Schreibkommando aus dem Systembus 12 über die Systembussteuerlogik 30 an die Speicheroperationswarteschlange (CMDQUE) 32 gekoppelt. Die bestimmte Speicheradresse, in die geschrieben werden soll, wird aus dem Systembus 12 über die Systembussteuerlogik an die Adreßwarteschlange (ADRQUE) 60 gekoppelt. Die Speicheroperationswarteschlange 32 koppelt das Schreibkommando an das Speicher-Master-Modul 34, welches in Erwiderung ein Steuersignal an das Speichersteuermodul 36 koppelt, um die für die Schreiboperation erforderlichen Zeitgabesignale zu aktivieren. Die Adreßwarteschlange 60 koppelt darüber hinaus die Speicheradresse, zu der geschrieben werden soll, an das Steuermodul 36. Die in den Speicher zu schreibenden Daten werden aus dem Systembus 12 in die Daten-hinein-Warteschlange (DIQUE) 50 gekoppelt. Die Daten werden dann über den Multiplexer 72 an den Speicherbus 24 gekoppelt.
  • Aus der vorstehenden Beschreibung wird klar, daß Daten im wesentlichen durch zwei Pipelines in der Speichersteuereinrichtung 16 fließen. Daten, welche aus dem Speicher gelesen werden sollen, fließen von dem Speicherbus 24 durch das Fehlererfassungs- und Korrekturmodul 70, durch die Datenhinaus-Warteschlange 52 zu dem Systembus 12. Daten, welche in den Speicher geschrieben werden sollen, fließen von dem Systembus 12 zur der Daten-hinein-Warteschlange 50, durch den Multiplexer 72 zu dem Speicherbus 24. Indem zwei verschiedene Daten-Pipelines bereitgestellt werden, gestattet die Speichersteuereinrichtung 16 einen Grad der Überlappung bei Speicheroperationen. Insbesondere kann eine Schreiboperation über eine vorhergehende Leseoperation überlappt werden. Sobald beispielsweise das letzte Wort gelesener Daten den Speicherbus 24 geräumt hat und der Speichersteuereinrichtung 16 eingekoppelt worden ist, kann eine Schreiboperation vorteilhafterweise von dem Speicher-Master-Modul 34 initiiert werden und die Schreib-Pipeline benutzen. Auf diese Weise können dann, wenn eine Schreiboperation einer Leseoperation folgt, frühe Zyklen der Schreiboperation die späten Zyklen der Leseoperation überlappen. Dieses Schreib- Überlappen erhöht vorteilhafterweise die Gesamtgeschwindigkeit des Datenverarbeitungssystems.
  • Wie jedoch oben beschrieben, präsentiert die uneingeschränkte Verwendung des Schreib-Überlappens dann ein Problem, wenn eine überlappende Schreiboperation an die gleiche Speicheradresse gerichtet wird wie die vorhergehende Leseoperation und ein korrigierbarer Bitfehler in der vorhergehenden Leseoperation eine Rückschreiboperation zu dieser speziellen Speicheradresse erfordert. Unter diesen Umständen tritt die Rückschreiboperation fehlerhafterweise auf, nachdem die überlappende Schreiboperation Daten zu der Speicheradresse schreibt, und im Ergebnis überschreibt die Rückschreiboperation fehlerhafterweise die neu eingeschriebenen Daten.
  • Das gegenwärtig bevorzugte Ausführungsbeispiel der Erfindung überwindet dieses Überschreib-Problem, indem die Speicheradresse einer Leseoperation in dem Frühere-Adresse- Register (PAR) 80 eingefangen wird. Wenn eine Schreiboperation einer Leseoperation folgt, wird die Speicheradresse für die Schreiboperation mit der Speicheradresse für die vorhergehende Leseoperation, die in dem Frühere-Adresse-Register 80 gespeichert ist, verglichen. Dieser Vergleich wird mit einem Komparator, wie beispielsweise dem Komparator 82, ausgeführt. In dem Fall, daß die Speicheradressen äquivalent sind, koppelt der Komparator 82 ein ADR_EQ-Steuersignal an das Speicher-Master-Modul 34. In Erwiderung dessen verzögert das Speicher-Master-Modul 34 die Initiierung der Schreiboperation für eine Zeitdauer, die im allgemeinen der Zeitdauer entspricht, die zum Abschluß der vorhergehenden Leseoperation erforderlich ist.
  • Insbesondere lädt in Erwiderung eines ADR_ EQ-Steuersignals das Speicher-Master-Modul 34 einen Schreib-Wartezähler 35 mit einem vorgegebenen ersten Wert. Der Schreib-Wartezähler 35 wird anschließend mit jedem Taktzyklus dekrementiert, bis ein vorgegebener zweiter Wert erreicht ist. Das Speicher-Master-Modul 34 initiiert keine nachfolgende Schreiboperation, bis der Schreib-Wartezähler 35 diesen vorgegebenen zweiten Wert erreicht. Der vorgegebene erste Wert wird grundsätzlich so ausgewählt, daß die Zeitdauer, die benötigt wird, um den Schreib-Wartezähler von diesem vorgegebenen ersten Wert zu dem vorgegebenen zweiten Wert zu dekrementieren, der zum Abschließen der Leseoperation erforderlichen Zeitdauer entspricht. Der Schreib-Wartezähler 35 verzögert somit die Initiierung der nachfolgenden Schreiboperation und schließt die Möglichkeit eines potentiellen falschen Überschreibens aus.
  • Bei dem gegenwärtig bevorzugten Ausführungsbeispiel zählt der Schreib-Wartezähler 35 von einem vorgegebenen ersten Wert herunter zu einem vorgegebenen zweiten Wert von Null. Es ist jedoch klar, daß die vorliegende Erfindung in keiner Weise auf diesen speziellen vorgegebenen zweiten Wert eingeschränkt ist. Es ist darüber hinaus klar, daß eine beträchtliche Anzahl von Schreiboperationen, welche Leseoperationen folgen, nicht zu der gleichen Speicheradresse gerichtet sein wird. Folglich schafft die vorliegende Erfindung ein substantielles Schreib-Überlappen, während nur eine begrenzte Anzahl von Schreiboperationen verzögert wird.
  • Ein alternatives Ausführungsbeispiel der vorliegenden Erfindung unterdrückt Fehlerrückschreiboperationen für Lese operationen, welche von Schreiboperationen zur gleichen Adresse gefolgt sind. Wie bei dem bevorzugten Ausführungsbeispiel wird dann, wenn eine Schreiboperation einer Leseoperation folgt, die Speicheradresse für die Schreiboperation mit der Speicheradresse für die vorhergehende Leseoperation, die in dem Frühere-Adresse-Register 80 gespeichert ist, verglichen. In dem Fall, daß die Speicheradressen äquivalent sind, koppelt der Komparator 82 ein ADR_ EQ-Steuersignal an das Speicher-Master-Modul 34. Bei diesem alternativen Ausführungsbeispiel jedoch enthält das Speicher- Master-Modul 34 eine Logik derart, daß es irgendwelche Fehlerrückschreiboperationen, die in Bezug auf vorhergehende Leseoperationen angefordert wurden, unterdrückt, statt die nachfolgende Schreiboperation für eine Zeitdauer unter Verwendung eines Schreib-Wartezählers zu verzögern. Wie zuvor erörtert, stellt dann, wenn ein korrigierbarer Fehler entdeckt wird, das Speicher-Slave-Modul 38 ein SBEWB-Steuersignal an das Speicher-Master-Modul 34 zur Verfügung, das ein Fehlerrückschreiben anfordert. Bei diesem alternativen Ausführungsbeispiel gewährt das Speicher-Master-Modul 34 in dem Falle einer Äquivalenz zwischen der Speicheradressen für eine Leseoperation und eine nachfolgende Schreiboperation diese Rückschreibanforderung einfach nicht, wodurch im Endeffekt jede derartige Anforderung unterdrückt wird. Somit ist es klar, daß dieses alternative Ausführungsbeispiel die Möglichkeit eines falschen Überschreibens ausschließt.
  • Fig. 3 ist ein Ablaufdiagramm, das das Verfahren des bevorzugten Ausführungsbeispiels der Vorliegenden Erfindung veranschaulicht. Anfänglich wird die Speicheradresse einer Leseoperation für Vergleichszwecke gespeichert. Die Speicheradresse einer nachfolgenden Schreiboperation wird mit der gespeicherten Speicheradresse der Leseoperation verglichen. Wenn die beiden Adressen gleich sind, wird ein Schreib-Wartezähler mit einem ersten vorgegebenen Wert geladen, und die Schreiboperation wird verzögert, bis der Schreib-Wartezähler einen zweiten vorgegebenen Wert erreicht. Wenn die beiden Adressen nicht gleich sind, wird die Schreiboperation ohne Verzögerung fortgesetzt, wobei sie die Leseoperation überlappt.
  • Fig. 4 ist ein Ablaufdiagramm, das das Verfahren des zuvor beschriebenen alternativen Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht. Anfänglich wird die Speicheradresse einer Leseoperation für einen Vergleich gespeichert. Die Speicheradresse einer nachfolgenden Schreiboperation wird mit der gespeicherten Speicheradresse der Leseoperation verglichen. Wenn die beiden Adressen gleich sind, wird ein Fehlerrückschreiben für die Leseoperation unterdrückt und das Schreib-Überlappen wird fortgesetzt. Wenn die beiden Adressen nicht gleich sind, wird die Schreiboperation ohne Verzögerung fortgesetzt, wobei sie die Leseoperation überlappt, und ein Fehler-Rückschreiben wird ermöglicht.

Claims (13)

1. Ein das Initiieren einer Schreiboperation vor dem Abschluß einer vorhergehenden Leseoperation gestattendes Datenverarbeitungssystem mit einem Schreib-Überlappen, wobei das Datenverarbeitungssystem aufweist:
einen Prozessor (10);
einen Speicher (20-23) zum Speichern und wiedergewinnen von Daten;
einen mit dem Speicher (20-23) gekoppelten Speicherbus (24),
einen mit dem Prozessor (10) gekoppelten Systembus (12); und
mit dem Prozessor (10) über den Systembus (12) und mit dem Speicher (20-23) über den Speicherbus (24) gekoppelte Speichersteuermittel (16) zum Bereitstellen von Speicheradressen, Daten und Steuersignalen für Lese-, Schreib- und Fehler-Rückschreib-Operationen aus dem und zu dem Speicher (20-23), wobei die Speichersteuermittel (16) aufweisen:
Mittel zum Erfassen und Korrigieren von Bit- Fehlern (70) in Daten, die aus dem Speicher (20- 23) gelesen wurden;
Mittel zum Steuern von Fehler-Rückschreib- Operationen (38) zu dem Speicher (20-23), wobei die gelesenen Daten zurück zu dem Speicher (20-23) geschrieben werden, nachdem die Bit-Fehler erfaßt und korrigiert worden sind; gekennzeichnet durch:
Mittel zum Initiieren einer Schreiboperation vor dem Abschluß einer vorhergehenden Leseoperation (34); und
Mittel zum Verhindern des Auftretens eines Überschreibens, wobei die Fehler-Rückschreib- Mittel daran gehindert werden, Daten zu über schreiben, die von der vor dem Abschluß einer vorhergehenden Leseoperation für den gleichen Speicherplatz initiierten Schreiboperation geschrieben wurden.
2. Das Datenverarbeitungssystem nach Anspruch 1, wobei die Mittel zum Verhindern des Auftretens (82) eines Überschreibens aufweisen:
Mittel zum selektiven Verzögern der Initiierung einer Schreiboperation beim Auftreten einer vorgegebenen Bedingung (34).
3. Das Datenverarbeitungssystem nach Anspruch 2, wobei die Schreiboperation vor dem Abschluß der vorhergehenden Leseoperationen und unmittelbar, nachdem das letzte Wort der gelesenen Daten den Speicherbus (24) geräumt und in die Speichersteuereinrichtung (16) eingekoppelt worden ist, initiiert wird.
4. Ein Datenverarbeitungssystem nach Anspruch 2, wobei die Mittel zum selektiven Verzögern der Initiierung einer Schreiboperation bei Auftreten einer vorgegebenen Bedingung (34) umfassen
einen Schreib-Warte-Zähler (35) zum Zählen von einem ersten vorgegebenen Wert auf einen zweiten vorgegebenen Wert.
5. Ein Datenverarbeitungssystem nach Anspruch 4, wobei die Mittel zum selektiven Verzögern der Initiierung einer Schreiboperation bei Auftreten einer vorgegebenen Bedingung (34) die Schreiboperation verzögern, bis der Schreibzähler (35) den zweiten vorgegebenen Wert erreicht.
6. Ein Datenverarbeitungssystem nach Anspruch 2, wobei die Mittel zum selektiven Verzögern des Initiierens einer Schreiboperation bei Auftreten einer vorgegebenen Bedingung (34) ferner umfassen:
einen Komparator zum Vergleichen einer Speicheradresse für die Schreiboperationen mit einer Speicheradresse für die vorhergehende Leseoperation.
7. Ein Datenverarbeitungssystem nach Anspruch 6, wobei die vorgegebene Bedingung eine Äquivalenz zwischen der Speicheradresse für die Schreiboperation und der Speicheradresse für die vorgegebene Leseoperation umfaßt.
8. Das Datenverarbeitungssystem nach Anspruch 1, wobei die Mittel zum Verhindern des Auftretens (82) eines Überschreibens aufweisen:
Mittel zum selektiven Unterdrücken des Initiierens von Fehler-Rückschreib-Operationen bei Auftreten einer vorgegebenen Bedingung.
9. Das Datenverarbeitungssystem nach Anspruch 8, wobei die Mittel zum selektiven Unterdrücken des Initiierens bestimmter Fehler-Rückschreib-Operationen bei Auftreten einer vorgegebenen Bedingung umfassen:
einen Komparator (82) zum Vergleichen einer Speicheradresse für die Schreiboperation mit einer Speicheradresse für die vorhergehende Leseoperation.
10. Das Datenverarbeitungssystem nach Anspruch 9, wobei die vorgegebene Bedingung die Äquivalenz zwischen der Speicheradresse für die Schreiboperationen und der Speicheradresse für die vorhergehende Leseoperation einschließt.
11. Ein Verfahren zum Verhindern des Überschreibens in einem Datenverarbeitungssystem mit einem Schreib-Überlappen, das einen Prozessor (10), Speicher (20-23) und eine Speichersteuereinrichtung (16) zum Steuern von Speicheroperationen einschließlich Lese-, Schreib- und Fehler-Rückschreib-Operationen, die auf Speicheradressen gerichtet sind, aufweist, wobei das Verfahren den Schritt aufweist des:
Erfassens und Korrigierens eines Bit-Fehlers in Daten, die aus dem Speicher (20-23) während einer Leseoperation gelesen wurden; und
Initiierens einer Fehler-Rückschreib-Operation zu dem Speicher, während der Leseoperation, nachdem die Bit-Fehler erfaßt und korrigiert worden sind, gekennzeichnet durch die Schritte des:
Initiierens einer Schreiboperation vor dem Abschluß einer vorhergehenden Leseoperation; und
Vergleichens einer Speicheradresse für die Schreiboperation mit einer Speicheradresse für die Leseoperation; und
Verwendens eines Ergebnisses des Vergleichs, um ein Auftreten eines Überschreibens zu vermeiden, wobei die Fehler-Rückschreib-Operation verhindert wird.
12. Das Verfahren zum Ermöglichen eines Schreib-Überlappens, während ein Überschreiben verhindert wird, nach Anspruch 11, wobei der Verwendungsschritt umfaßt:
Verzögern der Schreiboperation, wenn der Vergleich eine Äquivalenz zwischen der Speicheradresse für die Schreiboperation und der Speicheradresse für die vorhergehende Leseoperation ergibt, um Zeit für die Fehler-Rückschreib-Operation zur Verfügung zu stellen, damit diese das Schreiben in den Speicher (20-23) abschließen kann.
13. Das Verfahren zum Ermöglichen von Schreib-Überlappen, während ein Überschreiben verhindert wird, nach Anspruch 11, wobei der Verwendungsschritt umfaßt:
Unterdrücken der Fehler-Rückschreib-Operation für die vorhergehende Leseoperation, wenn der Vergleich eine Äquivalenz zwischen der Speicheradresse für die Schreiboperation und die Speicheradresse für die vorhergehende Leseoperation ergibt.
DE69230129T 1991-12-18 1992-11-18 Schreibüberlappung mit Verhinderung des Überschreibens Expired - Fee Related DE69230129T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US80966791A 1991-12-18 1991-12-18

Publications (2)

Publication Number Publication Date
DE69230129D1 DE69230129D1 (de) 1999-11-18
DE69230129T2 true DE69230129T2 (de) 2000-06-15

Family

ID=25201927

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69230129T Expired - Fee Related DE69230129T2 (de) 1991-12-18 1992-11-18 Schreibüberlappung mit Verhinderung des Überschreibens

Country Status (5)

Country Link
US (1) US5687183A (de)
EP (1) EP0547769B1 (de)
JP (1) JP3463816B2 (de)
KR (1) KR100274326B1 (de)
DE (1) DE69230129T2 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470405B2 (en) * 1995-10-19 2002-10-22 Rambus Inc. Protocol for communication with dynamic memory
KR100222787B1 (ko) * 1996-09-02 1999-10-01 윤종용 전화기에서 전화번호 선택 등록방법
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
US6266379B1 (en) 1997-06-20 2001-07-24 Massachusetts Institute Of Technology Digital transmitter with equalization
US6263448B1 (en) 1997-10-10 2001-07-17 Rambus Inc. Power control system for synchronous memory device
US6154821A (en) 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
US6223299B1 (en) * 1998-05-04 2001-04-24 International Business Machines Corporation Enhanced error handling for I/O load/store operations to a PCI device via bad parity or zero byte enables
AUPP702498A0 (en) * 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART77)
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US7742506B2 (en) * 2005-05-27 2010-06-22 Agere Systems Inc. Controlling timeslot delay in a digital communication system
US7831882B2 (en) * 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US9459960B2 (en) * 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7562285B2 (en) * 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US20080006158A1 (en) * 2006-07-05 2008-01-10 Oreck Holdings, Llc Air cleaner and air cleaner diagnostic process
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
JP4864762B2 (ja) * 2007-02-19 2012-02-01 株式会社東芝 半導体記憶装置
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US9632870B2 (en) * 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US8190972B2 (en) * 2008-09-15 2012-05-29 Lsi Corporation Error checking and correction overlap ranges
CN102576330B (zh) 2009-06-12 2015-01-28 提琴存储器公司 具有持久化无用单元收集机制的存储系统
JP4746699B1 (ja) * 2010-01-29 2011-08-10 株式会社東芝 半導体記憶装置及びその制御方法
US9116625B2 (en) 2012-05-11 2015-08-25 Micron Technology, Inc. Write command overlap detection
WO2015026826A1 (en) * 2013-08-21 2015-02-26 Everspin Technologies, Inc. Non-destructive write/read leveling
US10474390B1 (en) * 2017-05-04 2019-11-12 Xilinx, Inc. Systems and method for buffering data using a delayed write data signal and a memory receiving write addresses in a first order and read addresses in a second order
WO2019190866A1 (en) 2018-03-26 2019-10-03 Rambus Inc. Command/address channel error detection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
BR8503913A (pt) * 1984-08-18 1986-05-27 Fujitsu Ltd Sistema e processo de recuperacao de erros em um processador de dados do tipo de canalizacao tendo um dispositivo de memoria de controle e processo de recuperacao de erros em um processador de dados do tipo de canalizacao
US5101478A (en) * 1985-06-28 1992-03-31 Wang Laboratories, Inc. I/O structure for information processing system
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection
US5121479A (en) * 1988-01-27 1992-06-09 Storage Technology Corporation Early start mode data transfer apparatus
US5019965A (en) * 1989-02-03 1991-05-28 Digital Equipment Corporation Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US5125083A (en) * 1989-02-03 1992-06-23 Digital Equipment Corporation Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
US5220312A (en) * 1989-09-29 1993-06-15 International Business Machines Corporation Pixel protection mechanism for mixed graphics/video display adaptors
US5197144A (en) * 1990-02-26 1993-03-23 Motorola, Inc. Data processor for reloading deferred pushes in a copy-back data cache
US5155843A (en) * 1990-06-29 1992-10-13 Digital Equipment Corporation Error transition mode for multi-processor system

Also Published As

Publication number Publication date
KR930014042A (ko) 1993-07-22
JPH06103153A (ja) 1994-04-15
JP3463816B2 (ja) 2003-11-05
KR100274326B1 (ko) 2000-12-15
EP0547769B1 (de) 1999-10-13
DE69230129D1 (de) 1999-11-18
US5687183A (en) 1997-11-11
EP0547769A1 (de) 1993-06-23

Similar Documents

Publication Publication Date Title
DE69230129T2 (de) Schreibüberlappung mit Verhinderung des Überschreibens
DE3876780T2 (de) Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung.
DE69124905T2 (de) Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem
DE3115541C2 (de)
DE69018112T2 (de) Hochleistungsspeichersystem.
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE3724317C2 (de)
DE69327703T2 (de) Mikroprozessor mit Busbreite-Wechselfunktion
DE69814137T2 (de) Cache-speicherbetrieb
DE68920419T2 (de) Verfahren und Anordnung für eine leistungsfähige DRAM-Steuerung.
DE69333319T2 (de) Datenverarbeitungssystem mit synchronem, dynamischem Speicher in integrierter Schaltkreistechnik
DE69026479T2 (de) Datenprozessor mit Wartezustandsteuerungseinheit
DE69217761T2 (de) Lese- und Schreibschaltung für einen Speicher
DE19860650B4 (de) Synchrone Halbleiter-Speichervorrichtung mit einer Chip-Satz-Speichersteuervorrichtung mit Datenausblend-Maskenfunktion
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE10059596A1 (de) Verfahren zur Zeiteinstellung eines Systemspeichers
DE2953861C2 (de)
DE3885985T2 (de) Speichersteueranordnung für ein Daten verarbeitendes System.
DE69228233T2 (de) Wahlfreie Auffrischung
DE10125724B4 (de) Speichersystem, Speicherbauelement und Speicherdatenzugriffsverfahren
DE69605820T2 (de) Datenfehler-detektion und -korrektur für gemeinsamen speicher
DE69515811T2 (de) Zeitüberwachungsschaltung mit Schaltung zur Verhinderung von Blockierungen
DE69427512T2 (de) Direktspeicherzugriffssteuerung
DE4005042C2 (de) Mehrrechnersystem zur Durchführung von Bewegungssteuerungen
DE69033031T2 (de) Programmierbares Steuergerät

Legal Events

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