DE102018131365A1 - Speicher mit verringerter anfälliglkeit für herstellungsbedingte datenbeschädigungsfehler - Google Patents

Speicher mit verringerter anfälliglkeit für herstellungsbedingte datenbeschädigungsfehler Download PDF

Info

Publication number
DE102018131365A1
DE102018131365A1 DE102018131365.9A DE102018131365A DE102018131365A1 DE 102018131365 A1 DE102018131365 A1 DE 102018131365A1 DE 102018131365 A DE102018131365 A DE 102018131365A DE 102018131365 A1 DE102018131365 A1 DE 102018131365A1
Authority
DE
Germany
Prior art keywords
memory
column
bits
burst
sub
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
DE102018131365.9A
Other languages
English (en)
Inventor
Uksong Kang
Kjersten Criss
Rajat Agarwal
John Halbert
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 DE102018131365A1 publication Critical patent/DE102018131365A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • 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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1655Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1657Word-line or row circuits
    • 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
    • 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/408Address circuits
    • 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/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • 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/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • 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/4094Bit-line management or control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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 

Abstract

Ein von einem Speicher durchgeführtes Verfahren wird beschrieben. Das Verfahren beinhaltet das Erkennen erster Bits aus einer ersten aktivierten Spalte, die mit einer ersten Sub-Wortleitungsstruktur verknüpft ist, zeitgleich mit dem Erkennen zweiter Bits aus einer zweiten aktivierten Spalte, die mit einer zweiten Sub-Wortleitungsstruktur verknüpft ist. Das Verfahren beinhaltet außerdem das Bereitstellen der ersten Bits an ein und derselben ersten Bitposition in verschiedenen Lesewörtern einer Burst-Lesesequenz und das Bereitstellen der zweiten Bits an ein und derselben zweiten Bitposition in den verschiedenen Lesewörtern der Burst-Lesesequenz.

