DE102020129114A1 - Techniken für dynamische nähe auf der grundlage von on-die-terminierung - Google Patents

Techniken für dynamische nähe auf der grundlage von on-die-terminierung Download PDF

Info

Publication number
DE102020129114A1
DE102020129114A1 DE102020129114.0A DE102020129114A DE102020129114A1 DE 102020129114 A1 DE102020129114 A1 DE 102020129114A1 DE 102020129114 A DE102020129114 A DE 102020129114A DE 102020129114 A1 DE102020129114 A1 DE 102020129114A1
Authority
DE
Germany
Prior art keywords
storage device
package
memory
command
odt
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
DE102020129114.0A
Other languages
English (en)
Inventor
Shekoufeh Qawami
Rajesh Sundaram
Sheldon G. HIEMSTRA
Setul M. Shah
Andrew Morning-Smith
Sowmiya Jayachandran
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
Publication of DE102020129114A1 publication Critical patent/DE102020129114A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • 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
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • 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
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • 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 
    • G11C7/225Clock input buffers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0005Modifications of input or output impedance

Abstract

Techniken für Nähe, basierend auf On-Die-Terminierung (ODT), umfassen eine Speichervorrichtung, die bestimmt, welche ODT-Einstellung während der Ausführung eines Befehls durch eine andere Speichervorrichtung angewendet werden soll, die mit demselben Datenkanal wie die Speichervorrichtung gekoppelt ist, basierend auf der Nähe der Speichervorrichtung zur anderen Speichervorrichtung und ob der Befehl ein Lesebefehl oder ein Schreibbefehl ist.

