-
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) 430A–430C 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.