Description

  • Technischer Anwendungsbereich
  • Der technische Anwendungsbereich betrifft allgemein Computersysteme und spezieller einen Speicher mit verringerter Anfälligkeit für herstellungsbedingte Datenbeschädigungsfehler.
  • Hintergrund der Erfindung
  • Die Leistung eines Computersystems hängt weitgehend von der Leistung seines Systemspeichers (auch Hauptspeicher genannt) ab. Von daher suchen Speicherentwickler ständig nach Möglichkeiten, die Art und Weise, wie Speicher konzipiert, hergestellt und/oder in einem Computersystem implementiert wird, zu verändern oder anderweitig zu verbessern.
  • Figurenliste
  • Ein besseres Verständnis der vorliegenden Erfindung ergibt sich anhand der nachstehenden ausführlichen Beschreibung im Zusammenhang mit den folgenden Zeichnungen, in denen gilt:
    • 1a zeigt ein Computersystem
    • 1b zeigt ein DIMM;
    • 1c zeigt eine Stapelspeicherlösung;
    • 2a zeigt eine herkömmliche Speicherarchitektur;
    • 2b zeigt eine erste verbesserte Speicherarchitektur;
    • 2c zeigt eine zweite verbesserte Speicherarchitektur;
    • 3 zeigt ein Makroarray mit ECC-Informationen;
    • 4 zeigt Speicherkanäle, Speicherbänke und Parität einer Stapelspeicherlösung;
    • 5 zeigt ein Computersystem
  • Ausführliche Beschreibung
  • 1a zeigt ein herkömmliches Computersystem 100, das mehrere CPU (Central Processing Unit, zentrale Verarbeitungseinheit)-Kerne 101_1 bis 101_N, Massenspeicher 102, einen Grafikprozessor 103 und eine Netzschnittstelle 104 aufweist, die alle über eine Hauptspeichersteuerung 106 an einen Hauptspeicher 105 gekoppelt sind. Hier können die CPU-Kerne 101_1 bis 101_N, der nichtflüchtige Massenspeicher 102, der Grafikprozessor 103 und die Netzschnittstelle 104 jeweils Informationen aus dem/in den Hauptspeicher 105 lesen/schreiben, indem sie entsprechende Lese-/Schreibanforderungen an die Speichersteuerung 106 ausgeben. Die Speichersteuerung 106 reagiert auf diese Anforderungen, indem sie Informationen in den Hauptspeicher 105 schreibt (im Fall einer Schreibanforderung) oder Informationen aus dem Hauptspeicher 105 ausliest (im Fall einer Leseanforderung).
  • Der Hauptspeicher 105 selbst besteht herkömmlicherweise aus dynamischem Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM). Im Fall z. B. eines größeren Computersystems, etwa einem Desktop-Computer oder einem Server-Computer, ist der DRAM typischerweise mit mehreren DIMM-Modulen (Dual In-Line Memory Module) implementiert, die in einen bzw. mehrere Speicherkanäle eingesteckt werden, die von der Speichersteuerung 106 stammen. Jedes DIMM weist außerdem mehrere Speicherchips auf, um mit jedem DIMM, das in das System eingesteckt wird, die Systemspeicherkapazität deutlich zu vergrößern. Darüber hinaus ermöglichen mehrere Chips pro DIMM einen gewissen Grad von Schutz gegen Datenfehler im Zusammenhang mit ECC-Informationen, die durch die Speichersteuerung 106 speziell für eine bestimmte Dateneinheit (z. B. eine Cachezeile) berechnet und in das DIMM geschrieben werden.
  • 1b zeigt eine Übersicht über eine herkömmliche Speichersteuerung 116, einen Speicherkanal 117, der von der Speichersteuerung 116 stammt, und ein DIMM 118, das in den Speicherkanal 117 eingesteckt ist (oft gibt es mehrere DIMMs pro Speicherkanal und mehrere Speicherkanäle, die von der Speichersteuerung stammen). Hier weist das DIMM 118 neun Speicherchips 119 auf, die jeweils Daten in Acht-Bit-Wörtern speichern (die Datenbusbreite jedes Speicherchips beträgt z.B. ein Byte). Von den neun „X8“-Speicherchips 119 werden acht 120 zum Speichern von Daten genutzt, und der neunte 121 wird zum Speichern von ECC-Informationen genutzt. Demnach weist das DIMM (und der darunter liegende Speicherkanal) einen 64-Bit-Datenbus mit 8 Bits ECC auf.
  • Die Speichersteuerung 116 schreibt Daten auf das/aus dem DIMM 118 über den Speicherkanal 117 als „Cachezeilen“ mit Informationen, die ihrerseits aus 64 Bytes (64B) Informationen bestehen. Hier wird jede Cachezeile auf das/aus dem DIMM 118 als ein „Burst“ aus acht 72-Bit-Wörtern (64 Bits Daten plus 8 Bits ECC) geschrieben/gelesen, die über acht aufeinanderfolgende Schreib-/Lesezyklen des Speicherkanals (z. B. vier Taktimpulse eines DDR (doppelte Datenrate)-Speicherkanals) transportiert werden. Im Verlauf des Bursts werden intern acht verschiedene Adressen auf die Folge von Speicherchips 119 angewandt (z. B. wendet ein erster Zugriff eine „Basis“-Adresse an, und folgende Zugriffe des Bursts wenden eine Adresse an, die ein Inkrement gegenüber der unmittelbar vorangehenden Adresse darstellt).
  • Vor dem Schreiben der Cachezeile auf das DIMM 119 berechnet die ECC-Logikschaltung 121 der Speichersteuerung 116 einen 64-Bit-ECC-Wert aus den 64 Bytes Cachezeilendaten. Der ECC-Wert ist daher spezifisch für die jeweiligen Datenmuster der Cachezeile. Falls eine Beschädigung der 64 Bytes Daten während eines folgenden Lesens der Cachezeile aus dem DIMM 118 vorhanden ist, können die ECC-Informationen (die zusammen mit den Cachezeilendaten aus dem DIMM 118 gelesen werden) von der ECC-Logikschaltung 121 zusammen mit den Cachezeilen-Lesedaten verarbeitet werden, um die beschädigten Informationen wiederherzustellen/zu korrigieren.
  • Ein Teil der Robustheit des ECC-Datenwiederherstellungsmechanismus besteht darin, dass die Speicherung der Cachezeile und der ECC-Daten über die mehreren Speicherchips 119 auf dem DIMM 118 verteilt sind. Spezieller wird die Aufgabe, verloren gegangene Daten wiederherzustellen, umso schwieriger, je größer die Zahl der fehlerhaften Bits wird. Hier sind allgemein Speicherchips, die Beschädigungen verursachen, selten. Das Verteilen der Speicherung der Cachezeile und der ECC-Informationen über die mehreren Speicherchips 119 verringert die Auswirkungen, wenn einer der Speicherchips eine Fehlerneigung aufweist.
  • 1c zeigt eine aufkommende Speicherpaketierungstechnologie, bei der senkrecht gestapelte Speicherchips 131 auf einen Steuerungs-Halbleiterchip 132 montiert sind. Unglücklicherweise kann, anders als bei der herkömmlichen DIMM-Lösung wie oben unter Bezugnahme auf 1b erörtert, bei der Cachezeilendaten über mehrere Speicherchips verteilt werden, im Fall der gestapelten Lösung von 1c in verschiedenen Implementierungen eine ganze Cachezeile auf ein und demselben Speicherchip gespeichert sein. Hier besteht eine dedizierte Punkt-zu-Punkt-Verbindung zwischen dem Steuerungschip 132 und jedem einzelnen Speicherchip (z. B. eine Verbindung pro Speicherchip).
  • Der Steuerungschip 132 schreibt/liest Daten in jeden/aus jedem der Speicherchips im Stapel 131 entlang der dedizierten Punkt-zu-Punkt-Verbindung des angesprochenen Speicherchips. Von daher erfolgt das Verteilen ein und derselben Cachezeile nicht so direkt über mehrere Halbleiterplättchen wie bei einen herkömmlichen DIMM, und eine einzelne Cachezeile kann auf nur einem einzigen Chip im Stapel gespeichert sein. Sollte daher ein Speicherchip fehleranfällig sein, besteht eine erhöhte Gefahr, dass die darauf gespeicherte(n) Cachezeile(n) mehrere Fehler enthalten, was die Fehlerwiederherstellung/-korrektur mithilfe von gespeichertem ECC-Code schwieriger macht.
  • Eine Lösung besteht in einer verbesserten Speicherchiparchitektur mit einem Aufbau, der gezielt eine bestimmte gefertigte Struktur im Speicherchip (z. B. eine Sub-Wortleitung-Metallleiterbahn), die anfälliger für Fehler ist, mit einer oder mehreren Daten-E/A-Reihen des Speicherchips „verbindet“. Hierdurch ist es weniger wahrscheinlich, dass der Speicherchip mehrere Fehler in einem einzigen Lesedatenwort erzeugt. Das bedeutet, wenn eine der gefertigten Strukturen tatsächlich beschädigte Lesedaten erzeugt, ist idealerweise nur ein einzelnes Ausgangsbit des Lesewortes betroffen. Da nur ein Bit des Lesewortes betroffen ist, ist der Fehlermechanismus „eingedämmt“ und „verbreitet“ sich nicht auf andere Bits im Lesewort. In diesem Fall sollte eine Wiederherstellung der verloren gegangenen Daten mit ECC-Schutz einfacher sein.
  • Die speziell ausgelegte Verbindung zwischen einer möglicherweise fehlererzeugenden gefertigten Struktur und einer minimalen Anzahl von E/A-Bits unterscheidet sich von bisher bekannten Speicherarchitekturen, bei denen eine einzige fehleranfällige gefertigte Struktur ohne Weiteres mehrere verschiedene E/As eines Speicherchips betreffen könnte.
  • 2a und 2b vergleichen eine herkömmliche DRAM-Architektur mit einer neuen DRAM-Architektur, die die Anzahl der E/A-Bits reduziert, welche von einem Fehler einer bestimmten gefertigten Struktur, die fehleranfällig ist, betroffen sein könnten. 2a zeigt eine herkömmliche DRAM-Architektur, während 2b eine Ausführungsform der neuen Architektur zeigt.
  • Es wird nun zunächst Bezug genommen auf 2a; dargestellt ist ein Abschnitt eines Makroarrays 201, das mehrere Mikroarrays aufweist (zur übersichtlicheren Gestaltung der Zeichnung ist nur ein Mikroarray 202 von Makroarray 201 schraffiert und mit einer Bezugsnummer gekennzeichnet). Hier ist ein vier Mikroarrays an vier Mikroarrays großer Abschnitt des größeren Makroarrays 201 dargestellt (Speicherzellen sind üblicherweise in Arrays angeordnet). In der Realität kann das Makroarray 201 aus einem Array von 8x8 Mikroarrays, einem Array von 16x16 Mikroarrays usw. bestehen. Die Speichervorrichtung kann aus mehreren Makroarrays bestehen, um eine sehr große Datenspeicherkapazität im Speicherchip zu realisieren.
  • Reihen von Mikroarrays sind durch ein und dieselbe Wortleitung miteinander verbunden. Zur übersichtlicheren Gestaltung der Zeichnung sind die verlängerten Wortleitungen für die drei dargestellten Reihen von Mikroarrays in den Figuren nicht dargestellt. Entsprechende Sub-Wortleitungen, die nachstehend ausführlicher beschrieben werden, sind dargestellt. Weiterhin sind die Sub-Wortleitungen für die ersten beiden Mikroarrays der oberen Reihe von Mikroarrays sind mit 203_1, 203 2 in 2a und mit 213_1, 213_2 in 2b gekennzeichnet.
  • Wenn eine bestimmte Adresse zu Makroarray 201 aufgelöst wird, wird die Adresse weiter decodiert, um eine der Wortzeilen des Makroarrays auszuwählen, was wiederum der Auswahl einer bestimmten Reihe 204 von Mikroarrays über das Makroarray 201 entspricht.
  • Die Auswahl der Reihe 204 von Mikroarrays „aktiviert“ die Speicherzellen dieser Mikroarrays und bewirkt, dass deren jeweilige Daten in Leseverstärkerbänke geladen werden, die mit jedem Mikroarray verknüpft sind. Zur übersichtlicheren Gestaltung der Zeichnung ist nur die Leseverstärkerbank 206 des äußersten linken Mikroarrays 202 der ausgewählten Reihe 204 beschriftet. Hier kann jedes Mikroarray dahingehend betrachtet werden, dass es zahlreiche Spalten aufweist, die jeweils z. B. 8 gespeicherte Bits enthalten. Die Aktivierung der ausgewählten Wortleitung bewirkt, dass die jeweiligen 8 Bits jeder Spalte entlang der ausgewählten Reihe 204 von Mikroarrays in die Leseverstärkerbänke geladen werden. Wenn beispielsweise 8 Bits pro Spalte und 128 Spalten pro Mikroarray vorhanden sind, werden während der Aktivierung 1024 Bits in jeden Leseverstärker jedes Mikroarrays entlang der Reihe 204 geladen.
  • Abschließend bewirkt die weitere Decodierung der Adresse, dass eine Spalte in jedem Mikroarray (von den mehreren Spalten pro Mikroarray) ausgewählt wird. Die Bits aus der ausgewählten Spalte und einer Anzahl benachbarter Spalten werden dann auf einem E/A-Bus angeordnet, zur Darstellung an der Ausgabeschnittstelle der Speichervorrichtung. Die ausgewählte Spalte und die benachbarten Spalten sollten eine Gesamtzahl Spalten ergeben, die gleich der Anzahl Übertragungen im Burst ist. Zur übersichtlicheren Gestaltung der Zeichnung ist in 2a nur der E/A-Bus 208 für die äußersten linken Mikroarrays eingezeichnet. Somit werden für eine Burstlänge von acht Übertragungen die acht Bits aus der ausgewählten Spalte von Mikroarray 202 und die acht Bits aus jeder der nächsten sieben Spalten (insgesamt 64 Bits) auf dem E/A-Bus 208 vom Leseverstärker 206 dargestellt. Hier spricht man davon, dass die 64 Bits aus dem Mikroarray 202 „vorausgeladen“ und auf dem E/A-Bus 208 dargestellt werden. Die 64 vorausgeladenen Bits werden in einen 64:8-Serialisierer 221 eingegeben.
  • Im Beispiel von 2a werden während der Darstellung des ersten 64-Bit-Datenwortes des Acht-Wörter-Bursts die Bits D0-D7 aus dem Serialisierer 221 dargestellt. Diese acht Bits entsprechen den Bits aus der ersten ausgewählten Spalte von Mikroarray 202. Für die nächste Übertragung (das zweite 64-Bit-Datenwort des Bursts) die acht Bits aus der zweiten der ausgewählten Spalten des Mikroarrays und diejenigen, die während des Vorausladens in den Serialisierer 221 geladen wurden. Diese Bits entsprechen den Bits D64-D71 des Gesamt-Lesebursts, die wiederum den äußersten linken Bits der zweiten Datenübertragung entsprechen (wobei zu bemerken ist, dass die Bits D0-D7 den äußersten linken Bits der ersten Übertragung entsprechen). Der Prozess wird damit fortgesetzt, dass die acht Bits aus jeder nächsten Spalte, die während des Vorausladens ausgewählt wurden, aus dem Serialisierer 221 ausgegeben werden, bis nach acht 64-Bit-Wort-Übertragungen alle 64 vorausgeladenen Bits aus dem Serialisierer 221 ausgegeben sind und der Burst abgeschlossen ist (wobei der Serialisierer 221 die acht äußersten linken Bits jedes Übertragungswortes bereitstellt).
  • Erkennbar besitzt jedes Mikroarray eine eigene, ihm zugeordnete Sub-Wortleitung. Zur übersichtlicheren Gestaltung der Zeichnung sind nur die Sub-Wortleitung 203 1 für das äußerste linke Mikroarray 202 und die Sub-Wortleitung 203 2 für das zweite Mikroarray von links außen beschriftet. Jede Sub-Wortleitung entlang derselben Reihe ist elektrisch mit der physischen Wortleitung gekoppelt, die in 2a zur Vereinfachung der Darstellung nicht gezeigt ist. Eine Sub-Wortleitung ist eine physische Struktur innerhalb der Speichervorrichtung. Sub-Wortleitungen haben tendenziell sehr feine Abstände und Kontakte und gehören somit zu den schwierigsten Strukturen für eine erfolgreiche Fertigung. Infolgedessen gehören in dem Maße, wie Speicherfehler auf Mängel spezifischer gefertigter Speicherstrukturen zurückgeführt werden können, Sub-Wortleitungsstrukturen zu den häufigsten Quellen derartiger Fehler.
  • Ein Problem beim herkömmlichen Speicheraufbau von 2a ist, dass wie vorstehend gezeigt mehrere Bits für ein und dasselbe Lesewort mit ein und derselben Sub-Wortleitung verknüpft sind. Das bedeutet, dass die acht äußersten linken Bits jedes Leseübertragungswortes im Leseburst (insgesamt 64 Bits für den gesamten Burst) aus nur einer Sub-Wortleitung ausschließlich entlang Reihe 204 „entspringen“. Sollte daher die Sub-Wortleitung Fehler verursachen, sind hiervon möglicherweise acht Bits desselben Lesedatenwortes betroffen (beschädigt). Ist dies der Fall, aus Gründen wie sie vorstehend unter Bezugnahme auf 1a und 1b erläutert werden, kann die ECC-Abdeckung nicht in der Lage sein, diese Fehler zu beheben, da pro Lesewort zu viele fehlerbehaftete Bits vorhanden sind. Demnach ist der herkömmliche Aufbau aus 2a unzureichend, wenigstens für, z. B., Lösungen mit gestapelten Speicherchips, in denen eine komplette Cachezeile in ein und demselben Speicherchip gespeichert ist.
  • Während anerkannt wird, dass der herkömmliche Ansatz von 2a mehrere Bits pro Lesewort von ein und derselben Sub-Wortleitung bezieht, bezieht im Gegensatz dazu ein verbesserter Ansatz wie in 2b dargestellt lediglich ein einzelnes Bit pro Lesewort von ein und derselben Sub-Wortleitung. Insbesondere wählt, während der herkömmliche Ansatz von 2a die Ausgangsbits aus einer einzelnen Spalte (z. B. Spalte 208) pro Lesewort auswählt, um acht Ausgangsbits pro Lesewort bereitzustellen, der verbesserte Ansatz von 2b zeitgleich je ein Bit aus acht verschiedenen Spalten pro Lesewort, um acht Ausgangsbits pro Lesewort bereitzustellen. Hier wird, wie in 2b zu sehen ist, während des Vorausladens nur Spalte 218 aus Mikroarray 212 ausgewählt, was nur das äußerste linke Bit (im Gegensatz zu den acht äußersten linken Bits) für alle acht Leseübertragungen des Lesebursts bereitstellt, nur Spalte 219 wird ausgewählt, um nur das zweite Bit von links außen für alle acht Leseübertragungen des Lesebursts bereitzustellen (die übrigen ausgewählten Spalten über die ausgewählte Reihe sind zur Vereinfachung der Darstellung nicht gezeigt).
  • Da im verbesserten Ansatz nur ein Bit pro Spalte pro Lesewort bereitgestellt wird, liefert wiederum eine Sub-Wortleitung lediglich ein Bit pro Lesewort. Das bedeutet beispielsweise, dass die Sub-Wortleitung 213 1 nur das äußerste linke Bit jedes Lesewortes des Lesebursts liefert. Sollte daher die Sub-Wortleitung 203 1 einen Fehler verursachen, wird nur ein Bit im Lesewort beeinflusst, was eine ECC-Wiederherstellung und Korrektur wahrscheinlicher macht.
  • Hier beinhaltet der volle Betrieb der verbesserten Architektur die Auflösung einer Adresse zu einer bestimmten Wortleitung und entsprechenden Reihe von Mikroarrays, was während der Aktivierung bewirkt, dass die Daten, die in jeder der Spalten dieser Mikroarrays gespeichert sind, in ihre entsprechenden Leseverstärkerbänke geladen werden. Der Einfachheit halber sind lediglich die Leseverstärkerbänke 216, 217 für das äußerste linke und das zweite Mikroarray von links außen der ausgewählten Reihe von Mikroarrays dargestellt. Eine weitere Auflösung der Adresse wählt dann mehrere Spalten aus, wobei eine Spalte pro Mikroarray ausgewählt wird (so dass eine Spalte pro Sub-Wortleitung ausgewählt wird).
  • Die Auswahl der mehreren Spalten bewirkt dann, dass Daten, die mit jeder dieser Spalten verknüpft sind (z. B. 8 Bits pro Spalte), während des Vorausladens aus ihren jeweiligen Leseverstärkerbänken 216, 217 ausgegeben werden. In einer Ausführungsform entspricht die Ausgabe dieser Daten einem Vorausladen aller Daten, die für den gesamten Leseburst benötigt werden (die Daten für alle acht Übertragungsbursts werden aus den Leseverstärkerbänken ausgegeben). Während der herkömmliche Ansatz mehrere Spalten für jedes einzelne Mikroarray während des Vorausladens wählt, wählt somit im Gegensatz dazu der spezielle Ansatz von 2b nur eine Spalte pro Mikroarray während des Vorausladens.
  • Jede Spalte von Mikroarrays weist eine zugehörige 8:1-Serialisiererschaltung 221, 222 usw. auf, die die Daten empfängt, welche während des Vorausladens aus der Leseverstärkerbank des entsprechenden Mikroarrays empfangen werden (zur übersichtlicheren Gestaltung der Zeichnung zeigt 2b nur die Serialisiererschaltung 221, 222 für die ersten beiden Mikroarrayspalten). Jede der Serialisiererschaltungen 221, 222 gibt in der Folge nur eines ihrer vorausgeladenen Bits für jedes Leseübertragungswort aus. Beispielsweise empfängt der Serialisierer 221 das äußerste linke Bit für alle Leseübertragungswörter. Er gibt daher Bit D0 für das erste Leseübertragungswort aus, gibt anschließend Bit D64 für das zweite Leseübertragungswort aus, gibt dann Bit D128 für das dritte Leseübertragungswort aus usw.
  • In einer Ausführungsform entsprechen die Daten, die entlang ein und derselben Reihe gespeichert sind, einer „Seite“ von Informationen, und bei der Aktivierung werden alle Informationen der Seite in die Leseverstärkerbänke 216, 217 usw. entlang der Reihe geladen. Danach kann gerade einmal eine Spalte pro Mikroarray (Leseverstärkerbank) ausgewählt werden, um das Burstlesen zu beliefern. Hier ist zu beachten, dass der herkömmliche Ansatz sich auf weniger Mikroarrays stützen kann, um ein Burstlesen zu beliefern (wenn z. B. alle Spalten für das Burstlesen von 2a in Mikroarray 202 enthalten sind, kann das gesamte Burstlesen aus dem Mikroarray beliefert werden). Im Gegensatz dazu kann der Ansatz von 2b auf eine Anzahl von Mikroarrays zurückgreifen, die gleich der Anzahl der Datenbits ist, die von der Speichervorrichtung bereitgestellt werden. Somit können für eine X8-Speichervorrichtung acht Mikroarrays verwendet werden, um acht Bits zu liefern. Falls eine komplette Cachezeile in der Speichervorrichtung gespeichert ist, die der Speichervorrichtung entsprechen kann, welche eine X32- oder X64-Speichervorrichtung ist (deren Speicherbus eine Breite von 32 Bits oder eine Breite von 64 Bits hat), können bis zu 32 bzw. 64 Mikroarrays auf einem einzigen Speicherchip aktiviert sein, um das Burstlesen zu beliefern.
  • Es ist außerdem zu beachten, dass die Burstlänge ohne Weiteres verlängert werden kann, indem die aktivierte Gruppe von Wortleitungen während des Burstlesens verändert wird. Das bedeutet, dass, falls die Architektur von 2b sechzehn Leseübertragungen pro Burstsequenz unterstützen soll, die ersten acht Übertragungen mit der Gruppe von aktivierten Spalten, die in 2a dargestellt ist (Spalte 218 für das äußerste linke Mikroarray, Spalte 219 für das zweite Mikroarray von links außen) beliefert werden können. Um eine folgende Sequenz von acht weiteren Leseübertragungen zu unterstützen, kann eine andere Spalte pro Mikroarray ausgewählt werden (z. B. die Spalte unmittelbar rechts von Spalte 218 im äußersten linken Mikroarray, die Spalte unmittelbar rechts von Spalte 219 im zweiten Mikroarray von links außen, usw.). Damit ist die Anzahl der Spalten pro Mikroarray, die während eines Lesebursts ausgewählt werden müssen, eine Funktion aus der Anzahl gespeicherter Bits, die mit jeder Spalte verknüpft sind, und der Anzahl von Übertragungen pro Burst. Falls die Anzahl von Übertragungen die Anzahl von Bits übersteigt, die mit einer Spalte verknüpft sind, können mehr als eine Spalte pro Mikroarray während des Bursts aktiviert werden, um den Burst vollständig zu beliefern.
  • Auch wenn die spezielle Ausführungsform von 2b nur ein einziges Bit pro Lesewort aus ein und derselben Sub-Wortleitung liefert, können in anderen Ausführungsformen mehr als ein Bit pro Lesewort geliefert werden (jedoch weniger als z. B. die acht, die mit dem herkömmlichen Ansatz von 2a verknüpft sind). 2c zeigt eine solche Ausführungsform, bei der jede Sub-Wortleitung zwei Bits pro Übertragungswort unterstützt. Hier wird der Einfachheit halber bei der Ausführungsform von 2c davon ausgegangen, dass jede Spalte mit vier gespeicherten Datenbits verknüpft ist und dass die Burstlänge vier Übertragungswörter umfasst.
  • Von daher kann eine beliebige ausgewählte Spalte die gesamte Burstlänge versorgen, und die Aktivierung der beiden Spalten pro Mikroarray während des Burstlesens (speziell Spalten 228 und 230 im äußersten linken Mikroarray, Spalten 229 und 233 im zweiten Mikroarray von links außen, usw.) entspricht jedem Mikroarray, das zwei Bits pro Leseübertragungswort bereitstellt. Von daher sind zwei Serialisierer pro Mikroarray vorhanden (Serialisierer 231 und 241 für das äußerste linke Mikroarray, Serialisierer 232, 242 für das äußerste linke Mikroarray, usw.). Hier stellt das äußerste linke Mikroarray die beiden äußersten linken Bits jedes Leseübertragungswortes während des Bursts bereit, das zweite Mikroarray von links außen stellt die beiden zweiten Bits von links außen bereit, usw. Hier beispielsweise ist die linke Hälfte der Spalten eines Mikroarrays mit dem linken Serialisierer gekoppelt, und die rechte Hälfte der Spalten desselben Mikroarrays ist mit dem rechten Serialisierer gekoppelt.
  • Es ist zu beachten, dass, wenn die Burstlänge auf acht Leseübertragungen pro Burst erweitert würde, zwei weitere Spalten pro Mikroarray aktiviert werden müssen, wobei beide Serialisierer, die mit einem Mikroarray verknüpft sind, jeweils die Daten empfangen würden, die mit einer der zusätzlichen Säulen verknüpft sind. Beispielsweise würde Serialisierer 231 die Daten aus einer der zusätzlichen Spalten empfangen, und Serialisierer 241 würde die Daten aus der anderen zusätzlichen Spalte empfangen.
  • Bei der Bereitstellung von zwei Bits pro Leseübertragungswort aus ein und demselben Mikroarray werden zwei Bits pro Leseübertragungswort aus ein und derselben Sub-Wortleitung geliefert. Obwohl die Bereitstellung einer ECC-Abdeckung eine größere Herausforderung bilden wird als bei dem Ansatz von 2b, ist dies jedoch nicht derart herausfordernd wie bei dem herkömmlichen Ansatz von 2a (der acht Bits pro Leseübertragung aus ein und derselben Sub-Wortleitung liefert).
  • Es ist zu beachten, dass vielfältige andere Ausführungsformen neben den spezifischen Ausführungsformen wie in 2b und 2c dargestellt existieren können. Derartige alternative Ausführungsformen können eine verschiedene Anzahl von Bits, die aus ein und derselben Sub-Wortleitung geliefert werden und auf ein und demselben Leseübertragungswort ausgegeben werden, eine verschiedene Anzahl von gespeicherten Bits pro Spalte, verschiedene Burstlängen, verschiedene Leseübertragungswortgrößen usw. aufweisen als die spezifischen beispielhaften Ausführungsformen wie vorstehend unter Bezugnahme auf 2b und 2c erörtert. Die Erörterungen zu 2b und 2c untersuchen einige mögliche Verhaltensmerkmale des neuen Ansatzes, die die Vielzahl anderer Ausführungsformen ebenfalls besitzen kann.
  • Um die Wahrscheinlichkeit zu erhöhen, dass beschädigte Daten aus einer fehlerhaften Sub-Wortleitung wiederhergestellt werden können, können in verschiedenen Ausführungsformen Paritätsdaten für eine Cachezeile, die in der Speichervorrichtung gespeichert sind, auch in demselben Makroarray gespeichert werden, in dem die Cachezeile selbst gespeichert ist. Auch hier entspricht wieder in verschiedenen Ausführungsformen die Gesamtmenge der Daten, die mit einer ganzen Leseburstsequenz verknüpft sind, einer ganzen Cachezeile.
  • Es ist zu beachten, dass Daten für Lesevorgänge serialisiert, für Schreibvorgänge jedoch entserialisiert werden. Das bedeutet, dass die vorgenannten Beispiele, die weiter oben unter Bezugnahme auf 2b und 2c erörtert werden, mit Lesebursts befasst waren, in denen parallele Bits von Daten pro aktivierter Spalte gelesen wurden und anschließend auf einen Ausgang von einer Serialisierergröße einer SERDES-Schaltung serialisiert wurden, um ein einzelnes Lesebit an der Speicherausgangsschnittstelle bereitzustellen. Andersherum passiert im Fall von Schreibvorgängen die Umkehrung der Leseoperation. Das bedeutet z. B., dass am Eingang der SERDES-Schaltung von der Speichereingangsschnittstelle für jedes von mehreren Wörtern einer Burstschreibsequenz ein einzelnes Bit empfangen wird. Nachdem eine Anzahl (z. B. alle acht) Wörter übertragen worden ist, parallelisiert die SERDES-Schaltung die seriellen Daten, die entlang dem einzelnen Bitkanal der Speichereingangsschnittstelle empfangen wurden, und die parallelisierten Daten werden die E/A-Spalte hinauf geleitet und in den Speicherzellen des Mikroarrays gespeichert, das die Spalte kreuzt und eine aktivierte Wortleitung aufweist.
  • 3 zeigt eine Ausführungsform eines Makroarrays für einen stärker vereinfachten Speicher, der eine 32b-Cachezeile unterstützt, die mit vier Burstübertragungen von je 8 Bits vollständig gelesen wird. Nur vier gespeicherte Bits sind mit jeder Spalte verknüpft, so dass nur eine Spalte pro Mikroarray aktiviert werden muss, um das Burstlesen vollständig zu beliefern. Mit jedem Mikroarray ist ein 4:1-Serialisierer gekoppelt. Der Zugriff auf eine beliebige einzelne Reihe im Makroarray lädt alle 32 Bits für eine bestimmte Cachezeile voraus. Alle vier Bits für jede dieser Leseübertragungen für jede Lesewort-Bitposition werden aus den Leseverstärkern vorausgeladen und an die entsprechenden Serialisierer geleitet. So ist ein Mikroarray pro Lesewort-Datenbit vorhanden.
  • Auf diese Weise werden acht Mikroarrays 301 genutzt, um Cachezeilendaten D0 bis D31 zu speichern, während ein neuntes Mikroarray 302 verwendet wird, um Paritätsdaten P0 bis P3 zu speichern. In der Ausführungsform von 3 sind die Paritätsdaten für eine bestimmte Cachezeile entlang derselben Reihe gespeichert wie die Daten der Cachezeile und werden in gleicher Weise wie die Cachezeilendaten vorausgeladen (der Einfachheit halber zeigt nur die oberste Reihe des Makroarrays eine gespeicherte Cachezeile und entsprechende Paritätsdaten). Somit wird auf alle vier Paritätsbits über die vier Datenübertragungen des Lesebursts während desselben Reihenzugriffs als Cachezeilendaten zugegriffen, und sie werden an einen entsprechenden Serialisierer 303 weitergeleitet, der das Paritätsbit auf dem Datenbus zuführt.
  • In der speziellen Ausführungsform von 3 ist die Größe der Parität, die zum Schutz der Cachezeilendaten verwendet wird, dieselbe Größe wie die Menge an Cachezeilendaten, die durch einen Fehler einer Sub-Wortleitung beschädigt werden könnten. In dem Makroarray von 4 könnte ein Fehler der Sub-Wortleitung möglicherweise ein ganzes Mikroarray beschädigen, daher nimmt das Paritätsfeld ein komplettes Mikroarray ein. Dies reduziert sich, für die dargestellte oberste Reihe von 3, auf eine oberste Arrayreihe von Parität, die zum Schutz einer obersten Arrayreihe von Cachezeilendaten verwendet wird. Jedes einzelne Bit im Feld dient dazu, ein identisch positioniertes Bit der Cachezeilendaten entlang der eigenen Paritätsbitreihe zu schützen. Daher kann für den Datenwert der Cachezeile, die in 3 dargestellt ist, die Parität wie folgt ausgedrückt werden: p 0 = b0 + b1 + b2 + b3 + b4 + b5 + b6 + b7
    Figure DE102018131365A1_0001
    p1 = b8 + b9 + b10 + b11 + b12 + b13 + b14
    Figure DE102018131365A1_0002
    p2 = b15 + b16 + b17 + b18 + b19 + b20 + b21
    Figure DE102018131365A1_0003
    p3 = b16 + b17 + b18 + b19 + b20 + b21 + b22
    Figure DE102018131365A1_0004
    wobei der „+“-Operand einer Exklusiv-ODER (XOR)-Funktion entspricht. Dieser spezielle Ansatz stellt ein Bit Parität für ein ganzes Übertragungswort bereit.
  • Hier ist die Verwendung einer derart „dünnen“ Paritätsabdeckung wenigstens teilweise akzeptabel, da wie vorstehend erörtert die Schaltungen der Speichervorrichtung gemäß ihrer Architektur Fehler erzeugen können, in dem Maße, dass derartige Fehler mit einer Wahrscheinlichkeit auftreten, dass nur ein Bit pro Lesewort pro Fehlerereignis betroffen ist. In verschiedenen Ausführungsformen ist diese „dünne“ Paritätsfunktion durch den Speicherchip anstatt durch die Hauptspeichersteuerung implementiert.
  • Das bedeutet, während einer Burstschreibsequenz berechnet die ECC-Logikschaltung 304, die in den Speicherchip eingebettet ist, Paritätsbits der ankommenden Datenwörter und speichert diese Paritätsbits an dem zusätzlichen Speicherplatz 302, der im Speicherarray für das Speichern der Parität reserviert ist. Während eines Burstlesens werden die Paritätsinformationen zusammen mit den Lesedaten durch die ECC-Logikschaltung 304 des Speicherchips verarbeitet. Wird ein Fehler erkannt, korrigiert die ECC-Logikschaltung 304 den Fehler vor Übertragung des Lesewortes über den Speicherkanal-Datenbus an die Speichersteuerung. Hier können die E/As D0 bis D7, die von den Serialisierern kommen, direkt mit Daten-E/As auf dem Speicherkanal-Bus (DQs) gekoppelt werden. Die internen Paritätsinformationen müssen nicht (können jedoch) über den Speicherkanal transportiert werden.
  • Für größere Lesewortstrukturen, z. B. 64-Bit-Lesewörter, kann ein einzelnes Bit Parität unzureichend sein, um auch nur einen einzigen Fehler wiederherzustellen, kann jedoch ausreichen, um das Vorhandensein eines Fehlers anzuzeigen. Das bedeutet, dass die Verarbeitung der Lesewortdaten und des Paritätsbits ausreichen kann, um das Vorhandensein eines Fehlers anzuzeigen, jedoch nicht genau angeben kann, welches spezifische Bit des Lesewortes fehlerhaft ist. In diesem Fall kann mehr Parität bereitgestellt werden (z. B. mehr als ein Bit pro Leseübertragungswort), und/oder die Speichersteuerung kann zusätzliche Paritätsinformationen hinzufügen (z. B. für die Cachezeile als Ganzes im Einklang mit der herkömmlichen Operation (z. B. wie unter Bezugnahme auf 1b erörtert), die an die Speichervorrichtung (oder eine andere Speichervorrichtung) gesendet und als separate Daten gespeichert werden.
  • Falls die Speichervorrichtung anhand ihres internen „dünnen“ Paritätsschutzes einen Fehler erkennt, kann sie ein Fehlerkennzeichen setzen und ihre internen Paritätsinformationen an die Speichersteuerung weiterleiten. Die Speichersteuerung kann dann die ECC-Informationen, die die Speichersteuerung erzeugt hat, zusammen mit den Paritätsinformationen, die von der Speichervorrichtung gesendet wurden, verarbeiten, um den Fehler zu beheben. Alternativ kann die ECC-Abdeckung der Speichersteuerung ausreichen, um den Fehler ohne die Paritätsinformationen des Speicherchips zu beheben.
  • In noch anderen Ausführungsformen kann die Speichersteuerung die Paritätsinformationen (z. B. liegt die Funktion der ECC-Logik 304 in der Speichersteuerung und nicht auf dem Speicherchip) bestimmen, die dafür ausgelegt sind, für begrenzte (z. B. ein einzelnes Bit) Fehler, die von einer bestimmten Art von Speicherfehler erzeugt werden, Abdeckung bereitzustellen. Das bedeutet, dass zur Erhöhung der Speicherzuverlässigkeit in verschiedenen Ausführungsformen entsprechende ECC-Informationen der Steuerung individuell gegen Datenburstfehler angepasst werden. Da Datenburstfehler im Allgemeinen auch von anderen Fehlermodi (z. B. Pin- und Spaltenfehlern) verursacht werden können, können diese Codes viele Fehlerarten korrigieren, nicht nur Fehler der Sub-Wortleitung. Da die Fehler in vorbestimmter Weise zu Gruppen zusammengefasst sind, ist es eine relativ einfache Aufgabe, symbolbasierte Fehlerkorrekturcodes zum Schutz vor diesen Fehlern zu erstellen. Eine Möglichkeit ist, eine bitweise Parität zu speichern, die dieselbe Größe hat wie der Bereich, der von einem Fehler der Sub-Wortleitung betroffen ist, wie vorstehend unter Bezugnahme auf 3 erörtert, der z. B. intern auf dem Speicherchip oder extern durch die Speichersteuerung bestimmt sein kann. Diese Informationen können dann mit einer gleichen Anzahl zusätzlicher ECC-Bits gepaart werden, die durch die Speichersteuerung berechnet (und z. B. in der Speichervorrichtung gespeichert) werden, welche zum Verorten des Fehlers genutzt werden können, wobei ein Reed-Solomon-ECC-Schema oder ein anderes Verfahren zum Erkennen von Daten mit Fehlern (z. B. Speicherselbsttest) erzeugt wird, um eine Korrektur des Typs Löschcodierung („Erasure Encoding“) zu ermöglichen.
  • 4 zeigt eine mögliche Implementierung der vorstehend beschriebenen Prinzipien in einer Lösung mit gestapelten Speicherchips, etwa einer Lösung mit gestapelten Speicherchips, die mit einer Spezifikation für Speicher mit großer Bandbreite („High Bandwidth Memory“, HBM) wie von JEDEC veröffentlicht oder einer anderen Spezifikation für gestapelte Speicherchips (z. B. einer Spezifikation für breite E/A, Wide I/O, wie von JEDEC veröffentlicht) konform ist. Hier sind zwei Speicherbänke 401, 402 dargestellt, die jeweils mit einem Paar Kanäle C1, C2 gekoppelt sind. Die erste Speicherbank 401 weist sechzehn 8x8-Makroarrays A0 bis A15 auf. Die erste Speicherbank 401 weist außerdem ein Array zum Speichern von ECC-Informationen P1 auf. Die Speicherbank 402 ist ähnlich aufgebaut, koppelt jedoch die Makroarrays A16 bis A32 mit dem zweiten Kanal C2.
  • Die Paritätsinformationen können aufweisen: 1) „dünne“ Abdeckung, die von interner ECC-Logik der Speichervorrichtung erzeugt wird und die normalerweise auf ihrem jeweiligen Speicherkanal nicht dargestellt wird; und/oder, 2) ECC-Abdeckung, die von einer externen Steuerung wie etwa einer Hauptspeichersteuerung oder der Steuerung, auf die die gestapelten Speicherchips montiert sind, erzeugt wird. 4 verweist auf den späteren Ansatz mit Kopplung der ECC-Arrays P1 und P2 mit den Speicherkanälen C1 und C2. Die Kanäle C1, C2 haben 128 Bit breite Datenbusse. Die Implementierung eines 128-Bit-Datenkanals erlaubt zwei 64-Bit-Datenstrukturen auf jedem einzelnen Kanal. Daher kann eine einzelne 64B-Cachezeile über einen Kanal mit einer Burstlänge von vier Übertragungen übermittelt werden.
  • Gemäß verschiedenen Ausführungsformen stellt jedes der Makroarrays 8 Bits E/A pro Zugriff bereit. Jedes Makroarray weist z. B. acht oder vier Mikroarrays über seine reihenweise Dimension auf, wobei jedes Mikroarray eine eigene, mit ihm verknüpfte Sub-Wortleitung aufweist und nur z. B. ein oder zwei der acht E/As des mit ihm verknüpften Makroarrays zuführt. Während eines Zugriffs entlang irgendeiner bestimmten Reihe eines Makroarrays werden mehrere Bits, die aus ein und demselben Mikroarray ausgelesen werden und aus ein und derselben Sub-Wortleitung geliefert werden, aus ihren Bitzellenpositionen ausgelesen und an eine Serialisiererschaltung geleitet, die unmittelbar einen E/A zuführt, den das Mikroarray liefert. Die mehreren Bits werden dann über den Kanal in Reihe/Folge über eine Anzahl von Übertragungen des Burstlesens gesendet.
  • Es muss in diesem Zusammenhang darauf hingewiesen werden, dass die hier vorgestellten Lehren nicht nur auf Speicherchips in einer Lösung mit gestapelten Speicherchips Anwendung finden können, sondern auch auf Speicherchips, die auf einem DIMM angeordnet sind.
  • Auch wenn vorstehend beschriebene Ausführungsformen auf DRAM-Speicherchips eingehen, können auch andere Arten von Speicherchips auf die vorstehend beschriebenen Designstrategien zurückgreifen. Beispielsweise können in dem Maß, wie dies sinnvoll ist, aufkommende nichtflüchtige Speicherchips verschiedene der vorstehend ausführlich beschriebenen Designansätze aufweisen. Beispiele für nichtflüchtige Speicherchips beinhalten dreidimensionale Speicher (z. B. wo die Speicherzellen in einem Chipmetall über dem Halbeiter-Chipsubstrat gestapelt sind), etwa Speicher mit Speicherzellen, die aus Chalcogenid bestehen (z. B. Phasenwechselspeicher und Schalter (Phase Change Memory and Switch, PCMS)). Andere aufkommende nichtflüchtige Speicherchips beinhalten resistiven RAM (ReRAM) oder anderen dielektrischen RAM, ferroelektrischen RAM (FeRAM), magnetische Spin-Transfer-Direktzugriffsspeicher usw.
  • 5 gibt eine beispielhafte Darstellung eines Computersystems 500 (z. B. Smartphone, Tablet-Computer, Laptop-Computer, Desktop-Computer, Server-Computer usw.). Wie in 5 zu sehen, kann das Basis-Computersystem 500 aufweisen: eine zentrale Verarbeitungseinheit 501 (die z. B. mehrere Universal-Verarbeitungskerne 515 1 bis 515_X aufweist) und eine Hauptspeichersteuerung 517, die auf einem MehrkernProzessor oder Anwendungsprozessor angeordnet ist, Systemspeicher 502, eine Anzeige 503 (z. B. Berührungsschirm, Flachbildschirm), eine Schnittstelle einer lokalen drahtgebundenen Punkt-zu-Punkt-Verbindung (z. B. USB) 504, verschiedene Netz-E/A-Funktionen 505 (etwa eine Ethernet-Schnittstelle und/oder ein Mobilfunkmodem-Subsystem), eine Schnittstelle eines drahtlosen Ortsnetzes („Wireless Local Area Network“, z. B. WiFi) 506, eine Schnittstelle einer drahtlosen Punkt-zu-Punkt-Verbindung (z. B. Bluetooth) 507 und eine Schnittstelle des globalen Positionsbestimmungssystems 508, verschiedene Sensoren 509 1 bis 509_Y, eine oder mehrere Kameras 510, eine Batterie 511, eine Strommanagement-Steuerungseinheit 512, einen Lautsprecher und ein Mikrofon 513 und einen Audiocodierer/-decodierer 514.
  • Ein Anwendungsprozessor oder Mehrkernprozessor 550 kann einen oder mehrere Universal-Verarbeitungskerne 515 in seiner CPU 501, eine oder mehrere Grafikverarbeitungseinheiten 516, eine Speichermanagementfunktion 517 (z. B. eine Speichersteuerung) und eine E/A-Steuerungsfunktion 518 aufweisen. Die Universal-Verarbeitungskerne 515 führen typischerweise das Betriebssystem und Anwendungssoftware des Computersystems aus. Die Grafikverarbeitungseinheit 516 führt typischerweise grafikintensive Funktionen aus, um z. B. Grafikinformationen zu erzeugen, die auf der Anzeige 503 dargestellt werden. Die Speichersteuerungsfunktion 517 arbeitet mit dem Systemspeicher 502 zusammen, um Daten in den/aus dem Systemspeicher 502 zu schreiben/lesen. Die Strommanagement-Steuerungseinheit 512 steuert allgemein die Leistungsaufnahme des Systems 500. Die Speicherchips des Systemspeichers 502, oder anderen Speichers (etwa lokaler Speicher der GPU), können derart gestaltet sein, dass sie die Anzahl Bits desselben Lese/Schreibwortes begrenzen, die von Fehlern/Defekten eines bestimmten, z. B. des kleinsten, Merkmals, das in den Speicherchips gefertigt wurde, etwa wie vorstehend ausführlich erläutert, betroffen sind.
  • Berührungsschirmanzeige 503, Kommunikationsschnittstellen 504-507, GPS-Schnittstelle 508, Sensoren 509, Kamera(s) 510 und Lautsprecher/Mikrofon-Codec 513, 514 können jeweils als eine andere Form von E/A (Eingang und/oder Ausgang) relativ zum Computersystem insgesamt betrachtet werden, das, soweit angemessen, auch eine integrierte Peripherievorrichtung (z. B. die ein oder mehreren Kameras 510) aufweisen kann. Abhängig von der Implementierung können verschiedene dieser E/A-Komponenten in den Anwendungsprozessor/Mehrkernprozessor 550 integriert sein oder können außerhalb des Halbleiterplättchens oder außerhalb des Anwendungsprozessor/Mehrkernprozessor-Paketes 550 angeordnet sein. Das Computersystem weist auch nichtflüchtigen Speicher 520 auf, der die Massenspeicherkomponente des Systems darstellen kann.
  • Ausführungsformen der Erfindung können verschiedene Prozesse wie vorstehend beschrieben beinhalten. Die Prozesse können als maschinenausführbare Anweisungen ausgeführt sein. Die Anweisungen können dazu dienen zu bewirken, dass ein Universal- oder Spezialprozessor bestimmte Prozesse ausführt. Alternativ dazu können diese Prozesse durch spezifische/individualisierte Hardwarekomponenten, die festverdrahtete Logikschaltungen oder programmierbare Logikschaltungen (z. B. FPGA, PLD) zum Durchführen der Prozesse enthalten, oder durch eine beliebige Kombination programmierter Computerkomponenten und individualisierter Hardwarekomponenten durchgeführt werden.
  • Elemente der vorliegenden Erfindung können auch als maschinenlesbares Medium zum Speichern der maschinenausführbaren Anweisungen bereitgestellt werden. Das maschinenlesbare Medium kann, ohne darauf beschränkt zu sein, Floppy-Disketten, optische Platten, CD-ROMs und magneto-optische Platten, FLASH-Speicher, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Ausbreitungsmedien oder andere Arten von Medien/maschinenlesbaren Medien, die sich zum Speichern elektronischer Anweisungen eigenen, beinhalten. Zum Beispiel kann die vorliegende Erfindung als ein Computerprogramm, das von einem entfernten Computer (z.B. einem Server) an einen anfragenden Computer (z. B. einen Client) in Form von Datensignalen, die auf einer Trägerwelle oder einem anderen Ausbreitungsmedium ausgeführt sind, über eine Kommunikationsverbindung (z. B. ein Modem oder eine Netzverbindung) übertragen wird, heruntergeladen werden.
  • In der vorstehenden Beschreibung ist die Erfindung in Bezug auf spezifische beispielhafte Ausführungsformen davon beschrieben worden. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen hieran vorgenommen werden können, ohne vom allgemeineren Wesen und Schutzbereich der Erfindung abzuweichen, wie sie in den beigefügten Ansprüchen dargelegt sind. Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden und nicht in einem einschränkenden Sinne zu betrachten.

