DE112021004180T5 - Speichersubsystemkalibrierung unter verwendung von ersatzergebnissen - Google Patents

Speichersubsystemkalibrierung unter verwendung von ersatzergebnissen Download PDF

Info

Publication number
DE112021004180T5
DE112021004180T5 DE112021004180.0T DE112021004180T DE112021004180T5 DE 112021004180 T5 DE112021004180 T5 DE 112021004180T5 DE 112021004180 T DE112021004180 T DE 112021004180T DE 112021004180 T5 DE112021004180 T5 DE 112021004180T5
Authority
DE
Germany
Prior art keywords
signal paths
subset
calibration
memory
memory controller
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.)
Pending
Application number
DE112021004180.0T
Other languages
English (en)
Inventor
Robert E. Jeter
Rakesh L. Notani
Kai Lun Hsiung
Venkata Ramana Malladi
Rahul Ranjan
Naveen Kumar Korada
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.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE112021004180T5 publication Critical patent/DE112021004180T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Debugging And Monitoring (AREA)
  • Holo Graphy (AREA)
  • Dc Digital Transmission (AREA)

Abstract

Ein Speichersubsystem und ein Verfahren zum Durchführen von Kalibrierungen werden offenbart. Ein Speichersubsystem schließt eine Speichersteuerung ein, die durch eine Vielzahl von Signalpfaden mit einem Speicher gekoppelt ist. Die Speichersteuerung ist konfiguriert, um eine anfängliche Kalibrierung durchzuführen, um jeweilige Augenmuster zu bestimmen, die der Vielzahl von Signalpfaden entsprechen. Für eine nachfolgende Kalibrierung werden aktualisierte Augenmuster für einen Teilsatz aus der Vielzahl von Signalpfaden bestimmt. Verbleibende aus der Vielzahl von Signalpfaden (nicht in dem Teilsatz eingeschlossen) sind während der nachfolgenden Kalibrierungen nicht aktiv. Aktualisierte Augenmuster für die verbleibenden aus der Vielzahl von Signalpfaden werden basierend auf Informationen bestimmt, die während der anfänglichen Kalibrierung erhalten werden, und Informationen von Signalpfaden in dem Teilsatz sind vorgesehene Proxys für die verbleibenden aus der Vielzahl von Signalpfaden.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Diese Offenbarung bezieht sich auf Speichersubsysteme und insbesondere auf die Durchführung von Kalibrierungen in Speichersubsystemen.
  • Beschreibung des Stands der Technik
  • Augenmuster oder Augendiagramme sind grafische Darstellungen, die Zeiten und Amplituden veranschaulichen, zu denen ein digitales Signal mit seinem korrekten Wert abgetastet werden kann. In verschiedenen Arten von Systemen, die Datenübertragungen einschließen, ist es wünschenswert, Signale (z. B. Datensignale, die durch ein Taktsignal synchronisiert werden) nahe einer Mitte eines Auges in Bezug auf Zeit und Abtastspannung abzutasten. Im Hinblick auf den Zeitpunkt können diese ein Signal mit einer ausreichenden Menge von sowohl Einrichtungs- als auch Haltezeit bereitstellen, während sie gleichzeitig auch weniger anfällig für Rauschen sind. In Bezug auf die Spannung können diese eine präzisere Bestimmung eines Logikwerts (z. B. logische Eins oder logische Null) basierend auf einer Schwellenwertspannung ermöglichen, die zur Unterscheidung voneinander verwendet wird.
  • In den Speichersubsystemen können Kalibrierungen durchgeführt werden, um die Punkte zu bestimmen, an denen Signale innerhalb des Augenmusters abgetastet werden. Kalibrierungen werden durchgeführt, um ein Augendiagramm zu bestimmen, das eine präzise Abtastung von Signalen ermöglicht und somit Kalibrierungen basierend auf dem Zeitpunkt (manchmal als horizontale Kalibrierung bezeichnet) und Abtastschwellenwertspannung (manchmal als vertikale Kalibrierung bezeichnet) einschließen. Das Durchführen dieser Kalibrierungen schließt in der Regel das Anpassen einer Anzahl unterschiedlicher Parameter ein, welche die Übertragung von Daten zwischen einer Speichersteuerung und einem Speicher regeln. Diese Kalibrierungen können während einer Systeminbetriebnahme durchgeführt werden und können auch danach periodisch durchgeführt werden.
  • KURZDARSTELLUNG
  • Ein Speichersubsystem und ein Verfahren zum Durchführen von Kalibrierungen darin werden offenbart. In einer Ausführungsform ist eine Speichersteuerung durch eine Vielzahl von Signalpfaden mit einem Speicher gekoppelt. Die Speichersteuerung ist konfiguriert, um eine anfängliche Kalibrierung durchzuführen, um jeweilige Augenmuster zu bestimmen, die verschiedenen der Signalpfade entsprechen. Für nachfolgende Kalibrierungen werden aktualisierte Augenmuster für einen Teilsatz der Vielzahl von Signalpfaden bestimmt. Verbleibende aus der Vielzahl von Signalpfaden (nicht in dem Teilsatz eingeschlossen) sind während der nachfolgenden Kalibrierungen nicht aktiv. Aktualisierte Augenmuster für die verbleibenden aus der Vielzahl von Signalpfaden werden basierend auf Informationen bestimmt, die während der anfänglichen Kalibrierung erhalten werden.
  • In einer Ausführungsform wird die Vielzahl von Signalpfaden in erste und zweite Teilsätze unterteilt. Während der anfänglichen Kalibrierung werden die Signalpfade von mindestens dem ersten Teilsatz in einem ersten Durchgang kalibriert, während mindestens ein Signalpfad aus dem zweiten Teilsatz in einem zweiten Durchgang kalibriert wird. Nach Abschluss der anfänglichen Kalibrierung werden Ergebnisse, die aus der Kalibrierung aus dem ersten Teilsatz erhalten werden, mit Ergebnissen verglichen, die für den zweiten Teilsatz erhalten werden. Für gegebene aus dem zweiten Teilsatz wird ein Signalpfad aus dem ersten Teilsatz als ein Proxy ausgewählt. Ein Signalpfad aus dem ersten Teilsatz wird so gewählt, dass er ein Proxy eines entsprechenden Signalpfads aus dem zweiten Teilsatz ist, basierend darauf, dass seine Kalibrierungsergebnisse eine exakteste Übereinstimmung zu anderen Signalpfaden aus dem ersten Teilsatz aufweisen. Unterschiede (z. B. Spannungs- und Zeitpunktversätze) zwischen dem gegebenen Signalpfad aus dem zweiten Teilsatz und ihrem gewählten Proxy werden ebenfalls bestimmt. In nachfolgenden Kalibrierungen werden nur Signalpfade aus dem ersten Teilsatz aktiviert und direkt kalibriert (z. B. aktiv während der Kalibrierung), wobei ihre Augenmuster entsprechend aktualisiert werden. Ein aktualisiertes Augenmuster für den gegebenen Signalpfad aus dem zweiten Teilsatz wird durch Kombinieren der Kalibrierungsergebnisse (von der nachfolgenden Kalibrierung) für ihren entsprechenden Proxy in dem ersten Teilsatz mit den während der anfänglichen Kalibrierung bestimmten Unterschieden bestimmt.
  • Figurenliste
  • Die folgende detaillierte Beschreibung nimmt Bezug auf die begleitenden Zeichnungen, die nun kurz beschrieben werden.
    • 1 ist ein Blockdiagramm, das eine Ausführungsform eines Speichersubsystems, das eine Speichersteuerung und einen Speicher aufweist, veranschaulicht.
    • 2 ist ein Blockdiagramm, das ferner eine Ausführungsform einer Speichersteuerung veranschaulicht.
    • 3 ist ein Blockdiagramm, das eine Ausführungsform eines Systems, das eine integrierte Schaltung und einen Speicher aufweist, veranschaulicht.
    • 4 ist ein Flussdiagramm, das eine Ausführungsform eines Verfahrens zum Kalibrieren von Signalpfaden veranschaulicht, die zwischen einer Speichersteuerung und einem Speicher gekoppelt sind.
    • 5 ist ein Flussdiagramm einer anderen Ausführungsform eines Verfahrens zum Kalibrieren von Signalpfaden, die zwischen einer Speichersteuerung und einem Speicher gekoppelt sind.
    • 6 ist ein Blockdiagramm eines Beispielsystems.
  • Obwohl die hierin offenbarten Ausführungsformen verschiedenen Modifikationen und alternativen Formen zugänglich sind, werden spezifische Ausführungsformen in beispielhafter Weise in den Zeichnungen gezeigt und hierin detailliert beschrieben. Es versteht sich jedoch, dass Zeichnungen und eine dazugehörige detaillierte Beschreibung nicht dazu gedacht sind, den Schutzumfang der Ansprüche auf die speziellen offenbarten Formen zu beschränken. Im Gegenteil, diese Anmeldung soll alle Modifikationen, Äquivalente und Alternativen abdecken, die innerhalb des Wesens und Schutzumfangs der Offenbarung der vorliegenden Anmeldung liegen, wie durch die beiliegenden Ansprüche definiert.
  • Diese Offenbarung schließt Bezugnahmen auf „eine einzelne Ausführungsform“, „eine bestimmte Ausführungsform“, „einige Ausführungsformen“, „verschiedene Ausführungsformen“ oder „eine Ausführungsform“ ein. Wenn die Wendungen „in einer einzelnen Ausführungsform“, „in einer bestimmten Ausführungsform“, „in einigen Ausführungsformen“ „in verschiedenen Ausführungsformen“ oder „in einer Ausführungsform“ vorkommen, nehmen sie nicht unbedingt auf dieselbe Ausführungsform Bezug. Besondere Merkmale, Strukturen oder Eigenschaften können auf jegliche geeignete Weise kombiniert werden, die mit dieser Offenbarung im Einklang steht.
  • Innerhalb dieser Offenbarung können unterschiedliche Entitäten (die verschiedentlich als „Einheiten“, „Schaltungen“, andere Komponenten usw. bezeichnet werden können) als „konfiguriert“, um eine oder mehrere Aufgaben oder Operationen durchzuführen, beschrieben oder beansprucht werden. Diese Formulierung - [Entität], die konfiguriert ist, [um eine oder mehrere Aufgaben durchzuführen] - wird hierin verwendet, um sich auf eine Struktur (d. h. etwas Physisches, wie eine elektronische Schaltung) zu beziehen. Insbesondere wird diese Formulierung verwendet, um anzugeben, dass diese Struktur angeordnet ist, um die eine oder die mehreren Aufgaben während des Betriebs durchzuführen. Eine Struktur kann als „konfiguriert, um“ eine Aufgabe durchzuführen, bezeichnet werden, selbst wenn die Struktur aktuell nicht betrieben wird. Eine „Punkteverteilungsschaltung, die konfiguriert ist, um Punkte auf eine Vielzahl von Prozessorkernen zu verteilen“ soll zum Beispiel eine integrierte Schaltung abdecken, die eine Schaltlogik aufweist, die diese Funktion während des Betriebs durchführt, selbst wenn die betreffende integrierte Schaltung aktuell nicht verwendet wird (z. B. ist keine Stromversorgung daran angeschlossen). Somit bezieht sich eine Entität, die als „konfiguriert, um“ eine Aufgabe durchzuführen, beschrieben oder angegeben wird, auf etwas Physisches, wie eine Vorrichtung, eine Schaltung, einen Speicher, der Programmanweisungen speichert, die ausführbar sind, um die Aufgabe zu implementieren, usw. Diese Wendung wird hierin nicht verwendet, um auf etwas nicht Greifbares Bezug zu nehmen.
  • Der Begriff „konfiguriert, um“ soll nicht „konfigurierbar, um“ bedeuten. Ein unprogrammiertes FPGA würde zum Beispiel nicht als „konfiguriert, um“ eine bestimmte Funktion durchzuführen, betrachtet werden, obwohl es „konfigurierbar, um“ diese Funktion nach entsprechender Programmierung durchzuführen, sein kann.
  • Das Angeben in den beiliegenden Ansprüchen, dass eine Struktur „konfiguriert ist, um“ eine oder mehrere Aufgaben durchzuführen, ist ausdrücklich nicht dazu gedacht, sich auf 35 U.S.C. § 112(f) für dieses Anspruchselement zu berufen. Dementsprechend soll keiner der Ansprüche in dieser Anmeldung in der eingereichten Fassung so ausgelegt werden, dass er Mittel-plus-Funktion-Elemente aufweist. Wenn sich der Anmelder während des Erteilungsverfahrens auf die Anwendung von Abschnitt 112(f) berufen möchte, gibt er Anspruchselemente unter Verwendung des Konstrukts „Mittel zum“ [Durchführen einer Funktion] an.
  • Wie hierin verwendet, wird der Begriff „basierend auf‟ verwendet, um einen oder mehrere Faktoren zu beschreiben, die eine Bestimmung beeinflussen. Dieser Begriff schließt nicht die Möglichkeit aus, dass zusätzliche Faktoren die Bestimmung beeinflussen können. Das heißt, eine Bestimmung kann ausschließlich auf angegebenen Faktoren basieren oder auf den angegebenen Faktoren sowie anderen, nicht angegebenen Faktoren basieren. Man betrachte die Wendung „A basierend auf B bestimmen“. Diese Wendung gibt an, dass B ein Faktor ist, der verwendet wird, um A zu bestimmen, oder der die Bestimmung von A beeinflusst. Diese Wendung schließt nicht aus, dass die Bestimmung von A auch auf einem anderen Faktor, wie C, basieren kann. Diese Wendung soll auch eine Ausführungsform abdecken, in der A ausschließlich basierend auf B bestimmt wird. Wie hierin verwendet, ist die Wendung „basierend auf‟ gleichbedeutend mit der Wendung „basierend mindestens teilweise auf‟.
  • Wie hierin verwendet, beschreibt die Wendung „als Reaktion auf‟ einen oder mehrere Faktoren, die eine Wirkung auslösen. Diese Wendung schließt nicht die Möglichkeit aus, dass zusätzliche Faktoren die Wirkung beeinflussen oder anderweitig auslösen können. Das heißt, eine Wirkung kann ausschließlich als Reaktion auf diese Faktoren erfolgen oder kann als Reaktion auf die angegebenen Faktoren sowie andere, nicht angegebene Faktoren erfolgen. Man betrachte die Wendung „A als Reaktion auf B durchführen“. Diese Wendung gibt an, dass B ein Faktor ist, der die Durchführung von A auslöst. Diese Wendung schließt nicht aus, dass ein Durchführen von A auch als Reaktion auf einen anderen Faktor, wie C, erfolgen kann. Diese Wendung soll auch eine Ausführungsform abdecken, in der A ausschließlich als Reaktion auf B durchgeführt wird.
  • Wie hierin verwendet, werden die Begriffe „erster“, „zweiter“ usw. als Bezeichnungen für nachgestellte Substantive verwendet, und sie implizieren keine Art von Reihenfolge (z. B. räumlich, zeitlich, logisch usw.), sofern nicht anders angegeben. So können zum Beispiel in einer Registerdatei mit acht Registern die Begriffe „erstes Register“ und „zweites Register“ verwendet werden, um auf zwei beliebige der acht Register Bezug zu nehmen, und nicht zum Beispiel nur auf die logischen Register 0 und 1.
  • Das Angeben, dass „die Speichersteuerung mit dem Speicher durch einen Satz von Signalpfaden gekoppelt [ist]“ und dass bei einer anfänglichen Kalibrierung das „Aktivieren jedes aus dem Satz von Signalpfaden“ eingeschlossen ist, bedeutet, dass mindestens zwei Signalpfade vorhanden sind, die zwischen der Speichersteuerung und dem Speicher gekoppelt sind, die während der anfänglichen Kalibrierung aktiviert werden. In einigen Ausführungsformen können andere Signalpfade vorhanden sein, die zwischen der Speichersteuerung und dem Speicher gekoppelt sind, die während einer anfänglichen Kalibrierung nicht notwendigerweise aktiviert sind. In anderen Ausführungsformen können alle Signalpfade, die zwischen einer Speichersteuerung und einem Speicher gekoppelt sind, während einer anfänglichen Kalibrierung aktiviert werden. Die Klausel „Aktivieren jedes aus dem Satz von Signalpfaden“ ist somit nicht auszulegen, dass in allen Fällen alle Signalpfade, die zwischen der Speichersteuerung und dem Speicher gekoppelt sind, während einer anfänglichen Kalibrierung aktiviert werden. Stattdessen bietet die Klausel die Möglichkeit, dass dies in einigen Fällen der Fall sein kann und in anderen Fällen nicht.
  • Bei Verwendung in den Ansprüchen wird der Begriff „oder“ als inklusives „oder“ und nicht als exklusives „oder“ verwendet. So bedeutet zum Beispiel die Wendung „mindestens eines von x, y oder z“ ein beliebiges von x, y und z sowie eine beliebige Kombination davon.
  • In der folgenden Beschreibung sind zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis der offenbarten Ausführungsformen bereitzustellen. Der Durchschnittsfachmann sollte jedoch erkennen, dass Gesichtspunkte von offenbarten Ausführungsformen ohne diese spezifischen Details ausgeführt werden könnten. In einigen Fällen wurden allgemein bekannte Schaltungen, Strukturen, Signale, Computerprogrammanweisungen und Techniken nicht im Detail dargestellt, um ein Verunklaren der offenbarten Ausführungsformen zu vermeiden.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Die vorliegende Offenbarung bezieht sich auf die Kalibrierung von Signalpfaden, die zwischen einer Speichersteuerung und einem Speicher gekoppelt sind. Während des Betriebs eines Speichersubsystems werden Kalibrierungen zu verschiedenen Zeiten durchgeführt, um sicherzustellen, dass die logische Werte von Signalen, die zwischen der Speichersteuerung und dem Speicher übertragen werden, beim Empfang richtig interpretiert werden. Eine richtige Interpretation von logische Werten kann erreicht werden, indem ausreichende Mengen von Einrichtungs- und Haltezeit bereitgestellt werden und eine Spannung bestimmt wird, die zwischen einer logischen Null und einer logischen Eins unterscheidet. Die Kalibrierung, um eine ausreichende Einrichtungs- und Haltezeit für ein Signal sicherzustellen, beinhaltet das Anpassen von Verzögerungsmengen, die einem Daten-Strobe-Signal bereitgestellt werden (z. B. ein Taktsignal, das verwendet wird, um die Übertragung und den Empfang von Signalen zu synchronisieren) und deren jeweilige logische Werte zu bestimmen. In ähnlicher Weise beinhaltet die Kalibrierung zum Bestimmen der Unterscheidungsspannung das Interpretieren des logischen Werts von Signalen bei verschiedenen Spannungspegeln. Die erstere Kalibrierung kann als horizontale Kalibrierung bezeichnet werden, während die letztere als vertikale Kalibrierung bezeichnet werden kann. Zusammengenommen können die horizontalen und vertikalen Kalibrierungen verwendet werden, um das zu bestimmen, was allgemein als Augenmuster bekannt ist, das den Bereich von Zeitpunkt- und Spannungswerten darstellt, in dem die logischen Werte von Signalen richtig interpretiert werden können.
  • In einigen Speichersubsystemen kann eine Grenze für die Anzahl von Signalpfaden vorhanden sein, die zu einem bestimmten Zeitpunkt kalibriert werden können. Die Gesamtzahl der zu kalibrierenden Signalpfade kann jedoch die Anzahl überschreiten, die in einem gegebenen Durchgang oder einer Instanz kalibriert werden kann. Dementsprechend können in solchen Ausführungsformen zwei Durchgänge erforderlich sein, um alle Signalpfade zu kalibrieren. Wenn die Dauer jedes Kalibrierdurchgangs im Wesentlichen gleich ist, verdoppelt der zweite Durchgang effektiv die Kalibrierungszeitdauer und somit die Zeitdauer, die das Speichersystem nicht verfügbar ist. Des Weiteren können in einigen Speichersubsystemen bestimmte Signalpfade für eine signifikante Zeitdauer inaktiv sein, wobei die entsprechende Schaltlogik abgeschaltet wird. Somit können Kalibrierungen dieser Signalpfade das Einschalten der Schaltlogik erfordern und somit mindestens einige Leistungseinsparungen negieren.
  • Die Methodik der vorliegenden Offenbarung zur Kalibrierung in einem Speichersubsystem ist eine, in der nur Signalpfade eines Teilsatzes für mindestens einige Instanzen einer Kalibrierung kalibriert werden. Es wird eine anfängliche Kalibrierung durchgeführt, in der alle Signalpfade einer bestimmten Vielzahl kalibriert werden. Die Vielzahl von Signalpfaden kann in einen ersten Teilsatz und einen zweite Teilsatz unterteilt sein. Ergebnisse der anfänglichen Kalibrierung für Signalpfade aus dem ersten Teilsatz werden mit Kalibrierungsergebnissen für Signalpfade in dem zweiten Teilsatz verglichen. Für einen gegebenen Signalpfad in dem zweiten Teilsatz wird ein Proxy-Signalpfad aus den Signalpfaden des ersten Teilsatzes ausgewählt. Die Auswahl basiert auf den Ergebnissen der Vergleiche. Insbesondere wird der Proxy-Signalpfad aus dem ersten Teilsatz ausgewählt, um Kalibrierungsergebnisse aufzuweisen, die am genauesten mit denen ihres entsprechenden Signalpfads aus dem zweiten Teilsatz übereinstimmen. Die Unterschiede oder Versätze zwischen diesen zwei Signalpfaden werden ebenfalls berechnet.
  • Bei Kalibrierungen nachfolgend auf die anfängliche Kalibrierung werden nur Signalpfade aus dem ersten Teilsatz direkt kalibriert, während diejenigen aus dem zweiten Teilsatz inaktiv bleiben können. Wie hierin verwendet, bedeutet der Begriff „direkt kalibriert“ in Bezug auf einen Signalpfad, dass der Signalpfad während einer Kalibrierung aktiv ist und Daten basierend auf darauf übertragenen Signalen gesammelt werden. Für jeden Signalpfad aus dem zweiten Teilsatz werden die Kalibrierungsergebnisse seines Proxys von dem ersten Signalpfad zusammen mit den berechneten Versätzen kombiniert. Dies führt effektiv zu einer Kalibrierung und somit zu einer Bestimmung eines Augenmusters für jeden der Signalpfade aus dem zweiten Teilsatz, ohne eine Kalibrierung in zwei Durchgängen durchführen zu müssen oder anderweitig inaktive Signalpfade zu aktivieren. Dementsprechend kann die Zeit, in der das Speichersubsystem aufgrund der Kalibrierung nicht verfügbar ist, reduziert werden, während zusätzliche Leistungseinsparungen erreicht werden können. Verschiedene Ausführungsformen eines Speichersubsystems werden nun näher erläutert.
  • 1 ist ein Blockdiagramm, das eine Ausführungsform eines Speichersubsystems veranschaulicht, das eine Speichersteuerung und einen Speicher in einem Speichersubsystem aufweist. In der gezeigten Ausführungsform schließt das Speichersubsystem 11 eine Speichersteuerung 12 und einen Speicher 158 ein. Eine Anzahl von Signalpfaden, insbesondere die Signalpfade 0 bis 9, sind zwischen der Speichersteuerung 12 und dem Speicher 158 gekoppelt.
  • Die Signalpfade, wie gezeigt, können in einen ersten Teilsatz 18 und einen zweiten Teilsatz 19 unterteilt werden. In dieser besonderen Ausführungsform werden die Signalpfade 0 bis 7 aus dem ersten Teilsatz 18 zum Übertragen von Daten (für Lese- und Schreibvorgänge) zwischen der Speichersteuerung 12 und dem Speicher 158 bereitgestellt. Die Signalpfade 8 und 9 aus dem zweiten Teilsatz 19 können für verschiedene andere Funktionen bereitgestellt werden, wie zum Bereitstellen eines oder mehrerer Fehlerkorrekturcode-Bits (error correction code bits, ECC-Bits), Signalen zum Durchführen einer Datenbusinversion (z. B. Invertieren der Werte von Daten auf den Signalpfaden 0 bis 7) usw.
  • In verschiedenen Ausführungsformen führt die Speichersteuerung 12 Kalibrierungen der Signalpfade durch, um ein Augenmuster für jeden zu bestimmen. Die Kalibrierung kann die Übertragung von Daten zwischen der Speichersteuerung 12 und dem Speicher 158 einschließen, einschließlich sowohl Lese- als auch Schreibvorgängen. Obwohl in 1 nicht explizit gezeigt, wird ein Daten-Strobe-Signal zwischen der Speichersteuerung 12 und dem Speicher 158 übermittelt. Das Daten-Strobe-Signal wird verwendet, um Lesevorgänge und Schreibvorgänge von Daten zu synchronisieren, die über verschiedene der Signalpfade übertragen werden. Eine Kalibrierung schließt das Bestimmen einer Zeit ein, zu der Signale, die auf einem der Vielzahl von Signalpfaden übermittelt werden, relativ zu dem Daten-Strobe-Signal abgetastet werden. Dementsprechend schließt die Kalibrierung das Bereitstellen verschiedener Verzögerungen an das Daten-Strobe-Signal, das Lesen von Daten und das Vergleichen mit erwarteten Daten ein. Zusätzlich können die Spannungspegel, die verwendet werden, um zwischen einer logischen Eins und einer logischen Null zu unterscheiden, auch während der Kalibrierungen variiert werden. Somit schließt eine Kalibrierung das Bestimmen einer Spannung ein, bei der Signale verwendet werden, die auf einer der Vielzahl von Signalpfaden übermittelt werden, um eine logische Eins von einer logischen Null zu unterscheiden. Basierend auf den Vergleichsergebnissen können Augenmuster für jeden der Signalpfade bestimmt werden.
  • In der gezeigten Ausführungsform führt die Speichersteuerung 12 eine anfängliche Kalibrierung durch, die das Aktivieren jedes aus dem Satz von Signalpfaden einschließt, um jeweilige Augenmuster für Signalpfade in dem vollen Satz zu bestimmen. Da die Speichersteuerung 12 darauf beschränkt sein kann, weniger als den vollen Satz von Signalpfaden während eines einzelnen Kalibrierdurchgangs zu kalibrieren, kann die anfängliche Kalibrierung mindestens zwei Durchgänge einschließen. Ein Kalibrierdurchgang kann als eine Kalibrierung definiert sein, die an einer ausgewählten Gruppe von Signalpfaden durchgeführt wird. Somit führt die Speichersteuerung 12 während der anfänglichen Kalibrierung in der gezeigten Ausführungsform einen ersten Kalibrierdurchgang durch, um jeweilige Augenmuster für Signalpfade in dem Teilsatz (z. B. dem ersten Teilsatz) zu bestimmen, und führt dann einen zweiten Kalibrierdurchgang durch, um ein jeweiliges Augenmuster für mindestens einen der verbleibenden Signalpfade (z. B. den zweiten Teilsatz) zu bestimmen. Informationen, die während der anfänglichen Kalibrierung erhalten werden, schließen für die verbleibenden aus dem Satz von Signalpfaden, Spannungs- und Zeitpunktversätze relativ zu entsprechenden ausgewählten aus dem ersten Teilsatz des Satzes von Signalpfaden ein.
  • Ein einzelner Kalibrierdurchgang kann alle Signalpfade aus dem ersten Teilsatz 18 und in einigen Ausführungsformen einen Signalpfad aus dem zweiten Teilsatz 19 einschließen. Stellen Sie sich beispielsweise eine Situation vor, in der nur neun der zehn Signalpfade während eines gegebenen Durchgangs kalibriert werden können. Dementsprechend können die Signalpfade 0 bis 8 während eines ersten Durchgangs kalibriert werden, während der Signalpfad 9 während eines zweiten Durchgangs kalibriert werden kann. Somit sind in der gezeigten Ausführungsform mindestens zwei Durchgänge erforderlich, um sicherzustellen, dass alle Signalpfade kalibriert werden.
  • Da sich Betriebsbedingungen (z. B. Temperatur) im Laufe der Zeit ändern können, kann die Speichersteuerung 12 eine nachfolgende Kalibrierung durchführen, die das Aktivieren eines Teilsatzes des Satzes von Signalpfaden einschließt, um aktualisierte jeweilige Augenmuster für Signalpfade in dem Teilsatz zu bestimmen. Insbesondere können in der veranschaulichten Ausführungsform die Signalpfade aus dem ersten Teilsatz 18 kalibriert werden. Für verbleibende aus dem Satz von Signalpfaden können jeweilige aktualisierte Augenmuster basierend auf Informationen bestimmt werden, die während der anfänglichen Kalibrierung erhalten werden. Somit wird die nachfolgende Kalibrierung durchgeführt, ohne die verbleibenden aus dem Satz von Signalpfaden (z. B. Signalpfade den zweiten Teilsatz 19) zu aktivieren.
  • Basierend auf den Informationen, die während der anfänglichen Kalibrierung erhalten werden, wird für jeden Signalpfad aus dem zweiten Teilsatz 19 ein Proxy in dem ersten Teilsatz 18 bestimmt. Ein Proxy für einen gegebenen Signalpfad aus dem zweiten Teilsatz 19 ist ein Signalpfad in dem ersten Teilsatz 18, der die Basis für die Aktualisierung der Augenmuster des ersteren bereitstellt. Insbesondere bestimmt die Speichersteuerung 12 in der veranschaulichten Ausführungsform während der ersten Kalibrierung einen aus dem ersten Teilsatz 18, der ein Augenmuster aufweist, das am exaktesten mit einem Augenmuster eines ausgewählten der Signalpfade aus dem zweiten Teilsatz 19 übereinstimmt. Darüber hinaus werden Spannungs- und Zeitpunktversätze basierend auf Unterschieden im Augenmuster des einen aus dem ersten Teilsatz 18 und dem Augenmuster des zweiten auch durch die Speichersteuerung 12 bestimmt.
  • Die Auswahl eines Proxy wird durch Vergleichen von anfänglichen Kalibrierungsergebnissen und Berechnen von Versatzwerten (z. B. Unterschieden) durchgeführt. Zum Beispiel werden nach der anfänglichen Kalibrierung die Ergebnisse, die für den Signalpfad 9 (den zweiten Teilsatz 19) erhalten werden, mit jedem der Signalpfade 0 bis 7 (des ersten Teilsatzes 18) verglichen. Ein Pfad der Signalpfade 0 bis 7 wird dann als Proxy für den Signalpfad 9 ausgewählt. Die Auswahl basiert darauf, welcher Signalpfad aus dem ersten Teilsatz 18 Kalibrierungsergebnisse aufweist, die denen des Signalpfads 9 während der anfänglichen Kalibrierung am nächsten sind. Während des Vergleichs werden Versätze berechnet. Die Versätze stellen Unterschiede, falls vorhanden, zwischen den kalibrierten Werten des Signalpfads 9 und ihrem aus den Signalpfaden 0 bis 7 ausgewählten Proxy dar. Während der nachfolgenden Kalibrierungen wird der Signalpfad 9, der Teil des zweiten Teilsatzes 19 ist, nicht direkt kalibriert. Stattdessen werden die nachfolgenden Kalibrierungswerte für ihren ausgewählten Proxy mit dem Versatz kombiniert, um die aktualisierten Kalibrierungswerte des Signalpfads 9 (und somit das aktualisierte Augenmuster) zu erhalten. Dieser gleiche Prozess kann für den Signalpfad 8 (auch den zweiten Teilsatz 19) und allgemeiner für jeden Signalpfad in einem zweiten Teilsatz einer gegebenen Ausführungsform durchgeführt werden. Es ist in einigen Fällen möglich, dass zwei Signalpfade eines zweiten Teilsatzes denselben Proxy innerhalb einer ersten Teilsatz aufweisen können, obwohl dies nicht notwendigerweise der Fall ist.
  • In einigen Ausführungsformen können Kalibrierungen bei einer Anzahl unterschiedlicher Taktfrequenzen durchgeführt werden, da das Speichersubsystem 11 während des Betriebs Leistungsfähigkeitszustandsänderungen durch z. B. Arbeitslastanforderungen, Leistungsanforderungen usw. durchlaufen kann. Dementsprechend wählt die Speichersteuerung 12 in solchen Ausführungsformen einen ersten aus dem Teilsatz von Signalpfaden als eine Basis zum Bestimmen eines Augenmusters für nachfolgende Kalibrierungen, die bei einer ersten Taktfrequenz durchgeführt werden, und ferner einen zweiten aus dem Teilsatz von Signalpfaden als eine Basis zum Bestimmen eines Augenmusters für nachfolgende Kalibrierungen, die bei einer zweiten Taktfrequenz durchgeführt werden, aus.
  • Die Speichersteuerung 12 führt in einer Ausführungsform die anfängliche Kalibrierung während einer Inbetriebnahme eines Systems durch, in dem die Speichersteuerung 12 und der Speicher 158 implementiert sind. Die Speichersteuerung 12 führt auch eine oder mehrere Instanzen der nachfolgenden Kalibrierung während des Betriebs des Systems durch. In einigen Ausführungsformen können diese nachfolgenden Kalibrierungen periodisch durchgeführt werden. Da die anfänglichen Kalibrierungen für eine Anzahl unterschiedlicher Taktfrequenzen durchgeführt werden können, können die nachfolgenden Kalibrierungen auch durchgeführt werden, wenn die Taktfrequenz geändert wird.
  • Für die anfänglichen und nachfolgenden Kalibrierungen führt die Speichersteuerung 12 einen oder mehrere Datenschreibvorgänge in den Speicher 158 durch und führt auch einen oder mehrere Datenlesevorgänge aus dem Speicher 158 durch. Wie vorstehend erwähnt, schließt dies auch das Vergleichen von Daten ein, die in den Speicher 158 geschrieben und daraus gelesen werden.
  • Die Grenzen des Augenmusters für einen gegebenen Signalpfad können durch den Punkt bestimmt werden, an dem ein oder mehrere auf dem Signalpfad übermittelte Bits nicht mit ihren erwarteten Werten übereinstimmen. Im Allgemeinen werden in Richtung der Mitte des Auges Bits, die auf einem bestimmten Signalpfad übermittelt werden, mit einem entsprechenden erwarteten Wert übereinstimmen und einen erheblichen Spielraum sowohl im Zeitpunkt als auch in der Spannung aufweisen. Diese Spielräume nehmen zu den Grenzen des Auges hin ab.
  • 2 ist ein Blockdiagramm, das eine Ausführungsform eines Speichersystems darstellt. In der gezeigten Ausführungsform schließt die Speichersteuerung 12 eine Kalibriersteuereinheit 21 und eine physische Schnittstelle 14 ein. Die Kalibriersteuereinheit 21 in der gezeigten Ausführungsform implementiert verschiedene Schaltungseinheiten, einschließlich des Datenvergleichers 218, des Augenrechners 211 und einer Zustandsmaschine 210. Die physische Schnittstelle 14 implementiert eine Schaltlogik zum Kommunizieren mit einem Speicher (hier nicht gezeigt). Die Schaltlogik der physischen Schnittstelle 14 schließt den Sender-Empfänger 22 und eine Verzögerungsschaltung 30 ein.
  • In der gezeigten Ausführungsform ist der Sender-Empfänger 22 der physischen Schnittstelle 14 mit einem Datenbus gekoppelt, der Datensignalpfade DQ[7:0] einschließt. Zusätzlich ist auch ein Fehlerkorrekturcodesignalpfad (ECC-Signalpfad) mit dem Sender-Empfänger 22 gekoppelt. Ein Datenbusinversionssignalpfad (data bus inversion signal path, BDI-Signalpfad) ist in dieser Ausführungsform mit dem Sender-Empfänger 22 gekoppelt. Ein DBI-Signal kann, wenn aktiviert, dazu führen, dass alle Bits, die in Signalen übermittelt werden, die auf den Datensignalpfaden DQ[7:0] übermittelt werden, invertiert werden, z. B. werden alle logischen Nullen in logische Einsen invertiert. Andere Signalpfade können vorhanden sein, und der hier gezeigte Datenbus kann in anderen Ausführungsformen mit einer anderen Anzahl von Bits implementiert sein. Die Signalpfade, die mit dem Sender-Empfänger 22 in dieser Ausführungsform gekoppelt sind, können einer Kalibrierung gemäß der vorstehenden Erläuterung unterzogen werden. Es wird darauf hingewiesen, dass in anderen Ausführungsformen zusätzliche Signalpfade mit dem Sender-Empfänger 22 gekoppelt sein können, von denen einige von Zeit zu Zeit Kalibrierungen durchlaufen können. Darüber hinaus können andere Signale von anderen Schaltungseinheiten (hier nicht explizit gezeigt) innerhalb der physischen Schnittstelle 14 übermittelt werden. Zum Beispiel kann die physische Schnittstelle 14 eine Steuerschaltlogik einschließen, um Schreibfreigabe- und Lesefreigabesignale zu erzeugen, die jeweils während Schreib- und Lesevorgängen zu einem Speicher übermittelt werden. In ähnlicher Weise können auch Schaltungseinheiten zum Erzeugen von Adresssignalen in der physischen Schnittstelle 14 eingeschlossen sein, werden jedoch der Einfachheit halber in 2 ausgelassen.
  • Während Lesevorgängen kann der Sender-Empfänger 22 die logischen Werte von Signalen interpretieren, die von dem Speicher über die Signalpfade DQ[7:0] empfangen werden. In ähnlicher Weise kann der Sender-Empfänger 22 auch logische Werte eines ECC-Signals und eines DBI-Signals bestimmen, die auf ihren jeweiligen Signalpfaden übermittelt werden. Der Sender-Empfänger 22 kann auch ECC-Schaltlogik einschließen, um einen fehlerhaften Wert zu korrigieren, der während eines Lesevorgangs empfangen wird, und kann auch Inverterschaltungen zum Invertieren logischer Werte von Signalen einschließen, die über diesen Datenbus empfangen werden, wenn sich ein DBI-Signal in seinem aktivierten Zustand befindet. Es wird angemerkt, dass für mindestens Abschnitte einer Kalibrierung die ECC-Schaltlogik und die Inverterschaltungen vorübergehend deaktiviert werden können. Der Sender-Empfänger 22 kann zwischen einer logischen Eins und einer logischen Null für ein Signal unterscheiden, das über einen der veranschaulichten Signalpfade basierend auf einer Lesespannung, ReadV, empfangen wird, das durch den Augenrechner 211 angezeigt wird.
  • Die Verzögerungsschaltung 30 in der gezeigten Ausführungsform ist gekoppelt, um ein Eingangstaktsignal, Clk_In, zu empfangen, das von einer Quelle außerhalb der Speichersteuerung 12 bereitgestellt wird. Obwohl nicht explizit gezeigt, kann die Verzögerungsschaltung 30 eine oder mehrere Verzögerungsregelschleifen (delay locked loops, DLLs) oder eine andere Art von Verzögerungsschaltlogik einschließen. Die Verzögerung kann an das Eingangstaktsignal angelegt werden, um ein Daten-Strobe-Signal (data strobe signal, DQS) zu erzeugen, das verwendet wird, um die Übertragung anderer Signale (z. B. DQ[7:0]) zwischen einer Speicher- und Speichersteuerung 12 zu synchronisieren. Die angelegte Verzögerungsmenge kann auf einem Verzögerungssteuersignal, Dly_Ctl, basieren, das durch den Augenrechner 211 bereitgestellt wird. Zusätzlich zum Übermitteln des Daten-Strobe-Signals in den Speicher ist die Verzögerungsschaltung 30 in der gezeigten Ausführungsform auch gekoppelt, um ein Taktsignal an den Sender-Empfänger 22 bereitzustellen.
  • Während der Kalibriervorgänge kann die Datenvergleichsschaltung 218 Daten empfangen, die über die DQ In-Eingabe in den Speicher geschrieben werden sollen.
  • Diese Daten können dann vom Sender-Empfänger 22 an den Speicher übertragen werden. Daten, die aus dem Speicher gelesen werden, können durch die Datenvergleichsschaltung 218 von dem Sender-Empfänger 22 über den DQ_Out-Pfad empfangen werden. Daten, die vom Speicher empfangen werden, können dann mit Daten verglichen werden, die darin geschrieben wurden, um zu bestimmen, ob ein Bitfehler auftritt. Ein Bitfehler kann hierin als ein Bit definiert sein, das einem Signal entspricht, das auf einem bestimmten Signalpfad des Datenbusses, der nicht mit seinem erwarteten Wert übereinstimmt, übermittelt wird (z. B. als logische Null, wenn eine Logik erwartet wird). Bitfehler können an die Augenberechnungsschaltung 211 gemeldet werden. Als Reaktion auf das Empfangen von Informationen eines Bitfehlers kann die Augenberechnungsschaltung 211 den fehlerhaften Bit zusammen mit dem Referenzspannungswert und dem Verzögerungswert (wie an den Daten-Strobe angelegt) aufzeichnen. Basierend auf den Daten von fehlerhaften Bits und entsprechenden Referenzspannungs- und Verzögerungswerten kann die Augenberechnungsschaltung 211 ein Augenmuster für jede Bitposition und somit jeden Signalpfad berechnen.
  • Ein gegebener Kalibriervorgang kann eine Anzahl von Schreibvorgängen von Daten in den Speicher und eine Anzahl von Lesevorgängen aus dem Speicher einschließen. Über eine Anzahl von Wiederholungen kann der Augenrechner 211 Anpassungen sowohl der Verzögerung bewirken, die bei der Erzeugung des Daten-Strobe-Signals (über das Dly_Ctl-Signal) verwendet wird, als auch der Spannung, die verwendet wird, um zwischen einer logischen Eins und einer logischen Null zu unterscheiden. Das Durchführen dieser Vorgänge für eine Anzahl unterschiedlicher Verzögerungswerte und Lesespannungswerte kann verwendet werden, um das Augenmuster für die kalibrierten Signalpfade zu definieren. Ein beispielhaftes Augenmuster wird in 2 gezeigt, wobei seine Höhe H entlang der vertikalen Spannungsachse V definiert ist, während die Breite W entlang der Zeitachse T definiert ist. Die Spannungsachse stellt Werte der Lesespannung dar, während die Zeitachse Verzögerungswerte darstellt, die in der Verzögerungsschaltung 30 während der Erzeugung des Daten-Strobe-Signals angelegt werden. Werte innerhalb der definierten Höhe und Breite des Augenmusters geben Bereiche an, in denen Datenbits, die in einem Signal übermittelt werden, korrekt als eine logische Eins oder eine logische Null interpretiert werden können. Die Bereiche in Richtung der Mitte des Augenmusters weisen im Allgemeinen einen größeren Zeitpunktspielraum und Spannungsspielraum als diejenigen auf, die sich in Richtung der Grenzen befinden.
  • Die Zustandsmaschine 210 in der gezeigten Ausführungsform ist konfiguriert, um die Kalibriervorgänge zu koordinieren. Als Reaktion auf das Empfangen eines Kalibrierungssignals (Cal) von einer externen Quelle kann die Zustandsmaschine 210 Kalibriervorgänge beginnen. Das Kalibrierungssignal kann z. B. von einem Prozessor, einer Systemfirmware oder einer anderen Quelle empfangen werden. Die Zuweisung des Kalibrierungssignals kann in Verbindung mit einer Systeminbetriebnahme in periodischen Abständen und als Reaktion auf Änderungen in einem Leistungsfähigkeitszustand, unter anderen Bedingungen, durchgeführt werden. Während der Kalibriervorgänge kann die Zustandsmaschine 210 mit dem Augenrechner 211, dem Datenkomparator 218 und dem Sender-Empfänger 22 kommunizieren. Zu den Funktionen, welche die Zustandsmaschine 210 ausführen kann, gehört die Ausgabe von Befehlen, um Daten für Schreibvorgänge zu übertragen, um zu bewirken, dass die Speichersteuerung 12 Daten aus dem Speicher liest, und um zu bewirken, dass der Augenrechner 211 eine Änderung der Verzögerungs- und Lesespannungswerte bewirkt.
  • Nach Abschluss einer gegebenen Kalibrierung kann der Augenrechner 211 die Lesespannungs- und Verzögerungswerte (oder Schreibspannungs- und Verzögerungswerte für Schreibkalibrierungen) für jeden der kalibrierten Signalpfade speichern. Diese Werte können dann verwendet werden, um die Lesespannungs- und Verzögerungswerte für normale (z. B. Nicht-Kalibrierungs-) Vorgänge einzustellen. In einigen Ausführungsformen können diese Werte basierend auf einem Durchschnitt von kalibrierten Werten für die verschiedenen kalibrierten Signalpfade eingestellt werden. Es sind auch Ausführungsformen möglich und denkbar, bei denen Versatzinformationen mit den Verzögerungs- und Lesespannungswerten übermittelt werden, um zu ermöglichen, dass Signale für jeden Signalpfad gemäß ihrem eigenen, eindeutigen Augenmuster interpretiert werden.
  • 3 ist ein Blockdiagramm, das eine Ausführungsform eines Systems, das eine integrierte Schaltung und einen Speicher aufweist, veranschaulicht. In der gezeigten Ausführungsform schließt die integrierte Schaltung 10 mindestens einen Prozessorkern 105, eine Leistungsverwaltungseinheit 108, einen Spannungsregler 11 und eine Speichersteuerung 12 ein. Die Speichersteuerung 12 in der gezeigten Ausführungsform kann ähnlich wie in Bezug auf 2 erörtert angeordnet sein. Die integrierte Schaltung 10 und insbesondere die Speichersteuerung 12 sind mit einem Speicher 158 gekoppelt.
  • Der Prozessorkern 105 kann ein singulärer Prozessorkern sein, der in einigen Ausführungsformen auf der integrierten Schaltung 10 implementiert ist, oder kann in anderen Ausführungsformen einer von einer Anzahl unterschiedlicher Prozessorkerne sein. In Ausführungsformen, die mehrere Prozessorkerne aufweisen, können die Kerne homogen oder heterogen sein. Neben anderen Funktionen kann der Prozessorkern 105 Anweisungen eines Betriebssystems 106 ausführen, um verschiedene Funktionen auf Systemebene auszuführen. Zu diesen Funktionen können Entscheidungen darüber gehören, wann die Speichersteuerung 12 eine Kalibrierung verschiedener Signalpfade, die zwischen der integrierten Schaltung 10 und dem Speicher 158 gekoppelt sind, durchführen soll. Der Prozessorkern 105 kann auch Anweisungen verschiedener Softwareprogramme/-anwendungen ausführen. Wie hier gezeigt, ist der Prozessorkern 105 mit der Speichersteuerung 12 gekoppelt und kann Daten dahin senden und Daten davon empfangen, um ihre verschiedenen Vorgänge auszuführen.
  • Die Energieverwaltungseinheit 108 schließt in der gezeigten Ausführungsform verschiedene Schaltungen ein, die verwendet werden, um verschiedene Leistungsverwaltungsfunktionen des Systems auszuführen. Diese Funktionen schließen die Implementierung von Leistungsfähigkeitszustandsänderungen ein. Diese Leistungsfähigkeitszustandsänderungen können Änderungen an der Betriebsspannung verschiedener Schaltungseinheiten im System sowie die Änderung der Frequenz eines von denselben empfangenen Taktsignals einschließen. Höhere Leistungsfähigkeit kann in einigen Ausführungsformen erreicht werden, indem eine Taktfrequenz, eine Betriebsspannung oder beides erhöht wird. In ähnlicher Weise kann die Reduzierung des Leistungsverbrauchs durch Reduzieren einer Betriebsspannung und/oder Reduzieren einer Taktfrequenz erreicht werden. In der gezeigten Ausführungsform ist die Energieverwaltungseinheit 108 konfiguriert, um Spannungssteuersignale, Vctrl, zu erzeugen, die einem Spannungsregler 111 bereitgestellt werden.
  • In der gezeigten Ausführungsform ist der Spannungsregler 111 gekoppelt, um eine globale Versorgungsspannung, VddG, von einer externen Quelle zu empfangen und eine lokale Versorgungsspannung, VddL, an die Speichersteuerung 12 bereitzustellen.
  • Die Energieverwaltungseinheit 108 kann bewirken, dass die lokale Spannung in Abhängigkeit von Zuständen der Spannungssteuersignale ansteigt oder abnimmt. Der Spannungsregler 111 kann jede geeignete Art von Schaltung zum Liefern einer geregelten Versorgungsspannung sein, wie ein Schaltwandler (z. B. Abwärtswandler, Aufwärtswandler) oder Low-Dropout-Spannungsregler (LDO-Spannungsregler).
  • Die Taktsteuereinheit 109 der Stromverwaltungseinheit 108 kann verschiedene Taktsteuerfunktionen durchführen. In einigen Ausführungsformen kann die Taktsteuereinheit 109 Schaltlogik (z. B. eine Phasenregelschleife) zum Erzeugen eines Taktsignals einschließen. In anderen Ausführungsformen kann das Taktsignal von einer externen Quelle bereitgestellt werden. Die Taktsteuereinheit 109 kann Parameter des Taktsignals ClkIn einschließen. Solche Parameter schließen die Frequenz des Taktsignals ein und können auch sein Tastverhältnis einschließen.
  • 4 ist ein Flussdiagramm einer Ausführungsform eines Verfahrens zum Kalibrieren von Signalpfaden, die zwischen einer Speichersteuerung und einem Speicher gekoppelt sind. Das hierin gezeigte Verfahren 400 kann auf verschiedenen Einrichtungsausführungsformen, wie den vorstehend unter Bezugnahme auf 1 bis 3 erörterten, durchgeführt werden. Einrichtungsausführungsformen, die hierin nicht explizit erörtert werden, aber ansonsten in der Lage sind, das Verfahren 400 durchzuführen, können in den Schutzumfang dieser Offenbarung fallen.
  • Das Verfahren 400 schließt das Durchführen, in einem Speichersubsystem, das eine Speichersteuerung aufweist, die durch einen Satz von Signalpfaden mit einem Speicher gekoppelt ist, einer anfänglichen Kalibrierung ein, wobei das Durchführen der anfänglichen Kalibrierung das Aktivieren jedes aus dem Satz von Signalpfaden einschließt, um jeweilige Augenmuster für Signalpfade in dem Satz zu bestimmen (Block 405). Das Verfahren schließt ferner das Durchführen einer nachfolgenden Kalibrierung ein, wobei das Durchführen der nachfolgenden Kalibrierung das Aktivieren eines Teilsatzes des Satzes von Signalpfaden einschließt, um aktualisierte jeweilige Augenmuster für Signalpfade in dem Teilsatz (Block 410) zu bestimmen. Für verbleibende aus dem Satz von Signalpfaden schließt das Verfahren das Bestimmen jeweiliger aktualisierter Augenmuster ein, wobei das Bestimmen auf Informationen basiert, die während der anfänglichen Kalibrierung erhalten werden, und durchgeführt wird, ohne die verbleibenden aus dem Satz von Signalpfaden (Block 415) zu aktivieren.
  • In verschiedenen Ausführungsformen schließen die Informationen, die während der anfänglichen Kalibrierung erhalten werden, Spannungs- und Zeitpunktversätze zwischen einem der verbleibenden aus dem Satz von Signalpfaden und dem Teilsatz des Satzes von Signalpfaden ein, der ein Augenmuster aufweist, das am nächsten mit einem Augenmuster des einen des verbleibenden Satzes von Signalpfaden übereinstimmt.
  • In einigen Ausführungsformen schließt das Verfahren 400 während der nachfolgenden Kalibrierung das Bestimmen des aktualisierten jeweiligen Augenmusters für den einen aus dem Teilsatz des Satzes von Signalpfaden ein. Solche Verfahrensausführungsformen können somit auch das Berechnen des jeweiligen aktualisierten Augenmusters für den einen der verbleibenden aus dem Satz von Signalpfaden durch Anlegen der Spannungs- und Zeitversätze an das aktualisierte jeweilige Augenmuster für den einen aus dem Teilsatz des Satzes von Signalpfaden einschließen. Das Durchführen der anfänglichen Kalibrierung umfasst das Kalibrieren des Teilsatzes von Signalpfaden während eines ersten Durchgangs und das Kalibrieren mindestens eines verbleibenden aus dem Satz von Signalpfaden während eines zweiten Durchgangs, und wobei das Durchführen der nachfolgenden Kalibrierung einen einzigen Durchgang umfasst, in dem die Signalpfade aus dem Teilsatz von Signalpfaden kalibriert werden.
  • In einigen Ausführungsformen können Kalibrierungen bei unterschiedlichen Taktfrequenzen und allgemeiner in unterschiedlichen Leistungsfähigkeitszuständen durchgeführt werden. In solchen Ausführungsformen schließt das Verfahren für eine nachfolgende Kalibrierung, die bei einer ersten Taktfrequenz durchgeführt wird, das Auswählen von Kalibrierungsinformationen für einen ersten aus dem Teilsatz von Signalpfaden als Basis zum Bestimmen eines ersten aktualisierten Augenmusters für einen ausgewählten der verbleibenden Signalpfade ein. Für eine nachfolgende Kalibrierung, die als eine zweite Taktfrequenz durchgeführt wird, die sich von der ersten Taktfrequenz unterscheidet, schließt das Verfahren das Auswählen von Kalibrierungsinformationen für einen zweiten aus dem Teilsatz von Signalpfaden als Basis zum Bestimmen eines ersten aktualisierten Augenmusters für den ausgewählten der verbleibenden Signalpfade ein.
  • In verschiedenen Ausführungsformen schließt das Verfahren das Durchführen der anfänglichen Kalibrierung während einer Inbetriebnahme eines Systems ein, welches das Speichersubsystem implementiert. Danach schließt das Verfahren das Durchführen einer oder mehrerer Instanzen der nachfolgenden Kalibrierung auf einer periodischen Basis und das Durchführen einer Instanz der nachfolgenden Kalibrierung als Reaktion auf eine Leistungsfähigkeitszustandsänderung ein.
  • 5 ist ein Flussdiagramm einer anderen Ausführungsform eines Verfahrens zum Kalibrieren von Signalpfaden, die zwischen einer Speichersteuerung und einem Speicher eines Speichersubsystems gekoppelt sind. Das Verfahren 500 bezieht sich auf eine Ausführungsform, bei der die Kalibrierungen für mindestens zwei unterschiedliche Leistungsfähigkeitszustände durchgeführt werden, wobei Proxy-Signalpfade aus einem ersten Teilsatz ausgewählt werden, um Augenmusterinformationen für Signalpfade eines zweiten Teilsatzes bereitzustellen. Das Verfahren 500 kann von den verschiedenen Einrichtungsausführungsformen ausgeführt werden, wie vorstehend erörtert. Einrichtungsausführungsformen, die in der Lage sind, das Verfahren 500 durchzuführen, aber hierin anderweitig nicht offenbart sind, können als in den Umfang dieser Offenbarung fallend betrachtet werden.
  • Verfahren 500 schließt das Durchführen einer ersten Kalibrierung von ersten und zweiten Teilsätzen von Signalpfaden ein, während des Betriebs in einem ersten Leistungsfähigkeitszustand (Block 505). Die erste Kalibrierung kann eine anfängliche Kalibrierung sein, die in diesem bestimmten Leistungsfähigkeitszustand durchgeführt wird, und kann während, z. B. einer Inbetriebnahme eines Systems, in dem das Speichersubsystem implementiert ist, durchgeführt werden. Basierend auf der Leistungsfähigkeit der ersten Kalibrierung schließt das Verfahren 500 ferner für einen Signalpfad aus dem zweiten Teilsatz ein Auswählen eines ersten Proxy-Signalpfads aus dem ersten Teilsatz für nachfolgende Kalibrierungen in dem ersten Leistungsfähigkeitszustand basierend auf Kalibrierungsergebnissen und Bestimmen von Versätzen ein (Block 510). Der Proxy-Signalpfad aus dem ersten Teilsatz wird basierend darauf, dass er Kalibrierungsergebnisse aufweist, die relativ zu anderen Signalpfaden am exaktesten mit denen des entsprechenden Signalpfads aus dem zweiten Teilsatz übereinstimmen, ausgewählt. Die Versätze werden basierend auf Unterschieden zwischen den Kalibrierungsergebnissen des Signalpfads aus dem zweiten Teilsatz und ihrem Proxy in dem ersten Teilsatz bestimmt. Für nachfolgende Kalibrierungen in dem ersten Leistungsfähigkeitszustand werden die Signalpfade aus dem zweiten Teilsatz nicht direkt kalibriert. Stattdessen werden die Kalibrierungsergebnisse ihrer entsprechenden Proxys in dem ersten Teilsatz mit den berechneten Versätzen kombiniert, um zu Kalibrierungsergebnissen für Signalpfade aus dem zweiten Teilsatz zu gelangen.
  • Das Verfahren 500 schließt ferner das Durchführen einer zweiten Kalibrierung des ersten und zweiten Teilsatzes von Signalpfaden ein, während des Betriebs in einem zweiten Leistungsfähigkeitszustand (Block 515). Der zweite Leistungsfähigkeitszustand kann sich von dem ersten in Bezug auf die Taktfrequenz, Betriebsspannung oder beides unterscheiden. Wie bei der ersten Kalibrierung ist die zweite Kalibrierung eine anfängliche Kalibrierung, die in diesem bestimmten Leistungsfähigkeitszustand durchgeführt wird. Für einen Signalpfad aus dem zweiten Teilsatz schließt das Verfahren 500 ferner das Auswählen eines zweiten Proxy-Signalpfads von dem ersten Teilsatz für nachfolgende Kalibrierungen in dem zweiten Leistungsfähigkeitszustand basierend auf den Kalibrierungsergebnissen und Bestimmen von Versätzen (Block 520) ein. Dies kann auf die gleiche Weise wie bei der anfänglichen Kalibrierung durchgeführt werden, die in dem ersten Leistungsfähigkeitszustand durchgeführt wird. Danach können ausgewählte Signalpfade aus dem ersten Teilsatz als Proxys für entsprechende Signalpfade aus dem zweiten Teilsatz dienen, anstelle einer direkten Kalibrierung der letzteren.
  • Es wird angemerkt, dass für einen gegebenen Signalpfad aus dem zweiten Teilsatz ein anderer Proxy-Signalpfad für jeden des ersten und des zweiten Leistungsfähigkeitszustands ausgewählt werden kann. Unter erneuter Bezugnahme auf 1 kann der Signalpfad 9 beispielsweise einen Proxy des Signalpfads 0 für nachfolgende Kalibrierungen aufweisen, die in dem ersten Leistungsfähigkeitszustand durchgeführt werden, während er einen Proxy des Signalpfads 4 für nachfolgende Kalibrierungen aufweist, die in dem zweiten Leistungsfähigkeitszustand durchgeführt werden.
  • Im Allgemeinen, als Reaktion auf Informationen, die während einer anfänglichen Kalibrierung in einem gegebenen Leistungsfähigkeitszustand erhalten werden, basiert die Auswahl des Proxy-Signalpfads für den bestimmten aus dem zweiten Teilsatz von Signalpfaden auf einem Unterschied in jeweiligen Augenmustern verschiedener aus dem ersten Teilsatz von Signalpfaden und dem bestimmten aus dem zweiten Teilsatz von Signalpfaden.
  • Hinsichtlich des Unterschieds der Kalibrierungsergebnisse zwischen einem Signalpfad aus dem zweiten Teilsatz und seinem Proxy in dem ersten Teilsatz kann der Unterschied als Unterschied in jeweiligen Augenmustern betrachtet werden. Das Bestimmen dieses Unterschieds schließt somit das Bestimmen von Spannungsversätzen und Zeitpunktversätzen ein. Die Speichersteuerung, welche die Kalibrierung durchführt, bestimmt, als Reaktion auf das Durchführen einer Instanz der nachfolgenden Kalibrierung, das aktualisierte Augenmuster für den bestimmten aus dem zweiten Teilsatz von Signalpfaden, indem die Spannungs- und Zeitpunktversätze mit dem jeweiligen aktualisierten Augenmuster des Proxy-Signalpfads kombiniert werden.
  • Da Einschränkungen einiger Ausführungsformen eine Speichersteuerung daran hindern können, alle Signalpfade in einem einzigen Durchgang zu kalibrieren, kann die Speichersteuerung somit die anfängliche Kalibrierung in einem ersten Durchgang durchführen, um jeweilige Augenmuster für Signalpfade aus dem ersten Teilsatz zu bestimmen, und in einem zweiten Durchgang, um jeweilige Augenmuster für Signalpfade in dem zweiten Teilsatz zu bestimmen. Danach führt die Speichersteuerung unter Verwendung verschiedener der Signalpfade aus dem ersten Teilsatz als Proxys für Signalpfade aus dem zweiten Teilsatz Instanzen der nachfolgenden Kalibrierung in einem einzigen Durchgang durch.
  • Als Nächstes ist in 6 ein Blockdiagramm einer Ausführungsform eines Systems 150 dargestellt. In der veranschaulichten Ausführungsform schließt das System 150 mindestens eine Instanz einer integrierten Schaltung 10 ein, die mit einem externen Speicher 158 gekoppelt ist. Die integrierte Schaltung 10 kann eine Speichersteuerung einschließen, die mit dem externen Speicher 158 gekoppelt ist. Die integrierte Schaltung 10 ist mit einem oder mehreren Peripheriegeräten 154 und dem externen Speicher 158 gekoppelt. Es wird zudem eine Stromversorgung 156 bereitgestellt, die der integrierten Schaltung 10 die Versorgungsspannungen sowie dem Speicher 158 und/oder den Peripheriegeräten 154 eine oder mehrere Versorgungsspannungen zuführt. In einigen Ausführungsformen kann mehr als eine Instanz der integrierten Schaltung 10 eingeschlossen sein (und kann auch mehr als ein externer Speicher 158 eingeschlossen sein).
  • Die Peripherieeinheiten 154 können abhängig von der Art des Systems 150 eine beliebige gewünschte Schaltlogik einschließen. Zum Beispiel kann in einer Ausführungsform das System 150 eine mobile Vorrichtung (z. B. ein persönlicher digitaler Assistent (PDA), ein Smartphone usw.) sein, und die Peripheriegeräte 154 können Vorrichtungen für verschiedene Arten von drahtloser Kommunikation einschließen, wie WiFi, Bluetooth, Mobilfunk, globales Positionsbestimmungssystem usw. Die Peripheriegeräte 154 können auch zusätzlichen Speicher einschließen, einschließlich RAM-Speicher, Halbleiterspeicher oder Plattenspeicher. Die Peripheriegeräte 154 können Benutzerschnittstellenvorrichtungen, wie einen Anzeigebildschirm, einschließlich Touchscreens oder Multitouch-Bildschirme, Tastatur- oder anderen Eingabevorrichtungen, Mikrofone, Lautsprecher usw., einschließen. In anderen Ausführungsformen kann das System 150 eine beliebige Art von Rechensystem sein (z. B. Desktop-Personal-Computer, Laptop, Workstation, Tablet usw.).
  • Der externe Speicher 158 kann eine beliebige Art von Speicher einschließen. Zum Beispiel kann der externe Speicher 158 SRAM, dynamisches RAM (DRAM), wie synchrones DRAM (SDRAM), SDRAM mit doppelter Datenübertragungsrate (DDR, DDR2, DDR3, LPDDR1, LPDDR2 usw.), RAMBUS DRAM etc. sein. Der externe Speicher 158 kann ein oder mehrere Speichermodule einschließen, an denen die Speichervorrichtungen angebracht sind, wie Speichermodule mit einer Kontaktreihe (SIMMs), Speichermodule mit zwei Kontaktreihen (DIMMs) usw.
  • In verschiedenen Ausführungsformen des Systems 150 können eine Speichersteuerung (z. B. in IC 10 implementiert) und ein Speicher (z. B. externer Speicher 158) verschiedenen der oben erörterten Einrichtungsausführungsformen entsprechen. Solche Ausführungsformen können auch in der Lage sein, verschiedene Ausführungsformen der vorstehend erörterten Verfahren auszuführen. IC 10 kann auch andere hierin offenbarte Schaltlogik einschließen, wie die PMU 108 und den Spannungsregler 111, wie in 2 gezeigt.
  • Zahlreiche Variationen und Modifikationen werden für den Fachmann ersichtlich, sobald die vorstehende Offenbarung vollständig verstanden ist. Es ist beabsichtigt, dass die folgenden Ansprüche derart interpretiert werden, dass alle solchen Variationen und Modifikationen eingeschlossen sind.

