DE69922835T2 - Ausgleich von übertragungsverzögerungen für einen speicherkanal in einem speichersubsystem - Google Patents

Ausgleich von übertragungsverzögerungen für einen speicherkanal in einem speichersubsystem Download PDF

Info

Publication number
DE69922835T2
DE69922835T2 DE69922835T DE69922835T DE69922835T2 DE 69922835 T2 DE69922835 T2 DE 69922835T2 DE 69922835 T DE69922835 T DE 69922835T DE 69922835 T DE69922835 T DE 69922835T DE 69922835 T2 DE69922835 T2 DE 69922835T2
Authority
DE
Germany
Prior art keywords
delay
memory
delay value
controller
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69922835T
Other languages
English (en)
Other versions
DE69922835D1 (de
Inventor
A. William STEVENS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69922835D1 publication Critical patent/DE69922835D1/de
Publication of DE69922835T2 publication Critical patent/DE69922835T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/84Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
    • G11C29/842Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability by introducing a delay in a signal path

Landscapes

  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • VERWANDTE ANMELDUNGEN
  • Die vorliegende Erfindung ist verwandt zu der Anmeldung mit der Anmeldenummer 01/186.051 (Registernummer P6627) mit dem Titel "A Method And Apparatus For Configuring And Initializing A Memory Device And A Memory Channel", der Anmeldenummer 09/186.050 (Registernummer P6628) mit dem Titel "A Method And Apparatus For Configuring A Memory Device And A Memory Channel Using Configuration Space Registers" und der Anmeldenummer 09/186.049 (Registernummer P6639) mit dem Titel "A Method And Apparatus For Restoring A Memory Device Channel When Exiting A Lower Power State", die alle gleichzeitig zu der vorliegenden Anmeldung eingereicht werden.
  • STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Gebiet der Datenverarbeitungssysteme. Im Besonderen betrifft die vorliegende Erfindung das Angleichen von Übertragungsverzögerungen für mehrere Datenübertragungsvorrichtungen wie etwa Speichervorrichtungen, die in einem Speicherkanal konfiguriert werden.
  • 2. Beschreibung des Stands der Technik
  • Bei bestimmten Datenübertragungssystemen müssen die Datenübertragungsverzögerungen zwischen einer Gruppe von Systemvorrichtungen und einer Bussteuereinheit angeglichen werden, was bedeutet, dass die Datenübertragungsverzögerung so angepasst wird, dass die Summe der Datenübertragungsverzögerung und der Ausbreitungsverzögerung gleich der gleichen Anzahl von Buszyklen für alle Vorrichtungen an dem Bus ist. Bei angeglichenen Verzögerungen kann die Bussteuereinheit auf die ganze Gruppe von Systemvorrichtungen auf einheitliche Weise ansprechen. Eine derartige Angleichung wird für gewöhnlich beim Hochfahren des Systems oder während einem anderen Initialisierungszeitraum ausgeführt, wenn die Datenübertragung an die Gruppe von Vorrichtungen anderweitig aufgeschoben wird. Eine effiziente Technik zur Angleichung der Verzögerungen kann die vorteilhafte Reduzierung der Länge des Initialisierungszeitraums sein, wodurch eine schnellere Wiederaufnahme oder Fortsetzung der Systemverarbeitungsaktivitäten ermöglicht wird.
  • Bei vielen dem Stand der Technik entsprechenden Speicherteilsystemen ist Antwort einer ganzen Gruppe von Speichervorrichtungen während einem einzelnen Buszyklus erforderlich. Die Ansprechzeit kann zwar auf einen anderen Wert programmiert oder durch das Einfügen von Wartezuständen ausgedehnt werden, wobei jedoch erwartet wird, dass alle Daten innerhalb des gleichen Taktzyklus an der Speichersteuereinheit ankommen. Ein System, bei dem alle Vorrichtungen während dem gleichen Taktzyklus ansprechen, kann eine Verzögerungsangleichung nicht erforderlich sein, wobei derartige Konstruktionen jedoch teure Leiterplatten benötigen können und in Bezug auf die erreichbare Bandbreite beschränkt sein können.
  • Andererseits weisen bestimmte Systeme Vorrichtungen auf, die entlang eines verhältnismäßig langen Busses oder "Kanals" angeordnet sind, so dass das System nicht versucht, die Datenübertragung entlang dem Bus während einem einzigen Taktzyklus des Busses zu beenden. Tatsächlich kann die Taktrate für den Bus hoch genug sein, so das Vorrichtungen an einem Ende des Busses, entfernt von der Bussteuereinheit, eine Ausbreitungsverzögerung zu der Bussteuereinheit von mehreren Bustaktzyklen aufweisen können. Verstärkt wird das Problem der Ausbreitungsverzögerung dadurch, dass verschiedene Vorrichtungen entlang dem Kanal verschiedene Transaktionsansprechzeiten aufweisen können.
  • Ein Rambus (TM) Direct Rambus Dynamic Random Access Memory (Direct RDRAM) Bus ist ein Beispiel für einen Bus, der Speichervorrichtungen entlang eines Kanals verwendet. Es ist bekannt, dass ein Direct RDRAM Memory Controller (RMC) erwarten kann, dass Daten von allen Vorrichtungen entlang eines Kanals während einem bestimmten Buszyklus empfangen werden. Tatsächlich sieht eine Steuereinheit bzw. ein Controller, die bzw. der in "Direct RMC.d1 Data Sheet", erhältlich von der Rambus Corporation, Mountain View, Kalifornien, USA, ein Controller-Verzögerungsregister zur Unterstützung der Angleichung der Verzögerungen vor.
  • Zusätzlich können ein oder mehrere Verzögerungsregister in einzelnen RDRAM-Vorrichtungen vorgesehen sein (z.B. ein Register TRDLY, das in dem Datenblatt "Direct RDRAM 64/72-Mbit" auf Seite 36 beschrieben ist), Werte können in diesen Registern gespeichert werden, um Verzögerungen zwischen den verschiedenen Vorrichtungen entlang dem Kanal anzugleichen. Für gewöhnlich wird der Controller-Verzögerungswert zuerst initialisiert, wobei danach die Verzögerungswerte für die einzelnen Speichervorrichtungen angepasst werden.
  • Dieser Stand der Technik, siehe zum Beispiel das U.S. Patent US-A-5.892.981 A, sieht unter Umständen keinen Mechanismus zur Reduzierung der Anzahl der während der Initialisierung ausgeführten Anzahl von Zyklen vor. Im Allgemeinen sieht der Stand der Technik keine bestimmten Möglichkeiten vor, um nur eine Teilmenge der ganzen Anzahl möglicher Verzögerungswerte zu testen. Der Stand der Technik spezifiziert ferner kein Verfahren zur Auswahl von Anfangswerten für bestimmte Verzögerungstestiterationen, eine effiziente Reihenfolge zum Testen von Verzögerungswerten, ein Verfahren zur Ausführung jedes Tests oder eine Möglichkeit zum Abbrechen der Verzögerungstests sowie zur Deaktivierung von Vorrichtungen, wenn bestimmte Werte erreicht werden. Der Stand der Technik sieht somit kein angemessenes Verfahren zur Angleichung von Verzögerungen entlang einem Kanal von Vorrichtungen vor.
  • Das Problem wird durch die Lösung behoben, die in dem Verfahrensanspruch 1 und dem Systemanspruch 7 definiert ist. Vorteilhafte Ausführungsbeispiele sind in den Unteransprüchen definiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist in den Abbildungen der beigefügten Zeichnungen beispielhaft veranschaulicht und ohne die vorliegende Erfindung dadurch einzuschränken. Es zeigen:
  • 1 ein Flussdiagramm eins Ausführungsbeispiels eines Systems, das Verzögerungen für Speichervorrichtungen angleicht;
  • 2 ein Ausführungsbeispiel eines Systems, das Verzögerungen für Speichervorrichtungen angleicht;
  • 3 ein Ausführungsbeispiel einer ersten Phase der Verzögerungsangleichung, in der ein Steuereinheits-Verzögerungswert bestimmt wird; und
  • 4 ein Ausführungsbeispiel einer zweiten Phase der Verzögerungsangleichung, in der einzelne Vorrichtungsverzögerungen für jede freigegebene Vorrichtung bestimmt werden.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Vorgesehen werden in der folgenden Beschreibung ein Verfahren und eine Vorrichtung zum Angleichen von Übertragungsverzögerungen für einen Kanal von Vorrichtungen wie etwa Speichervorrichtungen in einem Speicherteilsystem. Die folgende Beschreibung führt zahlreiche spezifische Einzelheiten wie etwa Registernamen, Speicherarten, Busprotokolle, spezifische Komponententypen, logische Partionierungen und Integrationsauswahlen aus, um ein umfassenderes Verständnis der vorliegenden Erfindung zu vermitteln. Hiermit wird jedoch für den Fachmann auf dem Gebiet festgestellt, dass die vorliegende Erfindung auch ohne diese spezifischen Einzelheiten ausgeführt werden kann. In anderen Fällen wurde auf die Darstellung von Steuerstrukturen und Schaltungen auf Gate-Ebene verzichtet, um die Erfindung nicht unnötig zu verschleiern, Der Durchschnittsfachmann auf dem Gebiet ist anhand der vorliegenden Beschreibungen in der Lage, die erforderlichen Logikschaltungen ohne übermäßige Versuchsreihen zu implementieren.
  • Die offenbarten Techniken können einen effizienten Initialisierungsprozess zum Angleichen von Verzögerungen zwischen einer Steuereinheit bzw. einem Controller und einer Gruppe von Vorrichtungen vorsehen. Der Initialisierungsprozess kann effizient sein, da nur eine Teilmenge aller insgesamt existierenden möglichen Verzögerungswerte getestet werden muss. Zum Beispiel kann auf umfassende Verzögerungstests verzichtet werden, wenn eine effiziente Reihenfolge bzw. Anordnung von Testverzögerungswerten eingesetzt wird, wenn bestimmte Ausgangswerte für bestimmte Verzögerungstestiterationen ausgewählt werden und/oder wenn die Verzögerungstests nach Erreichen bestimmter Werte abgebrochen werden. Als Folge der Verwendung der offenbarten Techniken kann eine weitere Verarbeitung schneller fortgesetzt werden oder von neuem beginnen, wodurch ein erhöhter Systemdurchsatz ermöglicht wird.
  • Die effiziente Initialisierung eines Speicherteilsystems kann aufgrund des Fehlens von Speicher für Variablen während der Initialisierung besonders schwierig sein. Da der Speicher selbst initialisiert wird, kann dieser zum Speichern von temporären Werten nicht zur Verfügung stehen. Darüber hinaus weist das BIOS-Programm, das für gewöhnlich die Initialisierung ausführt, nur wenig oder keinen Speicher auf, in dem Werte vorübergehend gespeichert werden können. Somit können für eine Initialisierungsroutine begrenzte Ressourcen zur Unterstützung eines optimalen Initialisierungsablaufs zur Verfügung stehen.
  • Bei bestimmten Ausführungsbeispielen der offenbarten Zweiphasentechnik kann auf große Speicherkapazitäten verzichtet werden, indem zuerst eine maximale Latenz zum Festlegen eines Steuereinheits-Verzögerungswertes getestet wird, und wobei danach jede Speichervorrichtung zum Festlegen eines Vorrichtungsverzögerungswerts abgearbeitet wird. Die Effizienz kann dadurch beibehalten werden, dass unnötige Iterationen in beiden Phasen des Verfahrens weggelassen werden.
  • Die Abbildung aus 1 zeigt ein allgemeines Flussdiagramm zur Verzögerungsangleichung für eine Gruppe oder einen Kanal von Vorrichtungen mit einem Datenaustausch mit einer Steuereinheit über einen Bus. Die Phase 1 dieser Technik umfasst die Programmierung eines Steuereinheits-Verzögerungswertes auf der Basis einer maximalen Vorrichtungslatenz. Der in Phase 1 bestimmte Steuereinheits-Verzögerungswert ist eine Funktion des größten Übertragungslatenzwertes der Vorrichtungen an dem Bus. Abhängig von der jeweiligen Übertragungseinleitung und/oder der eingesetzten Hardware für den Datenempfang kann der Steuereinheits-Verzögerungswert entweder gleich dem größten Übertragungslatenzwert sein oder von diesem abgeleitet werden.
  • Eine mögliche Technik zur Ermittlung der Steuereinheitsverzögerung ist die Bestimmung durch iteratives Testen. Gemäß der Darstellung in Block 100 kann ein Steuereinheits-Verzögerungswert jedoch auch durch Testen nur einer Teilmenge der verfügbaren Verzögerungswerte bestimmt werden. Mit anderen Worten können einer Steuereinheit N mögliche interne Verzögerungswerte zur Verfügung stehen, die zur Kompensation von Verzögerungen der verschiedenen Vorrichtungen an dem Bus verwendet werden können, und wobei weniger als N Tests an mindestens einigen der Speichervorrichtungen unter bestimmten Bedingungen ausgeführt werden. Diese Tests einer Teilmenge von Verzögerungswerten können zum Beispiel dadurch erreicht werden, dass eine Testphase abgebrochen wird, wenn ein bestimmter maximaler Steuereinheits-Verzögerungswert gefunden worden ist, oder indem neue Iterationen an dem Endwert gestartet werden, der für eine vorherige Vorrichtung bestimmt worden ist.
  • In dem Block 110 wird der Steuereinheits-Verzögerungswert in der Steuereinheit gespeichert, so dass die Steuereinheit erfolgreich Übertragungen mit der langsamsten Vorrichtung an dem Bus ausführen kann. In einem Ausführungsbeispiel fügt die Steuereinheit die vorbestimmte Anzahl von Verzögerungen in einen Taktpfad einer Abtastschaltung (z.B. ein Latch) ein, die Daten von der Vorrichtung empfängt. Der verzögerte Takt an die Abtastschaltung kompensiert die Ausbreitungsverzögerung von der Vorrichtung an die Steuereinheit, so dass die Steuereinheit erfolgreich durch die Vorrichtung angesteuerte Daten speichern kann.
  • Da der Steuereinheits-Verzögerungswert auf dem größten Latenzwert basiert, kann die Steuereinheit in der Lage sein, nur Daten von Vorrichtungen erfolgreich zu empfangen, die am Ende von Phase 1 innerhalb des gleichen Zeitbereichs liegen (d.h. Vorrichtungen, deren Daten innerhalb des gleichen Taktzyklus die Steuereinheit erreichen). Am Ende von Phase 1 (nach den Blöcken 100 und 110) kann somit eine weitere Konfiguration angemessen sein, um der Steuereinheit den Empfang von Daten von allen Vorrichtungen zu ermöglichen.
  • In Phase 2 sind alle freigegebenen Vorrichtungen an dem Bus so konfiguriert, dass sie Daten innerhalb des gleichen Zyklus an die Steuereinheit zurückführen. Wie dies in Block 120 dargestellt ist, wird ein Verzögerungswert für jede Vorrichtung durch Testen von einem oder mehreren Verzögerungswerten für jede Vorrichtung bestimmt. Nah an der Steuereinheit liegende Vorrichtungen müssen unter Umständen mehrere Verzögerungszyklen einfügen, um geeignete Datenankunftszeiten zu erreichen, während Vorrichtungen an dem entfernten Ende des Busses nur einen oder keinen zusätzlichen Verzögerungszyklus benötigen. Ferner sollte die Vorrichtung mit der größten zulässigen Latenz (bestimmt in Phase 1) keine zusätzlichen Verzögerungszyklen benötigen, da die Verzögerung in der Steuereinheit auf diese Vorrichtung abgestimmt ist.
  • Die Abbildung aus 2 zeigt ein System unter Verwendung einer Technik zur Verzögerungsangleichung in Verbindung mit einer Speichersteuereinheit und einer Reihe von Speichervorrichtungen, die entlang einem Speicherbus oder einem Speicherkanal platziert sind. In einem Ausführungsbeispiel kann es sich bei dem Kanal um einen Rambus Direct RDRAM Kanal handeln. Alternative Ausführungsbeispiele können andere Busarchitekturen oder Anordnungen verwenden, die ohne eine derartige Angleichung Daten während verschiedenen Buszyklen (oder in unterschiedlichen Zeitbereichen) zurückführen würden, abhängig von der durch die physikalische Platzierung der Speichervorrichtungen verursachten Ausbreitungsverzögerung.
  • Das System aus 2 umfasst einen Prozessor 205, der über einen Bus 207 mit einer Speichersteuereinheit 200 gekoppelt ist. Die Speichersteuereinheit 200 umfasst ein Steuereinheits-Leseverzögerungsregisterfeld (TDR) 222, eine variable Verzögerungsschaltung 210 und ein Latch 226 auf, um die Erfassung von Lesedaten von Speichervorrichtungen zu ermöglichen, die in unterschiedlichen Entfernungen (und somit unterschiedlichen Ausbreitungsverzögerungen) von der Speichersteuereinheit 200 angeordnet sein können. Das Steuereinheitsregister 222 kann eine Gruppe von Steuerregistern 220 wie etwa von PCI-Konfigurationsraumregistern (PCI als englische Abkürzung von Peripheral Component Interconnect) darstellen, die durch das BIOS beschrieben werden können.
  • Das veranschaulichte Ausführungsbeispiel der variablen Verzögerungsschaltung 210 weist einen Multiplexer 214 auf, der durch das Steuereinheits-Verzögerungsregister 222 gesteuert wird. Vier Verzögerungselemente 216, 217, 218 und 219, die jeweils die Speicherfunktion des Latch 226 um einen Buszyklus verzögern, sehen vier Eingänge in den Multiplexer 214 vor. Der Multiplexer 214 sieht ein Taktsignal an das Latch 226 vor, indem eine von vier Verzögerungen auf der Basis des Wertes in dem Steuereinheits-Verzögerungsregister 222 ausgewählt wird. In anderen Ausführungsbeispielen kann eine andere Anzahl von Verzögerungselementen verwendet werden, wodurch eine größere oder kleinere Zahl für die maximale Steuereinheitsverzögerung ermöglicht wird, die in diesem Fall bei vier liegt. Zusätzlich kann jede Art einer bekannten oder anderweitig verfügbaren variablen Verzögerungsschaltung verwendet werden.
  • Die Speichersteuereinheit 200 verwendet ferner eine serielle Steuerlogik 224. Die serielle Steuerlogik kann ein SPD-Übertragungsprotokoll (SPD als englische Abkürzung von Serial Presence Detect) implementieren, das in der von Rambus erhältlichen Veröffentlichung "RIMMTM Serial Presence Detect Application Note" beschrieben ist. In alternativen Ausführungsbeispielen kann die serielle Steuerlogik 224 durch eine Steuerlogik ersetzt werden, die ein anderes Protokoll, ob seriell oder andersartig, implementiert, das die Programmierung von Registern wie etwa Verzögerungs- und Identifikationsregistern in den verschiedenen Vorrichtungen ermöglicht, mit denen die Speichersteuereinheit 200 kommuniziert.
  • Die Speichersteuereinheit 200 ist über einen seriellen Bus 236, einen Taktbus 232 (CK) und einen Datenbus 234 (D) mit drei Speichermodulen gekoppelt. Jedes Speichermodul kann eine unterschiedliche Anzahl von Speichervorrichtungen aufweisen. Ein erstes Speichermodul 240 veranschaulicht eine erste Speichervorrichtung 241, eine zweite Speichervorrichtung 250 und eine letzte Speichervorrichtung 252. Verschiedene interne Funktionen der Speichervorrichtung 250 sind abgebildet und werden nachstehend näher erörtert.
  • Bei dem seriellen Bus 236 handelt es sich um einen segmentierten Bus, der durch jede Vorrichtung verläuft. Ein zweites Segment 236a des seriellen Busses 236 erstreckt sich von der Speichervorrichtung 241 zu der Speichervorrichtung 250. In ähnlicher Weise erstreckt sich ein dritter Abschnitt 236b von der Speichervorrichtung 250 zu der nächsten Speichervorrichtung (nicht abgebildet). Der Taktbus 232 und der Datenbus 234 verlaufen andererseits vollständig durch den Kanal durch zum Beispiel die Speichervorrichtungen 241 und 252, wie dies durch die gestrichelten Linien dargestellt ist.
  • Ein zweites Speichermodul 260 und ein drittes Speichermodul 270 sind auf die gleiche Art und Weise konfiguriert. Das zweite Speichermodul 260 weist eine erste Speichervorrichtung 262, eine zweite Speichervorrichtung 264 und eine letzte Speichervorrichtung 266 auf. Das dritte Speichermodul 270 weist eine erste Speichervorrichtung 272, eine zweitletzte Speichervorrichtung 274 und eine letzte Speichervorrichtung 276 auf. Der Taktbus 232 und der Datenbus 234 verlaufen durch das zweite und das dritte Speichermodul und verbinden jedes der Module mit jeder Speichervorrichtung. Der serielle Bus wird segmentiert zwischen jeder Vorrichtung fortgesetzt.
  • Am Ende des dritten Speichermoduls 270 enden die Daten- und Taktbusse. Der Datenbus endet in einem Abschlusswiderstand 238, um Signalreflexionen zu reduzieren. Ein Taktgenerator 280 ist mit dem Ende des Taktbusses 232 gekoppelt. In einem Ausführungsbeispiel weist der Taktbus vier Signalleitungen für Bustakte auf. In diesem Ausführungsbeispiel sieht ein erster Taktgenerator (nicht abgebildet) einen Takt "Takt von Master" (CFM als englische Abkürzung von Clock from Master) und dessen Komplement auf zwei Leitungen von dem Speichersteuereinheitsende des Taktbusses 232 vor, und der Taktgenerator 280 sieht einen Takt "Takt an Master" (CTM als englische Abkürzung von Clock to Master) und dessen Komplement auf zwei zusätzlichen Signalleitungen von dem entgegengesetzten Ende des Taktbusses 232 vor.
  • Die Speichervorrichtung 250 veranschaulicht eine Mehrzahl von Komponenten, die ebenfalls in den anderen veranschaulichten Speichervorrichtungen vorgesehen sein können. Daten können über einen Kern 242, der einzelne Speicherzellen und eine zugeordnete Steuerlogik aufweist, an den Datenbus 234 geschriebne oder von diesem empfangen werden. Eine Treiberschaltung 242 ist mit dem Kern 243 gekoppelt, um Daten von dem Kern 243 zu dem Datenbus 234 zu leiten. Der Treiber 242 wird durch eine Ausgabe der variablen Verzögerungsschaltung 244 freigegeben bzw. abgetastet, die wiederum durch ein Verzögerungsregister 249 gesteuert wird. Das Verzögerungsregister 249 ist mit der seriellen Steuerlogik 248 gekoppelt und kann somit mit Vorrichtungsverzögerungswerten programmiert werden, die durch das BIOS bestimmt und durch die Speichersteuereinheit 200 über die serielle Steuerlogik 224 und den seriellen Bus 236 übertragen werden.
  • Zusätzlich können eine oder mehrere Identifikationsregister (ID) 248 zwei IDs aufweisen, eine Gruppenvorrichtungs-ID und eine serielle Vorrichtungs-ID. Die Gruppenvorrichtungs-ID (auch als "Vorrichtungs-ID" bezeichnet) adressiert eine bestimmte Speichervorrichtung bei der Ausführung von Daten- oder Befehlstransaktionen unter Verwendung des Datenbusses 234 und/oder anderer Steuerleitungen (nicht abgebildet). Die serielle Vorrichtungs-ID kann zum Identifizieren bestimmter Vorrichtung bei der Verwendung des seriellen Busses 236 verwendet werden. Die serielle Vorrichtungs-ID und die Vorrichtungs-ID sind häufig verschieden, da Vorrichtungs-IDs zur Leistungsoptimierung ausgesucht werden können, während serielle IDs ausschließlich basierend auf der physikalischen Positionierung der Speichervorrichtungen bestimmt werden können.
  • Die variable Verzögerungsschaltung 244 weist eine Reihe von Verzögerungsblöcken 246a246n auf, deren Anzahl von Vorrichtung zu Vorrichtung oder von Modul zu Modul unterschiedlich sein kann. Für gewöhnlich weist ein nichtflüchtiger Speicher, der über den seriellen Bus 236 zugänglich ist, Informationen auf, die die maximale Anzahl von Verzögerungen anzeigen, die für jede Speichervorrichtung eines Speichermoduls verfügbar sind, Ein Multiplexer 245 wählt ein Taktsignal von dem Taktbus 232 aus, das um eine Anzahl von Bustaktzyklen verzögert wird, die durch den in dem Verzögerungsregister 249 gespeicherten Wert bestimmt wird. Folglich kann eine Speichervorrichtung nach Bedarf Verzögerungszyklen einfügen, um sicherzustellen, dass Daten die Speichersteuereinheit 200 während einem bestimmten Bustaktzyklus erreichen. Bei Speichervorrichtungen wie etwa der Vorrichtung 276 an dem Ende des Busses kann der Verzögerungswert gleich Null sein. Bei Vorrichtungen wie der Vorrichtung 241, die nahe an der Speichersteuereinheit 200 angeordnet ist, können so viele Buszyklen eingefügt werden, wie diese erforderlich sind, damit sich Daten von der Vorrichtung 276 zu der Vorrichtung 241 ausbreiten, um die Verzögerungen für diese beiden Speichervorrichtungen anzugleichen.
  • Das System aus 2 weist ferner einen Bus 209 auf, der mit der Speichersteuereinheit 200 gekoppelt ist. Der Bus 209 kann ein Bus sein, der direkt mit der Speichersteuereinheit 200 gekoppelt ist, oder ein Bus, der durch eine oder mehrere Brückenschaltungen indirekt mit der Speichersteuereinheit 200 gekoppelt ist. Ein nichtflüchtiger Speicher 280 (z.B. ein Flash-Speicher) mit einem BIOS-Code und eine Eingabevorrichtung 290 sind mit dem Bus 209 gekoppelt. Alternativ können diese Vorrichtungen mit separaten Bussen gekoppelt oder anderweitig konfiguriert sein, so dass sie für das System zugänglich sind.
  • Die Eingabevorrichtung 290 kann entweder Programmbefehle von einer Computerspeichervorrichtung 292 (z.B. einer optischen oder magnetischen Platten- oder anderen Speichervorrichtung) oder von einer Netzwerk- oder einer Kommunikationsschnittstelle 294 empfangen. Der BIOS-Code (d.h. Computerbefehle), der bewirkt, dass das System die offenbarten Techniken implementiert, kann auf verschiedene Art und Weise in den nichtflüchtigen Speicher 280 programmiert werden. Das BIOS kann bei der Herstellung des Systems programmiert werden oder später über ein computerlesbares Medium über die Eingabevorrichtung 290 vorgesehen werden.
  • Wenn das BIOS später vorgesehen wird, können die Befehle über ein computerlesbares Medium vorgesehen werden. In Verbindung mit einer geeigneten Schnittstellenvorrichtung 290 stellt ein elektronisches Signal oder ein greifbarer Träger ein computerlesbares Medium dar. Zum Beispiel ist die Computerspeichervorrichtung 292 in einem Ausführungsbeispiel ein computerlesbares Medium. In einem anderen Ausführungsbeispiel ist eine Trägerwelle 296, die einen Computerbefehl führt, ein computerlesbares Medium. Die Trägerwelle 296 kann so moduliert oder anderweitig manipuliert werden, dass sie Befehle aufweist, die unter Verwendung bekannter oder anderweitig verfügbarer Kommunikationstechniken durch die Eingabevorrichtung 290 decodiert werden können. In jedem Fall können die Computerbefehle über ein computerlesbares Medium vorgesehen werden.
  • Der Ablauf eines Ausführungsbeispiels des Systems aus 2 ist in den Flussdiagrammen der 3 und 4 veranschaulicht, welche entsprechend die Abläufe der Phasen 1 und 2 darstellen. In Block 300 aus 3 beginnt Phase 1. In Block 305 werden bestimmte Variablen initialisiert. Der Speichersteuereinheits-Verzögerungswert wird auf einen Ausgangswert initialisiert, der die Anzahl der zuerst durch die Speichersteuereinheit getesteten Verzögerungszyklen bei der Bestimmung des letztendlichen Steuereinheits-Verzögerungswerts darstellt. In einem Ausführungsbeispiel wird Null als Ausgangswert ausgewählt, um sicherzustellen, dass der Steuereinheits-Verzögerungswert nicht größer ist als notwendig.
  • Zusätzlich wird der serielle ID-Zähler initialisiert, um die letzte Vorrichtung in der seriellen Kette des Kanals in Block 305 anzuzeigen. In einem Ausführungsbeispiel werden die seriellen IDs so zugewiesen, dass die letzte Vorrichtung in der seriellen Kette die höchste serielle ID-Nummer aufweist.
  • Die höchste serielle ID weist unter Umständen allerdings nicht den längsten Spurabstand zu der Steuereinheit auf. Der serielle Bus 236 kann in eine feste Richtung (z.B. in der Abbildung aus 2 von links nach rechts) an jedem Speichermodul verlaufen, während der Datenbus 234 verschiedene Module in verschiedene Richtungen kreuzt. Somit kann es vorteilhaft sein, mit der höchsten seriellen ID-Nummer zu beginnen, da sie sich wahrscheinlich zumindest an dem am weitesten entfernten Speichermodul befindet, obwohl die höchste serielle ID-Nummer nicht unbedingt die Speichervorrichtung anzeigt, die am weitesten von der Steuereinheit entfernt ist.
  • Gemäß der Darstellung in Block 310 wird als nächstes der Steuereinheits-Verzögerungswert in dem Speichersteuereinheitsregister 222 gespeichert. Nachdem die Steuereinheitsverzögerung in dem Steuereinheitsregister 222 gespeichert worden ist, wird eine Testübertragung durchgeführt, wie dies in Block 315 dargestellt ist. In einem Ausführungsbeispiel kann zum Beispiel ein bestimmter Speicherplatz in der getesteten Speichervorrichtung beschrieben und danach ausgelesen werden. Der Erfolg dieser Übertragung wird in dem Block 320 getestet. Wenn der ausgelesene Datenwert nicht mit dem geschriebenen Wert übereinstimmt, so war die Übertragung nicht erfolgreich. Wenn die Daten somit früher als von der Speichersteuereinheit erwartet ausgelesen werden, so werden sie nicht ordnungsgemäß erfasst und die Übertragung ist nicht erfolgreich.
  • Wenn die Übertragung nicht erfolgreich ist, wird die Verzögerung der Speichersteuereinheit gemäß Block 325 erhöht, um für die Daten mehr Zeit vorzusehen, um die Speichersteuereinheit zu erreichen. In dem Block 350 wird getestet, ob die Verzögerung der Speichersteuereinheit einen von der Steuereinheit unterstützten maximalen Verzögerungswert überschreitet (der in dem Ausführungsbeispiel aus 2 zum Beispiel vier beträgt). Wenn dies der Fall ist, kann die Steuereinheit nicht genug Verzögerungen einfügen, um die Daten aus der Vorrichtung zu lesen, und es werden an dieser Vorrichtung keine weiteren Tests durchgeführt, wobei die serielle ID in dem Block 340 verringert wird. In einem Ausführungsbeispiel ist der maximale Verzögerungswert gleich vier.
  • Wenn die Verzögerung andererseits geringer ist als der von der Speichersteuereinheit unterstützte maximale Verzögerungswert, so kann die Speichersteuereinheit 200 das Taktsignal von der variablen Verzögerung 210 um einen weiteren Zyklus verzögern und die Datenerfassung erneut probieren. Der Prozess springt somit zu dem Block 315 zurück, wenn die Steuereinheitsverzögerung nicht größer ist als die maximale Verzögerung, die von der Steuereinheit gemäß dem Test in dem Block 350 unterstützt wird.
  • Sobald in dem Block 320 eine erfolgreiche Übertragung erkannt wird, wurde die geeignete Verzögerung der Steuereinheit für die jeweilige Speichervorrichtung bestimmt, wie dies in Block 330 angezeigt wird. Wenn die Verzögerung gemäß dem Test in Block 335 der maximalen von der Steuereinheit unterstützten Verzögerung entspricht, so ist Phase eins abgeschlossen, wie dies in Block 355 angezeigt wird. Phase 1 ist abgeschlossen, da die Steuereinheit ihren maximalen Verzögerungswert für diese Speichervorrichtung verwenden muss und somit keine weitere Notwendigkeit zum Testen anderer Speichervorrichtungen besteht. Somit kann das umfassende Testen der Verzögerung der Steuereinheit abgebrochen werden, um Initialisierungszeit zu sparen.
  • Wenn der Verzögerungswert der Steuereinheit nicht dem maximalen Verzögerungswert entspricht, werden weitere Speichervorrichtungen geprüft, um deren Verzögerungswerte zu bestimmen. Wie dies in Block 340 dargestellt ist, wird der serielle ID-Zähler herabgesetzt, um eine nächste Speichervorrichtung auszuwählen. In Block 345 wird bestimmt, ob weitere Speichervorrichtungen getestet werden müssen. Wenn dies nicht der Fall ist, so endet die erste Phase in Block 355. In dem Ausführungsbeispiel, in dem die höchste ID-Nummer zuerst ausgewählt wird und folgende Vorrichtungen durch Herabsetzen der ID-Nummer ausgewählt werden, kann die Bestimmung, ob weitere Speichervorrichtungen zu testen sind, vorgenommen werden, indem getestet wird, ob die ID-Nummer kleiner ist als Null. Alternative Tests können für andere ID-Nummerierungen und/oder Testsequenzen verwendet werden.
  • Wenn keine weiteren Speichervorrichtungen getestet werden sollen, springt der Prozess zu dem Block 310 zurück. Der für die vorherige Speichervorrichtung als ausreichend ermittelte Verzögerungswert der Steuereinheit ist der Anfangspunkt für die nächste Iteration. Selbst wenn die neue Speichervorrichtung Daten schneller zurückführt, ist die Speichersteuereinheit weiterhin durch die langsamere vorherige Vorrichtung beschränkt und ist nicht in der Lage, den Verzögerungswert der Steuereinheit herabzusetzen. Durch den Beginn mit dem vorher bestimmten Verzögerungswert der Steuereinheit können somit die Anzahl der Testzyklen verringert und der Initialisierungsprozess verkürzt werden.
  • Da Phase eins zuerst eine Vorrichtung in dem physikalisch am weitesten entfernten Speichermodul testen kann, erscheinen die größten Verzögerungen wahrscheinlich in der ersten Gruppe von Speichervorrichtungen. Folglich können näher angeordnete Vorrichtungen in der Lage sein, während der ersten Testübertragung Daten zurück zu der Steuereinheit zu übertragen. Durch die Auswahl der höchsten seriellen ID-Nummer als Ausgangspunkt in Block 305 können somit mehrere Tests für Vorrichtungen mit geringer Ausbreitungsverzögerung übersprungen werden.
  • Phase 2 beginnt in Block 400 aus 4. Wiederum werden Variablen initialisiert, wie dies in Schritt 405 dargestellt ist. Der serielle ID-Zähler wird auf die serielle ID der letzten Vorrichtung an dem Kanal initialisiert, wodurch die letzte Vorrichtung zu der ausgesuchten zu testenden Vorrichtung wird. Die Vorrichtungsverzögerung für die ausgesuchte Vorrichtung wird auf einen Ausgangswert festgelegt. In einem Ausführungsbeispiel kann Null als Ausgangswert verwendet werden, da bestimmte Vorrichtungen ohne zusätzliche Verzögerung ordnungsgemäß arbeiten.
  • Gemäß der Darstellung in Block 410 wird eine Speicherübertragung zum Testen der ausgesuchten Speichervorrichtung vorgenommen. Wenn die in Block 410 versuchte Übertragung erfolglos ist, gemäß dem Test in Block 412, so wird der Verzögerungswert der getesteten Vorrichtung mit einem maximalen Vorrichtungsverzögerungswert verglichen, wie dies in Block 415 dargestellt ist. Wenn der Verzögerungswert der getesteten Vorrichtung dem maximalen Verzögerungswert entspricht, so ist es der Vorrichtung nicht gelungen Daten präzise an die Speichersteuereinheit zu übertragen, obwohl der Datenausgabe die maximale Verzögerung hinzugefügt worden ist. In diesem Fall wird die Speichervorrichtung deaktiviert, wie dies in Block 425 dargestellt ist. Die Vorrichtung kann deaktiviert werden, indem eine Vorrichtungs-ID zugewiesen wird, die von der Speichersteuereinheit nicht verwendet wird, so dass keine Datenübertragungen zwischen der deaktivierten Vorrichtung und der Steuereinheit auftreten. Danach können andere Vorrichtungen in Verbindung mit dem Hochzählen des seriellen ID-Zählers getestet werden, und der Prozess fährt mit Block 425 fort.
  • Wenn die in dem Block 410 versuchte Übertragung im anderen Fall erfolgreich ist, gemäß dem Test in Block 412, so reicht die aktuelle in der ausgesuchten Vorrichtung programmierte Vorrichtungsverzögerung aus, um Daten präzise zu der Speichersteuereinheit zu übertragen, und es können weitere Vorrichtungen getestet werden. Demgemäß wird der serielle ID-Zähler herabgesetzt, wie dies in Block 430 dargestellt ist.
  • Danach wird bestimmt, ob weitere Vorrichtungen getestet werden müssen. Dies kann gemäß der Darstellung aus Block 435 in einem Ausführungsbeispiel erreicht werden, indem getestet wird, ob der serielle ID-Zähle niedriger ist als Null. Wenn weitere Vorrichtungen zu testen sind, handelt es sich bei der jetzt durch den herabgesetzten ID-Zähler angezeigten Vorrichtung um die als nächstes getestete Vorrichtung, wobei der Prozess zu dem Block 410 zurück springt. Wenn keine Vorrichtungen mehr zu testen sind, ist Phase 2 gemäß der Darstellung in Block 440 abgeschlossen. An diesem Punkt sind entweder alle Vorrichtungen deaktiviert oder weisen einen geeigneten programmierten Vorrichtungsverzögerungswert auf, so dass jede Vorrichtung in dem Kanal als Reaktion auf einen bestimmten Zyklus nach der gleichen Anzahl von Buszyklen Daten an die Steuereinheit zurückführt.
  • Offenbart werden somit ein Verfahren und eine Vorrichtung zur Angleichung von Übertragungsverzögerungen für einen Kanal von Vorrichtungen wie etwa von Speichervorrichtungen in einem Speicherteilsystem. Vorstehend wurden bestimmte Ausführungsbeispiele beschrieben, die in den beigefügten Zeichnungen dargestellt sind, Wobei hiermit festgestellt wird, dass diese Ausführungsbeispiele ausschließlich Zwecken der Veranschaulichung dienen, wobei für den Durchschnittsfachmann auf dem Gebiet beim Lesen der vorliegenden Offenbarung verschiedene andere Modifikationen ersichtlich werden.

Claims (10)

  1. Verfahren, das folgendes umfasst: Bestimmen eines Steuereinheits-Verzögerungswertes durch iteratives Testen der Speicherübertragungen zur Bestimmung eines größten Übertragungslatenzwertes unter Verwendung einer Teilmenge einer Mehrzahl von Speichersteuereinheitsverzögerungen für mindestens eine Speichervorrichtung einer Mehrzahl von Speichervorrichtungen (241276); und Bestimmen eines Speichervorrichtungs-Verzögerungswertes für jede Vorrichtung der Mehrzahl von Speichervorrichtungen durch Testen von Speicherübertragungen unter Verwendung mindestens eines Verzögerungswertes für jede Vorrichtung der Mehrzahl von Speichervorrichtungen.
  2. Verfahren nach Anspruch 1, wobei das Verfahren ferner folgendes umfasst: Speichern des Steuereinheits-Verzögerungswertes an einem Steuereinheits-Speicherplatz in einer Steuereinheit zum Festlegen einer Kanalverzögerung, die es ermöglicht, dass die Steuereinheit Transaktionen mit einer langsamsten Vorrichtung der Mehrzahl von Speichervorrichtungen ausführt; und Speichern jedes Speichervorrichtungs-Verzögerungswertes an einem oder mehreren Verzögerungsspeicherplätzen jeder Vorrichtung der Mehrzahl von Speichervorrichtungen, um eine Verzögerung einzufügen, die einen Zykluszählwert für Datenübertragungen zwischen der Steuereinheit und der Mehrzahl von Speichervorrichtungen angleicht.
  3. Verfahren nach Anspruch 1, wobei das Bestimmen des Speichervorrichtungs-Verzögerungswertes ferner folgendes umfasst: wenn weniger als eine maximale Anzahl von Vorrichtungsverzögerungszyklen eine erfolgreiche Datenübertragung bewirkt, dann: Bestimmen einer Anzahl von Verzögerungszyklen, die eine erfolgreiche Datenübertragung bewirkt; und wenn mehr als eine maximale Anzahl von Vorrichtungsverzögerungszyklen erforderlich sind, um eine erfolgreiche Datenübertragung zu bewirken, dann: Beenden, wenn die maximale Anzahl der Vorrichtungsverzögerungswerte überschritten wird.
  4. Verfahren nach Anspruch 1, wobei das Bestimmen des Steuereinheits-Verzögerungswertes folgendes umfasst: Bestimmen eines ersten Verzögerungswertes für eine erste Speichervorrichtung durch iteratives Erhöhen des ersten Verzögerungswertes von einem anfänglichen Verzögerungswert, wobei der erste Verzögerungswert einer Verzögerung einer Anzahl von Zyklen entspricht, bis Daten durch die Steuereinheit von der ausgesuchten Speichervorrichtung empfangen werden; Bestimmen eines nächsten Verzögerungswertes für die nächste Speichervorrichtung, beginnend mit dem ersten Verzögerungswert; und Auswählen des größeren Wertes aus dem ersten Verzögerungswert und dem nächsten Verzögerungswert als Steuereinheits-Verzögerungswert.
  5. Verfahren nach Anspruch 1, wobei das Bestimmen des Steuereinheits-Verzögerungswertes folgendes umfasst: Initialisieren eines Steuereinheits-Verzögerungswertes als anfänglicher Verzögerungswert; Testen, ob eine Transaktion an eine ausgesuchte Speichervorrichtung erfolgreich ist; wenn die Transaktion an die ausgesuchte Speichervorrichtung erfolglos ist, erhöhen des Steuereinheits-Verzögerungswertes; Rückkehr zum Testen, ob die Transaktion an die ausgesuchte Speichervorrichtung erfolgreich ist; und wenn die Transaktion an die Speichervorrichtung erfolgreich ist, Rückkehr zum Testen, ob die Transaktion an den ausgesuchten Speicher erfolgreich ist, unter Verwendung des Steuereinheits-Verzögerungswertes für die Transaktion an die Speichervorrichtung, die erfolgreich gewesen ist, nachdem eine neue Speichervorrichtung aus der Mehrzahl von Speichervorrichtungen als die ausgesuchte Speichervorrichtung ausgewählt worden ist.
  6. Verfahren nach Anspruch 1, implementiert als Bestandteil in einem Computerprogramm.
  7. System, das folgendes umfasst: einen Prozessor (205); eine mit dem Prozessor gekoppelte Speichersteuereinheit (200); eine Mehrzahl von Speichervorrichtungen (241276), die mit der Speichersteuereinheit gekoppelt sind; und eine separate Speichervorrichtung (280), in welcher eine Mehrzahl von Befehlen gespeichert ist, die bei einer Ausführung durch das System bewirken, dass das System eine Gruppe von Operationen ausführt, die folgendes umfassen: Bestimmen eines Steuereinheits-Verzögerungswertes durch iteratives Testen der Speicherübertragungen zur Bestimmung eines größten Übertragungslatenzwertes unter Verwendung einer Teilmenge einer Mehrzahl von Speichersteuereinheitsverzögerungen für mindestens eine Speichervorrichtung einer Mehrzahl von Speichervorrichtungen; und Bestimmen eines Speichervorrichtungs-Verzögerungswertes für jede Vorrichtung der Mehrzahl von Speichervorrichtungen durch Testen von Speicherübertragungen unter Verwendung mindestens eines Verzögerungswertes für jede Vorrichtung der Mehrzahl von Speichervorrichtungen.
  8. System nach Anspruch 7, wobei es sich bei der separaten Speichervorrichtung um eine nichtflüchtige, wiederprogrammierbare Speichervorrichtung handelt, und wobei die Mehrzahl von Befehlen Teil eines BIOS-Programms ist.
  9. System nach Anspruch 7, wobei die Gruppe von Operationen ferner folgendes umfasst: Speichern des Steuereinheits-Verzögerungswertes an einem Steuereinheits-Speicherplatz in der Speichersteuereinheit zum Festlegen einer Kanalverzögerung, die es ermöglicht, dass die Speichersteuereinheit Transaktionen mit der langsamsten Vorrichtung der Mehrzahl von Speichervorrichtungen ausführt; und Speichern jedes Speichervorrichtungs-Verzögerungswertes an einem oder mehreren Verzögerungsspeicherplätzen jeder Vorrichtung der Mehrzahl von Speichervorrichtungen, um eine Verzögerung einzufügen, die einen Zykluszählwert für Datentransaktionen zwischen der Speichersteuereinheit und der Mehrzahl von Speichervorrichtungen angleicht.
  10. System nach Anspruch 7, wobei das Bestimmen des Speichervorrichtungs-Verzögerungswertes ferner folgendes umfasst: wenn weniger als eine maximale Anzahl von Vorrichtungsverzögerungszyklen eine erfolgreiche Datenübertragung bewirkt, dann; Bestimmen einer Anzahl von Verzögerungszyklen, die eine erfolgreiche Datenübertragung bewirkt; und wenn mehr als eine maximale Anzahl von Vorrichtungsverzögerungszyklen erforderlich sind, um eine erfolgreiche Datenübertragung zu bewirken, dann: Beenden, wenn die maximale Anzahl der Vorrichtungsverzögerungswerte überschritten wird.
DE69922835T 1998-11-03 1999-10-22 Ausgleich von übertragungsverzögerungen für einen speicherkanal in einem speichersubsystem Expired - Lifetime DE69922835T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/186,042 US6173345B1 (en) 1998-11-03 1998-11-03 Method and apparatus for levelizing transfer delays for a channel of devices such as memory devices in a memory subsystem
US186042 1998-11-03
PCT/US1999/024753 WO2000026789A1 (en) 1998-11-03 1999-10-22 Levelizing transfer delays for a channel of memory devices in a memory subsystem

Publications (2)

Publication Number Publication Date
DE69922835D1 DE69922835D1 (de) 2005-01-27
DE69922835T2 true DE69922835T2 (de) 2005-12-15

Family

ID=22683418

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69922835T Expired - Lifetime DE69922835T2 (de) 1998-11-03 1999-10-22 Ausgleich von übertragungsverzögerungen für einen speicherkanal in einem speichersubsystem

Country Status (9)

Country Link
US (1) US6173345B1 (de)
EP (1) EP1131718B1 (de)
CN (1) CN1165845C (de)
AU (1) AU1221200A (de)
BR (1) BR9915826B1 (de)
DE (1) DE69922835T2 (de)
HK (1) HK1036854A1 (de)
TW (1) TW538341B (de)
WO (1) WO2000026789A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6285962B1 (en) * 1998-08-26 2001-09-04 Tanisys Technology, Inc. Method and system for testing rambus memory modules
US6438670B1 (en) * 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
US6519716B1 (en) 1999-09-22 2003-02-11 International Business Machines Corporation Electronic device initialization with dynamic selection of access time for non-volatile memory
US6886105B2 (en) * 2000-02-14 2005-04-26 Intel Corporation Method and apparatus for resuming memory operations from a low latency wake-up low power state
US6615307B1 (en) * 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US7517975B2 (en) * 2000-09-26 2009-04-14 Pioneer Hi-Bred International, Inc. Nucleotide sequences mediating male fertility and method of using same
US7158592B2 (en) * 2000-10-31 2007-01-02 Agere Systems, Inc. Method and apparatus for synchronizing data transfer
US9773250B2 (en) * 2000-12-20 2017-09-26 International Business Machines Corporation Product role analysis
US20100010870A1 (en) * 2000-12-20 2010-01-14 Karl Millar System and Method for Tuning Demand Coefficients
US7523047B1 (en) 2000-12-20 2009-04-21 Demandtec, Inc. Price optimization system
US7877286B1 (en) 2000-12-20 2011-01-25 Demandtec, Inc. Subset optimization system
US9785953B2 (en) * 2000-12-20 2017-10-10 International Business Machines Corporation System and method for generating demand groups
US7062447B1 (en) 2000-12-20 2006-06-13 Demandtec, Inc. Imputed variable generator
US9165270B2 (en) * 2000-12-20 2015-10-20 International Business Machines Corporation Predicting likelihood of customer attrition and retention measures
US7617119B1 (en) 2000-12-20 2009-11-10 Demandtec, Inc. Price optimization with rule relaxation
US7899691B1 (en) 2000-12-20 2011-03-01 Demandtec, Inc. Econometric engine
US7657470B1 (en) 2000-12-20 2010-02-02 Demandtec, Inc. Financial model engine
US10204349B2 (en) 2000-12-20 2019-02-12 International Business Machines Corporation Analyzing customer segments
US7302410B1 (en) 2000-12-22 2007-11-27 Demandtec, Inc. Econometric optimization engine
US7660734B1 (en) 2000-12-20 2010-02-09 Demandtec, Inc. System for creating optimized promotion event calendar
US10496938B2 (en) 2000-12-20 2019-12-03 Acoustic, L.P. Generating product decisions
US8010404B1 (en) 2000-12-22 2011-08-30 Demandtec, Inc. Systems and methods for price and promotion response analysis
US7092896B2 (en) * 2001-05-04 2006-08-15 Demandtec, Inc. Interface for merchandise promotion optimization
US6553352B2 (en) * 2001-05-04 2003-04-22 Demand Tec Inc. Interface for merchandise price optimization
US20040210541A1 (en) * 2001-05-04 2004-10-21 Jeremy Epstien User interface for a rules engine and methods therefor
US7130811B1 (en) 2001-05-05 2006-10-31 Demandtec, Inc. Apparatus for merchandise promotion optimization
US6785793B2 (en) 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US20030084315A1 (en) * 2001-10-30 2003-05-01 Krawetz Neal A. System and method for controlled access
US7249032B1 (en) 2001-11-30 2007-07-24 Demandtec Inc. Selective merchandise price optimization mechanism
US7249033B1 (en) 2001-11-30 2007-07-24 Demandtec Inc. Apparatus and method for selective merchandise price optimization
US7386519B1 (en) * 2001-11-30 2008-06-10 Demandtec, Inc. Intelligent clustering system
US7809581B1 (en) * 2001-11-30 2010-10-05 Demandtec, Inc. Rule relaxation and subset optimization system
EP1459152A4 (de) * 2001-11-30 2006-02-08 Demandtec Inc Regellockerungs- und teilmengenoptimierungssystem
US7133882B1 (en) 2002-08-05 2006-11-07 Demandtec, Inc. Method and apparatus for creating and using a master catalog
US6851604B2 (en) * 2002-10-02 2005-02-08 Demand Tec Inc. Method and apparatus for providing price updates
US7270973B2 (en) * 2003-12-23 2007-09-18 The United States Of America As Represented By The Secretary Of The Navy Catalytic enzyme-modified textiles for active protection from toxins
US7095789B2 (en) * 2004-01-28 2006-08-22 Rambus, Inc. Communication channel calibration for drift conditions
US8422568B2 (en) 2004-01-28 2013-04-16 Rambus Inc. Communication channel calibration for drift conditions
US7158536B2 (en) * 2004-01-28 2007-01-02 Rambus Inc. Adaptive-allocation of I/O bandwidth using a configurable interconnect topology
US7400670B2 (en) 2004-01-28 2008-07-15 Rambus, Inc. Periodic calibration for communication channels by drift tracking
US6961862B2 (en) * 2004-03-17 2005-11-01 Rambus, Inc. Drift tracking feedback for communication channels
US7177205B2 (en) * 2004-04-27 2007-02-13 Intel Corporation Distributed loop components
US7978754B2 (en) * 2004-05-28 2011-07-12 Rambus Inc. Communication channel calibration with nonvolatile parameter store for recovery
US7516029B2 (en) 2004-06-09 2009-04-07 Rambus, Inc. Communication channel calibration using feedback
US7535958B2 (en) * 2004-06-14 2009-05-19 Rambus, Inc. Hybrid wired and wireless chip-to-chip communications
US7669027B2 (en) 2004-08-19 2010-02-23 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
US7489739B2 (en) * 2004-09-17 2009-02-10 Rambus, Inc. Method and apparatus for data recovery
US9858579B1 (en) 2006-02-28 2018-01-02 International Business Machines Corporation Plan tuning engine
US9785951B1 (en) 2006-02-28 2017-10-10 International Business Machines Corporation Scalable tuning engine
US7660942B2 (en) * 2006-07-26 2010-02-09 International Business Machines Corporation Daisy chainable self timed memory chip
US7577811B2 (en) * 2006-07-26 2009-08-18 International Business Machines Corporation Memory controller for daisy chained self timed memory chips
US7545664B2 (en) * 2006-07-26 2009-06-09 International Business Machines Corporation Memory system having self timed daisy chained memory chips
US7546410B2 (en) * 2006-07-26 2009-06-09 International Business Machines Corporation Self timed memory chip having an apportionable data bus
US7660940B2 (en) * 2006-07-26 2010-02-09 International Business Machines Corporation Carrier having daisy chain of self timed memory chips
JP2011081732A (ja) * 2009-10-09 2011-04-21 Elpida Memory Inc 半導体装置及びその調整方法並びにデータ処理システム
CN101740138B (zh) * 2009-12-02 2013-12-11 中兴通讯股份有限公司 一种测试存储器访问时延的方法及系统
JP6459820B2 (ja) * 2015-07-23 2019-01-30 富士通株式会社 記憶制御装置、情報処理装置、および制御方法
US10243276B2 (en) * 2015-10-12 2019-03-26 The Boeing Company Phased array antenna system including a modular control and monitoring architecture
EP3244325B1 (de) * 2016-05-10 2021-07-07 dSPACE digital signal processing and control engineering GmbH Verfahren zur zeitlich synchronisierten ausgabe und/oder zeitlich synchronisierten verarbeitung von signalen
US10411719B1 (en) * 2018-06-05 2019-09-10 Western Digital Technologies, Inc. Direct measurement delay calibration method and apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE756420A (fr) * 1969-11-10 1971-03-01 Ibm Dispositif de transfert d'enregistrements
US4263651A (en) * 1979-05-21 1981-04-21 International Business Machines Corporation Method for determining the characteristics of a logic block graph diagram to provide an indication of path delays between the blocks
US5081575A (en) * 1987-11-06 1992-01-14 Oryx Corporation Highly parallel computer architecture employing crossbar switch with selectable pipeline delay
JPH0713905A (ja) * 1993-06-23 1995-01-17 Hitachi Ltd 記憶装置システム及びその制御方法
KR960013858B1 (ko) * 1994-02-03 1996-10-10 현대전자산업 주식회사 데이타 출력버퍼 제어회로
US5623638A (en) * 1994-11-22 1997-04-22 Advanced Micro Devices, Inc. Memory control unit with programmable edge generator to minimize delay periods for critical DRAM timing parameters
US5892981A (en) * 1996-10-10 1999-04-06 Hewlett-Packard Company Memory system and device

Also Published As

Publication number Publication date
EP1131718A1 (de) 2001-09-12
CN1165845C (zh) 2004-09-08
TW538341B (en) 2003-06-21
BR9915826B1 (pt) 2012-02-07
BR9915826A (pt) 2001-08-14
US6173345B1 (en) 2001-01-09
CN1332869A (zh) 2002-01-23
DE69922835D1 (de) 2005-01-27
HK1036854A1 (en) 2002-01-18
EP1131718A4 (de) 2003-08-06
EP1131718B1 (de) 2004-12-22
AU1221200A (en) 2000-05-22
WO2000026789A1 (en) 2000-05-11

Similar Documents

Publication Publication Date Title
DE69922835T2 (de) Ausgleich von übertragungsverzögerungen für einen speicherkanal in einem speichersubsystem
DE69728559T2 (de) Verfahren und vorrichtung zur wahl von m-ansteuerungsleitungen unter n-ansteuerungsleitungen
DE2856483C2 (de)
DE3909896C2 (de)
DE3152435C2 (de)
EP0952520B1 (de) Vorrichtung zur fehlertoleranten Ausführung von Programmen
DE102004004796B4 (de) Vorrichtung zur Datenübertragung zwischen Speichern
DE69937808T2 (de) Verfahren und vorrichtung zur konfiguration und initialisierung einer speichervorrichtung und eines speicherkanals
DE3204905C2 (de)
DE3300260C2 (de)
DE10059596A1 (de) Verfahren zur Zeiteinstellung eines Systemspeichers
DE3933361A1 (de) Einrichtung und verfahren zur warteschlangenbildung von anforderungen und antworten auf einem pipeline-paketbus
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE3049774C2 (de)
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE2755616A1 (de) Asymmetrischer multiprozessor
DE3710813A1 (de) Datenverarbeitungssystem sowie verfahren dafuer
DE69831775T2 (de) Verarbeitungsvorrichtung für zerteilte Schreibdaten in Speichersteuerungseinheiten
DE19964003A1 (de) Schaltungsanordnung und Verfahren zur Erzeugung und zum Auslesen von Ersatzdaten
DE4328909C2 (de) Informationsverarbeitungssystem, Informationsprozessor in einem Informationsverarbeitungssystem und Interrupt-Controller in einem Informationsverarbeitungssystem
DE102007053978A1 (de) Abstimmen von Signaltransferkanälen zwischen einer Speichersteuerung und einer Speichervorrichtung
DE10244922B4 (de) Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
DE19522335A1 (de) Verfahren zum Einstellen von Eingabe/Ausgabe-Basisadressen und Vorrichtung für jumperfreie Konfiguration
DE10110567B4 (de) Datenverarbeitungssystem mit einstellbaren Takten für unterteilte synchrone Schnittstellen
DE69921708T2 (de) Interaktives Verfahren zum selbstjustierten Zugriff auf eingebauten Makro-DRAM-Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806