-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Offenbarung betrifft ein Speichermodul, ein Fehlerkorrekturverfahren eines Speicher-Controllers, der das Speichermodul steuert, und ein Rechensystem, das das Speichermodul umfasst.
-
Beschreibung des Stands der Technik
-
Daten können gemeinsam mit einem Fehlerkorrekturcode (ECC) in einem Speicher eines Speichersystems gespeichert werden. Falls die Daten später einen oder mehrere Fehler entwickeln, kann der entsprechende ECC verwendet werden, um die Fehler potentiell zu korrigieren. Beispiele für den ECC umfassen Blockcodes und Faltungscodes.
-
Ein Speicher-Controller oder andere Logik des Speichersystems kann eine Fehlererfassung bei den Daten und eine Korrektur der Daten unter Verwendung eines oder mehrerer ECCs durchführen. Die Logik, die sich auf einem Chip befindet, kann als On-Die-ECC-Schaltung bezeichnet werden. Herkömmliche Speicherarchitekturen für die On-Die-ECC-Schaltung umfassen eine 4 Bit breite Schnittstelle (d. h. x4-Schnittstelle), eine 8 Bit breite Schnittstelle (d. h. x8-Schnittstelle) oder eine 16 Bit breite Schnittstelle (d. h. x16-Schnittstelle). Die Konstruktion und Anzahl an erforderlichen ECC-Bits zur Implementierung von ECC werden hauptsächlich durch die Speicherarchitektur bestimmt.
-
KURZFASSUNG
-
Beispielhafte Ausführungsformen des erfinderischen Konzepts schaffen ein Speichermodul, das zur Verbesserung einer Fehlerkorrekturfähigkeit eingerichtet ist, während Verschlechterungen der Leistung verhindert werden, ein Fehlerkorrekturverfahren eines Speicher-Controllers, der zum Steuern des Speichermoduls eingerichtet ist, und ein Rechensystem, welches das Speichermodul umfasst.
-
Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts umfasst ein Speichermodul erste Speicher-Chips, die jeweils eine erste Eingabe/Ausgabe-Breite haben und die derart eingerichtet sind, dass sie Daten speichern, einen zweiten Speicher-Chip, der eine zweite Eingabe/Ausgabe-Breite hat und der derart eingerichtet ist, dass er einen Fehlerkorrekturcode, um einen Fehler in den Daten zu korrigieren, speichert, und eine Treiberschaltung, die derart eingerichtet ist, dass sie ein Taktsignal, einen Befehl und eine Adresse von einem Speicher-Controller empfängt und dass sie das Taktsignal, den Befehl und die Adresse an die ersten Speicher-Chips und den zweiten Speicher-Chip überträgt. Eine Adresstiefe jedes der ersten Speicher-Chips und eine Adresstiefe des zweiten Speicher-Chips unterscheiden sich voneinander.
-
Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts umfasst ein Speichermodul einen ersten Sub-Kanal, einen zweiten Sub-Kanal, und eine Treiberschaltung, die derart eingerichtet ist, dass sie ein Taktsignal, erste und zweite Befehle und eine Adresse von einem Speicher-Controller empfängt und dass sie das Taktsignal, den ersten Befehl und die Adresse an den ersten Sub-Kanal überträgt und das Taktsignal, den zweiten Befehl und die Adresse an den zweiten Sub-Kanal überträgt. Sowohl der erste als auch der zweite Sub-Kanal umfassen erste Speicher-Chips, die jeweils eine erste Eingabe/Ausgabe-Breite aufweisen und derart eingerichtet sind, dass sie Daten speichern, und einen zweiten Speicher-Chip, der eine zweite Eingabe/Ausgabe-Breite hat, die kleiner ist als die erste Eingabe/Ausgabe-Breite, und der derart eingerichtet ist, dass er einen Fehlerkorrekturcode, um einen Fehler in den Daten zu korrigieren, speichert. Eine Adresstiefe jedes der ersten Speicher-Chips und eine Adresstiefe des zweiten Speicher-Chips unterscheiden sich voneinander.
-
Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts wird ein Fehlerkorrekturverfahren eines Speicher-Controllers geschaffen. Der Speicher-Controller ist derart eingerichtet, dass er ein Speichermodul steuert, welches erste Speicher-Chips umfasst, die jeweils eine erste Eingabe/Ausgabe-Breite aufweisen und derart eingerichtet sind, dass sie Daten speichern, und welches mindestens einen zweiten Speicher-Chip umfasst, der eine zweite Eingabe/Ausgabe-Breite aufweist und der derart eingerichtet ist, dass er einen Fehlerkorrekturcode, um einen Fehler in den Daten zu korrigieren, speichert. Das Fehlerkorrekturverfahren umfasst: Bestimmen, ob die Daten, die von dem Speichermodul empfangen wurden, einen Fehler umfassen, der korrigierbar ist; Bestimmen, ob ein physisches Ersetzen einer Speicherzelle, in der die Daten gespeichert sind, erforderlich ist; Auswählen eines ersten Fehlerkorrekturmodus, wenn der Fehler korrigierbar ist und das physische Ersetzen erforderlich ist; Auswählen eines zweiten Fehlerkorrekturmodus, wenn der Fehler korrigierbar ist und das physische Ersetzen nicht erforderlich ist; und Durchführen eines Fehlerkorrekturvorgangs bei den Daten gemäß dem ausgewählten Modus.
-
Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts wird ein Rechensystem geschaffen, das mindestens ein Speichermodul, mindestens ein nichtflüchtiges Speichermodul und mindestens einen Prozessor umfasst, der derart eingerichtet ist, dass er das mindestens eine Speichermodul und das mindestens eine nichtflüchtige Speichermodul steuert. Das mindestens eine Speichermodul umfasst mindestens einen ersten Speicher-Chip, der eine erste Eingabe/Ausgabe-Breite aufweist und derart eingerichtet ist, dass er Daten speichern, und mindestens einen zweiten Speicher-Chip, der eine zweite Eingabe/Ausgabe-Breite aufweist, die sich von der ersten Eingabe/Ausgabe-Breite unterscheidet, und der derart eingerichtet ist, dass er einen Fehlerkorrekturcode, um einen Fehler in den Daten zu korrigieren, speichert.
-
Figurenliste
-
Beispielhafte Ausführungsformen der vorliegenden Offenbarung gehen deutlicher aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen hervor, in welchen:
- 1 ein Speichersystem 10 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 2A und 2B herkömmliche Speichermodule darstellen, die jeweils Speicher-Chips mit der gleichen Eingabe/Ausgabe-Breite umfassen;
- 3 ein Speichermodul 100 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 4 einen Systemkanal CH gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 5A eine Adresstiefe eines Speicher-Chips in einem Speichermodul 100 gemäß einer beispielhaften Ausführungsform darstellt, und 5B eine Adresstabelle eines Speicher-Chips darstellt, der das Speichermodul 100 beinhaltet, gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts;
- 6 eine Datenausgabe des Speichermoduls 100 abhängig von einem Fehlerkorrekturmodus gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 7 ein Speichermodul 100a gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 8 ein Speichersystem 20 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 9 ein Speichersystem 30 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 10 ein Flussdiagramm ist, das einen Fehlerkorrekturvorgang eines Speichersystems gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 11 ein Flussdiagramm ist, das einen ersten Fehlerkorrekturvorgang des Speichersystems 100 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 12 ein Flussdiagramm ist, das einen zweiten Fehlerkorrekturvorgang des Speichersystems 100 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 13 ein Flussdiagramm ist, das einen Fehlerkorrekturvorgang eines Speichersystems gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 14 ein Blockdiagramm eines Speicher-Chips gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
- 15 einen Speicher-Chip 2000 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
- 16 ein Rechensystem 3000 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt; und
- 17 eine Server-Vorrichtung 4000 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt.
-
DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Nachfolgend werden beispielhafte Ausführungsformen des erfinderischen Konzepts mit Bezug auf die beigefügten Zeichnungen beschrieben.
-
Ein Speichersystem gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts umfasst ein Speichermodul, das einen ersten Speicher-Chip und einen zweiten Speicher-Chip umfasst, welche voneinander unterschiedliche Eingabe- und Ausgabebreiten aufweisen. Der erste Speicher-Chip und der zweite Speicher-Chip können getrennte Adresssteuerungen aufweisen, um einen Bereich eines Fehlerkorrekturcodes (ECC) zu erweitern, ohne Leistungsverschlechterungen zu verursachen.
-
1 stellt ein Speichersystem 10 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 1 kann das Speichersystem 10 ein Speichermodul 100 und einen Speicher-Controller 200 umfassen.
-
Das Speichermodul 100 kann von einem Prozessor verarbeitete oder zu verarbeitende Daten vorübergehend speichern. Das Speichermodul 100 kann als Betriebsspeicher, Arbeitsspeicher oder Pufferspeicher in einem Rechensystem verwendet werden. Das Speichermodul 100 umfasst erste Speicher-Chips 110, mindestens einen zweiten Speicher-Chip 120 und einen Registered Clock Driver (RCD) 130 (z. B. eine Treiberschaltung).
-
In einer beispielhaften Ausführungsform kann das Speichermodul 100 als Single In-Line Memory Module (SIMM), Dual In-Line Memory Module (DIMM), Small Outline DIMM (SODIMM), Unbuffered DIMM (UDDIMM), Fully-Buffered DIMM (FBDIMM), Rank-Buffered DIMM (RBDIMM), mini-DIMM, micro-DIMM, Registered DIMM (RDIMM) oder Load-Reduced DIMM (RDIMM) implementiert werden.
-
Jeder der ersten Speicher-Chips 110 kann zum Speichern von Daten implementiert werden, die von dem Speicher-Controller 200 übertragen werden. In beispielhaften Ausführungsformen kann jeder der ersten Speicher-Chips 110 ein flüchtiger Speicher wie beispielsweise ein dynamischer Direktzugriffsspeicher (DRAM), ein synchroner DRAM (SDRAM), ein Double Data Rate SDRAM (DDR SDRAM), ein Low Power Double Data Rate SDRAM (LPDDR SDRAM), Graphics Double Data Rate SDRAM (GDDR SDRAM), ein Rambus DRAM (RDRAM) oder ein statischer Direktzugriffsspeicher (SRAM) sein. In einer anderen Ausführungsform kann jeder der ersten Speicher-Chips 110 ein nichtflüchtiger Speicher sein, wie beispielsweise ein Phasenänderungs-Direktzugriffsspeicher (PRAM), ein magnetoresistiver Direktzugriffsspeicher (MRAM), ein resistiver Direktzugriffsspeicher (ReRAM), ein ferroelektrischer Direktzugriffsspeicher (FRAM) oder ein Flash-Speicher. In einer beispielhaften Ausführungsform kann jeder der ersten Speicher-Chips 110 als DRAM-Chip entsprechend verschiedenen Standards implementiert sein, wie beispielsweise Double Data Rate (DDR), DDR2, DDR3, DDR4 und DDR5. In einer beispielhaften Ausführungsform ist jeder der ersten Speicher-Chips 110 derart implementiert, dass er Daten durch n Datenkanäle DQ [1: n] eingibt und ausgibt, wobei n eine positive ganze Zahl größer gleich 2 ist.
-
Der zweite Speicher-Chip 120 kann derart implementiert werden, dass er eine Parität speichert (z. B. Paritätsdaten), um einen Fehler von in den ersten Speicher-Chips 110 gespeicherten Daten zu korrigieren. In einer beispielhaften Ausführungsform kann der zweite Speicher-Chip 120 ein flüchtiger Speicher wie beispielsweise DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, GDDR SDRAM, RDRAM oder SRAM sein. In einer anderen beispielhaften Ausführungsform kann der zweite Speicher-Chip 120 ein nichtflüchtiger Speicher sein, wie beispielsweise PRAM, MRAM, ReRAM, FRAM oder ein Flash-Speicher. In einer beispielhaften Ausführungsform kann der zweite Speicher-Chip 120 als DRAM-Chip entsprechend verschiedenen Standards implementiert werden, wie beispielsweise DDR, DDR2, DDR3, DDR4 und DDR5. In einer beispielhaften Ausführungsform wird der zweite Speicher-Chip 120 derart implementiert, dass er Daten durch m Datenkanäle DQ [1: m] ein- und ausgibt, wobei m eine positive ganze Zahl ist, die kleiner ist als n.
-
In einer beispielhaften Ausführungsform sind eine Speicherkapazität von jedem der ersten Speicher-Chips 110 und eine Speicherkapazität des zweiten Speicher-Chips 120 gleich.
-
Der Registered Clock Driver (RCD) 130 kann derart implementiert sein, dass er einen Befehl CMD, eine Adresse ADD und ein Taktsignal CK von dem Speicher-Controller 200 empfängt. Der RCD 130 kann den empfangenen Befehl CMD, die empfangene Adresse ADD und das empfangene Taktsignal CK an die ersten Speicher-Chips 110 und den zweiten Speicher-Chip 120 übertragen.
-
Obwohl in 1 nicht dargestellt, kann das Speichermodul 100 ferner einen Serial-Presence-Detect(SPD)-Chip umfassen. Der SPD-Chip kann derart implementiert sein, dass er Informationen über Merkmale des Speichermoduls 100 speichert. In einer beispielhaften Ausführungsform kann der SPD-Chip Speichermodulinformationen speichem, wie beispielsweise einen Modultyp, eine Betriebssystemumgebung, eine Linienanordnung, eine Modulkonfiguration und eine Speicherkapazität des Speichermoduls 100. In einer beispielhaften Ausführungsform kann der SPD-Chip einen programmierbaren Nur-Lese-Speicher, wie beispielsweise einen elektrisch löschbaren Nur-Lese-Speicher (EEPROM) umfassen.
-
Der Speicher-Controller 200 kann derart implementiert sein, dass er einen Befehl/eine Adresse CMD/ADD, ein Taktsignal CK, ein Steuersignal, Daten DQ und ein Data-Strobe-Signal DQS durch einen Kanal an das Speichermodul 100 überträgt und von diesem empfängt. In einer beispielhaften Ausführungsform steuert der Speicher-Controller 200 ein Lesen der Daten DQ von dem Speichermodul 100 und ein Schreiben der Daten DQ in das Speichermodul 100. In einer beispielhaften Ausführungsform stellt der Speicher-Controller 200 den Befehl/die Adresse CMD/ADD und das Steuersignal dem Speichermodul 100 bereit und kann ein Übertragen und Empfangen der Daten DQ an und von einem Speicherchip, auf den von den Speicher-Chips zugegriffen werden soll, basierend auf dem Steuersignal in einem Schreib- oder Lesevorgang entsprechend dem Befehl/der Adresse CMD/ADD steuern. Zum Beispiel kann der Schreibvorgang ansprechend auf einen CMD eines Schreibbefehls durchgeführt werden und der Lesevorgang kann ansprechend auf einen CMD eines Lesebefehls durchgeführt werden.
-
In einer beispielhaften Ausführungsform ist der Speicher-Controller 200 mit einem externen Host wie beispielsweise einem Prozessor verbunden. Zum Beispiel kann der Speicher-Controller 200 mit dem externen Host durch mindestens eines von verschiedenen Schnittstellenprotokolle kommunizieren, wie beispielsweise universeller serieller Bus (USB), MultiMediaCard (MMC), Parallel Connection Interface (PCI), Parallel Connection Interface Express (PCIe), Advanced Technology Attachment (ATA), Serial-ATA, Parallel-ATA, Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Enhanced Small Device Interface (ESDI) oder Integrated Drive Electronics (IDE).
-
In einer beispielhaften Ausführungsform kann der Speicher-Controller 200 als zusätzlicher Chip eingerichtet sein oder er kann mit dem Speichermodul 100 eingerichtet sein. Zum Beispiel kann der Speicher-Controller 200 auf einem Mainboard implementiert sein und er kann als integrierter Speicher-Controller (IMC), der in einem Mikroprozessor umfasst ist, implementiert sein. Zudem kann der Speicher-Controller 200 in einem Eingabe/Ausgabe-Hub angeordnet sein, und der den Speicher-Controller 200 umfassende Eingabe/Ausgabe-Hub kann als Speicher-Controller-Hub (MCH) bezeichnet werden.
-
Der Speicher-Controller 200 umfasst eine ECC-Engine 210 (z. B. eine Schaltung) zur Durchführung von Fehlererfassung und Korrekturvorgängen.
-
Die ECC-Engine 210 kann eine Paritätsprüfung, eine zyklische Redundanzprüfung (CRC Check), eine Prüfsummenprüfung und/oder einen Hamming-Code verwenden, um Fehler zu erfassen und die erfassten Fehler zu korrigieren. In einer beispielhaften Ausführungsform kann die ECC-Engine 210 eine Korrekturmaßnahme wie beispielsweise eine x4 Single Device Data Correction (SDDC), x8 Single-bit Error Correction and Double-bit Error Detection (SECDED), oder Lockstep x8 SDDC verwenden, um Fehler einer Mehrzahl von Speicher-Chips zu korrigieren.
-
In einer beispielhaften Ausführungsform arbeitet die ECC-Engine 210 in einem ersten Fehlerkorrekturmodus oder einem zweiten Fehlerkorrekturmodus. Der erste Fehlerkorrekturmodus ist ein Soft-Fehlerkorrekturmodus und der zweite Fehlerkorrekturmodus ist ein Hard-Fehlerkorrekturmodus. In dem Soft-Fehlerkorrekturmodus werden Daten der ersten Speicher-Chips 110 unter Verwendung von m Paritäten des zweiten Speicher-Chips 120 korrigiert. In dem Hard-Fehlerkorrekturmodus werden Daten der ersten Speicher-Chips 110 unter Verwendung von 2m Paritäten des zweiten Speicher-Chips 120 korrigiert.
-
In einer beispielhaften Ausführungsform bestimmt die ECC-Engine 210, ob eine Fehlerkorrektur bei Daten der ersten Speicher-Chips 110 in dem ersten Fehlerkorrekturmodus möglich ist und führt einen Soft-Fehlerkorrekturvorgang durch, wenn bestimmt wird, dass die Fehlerkorrektur möglich ist (z. B. wenn bestimmt wird, dass ein Fehler korrigierbar ist). In einer beispielhaften Ausführungsform führt die ECC-Engine 210 einen Hard-Fehlerkorrekturvorgang bei den Daten der ersten Speicher-Chips 110 in dem zweiten Fehlerkorrekturmodus durch, wenn ein Fehler korrigierbar ist aber ein physisches Ersetzen (Redundanzzellenersatz) erforderlich ist. Zum Beispiel falls bestimmt wird, dass die in einer Originalspeicherzelle gespeicherten Daten unzuverlässig sind, nachdem die Daten korrigiert wurden, können sie in der Redundanzzelle gespeichert werden. In einer beispielhaften Ausführungsform wird eine Mapping-Tabelle, welche eine logische Adresse einer physischen Adresse der Originalspeicherzelle zuordnet, aktualisiert, um die logische Adresse einer physischen Adresse der Redundanzspeicherzelle zuzuordnen.
-
In einer beispielhaften Ausführungsform liest die ECC-Engine 210 eine Parität von dem zweiten Speicher-Chip 120 abhängig von einem Fehlerkorrekturmodus, der unter Verwendung von mindestens einer Adresse eines zweiten Speicher-Chips 120 mit nur ECC ausgewählt wird. Die mindestens eine Adresse kann eine Zeilenadresse, eine Spaltenadresse, eine Bankadresse oder eine Bankgruppenadresse sein.
-
Ein herkömmliches Speichersystem umfasst Speicher-Chips mit der gleichen Eingabe- und Ausgabebreite, um in einem ECC-Fehlerkorrekturbereich zu arbeiten, der durch ein Speichermodul beschränkt wird. Das Speichersystem 10 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dagegen trennt Adresssteuerungen der ersten Speicher-Chips 110 und der zweiten Speicher-Chips 120 in einem Speichermodul, in dem die ersten Speicher-Chip 120, welche Daten speichern, und der zweite Speicher-Chip 120, welcher eine Parität der Daten speichert, derart eingerichtet sind, dass sie voneinander unterschiedliche Eingabe/Ausgabe-Breiten aufweisen, um eine ECC-Fehlerkorrekturbereichbreite abhängig von einer vorgegebenen Maßnahme zu erweitern.
-
2A und 2B stellen herkömmliche Speichermodule dar, die jeweils Speicher-Chips mit der gleichen Eingabe/Ausgabe-Breite umfassen. In 2A und 2B kann sowohl Sub-Kanal A als auch Sub-Kanal B x8 ECC und x32 DATA (Codewort) eingeben und ausgeben. Eine Konfiguration eines Codeworts x8 ECC und x32 DATA, dargestellt in 2A, wird durch x4 Speicher-Chips mit der gleichen Eingabe/Ausgabe-Breite implementiert. Das Speichermodul umfasst zwei x4 Speicher-Chips für x8 ECC und acht x4 Speicher-Chips für x32 DATA. Konfigurationen der x8 ECC und x32 DATA, dargestellt in 2B, werden durch x8 Speicher-Chips mit der gleichen Eingabe/Ausgabe-Breite implementiert. Das Speichermodul umfasst einen x8 Speicher-Chip für x8 ECC und vier x8 Speicher-Chips für x32 DATA.
-
Das Speichermodul, dargestellt in 2A, kann ein Maximum von x4 Daten-Lane-Korrektur pro Sub-Kanal durchführen. Das Speichermodul, dargestellt in 2B, kann gleichzeitig zwei Ränge während einer Korrektur einer x8-Daten-Lane betreiben, um Leistungsverschlechterungen zu verursachen, die eine Folge von Burst-Chopping (Lockstep) sind. Zum Beispiel wenn eine Mainstream-DRAM-Dichte auf 16 Gb in einem DDR5-RAM erhöht wird, kann eine 8-Gb-Konfiguration zu einer Leistungsminderung führen, da die Anzahl an Bänken um die Hälfte reduziert wird. Die x4- und x8-basierten DIMMs, die jeweils eine Basiskapazität von 16G haben, können es erschweren, eine niedrige Kapazität wie 8 Gb oder 16 Gb zu konfigurieren. Die x4 DIMM hat eine Mindestkapazität von 32 Gb und die x8 DIMM hat eine Mindestkapazität von 16 Gb. Entsprechend kann ein einzelner Rang verwendet werden, um eine Mindestkapazität zu konfigurieren. Aus diesem Grund ist Rankverschränkung möglicherweise nicht möglich und so kann es zu einer Leistungsminderung kommen.
-
3 stellt ein Speichermodul 100 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. Gemäß 3 ist das Speichermodul (DIMM) 100 derart implementiert, dass jeweils x8 ECC und x32 DATA an zwei Sub-Kanäle SCH-A und SCH-B unter Verwendung von Speicher-Chips, wie beispielsweise einem x8 DRAM und einem x16 DRAM mit unterschiedlichen Eingabe/Ausgabe-Breiten, eingegeben und ausgegeben werden.
-
Der erste Sub-Kanal SCH-A umfasst zwei erste Speicher-Chips 111A und 112A und einen zweiten Speicher-Chip 120A.
-
Jeder der ersten Speicher-Chips 111A und 112A kann zum Speichern von Daten implementiert werden. In einer beispielhaften Ausführungsform ist jeder der ersten Speicher-Chips 111A und 112A derart implementiert, dass er eine erste Eingabe/AusgabeBreite von x16 hat. In einer beispielhaften Ausführungsform ist der zweite Speicher-Chip 120A derart implementiert, dass er eine zweite Eingabe/Ausgabe-Breite von x8 hat. Die zweite Eingabe/Ausgabe-Breite von x8 ist die Hälfte der ersten Eingabe/AusgabeBreite x16. Allerdings versteht es sich, dass die zweite Eingabe/Ausgabe-Breite nicht darauf beschränkt ist. Zum Beispiel ansprechend auf jeden Taktimpuls des Taktsignals CK kann der erste Speicher-Chip 111A 16 Bits ausgeben, während der zweite Speicher-Chip 120A 8 Bits ausgibt.
-
In einer beispielhaften Ausführungsform haben sowohl jeweils die ersten Speicher-Chips 111A und 112A als auch der zweite Speicher-Chip 120A die gleiche Speicherkapazität.
-
Der zweite Sub-Kanal SCH-B umfasst zwei erste Speicher-Chips 111B und 112B und einen zweiten Speicher-Chip 120B. Der zweite Sub-Kanal SCH-B kann die gleiche Konfiguration aufweisen wie der erste Sub-Kanal SCH-A.
-
4 stellt einen Systemkanal CH gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 4 umfasst ein Systemkanal CH einen ersten Sub-Kanal SCH-A und einen zweiten Sub-Kanal SCH-B. Der erste Sub-Kanal SCH-A und der zweite Sub-Kanal SCH-B können Daten-Lanes DQ gemeinsam nutzen und können unabhängig Kanalvorgänge abhängig von Befehlen (Lese- und Schreibbefehlen) CMD_A und CMD B durchführen.
-
5A stellt eine Adresstiefe eines Speicher-Chips in einem Speichermodul 100 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar, und 5B stellt eine Adresstabelle eines Speicher-Chips dar, der das Speichermodul 100 beinhaltet, gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
-
Bezugnehmend auf 5A können sowohl ein Datenchip (ein erster Datenchip) als auch ein ECC-Chip (ein zweiter Speicher-Chip) k+1 Adress-Bits ADD1 bis ADDk+1 der Adresse ADD empfangen. Allgemein wird eine Chip-Größe (Speicherkapazität) durch eine Eingabe/Ausgabe-Breite (die Anzahl an DQ-Pins) und eine Adresstiefe bestimmt. Der Begriff „Adresstiefe“ bezeichnet die Anzahl an Adress-Bits (eine Zyklusanzahl), die gezählt (oder bedacht) wird, um eine Chip-Größe zu bestimmen. Zum Beispiel kann die Adresstiefe sich auf die Anzahl an Adress-Bits beziehen, die berücksichtigt werden, oder die Anzahl an Adress-Bits, die nicht ignoriert werden.
-
In einer beispielhaften Ausführungsform des erfinderischen Konzepts ist eine Adresstiefe eines Datenchips geringer als eine Adresstiefe eines ECC-Chips. Obwohl sowohl der Datenchip als auch der ECC-Chip die gleiche Anzahl an Adress-Bits in dem Speichermodul 100 empfangen, zählt der Datenchip nicht (oder berücksichtigt nicht) mindestens eines der empfangenen Adress-Bits.
-
Zum Beispiel zählt der Datenchip, wie in 5A dargestellt, nicht (oder berücksichtigt nicht) ein einzelnes Adress-Bit ADDj+1 von den empfangenen Adress-Bits. Zum Beispiel ignoriert der Datenchip eines der empfangenen Adress-Bits. Entsprechend ist eine Adresstiefe des Datenchips k und eine Adresstiefe des ECC-Chips ist k+1. Zum Beispiel wird auf den Datenchip über k gezählte Adress-Bits zugegriffen und auf den ECC-Chip wird durch k+1 gezählte Adress-Bits zugegriffen. In einer beispielhaften Ausführungsform umfasst eine Adresse k+1 Adress-Bits, auf den ECC-Chip wird unter Verwendung der ersten bis k+1-ten Adress-Bits ADD1 bis ADDk+1 zugegriffen und auf den Datenchip wird unter Verwendung der ersten bis j-ten Adress-Bits ADD1 bis ADDj und j+2-te bis k+1-te Adress-Bits ADDj+2 bis ADDk+1 zugegriffen.
-
In einer beispielhaften Ausführungsform ist die Anzahl an Bits einer Adresse, die von dem ECC-Chip gezählt werden, größer als die Anzahl an Bits einer Adresse, die von dem Datenchip berücksichtigt werden. Zum Beispiel berücksichtigt der ECC-Chip mehr Bits der Adresse als der Datenchip. In einer beispielhaften Ausführungsform ist die Anzahl an Bits einer Bankgruppenadresse, die von dem ECC-Chip gezählt wird, größer als die Anzahl an Bits einer Bankgruppenadresse, die von dem Datenchip gezählt wird. In einer beispielhaften Ausführungsform berücksichtigt der ECC-Chip mehr Bits einer Bankgruppenadresse als der Datenchip.
-
5B stellt eine Adresskonfiguration von Speicher-Chips dar, die eine Speicherkapazität von 16 Gb bilden. Wie in 5B dargestellt, unterscheiden sich ein x8-Speicher-Chip (ein erster Speicher-Chip) und ein x16-Speicher-Chip (ein erster Speicher-Chip) voneinander hinsichtlich dem Vorhandensein oder dem Fehlen eines niedrigstwertigen Bits (Least Significant Bit) BG2 einer Bankgruppenadresse und der Anzahl an Bänken.
-
In einer beispielhaften Ausführungsform des erfinderischen Konzepts kann auf jeden der ersten Speicher-Chips 111A, 112A, 111B, 112B (siehe 3) durch eine Adresstabelle zugegriffen werden, die jeweils 2 Bits einer Bankgruppenadresse, 2 Bits einer Bankadresse, 16 Bits einer Zeilenadresse und 10 Bits einer Spaltenadresse umfasst.
-
In einer beispielhaften Ausführungsform kann auf jeden der zweiten Speicher-Chips 120A und 120B (siehe 3) durch eine Adresstabelle zugegriffen werden, die 3 Bits einer Bankgruppenadresse, 2 Bits einer Bankadresse, 16 Bits einer Zeilenadresse und 10 Bits einer Spaltenadresse umfasst.
-
In einer beispielhaften Ausführungsform wird das niedrigstwertige Bit BG2 der Bankgruppenadresse nur in einem x8-Speicher-Chip aktiviert. In einer beispielhaften Ausführungsform zählen die x16 Speicher-Chips nicht das niedrigwertigste Bit BG2 der Bankgruppenadresse. Zum Beispiel kann ein x16 Speicher-Chip das niedrigwertigste Bit BG2 der Bankgruppenadresse ignorieren. Das Speichersystem 10 gemäß einer beispielhaften Ausführungsform sichert eine x8 ECC-Lane, wenn das niedrigwertigste Bit BG2 der Bankgruppenadresse während eines Fehlerkorrekturvorgang in einem Low-Pegel liegt, und sichert eine x16 ECC-Lane, wenn das niedrigwertigste Bit BG2 der Bankgruppenadresse während des Fehlerkorrekturvorgangs von einem Low-Pegel L zu einem High-Pegel H übergeht.
-
6 stellt eine Datenausgabe des Speichermoduls 100 abhängig von einem Fehlerkorrekturmodus gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar.
-
In einer beispielhaften Ausführungsform wird, wenn ein niedrigwertigstes Bit BG2 einer Bankgruppenadresse innerhalb eines Low-Pegel L ist, ein Lesevorgang abhängig von einem ersten Fehlerkorrekturmodus durchgeführt. In dem ersten Fehlerkorrekturmodus können x8 ECC-Bits und x16 DATA-Bits jeweils von einem x8 Speicher-Chip und einem x16 Speicher-Chip ansprechend auf einen Lesebefehl Read ausgegeben werden.
-
Wenn das Signal des niedrigwertigsten Bit BG2 der Bankgruppenadresse Low-Pegel L ist, können jeweils x8 ECC-Bits und x16 DATA-Bits aus dem x8 Speicher-Chip und den x16 Speicher-Chips ansprechend auf einen ersten Lesebefehl Read1 ausgegeben werden. In einer beispielhaften Ausführungsform wird, wenn das niedrigwertigste Bit BG2 der Bankgruppenadresse von dem Low-Pegel L zu dem High-Pegel H übergeht, ein Lesevorgang abhängig von einem zweiten Fehlerkorrekturmodus durchgeführt. Ansprechend auf einen zweiten Lesebefehl Read2, können x8 ECC-Bits und x16 DATA-Bits jeweils aus dem x8 Speicher-Chip und den x16 DATA-Speicher-Chips ausgegeben werden. Entsprechend können Paritäten der x16 ECC-Lane aus dem x8 Speicher-Chip basierend auf dem ersten und dem zweiten Lesebefehl Read1 und Read2 ausgegeben werden.
-
In einer beispielhaften Ausführungsform kann der x8 Speicher-Chip (der zweite Speicher-Chip) einen fehlerhaften Speicher-Chip (der einen halben Chip einsetzt) verwenden, der das niedrigwertigste Bit BG2 der Bankgruppenadresse auf den Low-Pegel L fest einstellt oder das niedrigwertigste Bit BG2 der Bankgruppenadresse auf den High-Pegel H fest einstellt.
-
Das Speichermodul 100 umfasst heterogene erste und zweite Speicher-Chips mit der gleichen Speicherkapazität (zum Beispiel 16 Gb), wie in 3 bis 6 dargestellt. Der erste Speicher-Chip hat eine x16 Eingabe/Ausgabe-Breite und der zweite Speicher-Chip hat eine x8 Eingabe/Ausgabe-Breite. Allerdings ist die Konfiguration des Speichermoduls gemäß Ausführungsformen der vorliegenden Offenbarung nicht darauf beschränkt. Heterogene Speicher-Chips mit der gleichen Speicherkapazität können mit verschiedenen Kombinationen konfiguriert sein.
-
7 stellt ein Speichermodul 100a gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 7 umfasst jeder Sub-Kanal des Speichermoduls 100a zwei x4 Speicher-Chips für eine x8 ECC-Eingabe/Ausgabe und vier x8 Speicher-Chips für eine x32 DATA-Eingabe/Ausgabe. Zum Beispiel kann der erste x8 ECC und die ersten x32 DATA einem ersten Sub-Kanal entsprechen und der zweite x8 ECC und die zweiten x32 DATA können einem zweiten Sub-Kanal entsprechen.
-
Ein Speichersystem gemäß einer beispielhaften Ausführungsform kann zwischen einem Speicher-Controller und einem Speichermodul durch eine Mehrzahl von Systemkanälen verbunden sein.
-
8 stellt ein Speichersystem 20 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 8 umfasst das Speichersystem 20 ein Speichermodul 100b und einen Speicher-Controller 200b, der mit zwei Systemkanälen CH1 und CH2 verbunden ist, im Vergleich zu dem Speichersystem 10, das in 1 dargestellt ist. In einer beispielhafte Ausführungsform umfasst jeder der Systemkanäle CH1 und CH2 erste Speicher-Chips DRAMs, welche Daten speichern, und einen zweiten Speicherchip DRAM (ECC), der eine Parität zur Korrektur eines Fehlers von Daten speichert. In einer beispielhaften Ausführungsform überträgt und empfängt jeder der ersten Speicher-Chips DRAMs n Datensignale DQ[1:n] und der zweite Speicher-Chip DRAM (ECC) überträgt und empfängt m Datensignale DQ[1:m]. Zum Beispiel kann das n Datensignal regulären Daten entsprechen und die m Datensignale können einer Parität oder ECC-Daten entsprechen, die verwendet werden, um die regulären Daten zu korrigieren.
-
In einer beispielhaften Ausführungsform haben der erste Speicher-Chip und der zweite Speicher-Chip die gleiche Speicherkapazität und voneinander unterschiedliche Adresstiefen. Die Adresstiefen der Speicher-Chips können bei unterschiedlichen Zuverlässigkeitsanforderungen unterschiedlich sein.
-
Der Speicher-Controller 200b kann Steuerungen von Bankgruppenadressen des ersten Speicher-Chips und des zweiten Speicher-Chips trennen, um eine Fehlerkorrekturleistung zu erweitern.
-
In 1 bis 8 erweitern die Speichersysteme eine Fehlerkorrekturleistung unter Verwendung von unterschiedlichen Adresstiefen in heterogenen Speicher-Chips, welche die gleiche Speicherkapazität aufweisen. Allerdings ist die Erweiterung der Fehlerkorrekturleistung der Speichersysteme gemäß beispielhaften Ausführungsformen nicht darauf beschränkt. Zum Beispiel kann die Erweiterung der Fehlerkorrekturleistung durch Variieren von Breiten der ECC-Eingabe- und Ausgabe-Lanes erzielt werden.
-
9 stellt ein Speichersystem 30 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 9 umfasst das Speichersystem 30 zwei zweite Speicher-Chips DRAM (ECC) zum Korrigieren eines Fehlers in jeweiligen Systemkanälen CH1 und CH2 im Vergleich zu dem in 8 dargestellten Speichersystem 20. Eine ECC-Engine (z. B. eine Steuerschaltung) bestimmt, ob sie eine Parität zur Fehlerkorrektur durch m ECC-Eingabe/Ausgabe-Lanes empfängt (erste ECC-Eingabe/Ausgabe-Lanes) oder eine Parität zur Fehlerkorrektur durch 2m ECC-Eingabe/Ausgabe-Lanes (erste und zweite ECC-Eingabe/Ausgabe-Lanes) abhängig von einem Fehlerkorrekturmodus empfängt.
-
Ein Speicher-Controller 200c des Speichersystems 30 gemäß einer beispielhaften Ausführungsform ist fähig, Breiten von ECC Eingabe/Ausgabe-Lanes für eine Fehlerkorrektur entsprechend unterschiedlicher Leistungs- und Zuverlässigkeitsanforderungen zu variieren.
-
10 ist ein Flussdiagramm, das einen Fehlerkorrekturvorgang eines Speichersystems gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. In 1 bis 10 kann ein Fehlerkorrekturverfahren als Betriebsverfahren des Speichersystems 10 wie folgt durchgeführt werden. Der Speicher-Controller 200 (siehe 1) bestimmt, ob ein Fehler korrigierbar ist und bestimmt, ob ein physisches Ersetzen der Speicher-Chips erforderlich ist, wenn der Fehler korrigierbar ist (S110). Wenn der Fehler korrigierbar ist und das physische Ersetzen erforderlich ist, ändert der Speicher-Controller 200 einen ECC-Modus (S120). Zum Beispiel kann der Speicher-Controller 200 in einem ersten Fehlerkorrekturmodus in einem normalen Modus arbeiten und kann in einem zweiten Fehlerkorrekturmodus arbeiten, wenn das physische Ersetzen erforderlich ist. Das physische Ersetzen bezeichnet ein Ersetzen einer Speicherzelle, die einer Adresse entspricht, durch eine Redundanzzelle. Zum Beispiel falls die Daten mit dem Fehler, der korrigierbar ist, in einer Speicherzelle gespeichert sind, die unzuverlässig geworden ist, kann ein physisches Ersetzen erforderlich sein. In dem zweiten Fehlerkorrekturmodus wird eine zusätzliche Parität von einem ECC-Chip mit einer Adresstiefe empfangen, die größer ist als eine Adresstiefe eines Speicher-Chips.
-
11 ist ein Flussdiagramm, das einen ersten Fehlerkorrekturvorgang des Speichersystems 100 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. In 1 und 11 kann der erste Fehlerkorrekturvorgang wie folgt durchgeführt werden. Der Speicher-Controller 200 empfängt Daten von den ersten Speicher-Chips 110 durch die ersten Lanes (S210). Der Speicher-Controller 200 empfängt ECC-Daten (Parität) von dem zweiten Speicher-Chip 120 durch die zweiten Lanes (S220). Der Speicher-Controller 200 korrigiert einen Fehler der empfangenen Daten unter Verwendung der ECC-Daten (S230). Zum Beispiel führt der Speicher-Controller einen Fehlerkorrekturvorgang bei den empfangenen Daten unter Verwendung der ECC-Daten durch.
-
12 ist ein Flussdiagramm, das einen zweiten Fehlerkorrekturvorgang des Speichersystems 100 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. In 1 und 12 kann der zweite Fehlerkorrekturvorgang wie folgt durchgeführt werden.
-
Der Speicher-Controller 200 empfängt erste ECC-Daten (Parität) von dem zweiten Speicher-Chip 120 durch die zweiten Lanes in einer ersten Lesezeit (S310). Der Speicher-Controller 200 empfängt zweite ECC-Daten (Parität) von dem zweiten Speicher-Chip 120 durch die zweiten Lanes in der zweiten Lesezeit (S320). In einer beispielhaften Ausführungsform tritt die zweite Lesezeit nach der ersten Lesezeit auf. Der Speicher-Controller 200 empfängt Daten durch die ersten Lanes in der ersten Lesezeit oder der zweiten Lesezeit (S330). Der Speicher-Controller 200 korrigiert einen Fehler der empfangenen Daten unter Verwendung der ersten ECC-Daten und der zweiten ECC-Daten (S340). Entsprechend kann die Zuverlässigkeit von Daten sichergestellt werden. Dann kann der Speicher-Controller 200 optional den ersten Speicher-Chip 110 steuern, um die Speicherzelle, die dem zweiten Fehlerkorrekturvorgang unterzogen wurde, durch eine Redundanzzelle zu ersetzen (S350).
-
13 ist ein Flussdiagramm, das einen Fehlerkorrekturvorgang eines Speichersystems gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. Es wird nun unter Bezugnahme auf 9 und 13 die Fehlerkorrektur des Speichersystems beschrieben.
-
Der Speicher-Controller 200c empfängt Daten von den ersten Speicher-Chips durch die Daten-Lanes und erste ECC-Daten von einem zweiten Speicher-Chip durch erste ECC-Lanes (S410). Zum Beispiel kann der Speicher-Controller 200c die Daten von den Speicher-Chips empfangen, die durch den ersten Kasten des Speichermoduls 100c, benannt mit „DRAMs“, dargestellt sind, und kann die ersten ECC-Daten von dem Speicher-Chip empfangen, der durch den zweiten Kasten des Speichermoduls 100c, benannt mit „DRAM (ECC)“, dargestellt ist. Der Speicher-Controller 220c bestimmt, ob ein Fehler in den empfangenen Daten vorliegt, ob der Fehler korrigierbar ist, wenn ein Fehler vorliegt, und bestimmt, ob ein physisches Ersetzen eines Speicher-Chips erforderlich ist, wenn der Fehler korrigierbar ist (S420).
-
Wenn der Fehler korrigierbar ist und das physische Ersetzen eines Speicher-Chips erforderlich ist, empfängt der Speicher-Controller 200c zweite ECC-Daten durch die zweiten ECC-Lanes von dem dritten Speicher-Chip (S430). Zum Beispiel kann der Speicher-Controller 200c die zweiten ECC-Daten von den Speicher-Chips empfangen, die durch den dritten Kasten des Speichermoduls 100c, benannt mit „DRAM (ECC)“, dargestellt sind. In einer beispielhaften Ausführungsform wird das physische Ersetzen abhängig davon bestimmt, ob die Anzahl an korrigierbaren Fehler-Bits und die Anzahl an Fehler-Bits größer sind als ein vorbestimmter Wert. In einer beispielhaften Ausführungsform ist ein physisches Ersetzen erforderlich, wenn die Anzahl an korrigierbaren Fehler-Bits größer ist als der vorbestimmte Wert.
-
Der Speicher-Controller 200c führt einen Fehlerkorrekturvorgang bei den empfangenen Daten unter Verwendung der ersten ECC-Daten und der zweiten ECC-Daten durch und führt ein physisches Ersetzen für den Speicher-Chip (starker ECC) durch (S440). Wenn der Fehlerkorrekturvorgang erfolgreich ist, werden ein oder mehrere Fehler der empfangenen Daten korrigiert. Zum Beispiel nachdem der Fehler korrigiert wurde, kann der Speicher-Controller 200c anfordern, dass der Speicher-Chip eine Speicherzelle entsprechend einer Adresse durch eine Redundanzzelle ersetzt. Der Speicher-Chip kann die Speicherzelle entsprechend der Adresse durch eine Redundanzzelle entsprechend der Anforderung des Speicher-Controllers 200c austauschen. Zum Beispiel falls die empfangenen Daten in einer ersten Speicherzelle gespeichert sind, können, nachdem ein Fehler in den empfangenen Daten korrigiert wurde, um korrigierte Daten zu erzeugen, die korrigierten Daten in einer zweiten anderen Speicherzelle gespeichert werden, wenn ein Ersetzen erforderlich ist.
-
Wenn dagegen der Fehler korrigierbar ist, aber das physische Ersetzen für einen Speicher-Chip nicht erforderlich ist, korrigiert der Speicher-Controller 200c den Fehler der empfangenen Daten unter Verwendung der ersten ECC-Daten (schwacher ECC) (S450). Zum Beispiel führt der Speicher-Controller 200c einen Fehlerkorrekturvorgang bei den empfangenen Daten unter Verwendung von lediglich den ersten ECC-Daten durch, wenn ein physisches Ersetzen nicht erforderlich ist.
-
Die oben beschriebenen Ausführungsformen können unter Verwendung von Hardware-Komponenten, Software-Komponenten und/oder einer Kombination daraus implementiert werden. Zum Beispiel können das Verfahren und die Komponenten, die in den Ausführungsformen beschrieben sind, unter Verwendung von einem oder mehreren Universal- oder Spezial-Computern implementiert werden, wie beispielsweise einem Prozessor, einem Controller, einer arithmetisch-logischen Einheit (ALU), einem digitalen Signalprozessor, einem Mikrocomputer, einem Field Programmable Gate Array (FPGA), einer programmierbaren Logikeinheit (PLU), einem Mikroprozessor, oder einer beliebigen anderen Vorrichtung, die fähig ist, auf Anweisungen auf eine definierte Art und Weise zu reagieren und diese auszuführen.
-
Ein Speicher-Chip der vorliegenden Offenbarung kann in einer Stapelkonfiguration implementiert werden.
-
14 ist ein Blockdiagramm eines Speicher-Chips gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
-
Bezugnehmend auf 14 umfasst ein Speicher-Chip 1000 erste bis dritte Speicher-Dies 1100 bis 1300 und Silicium-Durchkontaktierungen (Through-Silicon Via, TSVs), die auf einem Substrat in einer vertikalen Richtung gestapelt sind. Die Anzahl der gestapelten Speicher-Dies ist nicht auf die in 14 dargestellte beschränkt. Zum Beispiel können das erste und das zweite Speicher-Die 1100 und 1200 Slave-Dies sein und das dritte Speicher-Die 1300 kann ein Master-Die oder ein Puffer-Die sein.
-
Das erste Speicher-Die 1100 umfasst eine erste Speicherzellenanordnung 1110 und eine erste Durchgangselektrodenregion 1120 für einen Zugriff auf die erste Speicherzellenanordnung 1110. Das zweite Speicher-Die 1200 umfasst eine zweite Speicherzellenanordnung 1210 und eine zweite Durchgangselektrodenregion 1220 für einen Zugriff auf die zweite Speicherzellenanordnung 1210. Die erste Durchgangselektrodenregion 1120 kann eine Region repräsentieren, in der Durchgangselektroden zur Kommunikation zwischen dem ersten Speicher-Die 1100 und dem dritten Speicher-Die 1300 in dem ersten Speicher-Die 1100 angeordnet sind. Auf ähnliche Art und Weise kann die zweite Durchgangselektrodenregion 1220 eine Region repräsentieren, in der Durchgangselektroden zur Kommunikation zwischen dem zweiten Speicher-Die 1200 und dem dritten Speicher-Die 1300 in dem zweiten Speicher-Die 1200 angeordnet sind. Die Durchgangselektroden können elektrische Pfade zwischen den ersten bis dritten Speicher-Dies 1100 bis 1300 ausbilden. Die ersten bis dritten Speicher-Dies 1100 bis 1300 können durch die Durchgangselektroden miteinander elektrisch verbunden sein. Zum Beispiel können hunderte bis tausende der Durchgangselektroden ausgebildet sein und die Durchgangselektroden können in Matrix-Form angeordnet sein. Das dritte Speicher-Die 1300 umfasst eine erste Peripherieschaltung 1310 und eine zweite Peripherieschaltung 1320. Die erste Peripherieschaltung 1310 kann Schaltungen zum Zugreifen auf den ersten Speicher-Die 1100 sein und die zweite Peripherieschaltung 1320 umfasst Schaltungen zum Zugreifen auf das zweite Speicher-Die 1200.
-
Ein Speicher-Chip gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung weist eine variable Eingabe/Ausgabe-Breite abhängig von einer Steuerung eines Speicher-Controllers auf.
-
15 stellt einen Speicher-Chip 2000 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 15 umfasst der Speicher-Chip 2000 eine Speicherzellenanordnung 2100, einen Zeilen-Decoder 2200 (z.B. eine Decoder-Schaltung), eine Eingabe/Ausgabe-Erfassungsverstärkerschaltung 2300, einen Spalten-Decoder 2400 (z. B. eine Decoder-Schaltung), eine DQ-Rekonfigurationsschaltung 2500 und einen DQ-Konfigurations-Controller 2600 (z. B. eine Steuerschaltung) und einen Eingabe/Ausgabe-Puffer 2700.
-
Der DQ-Rekonfigurations-Controller 2600 kann ein Steuersignal basierend auf einem Nutzerbefehl erzeugen. Das Steuersignal kann der DQ-Rekonfigurationsschaltung 2500 bereitgestellt werden, um einen Modus einer DQ-Konfiguration zu ändern, zum Beispiel ein DQ-Pad in einen gewünschten Modus auf augenblickliche Art und Weise (z. B. dynamisch). Der Nutzerbefehl kann einen Befehl umfassen, das DQ-Pad in einem von dem Nutzer gewünschten Modus aus den DQ-Pad-Modi x4, x8 und x16 zu konfigurieren. Ein solcher Nutzerbefehl kann übertragen werden, während eine Speichervorrichtung umfassend den Speicher-Chip 2000 betrieben wird. Wenn das Steuersignal der DQ-Rekonfigurationsschaltung 2500 bereitgestellt wird, kann die DQ-Rekonfigurationsschaltung 2500 die DQ-Pad-Konfiguration auf augenblickliche Art und Weise neu konfigurieren, zum Beispiel in einen DQ-Pad-Modus, der durch das Steuersignal angegeben wird.
-
In einer beispielhaften Ausführungsform ist der Nutzerbefehl ein Befehl, der von einem Speicher-Controller des Prozessors bereitgestellt wird. Wenn ein Nutzungsplan oder ein Ablaufplan bezüglich des DQ-Pad-Modus der Speichervorrichtung als Abschnitt eines vorgegebenen Programms umfasst ist und das Programm durch den Prozessor ausgeführt wird, kann der Speicher-Controller, angewiesen durch den Prozessor, eine Anweisung an den DQ-Konfigurations-Controller 200 übertragen, um den DQ-Pad-Modus der Speichervorrichtung umzuschalten. Die DQ-Rekonfigurationsschaltung 2500 kann die Konfiguration des DQ-Pads in einen angewiesenen Modus basierend auf dem Steuersignal, das von dem DQ-Konfigurations-Controller 2600 bereitgestellt wird, neu konfigurieren. Zum Beispiel wenn das Steuersignal, das von dem DQ-Konfigurations-Controller 2600 bereitgestellt wird, ein Signal ist, um in einen x8-Modus umzuschalten, kann die Konfiguration des DQ-Pads sofort in den x8-Modus geändert werden.
-
Der Speicher-Chip 2000 umfasst eine Speicherzellenanordnung 2100 umfassend Speicherzellen und unterstützende Logik, die verwendet werden, um Daten in die Speicherzellenanordnung 2100 zu schreiben oder Daten aus der Speicherzellenanordnung 2100 auszulesen. In einer beispielhaften Ausführungsform ist die Speicherzellenanordnung 2100 in Zeilen (oder Wortleitungen) und Spalten (oder Bit-Leitungen) von Speicherzellen angeordnet. Jede Speicherzelle in der Speicherzellenanordnung 2100 hat einen eindeutigen Standort, zum Beispiel eine Adresse, die durch die Überschneidung von Zeilen und Spalten definiert wird. Die unterstützende Logik kann die Zeilen- und Spaltenadressen der Speicherzellenanordnung 2100 zwischenspeichern. Die unterstützende Logik umfasst einen Zeilen-Decoder 2200, eine Eingabe/Ausgabe-Erfassungs- und Verstärkereinrichtung 2300, einen Spalten-Decoder 2400 und einen Eingabe/Ausgabe-Puffer 2700. Der Zeilen-Decoder 2200 und der Spalten-Decoder 2400 können eingerichtet sein, Adressen zu lösen und den Start und das Ende eines Lesevorgangs und eines Schreibvorgangs zu steuern. Die Eingabe/Ausgabe-Erfassungs- und Verstärkereinrichtung 2300 kann eingerichtet sein, ein Eingabe/Ausgabesignal von Datenleitungen zu verstärken. Der Eingabe/Ausgabe-Puffer 2700 kann eingerichtet sein, Eingabe/Ausgabe-Daten zu puffern. Zum Beispiel können Daten vorübergehend in dem Eingabe/Ausgabe-Puffer 2700 gespeichert werden, bevor sie ausgegeben werden.
-
Der Speicher-Chip 2000 gemäß einer beispielhaften Ausführungsform kann eine Konfiguration der zwei ECC-Speicher-Chips implementieren, die in 9 als einzelner Speicher-Chip dargestellt sind.
-
16 stellt ein Rechensystem 3000 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 16 umfasst das Rechensystem 3000 mindestens ein Speichermodul (DIMM) 3100, mindestens ein nichtflüchtiges Speichermodul (NVDIMM) 3200 und mindestens einen Prozessor 3300.
-
In einer beispielhaften Ausführungsform kann das Rechensystem 3000 als eines einer Mehrzahl von Vorrichtungen verwendet werden, wie beispielsweise als Computer, tragbarer Computer, Ultra-Mobiler Personal Computer (UMPC), Workstation, Datenserver, Netbook, Personal Data Assistant (PDA), Webtablet, drahtloses Telefon, Mobiltelefon, Smartphone, E-Book, tragbarer Multimedia-Player (PMP), Digitalkamera, digitaler Audio-Recorder/-Player, digitaler Bild/Video-Recorder/-Player, tragbare Spielekonsole, Navigationssystem, Blackbox, 3D-Fernseher, als Vorrichtung, die fähig ist, Informationen drahtlos zu übertragen und zu empfangen, als Wearable-Vorrichtung, eine von verschiedenen elektronischen Vorrichtungen, die ein Heimnetzwerk bilden, eine von verschiedenen elektronischen Vorrichtungen, die ein Computernetzwerk bilden, eine von verschiedenen elektronischen Vorrichtungen, die ein Telematiknetzwerk bilden, als Radio-Frequency-Identification(RFID)-Vorrichtung oder als eine von verschiedenen elektronischen Vorrichtungen, die ein Computersystem bilden.
-
Das mindestens eine Speichermodul 3100 kann mit dem Speichermodul oder dem Fehlerkorrekturvorgang, der unter 1 bis 15 beschrieben ist, implementiert werden. In einer beispielhaften Ausführungsform ist das Speichermodul 3100 mit dem Prozessor 3300 entsprechend einer DDRx-Schnittstelle verbunden.
-
In einer beispielhaften Ausführungsform umfasst das mindestens eine Speichermodul 3100 mindestens einen ersten Speicher-Chip (Datenchip), der eine erste Eingabe/Ausgabe-Breite aufweist und Daten speichert, und mindestens einen zweiten Speicher-Chip (ECC-Chip), der eine zweite Eingabe/Ausgabe-Breite aufweist, die sich von der ersten Eingabe/Ausgabe-Breite unterscheidet, und einen Fehlerkorrekturcode speichert, um einen Fehler in den Daten zu korrigieren.
-
Das mindestens eine nichtflüchtige Speichermodul 3200 kann mindestens einen nichtflüchtigen Speicher umfassen. In einer beispielhaften Ausführungsform kann der mindestens eine nichtflüchtige Speicher einen NAND-Flash-Speicher, einen vertikalen NAND-Flash-Speicher (VNAND), einen NOR-Flash-Speicher, einen resistiven Direktzugriffsspeicher (RRAM), einen Phasenänderungs-Direktzugriffsspeicher (PRAM), einen magnetoresistiven Direktzugriffsspeicher (MRAM), einen ferroelektrischen Direktzugriffsspeicher (FRAM), einen Spin-Transfer-Torque-Direktzugriffsspeicher (STT-RAM), einen Thryistor-Direktzugriffsspeicher (TRAM) oder dergleichen umfassen. In einer beispielhaften Ausführungsform ist das nichtflüchtige Speichermodul 3200 mit dem Prozessor 3300 gemäß einer DDR-Schnittstelle verbunden.
-
Der mindestens eine Prozessor 3300 kann derart implementiert sein, dass er das Speichermodul 3100 und das nichtflüchtige Speichermodul 3200 steuert. In einer beispielhaften Ausführungsform kann der Prozessor 3300 einen Universal-Mikroprozessor, einen Mehrkernprozessor, einen digitalen Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC) oder eine Kombination daraus umfassen.
-
In einer beispielhaften Ausführungsform kann der Prozessor 3300 eine Adresstiefe von mindestens einem ersten Speicher-Chip des Speichermoduls 3100 und eine Adresstiefe von mindestens einem zweiten Speicher-Chip des Speichermoduls 3100 voneinander unterscheiden.
-
In einer beispielhaften Ausführungsform variiert der Prozessor 3300 die zweite Eingabe/Ausgabe-Breite des mindestens einen zweiten Speicher-Chips des Speichermoduls 3100 abhängig von Leistungs- und Zuverlässigkeitsanforderungen.
-
In einer beispielhaften Ausführungsform ist das oben beschriebene Speichermodul in einem Datenserver ausgebildet.
-
17 stellt eine Server-Vorrichtung 4000 (z. B. einen Datenserver) gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dar. In 17 umfasst die Servervorrichtung 4000 eine Mehrzahl von Baugruppenträgern bzw. Racks 4100. Das Speichermodul 4200, das unter Bezugnahme auf 1 bis 16 beschrieben ist, kann in jedem der Mehrzahl von Racks 4100 montiert werden.
-
In einer beispielhaften Ausführungsform kann jedes der Racks 4100 Hauptspeichervorrichtungen, mindestens einen Prozessor, mindestens einen Chipsatz und mindestens eine Speichervorrichtung, die darauf montiert ist, umfassen. In einer beispielhaften Ausführungsform kann die Servervorrichtung 4000 zusätzlich mit einer Eingabe/Ausgabevorrichtung, einem Grafikprozessor und einer Anzeigevorrichtung ausgebildet sein.
-
Ein Servermodul kann basierend auf einem x4 DRAM oder einem x8 DRAM konfiguriert sein. In einem herkömmlichen Servermodul ist der gesamte DRAM in der gleichen Konfiguration (Eingabe- und Ausgabebreite) implementiert und eine Entlastung für x4 bis x8 Datenlanes wird durch einen System-ECC durchgeführt. Ein Servermodul für einen DDR5 der nächsten Generation gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts umfasst zwei Sub-Kanäle. In jedem der Sub-Kanäle können x32 Daten und x8 ECC ein- und ausgegeben werden. Das Speichermodul gemäß dieser Ausführungsform umfasst ein serverorientiertes DDR5-Speichermodul, in dem x16 DRAM und x8 DRAM miteinander gemischt sind, um einen serverorientierten DIMM zu konfigurieren und eine verbesserte ECC-Abdeckung im Vergleich zu einem existierenden Modul zu implementieren.
-
Wie oben beschrieben, werden gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts Adresstiefen eines Speicher-Chips und eines Fehlerkorrekturchips voneinander getrennt, um einen Fehlerkorrekturbereich ohne Leistungsminderung zu erweitern.
-
Während beispielhafte Ausführungsformen gezeigt und vorstehend beschrieben worden sind, wird dem Fachmann ersichtlich werden, dass verschiedene Modifikationen vorgenommen werden können, ohne sich von dem Schutzumfang zu entfernen, so wie dieser in den beigefügten Ansprüchen definiert ist.