Claims (20)

  1. Einrichtung, umfassend: einen Speicher; eine Speichersteuerung, die durch einen Satz von Signalpfaden mit dem Speicher gekoppelt ist, wobei die Speichersteuerung konfiguriert ist zum: Durchführen einer anfänglichen Kalibrierung, die Folgendes einschließt: Aktivieren jedes aus dem Satz von Signalpfaden, um jeweilige Augenmuster für Signalpfade in dem Satz zu bestimmen; Durchführen einer nachfolgenden Kalibrierung, die Folgendes einschließt: Aktivieren eines Teilsatzes des Satzes von Signalpfaden, um aktualisierte jeweilige Augenmuster für Signalpfade in dem Teilsatz zu bestimmen; für verbleibende aus dem Satz von Signalpfaden, Bestimmen jeweiliger aktualisierter Augenmuster, wobei das Bestimmen auf Informationen basiert, die während der anfänglichen Kalibrierung erhalten werden, und durchgeführt wird, ohne die verbleibenden aus dem Satz von Signalpfaden zu aktivieren.
  2. Einrichtung nach Anspruch 1, wobei die Informationen, die während der anfänglichen Kalibrierung für die verbleibenden aus dem Satz von Signalpfaden erhalten werden, Spannungs- und Zeitpunktversätze relativ zu entsprechenden ausgewählten aus dem Teilsatz des Satzes von Signalpfaden einschließen.
  3. Einrichtung nach Anspruch 2, wobei die Speichersteuerung konfiguriert ist, um während der anfänglichen Kalibrierung einen aus dem Teilsatz von Signalpfaden zu bestimmen, der ein Augenmuster aufweist, das am genauesten mit einem Augenmuster eines ausgewählten der verbleibenden aus dem Satz von Signalpfaden übereinstimmt, und ferner konfiguriert ist, um die Spannungs- und Zeitpunktversätze basierend auf Unterschieden in dem Augenmuster des einen aus dem Teilsatz von Signalpfaden und dem Augenmuster eines ausgewählten der verbleibenden aus dem Satz von Signalpfaden zu bestimmen.
  4. Einrichtung nach Anspruch 1, wobei beim Durchführen der anfänglichen Kalibrierung die Speichersteuerung konfiguriert ist zum: Durchführen eines ersten Kalibrierdurchgangs, um jeweilige Augenmuster für Signalpfade in dem Teilsatz zu bestimmen; Durchführen eines zweiten Kalibrierdurchgangs, um ein jeweiliges Augenmuster für mindestens einen der verbleibenden aus dem Satz von Signalpfaden zu bestimmen.
  5. Einrichtung nach Anspruch 1, wobei die Speichersteuerung für einen der verbleibenden aus dem Satz von Signalpfaden konfiguriert ist zum: Auswählen eines ersten aus dem Teilsatz von Signalpfaden als Basis zum Bestimmen eines Augenmusters für nachfolgende Kalibrierungen, die bei einer ersten Taktfrequenz durchgeführt werden; und Auswählen eines zweiten aus dem Teilsatz von Signalpfaden als Basis zum Bestimmen eines Augenmusters für nachfolgende Kalibrierungen, die bei einer zweiten Taktfrequenz durchgeführt werden.
  6. Einrichtung nach Anspruch 1, wobei die Speichersteuerung konfiguriert ist, um die anfängliche Kalibrierung während einer Inbetriebnahme eines Systems durchzuführen, in dem die Speichersteuerung und der Speicher implementiert sind, und ferner konfiguriert ist, um eine oder mehrere Instanzen der nachfolgenden Kalibrierung während des Betriebs des Systems durchzuführen.
  7. Einrichtung nach Anspruch 1, wobei die Speichersteuerung beim Durchführen der anfänglichen Kalibrierung und der nachfolgenden Kalibrierung konfiguriert ist zum: Durchführen eines oder mehrerer Datenschreibvorgänge in den Speicher; und Durchführen eines oder mehrerer Lesevorgänge aus dem Speicher.
  8. Einrichtung nach Anspruch 1, wobei für das Durchführen der anfänglichen Kalibrierung und der nachfolgenden Kalibrierung die Speichersteuerung konfiguriert ist, um für einen gegebenen aus dem Satz von Signalpfaden Folgendes zu bestimmen; eine Spannung, bei der Signale, die auf einem aus dem Satz von Signalpfaden übermittelt werden, verwendet werden, um eine logische Eins von einer logischen Null zu unterscheiden; und eine Zeit, zu der Signale, die auf einem aus dem Satz von Signalpfaden übermittelt werden, gemäß einem Daten-Strobe-Signal abgetastet werden.
  9. Verfahren, umfassend: Durchführen, in einem Speichersubsystem, das eine Speichersteuerung aufweist, die durch einen Satz von Signalpfaden mit einem Speicher gekoppelt ist, einer anfänglichen Kalibrierung, wobei das Durchführen der anfänglichen Kalibrierung einschließt: Aktivieren jedes aus dem Satz von Signalpfaden, um jeweilige Augenmuster für Signalpfade in dem Satz zu bestimmen; Durchführen einer nachfolgenden Kalibrierung, wobei das Durchführen der nachfolgenden Kalibrierung einschließt: Aktivieren eines Teilsatzes des Satzes von Signalpfaden, um aktualisierte jeweilige Augenmuster für Signalpfade in dem Teilsatz zu bestimmen; für verbleibende aus dem Satz von Signalpfaden, Bestimmen jeweiliger aktualisierter Augenmuster, wobei das Bestimmen auf Informationen basiert, die während der anfänglichen Kalibrierung erhalten werden, und durchgeführt wird, ohne die verbleibenden aus dem Satz von Signalpfaden zu aktivieren.
  10. Verfahren nach Anspruch 9, wobei die Informationen, die während der anfänglichen Kalibrierung erhalten werden, Spannungs- und Zeitpunktversätze zwischen einem der verbleibenden aus dem Satz von Signalpfaden und einem aus dem Teilsatz des Satzes von Signalpfaden mit einem Augenmuster einschließen, das am genauesten mit einem Augenmuster des einen der verbleibenden aus dem Satz von Signalpfaden übereinstimmt.
  11. Verfahren nach Anspruch 10, ferner umfassend: Bestimmen des aktualisierten jeweiligen Augenmusters während der nachfolgenden Kalibrierung für den einen aus dem Teilsatz des Satzes von Signalpfaden; und Berechnen des jeweiligen aktualisierten Augenmusters für den einen der verbleibenden aus dem Satz von Signalpfaden durch Anlegen der Spannungs- und Zeitversätze an das aktualisierte jeweilige Augenmuster für den einen aus dem Teilsatz des Satzes von Signalpfaden.
  12. Verfahren nach Anspruch 9, wobei das Durchführen der anfänglichen Kalibrierung das Kalibrieren des Teilsatzes von Signalpfaden während eines ersten Durchgangs und das Kalibrieren mindestens eines verbleibenden aus dem Satz von Signalpfaden während eines zweiten Durchgangs umfasst, und wobei das Durchführen der nachfolgenden Kalibrierung einen einzigen Durchgang umfasst, in dem die Signalpfade aus dem Teilsatz von Signalpfaden kalibriert werden.
  13. Verfahren nach Anspruch 9, ferner umfassend: für eine nachfolgende Kalibrierung, die bei einer ersten Taktfrequenz durchgeführt wird, Auswählen von Kalibrierungsinformationen für einen ersten aus dem Teilsatz von Signalpfaden als eine Basis zum Bestimmen eines ersten aktualisierten Augenmusters für einen ausgewählten der verbleibenden Signalpfade; und für eine nachfolgende Kalibrierung, die als eine zweite Taktfrequenz durchgeführt wird, die sich von der ersten Taktfrequenz unterscheidet, Auswählen von Kalibrierungsinformationen für einen zweiten aus dem Teilsatz von Signalpfaden als eine Basis zum Bestimmen eines zweiten aktualisierten Augenmusters für den ausgewählten der verbleibenden Signalpfade.
  14. Verfahren nach Anspruch 9, ferner umfassend: Durchführen der anfänglichen Kalibrierung während einer Inbetriebnahme eines Systems, welches das Speichersubsystem implementiert; Durchführen einer oder mehrerer Instanzen der nachfolgenden Kalibrierung auf einer periodischen Basis; und Durchführen einer Instanz der nachfolgenden Kalibrierung als Reaktion auf eine Leistungsfähigkeitszustandsänderung.
  15. System, umfassend: einen Speicher; eine Speichersteuerung, die mit dem Speicher durch eine Vielzahl von Signalpfaden gekoppelt ist, einschließlich erster und zweiter Teilsätze von Signalpfaden, wobei die Speichersteuerung konfiguriert ist zum: Durchführen einer anfänglichen Kalibrierung, um jeweilige Augenmuster zu bestimmen, die jedem der ersten und zweiten Teilsätze von Signalpfaden zugeordnet sind; Auswählen, für einen bestimmten aus dem zweiten Teilsatz von Signalpfaden, eines entsprechenden aus dem ersten Teilsatz von Signalpfaden als einen Proxy-Signalpfad; Durchführen einer oder mehrerer Instanzen einer nachfolgenden Kalibrierung, wobei eine gegebene der einen oder mehreren Instanzen der nachfolgenden Kalibrierung einschließt: Aktivieren des ersten Teilsatzes von Signalpfaden, um einen ersten Satz von aktualisierten jeweiligen Augenmustern zu bestimmen; Bestimmen eines aktualisierten Augenmusters für den bestimmten aus dem zweiten Teilsatz von Signalpfaden basierend auf einem aktualisierten jeweiligen Augenmuster des Proxy-Signalpfads.
  16. System nach Anspruch 15, wobei die Speichersteuerung konfiguriert ist, um als Reaktion auf Informationen, die während der anfänglichen Kalibrierung erhalten werden, den Proxy-Signalpfad für den bestimmten aus dem zweiten Teilsatz von Signalpfaden basierend auf einem Unterschied in jeweiligen Augenmustern verschiedener aus dem ersten Teilsatz von Signalpfaden und dem bestimmten aus dem zweiten Teilsatz von Signalpfaden auszuwählen.
  17. System nach Anspruch 16, wobei der Unterschied in jeweiligen Augenmustern das Bestimmen von Spannungsversätzen und Zeitpunktversätzen einschließt, und wobei die Speichersteuerung konfiguriert ist, um als Reaktion auf das Durchführen einer Instanz der nachfolgenden Kalibrierung das aktualisierte Augenmuster für den bestimmten aus dem zweiten Teilsatz von Signalpfaden durch Kombinieren der Spannungs- und Zeitpunktversätze mit dem jeweiligen aktualisierten Augenmuster des Proxy-Signalpfads zu bestimmen.
  18. System nach Anspruch 15, wobei die Speichersteuerung konfiguriert ist, um periodisch Instanzen der nachfolgenden Kalibrierung durchzuführen, und ferner konfiguriert ist, um eine Instanz der nachfolgenden Kalibrierung als Reaktion auf eine Leistungsfähigkeitszustandsänderung durchzuführen.
  19. System nach Anspruch 15, wobei die Speichersteuerung ferner konfiguriert ist zum: Durchführen eines Teils der anfänglichen Kalibrierung in einem ersten Leistungsfähigkeitszustand; Auswählen, für den bestimmten aus dem zweiten Teilsatz von Signalpfaden, eines ersten Proxy-Pfads basierend auf Ergebnissen, die aus der anfänglichen Kalibrierung in dem ersten Leistungsfähigkeitszustand erhalten werden; Durchführen eines Teils der anfänglichen Kalibrierung in einem zweiten Leistungsfähigkeitszustand; und Auswählen, für den bestimmten aus dem zweiten Teilsatz von Signalpfaden, eines zweiten Proxy-Pfads basierend auf Ergebnissen, die aus der anfänglichen Kalibrierung in dem zweiten Leistungsfähigkeitszustand erhalten werden.
  20. System nach Anspruch 15, wobei die Speichersteuerung ferner konfiguriert ist zum: Durchführen der anfänglichen Kalibrierung in einem ersten Durchgang, um jeweilige Augenmuster für Signalpfade aus dem ersten Teilsatz und in einem zweiten Durchgang, um jeweilige Augenmuster für Signalpfade aus dem zweiten Teilsatz zu bestimmen; Durchführen von Instanzen der nachfolgenden Kalibrierung in einem einzigen Durchgang.