Description

  • TECHNISCHES GEBIET
  • Beispiele, die hierin beschrieben sind, betreffen allgemein Techniken für On-Die-Terminierung bei einer Speichervorrichtung.
  • ALLGEMEINER STAND DER TECHNIK
  • In einigen Speichersystemen mit Speichervorrichtungen oder Chips, die mit einer anwendungsspezifischen integrierten Schaltung (ASIC) gekoppelt sind, die als Steuerung dient, sind sowohl auf der ASIC als auch auf Speichervorrichtungen mehrere ODT-Pins (On-Die-Terminierung) vorgesehen, um Werte für die interne Widerstandsterminierung (RTT) und Ein- und Ausschaltzeitpunkt für ODT an den Speichervorrichtungen oder Chips zu steuern. Diese ODT-Pins erfordern typischerweise eine Zusammenarbeit zwischen der ASIC und einer/einem gegebenen Speichervorrichtung oder Chip, um eine angemessene Zeitdauer für RTT während eines Lese- oder Schreibvorgangs aus der/in die Speichervorrichtung oder aus dem/in den Chip zu berücksichtigen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 veranschaulicht ein beispielhaftes erstes System.
    • 2 veranschaulicht eine beispielhafte erste Registertabelle.
    • 3 veranschaulicht eine beispielhafte zweite Registertabelle.
    • 4 veranschaulicht eine beispielhafte dritte Registertabelle.
    • 5 veranschaulicht ein beispielhaftes zweites System.
    • 6 veranschaulicht einen beispielhaften ersten Logikfluss.
    • 7 veranschaulicht eine beispielhafte Vorrichtung.
    • 8 veranschaulicht einen beispielhaften zweiten Logikfluss.
    • 9 veranschaulicht ein beispielhaftes Speicherungsmedium.
    • 10 veranschaulicht ein beispielhaftes drittes System.
  • DETAILLIERTE BESCHREIBUNG
  • Speichervorrichtungen, die mit einer ASIC gekoppelt sind, die als Steuerung zum Steuern des Zugriffs auf die Speichervorrichtungen dient, können in einer Speicherungsvorrichtung bereitgestellt werden, wie beispielsweise einem Solid-State-Laufwerk (SSD) oder einem Dual-Inline-Speichermodul (DIMM), ohne darauf beschränkt zu sein. In einigen Beispielen können mehrere Speichervorrichtungen oder Chips in Gruppen von Chips enthalten sein, die als „Package“ bezeichnet werden können. Für diese Beispiele können mehrere Packages über einen einzelnen Daten- oder DQ-Kanal mit der ASIC gekoppelt sein. In einigen SSD-Lösungen oder -Implementierungen können auch mehrere DQ-Kanäle (z. B. 4 bis 10 oder mehr) vorhanden sein. Typischerweise kann eine interne Widerstands-Terminierung (RTT) an jeder in einem Package enthaltenen Speichervorrichtung oder jedem Chip verwendet werden, um das Rauschen aufgrund von Reflexion zu reduzieren und die Signalintegrität für Packages zu verbessern, die über DQ-Kanäle mit der ASIC gekoppelt sind. Aktuelle RTT-Anforderungen werden normalerweise erfüllt, indem mehrere ODT-Pins pro DQ-Kanal verwendet werden, um RTT an jeder Speichervorrichtung zu aktivieren. Dies führt dazu, dass 10 ODT-Pins auf einer ASIC benötigt werden, die als Steuerung für diese SSD-Lösungen dient. Die Notwendigkeit von 10 Pins kann sich negativ auf die Kosten für diese Art von SSD-Lösungen auswirken und kann auch einen Formfaktor für die ASIC negativ einschränken.
  • 1 veranschaulicht ein Beispielsystem 100. In einigen Beispielen, wie in 1 gezeigt, weist das System 100 eine Steuerung 110 auf, die mit mehreren Speichervorrichtungen 120 gekoppelt ist, die in mehreren Packages 105 enthalten sind. In einigen Beispielen kann das System 100 eine Speicherungsvorrichtung sein, wie beispielsweise eine SSD, ist aber nicht darauf beschränkt. Wie hierin offenbart, kann die Bezugnahme auf eine Speichervorrichtung oder Speichervorrichtungen wie die Speichervorrichtungen 120 einen oder mehrere verschiedene Speichertypen umfassen. Speichervorrichtungen, wie hierin beschrieben, können sich auf nichtflüchtige oder flüchtige Speichertypen beziehen. Einige nichtflüchtige Speichertypen können blockadressierbar sein, wie z. B. NAND- oder NOR-Technologien. Andere nichtflüchtige Speichertypen können byte- oder blockadressierbare Typen von nichtflüchtigen Speichern mit einer dreidimensionalen (3-D) Kreuzpunktspeicherstruktur sein, die Chalkogenid-Phasenwechselmaterial (z. B. Chalkogenid-Glas)) enthält, aber nicht darauf beschränkt ist, hierin im Folgenden als „3-D-Kreuzpunktspeicher“ bezeichnet. Nichtflüchtige Speichertypen können auch andere Arten von byte- oder blockadressierbaren nichtflüchtigen Speichern umfassen, wie, ohne darauf beschränkt zu sein, NAND-Flash-Speicher mit mehreren Schwellenwerten, NOR-Flash-Speicher, einphasige oder mehrstufige Phasenwechselspeicher (PCM), Widerstandsspeicher, Nanodrahtspeicher, ferroelektrischer Transistor-Direktzugriffsspeicher (FeTRAM), antiferroelektrischer Speicher, Widerstandsspeicher mit einer Metalloxidbasis, einer Sauerstoffleerstellenbasis und ein leitender Brücken-Direktzugriffsspeicher (CB-RAM), ein spintronischer Magnetübergangspeicher, einen MTJ-Speicher (Magnetischer Tunnelübergang/Magnetic Tunneling Junction), ein DW (Domain Wall)- und ein SOT-Speicher (Spin Orbit Transfer), ein Speicher auf Thyristorbasis, ein magnetoresistiver Direktzugriffsspeicher (MRAM) mit Memristortechnologie, Spin-Transfer-Torque-MRAM (STT-MRAM) oder eine Kombination der oben genannten.
  • Beschreibungen hierin, die sich auf ein „RAM“ oder eine „RAM-Vorrichtung“ beziehen, können auf jede Speichervorrichtung angewendet werden, die einen wahlfreien Zugriff ermöglicht, egal ob flüchtig oder nicht flüchtig. Beschreibungen, die sich auf einen dynamischen Direktzugriffsspeicher (DRAM) oder einen synchronen DRAM (SDRAM), eine DRAM-Vorrichtung oder eine SDRAM-Vorrichtung beziehen, können sich auf eine flüchtige Direktzugriffsspeichervorrichtung beziehen. Die Speichervorrichtung, der SDRAM oder der DRAM können sich auf den Chip selbst, auf ein Speicherpackage-Produkt, das einen oder mehrere Chips aufweist, oder auf beides beziehen. In einigen Beispielen kann ein System mit flüchtigem Speicher, das aktualisiert werden muss, auch wenigstens einen nichtflüchtigen Speicher aufweisen, um wenigstens ein Mindestmaß an Speicherpersistenz zu unterstützen.
  • Die Steuerung 110, wie in 1 gezeigt, kann eine Steuerung veranschaulichen, um auf Speichervorrichtungen 120, die auf Packages 105 angeordnet sind, zuzugreifen. In einigen Beispielen kann das System 100 eine Speicherungsvorrichtung sein und die Steuerung 110 kann eine ASIC sein, die für eine spezifische Lösung entworfen ist, um auf Speichervorrichtungen 120 zuzugreifen. Zum Beispiel eine Speicherungsunternehmenslösung für eine SSD, die in einer Rechenzentrumsumgebung bereitgestellt wird. Die Schaltung 112 der Steuerung 110 kann auch Logik und/oder Merkmale unterstützen, um Speicherzugriffsbefehle als Antwort auf Zugriffsanforderungen an Speichervorrichtungen 120 (z. B. von einem Prozessor einer Host-Computerplattform, die das System 100 hosten kann) zu erzeugen. In einigen Beispielen kann die Steuerung 110 auf eine oder mehrere Speichervorrichtungen 120 zugreifen. Gruppen von Speichervorrichtungen 120, die sich auf getrennten Packages 105 befinden, können über verschiedene Kanäle organisiert und verwaltet werden, wobei diese Kanäle über Busse und Signalleitungen parallel zur Steuerung 110 gekoppelt werden können. Jeder Kanal kann unabhängig voneinander betrieben werden. Somit kann auf separate Kanäle unabhängig zugegriffen und gesteuert werden, und das Timing, die Datenübertragung, der Befehls- und Adressaustausch und andere Operationen können für jeden Kanal getrennt sein. Die Kopplung kann sich auf eine elektrische Kopplung, eine kommunikative Kopplung, eine physische Kopplung oder eine Kombination davon beziehen. Die physische Kopplung kann direkten Kontakt beinhalten. Die elektrische Kopplung weist beispielsweise eine Schnittstelle oder Verbindung auf, die einen elektrischen Fluss zwischen Komponenten oder eine Signalisierung zwischen Komponenten oder beides ermöglicht. Die kommunikative Kopplung umfasst beispielsweise Verbindungen, einschließlich drahtgebundene oder drahtlose Verbindungen, über die Komponenten Daten austauschen können.
  • Gemäß einigen Beispielen enthält die Steuerung 110 eine E/A-Schnittstellenschaltung 114 zum Koppeln mit einem Speicherbus, wie beispielsweise einem Speicherkanal, wie oben erwähnt. Die E/A-Schnittstellenschaltung 114 (sowie die E/A-Schnittstellenschaltung 122 der Speichervorrichtungen 1120) können Stifte, Pads, Verbinder, Signalleitungen, Leiterbahnen oder Drähte oder andere oder eine Kombination davon Hardware zum Verbinden der Vorrichtungen aufweisen. Die E/A-Schnittstellenschaltung 114 kann eine Hardwareschnittstelle aufweisen. Wie in 1 gezeigt, weist die E/A-Schnittstellenschaltung 114 wenigstens Treiber/Transceiver für Signalleitungen auf. Üblicherweise sind Drähte innerhalb einer Schnittstelle für integrierte Schaltkreise mit einem Pad, Pin oder Verbinder gekoppelt, um Signalleitungen oder -bahnen oder andere Drähte zwischen Vorrichtungen zu verbinden. Die E/A-Schnittstellenschaltung 114 kann Treiber, Empfänger, Transceiver oder Terminierungen oder andere Schaltungen oder Kombinationen von Schaltungen zum Austauschen von Signalen auf den Signalleitungen zwischen der Steuerung 110 und Gruppen von Speichervorrichtungen 120 aufweisen, die sich auf getrennten Packages 105 befinden. Der Austausch von Signalen umfasst wenigstens entweder Senden oder Empfangen. Während dies als Verbinden von E/A-Schnittstellenschaltung 114 von der Steuerung 110 mit E/A Schnittstellenschaltung 122 der Speichervorrichtung 120 dargestellt ist, versteht es sich von selbst, dass in einer Implementierung des Systems 100, in der auf Gruppen von Speichervorrichtungen 120 parallel zugegriffen wird, mehrere Speichervorrichtungen 120 in mehreren Packages 105 E/A-Schnittstellenschaltungen zu derselben Schnittstelle der Steuerung 110 aufweisen.
  • In einigen Beispielen kann die Steuerung 110 über mehrere Signalleitungen mit Speichervorrichtungen 120 gekoppelt sein. Die mehreren Signalleitungen können wenigstens einen Takt (CLK) 132, einen Befehl/eine Adresse (CMD) 134 und Schreibdaten (DQ) und Lesedaten (DQ) 136 sowie null oder mehrere andere Signalleitungen 138 aufweisen. Beispielsweise kann eine Zusammensetzung von Signalleitungen, welche die Speichersteuerung 110 mit (einer) Speichervorrichtung(en) 120 koppeln, zusammen als Speicherbus bezeichnet werden. Die Signalleitungen für CMD 134 können als ein „Befehlsbus“, ein „C/A-Bus“ oder ein ADD/CMD-Bus oder mit einer anderen Bezeichnung, welche die Übertragung von Befehlen anzeigt, bezeichnet werden. Die Signalleitungen für DQ 136 können als ein „Datenbus“ bezeichnet werden.
  • Gemäß einigen Beispielen können unabhängige Kanäle unterschiedliche Taktsignale, Befehlsbusse, Datenbusse und andere Signalleitungen aufweisen. Für diese Beispiele kann davon ausgegangen werden, dass das System 100 mehrere „Busse“ aufweist, in dem Sinne, dass ein unabhängiger Schnittstellenpfad als separater Bus betrachtet werden kann. Es versteht sich von selbst, dass zusätzlich zu den in 1 gezeigten Signalleitungen ein Bus auch wenigstens eine von Strobe-Signalleitungen, Alarmleitungen, Hilfsleitungen oder anderen Signalleitungen oder eine Kombination dieser zusätzlichen Signalleitungen aufweisen kann. Es versteht sich auch von selbst, dass serielle Bus-technologien zum Übertragen von Signalen zwischen der Steuerung 110 und den Speichervorrichtungen 120 verwendet werden können. Ein Beispiel einer seriellen Bustechnologie ist das von 8B10B Codieren und Übertragen von Hochgeschwindigkeitsdaten mit eingebettetem Takt über ein einzelnes differentielles Signalpaar in jeder Richtung. In einigen Beispielen stellt CMD 134 Signalleitungen dar, die parallel mit mehreren Speichervorrichtungen 120 geteilt werden, die sich auf einem gegebenen Package 105 befinden. Zum Beispiel Signalleitungen, die parallel mit Speichervorrichtungen 120-1 bis 120-n von Package 105-1 geteilt werden, wobei „n“ eine ganzzahlige positive ganze Zahl > 3 ist. In anderen Beispielen teilen sich die Speichervorrichtungen 120 eines gegebenen Packages 105 Codierungsbefehlssignalleitungen von CMD 134 und jede Speichervorrichtung kann eine separate Chip-Auswahl (CS#)-Signalleitung zur Auswahl aufweisen, um einzelne Speichervorrichtungen 120 für das gegebene Package 105 auszuwählen.
  • In einigen Beispielen umfasst der Bus zwischen der Steuerung 110 und den Speichervorrichtungen 120 einen Nebenbefehlsbus, der über in CMD 134 enthaltene Signalleitungen geleitet wird, und einen Nebendatenbus, um die Schreib- und Lesedaten zu übertragen, die über in DQ 136 enthaltene Signalleitungen geleitet werden. In einigen Beispielen können CMD 134 und DQ 136 separat bidirektionale Leitungen aufweisen. In anderen Beispielen kann DQ 136 unidirektionale Schreibsignalleitungen zum Schreiben von Daten in die Speichervorrichtungen 120 und unidirektionale Leitungen zum Lesen von Daten von den Speichervorrichtungen 120 aufweisen.
  • Gemäß einigen Beispielen können gemäß einer ausgewählten Speichertechnologie und einem ausgewählten Systemdesign Signalleitungen, die in anderen Signalleitungen 138 umfasst sind, einen Speicherbus oder einen Nebenbus erweitern, zum Beispiel Strobe-Line-Signalleitungen für ein DQS. Basierend auf einem Entwurf des Systems 100 oder einer Speichertechnologieimplementierung kann ein Speicherbus mehr oder weniger Bandbreite pro Speichervorrichtung, die in Speichervorrichtungen 120 umfasst ist, aufweisen. Der Speicherbus kann Speichervorrichtungen, die in den Speichervorrichtungen 120 umfasst sind, unterstützen, die entweder eine x32-Schnittstelle, eine x16-Schnittstelle, eine x8-Schnittstelle oder eine andere Schnittstelle haben. Die Konvention „xW“, wobei W eine ganze Zahl ist, bezieht sich auf eine Schnittstellengröße oder -breite der Schnittstelle der Speichervorrichtungen 120, die eine Anzahl von Signalleitungen darstellt, um Daten mit der Steuerung 110 auszutauschen. Die Schnittstellengröße dieser Speichervorrichtungen kann ein steuernder Faktor dafür sein, wie viele Speichervorrichtungen gleichzeitig pro Kanal in System 100 verwendet oder parallel zu denselben Signalleitungen gekoppelt werden können. In einigen Beispielen können Speichervorrichtungen mit hoher Bandbreite, Speichervorrichtungen mit breiter Schnittstelle oder gestapelte Speichervorrichtungen oder Kombinationen davon breitere Schnittstellen ermöglichen, wie z. B. eine x128-Schnittstelle, eine x256-Schnittstelle, eine x512-Schnittstelle, eine x1024-Schnittstelle oder andere Datenbusschnittstellenbreiten.
  • In einigen Beispielen tauschen die Speichervorrichtungen 120 und die Steuerung 110 Daten über einen Datenbus mittels Signalleitungen aus, die in DQ 136 in einem Burst oder in einer Folge aufeinanderfolgender Datenübertragungen enthalten sind. Der Burst entspricht einer Anzahl von Übertragungszyklen, die sich auf eine Busfrequenz beziehen. Ein gegebener Übertragungszyklus kann ein ganzer Taktzyklus für Übertragungen sein, die auf derselben Takt- oder Strobe-Signalflanke (z. B. auf der ansteigenden Flanke) auftreten. In einigen Beispielen kann jeder Taktzyklus, der sich auf einen Zyklus des Systemtakts bezieht, in mehrere Einheitsintervalle (UIs) unterteilt werden, wobei jedes UI ein Übertragungszyklus ist. Beispielsweise werden Übertragungen mit doppelter Datenrate an beiden Flanken des Taktsignals ausgelöst (z. B. steigend und fallend). Ein Burst kann für eine konfigurierte Anzahl von UIs dauern. Dies kann eine Konfiguration sein, die in einem Register gespeichert oder im laufenden Betrieb ausgelöst wird. Beispielsweise kann eine Folge von acht aufeinanderfolgenden Übertragungsperioden als eine Burst-Länge 8 (BL8) betrachtet werden und jede Speichervorrichtung 120 kann Daten auf jeder UI übertragen. Somit kann eine auf BL8 arbeitende x8-Speichervorrichtung 64 Datenbits übertragen (8 Datensignalleitungen mal 8 Datenbits, die pro Zeile über den Burst übertragen werden). Es versteht sich von selbst, dass dieses einfache Beispiel nur eine Veranschaulichung darstellt und nicht als einschränkend zu sehen ist.
  • Gemäß einigen Beispielen stellen Speichervorrichtungen 120 Speicherressourcen für das System 100 dar. Für diese Beispiele kann jede Speichervorrichtung von Speichervorrichtungen 120 einen separaten Speicherchip darstellen. Gruppen von Speicherchips können in separaten Packages 105 umfasst sein. Eine gegebene Speichervorrichtung der Speichervorrichtungen 120 kann eine E/A-Schnittstellenschaltung 122 aufweisen und kann eine Bandbreite haben, die durch eine Schnittstellenbreite bestimmt wird, die einer Implementierung oder Konfiguration der gegebenen Speichervorrichtung zugeordnet ist (zB x16 oder x8 oder eine andere Schnittstellenbandbreite). Die E/A-Schnittstellenschaltung 122 kann es der Speichervorrichtung ermöglichen, eine Schnittstelle mit der Steuerung 110 herzustellen. Die E/A-Schnittstellenschaltung 122 kann eine Hardwareschnittstelle aufweisen und in Abstimmung mit der E/A-Schnittstellenschaltung 114 der Steuerung 110 arbeiten.
  • In einigen Beispielen können die Speichervorrichtungen 120 und die Packages 105 in ein gleiches, größeres Package wie die Steuerung 110 eingebaut sein. Beispielsweise kann in einem Multi-Chip-Modul (MCM) ein Package-auf-Package mit Silizium-Durchkontaktierungen (TSV) oder anderen Techniken oder Kombinationen eingebaut sein. Es versteht sich von selbst, dass für diese und andere Beispiele die Steuerung 110 auch Teil eines Prozessors sein oder in diesen integriert sein kann.
  • Gemäß einigen Beispielen, wie in 1 gezeigt, kann die Speichervorrichtung 120 ein oder mehrere Register 124 aufweisen. Die Register 124 können eine oder mehrere Speicherungsvorrichtungen oder Speicherungsorte darstellen, die eine Konfiguration oder Einstellungen für die Konfiguration und/oder den Betrieb der Speichervorrichtung 120 bereitstellen. In einem Beispiel kann/können Register 124 einen Speicherungsort für Speichervorrichtungen 120 bereitstellen, um Daten für den Zugriff durch die Steuerung 110 als Teil einer Steuerungs- oder Verwaltungsoperation zu speichern. Beispielsweise kann/können das/die Register 124 ein oder mehrere Modusregister (MRs) und/oder ein oder mehrere Mehrzweckregister aufweisen.
  • In einigen Beispielen kann das Schreiben in eines oder mehrerer Register der Register 124 oder Programmieren eines oder mehrerer Register der Register 124 Speichervorrichtungen 120 so konfigurieren, dass sie in verschiedenen „Modi“ arbeiten. Für diese Beispiele können Befehlsinformationen, die in das eine oder die mehreren Register geschrieben oder in dieses/diese programmiert sind, unterschiedliche Modi innerhalb der Speichervorrichtungen 120 auslösen. Zusätzlich oder alternativ können unterschiedliche Modi auch unterschiedliche Operationen von Adressinformationen oder anderen Signalleitungen abhängig vom Modus auslösen. Programmierte Einstellungen des/der Register(s) 124 können die Konfiguration der E/A-Einstellungen anzeigen oder auslösen, zum Beispiel Konfiguration von Timing, Terminierung, On-Die-Terminierung (ODT), Treiberkonfiguration oder anderen E/A-Einstellungen. Wie nachstehend ausführlicher beschrieben, kann die Schaltung 112 der Steuerung 110 die Modusregister (MR)-Programmlogik 115 ausführen, um ein oder mehrere Register 124 zum Einstellen oder Programmieren der ODT-Einstellungen 125 zu programmieren. Die Steuerschaltung 121 der Speichervorrichtungen 120 kann zum Zugriff auf ODT-Einstellungen 125 fähig sein, um ein befehlsbasiertes dynamisches ODT-Schema zu implementieren. Die Verwendung des befehlsbasierten dynamischen ODT-Schemas kann es der MR-Programmlogik 115 ermöglichen, das eine oder die mehreren Register 124 zum Programmieren der ODT-Einstellungen 125 zu programmieren und die Notwendigkeit von ODT-Pins in der E/A-Schnittstellenschaltung 114 zum Aktivieren der ODT-Einstellungen an den Speichervorrichtungen 120 zu beseitigen. In einigen Beispielen können 10 und mehr ODT-Pins von der E/A-Schnittstellenschaltung 114 der Steuerung 110 entfernt werden, wenn ein befehlsbasiertes dynamisches ODT-Schema implementiert wird. ODT-Pins können auch von der E/A-Schnittstellenschaltung 122 der Speichervorrichtungen 120 entfernt werden, jedoch in einigen Beispielen können ODT-Pins verbleiben, damit die Speichervorrichtungen 120 weiterhin mit älteren Steuerungen arbeiten können, die weiterhin ODT-Pins zum Aktivieren der ODT-Einstellungen verwenden.
  • Gemäß einigen Beispielen weisen die Speichervorrichtungen 120 ODT 126 als Teil der Schnittstellenhardware, die der E/A-Schnittstellenschaltung 122 zugeordnet ist, auf. ODT 126 kann Einstellungen für die Impedanz bereitstellen, die an die Schnittstelle an bestimmte Signalleitungen angelegt werden soll. Beispielsweise kann ODT 126 konfiguriert sein, um Impedanz auf Signalleitungen anzuwenden, die in DQ 136 oder CMD 134 umfasst sind. Die ODT-Einstellungen für ODT 126 können basierend auf dem oben erwähnten befehlsbasierten dynamischen ODT-Schema geändert werden. Wie weiter unten umfassender beschrieben, kann das befehlsbasierte dynamische ODT-Schema auf der Art des Speicherzugriffs (z. B. Lesen oder Schreiben) und der Nähe einer terminierenden Speichervorrichtung, die sich in einem bestimmten Package befindet, zu der aufgerufenen Speichervorrichtung, die sich möglicherweise auf demselben oder einem anderen Package befindet, basieren. Die in den ODT-Einstellungen 125 für ODT 126 angegebenen ODT-Einstellungen können das Timing und die Reflexionen der Signalisierung auf terminierten Signalleitungen beeinflussen, die beispielsweise in CMD 134 oder DQ 136 umfasst sind. Das Bestimmen, welche ODT-Einstellungen 125 zum Einstellen des ODT 126 verwendet werden sollen, kann einen Betrieb mit höherer Geschwindigkeit mit einer verbesserten Anpassung der angelegten Impedanz und Belastung ermöglichen. Impedanz und Belastung können auf bestimmte Signalleitungen der E/A-Schnittstellenschaltung 122 (z. B. CMD 134 und DQ 136) angewendet werden und werden nicht unbedingt auf alle Signalleitungen angewendet.
  • In einigen Beispielen, wie in 1 gezeigt, weisen die Speichervorrichtungen 120 eine Steuerschaltung 121 auf. Die Steuerschaltung 121 kann Logik in Speichervorrichtungen 120 ausführen, um interne Operationen in Speichervorrichtungen 120 zu steuern. Beispielsweise decodiert die Steuerschaltung 121 Befehle, die von der Steuerung 110 gesendet werden, und erzeugt interne Operationen, um die Befehle auszuführen oder zu erfüllen. Die Steuerschaltung 121 kann als interne Steuerung bezeichnet werden und ist von der Steuerung 1110 getrennt. Die Steuerschaltung 121 kann Logik und/oder Merkmale enthalten, um zu bestimmen, welcher Modus basierend auf programmierten oder Standardeinstellungen ausgewählt wird, die in dem/den Register(n) 124 angegeben sind, und die interne Ausführung von Operationen für den Zugriff auf eine gegebene Speichervorrichtung 120 oder andere Operationen basierend auf dem ausgewählten Modus zu konfigurieren. Die Steuerschaltung 121 erzeugt Steuersignale, um das Weiterleiten von Bits innerhalb von Speichervorrichtungen 120 zu steuern, um eine geeignete Schnittstelle für den ausgewählten Modus bereitzustellen und einen Befehl an die richtigen Speicherorte oder -adressen von physischen Speicherressourcen zu leiten, die in der gegebenen Speichervorrichtung 120 umfasst sind.
  • Unter erneuter Bezugnahme auf die Steuerung 110 weist die Steuerung 110 eine Schaltung 112 auf, die Logik und/oder Merkmale zum Erzeugen von Befehlen zum Senden an Speichervorrichtungen 120 ausführen kann. Die Erzeugung der Befehle kann sich auf den Befehl vor dem Planen oder das Vorbereiten von Befehlen in der Warteschlange, die bereit sind, gesendet zu werden, beziehen. Im Allgemeinen weist das Signalisieren in Speichersubsystemen Adressinformationen innerhalb oder in Begleitung des Befehls auf, um einen oder mehrere Speicherorte, an denen Speichervorrichtungen 120 den Befehl ausführen sollen, anzuzeigen oder auszuwählen. In Reaktion auf das Planen von Transaktionen für Speichervorrichtungen 120 kann die Steuerung 110 Befehle über die E/A-Schnittstellenschaltung 114 ausgeben, um zu bewirken, dass Speichervorrichtungen 120 die Befehle ausführen. In einigen Beispielen empfängt und decodiert die Steuerschaltung 121 der Speichervorrichtungen 120 Befehls- und Adressinformationen, die über die E/A-Schnittstellenschaltung 122 von der Steuerung 110 empfangen werden. Basierend auf den empfangenen Befehls- und Adressinformationen kann die Schaltung 112 den Zeitpunkt der Operationen der Logik, Merkmale und/oder Schaltungen innerhalb der Speichervorrichtungen 120 steuern, um die Befehle auszuführen.
  • 2 veranschaulicht eine beispielhafte Registertabelle 200. In einigen Beispielen, wie in 2 gezeigt, zeigt die Registertabelle 200 ODT-Typen und -Einstellungen für ein 16-Bit-Register an. Das 16-Bit-Register kann beispielsweise in dem/den Register(n) 124 der Speichervorrichtungen 120 umfasst sein. Die MR-Programmlogik 115 kann in der Lage sein, Bits [4:1], um Rtt_nom einzustellen, Bits [8:5], um Rtt_Wr einzustellen, Bits [12:9], um Rtt_park einzustellen, Bit [13], um anzuzeigen, ob Matrix-ODT aktiviert ist (z. B. um die dynamische ODT-Auswahl basierend auf der Nähe zu aktivieren), und Bit [14], um anzuzeigen, ob der dynamische Modus aktiviert ist, einzustellen oder zu programmieren.
  • In einigen Beispielen kann eine Matrix-ODT aktiviert werden, basierend auf der Festlegung, wie eine terminierende Speichervorrichtung oder ein Chip ihre jeweilige ODT-Einstellung während des Zugriffs (z. B. während einer Schreiboperation) auf eine andere Speichervorrichtung einstellen soll. In diesen Beispielen kann die Nähe der terminierenden Speichervorrichtung zur aufgerufenen Speichervorrichtung dazu führen, dass die terminierende Speichervorrichtung aus einer von wenigstens zwei separaten Matrix-ODT-Einstellungen auswählt. Gemäß einigen Beispielen, wie weiter unten beschrieben, können die wenigstens zwei separaten Matrix-ODT-Einstellungen auch durch die MR-Programmlogik 115 über ein in dem/den Register(n) 124 enthaltenen Register eingestellt oder programmiert werden. Beispiele sind nicht auf die angegebenen ODT-Einstellwerte beschränkt, die in der Registertabelle 200 angezeigt sind, die von 240 Ohm bis 30 Ohm reichen und eine ODT-deaktivierte Option enthalten. Diese ODT-Einstellungen werden als Beispiele für einen möglichen Bereich von ODT-Einstellungen und eine Deaktivierungsoption bereitgestellt.
  • Gemäß einigen Beispielen kann der dynamische Modus aktiviert werden, basierend auf der Festlegung, wie eine nicht terminierende Speichervorrichtung oder ein Chip ihre jeweilige ODT-Einstellung während eines Schreibzugriffs auf eine andere Speichervorrichtung einstellen soll. Wenn der dynamische Modus aktiviert ist, verwendet die nicht terminierende Speichervorrichtung die in Bit [12:9] angegebene ODT-Einstellung Rtt_park. Wenn der dynamische Modus nicht aktiviert ist, verwendet die nicht terminierende Speichervorrichtung eine Hi_z (maximale Impedanz)-ODT-Einstellung.
  • 3 veranschaulicht eine beispielhafte Registertabelle 300. In einigen Beispielen, wie in 3 gezeigt, zeigt die Registertabelle 300 ODT-Typen und -Einstellungen für ein 8-Bit-Register an. Das 8-Bit-Register kann beispielsweise in dem/den Register(n) 124 der Speichervorrichtungen 20 umfasst sein. Die MR-Programmlogik 115 kann in der Lage sein, Bits [3:0], um Rtt_matrix1 einzustellen, und Bits [7:4], um Rtt_matrix2 einzustellen, einzustellen oder zu programmieren. Wie weiter unten beschrieben, kann Rtt_matrix1 verwendet werden, wenn sich eine terminierende Speichervorrichtung in derselben Gruppe befindet, auf die während eines Schreibvorgangs zugegriffen wird, und Rtt_matrix2 kann verwendet werden, wenn sich die terminierende Speichervorrichtung in einer anderen Gruppe befindet als die Speichervorrichtung, auf die zugegriffen wird. Beispiele sind nicht auf die in der Registertabelle 200 angegebenen ODT-Einstellwerte beschränkt, die von 240 Ohm bis 30 Ohm reichen und eine ODT-deaktivierte Option enthalten. Diese ODT-Einstellungen werden als Beispiele für einen möglichen Bereich von ODT-Einstellungen und eine Deaktivierungsoption bereitgestellt. Beispiele sind nicht nur auf zwei Matrix-ODT-Einstellungen beschränkt. In einigen Beispielen können ein oder mehrere Register eingestellt werden, um mehr als zwei Matrix-ODT-Einstellungen anzuzeigen.
  • 4 veranschaulicht eine beispielhafte Registertabelle 400. In einigen Beispielen, wie in 4 gezeigt, kann Registertabelle 400, ein 8-Bit-Register, eine Gruppierung von Speichervorrichtungen in 4 Gruppen mit SelectIDs von 0, 1, 2 und 3 anzeigen. Für diese Beispiele kann SelectID für eine gegebene Gruppe in Bits [4: 3] eines Befehls, der adressiert ist, um auf ein Speichervorrichtung zuzugreifen, die entweder auf einen Lese- oder einen Schreibbefehl reagiert, angegeben werden. Gemäß einigen Beispielen können die 4 Gruppen, die in der Registertabelle 300 angegeben sind, mit einer Steuerung an denselben DQ-Kanal gekoppelt werden. Beispielsweise können die Packages 105-1, 105-2, 105-3 und 105-n über einen über DQ 136 gerouteten DQ-Kanal mit der Steuerung 110 gekoppelt werden. In diesem Beispiel kann jedes Package eine terminierende Speichervorrichtung oder einen terminierenden Chip aufweisen, der eine Terminierung für sein jeweiliges Package während eines Zugriffs auf eine Speichervorrichtung 120 bereitstellt. Beispielsweise kann die Speichervorrichtung 120-n für jedes Package 105 als terminierende Speichervorrichtung für das jeweilige Package dienen. Beispiele sind nicht auf 4 Gruppen beschränkt. Mehr oder weniger Gruppen sind in dieser Offenbarung angedacht.
  • Gemäß einigen Beispielen kann die MR-Programmlogik 115 der Steuerung 110 die Bits 0-7 einer terminierenden Speichervorrichtung basierend auf relativen physischen Positionen der terminierenden Speichervorrichtung in Bezug auf eine gegebene Gruppe, auf die zugegriffen wird, und basierend auf einem Typ des Zugangs setzen oder programmieren. Beispielsweise kann die Speichervorrichtung 120-n die terminierende Speichervorrichtung für Package 105-1 sein, die eine SelectID = 0 hat. Die MR-Programmlogik 115 muss keine Bits [1:0] programmieren, da diese Bits den Zugriff auf dieselbe Gruppe wie Speichervorrichtung 120-n darstellen, und die Speichervorrichtung 120-n kann trainiert sein, eine ODT-Einstellung von Hi_z (maximale Impedanz) für einen Lesebefehl oder eine Matrix-ODT-Einstellung von Rtt_Mt1 für einen Schreibbefehl zur Gruppe 0 zu verwenden. Die Verwendung von Rtt_Mt1 würde die Speichervorrichtung 120-n auffordern, sich auf die ODT-Einstellung zu beziehen, die in den Registern 124-1 für Rtt_Mt1 vorgebehalten wird (z. B. Bits [3:0], wie in der Registertabelle 300 gezeigt).
  • In einigen Beispielen können für einen Lesebefehl die Bits [2], [4] und [6] separat von der MR-Programmlogik 115 gesetzt oder programmiert werden, um anzuzeigen, ob Rtt_nom oder Rtt_park basierend auf die relative Position der Gruppe 0 als benachbart oder nahe (Verwendung von Rtt nom) oder nicht benachbart oder fern (Verwendung von Rtt_park) von der Gruppe, auf die zugegriffen wird, verwendet werden soll. Wenn sich beispielsweise Gruppe 0 in der Nähe von Gruppe 1 befindet, wird Bit [2] für die Speichervorrichtung 120-n auf Rtt_nom gesetzt, und die Speichervorrichtung 120-n bezieht sich dann auf die ODT-Einstellung, die in den Registern 124-1 für Rtt_nom (z. B. Bits [4:1], wie in der Registertabelle 200 gezeigt) bereitgehalten wird. Wenn sich Gruppe 0 weit entfernt von Gruppe 2 und 3 befand, würden die Bits [4] und [6] für die Speichervorrichtung 120-n auf Rtt_park gesetzt und die Speichervorrichtung 120-n würde sich dann auf die ODT-Einstellung beziehen, die in den Registern 124-1 für Rtt_park bereitgehalten wird (z. B. Bits [12:9], wie in Registertabelle 200 gezeigt).
  • Gemäß einigen Beispielen können für einen Schreibbefehl die Bits [3], [5] und [7] separat durch die MR-Programmlogik 115 gesetzt oder programmiert werden, um die Verwendung einer Matrix-ODT-Einstellung von Rtt_Mt2 anzuzeigen. Für diese Beispiele wird Rtt_Mt2 für diese Bits gesetzt, da der Zugriff auf eine andere Gruppe als Gruppe 0 die Speichervorrichtung 120-n auffordern würde, auf die ODT-Einstellung zu verweisen, die in den Registern 124-1 für Rtt_Mt2 verwaltet wird (z. B. Bits [7:4] wie in der Registertabelle 300 gezeigt).
  • 5 veranschaulicht ein Beispielsystem 500. In einigen Beispielen, wie in 5 gezeigt, umfasst das System 500 die Packages 520, 530, 540 und 550, die über denselben Kanal DQ [7:0] 512 mit einer Steuerung 510 verbunden sind, der ein Chipauswahl (CS)-Signal über CS [#] 514 verwendet, um anzuzeigen, auf welche Speichervorrichtung zugegriffen werden soll. Für diese Beispiele kann die Steuerung 510 der in 1 gezeigten und oben beschriebenen Steuerung 110 ähnlich sein. Auch Packages 520, 530, 540 und 550 einschließlich der jeweiligen Speichervorrichtungen 522, 532, 542 und 552 können den Packages 105 ähnlich sein, welche die in 1 gezeigten und oben beschriebenen Speichervorrichtungen 120 aufweisen.
  • Gemäß einigen Beispielen kann ein Terminator oder eine terminierende Speichervorrichtung für jedes Package die Speichervorrichtung 522-4 für das Package 520, die Speichervorrichtung 532-4 für das Package 530, die Speichervorrichtung 542-4 für das Package 540 und die Speichervorrichtung 552-4 für das Package 550 sein. Das Package 520 hat auch eine SelectID = 0, das Package 530 hat eine SelectID = 1, das Package 540 hat eine SelectID = 2 und das Package 550 hat eine SelectID = 3. Wie in 5 gezeigt, geben in einigen Beispielen die separaten ODT-Tabellen für die vier terminierenden Speichervorrichtungen eine Entscheidungsmatrix für diese terminierenden Speichervorrichtungen an, um individuell zu bestimmen, welche ODT-Einstellung basierend auf der SelectID des Packages, auf das zugegriffen wird, verwendet werden soll und ob der Zugriff auf einen Schreib- oder Lesebefehl reagiert. In diesen Beispielen durchläuft jede terminierende Speichervorrichtung ihre jeweilige Entscheidungsmatrix, um zu bestimmen, welche ODT-Einstellungen basierend auf dem Befehlstyp und der relativen Nähe zu einem Package, auf das zugegriffen wird, angewendet werden sollen.
  • In einem ersten Beispiel zeigt die ODT-Tabelle für die Speichervorrichtung 522-4 an, dass, wenn die SelectID 00XXX ist, dies anzeigt, dass sich die aufgerufene Speichervorrichtung in demselben Package oder derselben Gruppe wie die Speichervorrichtung 522-4 befindet und dass, wenn der Zugriff auf einen Schreibbefehl reagiert, die Speichervorrichtung 522-4 sich auf die Registerbits beziehen soll, die Rtt_matrix1 enthalten, um zu bestimmen, welche ODT-Einstellung angewendet werden soll, während sie als Terminator für eine Schreiboperation dient. Wenn der Zugriff auf einen Lesebefehl reagiert, kann die Speichervorrichtung 522-4 eine Hi_z-ODT-Einstellung anwenden.
  • In einem zweiten Beispiel zeigt, wenn die SelectID 01XXX ist, dies an, dass sich die Speichervorrichtung, auf die zugegriffen wird, auf einem anderen Package (Package 530) befindet, das sich in der Nähe oder neben dem Package 520 befindet, und dass, wenn der Zugriff ein Schreibvorgang ist, die Speichervorrichtung 522-4 sich auf die Registerbits, die Rtt_matrix2 enthalten, beziehen soll, um zu bestimmen, welche ODT-Einstellung angewendet werden soll. Wenn der Zugriff auf einen Lesebefehl reagiert, kann die Speichervorrichtung 522-4 sich auf die Registerbits beziehen, die Rtt_nom enthalten, um zu bestimmen, welche ODT-Einstellung angewendet werden soll.
  • In einem dritten Beispiel zeigt, wenn die SelectID, entweder 10XXX oder 11XXX ist, dies auch ein unterschiedliches Package an, aber diese Packages können so charakterisiert werden, dass sie sich nicht neben, sondern weit entfernt relativ zu Package 520 befinden. Gemäß der ODT-Tabelle für die Speichervorrichtung 522-4 für dieses dritte Beispiel soll, wenn der Zugriff ein Schreibzugriff ist, die Speichervorrichtung 522-4 auf die Registerbits verweisen, die Rtt_matrix2 enthalten, um zu bestimmen, welche ODT-Einstellung angewendet werden soll. Wenn der Zugriff auf einen Lesebefehl reagiert, kann die Speichervorrichtung 522-4 auf die Registerbits verweisen, die Rtt_park enthalten, um zu bestimmen, welche ODT-Einstellung angewendet werden soll. Die Verwendung von Rtt_park anstelle von Rtt_nom für dieses dritte Beispiel basiert darauf, dass die Packages 540 und 550 als weit entfernte Packages in Bezug auf ihre physischen Positionen relativ zu Package 520 charakterisiert werden.
  • Gemäß einigen Beispielen kann eine Postambel von einem nicht zielgerichteten terminierenden Chip angewendet werden, um die Taktzyklen (falls erforderlich) zu erhöhen, damit der nicht zielgerichtete terminierende Chip einen ausgewählten Terminierungswert hält. Die Postambel kann erforderlich sein, wenn Daten über mehrere Speichervorrichtungen hinweg verzögert werden, z. B. aufgrund von nicht übereinstimmenden Routings.
  • 6 veranschaulicht einen beispielhaften Logikfluss 600. In einigen Beispielen kann der Logikfluss 600 Aktionen durch eine Steuerschaltung einer Speichervorrichtung veranschaulichen, um ODT-Einstellungen zu bestimmen. Für diese Beispiele kann der Logikfluss 600 durch eine Steuerschaltung solcher Speichervorrichtungen wie der oben für die 1-4 erwähnten Speichervorrichtungen 120 oder solche Speichervorrichtungen 522, 532, 542 oder 552, die oben für 5 erwähnt werde, implementiert werden. Auch Register, die von diesen Speichervorrichtungen verwendet werden, können eingestellt oder programmiert werden, wie in den Registertabellen 200, 300 oder 400 angegeben, wie oben für die 2-4 erwähnt. Die Register können von einer Steuerung mit einer Modusregister-Programmlogik wie der MR-Programmlogik 115 der Steuerung 110 eingestellt oder programmiert werden. Beispiele sind nicht auf Speichervorrichtungen 120, 522, 532, 542 oder 552, die in den 1 und 5 umfasst sind, auf die ODT-Einstellungen oder ODT-Typen, die in den 2-4 gezeigt sind, oder auf Register, die von der MR-Programmlogik 115 programmiert oder eingestellt werden, beschränkt.
  • Ab Block 605 kann ein Befehl auf einem DQ-Kanal empfangen werden, der mit mehreren Packages gekoppelt ist, die ihrerseits jeweils mehrere Speichervorrichtungen aufweisen.
  • Beim Übergang vom Block 605 zum Entscheidungsblock 610 kann eine Speichervorrichtung bestimmen, ob die Matrix-ODT aktiviert wurde. In einigen Beispielen kann die Steuerschaltung der Speichervorrichtung ein Bit eines Registers wie Bit [13] des in der Registertabelle 200 gezeigten 16-Bit-Registers auslesen, um zu sehen, ob die Matrix-ODT aktiviert wurde. Wenn Bit [13] anzeigt, dass die Matrix-ODT nicht aktiviert wurde, bewegt sich der Logikfluss 600 zu Block 615. Wenn Bit [13] anzeigt, dass die Matrix-ODT aktiviert ist, bewegt sich der Logikfluss 600 zum Entscheidungsblock 620.
  • Beim Übergang vom Entscheidungsblock 610 zum Block 615 verwendet die Speichervorrichtung ältere ODT-Modi. In einigen Beispielen können ältere ODT-Modi die Verwendung von ODT-Pins auf der Speichervorrichtung zum Empfangen von ODT-Aktivierungssignalen zum Aktivieren von ODT-Einstellungen von einer mit der Speichervorrichtung gekoppelten Steuerung umfassen.
  • Beim Übergang vom Entscheidungsblock 610 zum Entscheidungsblock 620 bestimmt die Speichervorrichtung, ob es die terminierende Speichervorrichtung eines Packages ist, das mehrere Speichervorrichtungen oder Chips aufweist. In einigen Beispielen kann die terminierende Vorrichtung jedes Packages zu dem Zeitpunkt vorbestimmt sein, zu dem Speichervorrichtungen physisch auf einem gegebenen Package platziert wurden. Wenn die Speichervorrichtung die vorbestimmte terminierende Speichervorrichtung ist, bewegt sich der Logikfluss 600 zum Entscheidungsblock 620. Andernfalls bewegt sich der Logikfluss 600 zum Entscheidungsblock 625.
  • Beim Übergang vom Entscheidungsblock 620 zum Entscheidungsblock 625 bestimmt die Speichervorrichtung, ob der Befehl ein Lesebefehl ist. In einigen Beispielen, wenn die Steuerschaltung der Speichervorrichtung feststellt, dass der Befehl kein Lesebefehl ist, wechselt der Logikfluss 600 zum Entscheidungsblock 635. Andernfalls bewegt sich der Logikfluss 600 zum Block 630 und die Steuerschaltung veranlasst die Speichervorrichtung, eine Hi_z-ODT-Einstellung während der Ausführung des Befehls zu verwenden.
  • Beim Übergang vom Entscheidungsblock 625 zum Entscheidungsblock 635 bestimmt die Speichervorrichtung, ob der Befehl ein Schreibbefehl ist (z. B. ein Array-Write, ein Force Write oder ein Modified Write). In einigen Beispielen bestimmt die Steuerschaltung der Speichervorrichtung, dass der Befehl kein Schreibbefehl ist, und der Logikfluss 600 bewegt sich zu Block 645 und die Steuerschaltung bewirkt, dass die Speichervorrichtung während der Ausführung des Befehls eine Hi_z-ODT-Einstellung verwendet, wie durch Block 630 angegeben. Andernfalls bewegt sich der Logikfluss 600 zum Entscheidungsblock 645.
  • Beim Übergang vom Entscheidungsblock 635 zum Entscheidungsblock 645 bestimmt die Speichervorrichtung, ob der dynamische Modus aktiviert ist. Gemäß einigen Beispielen kann die Steuerschaltung der Speichervorrichtung ein Bit eines Registers wie Bit [14] des in der Registertabelle 200 gezeigten 16-Bit-Registers auslesen, um zu sehen, ob der dynamische Modus aktiviert wurde. Wenn Bit [14] anzeigt, dass der dynamische Modus nicht aktiviert wurde, veranlasst die Steuerschaltung, dass das Speichervorrichtung eine Hi_z-ODT-Einstellung während einer Schreiboperation verwendet, wie durch Block 650 angezeigt. Andernfalls bewegt sich der Logikfluss 600 zu Block 655.
  • Beim Übergang vom Entscheidungsblock 645 zum Block 655 verwendet die terminierende Speichervorrichtung eine ODT-Einstellung zur Terminierung von Rtt_Wr. In einigen Beispielen kann die Steuerschaltung der Speichervorrichtung Bits eines Registers wie Bits [8:5] des in der Registertabelle 200 gezeigten 16-Bit-Registers auslesen, um einen Wert zu bestimmen, der für Rtt_Wr verwendet werden soll (z. B. 100 Ohm).
  • Zurück zum Entscheidungsblock 620 und übergehend zum Entscheidungsblock 660, bestimmt die terminierende Speichervorrichtung, ob der Befehl ein Lesebefehl ist und ob die im Lesebefehl angegebene SelectID mit einer SelectID für das Package, das die terminierende Speichervorrichtung aufweist, übereinstimmt. Gemäß einigen Beispielen bestimmt die Steuerschaltung der terminierenden Speichervorrichtung, dass die SelectID des Lesebefehls mit der SelectID übereinstimmt, und bewirkt, dass die Speichervorrichtung während eines Lesevorgangs eine Hi_z-ODT-Einstellung verwendet, wie für Block 665 gezeigt. Andernfalls bewegt sich der Logikfluss 600 zum Entscheidungsblock 670, wenn der Befehl entweder kein Lesebefehl ist oder eine SelectID hat, die nicht mit der SelectID des Packages der terminierenden Speichervorrichtung übereinstimmt.
  • Beim Übergang vom Entscheidungsblock 660 zum Entscheidungsblock 670 bestimmt die terminierende Speichervorrichtung, ob der Befehl ein Lesebefehl ist. Gemäß einigen Beispielen bestimmt die Steuerschaltung der terminierenden Speichervorrichtung, dass der Befehl ein Lesebefehl ist und der Logikfluss 600 zum Entscheidungsblock 675 bewegt wird. Andernfalls bewegt sich der Logikfluss 600 zum Entscheidungsblock 680.
  • Beim Übergang vom Entscheidungsblock 670 zum Block 675 wählt die terminierende Speichervorrichtung einen Typ einer ODT-Einstellung entweder für Rtt_nom oder Rtt_park aus. In einigen Beispielen kann die Steuerschaltung der terminierenden Speichervorrichtung ein Bit eines Registers wie das in der Registertabelle 200 gezeigte 8-Bit-Register auslesen, um zu bestimmen, welcher Typ von ODT-Einstellung verwendet werden soll. Für diese Beispiele kann die Steuerschaltung der terminierenden Speichervorrichtung ein Bit des 8-Bit-Registers lesen, das der SelectID entspricht, die dem Package, das die terminierende Speichervorrichtung aufweist, und einem Lesebefehl zugewiesen ist. Wenn sich beispielsweise die terminierende Speichervorrichtung in einem Package mit einer SelectID = 0 befand, kann die Steuerschaltung Bit [1] lesen, um zu bestimmen, welcher Typ von ODT-Einstellung verwendet werden soll. Abhängig von der Nähe der terminierenden Speichervorrichtung zur Speichervorrichtung, auf die zugegriffen wird, wurde Bit [1] möglicherweise auf den Wert „0“ (Rtt-nom), wenn sich die aufgerufene Speichervorrichtung in einem nahen-Package befand, oder auf den Wert „1“ (Rtt_park) gesetzt, wenn sich die Speichervorrichtung, auf die zugegriffen wurde, in einem fernen Package befand. Die Steuerschaltung der terminierenden Speichervorrichtung kann Bits eines Registers wie Bits [4:1] oder Bits [12:9] des in der Registertabelle 200 gezeigten 16-Bit-Registers lesen, um einen Wert zu bestimmen, der jeweils entsprechend für Rtt_nom oder Rtt_park verwendet werden soll.
  • Beim Übergang vom Entscheidungsblock 670 zum Entscheidungsblock 680 bestimmt die terminierende Speichervorrichtung, ob der Befehl ein Schreibbefehl ist (z. B. ein Array-Write, ein Force Write oder ein Modified Write). In einigen Beispielen bestimmt die Steuerschaltung der terminierenden Speichervorrichtung, dass der Befehl kein Schreibbefehl ist, und veranlasst die terminierende Speichervorrichtung, während der Ausführung des Befehls eine Hi_z-ODT-Einstellung zu verwenden, wie in Block 685 angegeben.
  • Beim Übergang vom Entscheidungsblock 680 zum Block 690 wählt die terminierende Speichervorrichtung einen Typ von ODT-Einstellung für Rtt_matrix1 oder Rtt_matrix2 basierend auf der im Befehl angegebenen SelectID aus. In einem ersten Beispiel wird Rtt_matrix1 ausgewählt, wenn die SelectID mit der SelectID für das Package übereinstimmt, das die terminierende Speichervorrichtung umfasst. Für dieses erste Beispiel kann die Steuerschaltung der terminierenden Speichervorrichtung Bits eines Registers wie Bits [3:0] des in der Registertabelle 300 gezeigten 8-Bit-Registers auslesen, um einen Wert zu bestimmen, der für Rtt_matrix1 verwendet werden soll. In einem zweiten Beispiel wird Rtt_matrix2 ausgewählt, wenn die SelectID nicht mit der SelectID für das Package übereinstimmt, das die terminierende Speichervorrichtung umfasst. Für dieses zweite Beispiel kann die Steuerschaltung der terminierenden Speichervorrichtung Bits eines Registers wie Bits [7:4] des in der Registertabelle 300 gezeigten 8-Bit-Registers auslesen, um einen Wert zu bestimmen, der für Rtt_matrix2 verwendet werden soll.
  • 7 veranschaulicht ein beispielhaftes Blockdiagramm für die Vorrichtung 700. Obwohl die in 7 gezeigte Vorrichtung 700 eine begrenzte Anzahl von Elementen in einer bestimmten Topologie aufweist, wird man zu schätzen wissen, dass die Vorrichtung 700 mehr oder weniger Elemente in alternativen Topologien aufweisen kann, wie dies eben für eine gegebene Implementierung gewünscht sein kann.
  • Gemäß einigen Beispielen kann die Vorrichtung 700 von der Schaltung 720 einer Steuerung wie der Schaltung 112 der Steuerung 110 unterstützt werden. Die Schaltung 720 kann so angeordnet sein, dass sie Logik oder ein oder mehrere durch Firmware implementierte Module, Komponenten oder Merkmale der Logik ausführt. Es ist anzumerken, dass „a“ und „b“ und „c“ und ähnliche Bezeichnungen, wie sie hier verwendet werden, Variablen sein sollen, die eine positive ganze Zahl darstellen. Wenn beispielsweise eine Implementierung einen Wert für a = 4 festlegt, kann ein vollständiger Satz von Software oder Firmware für Module, Komponenten der Logik 722-a die Logik 722-1, 722-2, 722-3 oder 722-4 umfassen. Die vorgestellten Beispiele sind in diesem Zusammenhang nicht beschränkt, und die verschiedenen Variablen, die durchgehend verwendet werden, können dieselben oder unterschiedliche ganzzahlige Werte darstellen. „Modul“, „Komponente“ oder „Merkmal“ kann auch Firmware enthalten, die auf computerlesbaren oder maschinenlesbaren Medien gespeichert ist, und obwohl Arten von Merkmalen in 7 als eigene Kästchen gezeigt sind, beschränkt dies diese Arten von Merkmalen nicht auf die Speicherung in unterschiedlichen computerlesbaren Medienkomponenten (z. B. ein eigener Speicher usw.) oder auf die Implementierung durch unterschiedliche Hardwarekomponenten (z. B. eigene anwendungsspezifische integrierte Schaltkreise (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs).
  • Gemäß einigen Beispielen kann die Schaltung 720 einen oder mehrere ASICs oder FPGAs umfassen und in einigen Beispielen kann wenigstens eine Logik 722-a als Hardwareelemente dieser ASICs oder FPGAs implementiert sein.
  • Gemäß einigen Beispielen, wie in 7 gezeigt, kann die Vorrichtung 700 eine E/A-Schnittstellenschaltung 705 zum Koppeln mit einer oder mehreren Speichervorrichtungen umfassen.
  • In einigen Beispielen kann die Vorrichtung 700 auch eine Programmlogik 722 aufweisen. Die Programmlogik 722 kann von der Schaltung 720 ausgeführt oder unterstützt werden, um ein erstes Register an einer ersten Speichervorrichtung über die E/A-Schnittstellenschaltung 705 zu programmieren, um das erste Register dazu zu veranlassen, mehrere ODT-Typen anzuzeigen, die ausgewählt werden sollen, wenn die erste Speichervorrichtung eine terminierende Speichervorrichtung für eine erste Gruppe von Speichervorrichtungen ist. Die mehreren ODT-Typen können darauf basieren, ob ein Lesebefehl oder ein Schreibbefehl von einer zweiten Speichervorrichtung, die in der ersten Gruppe von Speichervorrichtungen umfasst ist, oder von einer dritten Speichervorrichtung, die in einer zweiten Gruppe von Speichervorrichtungen umfasst ist, ausgeführt werden soll. Für diese Beispiele kann die Programmlogik 722 die Programmierung des ersten Registers auf Package-Layoutinformationen basieren, die über die Package-Layoutinformationen 710 empfangen werden, welche die relative Positionierung der ersten Speichervorrichtung im Vergleich zu der zweiten und dritten Speichervorrichtung anzeigen. Zum Beispiel, ob sich diese Speichervorrichtungen auf demselben oder einem anderen Package als die erste Speichervorrichtung befinden. Außerdem kann die RTT-Einstellung 726-b (z. B. in einer Nachschlagetabelle bereitgehalten) angeben, welche ODT-Typen in das erste Register an der ersten Speichervorrichtung programmiert werden sollen, wenigstens teilweise basierend auf den Package-Layoutinformationen. Die Registereinstellungen 730 können angeben, wie das erste Register programmiert ist, um die mehreren ODT-Typen anzuzeigen, die von der ersten Speichervorrichtung ausgewählt werden sollen.
  • Gemäß einigen Beispielen kann die Programmlogik 722 auch von der Schaltung 720 ausgeführt oder unterstützt werden, um ein zweites Register an der ersten Speichervorrichtung über die E/A-Schnittstellenschaltung zu programmieren, damit das zweite Register wenigstens zwei ODT-Typen mit getrennten ODT-Einstellungen anzeigt, die basierend darauf, ob ein Schreibbefehl von der zweiten Speichervorrichtung oder von der dritten Speichervorrichtung ausgeführt werden soll, anzuwenden sind. Die Programmlogik 722 kann die Programmierung des zweiten Registers auch auf den Package-Layoutinformationen aufsetzen, die über die Package-Layoutinformationen 705 empfangen werden. Die Registereinstellungen 740 können anzeigen, wie das zweite Register programmiert ist.
  • In einigen Beispielen kann die erste Gruppe von Speichervorrichtungen, die sich auf einem ersten Package befinden, eine erste Gruppenkennung zugewiesen haben, die zweite Gruppe von Speichervorrichtungen, die sich auf einem zweiten Package befindet, kann eine zweite Gruppenkennung zugewiesen haben. Eine vierte Speichervorrichtung kann in einer dritten Gruppe von Speichervorrichtungen umfasst sein, die sich in einem dritten Package befindet, dem eine dritte Gruppenkennung zugewiesen ist. Das erste und das zweite und das dritte Package können über denselben Datenbus mit der E/A-Schnittstellenschaltung 705 verbunden sein. Das zweite Package kann sich neben dem oder in der Nähe des ersten Package(s) befinden. In diesen Beispielen befindet sich das dritte Package nicht neben dem ersten Package. Die Programmlogik 722 kann auch von der Schaltung 720 ausgeführt oder unterstützt werden, um ein drittes Register an der ersten Speichervorrichtung zu programmieren, um eine erste ODT-Einstellung und eine zweite ODT-Einstellung anzuzeigen, um diese selektiv anzuwenden, wenn die erste Speichervorrichtung die terminierende Speichervorrichtung für die erste Gruppe von Speichervorrichtungen ist und der Befehl ein Lesebefehl ist. Die erste Speichervorrichtung soll die erste ODT-Einstellung, wenn sich der Lesebefehl auf die dritte Speichervorrichtung bezieht, oder die zweite ODT-Einstellung anwenden, wenn sich der Lesebefehl auf das vierte Speichervorrichtung bezieht. Die Programmlogik 722 kann die Programmierung des dritten Registers auch auf den Package-Layoutinformationen basieren, die über die Package-Layoutinformationen 710 empfangen werden. Die Registereinstellungen 750 können anzeigen, wie das dritte Register programmiert ist.
  • In einigen Beispielen kann die Programmlogik 722 auch das erste Register, das zweite Register oder das dritte Register programmieren, um eine Postambel-Zeit anzuzeigen, über die die erste Speichervorrichtung eine ausgewählte ODT-Einstellung anwenden soll. Die Postambel-Zeit zeigt einen oder mehrere zusätzliche Taktzyklen an, um die ausgewählte ODT-Einstellung anzuwenden.
  • Verschiedene Komponenten der Vorrichtung 700 können durch verschiedene Arten von Kommunikationsmedien kommunikativ miteinander gekoppelt sein, um Operationen zu koordinieren. Die Koordination kann den unidirektionalen oder bidirektionalen Informationsaustausch beinhalten. Beispielsweise können die Komponenten Informationen in Form von Signalen übertragen, die über die Kommunikationsmedien übertragen werden. Die Informationen können als Signale implementiert werden, die verschiedenen Signalleitungen zugeordnet sind. Bei solchen Zuordnungen ist jede Nachricht ein Signal. Weitere Ausführungsformen können jedoch alternativ Datennachrichten verwenden. Solche Datennachrichten können über verschiedene Verbindungen gesendet werden. Beispielhafte Verbindungen umfassen parallele Schnittstellen, serielle Schnittstellen und Busschnittstellen.
  • Hierin enthalten ist ein Satz von Logikflüssen, die repräsentativ für beispielhafte Verfahren zum Durchführen neuer Aspekte der offenbarten Architektur sind. Während zur Vereinfachung der Erklärung die eine oder mehreren hier gezeigten Verfahren als eine Reihe von Handlungen gezeigt und beschrieben werden, werden Fachleute auf diesem Gebiet der Technik verstehen und erkennen, dass die Verfahren nicht durch die Reihenfolge der Handlungen beschränkt sind. Einige Handlungen können in Übereinstimmung damit in einer anderen Reihenfolge und/oder gleichzeitig mit anderen Handlungen als den hier gezeigten und beschriebenen auftreten. Zum Beispiel werden die Fachleute auf diesem Gebiet der Technik verstehen und schätzen, dass ein Verfahren alternativ als eine Reihe miteinander verbundener Zustände oder Ereignisse dargestellt werden kann, wie beispielsweise in einem Zustandsdiagramm. Darüber hinaus sind möglicherweise nicht alle in einem Verfahren dargestellten Handlungen für eine neuartige Implementierung erforderlich.
  • Ein Logikfluss kann in Software, Firmware und/oder Hardware implementiert sein. In Software- und Firmware-Ausführungsformen kann ein Logikfluss durch computerausführbare Anweisungen implementiert sein, die auf wenigstens einem nichtflüchtigen computerlesbaren Medium oder maschinenlesbaren Medium gespeichert sind, wie beispielsweise einer optischen Speicherung, einer magnetischen Speicherung oder einer Halbleiterspeicherung. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • 8 veranschaulicht einen beispielhaften Logikfluss 800. Der Logikfluss 800 kann repräsentativ für einige oder alle der Operationen sein, die von einer oder von mehreren hier beschriebenen Logiken, Merkmalen oder Vorrichtungen, wie beispielsweise der Vorrichtung 700, ausgeführt werden. Insbesondere kann der Logikfluss 800 durch eine Programmlogik 722 implementiert werden.
  • Gemäß einigen Beispielen kann der Logikfluss 800 in Block 802 ein erstes Register in einer ersten Speichervorrichtung programmieren, die mit einer Steuerung über eine E/A-Schnittstellenschaltung gekoppelt ist, um zu bewirken, dass das erste Register mehrere On-Die-Termination (ODT)-Typen anzeigt, um, wenn die erste Speichervorrichtung eine terminierende Speichervorrichtung für eine erste Gruppe von Speichervorrichtungen ist, die mehreren ODT-Typen abhängig davon, ob ein Lesebefehl oder ein Schreibbefehl von einer zweiten Speichervorrichtung ausgeführt werden soll, die in der ersten Gruppe von Speichervorrichtungen umfasst ist, oder ist von einer dritten Speichervorrichtung ausgeführt werden soll, die in einer zweiten Gruppe von Speichervorrichtungen umfasst ist, auszuwählen. Für diese Beispiele kann die Programmlogik 722 das erste Register programmieren.
  • In einigen Beispielen kann der Logikfluss 800 in Block 804 ein zweites Register in der ersten Speichervorrichtung über die E/A-Schnittstellenschaltung programmieren, um zu bewirken, dass das zweite Register wenigstens zwei ODT-Typen mit getrennten ODT-Einstellungen anzeigt, die basierend darauf, ob ein Schreibbefehl von der zweiten Speichervorrichtung oder von der dritten Speichervorrichtung auszuführen ist, angewendet werden. Für diese Beispiele kann die Programmlogik 722 das zweite Register programmieren.
  • 9 veranschaulicht ein beispielhaftes Speicherungsmedium 900. In einigen Beispielen kann das Speicherungsmedium 900 ein Herstellungsgegenstand sein. Das Speicherungsmedium 900 kann jedes nichtflüchtige computerlesbare Medium oder maschinenlesbare Medium umfassen, wie beispielsweise eine optische Speicherung, eine magnetische Speicherung oder eine Halbleiterspeicherung. Das Speicherungsmedium 900 kann verschiedene Arten von ausführbaren Computeranweisungen speichern, wie beispielsweise Anweisungen zum Implementieren des Logikflusses 800. Beispiele für ein computerlesbares oder maschinenlesbares Speicherungsmedium können alle materiellen Medien umfassen, die elektronische Daten speichern können, einschließlich flüchtiger Speicher oder nichtflüchtiger Speicher, entfernbarer oder nicht entfernbarer Speicher, löschbarer oder nicht löschbarer Speicher, beschreibbarer oder wiederbeschreibbarer Speicher und so weiter. Beispiele für ausführbare Computeranweisungen können jeden geeigneten Codetyp, wie beispielsweise Quellcode, kompilierter Code, interpretierter Code, ausführbarer Code, statischer Code, dynamischer Code, objektorientierter Code, visueller Code und dergleichen, umfassen. Die Beispiele sind in diesem Zusammenhang nicht beschränkt.
  • 10 zeigt eine beispielhafte Computerplattform 1000. In einigen Beispielen, wie in 10 gezeigt, kann die Computerplattform 1000 ein Speichersystem 1030, eine Verarbeitungskomponente 1040, andere Plattformkomponenten 1050 oder eine Kommunikationsschnittstelle 1060 aufweisen. Gemäß einigen Beispielen kann die Computerplattform 1000 in einer Computervorrichtung implementiert sein.
  • Gemäß einigen Beispielen kann das Speichersystem 1030 eine Steuerung 1032 und (eine) Speichervorrichtung(en) 1034 aufweisen. Für diese Beispiele können Logik und/oder Merkmale, die in der Steuerung 1032 residieren oder sich bei dieser befinden, wenigstens einige Verarbeitungsoperationen oder Logik für die Vorrichtung 700 ausführen und können Speicherungsmedien aufweisen, die das Speicherungsmedium 900 umfassen. Außerdem kann/können die Speichervorrichtung(en) 1034 ähnliche Arten von flüchtigen oder nichtflüchtigen Speichern (nicht gezeigt), die oben für Speichervorrichtungen 120 beschrieben sind, die in 1 gezeigt ist, oder Speichervorrichtungen 522, 532, 542 oder 552, die in 5 gezeigt sind, umfassen. In einigen Beispielen kann die Steuerung 1032 Teil eines gleichen Chips mit der(den) Speichervorrichtung(en) 1034 sein. In anderen Beispielen können sich die Steuerung 1032 und die Speichervorrichtung(en) 1034 auf demselben Chip oder derselben integrierten Schaltung mit einem Prozessor (z. B. umfasst in der Verarbeitungskomponente 1040) befinden. In noch anderen Beispielen kann sich die Steuerung 1032 in einem separaten Chip oder einer separaten integrierten Schaltung befinden, der/die mit der(den) Speichervorrichtung(en) 1034 gekoppelt ist.
  • Gemäß einigen Beispielen können die Verarbeitungskomponenten 1040 verschiedene Hardwareelemente, Softwareelemente oder eine Kombination von beiden aufweisen. Beispiele für Hardwareelemente können Vorrichtungen, Logikvorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Verwaltungssteuerungen, Companion-Dies, Schaltungen, Prozessorschaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten usw.), integrierte Schaltungen, ASICs, speicherprogrammierbare Vorrichtungen (PLDs), digitale Signalprozessoren (DSPs), FPGAs, Speichereinheiten, Logik-Gates, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze usw. umfassen. Beispiele für Softwareelemente können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Gerätetreiber, Systemprogramme, Softwareentwicklungsprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterprogramme, Funktionen, Methoden, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (APIs), Befehlssätze, Verarbeitungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon umfassen. Das Bestimmen, ob ein Beispiel unter Verwendung von Hardware- und/oder Softwareelementen implementiert wird, kann in Abhängigkeit von einer beliebigen Anzahl von Faktoren variieren, wie z. B. der gewünschten Rechenrate, Leistungspegeln, Wärmetoleranzen, dem Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen , Datenbusgeschwindigkeiten und andere Design- oder Leistungsbeschränkungen, wie für ein gegebenes Beispiel gewünscht.
  • In einigen Beispielen können andere Plattformkomponenten 1050 gemeinsame Verarbeitungselemente, Speichereinheiten (die Systemspeicher umfassen), Chip-Sätze, Steuerungen, Peripheriegeräte, Schnittstellen, Oszillatoren, Taktgeräte, Grafikkarten, Audiokarten, Multimedia-Ein-/Ausgabe (E/A)-Komponenten (z. B. digitale Anzeigen), Netzteile usw. umfassen. Beispiele für Speichereinheiten oder Speichervorrichtungen können ohne Einschränkung verschiedene Arten von computerlesbaren und maschinenlesbaren Speicherungsmedien in Form einer oder mehrerer Speichereinheiten mit höherer Geschwindigkeit umfassen, wie beispielsweise Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), dynamische RAM (DRAM), DRAM mit doppelter Datenrate (DDRAM), synchrone DRAM (SDRAM), statische RAM (SRAM), programmierbare ROM (PROM), löschbare programmierbare ROM (EPROM), elektrisch löschbare programmierbare ROM (EEPROM), Flash-Speicher, Polymerspeicher wie ferroelektrische Polymerspeicher, ovonische Speicher, Phasenwechsel- oder ferroelektrische Speicher, Siliziumoxid-Nitridoxid-Silizium (SONOS)-Speicher, magnetische oder optische Karten, eine Reihe von Geräten wie RAID-Laufwerke (Redundant Array of Independent Disks), Solid-State-Speichervorrichtungen (z. B. USB-Speicher), Solid-State-Laufwerke (SSD) und alle anderen Arten von Speicherungsmedien, die zum Speichern von Informationen geeignet sind.
  • In einigen Beispielen kann die Kommunikationsschnittstelle 1060 Logik und/oder Merkmale zur Unterstützung einer Kommunikationsschnittstelle aufweisen. Für diese Beispiele kann die Kommunikationsschnittstelle 1060 eine oder mehrere Kommunikationsschnittstellen umfassen, die gemäß verschiedenen Kommunikationsprotokollen oder - standards arbeiten, um über direkte oder Netzwerkkommunikationsverbindungen zu kommunizieren. Direkte Kommunikation kann über Kommunikationsprotokolle oder -standards erfolgen, die in einem oder mehreren Industriestandards (einschließlich nachfolgende Generationen und Varianten) beschrieben sind, z. B. solche, die mit der PCIe-Spezifikation, der NVMe-Spezifikation oder der I3C-Spezifikation verbunden sind. Die Netzwerkkommunikation kann über Kommunikationsprotokolle oder -standards erfolgen, wie sie in einem oder mehreren Ethernet-Standards beschrieben sind, die vom Institute of Electrical and Electronics Engineers (IEEE) veröffentlicht wurden. Beispielsweise kann ein solcher von IEEE veröffentlichter Ethernet-Standard, ohne darauf beschränkt zu sein, IEEE 802.3-2018, Carrier sense Multiple access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications, veröffentlicht im August 2018 (im Folgenden „IEEE 802.3-Spezifikation“) umfassen. Die Netzwerkkommunikation kann auch gemäß einer oder mehreren OpenFlow-Spezifikationen erfolgen, z. B. gemäß der OpenFlow Hardware-Abstraction API-Spezifikation. Die Netzwerkkommunikation kann auch gemäß einer oder mehrerer Infiniband-Architekturspezifikationen erfolgen.
  • Die Computerplattform 1000 kann Teil einer Computervorrichtung sein, die beispielsweise eine Benutzerausrüstung, ein Computer, ein Personal Computer (PC), ein Desktop-Computer, ein Laptop-Computer, ein Notebook-Computer, ein Netbook-Computer oder ein Tablet, ein Smartphone, eingebettete Elektronik, eine Spielekonsole, ein Server, ein Serverarray oder eine Serverfarm, ein Webserver, ein Netzwerkserver, ein Internetserver, eine Arbeitsstation, ein Minicomputer, ein Main-Frame-Computer, ein Supercomputer, eine Netzwerk-Appliance, eine Web-Appliance, ein verteiltes Computersystem, Multiprozessorsysteme, prozessorbasierte Systeme oder eine Kombination davon sein kann. Dementsprechend können Funktionen und/oder spezifische Konfigurationen der hierin beschriebenen Computerplattform 1000 in verschiedenen Ausführungsformen der Computerplattform 1000 umfasst oder weggelassen sein, wie dies in geeigneter Weise wünschenswert ist.
  • Die Komponenten und Merkmale der Computerplattform 1000 können unter Verwendung einer beliebigen Kombination von diskreten Schaltungen, ASICs, Logik-Gates und/oder Einzelchiparchitekturen implementiert werden. Ferner können die Merkmale der Computerplattform 1000 unter Verwendung von Mikrocontrollern, programmierbaren Logik-Arrays und/oder Mikroprozessoren oder einer beliebigen Kombination der vorstehenden gegebenenfalls implementiert sein. Es wird angemerkt, dass Hardware-, Firmware- und/oder Softwareelemente hier gemeinsam oder einzeln als „Logik“, „Schaltung“ oder „Schaltungen“ bezeichnet werden können.
  • Es versteht sich von selbst, dass die beispielhafte Computerplattform 1000, die in dem Blockdiagramm von 10 gezeigt ist, ein funktional beschreibendes Beispiel für viele mögliche Implementierungen darstellen kann. Dementsprechend lässt das Teilen, Weglassen oder Einschließen von Blockfunktionen, die in den beigefügten Figuren dargestellt sind, nicht darauf schließen, dass die Hardwarekomponenten, Schaltungen, Software und/oder Elemente zum Implementieren dieser Funktionen notwendigerweise geteilt, weggelassen oder in Ausführungsformen enthalten wären.
  • Ein oder mehrere Aspekte von wenigstens einem Beispiel können durch repräsentative Anweisungen implementiert werden, die auf wenigstens einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors darstellt, die beim Lesen durch eine Maschine, eine Verarbeitungsvorrichtung oder ein Verarbeitungssystem die Maschine, die Verarbeitungsvorrichtung oder das Verarbeitungssystem zur Erstellung von Logik zur Durchführung der hier beschriebenen Techniken veranlasst. Solche Darstellungen werden als „IP-Kerne“ bezeichnet und können IP-Blöcken ähnlich sein. IP-Kerne können auf einem materiellen, maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Fertigungsanlagen geliefert werden, um sie in die Fertigungsmaschinen zu laden, die tatsächlich die Logik oder den Prozessor herstellen.
  • Verschiedene Beispiele können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert werden. In einigen Beispielen können Hardwareelemente Vorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten usw.), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Speichereinheiten, Logik-Gates, Register, Halbleiterbauelemente, Chips, Mikrochips, Chipsätze usw. umfassen. In einigen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterprogramme, Funktionen, Methoden, Verfahren, Softwareschnittstellen, APIs, Befehlssätze, Computercode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon umfassen. Das Bestimmen, ob ein Beispiel mithilfe von Hardware-Elementen und/oder Software-Elementen implementiert wird, kann in Abhängigkeit von einer beliebigen Anzahl von Faktoren variieren, wie z. B. der gewünschten Rechenrate, der Leistungspegel, der Wärmetoleranzen, dem Verarbeitungszyklusbudget, den Eingangsdatenraten, den Ausgangsdatenraten, den Speicherressourcen, den Datenbusgeschwindigkeiten und anderen Design- oder Leistungsbeschränkungen, je nach Wunsch für eine gegebene Implementierung.
  • Einige Beispiele können einen Herstellungsgegenstand oder wenigstens ein computerlesbares Medium umfassen. Ein computerlesbares Medium kann ein nichtflüchtiges Speicherungsmedium zum Speichern von Logik aufweisen. In einigen Beispielen kann das nichtflüchtige Speicherungsmedium eine oder mehrere Arten von computerlesbaren Speicherungsmedien umfassen, die elektronische Daten speichern können, einschließlich flüchtiger Speicher oder nichtflüchtiger Speicher, entfernbarer oder nicht entfernbarer Speicher, löschbarer oder nicht löschbarer Speicher, beschreibbarer oder wiederbeschreibbarer Speicher und so weiter. In einigen Beispielen kann die Logik verschiedene Softwareelemente aufweisen, wie z. B. Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterprogramme, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, API, Befehlssätze, Verarbeitungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon.
  • Gemäß einigen Beispielen kann ein computerlesbares Medium ein nicht vorübergehendes Speicherungsmedium aufweisen, um Anweisungen zu speichern oder zu verwalten, die, wenn sie von einer Maschine, einer Verarbeitungsvorrichtung oder einem Verarbeitungssystem ausgeführt werden, dazu führen, dass die Maschine, die Verarbeitungsvorrichtung oder das Verarbeitungssystem Verfahren und/oder Operationen gemäß den beschriebenen Beispielen ausführt. Die Anweisungen können jeden geeigneten Codetyp aufweisen, wie beispielsweise Quellcode, kompilierter Code, interpretierter Code, ausführbarer Code, statischer Code, dynamischer Code und dergleichen. Die Anweisungen können gemäß einer vordefinierten Computersprache, -art oder -syntax implementiert werden, um eine Maschine, eine Verarbeitungsvorrichtung oder ein Verarbeitungssystem anzuweisen, eine bestimmte Funktion auszuführen. Die Anweisungen können unter Verwendung einer geeigneten höheren, niedrigen, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert werden.
  • Einige Beispiele können unter Verwendung des Ausdrucks „in einem Beispiel“ oder „als ein Beispiel“ zusammen mit ihren Ableitungen beschrieben werden. Diese Begriffe bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Merkmal, das im Zusammenhang mit dem Beispiel beschrieben wurde, in wenigstens einem Beispiel enthalten ist. Die Erscheinungen des Ausdrucks „in einem Beispiel“ an verschiedenen Stellen in der Spezifikation beziehen sich nicht notwendigerweise alle auf dasselbe Beispiel.
  • Einige Beispiele können unter Verwendung des Ausdrucks „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen beschrieben werden. Diese Begriffe sind nicht unbedingt als Synonyme für einander gedacht. Beispielsweise können Beschreibungen unter Verwendung der Begriffe „verbunden“ und/oder „gekoppelt“ anzeigen, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. Der Begriff „gekoppelt“ oder „gekoppelt mit“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch zusammenarbeiten oder miteinander interagieren.
  • Soweit hierin verschiedene Operationen oder Funktionen beschrieben sind, können sie als Softwarecode, Anweisungen, Konfiguration und/oder Daten beschrieben oder definiert werden. Der Inhalt kann direkt ausführbar sein („Objekt“-Form oder „ausführbare“ Form), Quellcode oder Differenzcode („Delta“-Code oder „Patch“-Code). Der SoftwareInhalt dessen, was hier beschrieben wird, kann über einen Herstellungsartikel mit dem darauf gespeicherten Inhalt oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle zum Senden von Daten über die Kommunikationsschnittstelle bereitgestellt werden. Ein maschinenlesbares Speicherungsmedium kann dazu führen, dass eine Maschine die beschriebenen Funktionen oder Vorgänge ausführt, und umfasst jeden Mechanismus, der Informationen in einer Form speichert, auf die eine Maschine zugreifen kann (z. B. eine Verarbeitungsvorrichtung, ein elektronisches System usw.), wie z. B. beschreibbare/nicht beschreibbare Medien (z. B. Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), Magnetplatten-Speicherungsmedien, optische Speicherungsmedien, Flash-Speichervorrichtungen usw.). Eine Kommunikationsschnittstelle umfasst einen beliebigen Mechanismus, der mit einem festverdrahteten, drahtlosen, optischen usw. Medium verbunden ist, um mit einer anderen Vorrichtung zu kommunizieren, wie beispielsweise einer Speicherbusschnittstelle, einer Prozessorbusschnittstelle, einer Internetverbindung, einem Plattencontroller usw. Die Kommunikationsschnittstelle kann konfiguriert werden, indem Konfigurationsparameter bereitgestellt und/oder Signale gesendet werden, um die Kommunikationsschnittstelle vorzubereiten, um ein Datensignal bereitzustellen, das den Softwareinhalt beschreibt. Auf die Kommunikationsschnittstelle kann über einen oder mehrere Befehle oder Signale zugegriffen werden, die an die Kommunikationsschnittstelle gesendet werden.
  • Die folgenden Beispiele beziehen sich auf zusätzliche Beispiele zu hier offenbarten Technologien.
  • Beispiel 1. Eine beispielhafte Speichervorrichtung kann ein oder mehrere Register aufweisen, die angeordnet sind, um ODT-Einstellungen und Steuerschaltungen aufrechtzuerhalten. Die Steuerschaltung kann einen Aufruf erhalten, dass ein Befehl von einer separaten Speichervorrichtung ausgeführt werden soll, die mit demselben Datenkanal gekoppelt ist. Die Steuerschaltung kann auch das eine oder die mehreren Register lesen, um zu bestimmen, welche ODT-Einstellung während der Ausführung des Befehls angewendet werden soll, basierend auf einer ersten Gruppenkennung, welche die Nähe der separaten Speichervorrichtung zur Speichervorrichtung anzeigt und basierend darauf, ob der Befehl ein Lesebefehl oder ein Schreibbefehl ist.
  • Beispiel 2. Die Speichervorrichtung von Beispiel 1, wobei sich die Speichervorrichtung auf einem ersten Package befinden kann, das die separate Speichervorrichtung umfasst, wobei die Speichervorrichtung so angeordnet ist, dass sie eine terminierende Speichervorrichtung für das erste Package ist.
  • Beispiel 3. Die Speichervorrichtung von Beispiel 2, wobei die erste Gruppenkennung dem ersten Package zugewiesen sein kann, um anzuzeigen, dass sich die separate Speichervorrichtung auf demselben Package befindet. Der Befehl kann ein Schreibbefehl sein. Die Steuerschaltung kann dazu führen, dass die Speichervorrichtung während eines Schreibvorgangs auf die separate Speichervorrichtung eine Hi_z-ODT-Einstellung bereitstellt.
  • Beispiel 4. Die Speichervorrichtung von Beispiel 1, wobei sich die Speichervorrichtung auf einem ersten Package befinden kann, das wenigstens eine andere Speichervorrichtung umfasst. Die Speichervorrichtung kann so angeordnet sein, dass sie eine terminierende Speichervorrichtung für das erste Package ist. Die separate Speichervorrichtung kann sich auf einem zweiten Package befinden. Die erste Gruppenkennung kann dem zweiten Package zugewiesen sein, wobei die erste Gruppenkennung angibt, dass sich die separate Speichervorrichtung auf einem anderen Package befindet.
  • Beispiel 5. Die Speichervorrichtung von Beispiel 4, wobei der Befehl ein Lesebefehl sein kann. Die Steuerschaltung kann dazu führen, dass die Speichervorrichtung während eines Lesevorgangs eine erste ODT-Einstellung bereitstellt, wenn sich das zweite Package neben dem oder in der Nähe des ersten Package(s) befindet, oder während des Lesevorgangs eine zweite ODT-Einstellung bereitstellt, wenn sich das zweite Package nicht neben dem ersten Package befindet.
  • Beispiel 6. Die Speichervorrichtung von Beispiel 1, wobei der Befehl von einer Steuerung einer Speicherungsvorrichtung empfangen werden kann.
  • Beispiel 7. Die Speichervorrichtung von Beispiel 6, wobei die Speichervorrichtung nichtflüchtige Speichertypen umfassen kann, wobei die Speicherungsvorrichtung ein Solid-State-Laufwerk ist.
  • Beispiel 8. Die Speichervorrichtung von Beispiel 7, wobei die nichtflüchtigen Speichertypen einen Phasenwechselspeicher, einen Nanodrahtspeicher, einen FeTRAM, einen antiferroelektrischer Speicher, einen Widerstandsspeicher mit einer Metalloxidbasis, einen CB-RAM, ein spintronischer Magnettunnelspeicher, einen MTJ-Speicher, einen Domänenwand (DW)- und Spin-Orbit-Transfer (SOT)-Speicher, ein auf Thyristoren basierendes Speicher-Array, ein MRAM, das Memristortechnologie aufweist, oder ein STT-MRAM umfassen können.
  • Beispiel 9. Eine beispielhafte Vorrichtung kann auch eine E/A-Schnittstellenschaltung zum Koppeln mit einer ersten Speichervorrichtung aufweisen. Die Vorrichtung kann auch eine Schaltung zum Ausführen einer Programmlogik aufweisen, wobei die Programmlogik ein erstes Register an der ersten Speichervorrichtung über die E/A-Schnittstellenschaltung programmieren kann, um zu bewirken, dass das erste Register mehrere ODT-Typen anzeigt, um auszuwählen, wann die erste Speichervorrichtung eine terminierende Speichervorrichtung für eine erste Gruppe von Speichervorrichtungen ist. Die mehreren ODT-Typen können darauf basieren, ob ein Lesebefehl oder ein Schreibbefehl von einer zweiten Speichervorrichtung, die in der ersten Gruppe von Speichervorrichtungen umfasst ist, oder von einer dritten Speichervorrichtung ausgeführt werden soll, die in einer zweiten Gruppe von Speichervorrichtungen umfasst ist. Die Programmlogik kann auch ein zweites Register an der ersten Speichervorrichtung über die E/A-Schnittstellenschaltung programmieren, um zu bewirken, dass das zweite Register wenigstens zwei ODT-Typen mit separatem ODT-Einstellungen anzeigt, um sie basierend darauf, ob ein Schreibbefehl von der zweiten Speichervorrichtung oder von der dritten Speichervorrichtung ausgeführt werden soll, anzuwenden.
  • Beispiel 10. Die Vorrichtung von Beispiel 9, wobei sich die erste Gruppe von Speichervorrichtungen auf einem ersten Package befinden kann, dem eine erste Gruppenkennung zugewiesen ist, die zweite Gruppe von Speichervorrichtungen sich auf einem zweiten Package befindet, der eine zweite Gruppenkennung zugewiesen ist. In diesem Beispiel befindet sich eine vierte Speichervorrichtung, die in einer dritten Gruppe von Speichervorrichtungen umfasst ist, in einem dritten Package, dem eine dritte Gruppenkennung zugewiesen ist. Das erste und das zweite und das dritte Package können über denselben Datenbus mit der E/A-Schnittstellenschaltung verbunden sein, wobei sich das zweite Package neben dem oder in der Nähe des ersten Package(s) befindet und das dritte Package nicht neben dem ersten Package angeordnet ist.
  • Beispiel 11. Die Vorrichtung von Beispiel 10, wobei die Programmlogik auch ein drittes Register an der ersten Speichervorrichtung programmieren kann, um eine erste ODT-Einstellung und eine zweite ODT-Einstellung anzuzeigen, um diese selektiv anzuwenden, wenn die erste Speichervorrichtung die terminierende Speichervorrichtung für die erste Gruppe von Speichervorrichtungen ist und der Befehl ein Lesebefehl ist. In diesem Beispiel kann die erste Speichervorrichtung die erste ODT-Einstellung, wenn sich der Lesebefehl auf die dritte Speichervorrichtung bezieht, oder die zweite ODT-Einstellung anwenden, wenn sich der Lesebefehl auf die vierte Speichervorrichtung bezieht.
  • Beispiel 12. Die Vorrichtung von Beispiel 9, wobei die erste, die zweite und die dritte Speichervorrichtung nichtflüchtige Speichertypen aufweisen können. Die Vorrichtung kann eine Steuerung für ein Solid-State-Laufwerk sein, das die erste, die zweite und die dritte Speichervorrichtung umfasst.
  • Beispiel 13. Die Vorrichtung von Beispiel 12, wobei die nichtflüchtigen Speichertypen einen Phasenwechselspeicher, einen Nanodrahtspeicher, einen FeTRAM, einen antiferroelektrischen Speicher, einen Widerstandsspeicher mit einer Metalloxidbasis, einen CB-RAM, ein Spintronik-Magnettunnelspeicher, einen MTJ-Speicher, einen Domänenwand (DW)- und Spin-Orbit-Transfer (SOT)-Speicher, ein thyristorbasiertes Speicher-Array, ein MRAM mit Memristortechnologie oder ein STT-MRAM umfassen können.
  • Beispiel 14. Eine Speicherungsvorrichtung kann eine Steuerung mit einer E/A-Schnittstellenschaltung aufweisen, um sich mit mehreren Gruppen von Speichervorrichtungen über denselben Datenkanal zu koppeln. Die Speicherungsvorrichtung kann auch eine Speichervorrichtung einer ersten Gruppe der mehreren Gruppen von Speichervorrichtungen umfassen. Die Speichervorrichtung kann ein oder mehrere Register aufweisen, die angeordnet sind, um ODT-Einstellungen vorzuhalten. Die Speichervorrichtung kann auch eine Steuerschaltung aufweisen, um eine Anzeige zu empfangen, dass ein Befehl von der Steuerung von einer separaten Speichervorrichtung ausgeführt werden soll, die mit demselben Datenkanal gekoppelt ist. Die Schaltung kann auch das eine oder die mehreren Register lesen, um zu bestimmen, welche ODT-Einstellung während der Ausführung des Befehls angewendet werden soll, basierend auf einer ersten Gruppenkennung, welche die Nähe der separaten Speichervorrichtung zur Speichervorrichtung angibt und davon abhängt, ob der Befehl ein Lesebefehl oder ein Schreibbefehl ist.
  • Beispiel 15. Die Speicherungsvorrichtung von Beispiel 14, wobei die erste Gruppe der mehreren Gruppen von Speichervorrichtungen sich auf einem ersten Package befinden kann, wobei die erste Gruppe auch die separate Speichervorrichtung aufweist, wobei die Speichervorrichtung als terminierende Speichervorrichtung für die erste Gruppe angeordnet ist.
  • Beispiel 16. Die Speicherungsvorrichtung von Beispiel 15, wobei die erste Gruppenkennung der ersten Gruppe zugewiesen sein kann, um anzuzeigen, dass sich die separate Speichervorrichtung auf demselben Package befindet. Der Befehl kann ein Schreibbefehl sein, wobei die Steuerschaltung bewirkt, dass die Speichervorrichtung während eines Schreibvorgangs eine Hi_z-ODT-Einstellung für die separate Speichervorrichtung bereitstellt.
  • Beispiel 17. Die Speicherungsvorrichtung von Beispiel 14, wobei die erste Gruppe der mehreren Gruppen von Speichervorrichtungen sich auf einem ersten Package befinden kann. Die erste Gruppe kann auch die separate Speichervorrichtung umfassen. Die Speichervorrichtung kann so angeordnet sein, dass sie eine terminierende Speichervorrichtung für die erste Gruppe ist. Die separate Speichervorrichtung kann in einer zweiten Gruppe der mehreren Gruppen von Speichervorrichtungen umfasst sein, die sich in einem zweiten Package befinden. Die erste Gruppenkennung kann der zweiten Gruppe zugewiesen sein, wobei die erste Gruppenkennung angibt, dass sich die separate Speichervorrichtung auf einem anderen Package befindet.
  • Beispiel 18. Die Speicherungsvorrichtung von Beispiel 17, wobei der Befehl ein Lesebefehl sein kann. Die Steuerschaltung kann dazu führen, dass die Speichervorrichtung während eines Lesevorgangs eine erste ODT-Einstellung bereitstellt, wenn sich das zweite Package neben dem oder in der Nähe des ersten Package(s) befindet, oder während des Lesevorgangs eine zweite ODT-Einstellung bereitstellt, wenn sich das zweite Package nicht neben dem ersten Package befindet.
  • Beispiel 19. Die Speicherungsvorrichtung von Beispiel 14, wobei die Speichervorrichtung nichtflüchtige Speichertypen aufweisen kann. Die Speicherungsvorrichtung kann ein Solid-State-Laufwerk sein.
  • Beispiel 20. Die Speicherungsvorrichtung von Beispiel 19, wobei die nichtflüchtigen Speichertypen einen Phasenwechselspeicher, einen Nanodrahtspeicher, einen FeTRAM, einen antiferroelektrischen Speicher, einen Widerstandsspeicher mit einer Metalloxidbasis, einen CB-RAM, einen Spintronik-Magnettunnelspeicher, einen MTJ-Speicher, einen Domänenwand (DW)- und Spin-Orbit-Transfer (SOT)-Speicher, ein thyristorbasiertes Speicher-Array, ein MRAM mit Memristortechnologie oder ein STT-MRAM umfassen können.
  • Beispiel 21. Ein beispielhaftes Verfahren kann das Empfangen einer Anzeige an einer Schaltung für eine Speichervorrichtung umfassen, dass ein Befehl von einer separaten Speichervorrichtung ausgeführt werden soll, die mit demselben Datenkanal gekoppelt ist. Das Verfahren kann auch das Lesen eines oder mehrerer Register umfassen, die angeordnet sind, um ODT-Einstellungen vorzuhalten, um zu bestimmen, welche ODT-Einstellung während der Ausführung des Befehls basierend auf einer ersten Gruppenkennung, welche die Nähe der separaten Speichervorrichtung zu der Speichervorrichtung angibt, und basierend darauf, ob der Befehl ein Lesebefehl oder ein Schreibbefehl ist, angewendet werden soll.
  • Beispiel 22. Das Verfahren von Beispiel 21, wobei sich die Speichervorrichtung auf einem ersten Package befinden kann, das die separate Speichervorrichtung umfasst. Die Speichervorrichtung kann so angeordnet sein, dass sie eine terminierende Speichervorrichtung für das erste Package ist.
  • Beispiel 23. Das Verfahren von Beispiel 22, wobei die erste Gruppenkennung dem ersten Package zugewiesen sein kann, was angibt, dass sich die separate Speichervorrichtung auf demselben Package befindet. Der Befehl kann ein Schreibbefehl sein, das Verfahren kann auch das Verursachen einer Hi_z-ODT-Einstellung durch die Speichervorrichtung während eines Schreibvorgangs zu der separaten Speichervorrichtung umfassen.
  • Beispiel 24. Das Verfahren von Beispiel 21, wobei sich die Speichervorrichtung auf einem ersten Package befinden kann, das wenigstens eine andere Speichervorrichtung aufweist. Die Speichervorrichtung kann so angeordnet sein, dass sie eine terminierende Speichervorrichtung für das erste Package ist. Die separate Speichervorrichtung kann sich auf einem zweiten Package befinden, wobei die erste Gruppenkennung dem zweiten Package zugewiesen ist, wobei die erste Gruppenkennung anzeigt, dass sich die separate Speichervorrichtung auf einem anderen Package befindet.
  • Beispiel 25. Das Verfahren von Beispiel 24, wobei der Befehl ein Lesebefehl sein kann, wobei das Verfahren auch umfassen kann, dass die Speichervorrichtung eine erste ODT-Einstellung während einer Leseoperation bereitstellt, wenn sich das zweite Package neben dem ersten Package oder in dessen Nähe befindet, oder während des Lesevorgangs eine zweite ODT-Einstellung bereitstellt, wenn sich das zweite Package nicht neben dem ersten Package befindet.
  • Beispiel 26. Das Verfahren von Beispiel 21, wobei der Befehl von einer Steuerung einer Speicherungsvorrichtung empfangen werden kann.
  • Beispiel 27. Das Verfahren von Beispiel 26, wobei die Speichervorrichtung nichtflüchtige Speichertypen aufweisen kann, wobei die Speicherungsvorrichtung ein Solid-State-Laufwerk sein kann.
  • Beispiel 28. Ein Beispiel wenigstens eines maschinenlesbaren Mediums kann eine Vielzahl von Anweisungen aufweisen, die als Reaktion auf die Ausführung durch ein System das System veranlassen können, ein Verfahren gemäß einem beliebigen der Beispiele 21 bis 27 auszuführen.
  • Beispiel 29. Eine beispielhafte Vorrichtung kann Mittel zum Durchführen der Verfahren nach einem beliebigen der Beispiele 21 bis 27 aufweisen.
  • Beispiel 30. Ein beispielhaftes Verfahren kann das Programmieren eines ersten Registers an einer ersten Speichervorrichtung umfassen, die mit einer Steuerung über eine E/A-Schnittstellenschaltung gekoppelt ist, um zu bewirken, dass das erste Register mehrere ODT-Typen anzeigt, um auszuwählen, wann die erste Speichervorrichtung eine terminierende Speichervorrichtung für eine erste Gruppe von Speichervorrichtungen ist. Die mehreren ODT-Typen können darauf basieren, ob ein Lesebefehl oder ein Schreibbefehl von einer zweiten Speichervorrichtung, die in der ersten Gruppe von Speichervorrichtungen umfasst ist, oder von einer dritten Speichervorrichtung ausgeführt werden soll, die in einer zweiten Gruppe von Speichervorrichtungen umfasst ist. Das Verfahren kann auch das Programmieren eines zweiten Registers an der ersten Speichervorrichtung über die E/A-Schnittstellenschaltung umfassen, um zu bewirken, dass das zweite Register wenigstens zwei ODT-Typen mit separaten ODT-Einstellungen anzeigt, die basierend darauf anzuwenden sind, ob ein Schreibbefehl von der zweiten Speichervorrichtung oder der dritten Speichervorrichtung ausgeführt werden soll.
  • Beispiel 31. Das Verfahren von Beispiel 30, wobei die erste Gruppe von Speichervorrichtungen sich auf einem ersten Package befinden kann, dem eine erste Gruppenkennung zugewiesen ist. Die zweite Gruppe von Speichervorrichtungen kann sich auf einem zweiten Package befinden, dem eine zweite Gruppenkennung zugewiesen ist. In diesem Beispiel befindet sich eine vierte Speichervorrichtung, die in einer dritten Gruppe von Speichervorrichtungen umfasst ist, auf einem dritten Package, dem eine dritte Gruppenkennung zugewiesen ist, wobei das erste und das zweite und das dritte Package über denselben Datenbus mit der E/A-Schnittstellenschaltung verbunden sind. Das zweite Package kann sich neben dem oder in der Nähe des ersten Package(s) befinden, wobei sich das dritte Package nicht neben dem ersten Package befindet.
  • Beispiel 32. Das Verfahren von Beispiel 31 kann auch das Programmieren eines dritten Registers an der ersten Speichervorrichtung umfassen, um eine erste ODT-Einstellung und eine zweite ODT-Einstellung anzuzeigen, um diese selektiv anzuwenden, wenn die erste Speichervorrichtung die terminierende Speichervorrichtung für die erste Gruppe von Speichervorrichtungen ist und der Befehl ein Lesebefehl ist. In diesem Beispiel soll die erste Speichervorrichtung die erste ODT-Einstellung, wenn sich der Lesebefehl auf die dritte Speichervorrichtung bezieht, oder die zweite ODT-Einstellung anwenden, wenn sich der Lesebefehl auf die vierte Speichervorrichtung bezieht.
  • Beispiel 33. Das Verfahren von Beispiel 32, wobei die erste, die zweite und die dritte Speichervorrichtung nichtflüchtige Speichertypen aufweisen können, wobei die Steuerung eine Steuerung für ein Solid-State-Laufwerk sein kann, das die erste, die zweite und die dritte Speichervorrichtung umfasst.
  • Beispiel 33. Ein Beispiel wenigstens eines maschinenlesbaren Mediums kann eine Vielzahl von Anweisungen umfassen, die als Reaktion auf die Ausführung durch ein System das System veranlassen können, ein Verfahren gemäß einem der Beispiele 31 bis 33 auszuführen.
  • Beispiel 34. Eine beispielhafte Vorrichtung kann Mittel zum Durchführen der Verfahren nach einem der Beispiele 31 bis 33 aufweisen.
  • Es wird betont, dass die Zusammenfassung der Offenbarung bereitgestellt wird, um 37 C.F.R. Abschnitt 1.72 (b) zu entsprechen, der eine Zusammenfassung erfordert, die es dem Leser ermöglicht, die Art der technischen Offenbarung schnell festzustellen. Sie wird mit dem Einverständnis eingereicht, dass sie nicht dazu verwendet wird, den Umfang oder die Bedeutung der Ansprüche zu interpretieren oder einzuschränken. Darüber hinaus ist aus der vorstehenden Detaillierten Beschreibung ersichtlich, dass verschiedene Merkmale in einem einzigen Beispiel zusammengefasst sind, um die Offenbarung zu rationalisieren. Dieses Verfahren der Offenbarung ist nicht so zu interpretieren, dass es die Absicht widerspiegelt, dass die beanspruchten Beispiele mehr Merkmale erfordern, als sie in jedem Anspruch ausdrücklich angegeben sind. Wie die folgenden Ansprüche widerspiegeln, liegt der erfinderische Gegenstand vielmehr in weniger als allen Merkmalen eines einzelnen offenbarten Beispiels. Somit werden die folgenden Ansprüche hiermit in die detaillierte Beschreibung aufgenommen, wobei jeder Anspruch für sich als separates Beispiel steht. In den beigefügten Ansprüchen werden die Begriffe „einschließlich“ und „in denen“ als die einfachen deutschen Äquivalente der jeweiligen Begriffe „umfassend“ bzw. „wobei“ verwendet. Darüber hinaus werden die Begriffe „erster“, „zweiter“, „dritter“ usw. lediglich als Bezeichnungen verwendet und sollen ihren Objekten keine numerischen Anforderungen auferlegen.
  • Obwohl der Gegenstand in einer Sprache beschrieben wurde, die für strukturelle Merkmale und/oder methodische Handlungen spezifisch ist, versteht es sich von selbst, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die oben beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr werden die oben beschriebenen spezifischen Merkmale und Handlungen als beispielhafte Formen der Umsetzung der Ansprüche offenbart.

