DE102016123247B4 - Systeme und verfahren zur speicherverwaltung - Google Patents

Systeme und verfahren zur speicherverwaltung Download PDF

Info

Publication number
DE102016123247B4
DE102016123247B4 DE102016123247.5A DE102016123247A DE102016123247B4 DE 102016123247 B4 DE102016123247 B4 DE 102016123247B4 DE 102016123247 A DE102016123247 A DE 102016123247A DE 102016123247 B4 DE102016123247 B4 DE 102016123247B4
Authority
DE
Germany
Prior art keywords
address
data
ecc
storage device
information
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.)
Active
Application number
DE102016123247.5A
Other languages
English (en)
Other versions
DE102016123247A1 (de
Inventor
Bruce Lam
Alok Gupta
David G. Reed
Barry A. Wagner
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102016123247A1 publication Critical patent/DE102016123247A1/de
Application granted granted Critical
Publication of DE102016123247B4 publication Critical patent/DE102016123247B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Speichervorrichtung (220, 920, 1220), umfassend eine Schaltung, die konfiguriert ist, um folgende Schritte auszuführen:- wenn eine Zugriffsanfrage empfangen wird, um erste Daten zu schreiben:Speichern der ersten Daten an einer ersten Adresse der Speichervorrichtung;wenn die Speichervorrichtung (220, 920, 1220) in einem ersten Modus operiert, Speichern von ECC-Informationen entsprechend den ersten Daten an einer zweiten Adresse der Speichervorrichtung (220, 920, 1220), wobei die zweite Adresse basierend auf der ersten Adresse generiert wird;wenn die Speichervorrichtung (220, 920, 1220) in einem zweiten Modus operiert, Speichern der ECC-Information an einer dritten Adresse der Speichervorrichtung (220, 920, 1220), wobei die dritte Adresse außerhalb der Speichervorrichtung (220, 920, 1220) generiert wird, wobei die erste und die dritte Adresse unterschiedlich sind; und- wenn eine Zugriffsanfrage empfangen wird, um die ersten Daten zu lesen:Abrufen der ersten Daten von der ersten Adresse;wenn die Speichervorrichtung (220, 920, 1220) in dem ersten Modus operiert, Abrufen der ECC-Information von der zweiten Adresse; undwenn die Speichervorrichtung (220, 920, 1220) in dem zweiten Modus operiert, Abrufen der ECC-Informationen von der dritten Adresse.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der Konfiguration und der Verwaltung von Informationsablagesystemen.
  • HINTERGRUND DER ERFINDUNG
  • Elektronische Systeme und Vorrichtungen haben einen bedeutenden Beitrag in Richtung der Weiterentwicklung der modernen Gesellschaft geleistet und eine erhöhte Produktivität und verringerte Kosten beim Analysieren und Kommunizieren von Information in einer Vielfalt von Geschäfts-, Wissenschafts-, Bildungs- und Unterhaltungs-Anwendungen erleichtert. Diese elektronischen Systeme und Vorrichtungen umfassen typischerweise eine Ablage von Information in Speicherkomponenten. Es gibt jedoch eine Vielfalt von Themen, die sich auf die Leistung und Zuverlässigkeit von Ablagen und Speichern auswirken.
  • Herkömmliche Vorgehensweisen für die Verwaltung von Speichervorrichtungen beinhalten typischerweise Speichercontroller, welche die Verwaltungsoperationen lenken. Während diese Vorgehensweisen den Speichercontrollern erlauben können, eine angemessene Menge an Steuerung beizubehalten, können Bandbreiten- und Latenzzeitfragen durch Kommunikationen und der Verarbeitung zwischen den Speichercontrollern und Speichervorrichtungen hervorgerufen werden. Die Klärung von Bandbreitenfragen kann das Ausgleichen von Ressourcenverbrauch versus Kosten beinhalten. Beispielsweise kann ein Erhöhen der Kommunikationsbusgröße erhöhte Kosten und einen erhöhten Verbrauch von begrenzten Ressourcen (z.B., Halbleiterplatz, usw.) beinhalten. Das Beibehalten kleinere Busgrößen kann jedoch eine langsamere Leistung und Latenzzeitfragen verursachen. Kleinere Busse bedeuten typischerweise, das zusätzliche Zugriffsbefehle ausgegeben werden müssen, die Betriebscharakteristiken (z.B., Zugriffsfortschritt, Zeitsteuerungsverhalten, Latenzzeitgarantien, usw.) häufig Unsicherheiten hinzufügen.
  • Einige herkömmlichen Anwendungen weisen bedeutende Anforderungen an Genauigkeit und Geschwindigkeit auf (z.B., eigenständig fahrenden Fahrzeugen, medizinische Geräte, Anwendungen der Hochfinanz, usw.). Diese Anwendungen können Maßnahmen umfassen, wie beispielsweise ECC (Error Correcting Code) für Genauigkeit, wobei diese herkömmlichen Vorgehensweisen typischerweise jedoch mehr Information (z.B., ECC-Information, usw.) erfordern, um zwischen einem Prozessor und einem Speicher kommuniziert zu werden. Viele dieser Vorgehensweisen werden an Systemen mit begrenzten Bandbreitenmerkmalen implementiert und können die Ausgabe von mehreren Befehlen für Speicherzugriffe beinhalten, die dem Abrufen von Daten und zugeordneter ECC-Information zugeordnet sind. Die mehreren Befehle und die entsprechenden Latenzzeitfragen der Verarbeitung können die Betriebszeitsteuerung unzuverlässig und nicht deterministisch machen. In Anwendungen, die Genauigkeit und Geschwindigkeit erfordern, können unzuverlässige und nicht-deterministische Ausgaben ernsthafte Folgen hervorrufen (z.B., Unfälle in eigenständig fahrenden Fahrzeugen, Verletzung bei medizinischen Prozeduren unter Verwendung der Systeme, usw.). Die US 8 429 494 B2 offenbart eine nichtflüchtigen RAM Speicher mit einem ersten Bereich, in dem ECC Daten gespeichert werden und einen zweiten Bereich, in dem die Daten gespeichert werden.
  • ZUSAMMENFASSUNG
  • Die vorliegende Erfindung erleichtert eine effiziente und wirksame Nutzung von Ablageverwaltungsmerkmalen. In einer Ausführungsform umfasst eine Speichervorrichtung eine Speicherschnittstelle, eine ECC-Erzeugungskomponente und Ablagekomponenten. Die Speicherschnittstelle ist konfiguriert, um eine Zugriffsanfrage auf eine Adresse zu empfangen, bei der Daten gespeichert sind. Die Speicherschnittstelle kann ebenfalls Antworten auf die Anfrage weiterleiten, welche die Daten und den Daten zugeordnete ECC-Information umfassen. Die ECC-Erzeugungskomponente ist konfiguriert, um eine Adresse automatisch festzulegen, bei der die ECC-Information gespeichert ist, basierend auf den Empfang der Zugriffsanfrage auf eine Adresse, bei der Daten gespeichert sind. In einer beispielhaften Implementierung ist die interne Festlegung der Adresse automatisch, bei der die ECC-Information gespeichert ist. Die Ablagekomponenten werden konfiguriert, um die Information zu speichern.
  • In einer Ausführungsform wird die Adresse, bei der die ECC-Information gespeichert ist, abhängig von einem selektiven Modus erzeugt. In einem ersten Modus wird die ECC-Informationsadresse intern und nicht als eine extern erzeugte ECC-Adresse festgelegt. In einem zweiten Modus wird die ECC-Information Adresse extern festgelegt. Die Daten und die ECC-Information können über eine Schnittstelle in einem einzigen Burst in einem ersten Modus transferiert werden. Die Daten werden über die Schnittstelle in einem einzigen Burst in einem zweiten Modus transferiert und die ECC-Erzeugungskomponente ist im zweiten Modus deaktiviert. Die Kommunikation der Daten und der ECC-Information kann eine deterministische Latenzzeit aufweisen. Die Festlegung der Adresse, bei der die ECC-Daten gespeichert sind, kann auf einer spezifischen logischen bitweisen Verschiebung und einem Additionsbetrag von der Datenadresse basieren. In einer Ausführungsform kann die Festlegung der Adresse, bei der die ECC-Daten gespeichert sind, auf einer spezifischen logischen bitweisen Verschiebung und einem logischen Oder mit der Datenadresse basieren. In einer beispielhaften Implementierung ist eine Region von Ablageorten für die Ablage der ECC-Daten reserviert. Die reservierte Region der Ablageorte kann auf einem Beibehalten eines Verhältnisses von Datenablageorten zu ECC-Informationsablageorten basieren. Das Verhältnis kann 7/8 der Ablageorte zur Datenablage und 1/8 der Ablageorte für ECC- oder anderer Information sein. In einer beispielhaften Implementierung wird die ECC-Erzeugungskomponente selektiv beschäftigt, und wenn die ECC-Erzeugungskomponente nicht beschäftigt ist, wird die ECC-Information weder empfangen noch gespeichert. In einer Ausführungsform kann, wenn ECC-Information nicht gespeichert ist und kein Abschnitt für ECC-Information reserviert ist, der Abschnitt zum Speichern von anderer Information verfügbar gemacht werden. In einer beispielhaften Implementierung ist, wenn ECC-Adresseninformation nicht intern erzeugt wird, die Gesamtheit der Ablageelemente zur Datenablage nicht verfügbar.
  • In einer Ausführungsform umfasst ein Speicherablageverfahren: Reservieren eines ersten Abschnitts der Speicherkapazität für Daten und eines zweiten Abschnitts der Speicherkapazität für ECC-Information; Durchführen eines internen ECC-Adressenerzeugungsprozesses, der eine intern erzeugte ECC-Adresse festlegt; Speichern von ECC-Information gemäß der intern erzeugten ECC-Adresse; und Abrufen von ECC-Information gemäß der intern erzeugten ECC-Adresse. Ein Zugriff auf die Ablage der ECC-Information bei der intern erzeugten ECC-Adresse kann basierend auf verschiedenen Zugriffsaktivitäten (z.B., dem Empfang eines Schreibbefehls für Daten, die der ECC-Information zugeordnet sind, dem Empfang eines Lesebefehls für Daten, die der ECC-Information zugeordnet sind, usw.) automatisch eingeleitet werden. In einer beispielhaften Implementierung umfasst das Speicherablageverfahren ferner ein Empfangen einer Anfrage nach einem spezifischen Abschnitt der Daten und Weiterleiten des spezifischen Abschnitts der Daten und eines Abschnitts der ECC-Information, der dem spezifischen Abschnitt der Daten entspricht, als Reaktion auf die Anfrage, wobei die Latenzzeit vom Empfangen bis zum Weiterleiten deterministisch ist. Das Reservieren, das Durchführen des internen ECC-Adressenerzeugungsprozess, das Speichern und das Abrufen kann Teil eines ersten Ablageprozesses sein, der selektiv durchgeführt wird. Das Speicherablageverfahren kann ferner einen zweiten Ablageprozess umfassen, der selektiv durchgeführt wird. Der zweite Ablageprozess umfasst ein Speichern von ECC-Information gemäß der extern erzeugten ECC-Adresse; und ein Abrufen von ECC-Information gemäß der extern erzeugten ECC-Adresse.
  • In einer Ausführungsform umfasst ein System einen Speicher, der selektiv konfigurierbar ist, um in einem ersten Modus und einem zweiten Modus zu arbeiten, und eine Verarbeitungskomponente, die mit dem Speicher wechselwirkt. Im ersten Modus führt der Speicher eine Aktion mit Bezug auf Information durch, die bei einer in der Anfrage gekennzeichneten spezifischen Adresse gespeichert ist, und führt ebenfalls eine sekundäre Aktion mit Bezug auf Information automatisch durch, die bei einer in der Anfrage nicht enthaltenen zweiten Adresse gespeichert ist. Die zweite Adresse wird intern basierend auf der in der Anfrage gekennzeichneten spezifischen Adresse erzeugt. In einer beispielhaften Implementierung wird die zugeordnete Adresse von der in der Anfrage gekennzeichneten spezifischen Adresse hergeleitet oder durch diese impliziert. Im zweiten Modus führt der Speicher eine Aktion mit Bezug auf die Information durch, die bei in einer Anfrage gekennzeichneten spezifischen Adresse gespeichert ist. Die Verarbeitungskomponente ist konfiguriert, um zu verstehen, dass beim Betrieb im zweiten Modus: ein Bezug auf den zweiten Satz von Adressen vermieden wird, und zu erkennen, dass Antworten auf Anfragen, die dem ersten Abschnitt von Information oder einem ersten Satz von Adressen zugeordnet sind, sowohl den ersten Abschnitt von Information als auch den zweiten Abschnitt von Information umfassen.
  • In einer Ausführungsform umfasst der zweite Modus eine automatisierte interne Adressenbeziehungsverfolgung, die einen primären Abschnitt von Information, der bei einem ersten Satz von Adressen gespeichert ist, und einen sekundären Abschnitt von Information, der bei einem zweiten Satz von Adressen gespeichert ist, verfolgt. Der Speicher kann auf eine Anfrage, die dem ersten Abschnitt von Information zugeordnet ist, mit einer entsprechenden Aktion an dem zweiten Abschnitt von Information automatisch antworten. Die Anfrage und die entsprechende Aktion kann auf das Schreiben des primären Abschnitts von Information in den ersten Satz von Adressen und des sekundären Abschnitts der Information bei dem zweiten Satz von Adressen gerichtet sein. Die Anfrage und die entsprechende Aktion kann auf das Lesen des primären Abschnitts von Information in dem ersten Satz von Adressen und des sekundären Abschnitts der Information bei dem zweiten Satz von Adressen gerichtet sein. In einer beispielhaften Implementierung ist die Latenzzeit deterministisch. Die Menge an Information, die an eine Schnittstelle für eine Lese- oder Schreibtransaktion transferiert wird, kann im ersten Betriebsmodus größer sein, als sie im zweiten Betriebsmodus ist. Der primäre Abschnitt von Information kann Daten sein und der sekundäre Abschnitt von Information kann den Daten zugeordnete ECC-Information sein.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Die begleitenden Zeichnungen, die in dieser Spezifikation aufgenommen sind und einen Teil derselben bilden, sind zur beispielhaften Veranschaulichung der Prinzipien der vorliegenden Erfindung enthalten und sind nicht dazu bestimmt, die vorliegende Erfindung auf die darin veranschaulichten besonderen Implementierungen zu beschränken. Die Zeichnungen sind nicht maßstabsgetreu, sofern nicht speziell anders angegeben.
    • 1 ist ein Blockdiagramm eines beispielhaften herkömmlichen Ablageverwaltungssystems.
    • 2 ist ein Blockdiagramm eines beispielhaften Ablageverwaltungssystems, bei dem die zugehörige Information ECC-Information ist, gemäß einer Ausführungsform.
    • 3 ist ein Blockdiagramm einer beispielhaften DRAM-Ablagekonfiguration gemäß einer Ausführungsform.
    • 4 ist ein Blockdiagramm eines beispielhaften Zugriffs auf einen Speicher gemäß einer Ausführungsform.
    • 5A ist ein Blockdiagramm eines herkömmlichen Ablageverwaltungssystems gemäß einer Ausführungsform.
    • 5B ist ein Blockdiagramm eines weiteren herkömmlichen Ablageverwaltungssystems gemäß einer Ausführungsform.
    • 6 ist ein Blockdiagramm von beispielhaften herkömmlichen Zugriffen auf einen Speicher.
    • 7 ist ein Ablaufdiagramm eines Speicherablageverfahrens gemäß einer Ausführungsform.
    • 8 ist ein Blockdiagramm, das ein beispielhaftes DRAM veranschaulicht, gemäß einer Ausführungsform.
    • 9 ist ein Blockdiagramm eines beispielhaften Ablageverwaltungssystems mit selektiven Betriebsmodus gemäß einer Ausführungsform.
    • 10 ist ein Blockdiagramm eines beispielhaften Zugriffs auf einen Speicher basierend auf einem Betrieb in einem internen ECC-Adressenerzeugungsmodus gemäß einer Ausführungsform.
    • 11 ist ein Blockdiagramm eines beispielhaften Zugriffs auf einen Speicher basierend auf einem Betrieb mit interner ECC-Adressenerzeugung, die unselektiert oder gesperrt ist, gemäß einer Ausführungsform.
    • 12 ist ein Blockdiagramm eines beispielhaften Ablageverwaltungssystems mit ECC-interner Informationserzeugung gemäß einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bezug wird nun ausführlich auf die bevorzugten Ausführungsformen der vorliegenden Erfindung genommen, für die Beispiele in den beigefügten Zeichnungen veranschaulicht sind.
  • In einer Ausführungsform erleichtern Systeme und Verfahren zur Ablage eine erhöhte Leistung, Determinismus und Zuverlässigkeit durch den Gebrauch einer internen Speichervorrichtungs-bezogenen Informationsverwaltung. Die interne Verwaltung zugehöriger Information kann ermöglichen, dass auf Ablageorte, die primären Daten zugeordnet sind, und entsprechende zugehörige Information basierend auf den primären Daten zugeordneten Befehlen zugegriffen werden kann. In einer Ausführungsform ermöglicht die interne Verwaltung zugehöriger Information, dass auf Ablageorte, die Daten zugeordnet sind, und zugehöriger ECC-Information basierend auf einem den Daten zugeordneten Befehl zugegriffen werden kann. Die Befehle können Schreibbefehle und Lesebefehle umfassen. In einer beispielhaften Implementierung ist eine den Daten zugeordnete Adresse in einem Befehl enthalten und eine Speichervorrichtung erzeugt automatisch eine Adresse für entsprechende ECC-Information oder legt dieselbe fest, um einen Zugriff auf Ablageorte für die ECC-Information zu ermöglichen. Die Verwaltung des Ablagesystems für zugehörige Information kann die deterministische Latenzzeit für Informationszugriffs-Operationen erleichtern.
  • 1 ist ein Blockdiagramm eines beispielhaften herkömmlichen Ablageverwaltungssystems 100. Das System 100 umfasst einen Prozessor 110, einen Speicher 120, einen Befehlsbus 130 und einen datenbezogenen Informationsbus 140. Der Prozessor 110 umfasst einen Speichercontroller 111. Der Speichercontroller 111 umfasst ein Datenadressen-Umsetzungsmodul 112. In einer Ausführungsform bildet das Datenadressen-Umsetzungsmodul 112 die physischen Adressen auf die Bank/Zeile/Spaltenadressen des externen DRAM ab, womit die physischen Adressen im Speicher 120 zum Speichern von Daten festgelegt werden. In einer Ausführungsform werden ebenfalls die reservierten oberen 1/8 jeder Seite gemieden, so dass keine Datenzugriffe diesen Platz adressieren, so dass er zur Ablage von ECC-Information verwendet werden kann. Der Befehlsbus 130 kommuniziert Befehle zwischen dem Prozessor 110 und dem Speicher 120. Der datenbezogene Informationsbus 140 kommuniziert sowohl Daten als auch zugehörige Information zwischen dem Prozessor 110 und dem Speicher 120. Der Speicher 120 umfasst eine Speicherschnittstelle 121, die ein Adressenerzeugungsmodul für zugehörige Information 122 umfasst. Das Adressenerzeugungsmodul für zugehörige Information 122 erzeugt physische Ablageortadressen innerhalb des Speichers 120 für Information bezüglich der Daten oder legt dieselben fest. In einer Ausführungsform legt das Adressenerzeugungsmodul für zugehörige Information 122 die Adressen ohne Empfangen der physischen Adressen für die zugehörige Information von dem Prozessor 110 fest. Es versteht sich, dass es eine Vielfalt von unterschiedlichen Beziehungen zwischen den Daten und der zugehörigen Information geben kann. Die Daten und die zugehörige Information kann mittels verschiedener Merkmale, Charakteristiken und Funktionen in Beziehung stehen (sie können einer Anwendung, Genauigkeitsbestimmungen usw. zugeordnet sein) .
  • 2 ist ein Blockdiagramm eines beispielhaften Ablageverwaltungssystems 200, in dem die zugehörige Information ECC-Information gemäß einer Ausführungsform ist. Das System 200 umfasst einen Prozessor 210, einen Speicher 220, einen Befehlsbus 230 und einen Daten/ECC-Informationsbus 240. Der Prozessor 210 umfasst einen Speichercontroller 211 und ein ECC-Modul 215. Der Speichercontroller 211 umfasst ein Datenadressen-Umsetzungsmodul 212, das Adressen zum Speichern von Daten ähnlich dem Datenadressen-Umsetzungsmodul 112 erzeugt oder festlegt. Das ECC-Modul 215 lenkt verschiedene Verarbeitung für die den Daten zugeordnete ECC-Information. Das Verarbeitung des ECC-Moduls 215 kann ECC Bit-Erzeugung, ECC Bit Erfassung und Korrektur, ECC-Scrubbing und so weiter umfassen. Der Befehlsbus 230 kommuniziert Befehle zwischen dem Prozessor 210 und dem Speicher 220. Der Daten/ECC-Informationsbus 240 kommuniziert sowohl Daten als auch entsprechende ECC-Information zwischen dem Prozessor 210 und dem Speicher 220. In einer Ausführungsform ist der Daten/ECC-Informationsbus 240 32 Bit breit. Der Speicher 220 umfasst Ablagekomponenten 227 und eine Speicherschnittstelle 221, die ein ECC-Adressenerzeugungsmodul 222 umfasst. Das ECC-Adressenerzeugungsmodul 222 erzeugt physische Ablageortadressen innerhalb des Speichers 220 für die den Daten zugehörige ECC-Information oder legt dieselben fest. In einer Ausführungsform legt das ECC-Adressenerzeugungsmodul 222 die ECC-Adressen ohne Empfangen der physischen Ablageadressen der ECC-Information von dem Prozessor 210 fest. Die Ablagekomponenten 227 sind konfiguriert, um Information zu speichern. In einer Ausführungsform ist der Speicher 220 ein dynamischer Schreib-/Lesespeicher (DRAM = dynamic random access memory). Es versteht sich, dass mehrere Speicher oder DRAMs (nicht gezeigt) mit dem Speichercontroller 211 gekoppelt sein können.
  • In einer Ausführungsform werden einige ECC-Operationen (z.B., die ECC-Erzeugung, ECC-Erfassung, ECC-Scrubbing, usw.) im Speichercontroller durchgeführt. Die ECC-Operationen ermöglichen den Schutz von Informationsgenauigkeit in sowohl dem DRAM-Array als auch der Schnittstelle zwischen einem Speichercontroller (MC) und den DRAMs des DRAM-Array. In einer beispielhaften Implementierung wird der Zusatzaufwand für ein DRAM einfach gehalten, weil die physische Adresse in die modifizierte RBC(Zeilen/Bank/Spalten)-Adresse von dem Speichercontroller durchgeführt wird. Die dem DRAM präsentierte Spaltenadresse kann mit der in herkömmlichen Operationen präsentierten Spaltenadresse mit der Ausnahme identisch sein, dass eine Adresse, die dem DRAM von einer externen Quelle präsentiert wird, nicht in einem Abschnitt einer Speichervorrichtung auftritt, welcher der Ablage der zugehörigen Information, wie beispielsweise ECC-Information, zugewiesen ist.
  • In einer Ausführungsform ist 1/8 einer Ablageseite der Ablage von ECC-Information zugeordnet. In einer beispielhaften Implementierung wird die modifizierte RBC-Adresse für ein DRAM mit einer 0x800 Byte Seite gemäß den folgenden Eigenschaften bestimmt: COL_ADDR ' = PHYSICAL_ADRESS MOD 0x700
    Figure DE102016123247B4_0001
    COS_BANK_ROW_ADDR ' = PHYSICAL_ADDR / 0x700
    Figure DE102016123247B4_0002
    In einer Ausführungsform verwendet ein DRAM intern einige der Bits der oberen Spalte als eine Adresse in dem ECC-Abschnitt der Seite. In einer beispielhaften Implementierung beinhaltet dies lediglich einfache binäre Mathematik, um die 8 ECC Bytes pro Burst abzurufen: ECC_base = 0x700 + COL_ADDR > > 3
    Figure DE102016123247B4_0003
    In einer beispielhaften Implementierung wird ein Burst von 16 Datentakten mit einer 32 Bit Datenbusbreite (4 Bytes) verwendet, um eine 4x16 oder 64 Byte Transaktion zu ergeben. Diese 64 Bytes, die durch 8 Bytes von ECC-Information geschützt werden, beanspruchen zusätzlich 2 Takte für den Transfer auf den Bus. In einer beispielhaften Implementierung entspricht dies Adressen 0x700 und 0x704 in dem Abschnitt des Speichers, der für ECC-Information reserviert ist. Es versteht sich, dass ein Abschnitt des für ECC-Information reservierten Speichers in einer Vielfalt von Orten sein kann (z.B., am Ende der Seite, am Anfang einer Seite oder verschachtelt). Auf ähnliche Weise kann ein Transfer von ECC-Information in verschiedenen Orten innerhalb eines Kommunikations-Bursts stattfinden (z.B., am Ende des Bursts an der Daten/ECC-Schnittstelle, am Anfang oder verschachtelt, vorausgesetzt, dass sie irgendwo als Teil des Bursts enthalten ist, usw.).
  • Eine Nebenwirkung der gemeinsamen Nutzung des DRAM-Array zwischen der Ablage von sowohl Daten als auch ECC-Information kann eine Verringerung der Gesamtdatenkapazität jedes Die beinhalten, wie von einem Speichercontroller oder Benutzer beobachtet. Die Verringerung der Gesamtdatenkapazität kann zu Ablagekapazitäten mit bruchteiligen oder dezimalzahligen Ablageangaben führen. In einigen Bereichen oder Anwendungen kann dies ein schwieriges Konzept für Benutzer sein, sich daran zu gewöhnen, weil sie gewöhnt sind, Produkte mit ganzzahligen Angaben der Speicherkapazität (z.B., 1 GB, 100 MB, 4 GB, usw.) zu erwerben/zu verwenden. In anderen Bereichen oder Anwendungen (z.B., Server, eingebetteten Systemen, Cloud-Ressourcen, selbstfahrenden Fahrzeugen, usw.) konzentrieren sich Benutzer jedoch mehr auf Ablagekonfigurationen mit Charakteristiken und Merkmalen, die für die bestimmten Verwendungen oder Anwendungen nützlich sind. In einer beispielhaften Implementierung ist die Möglichkeit einer bruchteiligen oder dezimalen Speicherkapazität weniger ein Thema, da der Gebrauch oder die Anwendung die Kapazitätsanforderungen treibt.
  • Ein entscheidender Vorteil der Speichervorrichtungs-bezogenen Informationsverwaltung ist, eine minimal invasive Modifikation den Standard-DRAMs bereitzustellen, die ihnen ermöglicht, in datenkritischen Anwendungen robuster zu sein. In einer Ausführungsform werden geringfügige Modifikationen an der Logik benutzt, um eine DRAM-ECC-Adressenerzeugung zu implementieren. Dies kann dabei helfen, einer bedeutenden typischen Begrenzung für DRAMs zu entsprechen, die gewöhnlich sehr begrenzte Logikressourcen aufgrund von Prozesswahlmöglichkeiten und Kostendruck aufweisen. In einigen Situationen können präsentierte Ausführungsformen Lieferanten erlauben, ihr Standardprodukt funktionsmäßig selektiv zu differenzieren und die Möglichkeit des Erhebens eines Aufschlags für das Merkmal zu ermöglichen.
  • 3 ist ein Blockdiagramm einer beispielhaften DRAM-Ablagekonfiguration 300 gemäß einer Ausführungsform. Die DRAM-Ablagekonfiguration 300 umfasst einen Datenabschnitt 310, einen ECC-Abschnitt 320 und einen Unbenutzten Abschnitt 330. Der Datenabschnitt 310 speichert die Daten und der ECC-Abschnitt 320 speichert den Daten zugeordnete ECC-Information. Der Unbenutzte Abschnitt 330 ist ein paar Bytes in dem ECC-Abschnitt 310, die für die ECC-Ablage unbenutzt sind. In einer Ausführungsform kann der Unbenutzte Abschnitt 330, obwohl für die ECC-Ablage nicht verwendet, zum Speichern anderer Information verwendet werden. In einer Ausführungsform ist das Verhältnis der Speicherkapazität des Datenabschnitts 310 zu der Speicherkapazität des ECC-Abschnitts 320 7/8 für Daten und 1/8 für ECC-Information. Auch wenn 1/8 der Speicherkapazität für die ECC-Information reserviert werden kann, wird in einer Ausführungsform lediglich 7/64 tatsächlich zum Speichern von ECC-Information verwendet, wobei 1/64 unbenutzt oder zum Speichern von etwas anderem übriggelassen wird. In einer beispielhaften Implementierung startet der Datenabschnitt 310 bei Adresse 0x000 und endet bei Adresse 0x6FF, startet der ECC-Abschnitt 320 bei Adresse 0x700 und endet bei Adresse 0x7FF, wovon Adresse 0x700 bis Adresse 0x7DF verwendet werden, um ECC-Information zu speichern und Adresse 0x7E0 bis Adresse 0x7FF für ECC-Information unbenutzt bleiben.
  • 4 ist ein Blockdiagramm eines beispielhaften Zugriffs auf eine Speicherablage 410 gemäß einer Ausführungsform. In einer beispielhaften Implementierung ist der Zugriff eine Leseoperation 420 auf in der Speicherablage 410 gespeicherter Information, die ein 4 Byte breiter DRAM in einer beispielhaften Implementierung ist. Die Leseanfrage ist auf Daten gerichtet, die in Bank R Zeile Q eines DRAM-Array beginnend bei der Spaltenadresse 0x00 gespeichert sind. Die Leseanfrage wird von dem DRAM an einer Befehlsschnittstelle empfangen. Die Leseanfrage ist nach 64 Datenbytes, die zwischen Spaltenadresse 0x00 und 0x3F einschließlich gespeichert sind. Ein Spaltendecodierer decodiert die Spaltenadressen (z.B., Spalte 0x00, 0x40, 0x700, usw.). Nach einer Latenzzeit von 421 beginnt ein Weiterleiten der angefragten Daten an eine Datenkommunikations-Schnittstelle beginnend mit Daten bei der Adresse 0x00. In einer Ausführungsform werden 64 Datenbytes als Reaktion auf die Zugriffsanfrage weitergeleitet (z.B., vier Byte Datenquanten, die bei Adressenorten 0x00, 0x04 bis 0x38 und 0x3C gespeichert sind). Der DRAM legt die Adressenorte für ECC-Information, die 64 Datenbytes zugeordnet sind, automatisch fest, ruft die ECC-Information von den Adressenorten ab und leitet die ECC-Information weiter. In einer beispielhaften Implementierung werden 8 Bytes von ECC-Information als Reaktion auf die Leseanfrage automatisch weitergeleitet (z.B., vier Byte ECC-Informationsquanten, die bei Adressenorten 0x700 und 0x704 gespeichert sind). In einer Ausführungsform werden insgesamt 72 Bytes transferiert, die 64 Datenbytes und 8 Bytes von ECC-Information darstellen.
  • In einer Ausführungsform ist der Speicher in Ablagesegmente oder Abschnitte von 64 Bytes konfiguriert oder organisiert. Es versteht sich, dass die Zugriffsanfragen auf Ablagesegmente oder Abschnitte von verschiedenen Größen gerichtet sein können. Mit Bezug auf 4 kann in einer alternativen Konfiguration die im Speicher 410 Bank R Zeile Q gespeicherte Information in Ablagesegmente oder Abschnitte von 32 Bytes konfiguriert oder organisiert sein und bei Spaltenadresse 0x00 und OxlF einschließlich gespeichert sein. Die ECC-Information kann 4 Bytes in der alternativen Implementierung sein.
  • In Speichern 220 und 410 werden, im Gegensatz zu einem in 5A veranschaulichten, beispielhaften herkömmlichen Ablageverwaltungssystems 500A, Adressen für die ECC-Information intern erzeugt. Das System 500A umfasst einen Prozessor 510, einen Speicher 520, einen Befehlsbus 530 und einen datenbezogenen Informationsbus 540. Der Prozessor 510 umfasst einen Speichercontroller 511 und ein ECC-Modul 515. Der Speichercontroller 511 umfasst ein Datenadressen-Umsetzungsmodul 512, das RBC-Adressen im Speicher 520 zum Speichern von Daten erzeugt oder festlegt. Der Speichercontroller 511 umfasst ebenfalls ein ECC-Adressenübersetzungsmodul 513, das RBC-Adressen im Speicher 520 zum Speichern von ECC-Information erzeugt oder festlegt. Das ECC-Modul 515 lenkt verschiedene Verarbeitung für die den Daten zugeordnete ECC-Information. Der datenbezogene Informationsbus 540 kommuniziert sowohl Daten als auch entsprechende ECC-Information zwischen dem Prozessor 510 und dem Speicher 520. Der Speicher 520 speichert die von dem Prozessor 510 empfangenen Daten und ECC-Information. Die Speicherschnittstelle 521 ist vom Empfang von dem Prozessor 510 von sowohl einer Ablageortadresse für die Daten als auch einer Ablageortadresse für die ECC-Information abhängig.
  • In einigen herkömmlichen Vorgehensweisen werden zusätzliche Schnittstellenverbindungen für die ECC-Information bereitgestellt. 5B ist ein Blockdiagramm eines beispielhaften herkömmlichen Ablageverwaltungssystems 500B. Das Ablageverwaltungssystems 500B umfasst einen Prozessor 570, einen Speicher 590, einen Befehlsbus 581 und Daten 582 und einen ECC-Informationsbus 583. Der Prozessor 570 umfasst einen Speichercontroller 571, der ein ECC-Modul 575 umfasst. Der Speichercontroller 571 erzeugt RBC-Adressen im Speicher 590 zum Speichern von Daten und ECC-Information oder legt dieselben fest. Ein Datenbus 580 kommuniziert Daten und ein ECC-Informationsbus 583 kommuniziert ECC-Information zwischen dem Prozessor 570 und dem Speicher 590. Der Speicher 590 speichert die von dem Prozessor 570 empfangenen Daten und empfangene ECC-Information. In einer Ausführungsform umfasst der Speicher 590 eine Mehrzahl von DRAMs. Die DRAMs können in einer DIMM(dual in-line memory module)-Konfiguration organisiert sein. Es versteht sich, dass andere Ausführungsformen mehrere DIMMs (nicht gezeigt) aufweisen können. Der Speicher 590 umfasst einen DRAM zur Ablage der ECC-Information. Grundsätzlich wird ein zusätzlicher DRAM zur Ablage der ECC-Information bereitgestellt. Um eine bestimmte Menge an ECC-Information zu speichern, muss somit zusätzlicher Ablageplatz für die ECC-Information bereitgestellt werden. In einer Ausführungsform gibt es ein Verhältnis von 9:8 von (Daten + ECC-Info):Daten. In einer Ausführungsform ist die Anforderung an einen zusätzlichen DRAM anders als bei der intern erzeugten DRAM-Adresse der ECC-Information, welche die Ablage der ECC-Information in dem gleichen DRAM wie die Daten unterbringen kann.
  • 6 ist ein Zeitsteuerungsdiagramm von herkömmlichen beispielhaften Zugriffen auf einen Speicher gemäß einer Ausführungsform. In einer beispielhaften Implementierung ist der Zugriff eine Leseoperation 620 von Information, die im Speicher 520 gespeichert ist, der ein 4 Byte breiter DRAM sein kann. Eine Leseanfrage auf Daten, die bei der Adresse 0x00 gespeichert sind, wird an einer Befehlsschnittstelle empfangen. Nach einer Latenzzeit von 621 beginnt das Weiterleiten der angefragten Daten an einen Datenkommunikations-Ausgang beginnend mit Daten bei Adresse 0x00. In einer Ausführungsform werden 64 Datenbytes als Reaktion auf die Zugriffsanfrage weitergeleitet (z.B., vier Byte Datenquanten, die bei Adressenorten 0x00, 0x04 bis 0x38 und 0x3C gespeichert sind). Der Zugriff auf die ECC-Information, die 64 Datenbytes zugeordnet ist, hängt vom Empfangen einer zweiten Anfrage ab, welche die Ablageortadresse für die ECC-Information bereitstellt.
  • Eine zweite Leseanfrage auf bei der Adresse 0x700 gespeicherte Daten wird an einer Befehlsschnittstelle empfangen. Nach einer Latenzzeit von 622 beginnt das Weiterleiten der angefragten Daten an einem Datenkommunikations-Ausgang beginnend mit Daten bei Adresse 0x700. In einer Ausführungsform werden 8 Bytes von relevanten Daten als Reaktion auf die ECC-Informations-Zugriffsanfrage weitergeleitet (z.B., vier Byte Datenquanten, die bei Adressenorten 0x700 und 0x704 gespeichert sind). Wie in 6 veranschaulicht, umfasst ein herkömmlicher beispielhafter Zugriff auf den Speicher 620 eine zweite Leseanfrage nach der ECC-Information, im Gegensatz zu dem in 4 veranschaulichten Speicherzugriff, bei dem der DRAM die ECC-Adresse automatisch festlegt. In vielen DRAMs ist der minimale Daten-Burst mehr als die zwei Takte, die erforderlich sind, um auf die ECC-Information zuzugreifen, wie beim Lesen auf Adresse 0x700 veranschaulicht. Folglich gibt es häufig mehr Datenlesen als erforderlich ist, wobei wertvolle Steckplätze an der Datenschnittstelle belegt werden und der Systemwirkungsgrad gesenkt wird.
  • In einer beispielhaften Implementierung ist der Zugriff eine Leseoperation 630 von im Speicher 590 gespeicherter Information. Eine Leseanfrage nach bei der Adresse 0x00 gespeicherten Daten wird an einem Befehlsleitungseingang empfangen. Nach einer Latenzzeit von 631 beginnt das Weiterleiten der angefragten Daten an einem Datenkommunikations-Ausgang beginnend mit Daten bei Adresse 0x00. In einer Ausführungsform werden 72 Datenbytes als Reaktion auf die Zugriffsanfrage weitergeleitet (z.B., Daten, die bei Adressenorten 0x00, 0x08 bis 0x30 und 0x38 gespeichert sind). Die Datenschnittstellenbreite ist in diesem Beispiel 9 Byte breit, die aus 8 Bytes für Daten und 1 Byte für ECC-Information besteht. Der Burst von 8 Datentakten transferiert daher insgesamt 72 Bytes.
  • 7 ist ein Ablaufdiagramm eines Speicherablageverfahrens 700 gemäß einer Ausführungsform.
  • In Block 710 werden ein erster Abschnitt der Speicherkapazität für Daten und ein zweiter Abschnitt der Speicherkapazität für ECC-Information reserviert. In einer Ausführungsform wird der Block 710 einmal beim Einschalten oder Zurücksetzen durchgeführt.
  • In Block 720 wird ein interner ECC-Adressenerzeugungsprozess durchgeführt, der eine intern erzeugte ECC-Adresse festlegt. In einer Ausführungsform umfasst der interne ECC-Erzeugungsprozess eine Verschiebung und eine logische Addition basierend auf einer den Daten zugeordneten, empfangenen Adresse. In einer anderen Ausführungsform umfasst der interne ECC-Erzeugungsprozess eine Verschiebung und ein logisches Oder basierend auf einer den Daten zugeordneten, empfangenen Adresse. In einer beispielhaften Implementierung werden die empfangenen Datenadressen in das erste 7/8 eines DRAM-Spaltenadressenbereichs abgebildet, wobei Datenadressen keine Orte in Abschnitten umfassen, die für die ECC-Information reserviert sind.
  • In Block 730 wird die ECC-Information gemäß der intern erzeugten ECC-Adresse gespeichert. In einer Ausführungsform wird die Ablage von ECC-Information bei der intern erzeugten ECC-Adresse basierend auf den Empfang eines Schreibbefehls für Daten automatisch eingeleitet, die der ECC-Information zugeordnet sind.
  • In Block 740 wird ECC-Information gemäß der intern erzeugten ECC-Adresse abgerufen. In einer Ausführungsform, wird ein Zugriff auf ECC-Information bei der intern erzeugten ECC-Adresse basierend auf den Empfang eines Lesebefehls für die der ECC-Information zugeordneten Daten automatisch eingeleitet.
  • In einer Ausführungsform umfasst der Informationszugriffsprozess ein Empfangen einer Anfrage nach einem spezifischen Abschnitt der Daten und Weiterleiten des spezifischen Abschnitts der Daten und eines Abschnitts der ECC-Information, die dem spezifischen Abschnitt der Daten entspricht, als Reaktion auf die Anfrage, wobei die Latenzzeit vom Empfangen bis zum Weiterleiten deterministisch ist.
  • Es versteht sich, dass die vorliegende Vorgehensweise mit verschiedenen Implementierungen kompatibel ist. In einer Ausführungsform sind das Reservieren, der interne ECC-Adressen-Erzeugungsprozess, das Speichern und Zugreifen Teil eines ersten Ablageprozesses, der selektiv durchgeführt wird. In einer beispielhaften Implementierung wird ein zweiter Ablageprozess selektiv durchgeführt, wobei der zweite Ablageprozess umfasst: Speichern von ECC-Information gemäß der extern erzeugten ECC-Adresse; und Zugreifen auf ECC-Information gemäß der extern erzeugten ECC-Adresse.
  • 8 ist ein Hardware-Blockdiagramm, das einen beispielhaften DRAM veranschaulicht, gemäß einer Ausführungsform. Adressen 891 werden empfangen und in dem Adressenzwischenspeicher 831 zwischengespeichert, wohingegen Befehle 891 empfangen und von einem Befehlsdecodierer- und Logik-Modul 832 decodiert werden. Die Zeilenadresse wird in dem Zeilen-Adressenzwischenspeicher und einem Multiplexermodul 833 zwischengespeichert, während die Spaltenadresse in dem Spalten-Adressenzwischenspeichermodul 871 zwischengespeichert wird.
  • Um die Zugriffs-Latenzzeit zu verringern, wird der DRAM in mehrere Einheiten gleicher Größe genannt Bänke aufgeteilt. Die meisten DRAM-Chips weisen eine Mehrfach-Bankarchitektur auf und können in Bänke, Zeilen und Spalten organisiert sein. Ein Bankauswahl-Logikmodul 839 wählt die geeignete Bank aus Bank [0:n] 835 für einen Zugriff unter Verwendung der Adresseninformation aus. Ein typischer 512 MBit SDRAM-Chip umfasst beispielsweise vier unabhängige 128 MBit Speicherbänke. Jede Zeile in einer Bank ist ein Array von jeweils 16,384 Bit. Eine Bank ist idle, aktiv oder ändert sich von einem zu dem anderen Zustand.
  • Unter Verwendung eines Zeilendecodierers 834 wird die Zeilenadresse an die ausgewählte Bank von Bank [0:n] angelegt. Der Zeilenadressen-Decodierer wählt die korrekte Zeile aus, die an die Leseverstärker 837 zu senden ist. Der „aktive“ Befehl aktiviert eine idle Bank. Beispielsweise kann er eine Zwei-Bit Bankadresse und eine 13-Bit Zeilenadresse präsentieren und ein Lesen von der Zeile in 16,384 Spaltenleseverstärker 837 bewirken. Dies wird ebenfalls als „Öffnen“ der Zeile oder „Öffnen“ einer Seite bezeichnet.
  • Die Leseverstärker 837 sind ebenfalls als „Zeilenpuffer“ bekannt und stellen Zugriffe auf die Zeile bereit, die an der Bank offen ist. Bevor ein Speicherort gelesen werden kann, wird die gesamte Zeile, die den Speicherort enthält, geöffnet und in den Zeilenpuffer gelesen. Die Seiten(Zeilen)-Daten bleiben in dem Zeilenpuffer, bis die Seite explizit geschlossen ist. Wenn ein Zugriff auf die offenen Seitendaten bei dem Speichercontroller ankommt, kann er von dem Zeilenpuffer sofort bedient werden. Wenn ein Zugriff auf eine andere Zeile in dieser Bank bei dem Speichercontroller ankommt, muss die aktuelle Zeile geschlossen und die neue Zeile geöffnet werden, bevor die Anfrage an den DRAM zum Bedienen weitergeleitet werden kann.
  • Sobald die Zeile aktiviert wurde, sind „Lese“- und „Schreib“-Befehle an dieser Zeile möglich. Sowohl Lese- als auch Schreibbefehle erfordern eine Spaltenadresse. Die Spaltenadresse wird unter Verwendung eines Spaltendecodierers 880 einem I/O-Auswahlmodul 838 bereitgestellt. Für eine Leseoperation angefragte Daten werden dann gelesen und die Ausgangsdaten werden auf die DQ-Leitungen 890 gegeben. Für eine Schreiboperation werden Schreibdaten in den Zeilenpuffer bei der ausgewählten Spaltenadresse geschrieben.
  • Ein Schreibbefehl wird von den Daten begleitet, die auf die DQ-Leitungen 890 zu treiben sind. Es ist die Pflicht des Speichercontrollers, sicherzustellen, dass der DRAM Lesedaten nicht auf die DQ-Leitungen zur gleichen Zeit treibt, die von ihm benötigt wird, um Schreibdaten von diesen Leitungen zu lesen. Die Daten werden in Leseverstärker 837 durch das I/O-Auswahlmodul 838 geschrieben. Der Spaltendecodierer 880 wird erneut verwendet, um die geeignete Spalte auszuwählen, in die Daten geschrieben werden können. Während eines Schreibens in eine bestimmte Zelle werden alle Spalten in einer Zeile genau wie während des Lesens gleichzeitig abgefühlt, so dass, obwohl sich lediglich die Ablagezellenkondensatorladung einer einzigen Spalte geändert haben kann, die gesamte Zeile aufgefrischt wird (zurückgeschrieben).
  • Die Ladung an den DRAM-Speicherzellen wird natürlich im Laufe der Zeit aufgrund vielen Faktoren abgeführt, welche die Leckagerate einschließlich Temperatur beeinflussen können. Eine deutliche Verringerung in gespeicherter Ladung kann zu einem Datenverlust führen. Damit dies nicht geschieht, muss der DRAM periodisch aufgefrischt werden, indem die in jeder einzelnen Speicherzelle enthaltene Ladung verstärkt wird. Typischerweise spezifizieren Hersteller, dass die Ablagezellenkondensatoren jeder Zeile alle 64 ms oder weniger aufgefrischt werden müssen. In den meisten Fällen beinhalten Auffrischungszyklen eine Wiederherstellung der Ladung entlang einer gesamten Seite. Über den Verlauf des gesamten DRAM-Auffrischungsintervalls wird auf jede Seite zugegriffen und diese anschließend wiederhergestellt. Am Ende des Intervalls beginnt der Prozess erneut.
  • DRAMs werden typischerweise ebenfalls einen Auffrischungs-Zeilenzähler 844 umfassen, um die letzte Zeile weiterzuverfolgen, die aufgefrischt wurde - dieser Zeilenzähler wird verwendet, um die Zeilen zu bestimmen, die als nächstes aufgefrischt werden müssen. Eine Bank muss für einen minimalen Zeitraum inaktiv (idle) sein, bevor der Auffrischungs(REF)-Befehl angelegt werden kann. Der Auffrischungsbefehl wird von Schaltungen im Speichercontroller erzeugt. Der Auffrischungszähler 844 enthält typischerweise die Adresse der Zeile, die aufzufrischen ist, die auf Zeilenadressleitungen des Chips angelegt wird, und der Zähler inkrementiert nach Abschluss einer Auffrischungsoperation. Wenn eine Auffrischung abgeschlossen wurde, wird die entsprechende Bank im Ruhezustand (idle state) gelassen. Einige Speichercontroller können einen Refresh-all-Befehl verwenden, der alle Bänke in dem DRAM gleichzeitig auffrischt. Andere können den Pro-Bank-Auffrischungsbefehl verwenden, und um eine unabhängige Bank-Auffrischung zu handhaben, kann der DRAM eine Kopie des Zählers 844 pro Bank aufweisen.
  • Wenn ein DRAM nicht aktiv benutzt wird, kann er in einen Niederleistungsmodus gebracht werden, während desselben der DRAM eine periodische Auffrischung intern durchführt, um Datenintegrität beizubehalten, die ebenfalls als eine Selbst-Auffrischung bekannt ist. Dies kann von dem Speichercontroller durchgeführt werden, der einen Selbst-Auffrischungsbefehl ausgibt, um den DRAM in den Selbst-Auffrischungszustand zu sequenzieren. Der Speichercontroller leitet keinen expliziten Auffrischungsbefehl ein, wenn der DRAM in einem Selbstauffrischungszustand ist. Typischerweise wird das Selbstauffrischungs-Logikmodul 843 in Verbindung mit dem internen Auffrischungs-Zeilenzähler der DRAMs 844 verwendet, um die Zeilen weiterzuverfolgen, die aufgefrischt werden. Die Selbstauffrischungslogik 843 enthält eine Zeitsteuerungslogik, um neue interne Auffrischungsoperationen periodisch auszulösen.
  • In einer Ausführungsform umfasst der Spaltendecodierer 880 eine ECC-Adressenerzeugungs-Komponente 812. In einer beispielhaften Implementierung ist die ECC-Adressenerzeugungs-Komponente 812 der ECC-Adressenerzeugungs-Komponente 222 ähnlich. Das ECC-Adressenerzeugungsmodul 812 erzeugt physische Ablageortadressen innerhalb des Leseverstärkers 837 für ECC-Information bezüglich der Daten oder legt diese fest. In einer Ausführungsform legt das ECC-Adressenerzeugungsmodul 812 die ECC-Adressen ohne Empfangen der physischen Ablageadressen der ECC-Information von einem externen Speichercontroller fest.
  • Es versteht sich, dass die vorliegende Vorgehensweise mit verschiedenen Konfigurationen kompatibel ist. Andere Seitengrößen als 2KB (einschließlich Seitengrößen mit Nicht-Potenzen von 2), die sich aus einem Standard-DRAM mit seinen eigenen ECC-Bits ergeben könnten, können verwendet werden. Die Verhältnisse zwischen unterschiedlichen Konfigurations-Charakteristiken können variieren. Beispielsweise können für andere Bursts-Längenverhältnisse als 18:16 (einschließlich keiner Änderung für die zweite Ausführungsform) die ECC-Verhältnisse andere Verhältnisse als 8:1, andere MC-Adressenumsetzungen als 8:7 und so weiter umfassen. Eine Modusrücksetzung im DRAM kann die verschiedenen Ausführungsformen/Betriebsmoden und Adressenbereichen aktivieren/deaktivieren. Ein Register-Schreib-Modus könnte über einem existierenden Schema oder über CA oder Daten oder einem hybriden Schnittstellenmodus sein, wo lediglich ein Abschnitt des gesamten Adressenbereichs Ende-zu-Ende ECC aktiviert ist (greift folglich lediglich auf jene Seiten [oder Blöcke] zu, welche die zusätzlichen ECC-Datentakte und den zugeordneten Verlust von Kapazität/Bandbreite tragen).
  • 9 ist ein Blockdiagramm eines beispielhaften Ablageverwaltungssystems 900 gemäß einer Ausführungsform. Das Ablageverwaltungssystem 900 arbeitet selektiv in zwei Moden. Im ersten Modus führt das Ablageverwaltungssystem 900 eine ECC-Adressenerzeugung im Speicher 920 durch und im zweiten Modus führt der Speicher 920 keine ECC-Adressenerzeugung durch. Im zweiten Modus kann das Ablageverwaltungssystem 900 ECC-Adresseninformation von einer externen Quelle empfangen oder Information ohne ECC-Schutz speichern.
  • In einer Ausführungsform ist das System 900 dem System 200 ähnlich. Das System 900 umfasst einen Prozessor 910, einen Speicher 920, einen Befehlsbus 930 und einen Daten/ECC-Informationsbus 940. Der Prozessor 910 umfasst einen Speichercontroller 911 und ein ECC-Modul 915. Der Speichercontroller 911 umfasst ein Datenadressen-Umsetzungsmodul 912, das RBC-Adressen im Speicher 920 zum Speichern von Daten erzeugt oder festlegt. Das ECC-Modul 915 lenkt eine verschiedene Verarbeitung für die der ECC-Information zugeordneten Daten. Der Befehlsbus 930 kommuniziert Befehle zwischen dem Prozessor 910 und dem Speicher 920. Der Daten/ECC-Informationsbus 940 kommuniziert sowohl Daten als auch entsprechende ECC-Information zwischen dem Prozessor 910 und dem Speicher 920. Der Speicher 920 umfasst eine Speicherschnittstelle 921, die ein ECC-Adressenerzeugungsmodul 922 umfasst. Das ECC-Adressenerzeugungsmodul 922 kann physische Ablageortadressen innerhalb des Speichers 920 für ECC-Information bezüglich der Daten basierend darauf selektiv erzeugen oder festlegen, ob das Ablageverwaltungssystems in einem internen ECC-Adressenerzeugungsmodus arbeitet oder nicht.
  • 10 ist ein Blockdiagramm eines beispielhaften Zugriffs auf Ablageorte im Speicher 920 basierend auf einem Betrieb in einem internen ECC-Adressenerzeugungsmodus gemäß einer Ausführungsform. Der Zugriff auf die Ablageorte kann basierend auf den Empfang eines Befehls (z.B., eines Lesebefehls, eines Schreibbefehls, usw.) erfolgen. In einer beispielhaften Implementierung ist der Speicher 920 gemäß einer Konfiguration 1010 organisiert und der Zugriff ist eine Leseoperation 1020 von im Speicher 920 gespeicherter Information. Der Speicher 920 kann ein 4 Byte breiter DRAM in einer beispielhaften Implementierung sein. Die Leseanfrage ist auf Daten, die in Bank R Zeile Q eines DRAM-Array gespeichert sind, beginnend bei Adresse 0x00 gerichtet, die an einer Befehlsschnittstelle empfangen werden. Die Leseanfrage umfasst Daten in den zwischen Spaltenadresse 0x00 und 0x3F einschließlich gespeicherten 64 Datenbytes. Ein Spaltendecodierer decodiert die Spaltenadressen (z.B., Spalten 0x00, 0x40, 0x700, usw.). Nach einer Latenzzeit von 1021 beginnt das Weiterleiten der angefragten Daten an einem Datenkommunikations-Ausgang beginnend mit 4 Datenbytes bei Adresse 0x00. In einer Ausführungsform werden 64 Datenbytes als Reaktion auf die Zugriffsanfrage weitergeleitet (z.B., 4 Byte Datenquanten, die bei Adressenorten 0x00, 0x04 bis 0x38 und 0x3C gespeichert sind). Der DRAM legt die Adressenorte für die den 64 Datenbytes zugeordnete ECC-Information automatisch fest und leitet die ECC-Information automatisch weiter. In einer beispielhaften Implementierung werden 8 Bytes von ECC-Information als Reaktion auf die Zugriffsanfrage automatisch weitergeleitet (z.B. ECC-Information, die bei Adressenorten 0x700 und 0x704 gespeichert ist).
  • 11 ist ein Blockdiagramm eines beispielhaften Zugriffs auf den Speicher 920 basierend auf den Betrieb mit einem internen ECC-Adressenerzeugungsmodus, der unselektiert oder deaktiviert ist, gemäß einer Ausführungsform. In einer beispielhaften Implementierung ist der Zugriff eine Leseoperation 1120 auf im Speicher 920 gespeicherter Information. Eine Leseanfrage auf bei der Adresse 0x00 gespeicherten Daten wird an einem Befehlzeilen-Eingang empfangen. Nach einer Latenzzeit von 1121 beginnt das Weiterleiten der angefragten Daten an einen Datenkommunikations-Ausgang beginnend mit Daten bei der Adresse 0x00. In einer Ausführungsform werden 64 Datenbytes als Reaktion auf die Zugriffsanfrage weitergeleitet (z.B., bei Adressenorten 0x00, 0x08 bis 0x30 und 0x38 gespeicherte Daten). Der Zugriff auf die den 64 Datenbytes zugeordnete ECC-Information hängt vom Empfangen einer zweiten Anfrage ab, welche die Ablageortadresse für die ECC-Information bereitstellt.
  • In einer Ausführungsform wird die ECC-Erfassung und -Korrektur vollständig innerhalb des DRAM gehandhabt. Dies hat den Vorteil eines Verringerns des Leistungsverlusts an der MC_DRAM-Schnittstelle aufgrund der erweiterten Burst-Länge, wobei jedoch lediglich das Array und nicht die Daten auf der ganzen Strecke bis zum MC geschützt werden. In einer beispielhaften Implementierung muss der MC immer noch vermeiden, auf einen Bruchteil des DRAM-Array per Spalte zuzugreifen, damit er für ECC-Daten verwendet werden kann.
  • 12 ist ein Blockdiagramm eines beispielhaften Ablageverwaltungssystems 1200 gemäß einer Ausführungsform. Das System 1200 umfasst einen Prozessor 1210, einen Speicher 1220, einen Befehlsbus 1230 und einen Daten-ECC-Bus 1240. Der Prozessor 1210 umfasst einen Speichercontroller 1211. Der Speichercontroller 1211 umfasst ein Datenadressen-Umsetzungsmodul 1212, das RBC-Adressen von Datenablageorten im Speicher 1220 erzeugt oder festlegt. Der Befehlsbus 1230 kommuniziert Befehle zwischen dem Prozessor 1210 und dem Speicher 1220. Der Daten-ECC-Bus 1240 kommuniziert Daten zwischen dem Prozessor 1210 und dem Speicher 1220.
  • Der Speicher 1220 umfasst eine Speicherschnittstelle 1221, die ein ECC-Adressenerzeugungsmodul 1222 und ein ECC-Modul 1225 umfasst. Das ECC-Modul 1225 lenkt verschiedene Verarbeitung für die den Daten zugeordnete ECC-Information. Die Verarbeitung des ECC-Moduls 1225 kann ECC-Bit-Erzeugung, ECC-Bit-Erfassung und - Korrektur, ECC-Scrubbing und so weiter umfassen. Das ECC-Adressenerzeugungsmodul 1222 erzeugt physische Ablageortadressen innerhalb des Speichers 1220 für die ECC-Information bezüglich der Daten oder legt diese fest. In einer Ausführungsform legt das ECC-Adressenerzeugungsmodul 1222 die ECC-Adressen ohne Empfangen der physischen Ablageadressen der ECC-Information von dem Prozessor 1210 fest.
  • Es versteht sich, dass Ausführungsformen der vorliegenden Erfindung mit einer Vielfalt von unterschiedlichen Arten von greifbaren Speichern oder Ablagen (z.B., RAM, DRAM, Flash, Festplatte, CD, DVD, usw.) kompatibel sind und damit implementiert werden können. Der Speicher oder die Ablage können, obwohl änderbar oder mehrfach beschreibbar, als ein nicht-transitorisches Ablagemedium betrachtet werden. Durch Angeben eines nicht-transitorisches Ablagemediums ist nicht beabsichtigt, die Charakteristiken des Mediums zu beschränken, und eine Vielfalt von Ablagemedien (z.B., programmierbare, löschbare, nicht-programmierbare, Lese/Schreib-, Nur-Lese-Medien usw.) können umfasst sein, wobei „nicht-transitorische“ computerlesbare Medien sämtliche computerlesbaren Medien mit der einzigen Ausnahme eines transitorischen, sich ausbreitenden Signals umfassen.

Claims (12)

  1. Speichervorrichtung (220, 920, 1220), umfassend eine Schaltung, die konfiguriert ist, um folgende Schritte auszuführen: - wenn eine Zugriffsanfrage empfangen wird, um erste Daten zu schreiben: Speichern der ersten Daten an einer ersten Adresse der Speichervorrichtung; wenn die Speichervorrichtung (220, 920, 1220) in einem ersten Modus operiert, Speichern von ECC-Informationen entsprechend den ersten Daten an einer zweiten Adresse der Speichervorrichtung (220, 920, 1220), wobei die zweite Adresse basierend auf der ersten Adresse generiert wird; wenn die Speichervorrichtung (220, 920, 1220) in einem zweiten Modus operiert, Speichern der ECC-Information an einer dritten Adresse der Speichervorrichtung (220, 920, 1220), wobei die dritte Adresse außerhalb der Speichervorrichtung (220, 920, 1220) generiert wird, wobei die erste und die dritte Adresse unterschiedlich sind; und - wenn eine Zugriffsanfrage empfangen wird, um die ersten Daten zu lesen: Abrufen der ersten Daten von der ersten Adresse; wenn die Speichervorrichtung (220, 920, 1220) in dem ersten Modus operiert, Abrufen der ECC-Information von der zweiten Adresse; und wenn die Speichervorrichtung (220, 920, 1220) in dem zweiten Modus operiert, Abrufen der ECC-Informationen von der dritten Adresse.
  2. Speichervorrichtung (220, 920, 1220) gemäß Anspruch 1, wobei die Daten und die ECC-Information über eine Schnittstelle in einem einzigen Burst in einem ersten Modus transferiert werden.
  3. Speichervorrichtung (220, 920, 1220) gemäß Anspruch 2, wobei die Daten über die Schnittstelle in einem einzigen Burst in einem zweiten Modus transferiert werden und die ECC-Erzeugungskomponente im zweiten Modus deaktiviert ist.
  4. Speichervorrichtung (220, 920, 1220) gemäß einem der vorangehenden Ansprüche, wobei die Kommunikation der Daten und der ECC-Information eine deterministische Latenzzeit aufweist.
  5. Speichervorrichtung (220, 920, 1220) gemäß einem der vorangehenden Ansprüche, wobei die Festlegung und Verfolgung der Adresse, bei der die ECC-Daten gespeichert sind, auf einer spezifischen logischen bitweisen Verschiebung an der Zugriffsadresse basiert.
  6. Speichervorrichtung (220, 920, 1220) gemäß einem der vorangehenden Ansprüche, wobei eine reservierte Region von Ablageorten auf einem Beibehalten eines Verhältnisses von Datenablageorten zu ECC-Informationsablageorten basiert.
  7. Speichervorrichtung (220, 920, 1220) gemäß Anspruch 6, wobei das Verhältnis 7/8 von Ablageorten zur Datenablage und 1/8 von Ablageorten für ECC oder andere Information ist.
  8. Speichervorrichtung (220, 920, 1220) gemäß einem der vorangehenden Ansprüche, wobei die ECC-Erzeugungskomponente selektiv beschäftigt ist, und wenn die ECC-Erzeugungskomponente nicht beschäftigt ist, die ECC-Information weder empfangen noch gespeichert wird.
  9. Verfahren zum Speichern von Informationen in einer Speichervorrichtung (220, 920, 1220), wobei das Verfahren folgende Schritte umfasst: - wenn eine Zugriffsanfrage empfangen wird, um einen ersten Datenwert zu schreiben: Speichern der ersten Daten an einer ersten Adresse der Speichervorrichtung (220, 920, 1220); wenn die Speichervorrichtung (220, 920, 1220) in einem ersten Modus operiert, Speichern von ECC-Informationen, die den ersten Daten entsprechen, an einer zweiten Adresse der Speichervorrichtung (220, 920, 1220), wobei die zweite Adresse basierend auf der ersten Adresse generiert wird; wenn die Speichervorrichtung (220, 920, 1220) in einem zweiten Modus operiert, Speichern der ECC-Information an einer dritten Adresse der Speichervorrichtung (220, 920, 1220), wobei die dritte Adresse außerhalb der Speichervorrichtung (220, 920, 1220) generiert wird, wobei die erste und die dritte Adresse unterschiedlich sind; und - wenn eine Zugriffsanfrage empfangen wird, um die ersten Daten zu lesen: Abrufen der ersten Daten von der ersten Adresse; wenn die Speichervorrichtung (220, 920, 1220) in dem ersten Modus operiert, Abrufen der ECC-Informationen von der zweiten Adresse; und wenn die Speichervorrichtung (220, 920, 1220) in dem zweiten Modus operiert, Abrufen der ECC-Informationen von der dritten Adresse.
  10. Verfahren gemäß Anspruch 9, wobei die Ablage der ECC-Information bei der intern erzeugten ECC-Adresse basierend auf dem Empfang eines Schreibbefehls für Daten, die der ECC-Information zugeordnet sind, automatisch eingeleitet wird.
  11. Verfahren gemäß Anspruch 9 oder 10, wobei ein Abrufen der ECC-Information bei der intern erzeugten ECC-Adresse basierend auf dem Empfang eines Lesebefehls für Daten, die der ECC-Information zugeordnet sind, automatisch eingeleitet wird.
  12. Verfahren gemäß einem der Ansprüche 9 bis 11, wobei die Kommunikation der Daten und der ECC-Information eine deterministische Latenzzeit aufweist.
DE102016123247.5A 2015-12-01 2016-12-01 Systeme und verfahren zur speicherverwaltung Active DE102016123247B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562261801P 2015-12-01 2015-12-01
US62/261,801 2015-12-01

Publications (2)

Publication Number Publication Date
DE102016123247A1 DE102016123247A1 (de) 2017-06-01
DE102016123247B4 true DE102016123247B4 (de) 2024-03-21

Family

ID=58692755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016123247.5A Active DE102016123247B4 (de) 2015-12-01 2016-12-01 Systeme und verfahren zur speicherverwaltung

Country Status (2)

Country Link
US (2) US10528423B2 (de)
DE (1) DE102016123247B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016123247B4 (de) * 2015-12-01 2024-03-21 Nvidia Corporation Systeme und verfahren zur speicherverwaltung
US20190243566A1 (en) * 2018-02-05 2019-08-08 Infineon Technologies Ag Memory controller, memory system, and method of using a memory device
WO2022068127A1 (zh) * 2020-09-30 2022-04-07 长鑫存储技术有限公司 自刷新周期测试方法及装置、自动刷新次数测试方法及装置
DE102022210908A1 (de) 2022-10-14 2024-04-25 Elmos Semiconductor Se Gateway zur verbindung mit einem sensor eines kraftahrzeugs und verfahren zum betreiben des gateways

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429494B2 (en) 2009-08-06 2013-04-23 Sony Corporation Nonvolatile random access memory and nonvolatile memory system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754858B2 (en) * 2001-03-29 2004-06-22 International Business Machines Corporation SDRAM address error detection method and apparatus
US7464241B2 (en) * 2004-11-22 2008-12-09 Intel Corporation Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding
US7451380B2 (en) * 2005-03-03 2008-11-11 International Business Machines Corporation Method for implementing enhanced vertical ECC storage in a dynamic random access memory
US7676730B2 (en) * 2005-09-30 2010-03-09 Quantum Corporation Method and apparatus for implementing error correction coding in a random access memory
US8359521B2 (en) * 2008-01-22 2013-01-22 International Business Machines Corporation Providing a memory device having a shared error feedback pin
CN102272730B (zh) * 2008-10-09 2017-05-24 美光科技公司 经虚拟化错误校正码nand
US9009570B2 (en) * 2012-06-07 2015-04-14 Micron Technology, Inc. Integrity of an address bus
KR20140042546A (ko) * 2012-09-28 2014-04-07 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
US9984768B2 (en) * 2014-10-20 2018-05-29 Sandisk Technologies Llc Distributing storage of ECC code words
US10552058B1 (en) * 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US10255004B2 (en) * 2015-11-16 2019-04-09 Marvell World Trade Ltd. Systems and methods for managing address-mapping data in memory devices
DE102016123247B4 (de) * 2015-12-01 2024-03-21 Nvidia Corporation Systeme und verfahren zur speicherverwaltung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429494B2 (en) 2009-08-06 2013-04-23 Sony Corporation Nonvolatile random access memory and nonvolatile memory system

Also Published As

Publication number Publication date
US20200089568A1 (en) 2020-03-19
US11256568B2 (en) 2022-02-22
US10528423B2 (en) 2020-01-07
US20170153945A1 (en) 2017-06-01
DE102016123247A1 (de) 2017-06-01

Similar Documents

Publication Publication Date Title
DE102016123247B4 (de) Systeme und verfahren zur speicherverwaltung
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE102006054998B4 (de) Latenzsteuerschaltung, Halbleiterspeicherbauelement und Verfahren zum Steuern der Latenz
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
DE102007050864B4 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE102007038615B4 (de) Speicher mit Speicherbänken und Modusregistern, sowie Verfahren zum Betreiben eines solchen Speichers
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE102004027121B4 (de) Ein Mehrfachbankchip, der mit einer Steuerung kompatibel ist, die für eine geringere Anzahl von Banken entworfen ist, und ein Verfahren zum Betreiben
DE602004002300T2 (de) Selektive bankauffrischung
US20050144369A1 (en) Address space, bus system, memory controller and device system
DE112005002336T5 (de) Befehl, der unterschiedliche Operationen in unterschiedlichen Chips steuert
DE112017006599T5 (de) Programmierbare datenstruktur zum wiederholten schreiben in einen speicher
DE112011106032T5 (de) Energieeinsparung durch Speicherkanal-Abschaltung
DE3834759A1 (de) Halbleiterspeichereinrichtung mit ablage-speicher und betriebsverfahren
DE102020118897A1 (de) Verfahren und Vorrichtung zum Reduzieren des Leistungsverbrauchs für dieAktualisierung von Speicherbauelementen auf einem Speichermodul
DE2948159A1 (de) Integrierter speicherbaustein mit waehlbaren betriebsfunktionen
DE102007036989A1 (de) Verfahren zum Betrieb einer Speichervorrichtung, Speichereinrichtung und Speichervorrichtung
DE102018121991A1 (de) Halbleiterspeichervorrichtung und datenpfadkonfigurationsverfahren dafür
DE112004002181T5 (de) Verfahren und Schaltungskonfiguration zum Auffrischen von Daten in einem Halbleiterspeicher
DE102011081438A1 (de) Modifizierte Leseoperation für einen nichtflüchtigen Speicher
DE102007062930A1 (de) Speichervorrichtung mit mehreren Konfigurationen
DE10306062B3 (de) Speichermodul mit einer Mehrzahl von integrierten Speicherbauelementen und einer Refresh-Steuerschaltung
DE102020116778B3 (de) Erweiterte bzw. fortgeschrittene CE-Kodierung für Bus-Multiplexer-Gitter für SSD

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G06F0003060000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R016 Response to examination communication
R018 Grant decision by examination section/examining division