DE112021004180.0T 2020-08-05 2021-08-04 Speichersubsystemkalibrierung unter verwendung von ersatzergebnissen Pending DE112021004180T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/986,116 2020-08-05
US16/986,116 US11217285B1 (en) 2020-08-05 2020-08-05 Memory subsystem calibration using substitute results
PCT/US2021/044531 WO2022031840A1 (en) 2020-08-05 2021-08-04 Memory subsystem calibration using substitute results

Publications (1)

Publication Number Publication Date
DE112021004180T5 true DE112021004180T5 (de) 2023-06-29

Family

ID=77564153

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021004180.0T Pending DE112021004180T5 (de) 2020-08-05 2021-08-04 Speichersubsystemkalibrierung unter verwendung von ersatzergebnissen

Country Status (6)

Country Link
US (3) US11217285B1 (de)
KR (1) KR20230029992A (de)
CN (1) CN116075812A (de)
DE (1) DE112021004180T5 (de)
TW (1) TWI796748B (de)
WO (1) WO2022031840A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220006927A (ko) * 2020-07-09 2022-01-18 삼성전자주식회사 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치, 및 메모리 시스템
US11217285B1 (en) * 2020-08-05 2022-01-04 Apple Inc. Memory subsystem calibration using substitute results
KR20220019944A (ko) * 2020-08-11 2022-02-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20220142660A (ko) * 2021-04-15 2022-10-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20240078029A1 (en) * 2022-09-01 2024-03-07 Apple Inc. Memory Calibration and Margin Check

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6853938B2 (en) * 2002-04-15 2005-02-08 Micron Technology, Inc. Calibration of memory circuits
US7724852B2 (en) * 2006-08-30 2010-05-25 Rambus Inc. Drift cancellation technique for use in clock-forwarding architectures
KR101719395B1 (ko) * 2010-07-13 2017-03-23 샌디스크 테크놀로지스 엘엘씨 백-엔드 메모리 시스템 인터페이스를 동적으로 최적화하는 방법
TWI550631B (zh) * 2014-08-04 2016-09-21 瑞昱半導體股份有限公司 記憶體控制電路及相關的記憶體控制方法
US9618965B2 (en) * 2015-05-15 2017-04-11 Tektronix, Inc. Dynamic calibration of data patterns
US10169262B2 (en) 2015-07-14 2019-01-01 Qualcomm Incorporated Low-power clocking for a high-speed memory interface
US9640244B1 (en) * 2016-03-29 2017-05-02 Apple Inc. Pre-calibration for multiple performance states
US10083736B1 (en) * 2016-06-23 2018-09-25 Apple Inc. Adaptive calibration scheduling for a memory subsystem based on calibrations of delay applied to data strobe and calibration of reference voltage
US10552169B2 (en) * 2017-03-17 2020-02-04 Sandisk Technologies Llc On-die signal calibration
US10572183B2 (en) 2017-10-18 2020-02-25 Advanced Micro Devices, Inc. Power efficient retraining of memory accesses
US10242723B1 (en) * 2017-12-19 2019-03-26 Apple Inc. Method and apparatus for background memory subsystem calibration
KR20200048607A (ko) 2018-10-30 2020-05-08 삼성전자주식회사 모드 레지스터 쓰기 명령을 이용하여 쓰기 클럭의 듀티 사이클의 트레이닝을 수행하는 시스템 온 칩, 시스템 온 칩의 동작 방법, 및 시스템 온 칩을 포함하는 전자 장치
US20200027503A1 (en) 2019-09-27 2020-01-23 Intel Corporation Method and apparatus to improve read latency of a multi-threshold level cell block-based non-volatile memory
US11217285B1 (en) * 2020-08-05 2022-01-04 Apple Inc. Memory subsystem calibration using substitute results

