DE69924081T2 - Vorrichtung, System und Verfahren zur Verringerung von Buszugriffskonflikten während aufeinanderfolgenden Lese-Schreib-Operationen - Google Patents

Vorrichtung, System und Verfahren zur Verringerung von Buszugriffskonflikten während aufeinanderfolgenden Lese-Schreib-Operationen Download PDF

Info

Publication number
DE69924081T2
DE69924081T2 DE69924081T DE69924081T DE69924081T2 DE 69924081 T2 DE69924081 T2 DE 69924081T2 DE 69924081 T DE69924081 T DE 69924081T DE 69924081 T DE69924081 T DE 69924081T DE 69924081 T2 DE69924081 T2 DE 69924081T2
Authority
DE
Germany
Prior art keywords
memory
data
memory controller
tri
bus
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
DE69924081T
Other languages
English (en)
Other versions
DE69924081D1 (de
Inventor
Binh Castro Valley Pham
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 DE69924081D1 publication Critical patent/DE69924081D1/de
Publication of DE69924081T2 publication Critical patent/DE69924081T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Bereich der Erfindung
  • Diese Erfindung bezieht sich auf elektronische Systeme und genauer gesagt auf ein System und ein Verfahren zum Reduzieren von Buskonkurrenzsituationen während unmittelbar aufeinander folgender Lese- und Schreibzyklen.
  • 2. Beschreibung der verwandten Technik
  • Engpässe bei der Leistungsfähigkeit bzw. beim Durchsatz elektronischer Systeme wurden traditionell mit den Kernverarbeitungseinrichtungen in Verbindung gebracht, die ein Teil des Systems sind, wie etwa Prozessoren. Prozessoren arbeiten jetzt mit Geschwindigkeiten von 300 MHz und höher mit der Fähigkeit, mehrere Befehle pro Takt zu verarbeiten. Engpässe haben sich daher in vielen Fällen von den Kernverarbeitungseinrichtungen selbst zu den Übertragungsmechanismen des Speicherbusses verschoben, die die Datenspeicherung und die zu den Einrichtungen gehörenden Übertragungen übernehmen.
  • 1 ist ein Blockdiagramm einer Ausführungsform eines typischen Computersystems 100. Das Verarbeitungssystem 100 kann in einer Vielzahl von Weisen verwendet werden, wie es auf diesem Gebiet wohlbekannt ist. Ein Prozessor 110 ist an einen Systembus 115 angeschlossen. Ein optionaler Cachespeicher (nicht abgebildet) ist häufig zwischen den Prozessor 110 und den Systembus 115 geschaltet. Eine Speichersteuerung 120 ist auch an den Systembus 115 angeschlossen. Speicheranforderungen an den Speicher 130 durch den Prozessor 110 werden von der Speichersteuerung 120 empfangen. Der Schnittstellensteuerschaltkreis 121 in der Speichersteuerung 120 lenkt Speicherlese- und -schreibzyklen durch die Eingabe/Ausgabe-(I/O)-Zellen 122. Schreib- und Lesezyklen werden von den I/O-Zellen 122 der Speichersteuerung 120 durch den Speicherbus 125 in die I/O-Zellen 132 des Speichers 130 eingespeist.
  • Engpässe können auftreten, wenn der Prozessor 110 mit Raten bzw. Geschwindigkeiten Zugriff auf den Speicher 130 benötigt, die größer als die mit dem Systembus 115 und/oder dem Speicherbus 125 verbundenen, maximalen Übertragungsraten sind. Die Zeit, die es dauert, bis der Speicher 130 auf einen Speicherlese- oder -schreibzyklus antwortet (d.h. die Wartezeit bzw. Latenzzeit), stellt ebenfalls einen Engpaß für den Datenfluß dar, wenn der Prozessor warten muß, bis der Speicher seinen Lese- oder Schreibzyklus beendet hat, bevor er mit der Verarbeitung fortfahren kann.
  • Insbesondere für Computerspeicher hat der Übergang von asynchronen Speichertypen zu synchronen Speichertypen die Latenzzeiten für Datenübertragungen verkürzt. Bei beiden Kommunikationsarten hängen korrekte Übertragung und Empfang der Daten an einem entfernten Ende davon ab, daß ein Sender und ein Empfänger während der Datenübertragung die Synchronisation aufrecht erhalten. Der Empfänger muß das Signal in Phase mit dem Sender abtasten. Wenn sowohl der Sender als auch der Empfänger mit der exakt gleichen Taktquelle versorgt würden, dann könnte die Übertragung für immer mit der Gewißheit stattfinden, daß die Signalabtastung beim Empfänger immer in vollständiger Synchronisation mit dem Sender ist. Dies ist selten der Fall, so daß in der Praxis der Empfänger periodisch mit dem Sender in Synchronisation gebracht werden muß. Es ist der Genauigkeit der internen Taktung des Senders und des Empfänger überlassen, die Abtastintegrität zwischen Synchronisationsimpulsen aufrecht zu halten.
  • Bei asynchroner Kommunikation, die früher "Start-Stop"-Kommunikation genannt wurde, ist jedes Datenbyte potentiell eine separate Einheit. Der Sender kann zwischen zwei beliebigen Bytes einer Nachricht eine Pause machen. Der Empfänger muß jedoch eventuell die Daten so schnell aufnehmen, wie sie ankommen. Um dies zu bewerkstelligen, benötigen asynchrone Daten den Zeitwert eines Extrabit, um den Anfang eines neuen Byte anzukündigen (das "Start"-Bit), und den Zeitwert eines Extrabit am Ende (das "Stop"-Bit). Somit kann ein 2400-BAUD-Modem nur 240 Datenbytes pro Sekunde übertragen, weil jedes Byte mindestens 10 Bits benötigt.
  • Bei synchroner Kommunikation wie sie von synchronem, dynamischem, wahlfrei zugreifbarem Speicher (Synchronous Dynamic Random Access Memory, SDRAM) verwendet wird, wird der Empfangstakt mit dem Sendetakt synchronisiert, so daß die Zeitsteuerung des Empfängers und die Zeitsteuerung des Senders synchron sind. Datenübertragung kann in einer Übertragung mehrere Datenbytes umfassen wie etwa eine Übertragung im "Burst"- oder "Pipeline"-Modus. Synchrone Übertragungen sparen Zeit beim Übertragen von Daten, indem die Start- und Stop-Bits für jedes Datenbyte eliminiert werden.
  • Ein Problem, das bei einigen synchronen Speicherübertragungen immer noch bleibt, ist, daß Deadlock-Zyklen, manchmal NOPs oder Wartezustände genannt, auf den Adreß- und/oder Datenbussen vorgesehen sein müssen, wenn von einem Lesen zu einem Schreiben oder von einem Schreiben zu einem Lesen übergegangen wird. Zum Beispiel kann sowohl ein Late-Write-(L-W)-SRAM als auch ein Pipeline-Burst-(PB)-SRAM aufeinander folgende Lese-Lese-Zyklen oder Schreib-Schreib-Zyklen durchführen. Ein L-W-SRAM hat sowohl auf dem Daten- als auch auf den Adreßbussen für einen Übergang von einem Lesevorgang zu einem Schreibvorgang einen Deadlock-Zyklus. Ein PB-SRAM hat zwei Deadlock-Zyklen auf dem Datenbus, und zwar jedesmal, wenn der Datenbus von einem Schreiben zu einem Lesen übergeht. PB-SRAM hat zwei Deadlock-Zyklen sowohl auf dem Adreß- als auch auf dem Datenbus jedesmal, wenn der Datenbus von einem Lesen zu einem Schreiben übergeht.
  • Die Industrie hat auf das Problem der Deadlock-Zyklen mit dem Aufkommen von synchronem statischem wahlfrei zugreifbarem Speicher (SRAM) mit Nullbusumkehr (ZERO-BUS TURNAROUND, ZBT) reagiert. Die ZBT-Eigenschaft, ein Beispiel eines Nullbusumkehr-Protokolls, ist dafür ausgelegt, die Systemleistung in Anwendungen zu optimieren, die häufig den Speicherdatenbus umkehren und somit zwischen Lese- und Schreibvorgängen wechseln. Solche Anwendungen rufen viele zufällige vermischte Lese- und Schreiboperationen auf dem Datenbus auf im Gegensatz zu Häufungen von Lese- oder Schreibvorgängen. Das ZBT-SRAM ist, wie jeder Speicher, der mit einem Nullbusumkehr-Protokoll konform ist, dafür ausgelegt, die Leistungsfähigkeit zu verbessern, indem ungenutzte Zyklen zwischen Speicherlesezyklen und Speicherschreibzyklen eliminiert werden.
  • Im allgemeinen funktioniert ein ZBT-SRAM wie folgt. Während eines ersten Taktzyklus werden das Adreß- und das Steuersignal den Speichereingängen präsentiert. Ein oder zwei Zyklen später erfolgt der zugehörige Datenzyklus, entweder ein Lesen oder ein Schreiben. Die Adreß- und Steuerleitungen und ihre Funktion sind hier nicht dargestellt, da sie nach dem Stand der Technik wohlbekannt sind. Während jedes Taktzyklus' soll ein ZBT-SRAM während einer langen Kette von aufeinander folgenden abwechselnden Lese- und Schreibzyklen zu 100% Bandbreitennutzung in der Lage sein, wie unten in 3 gezeigt wird.
  • Wichtige ZBT-SRAM-Parameter umfassen tKHQX, tKHQXI und tKHQZ. Der Parameter tKHQX stellt die Ausgabehaltezeit dar. Dies ist die Zeit, für die die Daten nach der ansteigenden Taktflanke gültig sein müssen. Repräsentative Werte für den Parameter tKHQX sind 1,5 ns minimal bis 3,5 ns maximal. Der Parameter tKHQXI stellt die Takt-hoch-zu-Ausgabe-aktiv-Zeit dar. Dies ist die minimale Zeit von einer ansteigenden Taktflanke, bis Daten auf den Speicherbus ausgegeben werden können. Ein repräsentativer Wert für den Parameter tKHQXI ist 1,5 ns. Der Parameter tKHQZ stellt die Impedanz von Takt-high bis Datenleitung-high dar. Dies ist die Zeit nach einer ansteigenden Taktflanke, bis der Speicherbus in einem hohen Impedanzzustand sein kann. Repräsentative Werte für den Parameter tKHQZ sind 1,5 ns minimal und 3,5 ns maximal.
  • 2 stellt ein Blockdiagramm einer Ausführungsform von I/O-Zellen 122A/132A für die Speichersteuerung 120 und den Speicher 130 nach dem Stand der Technik dar. Die in 2 gezeigte I/O-Zellengruppe 200 stellt den Teil der Speichersteuerung und des Speichers dar, der ein einzelnes Datenbit überträgt. Somit ist normalerweise eine Mehrzahl von solchen Gruppen 200 in einem Speichersystem mit einem mehrere Byte breiten Speicherbus vorhanden.
  • Die I/O-Zelle 122A der Speichersteuerung hat einen Eingang für das Steuersignal TS bei 205, das einen Dreizustands- bzw. Tristate-Puffer 210 steuert. Der Dreizustands-Puffer 210 speist den Inhalt des Schreibregisters 220 auf die Datenleitung 125A des Speicherbusses 125 ein. Ein Bit, das in den Speicher zu schreiben ist, wird in dem Register bei Eingang 225 übergeben und bei der ansteigenden Flanke des Taktsignals (CLK) am Eingang 236 in das Register 220 eingetragen. Ein aus dem Speicher gelesenes Datenbit wird auf der Datenleitung 125A empfangen und von dem Lesepuffer 215 in ein Leseregister 230 eingespeist. Das Datenbit wird bei der ansteigenden Flanke des Taktsignals in das Leseregister 230 eingetragen und steht am Ausgang 235 zum Weiterleiten durch die Speichersteuerung an einen Systembus zur Verfügung.
  • Die I/O-Zelle 132A des Speichers umfaßt einen Eingang für das Steuersignal OE bei 240, das einen Dreizustands-Puffer 245 steuert. Der Dreizustands-Puffer 245 speist den Inhalt des Leseregisters 255 auf die Datenleitung 125A des Speicherbusses 125. Ein aus dem Speicher zu lesendes Bit wird dem Register am Eingang IN 260 übergeben (aus einem internen Speicherarray, nicht abgebildet) und in das Register 255 eingetragen. In den Speicher zu schreibende Daten werden auf der Datenleitung 125A empfangen und von dem Schreibpuffer 250 in ein Schreibregister 265 einge speist. Das Datenbit wird bei der ansteigenden Flanke eines Taktsignals in das Schreibregister 265 eingetragen und dem Speicherarray bei 270 zur Verfügung gestellt.
  • 3 stellt ein beispielhaftes Zeitdiagramm für eine Schreib-Lese-Schreib-Lese-Datensequenz während aufeinander folgender Taktzyklen für ein ZBT-SRAM dar. Bei diesem Beispiel ist die Taktrate 133 MHz. Diese Taktrate hat eine Taktperiode von 7,5 ns. Die abgebildeten Signale sind von oben nach unten der Takt, das Datenschreibsignal W 310 der Steuerung, das am Eingang 225 in 2 übergeben wird, das Steuersignal TS 315 der Steuerung, das bei 205 in 2 übergeben wird, und das Datenlese- oder -schreibsignal 320, das am Datenanschluß t1 an die Datenleitung 125A übergeben wird. Für dieses Beispiel wird angenommen, daß die Adreß- und Steuersignale ein oder mehrere Taktzyklen vor dem entsprechenden Lese- oder Schreibvorgang übergeben werden.
  • Vor dem Taktzyklus 301 liefert die Steuerung Schreibdaten am Eingang W 225. Während des Taktzyklus' 301 setzt die Steuerung das Steuersignal TS bei 205 und ein Datenschreibimpuls 340 wird in die Datenleitung 125A eingespeist. Die Länge jedes Datenimpulses ist volle 7,5 ns (d.h. die gesamte Dauer des Taktimpulses). Die Steuerungssignale beginnen und enden normalerweise am Beginn und Ende jedes Taktimpulses. Der Speichersteuerung innewohnende Verzögerungen führen zu einer nominalen Verzögerung beim Start des Datenschreibimpulses 340 auf der Datenleitung 125A und führen dazu, daß der Datenimpuls eine um gleich lange Zeitspanne nach dem Ende des Taktzyklus' 301 endet.
  • Während des Taktzyklus' 302 gibt der Speicher Lesedaten aus. Der Datenleseimpuls 350 wird nach einer kurzen Verzögerung auch auf die Datenleitung eingespeist. Diese kurze Verzögerung bedeutet, daß der Datenleseimpuls 350 in die Datenleitung eingespeist wird, wobei er kurz nach dem Beginn des Taktzyklus' 302 beginnt und kurz nach dem Ende des Taktzyklus' 302 endet.
  • Während des Taktzyklus' 303 gibt die Steuerung wieder Schreibdaten am Eingang W 225 ein, gibt die Steuerung das Steuersignal TS bei 205 aus, und ein Datenschreibimpuls 360 wird in die Datenleitung 125A eingespeist. Der Beginn des Datenschreibimpulses 360 ist wieder gegenüber dem Beginn des Taktzyklus' 303 bei 15,0 ns verzögert. Der Datenschreibimpuls 360 endet erst nach dem Ende des Taktzyklus' 303.
  • Ein weiterer Lesezyklus tritt während des Taktzyklus' 304 auf. Der Datenleseimpuls 370 wird nach einer kurzen Verzögerung auch in die Datenleitung eingespeist. Diese kurze Verzögerung bedeutet, daß der Datenleseimpuls 370 in die Datenleitung eingespeist wird beginnend kurz nach dem Beginn des Taktzyklus' 304 und endend kurz nach dem Ende des Taktzyklus' 304.
  • Obwohl ein ZBT-SRAM für unmittelbar aufeinander folgende Lese- und Schreibzyklen ausgelegt ist, kann eine Konkurrenzsituation noch immer auf dem Speicherdatenbus auftreten. Wenn zum Beispiel ein Datenschreibimpuls für eine zu lange Zeit über das Ende des Taktzyklus' hinaus in die Datenleitung eingespeist wird oder wenn ein anschließender Datenleseimpuls zu früh auf die Datenleitung eingespeist wird, dann kann eine Buskonkurrenzsituation auftreten. Versatz zwischen dem Speichersteuerungstakt und dem Speichertakt kann zu einer Buskonkurrenzsituation führen. Schwankungen bei den Herstellungsprozessen können ebenfalls zu einer Buskonkurrenzsituation führen, da die Zeitsteuerungsparameter für den Speicher und die Speichersteuerung eventuell nicht exakt dieselben sind.
  • Das Hauptproblem bei einer Buskonkurrenzsituation (d.h. wenn die Speichersteuerung zur selben Zeit Daten in die Datenleitung einspeist, zu der auch der Speicher Daten in die Datenleitung einspeist) ist die Überspannung durch die Elektronik, die das Speichersystem aufweist. Überspannung tritt auf, wenn die entgegengesetzten Enden des Busses in entgegengesetzten elektrischen Richtungen gespeist werden. Zum Beispiel kann die Steuerung zur selben Zeit eine logische Null auf den Bus geben, zu der der Speicher eine logische Eins einspeist. Somit speist der Dreizustandspuffer der Steuerung den Bus niedrig auf Massepotential, während der ZBT-SRAM Dreizustandspuffer den Bus mit hohem Potential speist.
  • Parasitäre Impedanz wird den tatsächlichen Strom begrenzen, aber der Wert dieses Stromes wird signifikant höher als während einer nicht überlappenden Sequenz sein. Unter diesen Bedingungen gibt es einen effektiven Kurzschluß zwischen der hohen Spannung und Masse. Es wurde festgestellt, daß das Worst-Case-Szenario wäre, wenn die Steuerung eine logische Null einführt, während das ZBT-SRAM eine logische Eins einführt, wobei angenommen wird, daß der Speicher mehr Strom einspeist und schneller einschaltet als die Speichersteuerung. Die Anzahl von Bitleitungen in dem Bus verschärft diese Situation. Diese hohen Ströme können Rauschimpulse und Überhitzung in der Speichersteuerung und/oder dem Speicher entstehen lassen. Diese Rauscheffekte sind möglicherweise schwierig zu diagnostizieren, wenn das System im Betrieb ist und treten möglicherweise nicht in Erscheinung, bis eine spezielle Kombination von Abweichungen von Einrichtungs- bzw. Geräteprozessen zusammen auftreten.
  • US-A-5566311 offenbart einen Halbleiterspeicher einschließlich eines Dreizustands-Ausgabepufferschaltkreises und eines Hilfssteuerungsschaltkreises. Der Hilfssteuerungsschaltkreis empfängt ein Auswahlsignal für bzw. mit hoher) Impedanz, das durch einen Verzögerungsschaltkreis in den Hilfssteuerungsschaltkreis gegeben wird, bevor es als ein Steuersignal an den Dreizustands-Ausgabepufferschaltkreis geliefert wird, um die Ausgabe des Dreizustands-Ausgabepufferschaltkreises in einen Zustand hoher Impedanz zu bringen.
  • Es wäre daher wünschenswert, eine Vorrichtung, ein System und ein Verfahren zum Beschleunigen der Datenübertragung zu haben, während das Auftreten von Buskonkurrenzsituationen während unmittelbar aufeinander folgender Lese-Schreib-Operationen reduziert würde. Die Vorrichtung, das System und das Verfahren sind vorzugsweise mit existierenden Speichersystemen mit minimalen Hardwareänderungen kompatibel.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung wird durch den unabhängigen Anspruch 1 definiert.
  • Die oben skizzierten Probleme werden zum großen Teil durch eine Vorrichtung, ein System und ein Verfahren zur präzisen Steuerung der Zeitsteuerung der Datenübertragung gelöst, während das Auftreten von Buskonkurrenzsituationen während aufeinander folgender Lese-Schreib-Operationen reduziert wird. Indem die Dauer, während der ausgewählte Datenimpulse auf den Spei cherbus gegeben werden, reduziert wird, kann ein höherer Prozentsatz an Nutzung des Speicherbusses erreicht werden, ohne die Wahrscheinlichkeit einer Buskonkurrenzsituation und sich daraus ergebender Verschlechterung oder Beschädigung des Speichersystems zu erhöhen. Der ausgewählte Datenimpuls ist vorzugsweise der Datenschreibimpuls, der von der Speichersteuerung auf den Speicherbus gegeben wird. Nach verschiedenen Ausführungsformen wird ein Null-Busumkehr-Protokoll implementiert.
  • Nach einer Ausführungsform kann eine Speichersteuerung eine Schnittstellenschaltung und eine Schreibsteuerungsschaltung beinhalten, die ein zugehöriges Steuersignal an einen Dreizustandspuffer ausgeben. Der Dreizustandspuffer gibt, nachdem er durch das zugehörige Steuersignal aktiviert wurde, Schreibdaten auf eine Datenleitung eines Speicherbusses. Die Einschaltverzögerung, die mit dem Dreizustandspuffer verbunden ist, überschreitet die Ausschaltverzögerung, die auch mit dem Dreizustandspuffer verbunden ist. Daher gibt der Dreizustandspuffer den Datenschreibimpuls für eine kürzere Zeitspanne auf die Datenleitung als die Zeitspanne, während der das zugehörige von der Schreibsteuerungsschaltung gelieferte Steuersignal gesetzt wird, um den Dreizustandspuffer zu aktivieren. Diese Eigenschaft kann vorteilhafterweise zum Reduzieren von Buskonkurrenzsituationen führen, wobei nur eine minimale Veränderung an der Speichersteuerungsschaltung erforderlich ist.
  • Nach einer anderen Ausführungsform kann eine Speichersteuerung eine Schreibsteuerungsschaltung, die ein zugehöriges Steuersignal ausgibt, und einen Dreizustandspuffer beinhalten, der durch das Steuersignal aktiviert wird, um Schreibdaten auf eine Datenleitung eines Speicherbusses einzuspeisen. Die Schreibsteuerungsschaltung gibt das zugehörige Steuersignal für eine kürzere Zeitspanne als die Periode des Speichersteuertaktes oder für eine kürzere Zeitspanne als die Dauer eines Speicherdatenleseimpulses (vom Speicher auf dem Speicherbus erzeugt) aus. Die Schreibsteuerungsschaltung kann das Setzen des Steuersignals um eine Zeitspanne nach dem Beginn eines Speichersteuerungs-Taktimpulses verzögern, um dadurch den Zeitpunkt zu verzögern, zu dem Schreibdaten durch den Dreizustandspuffer an den Speicherbus geliefert werden, und/oder kann das Steuersignal zu einem zuvor festgelegten Zeitpunkt vor dem Ende des Speichersteuertaktimpulses zurücksetzen, um dadurch das Einspeisen von Schreibdaten auf den Speicherbus zu unterbrechen bzw. abzubrechen. Die Speichersteuerung kann vorteilhafterweise zu weniger Buskonkurrenzsituationen führen, wobei relativ wenige Änderungen an der Gesamtsystemauslegung erforderlich sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Beispielhafte Ausführungsformen der Erfindung werden nachfolgend nur als Beispiel beschrieben unter Bezug auf die beigefügten Zeichnungen, von denen:
  • 1 ein Blockdiagramm einer Ausführungsform eines typischen Computersystems ist;
  • 2 ein Blockdiagramm einer Ausführungsform von Eingabe-/Ausgabe-Zellen für eine Speichersteuerung und einen Speicher nach dem Stand der Technik ist;
  • 3 ein beispielhaftes Zeitdiagramm für eine Schreib-Lese-Schreib-Lese-Datensequenz während aufeinanderfolgender Taktzyklen für ein ZBT-SRAM nach dem Stand der Technik ist;
  • 4 ein Blockdiagramm einer Ausführungsform eines Speichersystems mit doppelten Phasenregelkreisen für synchronisierte Zeitsteuerung ist;
  • 5 ein Blockdiagramm einer Ausführungsform von Eingabe-/Ausgabe-Zellen für eine Speichersteuerung und einen Speicher ist; und
  • 6A, 6B und 6C beispielhafte Zeitdiagramme für eine Schreib-Lese-Schreib-Datensequenz während aufeinanderfolgender Taktzyklen sind.
  • Während bei der Erfindung verschiedene Modifikationen und alternative Ausgestaltungen möglich sind, werden spezifische Ausführungsformen davon mittels Beispiel in den Zeichnungen dargestellt und hier im Detail beschrieben. Es sollte sich jedoch verstehen, daß die Zeichnungen und detaillierten Beschreibungen hierzu nicht dazu gedacht sind, die Erfindung auf die spezielle offenbarte Form einzuschränken, sondern die Erfindung soll im Gegenteil alle Modifikationen, Äquivalente und Alternativen abdecken, die in den Schutzumfang der vorliegenden Erfindung fallen, wie durch die beigefügten Ansprüche definiert.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Mit dem Aufkommen von synchronisiertem Speicher wurde die Synchronisation der Zeitsteuerung zwischen der Speichersteuerung und dem Speicher wichtiger. Bei Taktraten für Systemeinrichtungen wie Speicher, die 100 MHz und mehr erreichen, können Verzögerungen oder Versatz der Zeitsteuerung, die mit dem Systemtakt und den Takteingängen der Systemeinrichtungen verbunden sind, wesentlich werden. In jedem System, in dem Zeitsteuerung kritisch ist, sollte die Systemtaktung so gleichmäßig wie möglich sein.
  • In 4 ist ein Blockdiagramm einer Ausführungsform eines Speichersystems 400 mit doppelten Phasenregelkreisen für synchronisierte Zeitsteuerung dargestellt. Die Speichersteuerung 120 empfängt die Taktsignalausgabe von dem Systemtakt 410 an einem Phasenregelkreis (Phase Locked Loop, PLL) 415. Die Funktionsweise von PLLs ist im Stand der Technik wohlbekannt und wird hier nicht im Einzelnen beschrieben. Dieser PLL 415 ist vorzugsweise intern zu der Speichersteuerung. Die Speichersteuerung 120 verwendet die Ausgabe des PLL 415, um alle Teile der Speichersteuerung 120 einschließlich der I/O-Zellen 122 mit einem gleichmäßigen Takt, der als "Speichersteuerungstakt" 435 bezeichnet wird, laufend zu halten. Der PLL 415 hält vorzugsweise die Phase des Speichersteuerungstakt 435 auf der Phase des Systemtaktes 410.
  • Wie abgebildet beinhaltet die Speichersteuerung 120 Schnittstellenschaltung 440 der Speichersteuerung, die zum Datenaustausch mit einem Systembus 115 und mit den I/O-Zellen 122 der Speichersteuerung verbunden ist. Die Schnittstellenschaltung 440 der Speichersteuerung gibt ferner genau wie die I/O-Zellen 122 Steuersignale an die Schreibsteuerungsschaltung 445 aus. Die Schreibsteuerungsschaltung 445 setzt ein Steuersignal TS 450, das einem Speicherschreibzyklus an die I/O-Zellen 122 zugeordnet ist.
  • Der Speicher 130 besteht aus einem Speicherarray 430 einschließlich Speicherzellen in Speichereinheiten (oder Bänken) 430A430C und Speicher-I/O-Zellen 132. Der Speicher 130 nimmt die Ausgabe eines zweiten PLL 420 entgegen. Der zweite PLL 420 kann ein integraler Bestandteil des Speichers 130 oder extern zu dem Speicher 130 sein. Der zweite PLL 420 hält auch die Phase des Speichertaktes 425 auf der Phase des Systemtaktes 410. Daten werden zwischen der Speichersteuerung 120 und dem Speicher 130 über den Speicherbus 125 ausgetauscht.
  • Die Speicherlese- und -schreiboperationen des Speichersystems 400 sind vollständig synchronisiert. Die Phase des Speichersteuerungstaktes 435 und die Phase des Speichertaktes 425 werden von dem PLL 415 und dem zweiten PLL 420 in Phase bzw. synchron gehalten. Nach einer anderen Ausführungsform wird eine zuvor festgelegte Phasenwinkeldifferenz oder Versatz zwischen dem Speichersteuerungstakt 435 und dem Speichertakt 425 eingestellt. Nach einer Ausführungsform sind die Speichersteuerung 120 und der Speicher 130 ausgelegt, um ein Nullbusumkehr-Protokoll zu implementieren. Nach einer Ausführungsform ist der Speicher ein ZBT-SRAM (Zero Bus Turnaround Synchronous Static Random Access Memory, synchroner statischer wahlfrei zugreifbarer Speicher mit Nullbusumkehr).
  • 5 stellt ein Blockdiagramm einer Ausführungsform einzelner I/O-Zellen 502A/503A für eine Speichersteuerung 120 und einen Speicher 130 dar. Das in 5 abgebildete I/O-Zellenpaar 500 repräsentiert einen Teil der Speichersteuerung 120 und des Speichers 130, der ein einzelnes Datenbit überträgt. Somit ist normalerweise eine Mehrzahl solcher Paare 500 in einem Speichersystem 400 mit einem mehrere Byte breiten Speicherbus 125 vorhanden. Man beachte, daß die Ausführungsformen und die Beschreibung der tatsächlichen Elektronik, die die Speichersteuerung 120 und den Speicher 130 ausmachen, nur exemplarisch sind und daß auch andere Komponenten und Anordnungen in Betracht kommen.
  • Die I/O-Zelle 502A der Speichersteuerung 120 nimmt am Eingang 505 das Steuersignal TS 450 entgegen, das einen Dreizustandspuffer 510 steuert. Der Dreizustandspuffer 510 speist den Inhalt des Schreibregisters 520 in die Datenleitung 504A des Speicherbusses 125 ein. Ein in den Speicher 130 zu schreibendes Bit wird dem Register 520 am Eingang 525 übergeben und bei der ansteigenden Flanke des Speichersteuerungs-Taktsignals 435 (CLK) am Eingang 536 in das Register 520 eingestellt. Ein aus dem Speicher 130 gelesenes Datenbit wird auf der Datenleitung 504A empfangen und von dem Lesepuffer 415 in ein Leseregister 430 eingespeist. Das Datenbit wird bei der ansteigenden Flanke des Speichersteuerungs-Taktsignals 435 in das Leseregister 530 eingestellt und durch den Ausgang 535 zum Beispiel durch die Schnittstellenschaltung 440 der Speichersteuerung an den Systembus 115 geliefert.
  • Die I/O-Zelle 503A des Speichers 130 nimmt am Eingang 540 ein Steuersignal OE entgegen, das von der dem Speicher 130 zugeordneten Steuerungsschaltung (nicht abgebildet) erzeugt wird. Das Steuersignal OE steuert einen Dreizustandspuffer 545. Der Dreizustandspuffer 545 speist den Inhalt des Leseregisters 555 in die Datenleitung 504A des Speicherbusses 125 ein. Ein aus dem Speicher 130 zu lesendes Bit wird dem Register 555 am Eingang IN 560 übergeben und bei einer ansteigenden Flanke des Speichertaktes 425 in das Register 555 eingestellt. Ein Datenwert, der in den Speicher 130 geschrieben werden soll, wird auf der Datenleitung 504A empfangen und von dem Schreibpuffer 550 in ein Schreibregister 565 eingespeist. Das Datenbit wird bei einer ansteigenden Flanke des Speichertaktes 425 in das Schreibregister 565 eingestellt und dem Speicherarray 430 am Eingang 570 bereitgestellt.
  • Die 6A, 6B und 6C stellen exemplarische Zeitdiagramme 600A, 600B und 600C für eine Schreib-Lese-Schreib-Datensequenz während aufeinander folgender Taktzyklen für verschiedene Ausführungsformen dar. Bei diesen Beispielen sind die Taktraten der Speichersteuerung und des Speichers 133 MHz. Eine Taktrate von 133 MHz ist gleich einer Taktperiode von 7,5 ns. Von oben nach unten sind die abgebildeten Signale der Speichersteuerungstakt 435, das Steuerungsschreibsignal W 610, das am Eingang 525 in 5 übergeben wird, das effektive Steuerungssteuersignal TS + d 615, das das bei 505 in 5 übergebene Steuersignal TS 450 mit einer bei 507 dargestellten Verzögerung "d" verkörpert, und das Datenlese- oder -schreibsignal 620, das am Datenanschluß t1 an der Datenleitung 504A übergeben wird. Bei diesen Beispielen wird angenommen, daß die Adreß- und Steuersignale ein oder mehrere Taktzyklen vor den entsprechenden Datenlese- oder -schreibphasen übergeben werden.
  • In dem Zeitdiagramm 600A von 6A stellt die Speichersteuerung 120 vor dem Taktzyklus 601 Schreibdaten am Eingang W 525 bereit. Während des Taktzyklus' 601 wird die Schreibdateneingabe bei W 525 für 7,5 ns, der Weite des Speichersteuerungs-Taktsignals 435, in dem Schreibpuffer 520 gehalten. Ferner setzt die Speichersteuerung 120 während des Taktzyklus' 601 das Steuersignal TS 450 am Eingang 505, wie bei 615A dargestellt. Das Steuersignal TS 450 wird bei 507 um "d" verzögert und dem Dreizustandspuffer 510 ungefähr 1,0 ns später übergeben. Die Verzögerung "d" repräsentiert die immanente Signallaufzeit, die mit dem Weiterleiten des Steuersignals TS 450 in einer Fan-Out (Ausgangslastfaktor) Weise an eine Mehrzahl von I/O-Zellen 502 angeschlossen ist. Nach dieser Ausführungsform der Speichersteuerung 120 ist der Dreizustandspuffer 510 so hergestellt, daß seine Einschaltverzögerung größer als seine zugehörige Ausschaltverzögerung ist. Bei der dargestellten Implementierung verzögert die Einschaltverzögerung des Dreizustandspuffers 510 somit den Beginn des Schreibbitdatenimpulses 635 auf der Datenleitung 504A bis ungefähr 3,0 ns nach dem Beginn der Speicherschreibphase. Der Datenschreibimpuls 635 beginnt somit auf der Datenleitung 504A bei 3,0 ns. Da die mit dem Dreizustandspuffer 510 verbundene Ausschaltverzögerung relativ kurz ist im Vergleich zu seiner Einschaltverzögerung, wird der Dreizustandspuffer 510 bei der abfallenden Flanke des Steuersignals TS 450 (TS + d) ausschalten. Wie dargestellt endet die Datenschreibimpulsweite 635 nach 6,0 ns bei 9,0 ns (oder eine kurze Zeit danach, je nach der Ausschaltverzögerung des Dreizustandspuffers 510. Man beachte, daß dies 1,5 ns nach dem Ende des Taktzyklus' 601 geschieht. Man beachte ferner, daß die Weite des Steuersignals TS 450 wie bei 615A abgebildet 7,5 ns ist, während der auf die Datenleitung 504A eingespeiste Datenschreibimpuls 635 nur ungefähr 6,0 ns ausmacht.
  • Während des Taktzyklus' 602 gibt der Speicher 130 Lesedaten aus. Der Datenleseimpuls 650 kann nicht auf die Datenleitung eingespeist werden, bis mindestens die Zeitspanne tKHQXI oder 1,5 ns verstrichen ist (aufgrund der mit einem beispielhaften Speicher verbundenen Zeitsteuerungs spezifikation). Diese Zeitverzögerung bedeutet, daß der Datenleseimpuls 650 auf die Datenleitung beginnend bei 9,0 ns und endend bei 16,5 ns oder 1,5 ns nach dem Ende des Taktzyklus' 602 eingespeist wird. Da der Datenschreibimpuls 635 des Taktzyklus' 601 bei 9,0 ns beendet ist, sollte keine Buskonkurrenzsituation auftreten.
  • Vor dem Taktzyklus 603 stellt die Speichersteuerung 120 Schreibdaten am Eingang W 525 bereit. Während des Taktzyklus' 603 wird die Schreibdateneingabe bei W 525 wieder in dem Schreibpuffer 520 gehalten. Auch während des Taktzyklus' 603 setzt der Steuerschaltkreis 445 in der Speichersteuerung 120 wieder das Steuersignal TS 450 am Eingang 505. Ein Datenschreibimpuls 660 wird, beginnend bei 18,0 ns, auf die Datenleitung 504A eingespeist, 3,0 ns nach dem Start des Taktzyklus' 603. Da der vorhergehende Lesezyklus 650 bei 16,5 ns endete, sollte keine Buskonkurrenzsituation auftreten. In der gezeigten Ausführungsform endet der Datenschreibimpuls nach 6,0 ns bei 24,0 ns. Man beachte, daß dies wieder 1,5 ns nach dem Ende des Taktzyklus' 603 ist. Da ein neuer Datenleseimpuls 670 erst 1,5 ns nach dem Beginn eines Taktzyklus' beginnen kann, sollte keine Buskonkurrenzsituation auftreten.
  • Gemäß der oben in Verbindung mit 6A beschriebenen Ausführungsform werden Datenschreibimpulse 635/660 auf dem Speicherbus für eine kürzere Zeitspanne eingespeist als die Zeitspanne, während der das Steuersignal TS 450 gesetzt ist, da die mit dem Dreizustandspuffer 510 verbundene Einschaltverzögerung kürzer als die ihm zugeordnete Ausschaltverzögerung ist, und die Datenschreibimpulse 635/660 treten auf dem Speicherbus 125 nicht so schnell auf im Vergleich mit Konfigurationen mit kurzen Einschaltverzögerungen, da die mit dem Dreizustandspuffer 510 verbundene Einschaltverzögerung kürzer als die mit ihm verbundene Ausschaltverzögerung ist. Daher kann die Speichersteuerung 120 vorteilhafterweise eine Konkurrenzsituation mit einem Datenleseimpuls 650 (am Ende des entsprechenden Lesezyklus') vermeiden, der von dem Speicher 130 auf den Speicherbus 125 gegeben wird.
  • Die Funktionsweise einer anderen Ausführungsform der Steuerung 120 ist in 6B dargestellt. In dem Zeitdiagramm 600B von 6B stellt die Speichersteuerung 120 vor dem Taktzyklus 601 Schreibdaten am Eingang W 525 bereit. Während des Taktzyklus' 601 wird die Schreibdateneingabe bei W 525 in dem Schreibpuffer 520 gehalten. Auch während des Taktzyklus' 601 setzt die Speichersteuerung 120 das Steuersignal TS 450 am Eingang 505, wie bei 615B dargestellt, beginnend ungefähr bei 2,0 ns. Das Steuersignal TS 450 ist bei 507 um "d" verzögert und wird dem Dreizustandspuffer 510 1,0 ns später übergeben. Nach dieser Ausführungsform der Speichersteuerung 120 wird das Steuersignal TS 450 für eine kürzere Zeitspanne als die Periode des Speichersteuerungs-Taktimpulses 435 oder als der Speicherdatenleseimpuls 425 gesetzt. Das Steuersignal TS 450 wird um eine Zeitspanne nach dem Beginn des Speichersteuerungs-Taktzyklus' 601 verzögert. Für die beispielhafte Implementierung wird der Beginn des Steuersignals TS 450 um ungefähr 2 ns nach dem Beginn der Speicherschreibphase verzögert. Wie dargestellt beginnt der Datenschreibimpuls 635 somit bei 3,0 ns auf der Datenleitung 504A. Die Weite des Datenschreibimpulses 635 endet nach 6,0 ns bei 9,0 ns (oder eine kurze Zeitspanne danach). Man beachte, daß dies 1,5 ns nach dem Ende des Taktzyklus' 601 geschieht. Man beachte weiter, daß die Weite des Steuersi gnals TS 450 wie bei 615B dargestellt 6,0 ns ist, genauso lange wie die Dauer des Speicherschreibdatenimpulses 635.
  • Während des Taktzyklus' 602 gibt der Speicher 130 Lesedaten aus. Der Datenleseimpuls 650 kann erst dann auf die Datenleitung 504A gegeben werden, wenn mindestens die Zeit tKHQXI oder 1,5 ns verstrichen sind. Diese Zeitverzögerung bedeutet, daß der Datenleseimpuls 650 beginnend bei 9,0 ns und endend bei 16,5 ns oder 1,5 ns nach dem Ende des Taktzyklus' 602 auf die Datenleitung 504A gegeben wird. Da der Datenschreibimpuls 635 des Taktzyklus' 601 bei 9,0 ns endete, sollte keine Buskonkurrenzsituation auftreten.
  • Vor dem Taktzyklus 603 stellt die Speichersteuerung 120 Schreibdaten am Eingang W 525 bereit. Während des Taktzyklus' 603 wird die Schreibdateneingabe bei W 525 wieder in dem Schreibpuffer 520 gehalten. Darüber hinaus setzt der Steuerschaltkreis 445 in der Speichersteuerung 120 auch während des Taktzyklus' 603 wieder das Steuersignal TS 450 am Eingang 505. Ein Datenschreibimpuls 660 wird, beginnend bei 18,0 ns, auf die Datenleitung 504A eingespeist, 3,0 ns nach dem Start des Taktzyklus' 603. Da der vorhergehende Lesezyklus 650 bei 16,5 ns endete, sollte keine Buskonkurrenzsituation auftreten. In der gezeigten Ausführungsform endet der Datenschreibimpuls des Taktzyklus' 603 nach 6,0 ns bei 24,0 ns. Man beachte, daß dies wieder 1,5 ns nach dem Ende des Taktzyklus' 603 ist. Da ein neuer Datenleseimpuls 670 erst 1,5 ns nach dem Beginn eines Taktzyklus' beginnen kann, sollte keine Buskonkurrenzsituation auftreten.
  • Gemäß der oben in Verbindung mit 6B beschriebenen Ausführungsform kann eine Konkurrenzsituation mit dem Ende des Datenleseimpulses 650, der von dem Speicher 130 auf den Speicherbus 125 gegeben wird, vorteilhafterweise vermieden werden, da die Speichersteuerung 120 das Setzen des Steuersignals TS 450 verzögert und das Steuersignal TS 450 für eine Zeitspanne setzt, die kürzer als die Dauer eines Speichersteuerungs-Taktzyklus' 435 oder die Dauer eines Speicherlesezyklus' (wie bei 650 abgebildet) ist.
  • Eine weitere Ausführungsform der Speichersteuerung 120 ist in 6C dargestellt. In dem Zeitdiagramm 600C von 6C stellt die Speichersteuerung 120 vor dem Taktzyklus 601 Schreibdaten am Eingang W 525 bereit. Während des Taktzyklus' 601 wird die Schreibdateneingabe bei W 525 für 7,5 ns in dem Schreibpuffer 520 gehalten. Auch während des Taktzyklus' 601 setzt die Speichersteuerung 120 das Steuersignal TS 450 am Eingang 505, wie bei 615C dargestellt. Das Steuersignal TS 450 ist um "d" bei 507 verzögert und wird dem Dreizustandspuffer 510 ungefähr 1,0 ns später übergeben. Nach dieser Ausführungsform der Speichersteuerung 120 wird das Steuersignal TS 450 für eine kürzere Zeitspanne als die Impulsdauer des Speichersteuerungstaktes 435 oder als der Speicherdatenleseimpuls 650 gesetzt. Das Steuersignal TS 450 wird um eine Zeitspanne nach dem Beginn des Speichersteuerungs-Taktzyklus' 601 leicht verzögert und geht in weniger als der Dauer des Speichersteuerungs-Taktzyklus' 435 zu Ende. Für die beispielhafte Implementierung wird der Beginn des Steuersignals TS 450 für ungefähr 1 ns nach dem Beginn der Speicherschreibphase verzögert und endet nach einer Dauer von ungefähr 6 ns. Wie dargestellt beginnt somit der Datenschreibimpuls 635C bei 2,0 ns auf der Datenleitung 504A. Die Datenschreibimpulsweite 635C ist wieder kürzer als die 7,5 ns Taktzyklusweite. Nach der abgebildeten Ausführungsform endet der Datenschreibimpuls 635C nach 6,0 ns bei 8,0 ns. Man beachte, daß dies 0,5 ns nach dem Ende des Taktzyklus' 601 ist. Man beachte ferner, daß die Weite des Steuersignals TS 450, wie bei 615C gezeigt, 6,0 ns ist, dieselbe ist, wie die Weite des Speicherschreibimpulses 635C auf der Datenleitung 504A.
  • Während des Taktzyklus' 602 gibt der Speicher 130 Lesedaten aus. Der Datenleseimpuls 650 kann erst dann auf die Datenleitung gegeben werden, wenn mindestens die Zeit tKHQXI oder 1,5 ns verstrichen sind. Diese Zeitverzögerung bedeutet, daß der Datenleseimpuls 650, beginnend bei 9,0 ns und endend bei 16,5 ns oder 1,5 ns nach dem Ende des Taktzyklus' 602, auf die Datenleitung gegeben wird. Da der Datenschreibimpuls 635 des Taktzyklus' 601 bei 8,0 ns endete, sollte keine Buskonkurrenzsituation auftreten.
  • Vor dem Taktzyklus 603 stellt die Speichersteuerung 120 Schreibdaten am Eingang W 525 bereit. Während des Taktzyklus' 603 wird die Schreibdateneingabe bei W 525 wieder in dem Schreibpuffer 520 gehalten. Darüber hinaus setzt der Steuerschaltkreis 445 in der Speichersteuerung 120 während des Taktzyklus' 603 wieder das Steuersignal TS 450 am Eingang 505. Ein Datenschreibimpuls 660 wird, beginnend bei 17,0 ns, in die Datenleitung 504A eingespeist, 2,0 ns nach dem Start des Taktzyklus' 603. Da der vorhergehende Lesezyklus 650 bei 16,5 ns endete, sollte keine Buskonkurrenzsituation auftreten. Wie abgebildet, endet der Datenschreibimpuls 660C nach 6,0 ns bei 23,0 ns. Man beachte, daß dies wieder 0,5 ns nach dem Ende des Taktzyklus' 603 ist. Da ein neuer Datenleseimpuls 670 erst 1,5 ns nach dem Beginn eines Taktzyklus' beginnen kann, sollte keine Buskonkurrenzsituation auftreten.
  • Gemäß der oben in Verbindung mit 6C beschriebenen Ausführungsform endet der Speicherschreibzyklus vor der Einleitung eines nachfolgenden Speicherlesezyklus' auf dem Speicherbus 125 durch den Speicher 130 und beginnt nach dem Ende eines vorangegangenen Speicherlesezyklus', da die Speichersteuerung 120 das Setzen des Steuersignals TS 450 verzögert und das Steuersignal TS 450 für eine Zeitdauer, die kürzer ist als die Dauer eine Speichersteuerungs-Taktzyklus' 435 oder die Dauer eines Speicherlesezyklus' (wie bei 650 gezeigt), setzt. Daher kann die Speichersteuerung 120 vorteilhafterweise eine Konkurrenzsituation sowohl mit dem Beginn als auch dem Ende eines Datenleseimpulses 650 vermeiden, der von dem Speicher 130 auf den Speicherbus 125 gegeben wird.
  • Man beachte, daß in den oben beschriebenen Ausführungsformen spezifische Zeitsteuerungsparameter dargestellt sind. Dies spezifischen Zeitsteuerungsparameter können in anderen Ausführungsformen andere Werte haben. Zum Beispiel können die spezifischen Zeitsteuerungsparameter, die mit der Einschaltverzögerung und/oder der Ausschaltverzögerung des Dreizustandspuffers 510 verbunden sind, in anderen Ausführungsformen unterschiedlich sein. In bestimmten bevorzugten Ausführungsformen ist die Einschaltverzögerung mindestens zweimal so lang wie die Ausschaltverzögerung. In ähnlicher Weise kann die Dauer des abgekürzten Datenschreibimpulses von Ausführungsform zu Ausführungsform schwanken. In bestimmten bevorzugten Ausführungsformen sind die Datenschreibimpulse 90 Prozent oder weniger der Weite des Speichersteuerungs-Taktzyklus' und/oder 90 Prozent oder weniger der Weite eines zugehörigen Datenleseimpulses, der von dem Speicher auf den Speicherbus gegeben wird. Man beachte auch, daß Speichersystemen mehrere Taktsignale mit abweichenden Taktperioden zur Verfügung stehen können. Nach einer Ausführungsform wird das verfügbare Taktsignal mit der höchsten Frequenz, das heißt das Taktsignal mit der kürzesten Taktperiode, für die Zeitsteuerung in der Speichersteuerung verwendet.
  • Zahlreiche Abänderungen und Modifikationen liegen für Fachleute auf diesem Gebiet auf der Hand, sobald sie die obenstehende Offenbarung umfassend würdigen. Die folgenden Ansprüche sollen so interpretiert werden, daß sie alle derartigen Abänderungen und Modifikationen umfassen.

Claims (14)

  1. Speichersteuerung (120) für die Steuerung von Zugriffen auf einen Speicher (130), mit: einem Datenanschluß für die Verbindung zu einer Datenleitung (504A) eines Speicherbusses (125), und einem Drei-Zustands-Puffer (510), von welchem ein Ausgang mit dem Datenanschluß verbunden ist und ein Eingang so angeschlossen ist, daß er Daten empfängt, die auf die Datenleitung getrieben werden sollen, dadurch gekennzeichnet, daß eine mit dem Drei-Zustands-Puffer verknüpfte Einschaltverzögerung eine Abschaltverzögerung übersteigt, die mit dem Drei-Zustands-Puffer verknüpft ist, wodurch eine Zeitdauer eines Datenpulses, der durch den Drei-Zustands-Puffer auf die Datenleitung getrieben wird, kürzer ist als die Dauer eines zugehörigen Steuersignals, welches bereitgestellt wird, um den Drei-Zustands-Puffer freizuschalten.
  2. Speichersteuerung (120) nach Anspruch 1, wobei die Einschaltverzögerung zumindest zweimal so lang ist wie die Abschaltverzögerung.
  3. Speichersteuerung (120) nach Anspruch 1, wobei die Speichersteuerung weiterhin dafür ausgelegt ist, ein Null-Bus-Umkehrprotokoll (zero bus turnaround protocol) zu implementieren.
  4. Speichersteuerung (120) nach Anspruch 1, welche weiterhin aufweist: einen Schnittstellenschaltkreis (440) der Speichersteuerung, die so geschaltet ist, daß sie Daten von einem Systembus (115) zu dem Drei-Zustands-Puffer (110) bereitstellt, die auf die Datenleitung getrieben werden sollen, und eine Steuerschaltung, die mit dem Schnittstellenschaltkreis der Speichersteuerung verbunden ist, wobei die Steuerschaltung (445) das zugehörige Steuersignal vorbringt, welches vorgesehen ist, um den Drei-Zustands-Puffer freizuschalten.
  5. Speichersystem (400), welches aufweist: eine Datenleitung eines Speicherbusses (115), einen Speicher (130), der mit der Datenleitung verbunden ist, wobei der Speicher dafür ausgelegt ist, Daten zu speichern, eine Speichersteuerung nach Anspruch 1.
  6. Speichersystem (400) nach Anspruch 5, wobei die Einschaltverzögerung zumindest zweimal so lang ist wie die Abschaltverzögerung.
  7. Speichersystem (400) nach Anspruch 5, wobei das Speichersystem ein Null-Bus-Umkehrprotokoll (zero bus turnaround protocol) implementiert.
  8. Speichersystem (400) nach Anspruch 5, wobei die Speichersteuerung (120) weiterhin aufweist: einen Schnittstellenschaltkreis (440) der Speichersteuerung, welcher so geschaltet ist, daß er Daten von einem Systembus (115) für den Drei-Zustands-Puffer (510) bereitstellt, so daß diese auf die Datenleitung getrieben werden, und eine Schreibsteuerschaltung (445), die mit dem Schnittstellenschaltkreis der Speichersteuerung verbunden ist, wobei der Schreibsteuerschaltkreis das zugehörige Steuersignal vorbringt, welches vorgesehen ist, um den Drei-Zustands-Puffer freizuschalten.
  9. Speichersystem (400) nach Anspruch 5, wobei der Speicher (130) aufweist: Speichereingabe/ausgabe- (I/O-) Zellen, die so geschaltet sind, daß sie Daten empfangen, welche durch den Drei-Zustands-Puffer auf die Datenleitung getrieben werden, und ein Speicherarray (430A430C), welches mit den Speicher-I/O-Zellen verbunden ist, um die Daten zu speichern, welche durch die Speicher-I/O-Zellen von dem Drei-Zustands-Puffer empfangen wurden, und wobei die Speichersteuerung (120) weiterhin dafür ausgelegt ist, Zugriffe auf Daten zu steuern, die in dem Speicherarray gespeichert sind.
  10. Computersystem, welches aufweist: eine Datenleitung eines Speicherbusses (125), einen Speicher (130), der mit der Datenleitung verbunden ist, wobei der Speicher dafür ausgelegt ist, Daten zu speichern, eine Speichersteuerung (120) nach Anspruch 1, einen Systembus (115), wobei die Speichersteuerung mit dem Systembus verbunden ist, und einen Prozessor, der mit dem Systembus verbunden ist, wobei der Prozessor dafür ausgelegt ist, durch Anforderungen an die Speichersteuerung auf Daten zuzugreifen, die in dem Speicher gespeichert sind.
  11. Computersystem nach Anspruch 10, wobei die Einschaltverzögerung zumindest zweimal so lang ist wie die Abschaltverzögerung.
  12. Computersystem nach Anspruch 10, wobei das Speichersystem (400) dafür ausgelegt ist, ein Null-Bus-Umkehrprotokoll (zero bus turnaround protocol) zu implementieren.
  13. Computersystem nach Anspruch 10, wobei die Speichersteuerung (120) weiterhin aufweist: einen Schnittstellenschaltkreis (440) der Speichersteuerung, welcher so angeschlossen ist, daß er Daten von dem Systembus für den Drei-Zustands-Puffer bereitstellt, damit sie auf die Datenleitung getrieben werden, und eine Schreibsteuerschaltung (445), die mit dem Schnittstellenschaltkreis der Speichersteuerung verbunden ist, wobei die Schreibsteuerschaltung das zugehörige Steuersignal vorbringt, welches vorgesehen ist, um den Drei-Zustands-Puffer freizuschalten.
  14. Computersystem nach Anspruch 10, wobei der Speicher (130) aufweist: Speichereingabe/ausgabe- (I/O-) Zellen, die so angeschlossen sind, daß sie Daten empfangen, welche durch den Drei-Zustands-Puffer auf die Datenleitung getrieben werden, und ein Speicherarray (430A430C), welches mit den Speicher-I/O-Zellen zum Speichern der Daten verbunden ist, welche durch die Speicher-I/O-Zellen von dem Drei-Zustands-Puffer empfangen wurden, und wobei die Speichersteuerung (120) weiterhin dafür ausgelegt ist, Zugriffe auf die in dem Speicherarray gespeicherten Daten zu kontrollieren bzw. zu steuern.
DE69924081T 1998-12-10 1999-12-09 Vorrichtung, System und Verfahren zur Verringerung von Buszugriffskonflikten während aufeinanderfolgenden Lese-Schreib-Operationen Expired - Lifetime DE69924081T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/209,974 US6256716B1 (en) 1998-12-10 1998-12-10 Apparatus, system and method for reducing bus contention during consecutive read-write operations
US209974 2002-08-02

Publications (2)

Publication Number Publication Date
DE69924081D1 DE69924081D1 (de) 2005-04-14
DE69924081T2 true DE69924081T2 (de) 2006-04-13

Family

ID=22781099

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69924081T Expired - Lifetime DE69924081T2 (de) 1998-12-10 1999-12-09 Vorrichtung, System und Verfahren zur Verringerung von Buszugriffskonflikten während aufeinanderfolgenden Lese-Schreib-Operationen

Country Status (5)

Country Link
US (2) US6256716B1 (de)
EP (1) EP1008942B1 (de)
JP (1) JP2000242600A (de)
CA (1) CA2291992A1 (de)
DE (1) DE69924081T2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838631A (en) 1996-04-19 1998-11-17 Integrated Device Technology, Inc. Fully synchronous pipelined ram
US6343352B1 (en) 1997-10-10 2002-01-29 Rambus Inc. Method and apparatus for two step memory write operations
US6401167B1 (en) 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory
JP3652644B2 (ja) * 2001-12-26 2005-05-25 株式会社半導体理工学研究センター 回路装置
JP3835328B2 (ja) * 2002-03-27 2006-10-18 ブラザー工業株式会社 メモリ制御装置
US6920539B2 (en) * 2002-06-26 2005-07-19 Intel Corporation Method and system to retrieve information
US7689708B1 (en) * 2002-10-28 2010-03-30 Netapp, Inc. Apparatus to flow control frames in a networked storage virtualization using multiple streaming protocols
US6854041B2 (en) * 2002-11-25 2005-02-08 International Business Machines Corporation DRAM-based separate I/O memory solution for communication applications
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US7437497B2 (en) * 2004-08-23 2008-10-14 Apple Inc. Method and apparatus for encoding memory control signals to reduce pin count
US20070260778A1 (en) * 2006-04-04 2007-11-08 Ming-Shiang Lai Memory controller with bi-directional buffer for achieving high speed capability and related method thereof
US8363458B2 (en) * 2008-06-06 2013-01-29 Ovonyx, Inc. Memory controller
CN102918515B (zh) * 2010-05-28 2015-10-14 惠普发展公司,有限责任合伙企业 将数据存储在存储器控制器中的多个缓冲器的任何中

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4686396A (en) * 1985-08-26 1987-08-11 Xerox Corporation Minimum delay high speed bus driver
JP2845251B2 (ja) * 1992-03-24 1999-01-13 日本電気株式会社 集積回路装置
JPH0713859A (ja) * 1993-06-25 1995-01-17 Mitsubishi Electric Corp 半導体記憶素子用コントローラ
US5481500A (en) * 1994-07-22 1996-01-02 International Business Machines Corporation Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories
US5983299A (en) * 1996-10-18 1999-11-09 Samsung Electronics Co., Ltd. Priority request and bypass bus
US6052738A (en) * 1997-06-30 2000-04-18 Sun Microsystems, Inc. Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US5933385A (en) * 1997-07-31 1999-08-03 Integrated Silicon Solution Inc. System and method for a flexible memory controller
US6075730A (en) * 1997-10-10 2000-06-13 Rambus Incorporated High performance cost optimized memory with delayed memory writes
US6003118A (en) * 1997-12-16 1999-12-14 Acer Laboratories Inc. Method and apparatus for synchronizing clock distribution of a data processing system

Also Published As

Publication number Publication date
JP2000242600A (ja) 2000-09-08
EP1008942A3 (de) 2003-03-26
US6535968B2 (en) 2003-03-18
EP1008942A2 (de) 2000-06-14
US20010016894A1 (en) 2001-08-23
EP1008942B1 (de) 2005-03-09
CA2291992A1 (en) 2000-06-10
US6256716B1 (en) 2001-07-03
DE69924081D1 (de) 2005-04-14

Similar Documents

Publication Publication Date Title
DE102005051478B4 (de) Flashdatenspeichervorrichtung
DE102004021694B4 (de) Verfahren und Schaltungsanordnung zum Steuern eines Schreibzugriffs auf einen Halbleiterspeicher
DE69924081T2 (de) Vorrichtung, System und Verfahren zur Verringerung von Buszugriffskonflikten während aufeinanderfolgenden Lese-Schreib-Operationen
DE2448212C2 (de) Asynchrone Sammelleitung zur Kommunikation mit selbstbestimmter Priorität zwischen Mutterrechnergeräten und Tochterrechnergeräten
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
EP0091657B1 (de) Datenübertragungseinrichtung zwischen zwei asynchron gesteuerten Datenverarbeitungssystemen mit einem Pufferspeicher
DE10084993B3 (de) Ausgabeschaltung für einen mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM), ein mit doppelter Datenrate arbeitender dynamischer Speicher mit wahlfreiem Zugriff (DDR DRAM), ein Verfahren zum getakteten Auslesen von Daten aus mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM)
DE10235739B4 (de) Register, das auf einem Speichermodul montiert ist sowie Verwendung eines Registers in einem Speichermodul
DE19915044B4 (de) Schnittstelle für synchrone Halbleiterspeicher
DE102004025900A1 (de) Leselatenz-Steuerschaltung
DE2854485A1 (de) Datenverarbeitungssystem mit speicherhierarchie
DE69829039T2 (de) Signalverzögerungsvorrichtung zur Verwendung in Halbleiterspeichervorrichtung für verbesserte Operation in Burst-Betriebsart
DE2556624C2 (de) Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung
EP0190554B1 (de) Verfahren und Schaltungsanordnung zum Umschalten einer taktgesteuerten Einrichtung mit mehreren Betriebszuständen
DE10084516B4 (de) Schaltungsanordnung für Quellensynchrone Übertragungen bei Frequenzen, die einen ungeraden Bruchteil einer Kernfrequenz einschliessen
EP0574598A1 (de) Datenpufferspeicher
DE69819648T2 (de) Zweitorpuffer
DE2809405B2 (de) Prioritätssteuerschaltung
DE2421229C2 (de) Digitale Datenverarbeitungsanlage
DE10236696A1 (de) Taktsynchrone Halbleiterspeichervorrichtung
DE10131307B4 (de) Verfahren und Bussystem zum Synchronisieren eines Datenaustausches zwischen einer Datenquelle und einer Steuereinrichtung
DE19840237A1 (de) Taktsynchrone Halbleiterspeichervorrichtung, die die Ausgabe ungültiger Daten verhindern kann
DE2530599C2 (de) Verfahren und Schaltungsanordnung zur Steuerung von Ein-/Ausgabe-Geräten
DE60032966T2 (de) Steuerungsschaltung mit einer Taktssteuerungseinheit
DE10238040A1 (de) Integrierte Halbleiterschaltungseinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition