DE69709885T2 - Speichersystem und einrichtung - Google Patents
Speichersystem und einrichtungInfo
- Publication number
- DE69709885T2 DE69709885T2 DE69709885T DE69709885T DE69709885T2 DE 69709885 T2 DE69709885 T2 DE 69709885T2 DE 69709885 T DE69709885 T DE 69709885T DE 69709885 T DE69709885 T DE 69709885T DE 69709885 T2 DE69709885 T2 DE 69709885T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- controller
- bus
- memory
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000004044 response Effects 0.000 claims description 55
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000001934 delay Effects 0.000 claims description 2
- 238000012937 correction Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000000644 propagated effect Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Information Transfer Systems (AREA)
Description
- Diese Offenbarung bezieht sich auf ein Speichersystem und eine Speichervorrichtung und liefert insbesondere ein Verfahren zum Synchronisieren einer Antwort von Speicherchips. Hintergrund
- Da Computer und deren zentrale Verarbeitungseinheiten ("CPU") in der Lage sind, Instruktionen schneller auszuführen, bringt diese Fähigkeit einen Bedarf nach einer erhöhten Speichergröße und -geschwindigkeit, und auch Busgröße mit sich. Der Bedarf hat zu vielen Entwurfsbemühungen geführt, die auf ein Optimieren von gegenwärtigen und zukünftigen Speichervorrichtungsentwürfen gerichtet sind, um eine schnelle Speicherantwort zu schaffen. Häufig auftretende gegenwärtige Beispiele von Speichervorrichtungen umfassen dynamische Direktzugriffsspeicher ("dRAM"), Nur-Lese- Speicher ("ROM") und synchrone Direktzugriffsspeicher ("SRAM"), sowie mechanische und optische Vorrichtungen, wie z. B. CD-ROM.
- Beim Durchführen einer herkömmlichen Daten-Lesen-Operation sendet eine Speichersteuerung (üblicherweise die CPU oder bei größeren Systemen eine zweckgebundene Speichersteuerung) einen Lesen-Befehl an einen bestimmten Speicherchip. Dieser Befehl wird entlang einer oder mehrerer Leitungen eines Befehlsbus an den Chip ausgebreitet. Wenn der Befehl von dem bestimmten Chip empfangen wurde, veranlaßt dieser den Chip, ein Ausgangssignal aus seinem internen Speicherarray als ein Rückkehrdatensignal, das für die Speichersteuerung beabsichtigt ist, auf einen Datenbus zu positionieren und zu richten. Das Ausgangssignal wird dann entlang des Datenbus ausgebreitet, und kann den gleichen Weg nehmen wie der Befehlsbus, oder auch nicht. Bei dem gerade erwähnten Beispiel gibt es vier Quellen von Zeitverzögerung, die die Ausbreitungszeit eines Lesen-Befehls von der Steuerung zu dem Chip, die Zeit, die der Chip benötigt, um seine internen Register mit Leistung zu versorgen und um das ordnungsgemäße Ausgangssignal auf den Datenbus zu lenken, und die Zeit, die für die Ausbreitung des Ausgangssignals zurück zu der Steuerung benötigt wird, umfassen. Die vierte Quelle einer Zeitverzögerung, die bei Systemen vorhanden ist, die geteilte Datenbusse (z. B. mit separaten, parallelen Datenbussen, die Bit-Gruppen mit unterschiedlicher Bedeutung tragen) aufweisen, ist die Steuerungsverzögerung, die durch eine langsame Wiedergewinnung entlang eines der parallelen Datenbusse bewirkt wird. Üblicherweise haben sich Entwurfsbemühungen nur auf ein Reduzieren der zweiten dieser Zeiten konzentriert, z. B. auf ein Verbessern des internen Leitens und des Verarbeitens von Instruktionen in Speicherchips. Entwurfsbemühungen für größere Systeme haben sich auch in Richtung der Speichersteuerungen gerichtet, die mehrere Speicherbänke effizient verwalten können, wie z. B. im europäischen Patent Nr. 0 339 224 A2 und der Technik, die darin erwähnt ist, erläutert wird.
- Die oben erwähnten Entwurfsbemühungen ermöglichen jedoch, während sie kontinuierlich mehr ansprechbare Speichervorrichtungen liefern, keine Synchronisation über mehrere Busse, noch beseitigen sie die Möglichkeit einer gleichzeitigen Buskonkurrenz unter mehreren Speicherchips, was ein Problem darstellt, das bezugnehmend auf die Fig. 1 und 2 erläutert wird.
- Fig. 1 zeigt ein hypothetisches Speichersystem 21, auf das von einer CPU 22 zugegriffen wird. Das Speichersystem 21 umfaßt eine Speichersteuerung 23, einen Befehlsbus 25, einen Datenbus 27 und zwei Speichervorrichtungen 29 und 31, die im Beispiel aus Fig. 1 RAM-Chips sind. Der Befehlsbus umfaßt ein Systemtaktsignal 33, das von der Steuerung ausgegeben wird, ein Daten-Lesen-Signal 35 und einen Adreßbus 37. Es wird davon ausgegangen, daß sich die RAM-Chips 29 und 31 vom Standpunkt einer Busverdrahtung in unterschiedlichen Abständen von der Steuerung 23 befindet, so daß Befehle eine leicht unterschiedliche Zeitmenge benötigen, um jeden Chip zu erreichen. Fig. 2 liefert Zeitdiagramme zu Zwecken der Erklärung des Problems einer gleichzeitigen Buskonkurrenz.
- Es ist wünschenswert, daß das Speichersystem 21 so schnell wie möglich operiert, so daß die Steuerung 23 drei Daten- Lesen-Befehle bei aufeinanderfolgenden Taktzyklen ausgibt. Der erste und der dritte Befehl ist an die zuvor genannten RAM-Chips 29 und 31 gerichtet, wobei der zweite Befehl für die vorliegende Besprechung keine Bedeutung hat und so durch einen Strich (-) dargestellt wird. Es wird angenommen, daß der Systemtakt eine Frequenz von 250 MHz aufweist, so daß die Breite jedes quadratischen Pulses aus Fig. 2A eine zugeordnete "hohe" Zeit von zwei Nanosekunden aufweist. Fig. 2B zeigt die Ausgabe von zwei Daten-Lesen- Operationen 39 und 41 durch die Speichersteuerung, die "X" bzw. "Y" bezeichnet sind, die sich dann entlang des Befehlsbus in Richtung ihrer beabsichtigten RAM-Chip-Ziele ausbreiten.
- Fig. 2C zeigt das zeitliche Steuern einer Befehl-"K"- Antwort durch einen ersten 29 der RAM-Chips, wohingegen Fig. 2D das zeitliche Steuern einer Befehl-"Y"-Antwort durch den zweiten 31 der RAM-Chips darstellt. Der erste Chip 29 empfängt, wie durch Fig. 2C dargestellt, seinen Befehl "X" acht Taktzyklen, nachdem dieser ausgebreitet wurde, und benötigt, beginnend mit dem neunten Taktzyklus, 20 Nanosekunden, um seinen Ausgang "D-X" wiederzugewinnen und auf den Datenbus zu plazieren. Im Gegensatz dazu empfängt der zweite Chip 31, wie durch Fig. 2D gezeigt, seinen Befehl "Y" nur sieben Taktzyklen, nachdem dieser ausgebreitet wurde, und benötigt ebenfalls 20 Nanosekunden, um sein Ausgangssignal "D-Y" auf den Datenbus zu plazieren. Wenn der Ausgang für die RAM-Chips 29 und 31 die gleiche Ausbreitungszeitmenge benötigt, um zu der Steuerung zurückzukehren, wie dies der Fall bei den Befehlen war, um die RAN- Chips ursprünglich zu erreichen, kommen beide Ausgangssignale "D-X" und "D-Y" zur gleichen Zeit bei der Steuerung 23 an, wie durch einen schraffierten Block 43 in Fig. 2E gezeigt ist. Es ist zu erkennen, daß bei dem Adreßbus und dem Datenbus bei diesem Beispiel angezeigt wird, daß diese ähnliche Ausbreitungszeiten aufweisen, die denselben zugeordnet sind, obwohl dieses Ergebnis nicht notwendigerweise in Speichersystementwürfen der Fall ist, in denen der Befehlsbus und der Datenbus separat geleitet werden. Ferner ist es klar ersichtlich, daß, während oben nur zwei Speichervorrichtungen gezeigt sind, das Problem der Buskonkurrenz insbesondere kompliziert wird, wenn die Zahl von Speichervorrichtungen ansteigt und CPU immer effizienter werden und mit Frequenzen von mehreren hundert Megahertz und mehr arbeiten.
- Es besteht ein definitiver Bedarf nach einem Speichersystem, das eine gleichzeitige Antwort entlang mehrerer, paralleler Datenbusse erlaubt. Außerdem existiert ein definitiver Bedarf nach einem System, das eine gleichzeitige Buskonkurrenz zwischen mehreren Speichervorrichtungen entlang eines Datenbus vermeidet. Vorzugsweise würde ein derartiges System sich an Situationen richten, in denen Ausbreitungszeiten zum Erreichen einzelner Chips um einen gesamten Taktzyklus oder mehr differieren. Durch ein Vermeiden einer Buskonkurrenz mehrerer Vorrichtungen hofft man, daß Speichersteuerungen, wie z. B. CPU und zweckgebundene Speichersteuerungen Daten-Lesen- und -Schreiben-Operationen bei aufeinanderfolgenden Taktzyklen durchführen können, wodurch sie Schritt mit einem CPU-Entwurf und der Tendenz in Richtung einer erhöhten Computergeschwindigkeit und Speicherkapazität halten. Die vorliegende Erfindung löst diese Bedarfe und liefert weitere, damit verbundene Vorteile.
- Die vorliegende Erfindung schafft ein Speichersystem und eine Speichervorrichtung, die die oben erwähnten Bedarfe erfüllt. Sie schafft ein Speichersystem, in dem einzelne Speichervorrichtungen (wie z. B. Mikrochips) in ihrer Operation verzögert werden können, um Datenausgänge für eine Steuerung, wie z. B. eine CPU oder eine Speichersteuerung, zu einer vorbestimmten Zeit zu liefern, nachdem eine Anforderung nach Daten durchgeführt wird. Folglich muß die CPU oder Speichersteuerung nicht warten, bis ein erstes Daten- Lesen abgeschlossen ist, bevor ein zweites Daten-Lesen beginnt. Außerdem erleichtert das System die Verwendung eires skalierbaren Datenbus, da Speicherchips, die parallele 8- Bit-Datenbusse oder Datenbusse anderer Größen füttern, verzögert werden können, um eine gleichzeitige Antwort an eine CPU zu schaffen, und zwar ungeachtet von Unterschieden beim Verdrahten und Busleiten. Es ist deshalb klar, daß die vorliegende Erfindung ein Speichersystem mit einem wesentlichen Nutzen schafft.
- Eine erste Form der Erfindung liefert eine Verbesserung bei einem Speichersystem mit einem Systemtakt, einer Steuerung und zumindest zwei Speichervorrichtungen, wobei zumindest ein Datenbus die Steuerung mit jeder Speichervorrichtung koppelt. Die Verbesserung ist durch einen Puffer in jeder Speichervorrichtung charakterisiert, die angepaßt ist, um eine Zeit zu speichern, um die die Speichervorrichtung den Ausgang verzögern soll. Zusätzlich wird eine Routine von der Steuerung durchgeführt, die jede der Speichervorrichtungen auffordert und eine Zahl von Taktpulsen zählt, bis eine Antwort empfangen wird. Sobald dies für beide Speichervorrichtungen geschehen ist, bestimmt die Steuerung eine maximale Laufzeit und stellt die Antwortzeit zumindest einer der beiden Speichervorrichtungen so ein, daß Speicheranforderungen zu einer Antwort führen, die synchron mit der maximalen Antwortzeit ist.
- Auf diese Weise kann eine Vorrichtung, die gemäß der vorliegenden Erfindung aufgebaut ist, eine Antwort für Speichervorrichtungen (1) über parallele Datenbusse synchronisieren, z. B. über vier einzelne 16-Bit-Datenbusse, die einen 64-Bit-Datenbus ausmachen, um eine gleichzeitige Antwort sicherzustellen, (2) in Reihe, entlang eines Datenbus synchronisieren, um eine Buskonkurrenz zwischen mehreren Vorrichtungen entlang des gleichen Datenbus zu vermeiden, so daß Daten-Lesen-Befehle bei aufeinanderfolgenden Taktzyklen durchgeführt werden können, oder (3) auf beide Weisen synchronisieren.
- Zu diesem Zweck liefert eine zweite Form der Erfindung eine Speichervorrichtung, die einen Puffer zum Verzögern von Operationen der Speichervorrichtung aufweist. Gemäß dieser Form der Erfindung empfängt die Speichervorrichtung einen Systemtakt und hat in dem Puffer eine Zahl von Taktzyklen gespeichert, um die sie den Ausgang der Vorrichtung verzögern soll. Wenn ein Daten-Lesen-Befehl dann empfangen wird, kann die Vorrichtung zuerst durch ein Zählen beginnen, bis die Zahl, die durch den Puffer angezeigt wird, erreicht ist, und dann mit Datenabrufoperationen beginnen. Alternativ kann die Vorrichtung sofort Daten von einem internen Speicherbereich abrufen und ein Einklinken ihres Ausgangs auf den entsprechenden Datenbus um einen Betrag verzögern, der ansprechend auf den Inhalt des Puffers ist.
- Bei bestimmteren Aspekten der Erfindung kann die Speichervorrichtung einen Konfigurationsmodus umfassen, den die Vorrichtung, wie ihr von der Systemsteuerung vorgegeben wird, betreten soll. Die Steuerung schreibt vorzugsweise einen Konfigurationsbefehl an ein Modusregister der Speichervorrichtung, der die Vorrichtung dazu veranlaßt, den Datenbus, der die Vorrichtung mit der Steuerung verbindet, zu überwachen. Die Vorrichtung überwacht den Bus, um sowohl ein Eingangsübernahmesignal als auch ein vorbestimmtes Datenwort von der Steuerung zu erfassen. Wenn die Speichervorrichtung dieses Datenwort erfaßt, klinkt sie ein Antwortwort gemeinsam mit einem Ausgangsübernahmesignal auf den Datenbus ein, was vorzugsweise lokal durch die Vorrichtung von dem Systemtakt abgeleitet ist. Die Steuerung verwendet das Ausgangsübernahmesignal, um sie zu benachrichitigen, daß ankommende Daten auf dem Datenbus gültig sind, und kann folglich auch verwendet werden, um verstrichene Zeit zu bestimmen. Aus dieser verstrichenen Zeit bestimmt die Steuuerung die Verzögerungszeit, die für die bestimmte Vorrichtung geeignet ist, und lädt diese in den Puffer der Vorrichtung. Vorzugsweise wird dieses Ergebnis durch ein Erfassen eines Maximums aller Antwortzeiten und durch ein Laden einer Zahl von Taktzyklen in jeden Puffer durchgeführt, was ein Einklinken des entsprechenden Ausgangs eines Chips verzögert, um eine Antwort auf die Maximalzeit zu synchronisieren.
- Bei noch bestimmteren Merkmalen der Erfindung kann die Vorrichtung eine Korrektur des Pufferinhalts durchführen, und zwar durch einen Schreiben-Befehl von der Steuerung, durch ein Zählen eines Unterschiedes zwischen der Ankunftszeit des Schreiben-Befehls selbst und Schreiben-Daten, und durch ein Einstellen des Inhalts (der Verzögerungszeit) des Puffers einer Vorrichtung, um dadurch Unterschiede der Laufzeit zwischen einem Befehlsbus und einem Datenbus zu korrigieren.
- Die Erfindung ist Bezug nehmend auf die folgende detaillierte Beschreibung besser verständlich, die gemeinsam fit den beigefügten Zeichnungen studiert werden sollte. Die detaillierte Beschreibung eines bestimmten bevorzugten Ausführungsbeispiels, das unten beschrieben wird, um ein Bilden und Verwenden einer bestimmten Implementierung der Erfindung zu ermöglichen, soll die aufgezählten Ansprüche nicht einschränken, sondern nur als ein bestimmtes Beispiel derselben dienen.
- Fig. 1 ist ein Blockdiagramm eines hypothetischen Speichersystems, das verwendet wird, um den Stand der Technik zu zeigen; eine gestrichelte Linie trennt die zentrale Verarbeitungseinheit ("CPU") eines Computers, die sich über der Linie befindet, und ein Speichersystem, das sich unter der Linie befindet.
- Fig. 2 ist eine Reihe von Zeitdiagrammen, die verwendet werden, um das Problem einer Buskonkurrenz zwischen mehrere Speichervorrichtungen in dem hypothetischen System des Stands der Technik aus Fig. 1 darzustellen.
- Fig. 3 ist ein Blockdiagramm des bevorzugten Ausführungsbeispiels, das sowohl parallele Datenbusse ("Baby-Busse", die gemeinsam einen breiten Systembus ausmachen) als auch einen gleichzeitigen Abruf von Wörtern (mit 64, 132 oder größerer Bitlänge) als auch die Verwendung eines gemeinschaftlich verwendeten Datenbus unter mehreren Speichervorrichtungen verwendet.
- Fig. 4 ist ein Blockdiagramm einer einzelnen Speichervorrichtung aus Fig. 3; die Vorrichtung ist vorzugsweise ein dynamischer Direktzugriffsspeicher ("DRAM").
- Fig. 5 ist eine Reihe von Zeitdiagrammen, die einem Abschnitt des Systems aus Fig. 3 entsprechen; Fig. 5 zeigt insbesondere eine Synchronisation von Antworten von zwei Speichervorrichtungen.
- Die Erfindung, die oben zusammengefaßt und durch die aufgezählten Ansprüche definiert ist, kann besser unter Bezugnahme auf die folgende detaillierte Beschreibung verstanden werden, die in Verbindung mit den beigefügten Zeichnungen studiert werden sollte. Diese detaillierte Beschreibung eines bestimmten bevorzugten Ausführungsbeispiels, das unten erläutert ist, um ein Bilden und eine Verwendung einer bestimmten Implementierung der Erfindung zu ermöglichen, soll die aufgezählten Ansprüche nicht einschränken, sondern nur als ein bestimmtes Beispiel derselben dienen. Das bestimmte unten aufgeführte Beispiel ist eine spezifische Implementierung eines Speichersystems, insbesondere eines Systems, das verwendet wird, um Antworten von mehreren Speichervorrichtungen zu synchronisieren, ob diese nun entlang eires einzelnen Datenbus oder über parallele Datenbusse, oder auf beide Weisen angeordnet sind.
- Gemäß der vorliegenden Erfindung ist das bevorzugte Ausführungsbeispiel ein Speichersystem 101, das in Fig. 3 dargestellt ist. Eine Speichersteuerung 103, die entweder eine CPU oder eine zweckgebundene Speichersteuerung ist, greift auf mehrere Speicherchips 105 zu, die sowohl in Serie als auch parallel angeordnet sind. Anders ausgedrückt umfaßt das System mehrere, parallele Datenbusse, vorzugsweise 16- Bit-Datenbusse ("Baby-Busse") 107 mit mehreren Speichervorrichtungen bei jedem Babybus. Dieser Aufbau eignet sich für ein skalierbares Bussystem, bei dem z. B. der Systemdatenbus 64 Bits oder 132 Bits oder mehr breit ist, wobei die am wenigsten bedeutendsten Bits von Daten entlang eines Babybus 107-1 und die bedeutendsten Bits von Daten entlang eires anderen Babybus 107-2 wiedergewonnen werden.
- Beim Implementieren der Merkmale der vorliegenden Erfindung synchronisiert die Steuerung eine Speicherwiedergewinnung sowohl unter mehreren Chips 105 entlang eines einzelnen Babybus 107 als auch über die mehreren Babybusse. Eine kombinierte Synchronisation sowohl über parallele Busse als auch über in Reihe angeordnete Chips ist nicht notwendig, um die Erfindung, wie sie durch die unten aufgeführten Ansprüche definiert ist, zu praktizieren, wobei eine Synchronisation von Speichervorrichtungen entweder nur in Serie oder nur parallel ebenso durchgeführt werden kann. Eine Synchronisation über mehrere Baby-Busse 107 wird bei dem bevorzugten Ausführungsbeispiel durchgeführt, um sicherzustellen, daß die Steuerung 103 nicht durch eine langsame Antwort entlang eines der Babybusse 107 verzögert wird. Eine Synchronisation entlang jedes einzelnen Babybus 107 wird durchgeführt, um die Möglichkeit einer Buskonkurrenz durch mehrere Chips 105 zu reduzieren, wodurch die Steuerung in der Lage ist, mehrere Daten-Lesen-Befehle von unterschiedlichen Chips 105 bei aufeinanderfolgenden Zyklen durchzuführen, und zwar ungeachtet von Unterschieden bei Ausbreitungszeiten entlang jedes Babybus 107.
- Die Steuerung 103 empfängt, wenn sie eine zweckgebundene Speichersteuerung ist, Speicheranforderungen entlang eines Hauptbus 109, der diese mit einer System-CPU (nicht dargestellt) koppelt. Diese Anforderungen werden von der Steuerungl 103 über alle Babybusse 107 verwaltet, wobei jeder derselben aus 16 Datenleitungen und einer Übernahmesignalleitung 112 (die hier weiter unten besprochen wird) bestehen kann. Die Steuerung 103 verwendet auch einen einzelnen Befehlsbus 111, der die Steuerung 103 mit allen Speicherchips 105 verbindet. Üblicherweise umfaßt der Befehlsbus 111 einen Adreßbus 113, einen Systemtakt 115, ein Daten- Lesen-Signal 117, ein Daten-Schreiben-Signal 119 und andere Leitungen, sowie auch (nicht gezeigt) verschiedene Unterbrechungsleitungen, eine Chipauswahlschaltungsanordnung und dergleichen. Vorzugsweise ist jeder Speicherchip 105 ein Diresktzugriffsspeicher und insbesondere ein dynamischer Direktzugriffsspeicher, der ein periodisches Auffrischen benötigt. Da die Speichervorrichtungen von der Temperatur beeinflußt werden können, wird jede Vorrichtung 105 vorzugsweise sowohl beim Systemhochfahren als auch zu periodischen Intervallen zu Zwecken der Synchronisation einer Speicherwiedergewinnung konfiguriert.
- Jeder Chip 105 umfaßt einen Eingangspuffer (in Fig. 3 nicht sichtbar), der mit einer Zahl beladen wird, nachdem die Steuerung 103 alle Speicherchips abgefragt hat. Die Zahl wird von einer Zahl von verstrichenen Systemtaktzyklen abgeleitet, die von der Steuerung gezählt werden, und zwar entsprechend dem Chip, das in dem System 101 am längsten braucht, um zu antworten. Vorzugsweise gibt die Steuerung 103 während des Konfigurationsmodus jeden Speicherchip 105 separat durch ein Programmieren eines Konfigurationsbefehls in ein Modusregister des Chips frei (in Fig. 5 ersichtlich und unten beschrieben), der dann veranlaßt, daß nur dieser Chip aktiv ist und einen Modus betritt, in dem er auf seinen entsprechenden Babybus hört. Wenn ein Chip 105 in diesem Modus ein Eingangsübernahmesignal (einschließlich einer vorbestimmten Datenübertragung zu demselben entlang des Datenbus) erfaßt, überträgt er als Antwort ein vorbestimmtes Antwortwort gemeinsam mit dem Ausgangsübernahmesignal 112 zurück auf den Datenbus, das dann verwendet wird, um das vorbestimmte Antwortwort in die Steuerung 103 einzuklinken. Ein Empfang des Ausgangsübernahmesignals 112 und des vorbestimmten Antwortwortes zeigt einem Vergleichsmechanismus 118 der Steuerung 103 an, daß sie einen internen Zeitgeber anhalten soll, der mit jedem Systemtaktpuls inkrementiert wurde, der verstrichen ist, seit die Steuerung das Eingangsübernahmesignal ausgegeben hat, und daß sie den Inhalt dieses Zählers in den Speicher in der Steuerung laden soll, sowohl in eine Speicherstelle 114, die eine Maximalzählung (wenn der Zähler ein Maximum darstellt) darstellt, als auch in einen Schlitz 116, der für den bestimmten Chip 105 beabsichtigt ist. Sobald die Steuerung alle Speicherchips 105 abgefragt hat, berechnet sie einen Versatz für jeden Chip, um den jeder Chip seinen Ausgang verzögern soll, so daß Daten-Lesen-Operationen Daten zu der maximalen Antwortzeit zu der Speichersteuerung liefern. Anders ausgedrückt subtrahiert die Steuerung 103 die Antwortzeit für jeden Chip von dem Maximum, um den Versatz zu erhalten, und programmiert dann jeden Chip 105 mit dem geeigneten Versatz.
- Fig. 4 ist ein Blockdiagramm eines einzelnen Chips 105 aus Fig. 3. Insbesondere ist der bevorzugte Chip ein DRAM 123, der einen internen Verzögerungsmechanismus 121 zum Synchronisieren einer Speicherantwort mit anderen Chips umfaßt. Vorzugsweise umfaßt dieser Verzögerungsmechanismus einen Ausgangslatch und einen internen Zähler und einen internen Puffer. Der DRAM 123 ist mit der Speichersteuerung 103 über eine Zahl von Kommunikationswegen gekoppelt, die (a) den Befehlsbus 111, (b) einen 16-Bit-Babybus 107, (c) das Übernahmesignal 117, (d) ein Befehlsübernahmesignal 125, (e) den Systemtakt 115 und (f) ein Chipauswahlsignal umfassen, was in Fig. 4 nicht ersichtlich ist. Wenn der Systemtakt 115 von dem DRAM 123 empfangen wird, wird ein interner Phasenrastmechanismus 127 verwendet, um ein lokal abgeleitetes Taktsignal 129 zum zeitlichen Steuern von internen Operationen des DRAM und zum Definieren einer lokalen Zeit 0 zum Koordinieren von Speicheroperationen zu schaffen.
- Wenn die Konfiguration eines bestimmten Chips, z. B. des DRAM 123, während eines Konfigurationsmodus erwünscht wird, die Steuerung 103 den spezifischen DRAM frei, wobei sie gleichzeitig alle anderen Speicherchips entlang des gleichen Babybus 107 deaktiviert. Diese Freigabe wird durch ein Verursachen der Steuerung 103 verursacht, einen Konfigurationsbefehl an den DRAM über den Befehlsbus 111 zu senden, der gemeinsam mit einem Befehlsübernahmesignal den DRAM veranlaßt, den Befehl in eine interne Zeitsteuerungs- und Steuerungslogik 131 einzuklinken. Da der Konfigurationsbefehl, wie in Fig. 4 angezeigt, durch eine zweiten Latch 133 laufen muß, bevor er die interne Zeitsteuerungs- und Steuerungslogik 131 erreicht, wird seine Ankunft mit dem lokalen Taktsignal 129 des DRAM 123 synchronisiert. Der Konfigurationsbefehl kann z. B. durch die bedeutungsvollsten Bits nur des Adreßbus angezeigt werden, wobei er keine Übertragung der Daten entlang des Babybus 107 benötigt. Diese bedeutungsvollsten Bits werden dann durch die interne Zeitsteuerungs- und Steuerungslogik 131 in ein Modusregister 132 gekoppelt und verwendet, um dem DRAM 123 zu befehlen, in den Konfigurationsmodus einzutreten.
- Bei dem Konfigurationsmodus überwacht der DRAM einfach den Babybus 107 nach einem vorbestimmten Datenwort, das von einem Eingangsübernahmesignal begleitet wird, um das Datenwort in ein Synchronisationserfassungsregister 137 zu übernehmen. Als Antwort auf die Erfassung des Datenwortes veranlaßt die Zeitsteuerungs- und Steuerungslogik sofort, daß ein vorbestimmtes Antwortwort einem Ausgangslatch 139 von einem Speicherraum 141 zugeführt wird, das die Zeitsteuerungs- und Steuerungslogik über eine Synchronisationssteuerungsleitung 143 frei gibt. Das vorbestimmte Antwortwort wird dadurch sofort zurück auf den Babybus geschleust und an die Steuerung gesendet, gewöhnlicherweise bei dem lokalen Taktpuls, der einer Präsentation des Antwortwortes an den Ausgangslatch 139 unmittelbar folgt. Begleitet durch ein Ausgangsübernahmesignal wird das vorbestimmte Antwortwort auf einen Empfang hin in die Steuerung eingeklinkt und verwendet, um den internen Zeitgeber des Vergleichsmechanismus 118 der Steuerung zu stoppen.
- Fig. 5 wird verwendet, um die Ergebnisse der Bestimmung, durch die Steuerung, einer maximalen Verzögerungszeit über alle Chips 105 aus Fig. 3 zu zeigen. Insbesondere ist es, wie es bei der Verbindung in Fig. 2 der Fall war, wünschenswert, daß die Steuerung 103 aus Fig. 3 Daten-Lesen- Befehle bei aufeinanderfolgenden Taktzyklen durchführt. Dies bezüglich sendet die Steuerung Daten-Lesen-Befehle "X" und "Y" (in Fig. 5B durch die Bezugszeichen 145 und 147 bezeichnet) an zwei unterschiedliche Speichervorrichtungen, die in Serie mit der Steuerung geschaltet sind. Diese Vorrichtungen können aus einzelnen Chips 105 entlang eines einzelnen Babybus 107-1 bestehen oder alternativ aus mehreren Chips, die über unterschiedliche Babybusse 107 mit der Steuerung gekoppelt sind. Die Daten-Lesen-Befehle 145 und 147 sind das erste und das dritte Lesen des Zugs von drei aufeinanderfolgenden Daten-Lesen-Operationen, wobei der mittlere Daten-Lesen-Befehl in Fig. 5B durch einen Strich "-" angezeigt ist. Wie bei Fig. 2 weist jede Daten-Lesen- Operation eine Ausbreitungszeit auf, die ihr zugeordnet sind, wobei die Operationen an einer entsprechenden Speichervorrichtung gemäß der entsprechenden Ausbreitungszeit ankommen. Beim Implementieren der Prinzipien der vorliegenden Erfindung jedoch ist die Speichervorrichtung, die dem Befehl "Y" zugeordnet ist, mit einem Versatz 149 programmiert, der eine Verzögerung von zwei Taktzyklen darstellt. So wird diese Speichervorrichtung ihren lokalen Takt verwenden, um eine Verzögerung von zwei Taktzyklen auf den Ausgangslatch (in Fig. 4 139) aufzuerlegen. Der Versatz korrigiert jeden einzelnen Chip, um gemäß der maximalen Antwortzeit für alle Chips zu antworten, wobei z. B. die Antwort jedes Chips verlangsamt wird, um synchron mit dem langsamsten Chip zu sein. Folglich wird, angenommen, daß alle drei Speichervorrichtungen gemäß der vorliegenden Erfindung konfiguriert sind, jeder der drei Daten-Lesen- Befehle bei aufeinanderfolgenden Taktzyklen empfangen, wie in Fig. 5E durch das Bezugszeichen 151 gezeigt ist.
- Bezug nehmend auf Fig. 4 programmiert die Steuerung eine Verzögerung, indem sie einen Versatz in den DRAM 123 lädt. Sie führt dieses Programmieren durch das Schreiben einer Zahl von Taktpulsen in einen internen Puffer 153 des DRAM durch. Nachfolgend verarbeitet sie, wenn der DRAM 123 einen Daten-Lesen-Befehl außerhalb des Konfigurationsmodus empfängt, den Befehl auf die normale Weise. Wenn jedoch das Produkt des Lesen-Befehls an dem Ausgangslatch präsentiert wird, wird dieses Produkt nicht unmittelbar bei dem nachfolgenden lokalen Taktpuls auf den Datenbus geschleust. Vielmehr hält die interne Zeitsteuerungs- und Steuerungslogik 121 die Freigabe der Synchronisationssteuerungsleitung 143 zurück, um einen Ausgang um einen Betrag, der von dem Puffer angezeigt wird, zu verzögern. Vorzugsweise ist der Puffer zu diesem Zweck mit einem Zeitgeber kombiniert, der auf die Erfassung jedes Lesen-Befehls hin, der von dem Chip empfangen wird, ein Rückwärtszählen beginnt.
- Es ist wichtig, daß es eine Zahl gleichwertiger Implementierungen dieser Verzögerungsstruktur gibt, die für Fachleuten leicht erkennbar sind. Ein Versatz könnte z. B. durch ein Entwerfen jeder Speichervorrichtung und des Systems erzielt werden, um ein Ausgangssignal bei einem vorbestimmten Taktzyklus zu schaffen, aber um eine Zahl zu programmieren, um das Ausgangssignal "früh" ansprechend auf einen Pufferinhalt verfügbar zu machen. Alternativ könnte jede Speichervorrichtung mehrere Modi aufweisen, wobei eine Verzögerung durch ein Auswählen eines der mehreren Modi erzielt wird. Alternativ könnte eine Verzögerung durch eine Schaltung implementiert werden, die sich außerhalb der Speichervorrichtung befindet. Diese Umgebungen sowie andere Modifikationen beim Entwurf des Speichersystems, die für Fachleute klar sind, werden so betrachtet, daß sie in der Wesensart der vorliegenden Erfindung enthalten sind.
- Nachdem der DRAM 123 mit dem Versatz programmiert wurde, berechnet die Steuerung vorzugsweise eine Korrektur, die verwendet wird, um den Versatz zu verfeinern. Insbesondere können bei dem System aus Fig. 3 jeder Datenbus (jeder Babybus 107) und der entsprechende Befehlsbus 111 unterschiedliche Weglängen aufweisen. Da der Versatz ursprünglich unter Verwendung eines Abfragens und einer Antwort nur bezüglich des Datenbus (des Babybus 107) berechnet wurde, und da Lesen-Befehle normalerweise entlang des Befehlsbus ausgegeben werden, kann es vorkommen, daß der Versatz eine gewünschte Verzögerung nicht korrekt wiedergibt. Folglich wird die Korrektur für jeden Chip verwendet, um die Verzögerungszeit, die jedem Chip 105 zugeordnet ist, zu verfeinern, um diese Diskrepanz zu korrigieren, wobei die Korrektur von Chip zu Chip unterschiedlich sein kann.
- Um die Korrektur zu berechnen, sendet die Steuerung 103 einen Folge-Schreiben-Befehl an jeden DRAM. Der Schreiben- Befehl umfaßt sowohl den tatsächlichen Befehl, der entlang des Befehlsbus 111 übertragen wird, als auch Daten, die entlang des entsprechenden Babybus 107 übertragen werden. Bezug nehmend auf Fig. 4 wird, wenn der Befehl durch den DRAM 123 von dem Befehl empfangen wird, dieser an eine erste Synchronisationserfassungsschaltung 155 geliefert, der eine Anzeige eines empfangenen Befehls an einen Befehlszustandszähler 157 liefert. Der Befehlszustandszähler 157 beginnt dann ein Zählen mit jedem lokalen Taktpuls. Die Daten entsprechend dem Befehl, der von dem entsprechenden Babybus 107 empfangen wird, wird auch einer zweiten Synchronisationserfassungsschaltung 159 zugeführt, der ähnlich eine Anzeige von empfangenen Daten an einen Datenzustandszähler 161 liefert. Dieser Datenzustandszähler 161 beginnt auch ein Zählen mit jedem lokalen Taktpuls. So wird der Empfang des Schreiben-Befehls oder seiner entsprechenden Schreiben- Daten den einen oder den anderen Zähler 157 oder 161 auslösen, um ein Zählen zu beginnen. Ein Empfang beider Anzeigen von den Synchronisationserfassungsschaltungen 155 und L59 wird verwendet, um einen Unterschied der Zahl der Taktzyklen zwischen einem Befehlsempfang über eine Subtraktionsschaltung 163 zu schleusen, wobei ein Ausgang, der diesen Unterschied anzeigt, an die Zeitsteuerungs- und Steuerungslogik 131 des DRAM 123 geliefert wird. Dieser Unterschied stellt die Korrektur des Versatzes der Zahl von Taktzyklen dar. So wird, abhängig davon, ob der Befehlsbus langsamer oder schneller als der Datenbus ist, ausgedrückt durch die Ausbreitungszeit, die Zeitsteuerungs- und Steuerungslogik 131 den Inhalt des internen Puffers 153 entsprechend modifizieren. Folglich wird, sobald der Versatz und die Korrektur berechnet sind, der Inhalt des internen Puffers 153 danach präzise eine erwünschte Zahl von Versatztaktzyklen zum Erzielen einer Synchronisation über mehrere Speichervorrichtungen wiedergeben.
- Es wurde ein Speichersystem und eine Speichervorrichtung zum Erzielen einer synchronen Datenwiedergabe, bei der Steuerung, von vielen Speichervorrichtungen, wie z. B. von DRAM-Chips, beschrieben. Unter Verwendung des oben beschriebenen bevorzugten Ausführungsbeispiels kann eine im wesentlichen synchrone Speicherantwort von parallelen Speichervorrichtungen, z. B. wenn diese über mehrere Babybusse 107 verbunden sind und Bitgruppen mit unterschiedlicher Bedeutung für einen Datenwortabruf (z. B. für einen 64-Bit- Wortabruf) liefern, oder um eine Buskonkurrenz zwischen mehreren Speichervorrichtungen zu vermeiden, die mit dem gleichen Datenbus gekoppelt sind, wie dies Bezug nehmend auf die Fig. 2 und 4 erklärt wurde, erzielt werden. Besonders führt das hierin beschriebene System eine Korrektur nur für ganzzahlige Taktzyklen durch und erzielt keine Phasenkorrektur zwischen unterschiedlichen Speicherchips. Das hierin beschriebene System ist jedoch mit Systemen zum Erzielen einer Phasensynchronisation kompatibel, wie z. B. in dem US-Patent Nr. 4,998,262 beschrieben wird.
Claims (11)
1. Ein digitales Speichersystem (101), das eine Steuerung
(103) und zumindest zwei Speichervorrichtungen (105)
aufweist, mit zumindest einem Datenbus (107), der die
Steuerung (103) mit jeder Speichervorrichtung (105)
koppelt, wobei die Steuerung (103) auch einen
Systemtakt (115) aufweist, durch den die Steuerung (103)
ihre Operationen zeitlich steuert, gekennzeichnet durch
folgende Merkmale:
einen Puffer (153) in jeder Speichervorrichtung (105),
wobei jeder Puffer (153) angepaßt ist, um eine Zahl
(149) entsprechend einer Zeitmenge zu speichern, um
die der entsprechende Puffer (153) eine Datenausgabe
verzögern soll;
eine Routine, die von der Steuerung (103) durchgeführt
wird, die die Steuerung dazu veranlaßt
für jede Speichervorrichtung
die Speichervorrichtung zu einer Antwort
aufzufordern, und
eine Zahl von Taktpulsen bei der Steuerung
(103) zwischen einem Auffordern der
Speichervorrichtung (105) und einem Empfang der
entsprechenden Antwort von der
Speichervorrichtung (105) zu zählen,
eine maximale Verzögerung zu bestimmen, die von
der maximalen Zahl von Taktpulsen gemessen wird,
die für eine Antwort über die zumindest zwei
Speichervorrichtungen (105) benötigt wird, und
den Puffer (153) zumindest einer
Speichervorrichtung (105) zu veranlassen, eine Zahl zu
speichern, die ausreicht, um zu bewirken, daß Daten
von der entsprechenden Speichervorrichtung (105)
bei der Steuerung (103) mit der maximalen
Verzögerungszeit empfangen werden; und
einen Schaltungsaufbau (121) in jeder
Speichervorrichtung (105), der eine Datenausgabe ansprechend auf die
Zahl verzögert, die in dem entsprechenden Puffer (153)
gespeichert ist.
2. Ein digitales Speichersystem (101) gemäß Anspruch 1,
bei dem jede Speichervorrichtung (105) den Systemtakt
(115) empfängt und einen lokalen Takt (129)
ansprechend auf denselben erzeugt, das ferner durch
folgendes Merkmal gekennzeichnet ist:
ein Ausgangsübernahmesignal (112), das von jeder
Speichervorrichtung (105) als Antwort auf ein Auffordern
ausgegeben wird, wobei das Ausgangsübernahmesignal
(112) Tokal von dem Systemtakt (115) an der Stelle der
entsprechenden Speichervorrichtung (105) abgeleitet
und mit der Steuerung (103) gekoppelt wird, um so die
Ankunft der Antwort von der bestimmten
Speichervorrichtung (105) zu übernehmen.
3. Ein digitales Speichersystem (101) gemäß Anspruch 1
oder 2, bei dem der Systembus einen Datenbus (1C7) und
einen Befehlsbus (111) umfaßt, die unterschiedliche
Weglängen aufweisen, das ferner durch folgendes
Merkmal gekennzeichnet ist:
einen Verzögerungskonfigurationsmodus jeder
Speichervorrichtung (105), wobei der
Verzögerungskonfigurationsmodus durch den Befehlsbus (111) befohlen wird und
die entsprechende Speichervorrichtung (105) dazu
veranlaßt,
auf das Vorliegen eines Datensignals auf dem
Datenbus (107) und eines Eingangsübernahmesignals
(125) zu warten, um die Daten anzunehmen, wobei
das Datensignal zumindest einen Teil der
Aufforderung von der Steuerung (103) bildet, und
die Antwort an die Steuerung (103) als Antwort
auf das Datensignal auszugeben.
4. Ein digitales Speichersystem (101) gemäß Anspruch 3,
das ferner durch folgendes Merkmal gekennzeichnet ist:
einen Verzögerungseinstellungsmechanismus in jeder
Speichervorrichtung, wobei der
Verzögerungseinstellungsmechanismus einen Befehl von dem Befehlsbus (111)
und Daten von dem Datenbus (107) empfängt, und eine
Abweichung der Zeit zu der Zahl für die entsprechende
Speichervorrichtung (105) berechnet, wobei die Zahl
einen Unterschied der Laufzeit zwischen dem Befehlsbus
(111) und dem Datenbus (107) korrigiert.
5. Ein digitales Speichersystem (101) gemäß einem der
Ansprüche 1 bis 4, das ferner durch folgendes Merkmal
gekennzeichnet ist:
eine Anordnung von zumindest zwei
Speichervorrichtungen (105) auf einem einzelnen, gemeinschaftlich
verwendeten Datenbus (107).
6. Ein digitales Speichersystem (10) gemäß einem der
Ansprüche 1 bis 5, das ferner durch folgendes Merkmal
gekennzeichnet ist:
eine Anordnung von zumindest zwei
Speichervorrichtungen (105) auf unterschiedlichen, parallelen
Datenbussen (107).
7. Eine Speichervorrichtung (105) zur Verwendung in einem
Speichersystem (101), mit folgenden Merkmalen
einem Speicherraum (141), in dem Daten gespeichert
sind,
einem Ausgangsweg zum Koppeln von Daten von dem
Speicherraum zu dem Systembus ansprechend auf einen Daten-
Lesen-Befehl,
Speicherraumtreibern, die auf Datenorte in dem
Speicherraum (141) zugreifen, und die den Inhalt von
ausgewählten Datenorten mit dem Ausgangsweg ansprechend
auf einen Daten-Lesen-Befehl koppeln,
einem Taktmechanismus (127), der ein Taktsignal (129)
liefert, um interne Operationen der
Speichervorrichtung (105) zu synchronisieren,
wobei die Speichervorrichtung zur Verwendung mit einer
Speichersteuerung (103) und einem Systembus angepaßt
ist, wobei die Speichersteuerung (103) jedes der
mehreren Speicherelemente (105) abfragt, um eine
zugeordnete Befehlsantwortzeit zu bestimmen, und eine
erwünschte Antwortzeit bestimmt, wobei die
Speichervorrichtung durch folgende Merkmale gekennzeichnet ist:
einen Puffer (153), der eine Zahl von Taktpulsen
speichert; und
einen Verzögerungsmechanismus (121), der mit dem
Puffer (153) gekoppelt ist, wobei der
Verzögerungsmechanismus (121) eine Verzögerung zumindest eines der Ausgangswege
und der Speicherraumtreiber um einen Betrag
verursacht, der der Zahl von Taktpulsen entspricht;
wobei die Vorrichtung zur Synchronisation mit anderen
Speicherelementen (105) ansprechend auf die Steuerung
(103) angepaßt ist, die bewirkt, daß der Puffer (153)
mit einer Zahl beladen wird, die einen Abgleich der
Befehlsantwortzeit für die Vorrichtung mit der
gewünschten Antwortzeit bewirkt.
8. Eine Speichervorrichtung gemäß Anspruch 7, bei der das
Speichersystem (101) ferner einen Datenbus (107) und
einen Systemtakt (115) umfaßt, der von der
Systemsteuerung (103) ausgegeben wird, und bei der:
die Vorrichtung ferner durch folgende Merkmale
gekennzeichnet ist
ein Modusregister (123), das selektiv durch einen
Befehl von der Systemsteuerung (103) programmiert
ist, um zu bewirken, daß die Vorrichtung einen
Kalibrierungsmodus betritt,
ein vorbestimmtes Antwortwort, das in der
Vorrichtung gespeichert ist, wobei das vorbestimmte
Antwortwort mit dem Datenbus (107) ansprechend
auf einen Abfragebefehl von der Systemsteuerung
(103) gekoppelt wird, und
ein Ausgangsübernahmesignal (112) der
Vorrichtung, wobei das Ausgangsübernahmesignal (112)
lokal an der Vorrichtung von dem Systemtakt (11.5)
abgeleitet wird; und
wobei der Kalibrierungsmodus bewirkt, daß die
Vorrichtung den Abfragebefehl abwartet und ansprechend auf
eine Erfassung des Abfragebefehls durch die
Vorrichtung auf dem Datenbus (107) das vorbestimmte Antwortwort
und das Echoübernahmesignal auf den Datenbus
(107) koppelt.
9. Eine Speichervorrichtung gemäß Anspruch 7 oder 8, bei
der der Systembus ferner einen Befehlsbus (111)
umfaßt, und bei der:
die Vorrichtung ferner die Zahl von der
Systemsteuerung (103) empfängt und diese in dem Puffer (153)
speichert; und
die Vorrichtung ferner durch folgende Merkmale
gekennzeichnet ist
einen Vergleichsmechanismus (163) zum Vergleichen
der Empfangszeit zumindest eines Signals entlang
des Befehlsbus mit der Empfangszeit eines
entsprechenden Signals entlang des Datenbus und zum
Liefern eines Ausgangssignals, und
eine Hinzufügvorrichtung, mit der das
Ausgangssignal gekoppelt ist, wobei die
Hinzufügvorrichtung (131) die Zahl durch das Ausgangssignal
modifiziert, um einen Unterschied zwischen der
Laufzeit entlang des Datenbusses und der Laufzeit
entlang des Befehlsbusses auszugleichen.
10. Eine Speichervorrichtung gemäß einem der Ansprüche 7
bis 9, bei der die Speichervorrichtung ein
Direktzugriffsspeicher ist.
11. Eine Speichervorrichtung gemäß einem der Ansprüche 7
bis 9, bei der die Speichervorrichtung ein dynamischer
Direktzugriffsspeicher ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/729,261 US5892981A (en) | 1996-10-10 | 1996-10-10 | Memory system and device |
PCT/US1997/018128 WO1998015897A1 (en) | 1996-10-10 | 1997-10-06 | Memory system and device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69709885D1 DE69709885D1 (de) | 2002-02-28 |
DE69709885T2 true DE69709885T2 (de) | 2002-06-27 |
Family
ID=24930266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69709885T Expired - Fee Related DE69709885T2 (de) | 1996-10-10 | 1997-10-06 | Speichersystem und einrichtung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5892981A (de) |
EP (1) | EP0931291B1 (de) |
JP (1) | JP3860842B2 (de) |
DE (1) | DE69709885T2 (de) |
WO (1) | WO1998015897A1 (de) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173345B1 (en) * | 1998-11-03 | 2001-01-09 | Intel Corporation | Method and apparatus for levelizing transfer delays for a channel of devices such as memory devices in a memory subsystem |
US6391483B1 (en) | 1999-03-30 | 2002-05-21 | Carnegie Mellon University | Magnetic device and method of forming same |
US7051130B1 (en) | 1999-10-19 | 2006-05-23 | Rambus Inc. | Integrated circuit device that stores a value representative of a drive strength setting |
US6643787B1 (en) | 1999-10-19 | 2003-11-04 | Rambus Inc. | Bus system optimization |
US6321282B1 (en) | 1999-10-19 | 2001-11-20 | Rambus Inc. | Apparatus and method for topography dependent signaling |
KR100389916B1 (ko) * | 2000-08-28 | 2003-07-04 | 삼성전자주식회사 | 메모리 모듈 및 메모리 컨트롤러 |
US7079775B2 (en) | 2001-02-05 | 2006-07-18 | Finisar Corporation | Integrated memory mapped controller circuit for fiber optics transceiver |
US6658523B2 (en) * | 2001-03-13 | 2003-12-02 | Micron Technology, Inc. | System latency levelization for read data |
US8391039B2 (en) * | 2001-04-24 | 2013-03-05 | Rambus Inc. | Memory module with termination component |
EP1291778B1 (de) * | 2001-04-24 | 2007-06-27 | Rambus Inc. | Verfahren und Gerät zum Koordinieren von Speicheroperationen zwischen unterschiedlich angeordneten Speicherkomponenten |
US6675272B2 (en) * | 2001-04-24 | 2004-01-06 | Rambus Inc. | Method and apparatus for coordinating memory operations among diversely-located memory components |
US6622222B2 (en) * | 2001-04-26 | 2003-09-16 | International Business Machines Corporation | Sequencing data on a shared data bus via a memory buffer to prevent data overlap during multiple memory read operations |
DE10123769C1 (de) * | 2001-05-16 | 2002-12-12 | Infineon Technologies Ag | Verfahren zur Anpassung unterschiedlicher Signallaufzeiten zwischen einer Steuerung und wenigstens zweier Verarbeitungseinheiten sowie Rechnersystem |
US6920540B2 (en) | 2001-10-22 | 2005-07-19 | Rambus Inc. | Timing calibration apparatus and method for a memory device signaling system |
US6897497B2 (en) * | 2001-12-20 | 2005-05-24 | Hyperchip Inc. | Methods, apparatus, and systems for reducing interference on nearby conductors |
US20030117183A1 (en) * | 2001-12-20 | 2003-06-26 | Claude Thibeault | Methods, apparatus, and systems for reducing interference on nearby conductors |
US7609778B2 (en) * | 2001-12-20 | 2009-10-27 | Richard S. Norman | Methods, apparatus, and systems for reducing interference on nearby conductors |
US6703868B2 (en) | 2001-12-20 | 2004-03-09 | Hyperchip Inc. | Methods, apparatus, and systems for reducing interference on nearby conductors |
US6944040B1 (en) | 2001-12-28 | 2005-09-13 | Netlogic Microsystems, Inc. | Programmable delay circuit within a content addressable memory |
US6650575B1 (en) * | 2001-12-28 | 2003-11-18 | Netlogic Microsystems, Inc. | Programmable delay circuit within a content addressable memory |
US7135903B2 (en) * | 2002-09-03 | 2006-11-14 | Rambus Inc. | Phase jumping locked loop circuit |
US6911853B2 (en) * | 2002-03-22 | 2005-06-28 | Rambus Inc. | Locked loop with dual rail regulation |
US6952123B2 (en) | 2002-03-22 | 2005-10-04 | Rambus Inc. | System with dual rail regulated locked loop |
US6922091B2 (en) | 2002-09-03 | 2005-07-26 | Rambus Inc. | Locked loop circuit with clock hold function |
US6759881B2 (en) | 2002-03-22 | 2004-07-06 | Rambus Inc. | System with phase jumping locked loop circuit |
JP3835328B2 (ja) * | 2002-03-27 | 2006-10-18 | ブラザー工業株式会社 | メモリ制御装置 |
US6956257B2 (en) | 2002-11-18 | 2005-10-18 | Carnegie Mellon University | Magnetic memory element and memory device including same |
US7685188B2 (en) * | 2004-01-23 | 2010-03-23 | Microsoft Corporation | Automated generation of computer-executable compensation procedures for previously executed methods |
US7669027B2 (en) * | 2004-08-19 | 2010-02-23 | Micron Technology, Inc. | Memory command delay balancing in a daisy-chained memory topology |
US7301831B2 (en) * | 2004-09-15 | 2007-11-27 | Rambus Inc. | Memory systems with variable delays for write data signals |
US7280428B2 (en) | 2004-09-30 | 2007-10-09 | Rambus Inc. | Multi-column addressing mode memory system including an integrated circuit memory device |
US8595459B2 (en) * | 2004-11-29 | 2013-11-26 | Rambus Inc. | Micro-threaded memory |
US8065457B2 (en) * | 2005-09-09 | 2011-11-22 | Advanced Micro Devices, Inc. | Delayed memory access request arbitration |
DE102006062725B4 (de) * | 2006-04-15 | 2018-01-18 | Polaris Innovations Ltd. | Speichersystem mit integrierten Speicherbausteinen sowie Verfahren zum Betrieb eines Speichersystems |
US20070260841A1 (en) | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US20080114960A1 (en) * | 2006-11-14 | 2008-05-15 | Tau-Li Huang | Memory control methods for accessing a memory with partial or full serial transmission, and related apparatus |
EP3200189B1 (de) | 2007-04-12 | 2021-06-02 | Rambus Inc. | Speichersystem mit punkt-zu-punkt-anforderungsverbindung |
US8438356B2 (en) | 2007-10-01 | 2013-05-07 | Marvell World Trade Ltd. | Flash memory controller |
US8799606B2 (en) * | 2007-12-20 | 2014-08-05 | International Business Machines Corporation | Computer memory subsystem for enhancing signal quality |
JP2011081732A (ja) * | 2009-10-09 | 2011-04-21 | Elpida Memory Inc | 半導体装置及びその調整方法並びにデータ処理システム |
WO2011130007A1 (en) * | 2010-04-14 | 2011-10-20 | Rambus Inc. | Levelization of memory interface for communicating with multiple memory devices |
US9268719B2 (en) | 2011-08-05 | 2016-02-23 | Rambus Inc. | Memory signal buffers and modules supporting variable access granularity |
US9336112B2 (en) | 2012-06-19 | 2016-05-10 | Apple Inc. | Parallel status polling of multiple memory devices |
JP2022056144A (ja) | 2020-09-29 | 2022-04-08 | 富士フイルムビジネスイノベーション株式会社 | プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1158739A (en) * | 1980-04-30 | 1983-12-13 | William Rodman | Distributed network synchronization system |
US4604717A (en) * | 1983-02-18 | 1986-08-05 | Rca Corporation | Method and apparatus for measuring the time delay between signals |
DE3752017T2 (de) * | 1986-03-20 | 1997-08-28 | Nippon Electric Co | Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit |
JPS6315354A (ja) * | 1986-07-07 | 1988-01-22 | Hitachi Ltd | 分散システムにおけるタイマ一致化管理方式 |
US5237674A (en) * | 1987-04-11 | 1993-08-17 | Apple Computer, Inc. | Self identifying scheme for memory module including circuitry for identfying accessing speed |
CA1301261C (en) * | 1988-04-27 | 1992-05-19 | Wayne D. Grover | Method and apparatus for clock distribution and for distributed clock synchronization |
JPH0212541A (ja) * | 1988-04-29 | 1990-01-17 | Internatl Business Mach Corp <Ibm> | コンピユーテイング・システム及びその動作方法 |
US5189246A (en) * | 1989-09-28 | 1993-02-23 | Csir | Timing apparatus |
US4998262A (en) * | 1989-10-10 | 1991-03-05 | Hewlett-Packard Company | Generation of topology independent reference signals |
US5359722A (en) * | 1990-07-23 | 1994-10-25 | International Business Machines Corporation | Method for shortening memory fetch time relative to memory store time and controlling recovery in a DRAM |
JP2993239B2 (ja) * | 1991-11-28 | 1999-12-20 | 株式会社日立製作所 | 階層間ディレイ配分方法 |
US5509138A (en) * | 1993-03-22 | 1996-04-16 | Compaq Computer Corporation | Method for determining speeds of memory modules |
JPH0713905A (ja) * | 1993-06-23 | 1995-01-17 | Hitachi Ltd | 記憶装置システム及びその制御方法 |
US5408506A (en) * | 1993-07-09 | 1995-04-18 | Apple Computer, Inc. | Distributed time synchronization system and method |
JPH08123717A (ja) * | 1994-10-25 | 1996-05-17 | Oki Electric Ind Co Ltd | 半導体記憶装置 |
-
1996
- 1996-10-10 US US08/729,261 patent/US5892981A/en not_active Expired - Fee Related
-
1997
- 1997-10-06 DE DE69709885T patent/DE69709885T2/de not_active Expired - Fee Related
- 1997-10-06 JP JP51769398A patent/JP3860842B2/ja not_active Expired - Fee Related
- 1997-10-06 WO PCT/US1997/018128 patent/WO1998015897A1/en active IP Right Grant
- 1997-10-06 EP EP97910834A patent/EP0931291B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1998015897A1 (en) | 1998-04-16 |
EP0931291A1 (de) | 1999-07-28 |
JP3860842B2 (ja) | 2006-12-20 |
DE69709885D1 (de) | 2002-02-28 |
JP2001505684A (ja) | 2001-04-24 |
EP0931291B1 (de) | 2002-01-02 |
US5892981A (en) | 1999-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69709885T2 (de) | Speichersystem und einrichtung | |
DE3689042T2 (de) | Gerät zur Pufferung von Schreibanforderungen. | |
DE69826863T2 (de) | Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet | |
DE69032481T2 (de) | Buszugriff für Digitalrechnersystem | |
DE69023018T2 (de) | Prozessor-Unterbrechungssteuerung. | |
DE69322310T2 (de) | Busarchitektur für integrierten Daten/- und Videospeicher | |
DE19882418B4 (de) | System einer quellensynchronen Schnittstelle zwischen Master- und Slave-Einrichtungen und zugehöriges Verfahren | |
DE60002567T2 (de) | Dynamische wellenpipelineschnittstellenanordnung und verfahren dafür | |
DE3876780T2 (de) | Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung. | |
DE69026479T2 (de) | Datenprozessor mit Wartezustandsteuerungseinheit | |
DE69028153T2 (de) | Cache-Speicherfehlgriffsvorhersageverfahren und -vorrichtung | |
DE69632634T2 (de) | Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit | |
DE68919539T2 (de) | Datenverarbeitungssystem mit Zugriffsquellen von verschiedenem Durchsatz. | |
DE3110196A1 (de) | Datenverarbeitungssystem | |
DE4233569A1 (de) | Informationsverarbeitungsgeraet | |
DE69025524T2 (de) | Vorrichtung und Verfahren zur Steuerung von Speicherzugriffsanforderungen in einem digitalen Datenverarbeitungssystem | |
DE3642324A1 (de) | Multiprozessoranlage mit prozessor-zugriffssteuerung | |
DE69123987T2 (de) | Stossbetrieb für Mikroprozessor mit externem Systemspeicher | |
DE68922984T2 (de) | Programmierbare Zeitsteuerung der Datenübertragung. | |
DE69025580T2 (de) | Auffrichungspuffer für Speicherkarte | |
DE69230483T2 (de) | Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung | |
DE68926374T2 (de) | Seriellumsetzungssteuerungssystem für Hauptspeicherreferenz | |
DE2912073C2 (de) | ||
DE68923899T2 (de) | Halbleiterspeicher. | |
DE69802426T2 (de) | Taktschema für digitales signalprozessorsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US |
|
8339 | Ceased/non-payment of the annual fee |