Also Published As

Publication number Publication date
US11217285B1 (en) 2022-01-04
US11776597B2 (en) 2023-10-03
TW202207013A (zh) 2022-02-16
WO2022031840A1 (en) 2022-02-10
US20240062792A1 (en) 2024-02-22
US20220189519A1 (en) 2022-06-16
TWI796748B (zh) 2023-03-21
CN116075812A (zh) 2023-05-05
KR20230029992A (ko) 2023-03-03

Similar Documents

Publication Publication Date Title
DE112021004180T5 (de) Speichersubsystemkalibrierung unter verwendung von ersatzergebnissen
DE19752161C2 (de) Halbleiterspeichersystem, unter Verwendung einer taktsynchronen Halbleitervorrichtung, und Halbleiterspeichervorrichtung zur Verwendung in demselben
DE102005051206B4 (de) Speichersystem, Halbleiterspeicherbauelement und Abtastsignalerzeugungsverfahren
DE60034788T2 (de) Verfahren und schaltung zur zeitlichen anpassung der steuersignale in einem speicherbaustein
DE112018006436B4 (de) Adaptiver LDO-Spannungsregler mit Doppelschleife und Verfahren zur Spannungsregelung
DE602004007674T3 (de) Integrierte Schaltung mit bimodalem Daten-Strobe
DE102019118638A1 (de) Ein-Chip-System, das ein Training des Tastgrades des Schreibtakts unter Verwendung eines Modus-Register-Schreibbefehls durchführt, Betriebsverfahren des Ein-Chip-Systems, elektronische Vorrichtung mit dem Ein-Chip-System
DE102007060805B4 (de) Speichersteuerung und Computersystem mit derselben sowie Verfahren zur Steuerung eines Speichers
DE102007063812B3 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE10144247A1 (de) Halbleiterspeicherbauelement und zugehöriges Halbleiterspeichersystem
DE102007035895A1 (de) Dynamische Leistungssteuerung eines Wärmesensors einer Speichervorrichtung
DE112016001481T5 (de) Unterspannungserkennung und leistungsdrosselung
DE112020004583T5 (de) Adaptiver digitaler on-chip-leistungsschätzer
DE102018115971A1 (de) Taktsteuerung in einem Halbleitersystem
DE112020004531T5 (de) Ldo-spannungsregler mit doppelschleife
DE112018000372T5 (de) Systeme und verfahren für eine kohärente energieverwaltung
DE102009020758A1 (de) Halbleiterspeicherbauelement und zugehöriges Zugriffsverfahren
DE102007040577A1 (de) DLL-Schaltung und damit ausgestattete Halbleitervorrichtung
DE102009004565B4 (de) Vorrichtung und Verfahren zum Zwischenspeichern von Daten zwischen Speichercontroller und DRAM
DE112011104682B4 (de) Kalibrieren der Strobesignal-Schreiblatenzzeit (CWL) an Spaltenadressen in einem Speichersystem
DE10326774A1 (de) Auf-Chip Erfassung der Systemoperationsfrequenz in einem DRAM, um DRAM-Operationen einzustellen
DE102020102234A1 (de) Vorrichtung, system und verfahren zur erzeugung von linktrainingssignalen
DE112018003069T5 (de) Kaskadierter ldo-spannungsregler
DE60032966T2 (de) Steuerungsschaltung mit einer Taktssteuerungseinheit
DE112004003057A1 (de) Adaptive Eingabe/Ausgabe-Puffer und Verfahren dafür

Legal Events

Date Code Title Description
R012 Request for examination validly filed