Claims (35)

  1. Speichervorrichtung, aufweisend: ein oder mehrere Register, die so angeordnet sind, dass sie die ODT-Einstellungen (On-Die Termination-Einstellungen) beibehalten; und Steuerschaltungen, um: eine Anzeige zu erhalten, dass ein Befehl von einer separaten Speichervorrichtung ausgeführt werden soll, die mit demselben Datenkanal gekoppelt ist; das eine oder die mehreren Register zu lesen, um zu bestimmen, welche ODT-Einstellung während der Ausführung des Befehls basierend auf einer ersten Gruppenkennung, welche die Nähe der separaten Speichervorrichtung zur Speichervorrichtung angibt, und basierend darauf, ob der Befehl ein Lesebefehl oder ein Schreibbefehl ist, angewendet werden soll.
  2. Speichervorrichtung nach Anspruch 1, aufweisend die Speichervorrichtung, die sich auf einem ersten Package befindet, das die separate Speichervorrichtung aufweist, wobei die Speichervorrichtung als terminierende Speichervorrichtung für das erste Package angeordnet ist.
  3. Speichervorrichtung nach Anspruch 2, aufweisend die erste Gruppenkennung, welche dem ersten Package zugeordnet ist, um anzuzeigen, dass sich die separate Speichervorrichtung auf demselben Package befindet, wobei der Befehl ein Schreibbefehl ist, wobei die Steuerschaltung veranlasst, dass die Speichervorrichtung eine Hi_z-ODT-Einstellung während eines Schreibvorgangs auf die separate Speichervorrichtung bereitstellt.
  4. Speichervorrichtung nach Anspruch 1, aufweisend die Speichervorrichtung, die sich auf einem ersten Package befindet, das wenigstens eine andere Speichervorrichtung aufweist, wobei die Speichervorrichtung als terminierende Speichervorrichtung für das erste Package angeordnet ist, wobei die separate Speichervorrichtung sich auf einem zweiten Package befindet, wobei die erste Gruppenkennung dem zweiten Package zugewiesen ist, wobei die erste Gruppenkennung anzeigt, dass sich die separate Speichervorrichtung auf einem anderen Package befindet.
  5. Speichervorrichtung nach Anspruch 4, wobei der Befehl ein Lesebefehl ist, wobei die Steuerschaltung die Speichervorrichtung veranlasst, eine erste ODT-Einstellung während eines Lesevorgangs bereitzustellen, wenn das zweite Package sich neben dem oder in der Nähe des ersten Package(s) befindet, oder eine zweite ODT-Einstellung während des Lesevorgangs bereitzustellen, wenn sich das zweite Package nicht neben dem ersten Package befindet.
  6. Speichervorrichtung nach Anspruch 1, wobei der Befehl von einer Steuerung einer Speicherungsvorrichtung empfangen wird.
  7. Speichervorrichtung nach Anspruch 6, wobei die Speichervorrichtung nichtflüchtige Speichertypen aufweist, wobei die Speicherungsvorrichtung ein Solid-State-Laufwerk ist.
  8. Speichervorrichtung nach Anspruch 7, wobei die nichtflüchtigen Speichertypen einen Phasen-Änderungsspeicher, einen Nanodrahtspeicher, einen ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), einen anti-ferroelektrischen Speicher, einen resistiven Speicher mit einer Metalloxidbasis, eine Sauerstoffleerstellenbasis und einen Leitende Brücken-Direktzugriffsspeicher (CB-RAM), einen Spintronik-Magnettunnelspeicher, einen MTJ-Speicher (Magnet Tunneling Junction), einen Domänenwand (DW)- und Spin Orbit Transfer (SOT)-Speicher, ein auf Thyristoren basierendes Speicher-Array, einen magnetoresistiven Direktzugriffsspeicher (MRAM) mit Memristortechnologie oder einen Spin-Transfer-Torque-MRAM (STT-MRAM) aufweisen.
  9. Vorrichtung, aufweisend: eine Eingangs-/Ausgangsschnittstellenschaltung (E/A-Schnittstellenschaltung) zum Koppeln mit einer ersten Speichervorrichtung; und Schaltungen zum Ausführen von Programmlogik, wobei die Programmlogik dient zum: Programmieren eines ersten Registers an der ersten Speichervorrichtung über die E/A-Schnittstellenschaltung, damit das erste Register mehrere ODT-Typen (On-Die-Termination-Typen) anzeigt, um auszuwählen, wann die erste Speichervorrichtung eine terminierende Speichervorrichtung für eine erste Gruppe von Speichervorrichtungen ist, wobei die mehreren ODT-Typen darauf basieren, ob ein Lesebefehl oder ein Schreibbefehl von einer zweiten Speichervorrichtung, die in der ersten Gruppe von Speichervorrichtungen umfasst ist, oder von einer dritten Speichervorrichtung, die in einer zweiten Gruppe von Speichervorrichtungen umfasst ist, ausgeführt werden soll; und Programmieren eines zweiten Registers an der ersten Speichervorrichtung über die E/A-Schnittstellenschaltung, damit das zweite Register wenigstens zwei ODT-Typen mit separaten ODT-Einstellungen anzeigt, die basierend darauf angewendet werden sollen, ob ein Schreibbefehl von der zweiten Speichervorrichtung oder der dritten Speichervorrichtung ausgeführt werden soll.
  10. Vorrichtung nach Anspruch 9, aufweisend die erste Gruppe von Speichervorrichtungen, die auf einem ersten Package angeordnet ist, das eine erste Gruppenkennung zugewiesen hat, die zweite Gruppe von Speichervorrichtungen, die auf einem zweiten Package angeordnet ist, das eine zweite Gruppenkennung zugewiesen hat, wobei eine vierte Speichervorrichtung in einer dritten Gruppe von Speichervorrichtungen umfasst ist, die sich auf einem dritten Package befindet, das eine dritte Gruppenkennung zugewiesen hat, wobei das erste und das zweite und das dritte Package mit der E/A-Schnittstellenschaltung über einen gleichen Datenbus gekoppelt sind, wobei sich das zweite Package neben dem oder in der Nähe des ersten Package(s) befindet, das dritte Package sich nicht neben dem ersten Package befindet.
  11. Vorrichtung nach Anspruch 10, ferner aufweisend die Programmlogik zum: Programmieren eines dritten Registers an der ersten Speichervorrichtung, um eine erste ODT-Einstellung und eine zweite ODT-Einstellung anzuzeigen, die selektiv angewendet wird, wenn die erste Speichervorrichtung die terminierende Speichervorrichtung für die erste Gruppe von Speichervorrichtungen ist und der Befehl ein Lesebefehl ist, wobei die erste Speichervorrichtung die erste ODT-Einstellung anwenden soll, wenn der Lesebefehl auf die dritte Speichervorrichtung abzielt, oder die zweite ODT-Einstellung anwenden soll, wenn der Lesebefehl auf die vierte Speichervorrichtung abzielt.
  12. Vorrichtung nach Anspruch 9, aufweisend die erste, die zweite und die dritte Speichervorrichtung, welche nichtflüchtige Speichertypen aufweisen, wobei die Vorrichtung eine Steuerung für ein Solid-State-Laufwerk ist, das die erste, die zweite und die dritte Speichervorrichtung aufweist.
  13. Vorrichtung nach Anspruch 12, wobei die nichtflüchtigen Speichertypen einen Phasen-Änderungsspeicher, einen Nanodrahtspeicher, einen ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), einen anti-ferroelektrischen Speicher, einen resistiven Speicher mit einer Metalloxidbasis, eine Sauerstoffleerstellenbasis und einen Leitende Brücken-Direktzugriffsspeicher (CB-RAM), einen Spintronik-Magnettunnelspeicher, einen MTJ-Speicher (Magnet Tunneling Junction), einen Domänenwand (DW)- und Spin Orbit Transfer (SOT)-Speicher, ein auf Thyristoren basierendes Speicher-Array, einen magnetoresistiven Direktzugriffsspeicher (MRAM) mit Memristortechnologie oder einen Spin-Transfer-Torque-MRAM (STT-MRAM) aufweisen.
  14. Speicherungsvorrichtung, aufweisend: eine Steuerung mit einer Eingangs-/Ausgangsschnittstellenschaltung (E/A-Schnittstellenschaltung) zum Koppeln mit mehreren Gruppen von Speichervorrichtungen über denselben Datenkanal; und eine Speichervorrichtung einer ersten Gruppe der mehreren Gruppen von Speichervorrichtungen, wobei die Speichervorrichtung aufweist: eines oder mehrere Register, die so angeordnet sind, dass sie die ODT-Einstellungen (On-Die Termination-Einstellungen) verwalten; und eine Steuerschaltung zum: Empfangen einer Anzeige, dass ein Befehl von der Steuerung durch eine separate Speichervorrichtung, die mit demselben Datenkanal gekoppelt ist, ausgeführt werden soll; Lesen des einen oder der mehreren Register, um zu bestimmen, welche ODT-Einstellung während der Ausführung des Befehls angewendet werden soll, basierend auf einer ersten Gruppenkennung, welche die Nähe der separaten Speichervorrichtung zur Speichervorrichtung angibt und basierend darauf, ob der Befehl ein Lesebefehl oder ein Schreibbefehl ist.
  15. Speicherungsvorrichtung nach Anspruch 14, wobei die erste Gruppe der mehreren Gruppen von Speichervorrichtungen sich in einem ersten Package befindet, wobei die erste Gruppe auch die separate Speichervorrichtung aufweist, wobei die Speichervorrichtung angeordnet ist, um eine terminierende Speichervorrichtung für die erste Gruppe zu sein.
  16. Speicherungsvorrichtung nach Anspruch 15, wobei die erste Gruppenkennung der ersten Gruppe zugeordnet ist, um anzuzeigen, dass sich die separate Speichervorrichtung auf demselben Package befindet, wobei der Befehl ein Schreibbefehl ist, wobei die Steuerschaltung die Speichervorrichtung veranlasst, eine Hi_z-ODT-Einstellung während eines Schreibvorgangs auf die separate Speichervorrichtung bereitzustellen.
  17. Speicherungsvorrichtung nach Anspruch 14, wobei sich die erste Gruppe der mehreren Gruppen von Speichervorrichtungen in einem ersten Package befindet, wobei die erste Gruppe auch die separate Speichervorrichtung aufweist, wobei die Speichervorrichtung so angeordnet ist, dass sie eine terminierende Speichervorrichtung für die erste Gruppe ist, wobei die separate Speichervorrichtung in einer zweiten Gruppe der mehreren Gruppen von Speichervorrichtungen umfasst ist, die sich auf einem zweiten Package befinden, wobei die erste Gruppenkennung der zweiten Gruppe zugewiesen ist, wobei die erste Gruppenkennung angibt, dass sich die separate Speichervorrichtung auf einem anderen Package befindet.
  18. Speicherungsvorrichtung nach Anspruch 17, wobei der Befehl ein Lesebefehl ist, wobei die Steuerschaltung bewirkt, dass die Speichervorrichtung während eines Lesevorgangs eine erste ODT-Einstellung bereitstellt, wenn das zweite Package sich neben dem oder in der Nähe des ersten Package(s) befindet, oder während des Lesevorgangs eine zweite ODT-Einstellung bereitstellt, wenn sich das zweite Package nicht neben dem ersten Package befindet.
  19. Speicherungsvorrichtung nach Anspruch 14, aufweisend die Speichervorrichtung, welche nichtflüchtige Speichertypen aufweist, wobei die Speicherungsvorrichtung ein Solid-State-Laufwerk ist.
  20. Speicherungsvorrichtung nach Anspruch 19, wobei die nichtflüchtigen Speichertypen einen Phasen-Änderungsspeicher, einen Nanodrahtspeicher, einen ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), einen anti-ferroelektrischen Speicher, einen resistiven Speicher mit einer Metalloxidbasis, eine Sauerstoffleerstellenbasis und einen Leitende Brücken-Direktzugriffsspeicher (CB-RAM), einen Spintronik-Magnettunnelspeicher, einen MTJ-Speicher (Magnet Tunneling Junction), einen Domänenwand (DW)- und Spin Orbit Transfer (SOT)-Speicher, ein auf Thyristoren basierendes Speicher-Array, einen magnetoresistiven Direktzugriffsspeicher (MRAM) mit Memristortechnologie oder einen Spin-Transfer-Torque-MRAM (STT-MRAM) aufweisen.
  21. Verfahren, umfassend: Empfangen einer Anzeige an einer Schaltung für eine Speichervorrichtung, dass ein Befehl von einer separaten Speichervorrichtung, die mit demselben Datenkanal gekoppelt ist, ausgeführt werden soll; und Lesen eines oder mehrerer Register, die so angeordnet sind, dass die ODT-Einstellungen (On-Die Termination-Einstellungen) verwaltet werden, um zu bestimmen, welche ODT-Einstellung während der Ausführung des Befehls basierend auf einer ersten Gruppenkennung, welche die Nähe der separaten Speichervorrichtung zur Speichervorrichtung angibt, und basierend darauf, ob der Befehl ein Lesebefehl oder ein Schreibbefehl ist, angewendet werden soll.
  22. Verfahren nach Anspruch 21, umfassend die Speichervorrichtung, die sich auf einem ersten Package befindet, das die separate Speichervorrichtung aufweist, wobei die Speichervorrichtung so angeordnet ist, dass sie eine terminierende Speichervorrichtung für das erste Package ist.
  23. Verfahren nach Anspruch 22, umfassend die erste Gruppenkennung, die dem ersten Package zugeordnet ist, wobei sie angibt, dass sich die separate Speichervorrichtung auf demselben Package befindet, wobei der Befehl ein Schreibbefehl ist, das Verfahren ferner umfassend: Bewirken, dass die Speichervorrichtung während eines Schreibvorgangs auf die separate Speichervorrichtung eine Hi_z-ODT-Einstellung bereitstellt.
  24. Verfahren nach Anspruch 21, umfassend die Speichervorrichtung, die sich auf einem ersten Package befindet, das wenigstens eine weitere Speichervorrichtung aufweist, wobei die Speichervorrichtung als terminierende Speichervorrichtung für das erste Package angeordnet ist, wobei die separate Speichervorrichtung sich auf einem zweiten Package befindet, wobei die erste Gruppenkennung dem zweiten Package zugewiesen ist, wobei die erste Gruppenkennung anzeigt, dass sich die separate Speichervorrichtung auf einem anderen Package befindet.
  25. Verfahren nach Anspruch 24, wobei der Befehl ein Lesebefehl ist, wobei das Verfahren ferner umfasst: Bewirken, dass die Speichervorrichtung während eines Lesevorgangs eine erste ODT-Einstellung bereitstellt, wenn das zweite Package sich neben dem oder in der Nähe des ersten Package(s) befindet, oder während des Lesevorgangs eine zweite ODT-Einstellung bereitstellt, wenn sich das zweite Package nicht neben dem ersten Package befindet.
  26. Verfahren nach Anspruch 21, wobei der Befehl von einer Steuerung einer Speicherungsvorrichtung empfangen wird.
  27. Verfahren nach Anspruch 26, wobei die Speichervorrichtung nichtflüchtige Speichertypen aufweist, wobei die Speicherungsvorrichtung ein Solid-State-Laufwerk ist.
  28. Wenigstens ein maschinenlesbares Medium, umfassend eine Vielzahl von Anweisungen, die in Reaktion auf die Ausführung durch ein System das System veranlasst, ein Verfahren gemäß einem beliebigen der Ansprüche 21 bis 27 auszuführen.
  29. Vorrichtung, umfassend Mittel zum Durchführen der Verfahren nach einem der Ansprüche 21 bis 27.
  30. Verfahren, umfassend: Programmieren eines ersten Registers an einer ersten Speichervorrichtung, die mit einer Steuerung eine über Eingangs-/Ausgangsschnittstellenschaltung (E/A-Schnittstellenschaltung) gekoppelt ist, um zu bewirken, dass das erste Register mehrere ODT-Typen (On-Die-Termination-Typen) anzeigt, um auszuwählen, wann die erste Speichervorrichtung eine terminierende Speichervorrichtung für eine erste Gruppe von Speichervorrichtungen ist, wobei die mehreren ODT-Typen darauf basieren, ob ein Lesebefehl oder ein Schreibbefehl von einer zweiten Speichervorrichtung, die in der ersten Gruppe von Speichervorrichtungen umfasst ist, ausgeführt werden soll oder von einer dritten Speichervorrichtung, die in einer zweiten Gruppe von Speichervorrichtungen umfasst ist, ausgeführt werden soll; und Programmieren eines zweiten Registers an einer ersten Speichervorrichtung über die E/A-Schnittstellenschaltung, um das zweite Register zu veranlassen, wenigstens zwei ODT-Typen mit separaten ODT-Einstellungen anzuzeigen, um sie darauf basierend, ob ein Schreibbefehl von der zweiten Speichervorrichtung oder von der dritten Speichervorrichtung ausgeführt werden soll, anzuwenden.
  31. Verfahren nach Anspruch 30, wobei die erste Gruppe von Speichervorrichtungen auf einem ersten Package angeordnet ist, das eine erste Gruppenkennung zugewiesen hat, wobei die zweite Gruppe von Speichervorrichtungen auf einem zweiten Package angeordnet ist, das eine zweite Gruppenkennung zugewiesen hat, wobei eine vierte Speichervorrichtung, die in einer dritten Gruppe von Speichervorrichtungen umfasst ist, sich auf einem dritten Package befindet, das eine dritte Gruppenkennung zugewiesen hat, wobei das erste und das zweite und das dritte Package mit der E/A-Schnittstellenschaltung über einen gleichen Datenbus gekoppelt sind, wobei sich das zweite Package neben dem oder in der Nähe des ersten Package(s) befindet, das dritte Package sich nicht neben dem ersten Package befindet.
  32. Verfahren nach Anspruch 31, ferner umfassend: Programmieren eines dritten Registers an der ersten Speichervorrichtung, um eine erste ODT-Einstellung und eine zweite ODT-Einstellung anzuzeigen, die selektiv angewendet wird, wenn die erste Speichervorrichtung die terminierende Speichervorrichtung für die erste Gruppe von Speichervorrichtungen ist und der Befehl ein Lesebefehl ist, wobei die erste Speichervorrichtung die erste ODT-Einstellung anwenden soll, wenn sich der Lesebefehl auf die dritte Speichervorrichtung bezieht, oder die zweite ODT-Einstellung anwenden soll, wenn sich der Lesebefehl auf die vierte Speichervorrichtung bezieht.
  33. Verfahren nach Anspruch 32, umfassend die erste, die zweite und die dritte Speichervorrichtung, die nichtflüchtige Speichertypen aufweisen, wobei die Steuerung eine Steuerung für ein Solid-State-Laufwerk ist, das die erste, die zweite und die dritte Speichervorrichtung aufweist.
  34. Wenigstens ein maschinenlesbares Medium, umfassend mehrere Anweisungen, die in Reaktion auf die Ausführung durch ein System das System veranlassen, ein Verfahren gemäß einem beliebigen der Ansprüche 31 bis 33 auszuführen.
  35. Vorrichtung, umfassend Mittel zum Durchführen der Verfahren nach einem der Ansprüche 31 bis 33.