Claims (22)

  1. Einrichtung, umfassend: einen Speicher, der wenigstens ein Makroarray umfasst, welches Reihen von Wortleitungen und mehrere Spalten umfasst, wobei der Speicher ferner eine erste Spalte, die mit einer ersten Sub-Wortleitungsstruktur verknüpft ist, und eine zweite Spalte, die mit einer zweiten Sub-Wortleitungsstruktur verknüpft ist, umfasst, wobei der Speicher ferner erste Serialisiererschaltungen zwischen der ersten Spalte und einem ersten E/A des Speichers und zweite Serialisiererschaltungen zwischen der zweiten Spalte und einem zweiten E/A des Speichers umfasst, wobei der erste und der zweite Serialisierer zeitgleich gespeicherte Bits, die zeitgleich erkannt wurden, aus der ersten bzw. zweiten Spalte serialisieren, so dass wenigstens einige der gespeicherten Bits aus der ersten Spalte am ersten E/A in verschiedenen Lesewörtern einer Burst-Lesesequenz dargestellt werden und dass wenigstens einige der gespeicherten Bits aus der zweiten Spalte am zweiten E/A in den verschiedenen Lesewörtern der Burst-Lesesequenz dargestellt werden.
  2. Einrichtung nach Anspruch 1, wobei der Speicher eine Komponente einer Struktur mit gestapelten Speicherchips ist.
  3. Einrichtung nach Anspruch 1, wobei der Speicher dazu dient, eine ganze Cachezeile zu speichern.
  4. Einrichtung nach Anspruch 1, wobei der Speicher ein dynamischer Direktzugriffsspeicher (DRAM) ist.
  5. Einrichtung nach Anspruch 1, wobei der erste Serialisierer zusätzliche gespeicherte Bits aus einer anderen aktivierten Spalte empfängt, so dass wenigstens einige der zusätzlich gespeicherten Bits am ersten und zweiten E/A in einer anderen Gruppe verschiedener Lesewörter der Burst-Lesesequenz dargestellt werden.
  6. Einrichtung nach Anspruch 5, wobei die Burstlänge der Burst-Lesesequenz größer als die Anzahl der gespeicherten Bits ist, die aus der aktivierten Spalte erkannt wurden.
  7. Einrichtung nach Anspruch 1, wobei jedes der gespeicherten Bits aus der ersten Spalte am ersten E/A in verschiedenen Lesewörtern der Burst-Lesesequenz dargestellt wird.
  8. Einrichtung nach Anspruch 1, wobei Paare der gespeicherten Bits aus der ersten und der zweiten Spalte am E/A in jedem der verschiedenen Lesewörter der Burst-Lesesequenz dargestellt werden.
  9. Computersystem, umfassend: mehrere Verarbeitungskerne; eine Hauptspeichersteuerung, die mit den Verarbeitungskernen gekoppelt ist; und einen Hauptspeicher, der mit der Hauptspeichersteuerung gekoppelt ist, wobei der Hauptspeicher aus Speicherchips besteht, von denen mehrere wenigstens ein Makroarray umfassen, welches Reihen von Wortleitungen und mehrere Spalten umfasst, wobei der Speicher ferner eine erste Spalte, die mit einer ersten Sub-Wortleitungsstruktur verknüpft ist, und eine zweite Spalte, die mit einer zweiten Sub-Wortleitungsstruktur verknüpft ist, umfasst, wobei der Speicher ferner erste Serialisiererschaltungen zwischen der ersten Spalte und einem ersten E/A des Speichers und zweite Serialisiererschaltungen zwischen der zweiten Spalte und einem zweiten E/A des Speichers umfasst, wobei der erste und der zweite Serialisierer zeitgleich gespeicherte Bits, die zeitgleich erkannt wurden, aus der ersten bzw. zweiten Spalte serialisieren, so dass wenigstens einige der gespeicherten Bits aus der ersten Spalte am ersten E/A in verschiedenen Lesewörtern einer Burst-Lesesequenz dargestellt werden und dass wenigstens einige der gespeicherten Bits aus der zweiten Spalte am zweiten E/A in den verschiedenen Lesewörtern der Burst-Lesesequenz dargestellt werden.
  10. Computersystem nach Anspruch 9, wobei die Speicherchips gestapelt sind.
  11. Computersystem nach Anspruch 10, wobei ein einzelner der Speicherchips eine Cachezeile speichert, die von der Speichersteuerung bereitgestellt wird.
  12. Computersystem nach Anspruch 9, wobei die erste und die zweite Spalte mit verschiedenen Mikroarrays des Makroarrays sind.
  13. Computersystem nach Anspruch 12, wobei die verschiedenen Mikroarrays benachbarte Mikroarrays sind.
  14. Computersystem nach Anspruch 9, wobei der erste Serialisierer zusätzliche gespeicherte Bits aus einer anderen aktivierten Spalte empfängt, so dass wenigstens einige der zusätzlich gespeicherten Bits am ersten E/A in einer anderen Gruppe verschiedener Lesewörter der Burst-Lesesequenz dargestellt werden.
  15. Computersystem nach Anspruch 14, wobei die Burstlänge der Burst-Lesesequenz größer als die Anzahl der gespeicherten Bits ist, die aus der aktivierten Spalte erkannt wurden.
  16. Computersystem nach Anspruch 9, wobei jedes der gespeicherten Bits aus der ersten Spalte am ersten E/A in verschiedenen Lesewörtern der Burst-Lesesequenz dargestellt wird.
  17. Computersystem nach Anspruch 16, wobei Paare der gespeicherten Bits aus der ersten und der zweiten Spalte am ersten und zweiten E/A in jedem der verschiedenen Lesewörter der Burst-Lesesequenz dargestellt werden.
  18. Von einem Speicher durchgeführtes Verfahren, umfassend: Erkennen erster Bits aus einer ersten aktivierten Spalte, die mit einer ersten Sub-Wortleitungsstruktur verknüpft ist, zeitgleich mit dem Erkennen zweiter Bits aus einer zweiten aktivierten Spalte, die mit einer zweiten Sub-Wortleitungsstruktur verknüpft ist; und Bereitstellen der ersten Bits an ein und derselben ersten Bitposition in verschiedenen Lesewörtern einer Burst-Lesesequenz und Bereitstellen der zweiten Bits an ein und derselben zweiten Bitposition in den verschiedenen Lesewörtern der Burst-Lesesequenz.
  19. Verfahren nach Anspruch 18, wobei der Speicher ein dynamischer Direktzugriffsspeicher (DRAM) ist.
  20. Verfahren nach Anspruch 19, wobei der Speicher eine Komponente in einer Lösung mit gestapelten Speicherchips ist.
  21. Verfahren nach Anspruch 19, wobei der Speicher eine Komponente eines DIMM ist.
  22. Einrichtung, umfassend: einen Speicher, der wenigstens ein Makroarray umfasst, welches Reihen von Wortleitungen und mehrere Spalten umfasst, wobei der Speicher ferner eine erste Spalte, die mit einer ersten Sub-Wortleitungsstruktur verknüpft ist, und eine zweite Spalte, die mit einer zweiten Sub-Wortleitungsstruktur verknüpft ist, umfasst, wobei der Speicher ferner erste Entserialisiererschaltungen zwischen der ersten Spalte und einem ersten E/A des Speichers und zweite Entserialisiererschaltungen zwischen der zweiten Spalte und einem zweiten E/A des Speichers umfasst, wobei der erste und der zweite Entserialisierer zeitgleich empfangene Schreibbits entserialisieren, die zeitgleich am ersten bzw. am zweiten E/A in verschiedenen Lesewörtern einer Burst-Lesesequenz empfangen wurden, und jeweils die empfangenen Schreibbits an die erste und die zweite Spalte bereitstellen.