DE102020129114.0A 2019-12-23 2020-11-05 Techniken für dynamische nähe auf der grundlage von on-die-terminierung Pending DE102020129114A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/725,521 US20200133669A1 (en) 2019-12-23 2019-12-23 Techniques for dynamic proximity based on-die termination
US16/725,521 2019-12-23

Publications (1)

Publication Number Publication Date
DE102020129114A1 true DE102020129114A1 (de) 2021-06-24

Family

ID=70328681

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020129114.0A Pending DE102020129114A1 (de) 2019-12-23 2020-11-05 Techniken für dynamische nähe auf der grundlage von on-die-terminierung

Country Status (5)

Country Link
US (1) US20200133669A1 (de)
JP (1) JP2021099892A (de)
KR (1) KR20210081224A (de)
CN (1) CN113094303A (de)
DE (1) DE102020129114A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750190B2 (en) * 2020-12-14 2023-09-05 Intel Corporation Encoded on-die termination for efficient multipackage termination
US11868621B2 (en) * 2021-06-22 2024-01-09 Seagate Technology Llc Data storage with multi-level read destructive memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171585B2 (en) * 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US10141935B2 (en) * 2015-09-25 2018-11-27 Intel Corporation Programmable on-die termination timing in a multi-rank system

Also Published As