DE102018131365.9A 2018-01-09 2018-12-07 Speicher mit verringerter anfälliglkeit für herstellungsbedingte datenbeschädigungsfehler Pending DE102018131365A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/865,642 2018-01-09
US15/865,642 US11010304B2 (en) 2018-01-09 2018-01-09 Memory with reduced exposure to manufacturing related data corruption errors

Publications (1)

Publication Number Publication Date
DE102018131365A1 true DE102018131365A1 (de) 2019-07-11

Family

ID=65229883

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018131365.9A Pending DE102018131365A1 (de) 2018-01-09 2018-12-07 Speicher mit verringerter anfälliglkeit für herstellungsbedingte datenbeschädigungsfehler

Country Status (3)

Country Link
US (1) US11010304B2 (de)
CN (1) CN110047521A (de)
DE (1) DE102018131365A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210191811A1 (en) * 2020-12-23 2021-06-24 Intel Corporation Memory striping approach that interleaves sub protected data words

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
DE19526863C2 (de) * 1995-07-22 1997-06-12 Ae Goetze Gmbh Verfahren zur Feinbearbeitung der Außenumfangsfläche von geschlitzten, radial nach außen spannenden, ringförmigen Werkstücken, insbesondere von zu einem Paket zusammengefaßten Kolbenringen sowie Vorrichtung zur Durchführung des Verfahrens
US6515914B2 (en) * 2001-03-21 2003-02-04 Micron Technology, Inc. Memory device and method having data path with multiple prefetch I/O configurations
US7054202B2 (en) * 2003-06-03 2006-05-30 Samsung Electronics Co., Ltd. High burst rate write data paths for integrated circuit memory devices and methods of operating same
KR101039853B1 (ko) * 2009-10-30 2011-06-09 주식회사 하이닉스반도체 반도체 메모리장치 및 이의 압축 테스트 방법
JP2011175563A (ja) * 2010-02-25 2011-09-08 Elpida Memory Inc データ処理システム及びその制御方法

Also Published As

Publication number Publication date
CN110047521A (zh) 2019-07-23
US11010304B2 (en) 2021-05-18
US20190042449A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102020115736A1 (de) Halbleiterspeichervorrichtung und Verfahren zum Betreiben der Halbleiterspeichervorrichtungen
DE10350339B4 (de) Halbleiterspeichervorrichtung mit reduzierter Datenzugriffszeit und Verfahren zum Betrieb einer Speichervorrichtung
DE102010030742B4 (de) Phasenwechselspeicher in einem doppelreihigen Speichermodul
DE112006002300B4 (de) Vorrichtung zum Stapeln von DRAMs
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE102013111710A1 (de) Speichermodul, Speichersystem mit demselben und Verfahren zum Auslesen davon und Schreiben dort hinein
DE112005002390T5 (de) Burst-Betrieb für die Speichertransaktion und Speicherkomponenten, welche die zeitweilig multiplexierte Fehlerkorrekturcodierung unterstützen
DE102007063812B3 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE102006001492A1 (de) Halbleiterspeicheranordnung und Verfahren zum Betreiben einer Halbleiterspeicheranordnung
DE102012104474A1 (de) Speichervorrichtung
DE102006043311A1 (de) Speichersystem
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
DE102004007644A1 (de) Vorrichtung und Verfahren zum Komprimieren von Redundanzinformationen für eingebettete Speicher, einschliesslich Cachespeicher, integrierter Schaltungen
DE102020115747A1 (de) Speichermodul, Fehlerkorrekturverfahren für Speicher-Controller, der dieses steuert, und Rechensystem, das dieses umfasst
DE102020118505A1 (de) Speichervorrichtungen mit darin enthaltenen variablen reparatureinheiten und verfahren zu deren reparatur
DE112016006203T5 (de) Verfahren zum zugreifen auf ein dual in-line memory-modul über mehrere datenkanäle oder betreiben desselben
DE112020006398T5 (de) Geräte, systeme und verfahren zur fehlerkorrektur
DE102018121991A1 (de) Halbleiterspeichervorrichtung und datenpfadkonfigurationsverfahren dafür
DE112007003512T5 (de) Speicherbauelement mit Fehlerkorrekturfähigkeit und effizienter Teilwort-Schreiboperation
DE112017001597T5 (de) Techniken zur verwendung von chip-auswahlsignalen für ein dual in-line-speichermodul
DE102020119400A1 (de) Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung
DE112020003028T5 (de) Vorrichtungen und verfahren zum reparieren von defekten speicherzellen basierend auf einer spezifizierten fehlerrate für bestimmte speicherzellen
DE102005035661A1 (de) Halbleiter-Speicherbauelement-System, und Verfahren zum Betreiben eines Halbleiter-Speicherbauelement-Systems
DE102022103555A1 (de) Auf leistungsverbrauch basierende bankumverteilung
DE112016005762T5 (de) Gemeinsame nutzung eines dram-datenpfads über einen geteilten lokalen datenbus