Publication number Publication date
JP2021099892A (ja) 2021-07-01
CN113094303A (zh) 2021-07-09
KR20210081224A (ko) 2021-07-01
US20200133669A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
US10025737B2 (en) Interface for storage device access over memory bus
DE102012204991B4 (de) Speichereinrichtungen, Systeme und Verfahren unter Verwendung einer Befehls/Adressenkalibrierung
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE102009037984B4 (de) Speichereinheit für eine hierarchische Speicherarchitektur
DE112017006599T5 (de) Programmierbare datenstruktur zum wiederholten schreiben in einen speicher
DE102020118897A1 (de) Verfahren und Vorrichtung zum Reduzieren des Leistungsverbrauchs für dieAktualisierung von Speicherbauelementen auf einem Speichermodul
DE112016006203T5 (de) Verfahren zum zugreifen auf ein dual in-line memory-modul über mehrere datenkanäle oder betreiben desselben
DE112005002336T5 (de) Befehl, der unterschiedliche Operationen in unterschiedlichen Chips steuert
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE112017004268T5 (de) Befehlsbus mit doppelter datenrate
DE112016004243T5 (de) Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen
DE102007050864B4 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE102012104474A1 (de) Speichervorrichtung
DE102006043311A1 (de) Speichersystem
US20180285252A1 (en) Optimized memory access bandwidth devices, systems, and methods for processing low spatial locality data
DE112022000580T5 (de) Reduzierung der Latenzauswirkungen von Fehlerprüfung und Korrektur auf dem Chip (ECC)
DE102020129114A1 (de) Techniken für dynamische nähe auf der grundlage von on-die-terminierung
DE102005021894A1 (de) Speichersytem, IC-Speicherbauelement und Betriebsverfahren
DE102020133664A1 (de) Initialisierung und Leistungsausfallisolation eines Speichermoduls in einem System
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE102019112628A1 (de) Dimm für speicherkanal mit hoher bandbreite
DE102017106713A1 (de) Rechensystem, nichtflüchtiges Speichermodul und Verfahren zum Betreiben einer Speichervorrichtung
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE102020132763A1 (de) Undirektionaler informationskanal zur überwachung einer drift eines bidirektionalen informationskanals

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE