DE102017100584A1 - Verfahren zum Zugreifen auf heterogene Speicher und Speichermodul, welches heterogene Speicher aufweist - Google Patents

Verfahren zum Zugreifen auf heterogene Speicher und Speichermodul, welches heterogene Speicher aufweist Download PDF

Info

Publication number
DE102017100584A1
DE102017100584A1 DE102017100584.6A DE102017100584A DE102017100584A1 DE 102017100584 A1 DE102017100584 A1 DE 102017100584A1 DE 102017100584 A DE102017100584 A DE 102017100584A DE 102017100584 A1 DE102017100584 A1 DE 102017100584A1
Authority
DE
Germany
Prior art keywords
address
volatile memory
data
command
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017100584.6A
Other languages
English (en)
Inventor
Sun-Young Lim
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020160008214A external-priority patent/KR20170085918A/ko
Priority claimed from KR1020160029743A external-priority patent/KR20170085923A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102017100584A1 publication Critical patent/DE102017100584A1/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • 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/4076Timing 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)

Abstract

Ein Verfahren zum Zugreifen auf flüchtige Speichervorrichtungen (VM11–VM1n, VM21–VM2m), nichtflüchtige Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) und einen Controller (MC), welcher die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) und die nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) steuert, ist vorgesehen. Das Verfahren weist auf ein Empfangen, durch den Controller (MC), einer Zeilenadresse (RA, ADD_row), welche mit den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) und den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) verbunden ist, durch erste Leitungen zu einer ersten Zeitwahl, ein Empfangen, durch den Controller (MC), einer erweiterten Adresse (EA), welche mit den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) verbunden ist, durch zweite Leitungen zu einer zweiten Zeitwahl und ein Empfangen, durch den Controller (MC), einer Spaltenadresse (CA, ADD_col), welche mit den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) und den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) verbunden ist, durch dritte Leitungen zu einer dritten Zeitwahl auf.

Description

  • BEZUGNAHME AUF PRIORITÄTSANMELDUNGEN
  • Es wird gemäß 35 U. S. C. § 119 die Priorität der am 14. Januar 2016 beim US-Patent- und Markenamt eingereichten vorläufigen U. S.-Patentanmeldung Nr. 62/278,610, der am 22. Januar 2016 beim Koreanischen Art für Geistiges Eigentum eingereichten koreanischen Patentanmeldung Nr. 10-2016-0008210 , der am 22. Januar 2016 beim Koreanischen Amt für Geistiges Eigentum eingereichten koreanischen Patentanmeldung Nr. 10-2016-008214 , und der am 11. März 2016 beim Koreanischen Amt für Geistiges Eigentum eingereicht koreanischen Patentanmeldung Nr. 10-2016-0029743 , deren gesamte Inhalte hiermit durch Verweis mit eingebunden sind, beansprucht.
  • HINTERGRUND
  • Das erfinderische Konzept bezieht sich auf Halbleiterspeichervorrichtungen und genauer auf Verfahren zum Zugreifen auf heterogene Speicher und ein Speichermodul, das heterogene Speicher aufweist.
  • Ein Halbleiterspeicher bezieht sich auf eine Speichervorrichtung, welche unter Verwendung von einem Halbleiter wie beispielsweise Silizium (Si), Germanium (Ge), Galliumarsenid (GaAs), Indiumphosphid (InP) oder dergleichen implementiert ist. Halbleiterspeichervorrichtungen werden typischerweise als flüchtige Speichervorrichtungen oder nichtflüchtige Speichervorrichtungen klassifiziert.
  • Eine flüchtige Speichervorrichtung bezieht sich auf eine Speichervorrichtung, welche Daten, die darin gespeichert sind, bei einer Stromabschaltung verliert. Die flüchtige Speichervorrichtung weist einen statischen Direktzugriffsspeicher (SRAM), einen dynamischen RAM (DRAM), einen synchronen DRAM oder dergleichen auf. Eine nichtflüchtige Speichervorrichtung bezieht sich auf eine Speichervorrichtung, welche Daten, die darin gespeichert sind, auch bei einer Stromabschaltung hält. Die nichtflüchtige Speichervorrichtung weist einen Lesespeicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren und programmierbaren ROM (EEPROM), eine Flashspeichervorrichtung, einen Phasenübergangs-RAM (PRAM), einen magnetischen RAM (MRAM), einen resistiven RAM (RRAM), einen ferroelektrischen RAM (FRAM) oder dergleichen auf.
  • Da eine Antwortgeschwindigkeit und eine Betriebsgeschwindigkeit des DRAM typischerweise sehr schnell sind, wird der DRAM weitverbreitet als ein Hauptspeicher eines Systems verwendet. Da jedoch der DRAM ein flüchtiger Speicher ist, in welchem Daten verloren gehen, wenn die Leistung abgeschaltet wird, wird eine getrennte Vorrichtung verwendet, um Daten, welche in dem DRAM gespeichert sind, zu halten. Zusätzlich ist, da der DRAM Daten unter Verwendung von Kondensatoren speichert, die Größe der Einheitszelle typischerweise groß, wodurch es schwierig gemacht wird, die DRAM-Kapazität innerhalb eines begrenzten Bereiches zu erhöhen.
  • KURZFASSUNG
  • Ausführungsformen des erfinderischen Konzepts sehen ein nichtflüchtiges Speichermodul vor, welches eine große Kapazität und eine große Leistungsfähigkeit durch ein Verwenden eines nichtflüchtigen Speichers und eines flüchtigen Speichers hat.
  • Ein Aspekt von Ausführungsformen des erfinderischen Konzepts ist darauf gerichtet, ein Verfahren zum Zugreifen auf flüchtige Speichervorrichtungen, nichtflüchtige Speichervorrichtungen und einen Controller, welcher die flüchtigen Speichervorrichtungen und die nichtflüchtigen Speichervorrichtungen steuert vorzusehen, wobei das Verfahren ein Empfangen durch den Controller einer Zeilenadresse, welche mit den flüchtigen Speichervorrichtungen und den nichtflüchtigen Speichervorrichtungen verbunden ist, durch erste Leitungen zu einer ersten Zeitwahl aufweist; ein Empfangen durch den Controller einer erweiterten Adresse, welche mit den nichtflüchtigen Speichervorrichtungen verbunden ist, durch zweite Leitungen zu einer zweiten Zeitwahl; und ein Empfangen durch den Controller einer Spaltenadresse, welche mit den nichtflüchtigen Speichervorrichtungen und den flüchtigen Speichervorrichtungen verbunden ist, durch dritte Leitungen zu einer dritten Zeitwahl. Die ersten Leitungen weisen die zweiten Leitungen und die dritten Leitungen auf.
  • Ein anderer Aspekt von Ausführungsformen des erfinderischen Konzept ist darauf gerichtet, ein Speichermodul vorzusehen, welches nichtflüchtige Speichervorrichtungen aufweist; flüchtige Speichervorrichtungen; und einen Controller, welcher konfiguriert ist, um die nichtflüchtigen Speichervorrichtungen und die flüchtigen Speichervorrichtungen zu steuern, wobei der Controller eine Zeilenadresse, welche mit den flüchtigen Speichervorrichtungen und den nichtflüchtigen Speichervorrichtungen verbunden ist, durch erste Leitungen zu einer ersten Zeitwahl empfängt, eine erweiterte Adresse, welche mit den nichtflüchtigen Speichervorrichtungen verbunden ist, durch zweite Leitungen zu einer zweiten Zeitwahl empfängt, und eine Spaltenadresse, welche mit den nichtflüchtigen Speichervorrichtungen und den flüchtigen Speichervorrichtungen verbunden ist, durch dritte Leitungen zu einer dritten Zeitwahl empfängt.
  • Noch ein anderer Aspekt von Ausführungsformen des erfinderischen Konzepts ist darauf gerichtet, ein Verfahren zum Zugreifen auf einen Cache-Speicher eines ersten Typs und einen Hauptspeicher eines zweiten Typs vorzusehen, wobei das Verfahren ein Senden einer gemeinsamen Adresse zu dem Cache-Speicher des ersten Typs und dem Hauptspeicher des zweiten Typs durch Adressleitungen, welche mit dem Cache-Speicher des ersten Typs verbunden sind, durch ein Verwenden einer Mehrzahl von Sequenzen aufweist; und ein Senden einer erweiterten Adresse zu dem Hauptspeicher des zweiten Typs durch die Adressleitungen, welche mit dem Cache-Speicher des ersten Typs verbunden sind, durch ein Verwenden wenigstens einer Sequenz.
  • Gemäß noch weiteren Ausführungsformen der Erfindung weisen Verfahren zum Betreiben von Speichersystemen, welche flüchtige und nichtflüchtige Speichervorrichtungen darin enthalten, ein Vorsehen eines Speichercontrollers mit einer Zeilenadresse, welche mit den flüchtigen und nichtflüchtigen Speichervorrichtungen über erste Adressleitungen verbunden ist gleichzeitig mit einem Vorsehen eines Aktivbefehls auf. Als nächstes wird, nachdem ein erstes Zeitintervall passiert ist, seit die Zeilenadresse vorgesehen worden ist, der Speichercontroller mit einer Spaltenadresse vorgesehen, welche mit den flüchtigen und nichtflüchtigen Speichervorrichtungen verbunden ist, über wenigstens eine der ersten Adressleitungen. Zusätzlich zu der Spaltenadresse wird eine nichtflüchtige erweiterte Blockadresse gleichzeitig über wenigstens zusätzliche eine der ersten Adressleitungen vorgesehen. Das Vorsehen des Speichercontrollers mit einer Spaltenadresse kann ebenso gleichzeitig mit einem Vorsehen des Speichercontrollers mit einem Aktivierungserweiterungsbefehl über wenigstens einige der ersten Adressleitungen durchgeführt werden.
  • Gemäß einigen weiteren Ausführungsformen der Erfindung können Operationen durchgeführt werden, um ein Tag aus der flüchtigen Speichervorrichtung zu lesen und um dann das Tag mit der nichtflüchtigen erweiterten Blockadresse zu vergleichen, um eine Äquivalenz dazwischen zu bestimmen. Noch weiterhin können Operationen durchgeführt werden, um ein Dirty-Flag, welches einen Dirty-Zustand hat, gleichzeitig mit einem Schreiben von Daten in die flüchtige Speichervorrichtung zu schreiben. Zusätzlich kann ein Lesen eines Tag von der flüchtigen Speichervorrichtung und ein Vergleichen des Tag mit der nichtflüchtigen erweiterten Blockadresse zum Bestimmen einer Nichtäquivalenz dazwischen durch ein Lesen eines Dirty-Flags aus der flüchtigen Speichervorrichtung gefolgt werden.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die obigen und andere Objekte und Merkmale werden deutlich werden aus der folgenden Beschreibung unter Bezugnahme auf die folgenden Figuren, worin gleiche Bezugszeichen sich auf gleiche Teile über die verschiedenen Figuren hinweg beziehen solange nicht anderweitig spezifiziert ist, und worin:
  • 1 ein Blockschaltbild ist, welches ein Nutzersystem gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht
  • 2 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 veranschaulicht;
  • 3 ein Zeitdiagramm ist, welches einen Vorgang veranschaulicht, in welchem ein Befehl und eine Adresse zu einem nichtflüchtigen Speichermodul basierend auf einem DIMM oder NVDIMM gesendet werden;
  • 4 ein Flussdiagramm zum Veranschaulichen eines Betriebsverfahrens eines nichtflüchtigen Speichermoduls gemäß einer Ausführungsform des erfinderischen Konzepts ist;
  • 5 ein Flussdiagramm ist, welches ein Verfahren veranschaulicht, in welchem ein nichtflüchtiges Speichermodul Daten unter einer Steuerung eines Prozessors schreibt;
  • 6 ein Flussdiagramm ist, welches ein Verfahren veranschaulicht, in welchem ein nichtflüchtiges Speichermodul Daten unter der Steuerung eines Prozessors liest;
  • 7 und 8 Beispiele veranschaulichen, in welchen eine erweiterte Adresse gemäß Anwendungen des erfinderischen Konzepts gesendet wird;
  • 9 ein Zeitdiagramm ist, welches eine Anwendung eines Vorgangs veranschaulicht, in welchem ein Befehl und eine Adresse zu einem nichtflüchtigen Speichermodul basierend auf einem DIMM oder NVDIMM gesendet werden;
  • 10 ein Flussdiagramm ist, welches ein Verfahren veranschaulicht, in welchem ein nichtflüchtiges Speichermodul die Zeilenadresse, eine erweiterte Adresse und eine Spaltenadresse von einem erweiterten Aktivbefehl erlangt;
  • 11 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 12 ein Flussdiagramm ist, welches einen Betrieb eines nichtflüchtigen Speichermoduls der 11 veranschaulicht;
  • 13 eine Ansicht zum Beschreiben einer Cache-Struktur eines flüchtigen Speichers der 11 ist;
  • 14 ein Zeitdiagramm zum Beschreiben einer Leseoperation der 12 im Detail ist;
  • 15 ein Zeitdiagramm ist, welches eine Implementierung von Daten und Gültigkeitsinformationen der 14 veranschaulicht;
  • 16 ein Zeitdiagramm zum Beschreiben einer Leseoperation der 12 im Detail ist;
  • 17 ein Zeitdiagramm ist, welches eine Implementierung von Daten und Gültigkeitsinformationen der 16 veranschaulicht;
  • 18 ein Blockschaltbild ist, welches andere Merkmale eines Speichermoduls gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 19 ein Flussdiagramm ist, welches eine Handshake-Prozedur zwischen einem Prozessor und einem nichtflüchtigen Speichermodul der 18 veranschaulicht;
  • 20 ein Zeitdiagramm zum Beschreiben einer Handshake-Operation der 19 im Detail ist;
  • 21 ein Blockschaltbild ist, welches ein Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 22 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 23 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 24 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 25 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 26 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 27 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der l gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 28 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 29 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 30 ein Blockschaltbild ist, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 31 ein Blockschaltbild ist, welches einen nichtflüchtigen Speicher, welcher in einem nichtflüchtigen Speichermodul enthalten ist, gemäß dem erfinderischen Konzept veranschaulicht;
  • 32 eine Ansicht ist, welche eine Zellstruktur und eine physikalische Eigenschaft einer Phasenübergangsspeichervorrichtung als ein Beispiel einer nichtflüchtigen Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 33 bis 34 Ansichten sind, welche eine Speicherzelle veranschaulichen, welche in einem nichtflüchtigen Speicher gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht ist;
  • 35 ein Blockschaltbild ist, welches einen flüchtigen Speicher eines nichtflüchtigen Speichermoduls gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht;
  • 36 ein Blockschaltbild ist, welches ein Nutzersystem veranschaulicht, auf welches ein nichtflüchtiges Speichermodul gemäß einer Ausführungsform des erfinderischen Konzepts angewandt wird; und
  • 37 eine Ansicht ist, welche ein Serversystem veranschaulicht, auf welches ein nichtflüchtiges Speichersystem gemäß einer Ausführungsform des erfinderischen Konzepts angewandt wird.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist ein Blockschaltbild, welches ein Nutzersystem gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 1 weist das Nutzersystem 10 nichtflüchtige Speichermodule 100, einen Prozessor 101, einen Chipsatz 102, eine Graphikverarbeitungseinheit (GPU) 103, eine Eingabe-/Ausgabevorrichtung 104 und eine Speichervorrichtung 105 auf. In einer Ausführungsform kann das Nutzersystem 10 ein Berechnungssystem wie beispielsweise ein Computer, ein Notebook, ein Server, eine Workstation, ein tragbares Kommunikationsdatenendgerät, ein persönlicher digitaler Assistent (PDA), ein tragbarer Multimediaplayer (PMP), ein Smartphone oder eine tragbare Vorrichtung sein.
  • Der Prozessor 101 kann einen Gesamtbetrieb des Nutzersystems 100 steuern. Der Prozessor 101 kann verschiedene Operationen des Nutzersystems 100 durchführen und kann Daten verarbeiten.
  • Die nichtflüchtigen Speichermodule 100 können direkt mit dem Prozessor 101 verbunden sein. Beispielsweise kann jedes der nichtflüchtigen Speichermodule 100 eine Form eines Dual-Inline-Speichermoduls (DIMM) haben und kann einem DIMM-Sockel angebracht sein, welcher direkt mit dem Prozessor 101 verbunden ist, um mit dem Prozessor 101 zu kommunizieren. In einer Ausführungsform kann jedes der nichtflüchtigen Speichermodule 100 mit dem Prozessor 101 basierend auf einem NVDIMM-Protokoll kommunizieren.
  • Jedes der nichtflüchtigen Speichermodule 100 kann als ein Hauptspeicher oder ein Arbeitsspeicher (oder Betriebsspeicher) verwendet werden. Jedes der nichtflüchtigen Speichermodule 100 kann einen nichtflüchtigen Speicher und einen flüchtigen Speicher aufweisen. Der nichtflüchtige Speicher weist einen Speicher auf, welcher Daten, die darin gespeichert sind, auch bei einem Stromabschalten nicht verliert, wie beispielsweise ein Lesespeicher (ROM), ein programmierbarer ROM (PROM), ein elektrisch programmierbarer ROM (EPROM), ein elektrisch löschbarer und programmierbarer ROM (EEPROM), ein Flashspeicher, ein Phasenübergangs-RAM (PRAM), ein magnetischer RAM (MRAM), ein resistiver RAM (RRAM) oder ein ferroelektrischer RAM (FRAM). Der flüchtige Speicher kann einen Speicher aufweisen, welcher Daten, die darin gespeichert sind, bei einem Stromabschalten verliert, wie beispielsweise einen statischen RAM (SRAM), einen dynamischen RAM (DRAM) und einen synchronen DRAM (SDRAM).
  • In einer Ausführungsform kann der nichtflüchtige Speicher jedes nichtflüchtigen Speichermoduls 100 als ein Hauptspeicher des Nutzersystems 10 oder des Prozessors 101 verwendet werden, und der flüchtige Speicher davon kann als ein Cache-Speicher des Nutzersystems 10, des Prozessors 101 oder des entsprechenden nichtflüchtigen Speichermoduls 100 verwendet werden.
  • Der Chipsatz 102 kann elektrisch mit dem Prozessor 101 verbunden sein und kann Hardware des Nutzersystems 10 unter der Steuerung des Prozessors 101 steuern. Beispielsweise kann der Chipsatz 102 mit der GPU 103, der Eingabe-/Ausgabevorrichtung 104 und der Speichervorrichtung 105 jeweils durch Hauptbusse verbunden sein und kann eine Brückenoperation hinsichtlich der Hauptbusse durchführen.
  • Die GPU 103 kann eine Serie von arithmetischen Operationen zum Ausgeben von Bilddaten des Nutzersystems 10 durchführen. In einer Ausführungsform kann die GPU 103 in den Prozessor 101 in der Form eines Ein-Chip-Systems (SoC) eingebettet sein.
  • Die Eingabe-/Ausgabevorrichtung 104 kann verschiedene Vorrichtungen aufweisen, welche es möglich machen, Daten oder einen Befehl dem Nutzersystem 10 einzugeben, oder um Daten zu einer externen Vorrichtung auszugeben. Beispielsweise kann die Eingabe-/Ausgabevorrichtung 104 Nutzereingabevorrichtungen wie beispielsweise eine Tastatur, ein Keypad, einen Knopf, ein Touchpanel, einen Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Gyroskopsensor, einen Vibrationssensor, ein piezoelektrisches Element, einen Temperatursensor und einen biometrischen Sensor aufweisen und Nutzerausgabevorrichtungen wie beispielsweise eine Flüssigkristallanzeige (LCD), eine organische Leuchtdioden(OLED)-Anzeigevorrichtung, eine Aktivmatrix-OLED(AMOLED)-Anzeigevorrichtung, eine Leuchtdiode (LED), einen Lautsprecher und einen Motor.
  • Die Speichervorrichtung 105 kann als ein Massenspeichermedium des Nutzersystems 10 genutzt werden. Die Speichervorrichtung 105 kann Massenspeichermedien, wie beispielsweise ein Festplattenlaufwerk (HDD), ein Festkörperlaufwerk (SSD), eine Speicherkarte und einen Speicherstick aufweisen.
  • 2 ist ein Blockschaltbild, welches ein nichtflüchtiges Speichermodul der 1 veranschaulicht. Bezugnehmend auf 1 und 2 weist das nichtflüchtige Speichermodul 100 einen Modulcontroller 110, eine heterogene Speichervorrichtung 120, einen Datenpuffer (DB) 130 und einen seriellen Anwesenheitserfassungschip (SPD) 140 auf.
  • Der Modulcontroller 110 kann einen Befehl/eine Adresse CA von dem Prozessor 101 empfangen und kann die heterogene Speichervorrichtung 120 in Antwort auf den empfangenen Befehl/Adresse CA steuern. Beispielsweise kann der Modulcontroller 110 die heterogene Speichervorrichtung 120 mit einem Befehl/einer Adresse CA_n und einem Befehl/einer Adresse CA_v in Antwort auf den Befehl/die Adresse CA von dem Prozessor 101 vorsehen.
  • In einer Ausführungsform kann der Befehl/die Adresse CA_n ein Befehl/eine Adresse zum Steuern eines nichtflüchtigen Speichers 123 sein, welcher in der heterogenen Speichervorrichtung 120 enthalten ist, und der Befehl/die Adresse CA_v können ein Befehl/eine Adresse zum Steuern eines flüchtigen Speichers 121 sein, welcher in der heterogenen Speichervorrichtung 120 enthalten ist.
  • Untenstehend kann zur beschreibenden Zweckmäßigkeit auf den Befehl/die Adresse CA von dem Prozessor 101 Bezug genommen werden als ein/eine „Modul-Befehl/Adresse”, auf den Befehl/die Adresse CA_v, welche von dem Modulcontroller 110 für den flüchtigen Speicher 121 vorgesehen ist, kann Bezug genommen als ein/eine „volatile Speicher(VM)-Befehl/Adresse”, und auf den Befehl/die Adresse CA_n, welche von dem Modulcontroller 110 für einen nichtflüchtigen Speicher(NVM)-Controller 122 vorgesehen ist, kann Bezug genommen werden als „nichtflüchtige(r) Speicher(NVM)-Befehl/Adresse”.
  • In einer Ausführungsform können der/die NVM-Befehl/Adresse CA_n und der/die VM-Befehl/Adresse CA_v durch unterschiedliche Befehls-/Adress-Busse vorgesehen sein.
  • In einer Ausführungsform kann der Modulcontroller 110 ein Registertakttreiber (RCD) sein.
  • Die heterogene Speichervorrichtung 120 kann den flüchtigen Speicher 121, den NVM-Controller 122 und den nichtflüchtigen Speicher 123 aufweisen. Der flüchtige Speicher 121 kann in Antwort auf den/die VM-Befehl/Adresse CA_v von dem Modulcontroller 110 arbeiten. Der flüchtige Speicher 121 kann Daten und einen Tag „TAG” über eine Speicherdatenleitung MDQ und eine Tag-Datenleitung TDQ jeweils in Antwort auf den/die VM-Befehl/Adresse CA_v ausgeben. Der flüchtige Speicher 121 kann Daten und einen Tag, welche jeweils durch die Speicherdatenleitung MDQ und die Tag-Datenleitung TDQ empfangen werden, basierend auf dem/der VM-Befehl/Adresse CA_v schreiben.
  • Der NVM-Controller 122 kann in Antwort auf den/die NVM-Befehl/Adresse CA_n von dem Modulcontroller 110 arbeiten. Beispielsweise kann auf der Basis des/der NVM-Befehls/Adresse CA_n von dem Modulcontroller 110 der NVM-Controller 122 Daten, welche durch die Speicherdatenleitung MDQ empfangen werden, in den nichtflüchtigen Speicher 123 programmieren oder kann Daten, welche in den nichtflüchtigen Speicher 123 programmiert sind, durch die Speicherdatenleitung MDQ ausgeben.
  • Der NVM-Controller 122 kann verschiedene Operationen zum Steuern des nichtflüchtigen Speichers 123 durchführen. Beispielsweise kann der NVM-Controller 122 Operationen wie beispielsweise eine Speicherbereinigung, Wear-Leveling und eine Adressumwandlung durchführen, um den nichtflüchtigen Speicher 123 effektiv zu nutzen. In einer Ausführungsform kann der NVM-Controller 122 ferner Elemente wie beispielsweise eine Fehlerkorrekturschaltung und einen Zufallszahlenerzeuger (Randomizer) aufweisen.
  • In einer Ausführungsform kann der NVM-Controller 122 eine Adresse, welche in einem/einer empfangenen NVM-Befehl/Adresse CA_n enthalten ist, als eine logische Adresse für den nichtflüchtigen Speicher 123 nutzen. Der NVM-Controller 122 kann die logische Adresse in eine physikalische Adresse des nichtflüchtigen Speichers 123 umwandeln und kann die umgewandelte physikalische Adresse zu dem nichtflüchtigen Speicher 123 senden. Ebenso kann der NVM-Controller 122 einen Befehl, welcher in dem/der empfangenen NVM-Befehl/Adresse CA_n enthalten ist, in einen Befehl für den nichtflüchtigen Speicher 123 umwandeln und kann den umgewandelten Befehl zu dem nichtflüchtigen Speicher 123 senden. In einer Ausführungsform kann der NVM-Controller 122 den nichtflüchtigen Speicher 123 mit der umgewandelten physikalischen Adresse und dem Befehl durch eine Leitung vorsehen, welche von einer Speicherdatenleitung MDQ, einer Tag-Datenleitung TDQ, einer Leitung durch welche der/die NVM-Befehl/Adresse CA_n gesendet wird, und einer Leitung, durch welche ein/eine VM-Befehl/Adresse CA_v gesendet wird, getrennt ist.
  • In einer Ausführungsform können der flüchtige Speicher 121 und der NVM-Controller 122 dieselbe Speicherdatenleitung MDQ gemeinsam verwenden.
  • In einer Ausführungsform können der flüchtige Speicher 121 und der Modulcontroller 110 die Tag-Datenleitung TDQ gemeinsam verwenden. Alternativ können der flüchtige Speicher 121, der NVM-Controller 121 und der Modulcontroller 110 die Tag-Datenleitung DTQ gemeinsam verwenden. Der NVM-Controller 122 oder der Modulcontroller 110 können einen Tag „TAG” durch die Tag-Datenleitung TDQ ausgeben oder können den Tag „TAG” durch die Tag-Datenleitung TDQ empfangen.
  • Der Datenpuffer 130 kann Daten durch die Speicherdatenleitung MDQ empfangen und kann die empfangenen Daten für den Prozessor 101 durch eine Datenleitung DQ vorsehen. Alternativ kann der Datenpuffer 130 Daten durch die Datenleitung DQ empfangen und kann die empfangenen Daten durch die Speicherdatenleitung MDQ ausgeben. In einer Ausführungsform kann der Datenpuffer 130 in Antwort auf die Steuerung des Modulcontrollers 110 (beispielsweise einem Pufferbefehl (nicht gezeigt)) arbeiten. In einer Ausführungsform kann der Datenpuffer 130 ein Signal auf der Speicherdatenleitung MDQ und ein Signal auf der Datenleitung DQ unterscheiden. Alternativ kann der Datenpuffer 130 ein Signal zwischen der Speicherdatenleitung MDQ und der Datenleitung DQ blockieren. Das heißt, dass ein Signal der Speicherdatenleitung MDQ die Datenleitung DQ durch den Datenpuffer 130 nicht beeinflussen mag oder ein Signal der Datenleitung DQ die Speicherdatenleitung MDQ durch den Datenpuffer 130 nicht beeinflussen mag.
  • In einer Ausführungsform kann die Speicherdatenleitung MDQ ein Datenübertragungspfad unter Elementen sein, welche in dem nichtflüchtigen Speicher (beispielsweise ein flüchtiger Speicher, ein nichtflüchtiger Speicher, ein Datenpuffer etc.) enthalten sind, und die Datenleitung DQ kann ein Datenübertragungsweg zwischen dem nichtflüchtigen Speichermodul 100 und dem Prozessor 101 sein. Die Tag-Datenleitung TDQ kann ein Übertragungsweg zum Senden und Empfangen eines Tags „TAG” sein.
  • In einer Ausführungsform können jede der Speicherdatenleitung MDQ, der Datenleitung DQ und der Tag-Datenleitung TDQ eine Mehrzahl von Drähten aufweisen. Ferner können, obwohl nicht gezeigt, jede der Speicherdatenleitung MDQ, der Datenleitung DQ und der Tag-Datenleitung TDQ eine Speicherdaten-Strobe-Leitung MDQS, eine Daten-Strobe-Leitung DQS und eine Tag-Daten-Strobe-Leitung TDQS aufweisen. Untenstehend sind zur Erleichterung der Veranschaulichung Bezugszeichen und Konfigurationen der Speicherdaten-Stroboskop-Leitung MDQS, der Daten-Strobe-Leitung DQS und der Tag-Daten-Stroboskop-Leitung TDQS ausgelassen. Ausführungsformen des erfinderischen Konzepts können jedoch nicht darauf beschränkt werden. Beispielsweise können Elemente, welche mit der Speicherdaten-Strobe-Leitung MDQS, der Daten-Strobe-Leitung DQS und der Tag-Daten-Strobe-Leitung TDQS verbunden sind, Daten oder Tags in Synchronisation mit Signalen der Speicherdaten-Strobe-Leitung MDQS, der Daten-Strobe-Leitung DQS und der Tag-Daten-Strobe-Leitung TDQS senden und empfangen.
  • Die SPD 140 kann eine programmierbare Lesespeichervorrichtung (beispielsweise ein elektrisch löschbar programmierbarer Lesespeicher (EEPROM)) sein. Die SPD 140 kann anfängliche Informationen oder Vorrichtungsinformationen DI des nichtflüchtigen Speichermoduls 100 aufweisen. In einer Ausführungsform kann die SPD 140 die Vorrichtungsinformationen DI, wie beispielsweise eine Modulform, eine Modulkonfiguration, eine Speicherkapazität, einen Modultyp und eine Ausführungsumgebung, welche mit dem nichtflüchtigen Speichermodul 100 verbunden sind, aufweisen. Wenn das Nutzersystem 10, welches das nichtflüchtige Speichermodul 100 aufweist, gebootet wird, kann der Prozessor 101 die Vorrichtungsinformationen DI von der SPD 140 lesen und kann das nichtflüchtige Speichermodul 100 basierend auf den Vorrichtungsinformationen DI erkennen. Der Prozessor 101 kann das nichtflüchtige Speichermodul 100 basierend auf den Vorrichtungsinformationen DI, welche von der SPD 140 gelesen werden, steuern.
  • Untenstehend wird für eine beschreibende Zweckmäßigkeit angenommen, dass der flüchtige Speicher 121 ein DRAM ist und der nichtflüchtige Speicher 123 ein NAND-Flashspeicher ist. Ausführungsformen des erfinderischen Konzepts sind jedoch nicht darauf beschränkt. Beispielsweise kann der flüchtige Speicher 121 eine andere Art von Direktzugriffsspeicher aufweisen, und der nichtflüchtige Speicher 123 kann eine andere Art von nichtflüchtiger Speichervorrichtung aufweisen. In einer Ausführungsform kann der nichtflüchtige Speicher 123 einen Phasenübergangsspeicher aufweisen.
  • In einer Ausführungsform kann der flüchtige Speicher 121 eine Mehrzahl von flüchtigen Speicherchips aufweisen, von welchen jeder mit einem separaten Chip, einem separaten Gehäuse etc. implementiert ist. Die flüchtigen Speicherchips können mit dem Modulcontroller 110 oder dem NVM-Controller 122 über unterschiedliche Speicherdatenleitungen oder unterschiedliche Tag-Datenleitungen verbunden sein.
  • In einer Ausführungsform kann der Prozessor 101 den nichtflüchtigen Speicher 123 des nichtflüchtigen Speichermoduls 100 als einen Hauptspeicher nutzen. Das heißt, dass der Prozessor 101 einen Speicherraum des nichtflüchtigen Speichers 123 als einen Hauptspeicherbereich erkennen kann. Der flüchtige Speicher 121 kann als ein Cache-Speicher des Prozessors 101 und des nichtflüchtigen Speichers 123 arbeiten. In einer Ausführungsform kann der flüchtige Speicher 121 als ein Rückschreib-Cache (Write-Back-Cache) verwendet werden. Das heißt, dass der Modulcontroller 110 einen Cache-Treffer (cache hit) oder eine Cache-Verfehlung (cache miss) in Antwort auf den/die Modul-Befehl/Adresse CA von dem Prozessor 101 bestimmen kann, und den flüchtigen Speicher 121 oder den nichtflüchtigen Speicher 122 basierend auf dem Bestimmungsergebnis steuern kann.
  • In einer Ausführungsform kann der Cache-Treffer den Fall anzeigen, dass Daten, welche dem/der Modul-Befehl/Adresse CA entsprechen, welcher/welche von dem Prozessor 101 empfangen wird, in dem flüchtigen Speicher 121 gespeichert ist. Die Cache-Verfehlung kann den Fall anzeigen, dass keine Daten, welche dem/der Modul-Befehl/Adresse CA entsprechen, welche von dem Prozessor 101 empfangen wird, in dem flüchtigen Speicher 121 gespeichert sind.
  • In einer Ausführungsform kann der Modulcontroller 110 bestimmen, ob der Cache-Treffer oder die Cache-Verfehlung auftritt, basierend auf dem Tag „TAG”. Der Modulcontroller 110 kann bestimmen, ob der Cache-Treffer oder die Cache-Verfehlung auftritt, basierend auf einem Ergebnis des Vergleichens des/der Modul-Befehls/Adresse CA von dem Prozessor 101 und dem Tag „TAG”.
  • In einer Ausführungsform kann der Tag „TAG” einen Teil einer Adresse aufweisen, welcher Daten entspricht, welche in dem flüchtigen Speicher 121 gespeichert sind. In einer Ausführungsform kann der Modulcontroller 110 den Tag „TAG” mit dem flüchtigen Speicher 121 durch die Tag-Datenleitung TDQ austauschen. In einer Ausführungsform kann, wenn Daten in den flüchtigen Speicher 121 geschrieben werden, der Tag „TAG”, welcher den Daten entspricht, zusammen mit den Daten unter der Steuerung des Modulcontrollers 110 geschrieben werden.
  • In einer Ausführungsform können der flüchtige Speicher 121 und der nichtflüchtige Speicher 123 eine n:1-Direktabbildungsrelation haben. Hier ist „n” eine natürliche Zahl. Das heißt, dass der flüchtige Speicher 121 ein direkt abgebildeter Cache des nichtflüchtigen Speichers 123 sein kann. Beispielsweise kann ein erster flüchtiger Speicherbereich des flüchtigen Speichers 121 einem ersten bis n-ten nichtflüchtigen Speicherbereich des nichtflüchtigen Speichers 123 entsprechen. In diesem Fall kann die Größe des ersten flüchtigen Speicherbereichs dieselbe sein wie diejenige jedes der nichtflüchtigen Speicherbereiche. In einer Ausführungsform kann der erste flüchtige Speicherbereich ferner einen Bereich zum Speichern von zusätzlichen Informationen (beispielsweise eines Tags, einer ECC, Dirty-Informationen etc.) aufweisen.
  • In einer Ausführungsform können der flüchtige Speicher 121 und der nichtflüchtige Speicher 123 eine n:k-eingestellte assoziative Abbildungsrelation haben. Hier ist „k” eine natürliche Zahl geringer als „n”. Das heißt, dass der flüchtige Speicher 121 ein eingestellter assoziativer Cache des nichtflüchtigen Speichers 123 sein kann.
  • Obwohl in 2 nicht gezeigt, kann das nichtflüchtige Speichermodul 100 ferner einen getrennten Speicher (nicht gezeigt) aufweisen. Der getrennte Speicher kann Informationen speichern, welche in dem NVM-Controller 122 verwendet werden, wie beispielsweise Daten, Programme und Software. Beispielsweise kann der getrennte Speicher Informationen speichern, welche durch den NVM-Controller 122 verwaltet werden, wie beispielsweise eine Mapping-Tabelle und eine Flash-Übersetzungsschicht (FTL). Alternativ kann der getrennte Speicher ein Pufferspeicher sein, welcher vorübergehend Daten speichert, welche aus dem nichtflüchtigen Speicher 123 gelesen werden, oder Daten, welche in dem nichtflüchtigen Speicher 123 zu speichern sind.
  • Der nichtflüchtige Speicher 121 kann die erste bis vierte Bank BANK1 bis BANK4 aufweisen. Die erste bis vierte Bank BANK bis BANK4 kann Schreib- und Leseoperationen unabhängig voneinander durchführen. Beispielsweise kann die erste bis vierte Bank BANK1 bis BANK4 Bänken entsprechen, welche durch die Spezifikation eines dynamischen Doppeldatenraten-Direktzugriffsspeichers (DDR DRAM) definiert sind.
  • Der Prozessor 101 kann auf das nichtflüchtige Speichermodul 100 basierend auf einem Dual-In-Line-Memory-Modul (DIMM) oder einem nichtflüchtigen Dual-In-Line-Speichermodul (NVDIMM) zugreifen. Das DIMM oder NVDIMM kann Befehls- und Adresssysteme haben, welche mit dem DDR DRAM verbunden sind. Alternativ kann, um den Prozessor 101 in die Lage zu versetzen, auf den nichtflüchtigen Speicher 123 basierend auf dem DIMM oder NVDIMM zuzugreifen, der nichtflüchtige Speicher 123 das Adresssystem haben, welches basierend auf der ersten bis vierten Bank BANK1 bis BANK4 organisiert ist, wie durch die Spezifikation des DDR DRAM definiert ist. Beispielsweise kann ein Speicherraum des nichtflüchtigen Speichers 123 eine Mehrzahl von nichtflüchtigen erweiterten Blöcken NVM_BLK1 bis NVM_BLKn aufweisen. Jeder der Mehrzahl von nichtflüchtigen erweiterten Blöcken NVM_BLK1 bis NVM_BLKn kann den ersten bis vierten Bereich BANK1 bis BANK4 aufweisen.
  • Der Prozessor 101 kann den Speicherraum des nichtflüchtigen Speichers 123 als einen Speicherraum des nichtflüchtigen Speichermoduls 100 erkennen. Der Prozessor 101 kann auf das nichtflüchtige Speichermodul 100 basierend auf dem DIMM oder NVDIMM zugreifen. Eine Schnittstelle des DIMM oder NVDIMM jedoch ist definiert, um mit der Spezifikation des DDR DRAM zusammenzufallen. Beispielsweise sieht das DIMM oder NVDIMM ein Adresssystem vor, welches zwischen der ersten bis vierten Bank BANK1 bis BANK4 (oder Bankgruppen) des flüchtigen Speichers 121 unterscheidet, und sieht kein Adresssystem vor, welches in der Lage ist, zwischen der Mehrzahl von nichtflüchtigen erweiterten Blöcken NVM_BLK1 bis NVM_BLKn zu unterscheiden.
  • Das heißt, dass, in dem Fall, in dem das nichtflüchtige Speichermodul 100 basierend auf einem herkömmlichen DIMM oder NVDIMM arbeitet, ein Problem darin auftreten kann, dass der Prozessor 101 nicht zwischen der Mehrzahl von nichtflüchtigen erweiterten Blöcken NVM_BLK1 bis NVM_BLKn während einer Zugriffsoperation unterscheidet.
  • Um solch ein Problem zu lösen, sieht das nichtflüchtige Speichermodul 100 gemäß einer Ausführungsform des erfinderischen Konzepts eine Lösung vor, in welcher Optionssignale oder Optionsleitungen als eine nichtflüchtige erweiterte Blockadresse (oder eine erweiterte Adresse) zum Unterscheiden zwischen der Mehrzahl von nichtflüchtigen erweiterten Blöcken NVM_BLK1 bis NVM_BLKn in dem Adresssystem des DIMM oder NVDIMM verwendet werden.
  • 3 ist ein Zeitdiagramm, welches einen Vorgang veranschaulicht, in welchem ein Befehl und eine Adresse zu einem nichtflüchtigen Speichermodul basierend auf dem DIMM oder NVDIMM gesendet werden. Signale einer Aktivbefehleingabeleitung ACT_n und einer Adressleitung A0 bis A11, welche zu dem Modulcontroller 110 übertragen werden, und Signale von Datenleitungen DQ, welche zu dem Datenpuffer 130 übertragen werden, sind in 2 und 3 veranschaulicht. Zur beschreibenden Zweckmäßigkeit ist eine Bankadresse zum Unterscheiden zwischen der ersten bis vierten Bank BANK1 bis BANK4 in 3 nicht veranschaulicht.
  • Wenn ein Aktivbefehl (oder Aktivsignal) ACT durch die Aktivbefehl-Eingabeleitung ACT_n empfangen wird, können 0-te bis 17-te Adressen (beispielsweise Adresssignale) ADDR0 bis ADDR17 für den Modulcontroller 110 durch 0-te bis 17-te Adressleitungen A0 bis A17 vorgesehen werden. In einer Ausführungsform können die 1-te bis 17-te Adresse ADDR1 bis ADDR17 eine Zeilenadresse zum Auswählen einer Zeile einer ausgewählten Bank in dem flüchtigen Speicher 121 oder eine Zeile einer ausgewählten Bank eines ausgewählten nichtflüchtigen erstreckten Blocks in dem nichtflüchtigen Speicher 123 bilden. Der Aktivbefehl ACT kann anzeigen, dass Signale, welche durch die 1-te bis 17-te Adressleitung A0 bis A17 empfangen werden, eine Zeilenadresse sind.
  • Wenn eine vordefinierte Zeit von einer Eingabe des Aktivbefehls ACT verstreicht, können nächste Signale durch die 0-te bis 17-te Adressleitung A0 bis A17 empfangen werden. Signale, welche durch die 14-te bis 16-te Adressleitung A14 bis A16 empfangen werden, können 0-te bis 2-te Befehle CMD0 bis CMD2 sein. Signale, welche durch die 4-te bis 9-te Adressleitung A4 bis A9 empfangen werden, können 18-te bis 23-te Adressen ADDR18 bis ADDR23 sein. Beispielsweise können die 18-te bis 23-te Adresse ADDR18 bis ADDR23 eine Spaltenadresse zum Auswählen einer Zeile einer ausgewählten Bank in dem flüchtigen Speicher 121 oder einer Spalte einer ausgewählten Bank eines ausgewählten nichtflüchtigen erstreckten Blocks in dem nichtflüchtigen Speicher 123 bilden.
  • Signale, welche durch die 0-te bis 2-te Adressleitung A0 bis A2 empfangen werden, können eine Burst bzw. Bitbündel-Reihenfolge BO0 bis BO2 anzeigen. Beispielsweise kann die Burst-Reihenfolge BO0 bis BO2 die Bestellung von Datenstücken bzw. Daten anzeigen, wenn Datenstücke gemäß einer vordefinierten oder getrennt bestimmten Burst-Länge empfangen oder ausgegeben werden. Ein Signal, welches durch die dritte Adressleitung A3 empfangen wird, kann einen Burst-Typ BT anzeigen. Der Burst-Typ BT kann „sequentiell” oder „verschachtelt” aufweisen. Die 12-te Adressleitung A12 kann ein Burst-Chopping BC anzeigen. Das Burst-Chopping BC kann anzeigen, dass ein Abschnitt der vordefinierten oder getrennt bestimmten Burst-Länge nicht verwendet wird. Die 10-te Adressleitung A10 kann ein Auto-Vorladen (auto-precharge) AP anzeigen.
  • Die Burst-Reihenfolge BO0 bis BO2, der Burst-Typ BT, das Auto-Vorladen AP und das Burst-Chopping BC sind Optionsinformationen zum Einstellen eines Betriebs des nichtflüchtigen Speichermoduls 100, nicht eine Adresse, welche verwendet wird, um zwischen Orten eines Speicherraums zu unterscheiden. Das nichtflüchtige Speichermodul 100 kann wenigstens einige von Signalen, welche durch die Adressleitungen A0 bis A3, A10 und A12 zusammen mit einem Befehl CMD0 bis CMD2 empfangen werden, als die nichtflüchtige erweiterte Blockadresse zum Unterscheiden zwischen den nichtflüchtigen erweiterten Blöcken NVM_BLK1 bis NVM_BLKn erkennen.
  • Wenn auf das nichtflüchtige Speichermodul 100 zugegriffen wird, kann der Prozessor 101 die nichtflüchtige erweiterte Blockadresse durch wenigstens einige der Adressleitungen A0 bis A3, A10 und A12 zu einer Zeitwahl senden, wenn der Befehl CMD0 bis CMD2 gesendet wird.
  • Wenn die 0-te bis 2-te Adressleitung A0 bis A2 verwendet werden, um die nichtflüchtige erweiterte Blockadresse zu senden, unterlässt es der Prozessor 101, die Burst-Reihenfolge BO0 bis BO2 zu dem nichtflüchtigen Speichermodul 100 zu senden, und das nichtflüchtige Speichermodul 100 unterlässt es, die Burst-Reihenfolge BO0 bis B02 zu empfangen. In diesem Fall können das nichtflüchtige Speichermodul 100 und der Prozessor 101 miteinander basierend auf der vordefinierten oder getrennt bestimmten Burst-Reihenfolge kommunizieren. Beispielsweise können Informationen über die Burst-Reihenfolge in der SPD 140 gespeichert werden und können durch den Prozessor 101 erfasst werden, wenn der Prozessor 101 und das nichtflüchtige Speichermodul 100 initialisiert werden. Der Prozessor 101 kann mit dem nichtflüchtigen Speichermodul 100 basierend auf der erfassten Burst-Reihenfolge kommunizieren.
  • Wenn die dritte Adressleitung A3 verwendet wird, um die nichtflüchtige erweiterte Blockadresse zu senden, unterlässt es der Prozessor 101, den Burst-Typ BT zu dem nichtflüchtigen Speichermodul 100 zu senden, und das nichtflüchtige Speichermodul 100 unterlässt es, den Burst-Typ BT zu empfangen. In diesem Fall können das nichtflüchtige Speichermodul 100 und der Prozessor 101 miteinander basierend auf einem vordefinierten oder getrennt bestimmten Burst-Typ kommunizieren. Beispielsweise können Informationen über die Burst-Reihenfolge in der SPD 140 gespeichert werden und können durch den Prozessor 101 erfasst werden, wenn der Prozessor 101 und das nichtflüchtige Speichermodul 100 initialisiert werden. Der Prozessor 101 kann mit dem nichtflüchtigen Speichermodul 100 basierend auf dem erfassten Burst-Typ kommunizieren.
  • Wenn die 12-te Adressleitung A12 verwendet wird, um die nichtflüchtige erweiterte Blockadresse zu senden, unterlässt es der Prozessor 101, das Burst-Chopping BC zu dem nichtflüchtigen Speichermodul 100 zu senden, und das nichtflüchtige Speichermodul 100 unterlässt es, das Burst-Chopping BC zu empfangen. In diesem Fall können das nichtflüchtige Speichermodul und der Prozessor 101 miteinander basierend auf einem vordefinierten oder getrennt bestimmten Burst-Chopping kommunizieren. Beispielsweise können Informationen über das Burst-Chopping in der SPD 140 gespeichert werden und können durch den Prozessor 101 erfasst werden, wenn der Prozessor 101 und das nichtflüchtige Speichermodul 100 initialisiert werden. Der Prozessor 101 kann mit dem nichtflüchtigen Speichermodul 100 basierend auf dem erfassten Burst-Chopping kommunizieren.
  • Wenn die zehnte Adressleitung A10 verwendet wird, um die nichtflüchtige erweiterte Blockadresse zu senden, unterlässt es der Prozessor 101, das Auto-Vorladen AP zu dem nichtflüchtigen Speichermodul 100 zu senden, und das nichtflüchtige Speichermodul 100 unterlässt es, das Auto-Vorladen AP zu empfangen. In diesem Fall kann das nichtflüchtige Speichermodul 100 bestimmen, ob das Auto-Vorladen durchzuführen ist, basierend auf einer vordefinierten oder getrennt bestimmten Information.
  • Fortfahrend, auf 3 Bezug zu nehmen, sind, wenn der Befehl CMD0 bis CMD2 empfangen wird, die Adressleitungen All, A13 und A17 reservierte Leitungen REV. Demzufolge können die reservierten Leitungen REV verwendet werden, um die nichtflüchtigen erweiterten Blockadressen zu senden.
  • Daten können durch die Datenleitungen DQ übermittelt werden, wenn eine Zeilenadresse, welche mit dem flüchtigen Speicher 121 und dem nichtflüchtigen Speicher 123 verbunden ist, zu einer ersten Zeitwahl empfangen wird, wenn der Aktivbefehl ACT gesendet wird, und eine Spaltenadresse, welche mit dem flüchtigen Speicher 123 und dem nichtflüchtigen Speicher 123 verbunden ist, und eine nichtflüchtige erweiterte Blockadresse, welche mit dem nichtflüchtigen Speicher 123 verbunden ist, zu einer zweiten Zeitwahl gesendet werden, wenn der Befehl CMD0 bis CMD2 empfangen wird.
  • 4 ist ein Flussdiagramm, welches ein Betriebsverfahren eines nichtflüchtigen Speichermoduls gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 2 bis 4 kann, in Operation S110, wenn der Aktivbefehl ACT empfangen wird, der Modulcontroller 110 erste Bits, welche durch erste Leitungen empfangen werden, als Zeilenadresse verwenden. Beispielsweise können die ersten Leitungen die Adressleitungen A0 bis A17 sein.
  • In Operation S120 kann, wenn der Befehl CMD0 bis CMD2 empfangen wird, der Modulcontroller 110 zweite Bits, welche durch zweite Leitungen empfangen werden, als eine Spaltenadresse verwenden. Beispielsweise können die zweiten Leitungen die Adressleitungen A4 bis A9 sein.
  • In Operation S130 kann, wenn der Befehl CMD0 bis CMD2 empfangen wird, der Modulcontroller 110 dritte Bits, welche durch dritte Leitungen empfangen werden, als eine nichtflüchtige erweiterte Blockadresse verwenden. Beispielsweise können die dritten Leitungen wenigstens einige der Adressleitungen A0 bis A3, A10 und A12 aufweisen. Ferner können die dritten Leitungen wenigstens einige der Adressleitungen A11, A13 und A17 aufweisen.
  • Die Ausführungsformen des erfinderischen Konzepts sind unter Bezugnahme auf Adressleitungen beschrieben. Der Begriff „Adressleitungen” sind jedoch nur Namen, welche gesetzt werden, um Leitungen, welche mit dem erfinderischen Konzept verbunden sind, von anderen Leitungen zu unterscheiden. Demnach sind Ausführungsformen des erfinderischen Konzepts nicht darauf beschränkt. Beispielsweise können, wie unter Bezugnahme auf 3 beschrieben ist, die Befehle CMD0 bis CMD2 und Optionssignale BO0 bis BO2, BC, BT und AP, welche keine Adresse sind, auch wenn der Begriff „Adressleitung” verwendet wird, durch „Adressleitungen” übermittelt werden.
  • 5 ist ein Flussdiagramm, welches ein Verfahren veranschaulicht, in welchem das nichtflüchtige Speichermodul Daten unter der Steuerung des Prozessors schreibt. Bezugnehmend auf 1, 2 und 5 kann in Operation S210 das nichtflüchtige Speichermodul 100 eine Zeilenadresse, eine Spaltenadresse, eine nichtflüchtige erweiterte Blockadresse und Daten von dem Prozessor 101 empfangen. Die Zeilenadresse, die Spaltenadresse und die nichtflüchtige erweiterte Blockadresse können zu dem Modulcontroller 110 als ein/eine Modul-Befehl/Adresse CA gesendet werden. Die Daten können zu dem Datenpuffer 130 durch die Datenleitungen DQ eingestellt werden. Der Modulcontroller 110 kann den/die VM-Befehl/Adresse CA_v erzeugen und kann den/die VM-Befehl/Adresse CA_v zu dem flüchtigen Speicher 121 und dem NVM-Controller 122 senden. Der Modulcontroller 110 kann den/die NVM-Befehl/Adresse CA_n erzeugen und kann den/die NVM-Befehl/Adresse CA_n zu dem NVM-Controller 122 senden.
  • In Operation S220 kann der Modulcontroller 110 oder der NVM-Controller 122 einen Tag, welcher der Zeilen- und Spaltenadresse entspricht, aus dem flüchtigen Speicher 121 lesen. Beispielsweise kann der Modulcontroller 110 den/die VM-Befehl/Adresse CA_v zum Anfordern einer Leseoperation an den flüchtigen Speicher 121 senden. Beispielsweise kann der flüchtige Speicher 121 den Tag „TAG” auf der Tag-Datenleitung TDQ laden und kann Speicherdaten auf die Speicherdatenleitung MDQ laden. Der Modulcontroller 110 oder der NVM-Controller 122 können den Tag „TAG”, welcher auf die Tag-Datenleitung TDQ geladen ist, und die Speicherdaten, welche auf die Speicherdatenleitung MDQ geladen sind, empfangen.
  • In Operation S230 können der Modulcontroller 110 oder NVM-Controller 122 bestimmen, ob ein Treffer oder ein Verfehlen erzeugt wird. Beispielsweise kann der Treffer bestimmt werden, wenn die nichtflüchtige erweiterte Blockadresse, welche von dem Prozessor 101 empfangen wird, dieselbe ist wie der Tag, welcher aus dem flüchtigen Speicher 121 gelesen wird. Wenn der Treffer bestimmt wird, werden die Operationen S240 und S250 ausgelassen, und Operation S260 wird durchgeführt.
  • In Operation S230 kann das Verfehlen bestimmt werden, wenn die nichtflüchtige erweiterte Blockadresse, welche von dem Prozessor 101 empfangen wird, unterschiedlich von dem Tag ist, welcher aus dem flüchtigen Speicher 121 gelesen wird. Wenn das Verfehlen bestimmt wird, wird Operation S240 durchgeführt.
  • In Operation S240 bestimmen der Modulcontroller 110 oder der NVM-Controller 122, ob ein Dirty-Flag in einen Speicherraum des flüchtigen Speichers 121, welcher der Zeilen- und Spaltenadresse entspricht, geschrieben ist. Wenn das Dirty-Flag nicht in den Speicherraum geschrieben ist, wird Operation S250 ausgelassen, und Operation S260 wird durchgeführt.
  • Wenn in Operation S240 bestimmt wird, dass das Dirty-Flag in den Speicherraum geschrieben ist, können der Modulcontroller 110 oder NVM-Controller 122 Operation S250 durchführen. In Operation S250 können der Modulcontroller 110 oder der NVM-Controller 122 Daten, welche aus dem flüchtigen Speicher 121 gelesen werden, in den nichtflüchtigen Speicher 123 basierend auf der Zeilenadresse, der Spaltenadresse und der nichtflüchtigen erweiterten Blockadresse schreiben. Beispielsweise kann der Modulcontroller 110 den NVM-Controller 122 mit dem/der NVM-Befehl/Adresse CA_n zum Anfordern, dass Daten, welche auf die Speicherdatenleitung MDQ geladen sind, geschrieben werden, vorsehen. Danach wird Operation S260 durchgeführt.
  • In Operation S260 können der Modulcontroller 110 oder der NVM-Controller 122 Daten in den flüchtigen Speicher 122 basierend auf den Zeilen- und Spaltenadressen schreiben. Der Modulcontroller 110 kann den Datenpuffer 130 steuern, um Daten, welche durch die Datenleitungen DQ empfangen werden, auf die Speicherdatenleitung MDQ zu laden. Der Modulcontroller 110 kann den/die VM-Befehl/Adresse CA_v zum Anfordern einer Schreiboperation an den flüchtigen Speicher 121 senden.
  • In Operation S270 können der Modulcontroller 110 oder der NVM-Controller 122 das Dirty-Flag in einen Speicherraum des flüchtigen Speichers 121 schreiben, welcher der Zeilen- und Spaltenadresse entspricht. Das Dirty-Flag kann in den flüchtigen Speicher 121 zusammen mit dem Tag „TAG” durch die Tag-Datenleitung TDQ oder zusammen mit Daten durch die Speicherdatenleitung MDQ geschrieben werden. Beispielsweise können der Modulcontroller 110 oder der NVM-Controller 122 Informationen, welche als das Dirty-Flag zu schreiben sind, auf die Tag-Datenleitung TDQ oder die Speicherdatenleitung MDQ laden. Der Modulcontroller 110 kann den flüchtigen Speicher 121 mit dem/der VM-Befehl/Adresse CA_v vorsehen zum Anfordern, dass Daten, welche auf die Tag-Datenleitung TDQ oder die Speicherdatenleitung TDQ geladen sind, geschrieben werden. Beispielsweise können das Dirty-Flag und Daten zusammen geschrieben werden. Beispielsweise können die Operationen S240 und S250 zu derselben Zeit durchgeführt werden.
  • In Operation S280 können der Modulcontroller 110 oder der NVM-Controller 122 die nichtflüchtige erweiterte Blockadresse als das Tag „TAG” in den flüchtigen Speicher 121, welcher der Zeilen- und Spaltenadresse entspricht, schreiben. Beispielsweise können der Modulcontroller 110 oder der NVM-Controller 122 die nichtflüchtige erweiterte Blockadresse auf die Tag-Datenleitung TDQ laden. Der Modulcontroller 110 kann den flüchtigen Speicher 121 mit dem/der VM-Befehl/Adresse CA_v vorsehen zum Anfordern, Daten, welche auf die Tag-Datenleitung TDQ geladen sind, zu schreiben. Beispielsweise kann das Tag „TAG” zusammen mit dem Dirty-Flag oder Daten geschrieben werden. Beispielsweise kann die Operation S280 und Operationen S240 und S250 zu derselben Zeit durchgeführt werden.
  • 6 ist ein Flussdiagramm, welches ein Verfahren veranschaulicht, in welchem das nichtflüchtige Speichermodul Daten unter der Steuerung des Prozessors liest. Bezugnehmend auf 1, 2 und 6 kann in Operation S310 das nichtflüchtige Speichermodul 100 eine Zeilenadresse, eine Spaltenadresse, eine nichtflüchtige erweiterte Blockadresse und Daten von dem Prozessor 101 empfangen. Die Zeilenadresse, die Spaltenadresse und die nichtflüchtige erweiterte Blockadresse können zu dem Modulcontroller 110 als ein/eine Modul-Befehl/Adresse CA gesendet werden. Der Modulcontroller 110 kann den/die VM-Befehl/Adresse CA_v erzeugen und den/die VM-Befehl/Adresse CA_v zu dem flüchtigen Speicher 121 und dem NVM-Controller 122 senden. Der Modulcontroller 110 kann den/die NVM-Befehl/Adresse CA_n erzeugen und kann den/die NVM-Befehl/Adresse CA_n zu dem NVM-Controller 122 senden.
  • In Operation S320 können der Modulcontroller 110 oder der NVM-Contoller 122 ein Tag, welches der Zeilen- und Spaltenadresse entspricht, aus dem flüchtigen Speicher 121 lesen. Beispielsweise kann der Modulcontroller 110 den/die VM-Befehl/Adresse CA_v zum Anfordern einer Leseoperation an den flüchtigen Speicher 121 senden. Beispielsweise kann der flüchtige Speicher 121 das Tag „TAG” auf die Tag-Datenleitung TDQ laden und kann Speicherdaten auf die Speicherdatenleitung MDQ laden. Der Modulcontroller 110 oder NVM-Controller 122 können das Tag „TAG”, welches auf die Tag-Datenleitung TDQ geladen ist und die Speicherdaten, welche auf die Speicherdatenleitung MDQ geladen sind, empfangen.
  • In Operation S330 können der Modulcontroller 110 oder der NVM-Controller 122 bestimmen, ob ein Treffer oder ein Verfehlen erzeugt ist. Beispielsweise kann der Treffer bestimmt werden, wenn die nichtflüchtige erweiterte Blockadresse, welche von dem Prozessor 101 empfangen wird, dieselbe ist wie das Tag, welches aus dem flüchtigen Speicher 121 gelesen wird. Wenn der Treffer bestimmt ist, werden Operationen S340 und S380 ausgelassen und Operation S390 wird durchgeführt.
  • In Operation S330 kann das Verfehlen bestimmt werden, wenn die nichtflüchtige erweiterte Blockadresse, welche von dem Prozessor 101 empfangen wird, unterschiedlich von dem Tag ist, welches aus dem flüchtigen Speicher 121 gelesen wird. Wenn das Verfehlen bestimmt wird, wird Operation S340 durchgeführt.
  • In Operation S340 bestimmen der Modulcontroller 110 oder der NVM-Controller 122, ob ein Dirty-Flag in einen Speicherraum des flüchtigen Speichers 121, welcher der Zeilen- und Spaltenadresse entspricht, geschrieben ist. Wenn das Dirty-Flag nicht in den Speicherraum geschrieben ist, wird Operation S350 ausgelassen, und Operation S360 wird durchgeführt.
  • Wenn in Operation S340 bestimmt wird, dass das Dirty-Flag in den Speicherraum geschrieben ist, können der Modulcontroller 110 oder der NVM-Controller 122 Operation S350 durchführen. In Operation S350 können der Modulcontroller 110 oder der NVM-Controller 122 Daten, welche aus dem flüchtigen Speicher 121 gelesen werden, in den nichtflüchtigen Speicher 123 basierend auf der Zeilenadresse, der Spaltenadresse und der nichtflüchtigen erweiterten Blockadresse schreiben. Beispielsweise kann der Modulcontroller 110 den NVM-Controller 122 mit dem/der NVM-Befehl/Adresse CA_n vorsehen zum Anfordern, Daten, welche auf die Speicherdatenleitung MDQ geladen sind, zu schreiben. Danach wird Operation S260 durchgeführt.
  • In Operation S360 können der Modulcontroller 110 oder der NVM-Controller 122 Daten aus dem nichtflüchtigen Speicher 123 basierend auf der Zeilenadresse, der Spaltenadresse und der nichtflüchtigen erweiterten Blockadresse lesen. Beispielsweise kann der Modulcontroller 110 den NVM-Controller 122 mit dem/der NVM-Befehl/Adresse CA_n vorsehen, um Daten zu lesen und die gelesenen Daten auf die Speicherdatenleitung MDQ zu laden.
  • In Operation S370 können der Modulcontroller 110 und der NVM-Controller 122 Daten in den flüchtigen Speicher 121 basierend auf der Zeilen- und Spaltenadresse schreiben. Beispielsweise kann der Modulcontroller 110 den flüchtigen Speicher 121 mit dem/der VM-Befehl/Adresse CA_v vorsehen, um Daten, welche auf die Speicherdatenleitung MDQ geladen sind, zu schreiben.
  • In Operation S380 können der Modulcontroller 110 oder der NVM-Controller 122 die nichtflüchtige erweiterte Blockadresse als das Tag „TAG” in den flüchtigen Speicher 121 schreiben, welcher der Zeilen- und Spaltenadresse entspricht. Beispielsweise können der Modulcontroller 110 und der NVM-Controller 122 die nichtflüchtige erweiterte Blockadresse auf die Tag-Datenleitung TDQ laden. Der Modulcontroller 110 kann den flüchtigen Speicher 121 mit dem/der VM-Befehl/Adresse CA_v vorsehen zum Anfordern, Daten, welche auf die Tag-Datenleitung TDQ geladen sind, zu schreiben. Beispielsweise kann das Tag „TAG” zusammen mit Daten geschrieben werden. Beispielsweise können die Operation S380 und die Operation S370 zu derselben Zeit durchgeführt werden.
  • In Schritt S390 kann das nichtflüchtige Speichermodul A200 die Daten ausgeben. Beispielsweise kann der Modulcontroller 110 den Datenpuffer 130 steuern, um Daten, welche auf die Speicherdatenleitung MDQ geladen sind, auszugeben.
  • Die 7 und 8 veranschaulichen Beispiele, in welchen eine erweiterte Adresse (oder eine nichtflüchtige erweiterte Blockadresse) gemäß Anwendungen des erfinderischen Konzepts gesendet wird. Arten von Befehlen, welche zu dem nichtflüchtigen Speichermodul 100 zu senden sind, und ein/eine Modul-Befehl/Adresse CA gemäß den Befehlen sind in 7 und 8 veranschaulicht.
  • Bezugnehmend auf 2, 7 und 8 kann der/die Modul-Befehl/Adresse CA durch ein Takt-Aktivierungssignal CKE, ein Chipauswahl-Aktivierungssignal CS_n, eine Aktivbefehl-Eingabeleitung ACT_n, Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14, Bankgruppen-Eingabeleitungen BG0 und BG1, Bankadress-Eingabeleitungen BA0 und BA1, Chip-Identifizierer-Leitungen C0 bis C2, eine Burst-Chop-Signalleitung BC_n/A12, Adressleitungen A11, A13 und A17, eine Auto-Vorlade-Signalleitung A10/AP und Adressleitungen A0 bis A9 gesendet werden.
  • Die Takt-Aktivierungssignalleitung CKE kann einen internen Takt und ein Takt-Aktivierungssignal zum Steuern einer Aktivierung und Deaktivierung eines Eingabepuffers und eines Ausgabetreibers in dem nichtflüchtigen Speichermodul 100 oder dem flüchtigen Speicher 121 senden. Pegel eines vorangehenden Zyklus und eines gegenwärtigen Zyklus der Takt-Aktivierungssignalleitung CKE können verwendet werden, um eine Art von Befehl zu bestimmen, welcher in dem/der Modul-Befehl/Adresse CA enthalten ist.
  • Ein Chipauswahlsignal, welches durch die Chipauswahl-Signalleitugn CS_n gesendet wird, kann anzeigen, ob der/die Modul-Befehl/Adresse CA in dem nichtflüchtigen Speichermodul 100 oder dem flüchtigen Speichermodul 121 gültig oder ungültig ist.
  • Die Aktivbefehl-Eingabeleitung ACT_n kann den Aktivbefehl ACT übertragen, und der Aktivbefehl ACT kann als ein Aktivbefehl erkannt werden.
  • Jede der Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 wird für mehrfache Zwecke verwendet. Wenn der Aktivbefehl ACT aktiviert wird, können die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 eine Zeilenadresse RA übertragen, welche den Adressleitungen A14 bis A16 entspricht. Wenn der Aktivbefehl ACT deaktiviert ist, kann jede der Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 einen Befehl übertragen.
  • Die Bankgruppen-Eingabeleitungen BG0 und BG1 können ein Bankgruppensignal BG, welches eine Bankgruppe, welche zu aktivieren ist, anzeigt, übertragen.
  • Die Bankgruppen-Eingabeleitungen BG0 und BG1 können eine Bankadresse BA, welche eine Bankadresse, welche zu aktivieren ist, anzeigt, übertragen.
  • Die Chip-Identifiziererleitungen C0 bis C2 können einen Identifizierer zur Auswahl jeder Scheibe in einer dreidimensionalen Struktur, welche die Scheiben auf der Basis eines Durchgangssilikonvias (TSV) gestapelt hat, übertragen.
  • Die Burst-Chop-Signalleitung BC_n/A12 wird für mehrfache Zwecke verwendet. Wenn der Aktivbefehl ACT aktiviert ist, kann die Burst-Chop-Signalleitung BC_n/A12 eine Zeilenadresse RA, welche der Adressleitung A12 entspricht, übertragen. Wenn der Aktivbefehl ACT deaktiviert ist und ein Befehl, welcher in dem/der Modul-Befehl/Adresse enthalten ist, eine Leseoperation anzeigt, kann die Burst-Chop-Signalleitung BC_n/A12 das Burst-Chopping-Signal BC übertragen, welches anzeigt, ob Burst-Chopping durchzuführen ist.
  • Die Adressleitungen A11, A13 und A17 werden für mehrfache Zwecke verwendet. Wenn der Aktivbefehl ACT aktiviert ist, kann jede der Adressleitungen A11, A13 und A17 eine Zeilenadresse RA übertragen. Wenn der Aktivbefehl ACT deaktiviert ist, kann jede der Adressleitungen A11, A13 und A17 kein gültiges Signal übertragen. Beispielsweise können die Signalleitungen A11, A13 und A17 reservierte Leitungen sein.
  • Die Auto-Vorlade-Signalleitung A10/AP wird für mehrfache Zwecke verwendet. Wenn der Aktivbefehl ACT deaktiviert ist, kann die Auto-Vorlade-Signalleitung A10/AP eine Zeilenadresse RA, welche der Adressleitung A10 entspricht, übertragen. Wenn der Aktivbefehl ACT deaktiviert ist und Signale (beispielsweise ein Befehl), welche durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 übertragen werden, eine vordefinierte Struktur haben (beispielsweise eine reservierte Struktur), kann die Auto-Vorlade-Signalleitung A10/AP das Auto-Vorladesignal AP übertragen, welches anzeigt, ob eine Auto-Vorladung durchzuführen ist. Ferner kann, wenn der Aktivbefehl ACT deaktiviert ist und Signale (beispielsweise ein Befehl), welche durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 übertragen werden, eine vordefinierte Struktur (beispielsweise eine reservierte Struktur) haben, die Auto-Vorlade-Signalleitung A10/AP einen Aktivierungs-Erweiterungsbefehl EXT übertragen.
  • Die Adressleitungen A0 bis A9 werden für mehrfache Zwecke verwendet. Wenn der Aktivbefehl ACT deaktiviert ist, kann jede der Adressleitungen A0 bis A9 eine Zeilenadresse RA übertragen. Wenn der Aktivbefehl ACT deaktiviert ist und die Befehlseingabeleitungen RRAS_n/A16, CAS_n/A15 und WE_n/A14 die reservierte Struktur nicht haben, kann jede der Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 eine Spaltenadresse CA übertragen. Wenn der Aktivbefehl ACT deaktiviert ist und die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 die reservierte Struktur haben, kann jede der Befehlseingabeleitungen RAS_n/A16, CAS_n/A15, wenn der Aktivierungs-Erweiterungsbefehl EXT und die Adressleitungen A0 bis A9 können eine erweiterte Adresse EA übertragen.
  • Wie in 7 und 8 veranschaulicht ist, können ein Befehl und eine Adresse, welche in dem/der Modul-Befehl/Adresse CA enthalten sind, jeweils gemäß dem Takt-Aktivierungssignal CKE, dem Chipauswahl-Aktivierungssignal CS_n, der Aktivbefehl-Eingabeleitung ACT_n, den Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14, den Bankgruppen-Eingabeleitungen BG0 und BG1, den Bankadress-Eingabeleitungen BA0 und BA1, den Chip-Identifiziererleitungen C0 bis C2, der Burst-Chop-Signalleitung BC_n/A12, den Adressleitungen A11, A13 und A17, der Auto-Vorlade-Signalleitung A10/AP und der Adressleitungen A0 bis A9, welche in dem/der Modul-Befehl/Adresse CA enthalten sind, erkannt werden.
  • Beispielsweise kann ein Befehl, welcher in dem/der Modul-Befehl/Adresse CA enthalten ist, einen Bank-Aktivbefehl ACT (oder den Aktivbefehl), einen Bank-Aktivierungs-Erweiterungsbefehl EXT (oder einen erweiterten Aktivbefehl), eine Reservierung für eine Merkmalsverwendung RFU, ein Lesen, welches eine Burst-Länge von feststehenden „BL8” oder ein Burst-Chopping von „BC4” (Lesen (feststehende BL8 oder BC4)) hat, ein Lesen, welches eine Burst-Länge von feststehenden „BL8” oder ein Burst-Chopping von „BC4” hat und die Auto-Vorladung begleitet (Lesen mit Auto-Vorladung (feststehende BL8 oder BC4)), ein Lesen, welches eine Burst-Länge „BL8” als einen Default-Wert hat und spontan angepasst wird (Lesen (BL8, spontan)), ein Lesen, welches eine Burst-Länge von „BL8” als einen Default-Wert hat, spontan angepasst wird, und ein Auto-Vorladen begleitet (Lesen mit Auto-Vorladen (BL8, spontan)), ein Lesen, welches ein Burst-Chopping von „BC4” als einem Default-Wert hat und spontan angepasst wird (Lesen (BC4, spontan)) und ein Lesen, welches ein Burst-Chopping von „BC4” als einem Default-Wert hat, spontan angepasst wird, und ein Auto-Vorladen begleitet (Lesen mit Auto-Vorladen (BC4, spontan)) aufweisen.
  • Beispielsweise kann ein Befehl, welcher in dem/der Modul-Befehl/Adresse CA enthalten ist, ein Schreiben aufweisen, welches eine Burst-Länge von feststehenden „BL8” oder ein Burst-Chopping von „BC4” (Schreiben (feststehende BL8 oder BC4)), ein Schreiben, welches eine Burst-Länge von feststehenden „BL8” oder ein Burst-Chopping von „BC4” hat und die Auto-Vorladung begleitet (Schreiben mit Auto-Vorladung (feststehende BL8 oder BC4)), ein Schreiben, welches eine Burst-Länge „BL8” als einen Default-Wert hat und spontan angepasst wird (Schreiben (BL8, spontan)), ein Schreiben, welches eine Burst-Länge von „BL8” als einen Default-Wert hat, spontan angepasst wird, und ein Auto-Vorladen begleitet (Schreiben mit Auto-Vorladen (BL8, spontan)), ein Schreiben, welches ein Burst-Chopping von „BC4” als einem Default-Wert hat und spontan angepasst wird (Schreiben (BC4, spontan)) und ein Schreiben, welches ein Burst-Chopping von „BC4” als einem Default-Wert hat, spontan angepasst wird, und ein Auto-Vorladen begleitet (Schreiben mit Auto-Vorladen (BC4, spontan)) aufweisen.
  • Der Befehl, welcher in dem/der Modul-Befehl/Adresse CA enthalten ist, kann ferner eine Modus-Registereinstellung, eine Auffrischung, einen Selbstauffrischungseintrag, einen Selbstauffrischungsausgang, eine Einzelbankvorladung, eine Vorladung aller Bänke, keine Operation, eine abgewählte Vorrichtung, einen Herunterfahr-Eintrag, einen Herunterfahr-Ausgang, eine ZQ-Kalibrierung lang und eine ZQ-Kalibrierung kurz aufweisen.
  • In 7 und 8 zeigt „H” einen hohen Pegel an und „L” zeigt einen niedrigen Pegel an. „V” zeigt einen bestimmten Pegel an, welcher als eines von „H” und „L” definiert ist. „X” zeigt eine Sache an, welche definiert oder nicht definiert ist (beispielsweise floatend) oder nicht relevant ist. „RA” zeigt an, dass eine Zeilenadresse RA gesendet wird. „CA” zeigt an, dass eine Spaltenadresse CA gesendet wird. „RFU” zeigt eine Reservierung für zukünftigen Gebrauch an. Hier wird der Begriff „reserviert” auf der Basis eines gegenwärtigen Zustandes genutzt und ist definiert und wird genutzt für eine andere Verwendung, nachdem diese Anmeldung eingereicht ist. „BG” zeigt an, dass ein Bankgruppensignal BG gesendet wird. „BA” zeigt an, dass eine Bankadresse BA gesendet wird. „EA” zeigt an, dass eine erweiterte Adresse EA gesendet wird. „Op Code” zeigt an, dass ein Operationsbefehl gesendet wird.
  • In 7 und 8 wird der Bank-Aktivierungs-Erweiterungsbefehl EXT definiert. Der Bank-Aktivierungs-Erweiterungsbefehl EXT kann erkannt werden, wenn ein Signal der Takt-Aktivierungssignalleitung CKE bei einem hohen Pegel „H” in vorangehenden und gegenwärtigen Zyklen ist, ein Signal der Chip-Aktivierungssignalleitung CS_n bei eine niedrigen Pegel „L” ist, ein Signal der Aktivbefehl-Eingabeleitung ACT_n auf einem hohen Pegel „H” ist, Signale der Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 jeweils bei einem niedrigen Pegel „L”, einem hohen Pegel „H” und einem hohen Pegel „H” sind, und ein Signal der Auto-Vorlade-Signalleitung A10/AP bei einem hohen Pegel „H” ist. Die erweiterte Adresse EA kann durch die Adressleitungen A0 bis A9 zusammen mit dem Bank-Aktivierungs-Erweiterungsbefehl EXT gesendet werden.
  • In einer Ausführungsform kann der Bank-Aktivierungs-Erweiterungsbefehl EXT einen erweiterten Aktivbefehl ACTe zusammen mit dem Bank-Aktivbefehl ACT bilden. In einer Ausführungsform können der Bank-Aktivbefehl ACT und der Bank-Aktivierungs-Erweiterungsbefehle EXT nacheinanderfolgend gesendet werden, und ein anderer Befehl kann zwischen dem Bank-Aktivbefehl ACT und dem Bank-Aktivierungs-Erweiterungsbefehl EXT nicht gesendet werden. Das heißt, dass der erweiterte Aktivbefehl ACTe, welcher den Bank-Aktivbefehl ACT und den Bank-Aktivierungs-Erweiterungsbefehl EXT aufweist, gesendet wird, die Zeilenadresse RA und die erweiterte Adresse EA werden zu dem nichtflüchtigen Speichermodul gesendet.
  • In der Ausführungsform, welche unter Bezugnahme auf 7 und 8 beschrieben ist, wird der Bank-Aktivierungs-Erweiterungsbefehl EXT erkannt, wenn die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 eine reservierte Struktur bilden, beispielsweise einen niedrigen Pegel „L”, einen hohen Pegel „H” und einen hohen Pegel „H” und ein Signal der Auto-Vorlade-Signalleitung A10/AP bei einem hohen Pegel „H” ist. Der Bank-Aktivierungs-Erweiterungsbefehl EXT kann jedoch erkannt werden, wenn ein Signal der Auto-Vorlade-Signalleitung A10/AP bei einem niedrigen Pegel „L” ist. In diesem Fall kann ein Befehl, in welchem ein Signal der Auto-Vorlade-Signalleitung A10/AP bei einem hohen Pegel „H” ist, ein reservierter Befehl RFU für eine zukünftige Verwendung sein. In einer anderen Ausführungsform wird der Bank-Aktivierungs-Erweiterungsbefehl EXT unabhängig von einem Signal der Auto-Vorlade-Signalleitung A10/AP erkannt, wenn die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 eine reservierte Struktur bilden, beispielsweise einen niedrigen Pegel „L”, einen hohen Pegel „H” und einen hohen Pegel „H”.
  • 9 ist ein Zeitdiagramm, welches eine Anwendung eines Prozesses veranschaulicht, in welchem ein Befehl und eine Adresse zu dem nichtflüchtigen Speichermodul basierend auf dem DIMM oder NVDIMM gesendet werden. In 9 zeigt ein erster Graph G1 Signale, welche durch Signalleitungen übertragen werden. Ein zweiter Graph G2 zeigt einen Befehl CMD, eine Adresse ADDR und Daten DQ, welche kurz durch eine Verwendung von Signalen ausgedrückt werden, welche durch Signalleitungen übertragen werden.
  • Bezugnehmend auf 2 und 7 bis 9 wird bei T1 der Aktivbefehl ACT durch die Aktivbefehlseingabeleitung ACT_n als ein Befehl CMD übertragen. Ferner wird eine Zeilenadresse RA als eine Adresse ADDR durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14, die Burst-Chop-Signalleitung BC_n/A12, die Adressleitungen A11, A13 und A17, das Auto-Vorladesignal A10/AP und die Adressleitungen A0 bis A9 übertragen. Das Bankgruppensignal BG, die Bankadresse BA und der Chip-Identifizierer CID werden jeweils durch die Bankgruppen-Eingabeleitungen BG0 und BG1, die Bankadress-Eingabeleitungen BA0 und BA1 und die Chip-Identifiziererleitungen C0 bis C2 übertragen.
  • Bei T2 wird der Bank-Aktivierungs-Erweiterungsbefehl EXT als ein Befehl CMD durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 und die Auto-Vorlade-Signalleitung A10/AP übertragen. Die erweiterte Adresse EA wird durch die Adressleitungen A0 bis A9 als eine Adresse ADDR übertragen.
  • Der Aktivbefehl ACT und der Bank-Aktivierungs-Erweiterungsbefehl EXT können kontinuierlich übertragen werden. Der Aktivbefehl ACT wird zusammen mit der Zeilenadresse RA übertragen, und der erweiterte Aktivbefehl EXT wird zusammen mit der erweiterten Adresse EA übertragen. Der Aktivbefehl ACT und der erweiterte Aktivbefehl EXT können den erweiterten Aktivbefehl ACTe bilden.
  • Nachdem das nichtflüchtige Speichermodul 100 oder der flüchtige Speicher 121 vollständig ein Zugriffsziel, d. h. einen Speicherraum in Antwort auf den erweiterten Aktivbefehl ACTe bei T3 aktiviert, wird ein Befehl CMD durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 übertragen. Der Befehl CMD kann einen der verbleibenden Befehle der Befehle, welche unter Bezugnahme auf 7 und 8 beschrieben sind, mit Ausnahme des Aktivbefehls ACT und des erweiterten Aktivbefehls EXT anzeigen. Die Spaltenadresse CA wird durch die Adressleitungen A0 bis A9 als eine Adresse ADDR übertragen. Das Bankgruppensignal BG und die Bankadresse BA werden jeweils durch die Bankgruppen-Eingabeleitungen BG0 und BG1 und die Bankadress-Eingabeleitungen BA0 und BA1 übertragen. Signale können durch die Burst-Chop-Signalleitung BC_n/A12 und die Auto-Vorlade-Signalleitung A10/AP als eine Option OPT übertragen werden.
  • Bei T4 können Daten in Antwort auf den Befehl CMD, welcher bei T3 übertragen wird, ausgetauscht werden.
  • Wie obenstehend beschrieben ist, kann das nichtflüchtige Speichermodul 100 gemäß einer Ausführungsform des erfinderischen Konzepts konfiguriert sein, um den Aktivierungs-Erweiterungsbefehl EXT basierend auf Signalen der Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 oder Signalen von den Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 und einer zusätzlichen Leitung beispielsweise der Auto-Vorlade-Signalleitung A10/AP zu identifizieren. Das nichtflüchtige Speichermodul 100 kann die erweiterte Adresse EA basierend auf dem Aktivierungs-Erweiterungsbefehl EXT erkennen.
  • Die Zeilenadresse RA, welche zusammen mit dem Aktivbefehl ACT empfangen wird, und die Spaltenadresse CA, welche zusammen mit dem Befehl CMD empfangen wird, können gemeinsam auf den flüchtigen Speicher 121 und den nichtflüchtigen Speicher 123 angewandt werden, und die erweiterte Adresse, welche zusammen mit dem Aktivierungs-Erweiterungsbefehl EXT empfangen wird, kann nicht auf den flüchtigen Speicher 121 angewandt werden, und kann auf den nichtflüchtigen Speicher 123 angewandt werden. In einer Ausführungsform kann, wie unter Bezugnahme auf 5 und 6 beschrieben ist, die erweiterte Adresse EA als ein Tag verwendet werden.
  • In einer Ausführungsform kann in der SPD 140 gespeichert werden, ob das nichtflüchtige Speichermodul 100 den Aktivierungs-Erweiterungsbefehl EXT unterstützt. Der Prozessor 101 (es sei Bezug genommen auf 1) kann bestimmen, ob das nichtflüchtige Speichermodul 100 den Aktivierungs-Erweiterungsbefehl EXT unterstützt, und zwar basierend auf Informationen, welche aus der SPD 140 gelesen werden. Wenn das nichtflüchtige Speichermodul 100 den Aktivierungs-Erweiterungsbefehl EXT unterstützt, kann, wie unter Bezugnahme auf 7 bis 9 beschrieben ist, der Prozessor 101 den erweiterten Aktivbefehl ACTe zu dem nichtflüchtigen Speichermodul 100 senden. Wenn das nichtflüchtige Speichermodul 100 den erweiterten Aktivbefehl ACTe nicht unterstützt, kann, wie unter Bezugnahme auf 3 und 4 beschrieben ist, der Prozessor 101 die nichtflüchtige erweiterte Blockadresse zusammen mit dem Aktivbefehl ACT senden.
  • In dem Fall, in dem der Prozessor 101 den erweiterten Aktivbefehl ACTe sendet, können das nichtflüchtige Speichermodul 100 oder der Modulcontroller 110 die Zeilenadresse RA von dem Aktivbefehl ACT, welcher in dem erweiterten Aktivbefehl ACTe enthalten ist, erlangen, und können die erweiterte Adresse EA von dem Aktivierungs-Erweiterungsbefehl EXT erlangen, welcher in dem erweiterten Aktivbefehl ACTe enthalten ist.
  • 10 ist ein Flussdiagramm, welches ein Verfahren veranschaulicht, in welchem das nichtflüchtige Speichermodul 100 die Zeilenadresse RA, die erweiterte Adresse EA und die Spaltenadresse CA von dem erweiterten Aktivbefehl ACTe erlangt. Bezugnehmend auf 2 und 7 bis 10 verwendet in Operation 5410 das nichtflüchtige Speichermodul 100 erste Bits, welche durch erste Leitungen empfangen werden, wenn der Aktivbefehl ACT empfangen wird, als die Zeilenadresse RA. Beispielsweise kann der Aktivbefehl ACT durch die Aktivbefehl-Eingabeleitung ACT_n empfangen werden. Beispielsweise können die ersten Leitungen die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14, die Burst-Chop-Signalleitung BC_n/A12, die Adressleitungen A11, A13 und A17, die Auto-Vorlade-Signalleitung A10/AP und die Adressleitungen A0 bis A9 aufweisen.
  • In Operation S420 verwendet das nichtflüchtige Speichermodul 100 zweite Bits, welche durch zweite Leitungen empfangen werden, wenn der Aktivierungs-Erweiterungsbefehl EXT empfangen wird, als die erweiterte Adresse EA. Beispielsweise kann der Aktivierungs-Erweiterungsbefehl EXT durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 oder durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 und eine zusätzliche Leitung, beispielsweise die Auto-Vorlade-Signalleitung A10/AP empfangen werden. Die zweiten Leitungen können die Adressleitungen A0 bis A9 sein.
  • In Operationen S410 und S420 werden die Zeilenadresse RA und die erweiterte Adresse EA zusammen mit dem erweiterten Aktivbefehl ACTe empfangen.
  • In Operation S430 verwendet das nichtflüchtige Speichermodul 100 dritte Bits, welche durch dritte Leitungen empfangen werden, wenn der Befehl CMD empfangen wird, als die Spaltenadresse CA. Der Befehl CMD kann durch die Befehlseingabeleitungen RAS_n/A16, CAS_n/A15 und WE_n/A14 empfangen werden. Die dritten Leitungen können die Adressleitungen A0 bis A9 sein.
  • 11 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 1 und 11 weist das nichtflüchtige Speichermodul 200 einen Modulcontroller 210 (oder eine RAM-Steuervorrichtung), eine heterogene Speichervorrichtung 220, einen Datenpuffer (DB) 230 und eine SPD 240 auf.
  • Der Modulcontroller 210 kann ähnlich zu dem Modulcontroller 110 arbeiten.
  • Die heterogene Speichervorrichtung 220 kann den flüchtigen Speicher 221, den NVM-Controller 222 und den nichtflüchtigen Speicher 223 aufweisen. Der flüchtige Speicher 221 kann in Antwort auf den/die VM-Befehl-Adresse CA_v von dem Modulcontroller 210 arbeiten. Der flüchtige Speicher 221 kann Daten und einen Tag „TAG” durch eine Speicherdatenleitung MDQ und eine Tag-Datenleitung TDQ jeweils in Antwort auf den/die VM-Befehl/Adresse CA_v ausgeben. Der flüchtige Speicher 221 kann Daten und einen Tag, welche jeweils durch die Speicherdatenleitung MDQ und die Tag-Datenleitung TDQ empfangen werden, basierend auf dem/der VM-Befehl/Adresse CA_v schreiben.
  • Der NVM-Controller 222 kann in Antwort auf den/die NVM-Befehl/Adresse CA_n von dem Modulcontroller 210 arbeiten. Beispielsweise kann auf der Basis des/der NVM-Befehl/Adresse CA_n von dem Modulcontroller 210 der NVM-Controller 222 Daten, welche durch die Speicherdatenleitung MDQ empfangen werden, in den nichtflüchtigen Speicher 223 programmieren oder kann Daten, welche in den nichtflüchtigen Speicher 223 programmiert sind, durch die Speicherdatenleitung MDQ ausgeben.
  • Der NVM-Controller 222 kann ähnlich zu dem NVM-Controller 122 arbeiten.
  • In einer Ausführungsform können der flüchtige Speicher 221 und der NVM-Controller 222 dieselbe Speicherdatenleitung MDQ gemeinsam verwendet.
  • In einer Ausführungsform können der flüchtige Speicher 221 und der Modulcontroller 210 die Tag-Datenleitung TDQ gemeinsam verwenden. Alternativ können der flüchtige Speicher 221, der NVM-Controller 222 und der Modulcontroller 210 die Tag-Datenleitung TDQ gemeinsam verwenden. Der NVM-Controller 222 kann einen Tag „TAG” durch die Tag-Datenleitung TDQ ausgeben.
  • Der Datenpuffer 230 kann ähnlich zu dem Datenpuffer 130 in Verbindung mit der Speicherdatenleitung MDQ und der Datenleitung DQ arbeiten oder konfiguriert sein.
  • Die SPD 240 kann ähnlich zu der SPD 140 arbeiten oder konfiguriert sein.
  • In einer Ausführungsform kann der Cache-Verwalter 215 Transaktionsidentifikationen TID hinsichtlich Cache-verfehlten Adressen zuweisen und verwalten. Zuerst kann die Cache-Verfehlung während einer Leseoperation, welche mit einer ersten Adresse ADD_1 verbunden ist, erzeugt werden. In diesem Fall kann der Cache-Verwalter 215 eine erste Transaktionsidentifikation TID1 der Cache-verfehlten ersten Adresse ADD_1 zuweisen. Zweitens kann der Cache-Treffer während einer Leseoperation erzeugt werden, welche mit einer zweiten Adresse ADD_2 verbunden ist. In diesem Fall kann der Cache-Verwalter 215 keine getrennte Operation durchführen. Drittens kann die Cache-Verfehlung während einer Leseoperation erzeugt werden, welche mit einer dritten Adresse ADD3 verbunden ist. In diesem Fall kann der Cache-Verwalter 215 eine zweite Transaktionsidentifikation TID2 der Cache-verfehlten dritten Adresse ADD_3 zuweisen. Ähnlich kann der Cache-Treffer während jeder von Leseoperationen erzeugt werden, welche mit vierten und fünften Adressen ADD_4 und ADD_5 verbunden sind; wenn die Cache-Verfehlung während einer Leseoperation erzeugt wird, welche mit einer sechsten Adresse ADD_6 verbunden ist, kann der Cache-Verwalter 215 eine dritte Transaktionsidentifikation TID3 der sechsten Adresse ADD_6 zuweisen. Jede der ersten bis dritten Transaktionsidentifikationen TID1, TID2 und TID3 können implementiert werden, um monoton erhöht zu werden.
  • Das heißt, dass der Cache-Verwalter 215 Cache-verfehlte Adressen verwalten kann derart, dass Transaktionsidentifikationen TID jeweils den Cache-verfehlten Adressen zugewiesen werden, wann immer die Cache-Verfehlung erzeugt wird. In diesem Fall kann die Transaktionsidentifikation monoton zunehmen. Die Transaktionsidentifikationen können für den Prozessor 101 zusammen mit einer Gültigkeitsinformation DQ_INFO vorgesehen werden, welche anzeigt, ob der Cache-Treffer erzeugt wird.
  • In einer Ausführungsform kann der Tag „TAG” einen Abschnitt einer Adresse aufweisen, welche Daten entspricht, welche in dem flüchtigen Speicher 221 gespeichert sind. In einer Ausführungsform kann der Modulcontroller 210 das Tag „TAG” mit dem flüchtigen Speicher 221 durch die Tag-Datenleitung TDQ austauschen. In einer Ausführungsform kann, wenn Daten in den flüchtigen Speicher 221 geschrieben werden, das Tag „TAG”, welches den Daten entspricht, in den flüchtigen Speicher 221 zusammen mit den Daten unter der Steuerung des Modulcontrollers 210 geschrieben werden.
  • Im Detail können leseangeforderte Daten durch die Datenleitung DQ nach einer feststehenden Latenz RL in Antwort auf einen Lesebefehl von dem Prozessor 101 ausgegeben werden. Der Modulcontroller 210 kann die Gültigkeitsinformation DQ_INFO von Daten, welche durch die Datenleitung DQ ausgegeben werden, zu dem Prozessor 101 basierend auf einem Ergebnis einer Cache-Überprüfungsoperation senden. Die Gültigkeitsinformation DQ_INFO kann eine Gültigkeit und eine Transaktionsidentifikation TID aufweisen, welche mit Daten verbunden ist, welche durch die Datenleitung DQ ausgegeben werden. Der Prozessor 101 kann mit Cache-verfehlten Daten vorgesehen sein, welche in der Lage sind, zu einem Zeitpunkt nach der Latenz RL unter Bezugnahme auf die Gültigkeitsinformation DQ_INFO ausgegeben zu werden. Das heißt, dass der Prozessor 101 die Cache-verfehlten Daten mit Bezugnahme auf die Transaktionsidentifikation TID wiederum anfordern kann.
  • In einer Ausführungsform können der flüchtige Speicher 121 und der nichtflüchtige Speicher 223 eine n:1-Direktabbildungsrelation („n” ist eine natürliche Zahl) haben. Das heißt, dass der flüchtige Speicher 221 ein direkt abgebildeter Cache des nichtflüchtigen Speichers 223 sein kann. Beispielsweise kann ein erster flüchtiger Speicherbereich des flüchtigen Speichers 221 ersten bis n-ten nichtflüchtigen Speicherbereichen des nichtflüchtigen Speichers 223 entsprechen. In diesem Fall kann die Größe des ersten flüchtigen Speicherbereichs dieselbe sein wie diejenige jedes des ersten bis n-ten nichtflüchtigen Speicherbereichs. In einer Ausführungsform kann der erste flüchtige Speicherbereich ferner einen Bereich zum Speichern zusätzlicher Informationen (beispielsweise eines Tags, eines ECC, von Dirty-Informationen etc.) aufweisen.
  • Obwohl in 11 nicht gezeigt, kann das nichtflüchtige Speichermodul 200 ferner einen getrennten Speicher (nicht gezeigt) aufweisen. Der getrennte Speicher kann Informationen speichern, welche in den NVM-Controller 222 verwendet werden, wie beispielsweise Daten, Programme und Software. Beispielsweise kann der getrennte Speicher Informationen speichern, welche durch den NVM-Controller 222 verwaltet werden, wie beispielsweise eine Abbildungstabelle und eine Flash-Übersetzungsschicht (FTL). Alternativ kann der getrennte Speicher ein Pufferspeicher sein, welcher vorübergehend Daten speichert, welche aus dem nichtflüchtigen Speicher 223 gelesen werden, oder Daten, welche in dem nichtflüchtigen Speicher 223 zu speichern sind.
  • Untenstehend kann für eine beschreibende Zweckmäßigkeit „_v” an Elementen (beispielsweise Daten, einem Tag, einem Befehl/einer Adresse etc.), welche mit dem flüchtigen Speicher 221 verbunden sind, angebracht werden. Beispielsweise kann ein/eine VM-Befehl/Adresse, welcher/welche von dem Modulcontroller 210 ausgegeben wird, um den flüchtigen Speicher 221 zu steuern, durch „CA_v” ausgedrückt werden, und Daten, welche von dem flüchtigen Speicher 221 unter der Steuerung des Modulcontrollers 210 ausgegeben werden, können ausgedrückt werden durch „DT_v”. Detaillierter kann ein VM-Schreibbefehl zum Schreiben von Daten in dem flüchtigen Speicher 221 durch „WR_v” ausgedrückt werden, und ein VM-Lesebefehl zum Lesen von Daten aus dem flüchtigen Speicher 221 kann durch „RD_v” ausgedrückt werden.
  • Ähnlich kann „_n” an Elementen (beispielsweise Daten, einen Tag, einen Befehl/eine Adresse etc.) welche mit dem nichtflüchtigen Speicher 223 verbunden sind, angebracht werden. Beispielsweise kann ein/eine NVM-Befehl/Adresse welcher/welche von dem Modulcontroller 210 ausgegeben wird, um den nichtflüchtigen Speicher 223 zu steuern, durch „CA_n” ausgedrückt werden, und Daten, welche von dem nichtflüchtigen Speicher 123 unter der Steuerung des Modulcontrollers 210 ausgegeben werden, können durch „DT_n” ausgedrückt werden. Detaillierter kann ein NVM-Schreibbefehl zum Schreiben von Daten in den nichtflüchtigen Speicher 223 durch „WR_n” ausgedrückt werden, und ein NVM-Lesebefehl zum Lesen von Daten aus dem nichtflüchtigen Speicher 223 kann durch „RD_n” ausgedrückt werden.
  • Wie obenstehend beschrieben ist, kann das nichtflüchtige Speichermodul 200 gemäß einer Ausführungsform des erfinderischen Konzepts die Gültigkeitsinformation DQ_INFO, welche mit Daten verbunden ist, welche bei einer feststehenden Latenz RL ausgegeben werden, unter Bezugnahme auf ein Ergebnis des Durchführens einer Cache-Überprüfungsoperation hinsichtlich leseangeforderten Daten vorsehen.
  • 12 ist ein Flussdiagramm, welches eine Leseoperation des nichtflüchtigen Speichermoduls 200 der 11 veranschaulicht. Bezugnehmend auf 1, 11 und 12 gibt das nichtflüchtige Speichermodul 200 Daten und eine Gültigkeitsinformation DQ_INFO, die den Daten entspricht, in Antwort auf eine Leseanforderung von dem Prozessor 101 aus.
  • In Operation S11 kann der Prozessor 101 einen Modul-Lesebefehl und eine Adresse (RD und ADD) senden. Das nichtflüchtige Speichermodul 200 kann eine Leseoperation hinsichtlich des flüchtigen Speichers 221 in Antwort auf den empfangenen Modul-Lesebefehl und die Adresse (RD und ADD) durchführen. Beispielsweise können der Modul-Lesebefehl und die Adresse (RD und ADD) einen Lesebefehl zum Lesen von Daten aufweisen, welche in dem nichtflüchtigen Speichermodul 200 gespeichert sind, und eine Leseadresse, welche den gelesenen Daten entspricht. Das nichtflüchtige Speichermodul 200 kann Daten und einen Tag, welche in einem Abschnitt gespeichert sind, welcher der Leseadresse entspricht, aus einem Bereich des flüchtigen Speichers 221 lesen.
  • In Operation S12 kann das nichtflüchtige Speichermodul 200 eine Cache-Überprüfungsoperation zum Bestimmen eines Cache-Treffers oder einer Cache-Verfehlung basierend auf dem gelesenen Ergebnis durchführen. Wie obenstehend beschrieben ist, weist das Tag „TAG” Informationen über einen Abschnitt einer Adresse auf. Das nichtflüchtige Speichermodul 200 kann bestimmen, ob ein Cache-Treffer oder eine Cache-Verfehlung aufritt, und zwar durch ein Vergleichen des Tags „TAG” mit der empfangenen Adresse.
  • In Operation S13 verzweigt der Vorgang gemäß dem Cache-Überprüfungsergebnis. Wenn ein Abschnitt der Adresse derselbe ist wie das Tag „TAG”, kann das nichtflüchtige Speichermodul 200 bestimmen, dass der Cache-Treffer erzeugt ist. Andernfalls kann das nichtflüchtige Speichermodul 200 bestimmen, dass die Cache-Verfehlung erzeugt ist.
  • Wenn der Cache-Treffer erzeugt wird, sendet in Operation S14 das nichtflüchtige Speichermodul 200 die Daten, welche aus dem flüchtigen Speicher 221 gelesen werden und Gültigkeitsinformation DQ_INFO zu dem Prozessor 101. Die Gültigkeitsinformation DQ_INFO weist Informationen darüber auf, ob die Ausgabedaten dem Cache-Treffer oder der Cache-Verfehlung entsprechen. Der Prozessor 101 kann bestimmen, ob Daten DT_v, welche durch die Gültigkeitsinformation DQ_INFO empfangen werden, gültige Daten sind. Das heißt, dass das nichtflüchtige Speichermodul 200 den Prozessor 101 mit Informationen über den Cache-Treffer als die Gültigkeitsinformation DQ_INFO vorsehen kann, so dass der Prozessor 101 die gelesenen Daten als gültige Daten erkennen kann.
  • Wenn die Cache-Verfehlung erzeugt ist, sendet in Operation S15 das nichtflüchtige Speichermodul 200 die Gültigkeitsinformation DQ_INFO, welche anzeigt, dass Daten, welche durch die Datenleitung DQ ausgegeben werden, ungültige Daten sind, zu dem Prozessor 101. Das heißt, dass das nichtflüchtige Speichermodul 200 die Gültigkeitsinformation DQ_INFO ausgeben kann, welche die Cache-Verfehlung dem Prozessor 101 anzeigt. In diesem Fall kann das nichtflüchtige Speichermodul 200 den Prozessor 101 mit der Transaktionsidentifikation TID von Daten, welche der Cache-Verfehlung entsprechen, also zusätzliche Gültigkeitsinformation DQ_INFO vorsehen. Der Prozessor 101 kann Daten, welche Cache-verfehlt sind, später unter Bezugnahme auf die Transaktionsidentifikation TID anfordern.
  • In einer Ausführungsform kann Operation S14 durchgeführt werden, nachdem eine vorbestimmte Latenz RL von der Operation S11 verstreicht. Das heißt, dass der Prozessor 101 den Modul-Lesebefehl und die Adresse (RD und ADD) zu dem nichtflüchtigen Speichermodul 200 senden kann und die gelesenen Daten von dem nichtflüchtigen Speichermodul 100 empfangen kann, nachdem die vorbestimmte Latenz verstreicht. In diesem Fall kann die vorbestimmte Latenz eine Leselatenz RL sein. Die Leselatenz RL kann eine Zeit oder eine Taktperiode sein, welche gemäß der Betriebscharakteristik des nichtflüchtigen Speichermoduls 200 bestimmt wird. Informationen über die Leselatenz RL können in der SPD 240 gespeichert werden und können als die Vorrichtungsinformation DI für den Prozessor 101 vorgesehen sein. Der Prozessor 101 kann das nichtflüchtige Speichermodul 200 basierend auf der Leselatenz RL steuern.
  • 13 ist eine Ansicht zum Beschreiben einer Cache-Struktur des flüchtigen Speichers der 11. Für die beschreibende Zweckmäßigkeit sind Elemente, welche nicht benötigt werden, um eine Cache-Struktur des flüchtigen Speichers 221 zu beschreiben, ausgelassen. Ferner wird angenommen, dass ein Speicherbereich des nichtflüchtigen Speichers 223 in eine Mehrzahl von Bereichen NVM_0 bis NVM_5 unterteilt ist. Die Mehrzahl von Bereichen NVM_0 bis NVM_5 können Bereiche sein, welche logisch unterteilt sind. Der Speicherbereich des nichtflüchtigen Speichers 223 kann ferner einen Speicherraum sowie die ersten bis vierten Bereiche NVM_0 bis NVM_5 aufweisen.
  • Bezugnehmend auf 11 und 13 kann eine Zugriffsgeschwindigkeit des flüchtigen Speichers 221 schneller sein als diejenige des nichtflüchtigen Speichers 223. Das heißt, dass ein Abschnitt von Daten, welcher in dem nichtflüchtigen Speicher 223 gespeichert ist, in dem flüchtigen Speicher 221 gespeichert werden kann, so dass eine Geschwindigkeit, in welcher eine Zugriffsoperation gemäß einer Anforderung des Modulcontrollers 210 oder des Prozessors 101 durchgeführt wird, verbessert werden kann. Beispielsweise kann der flüchtige Speicher 221 als ein Cache-Speicher des nichtflüchtigen Speichers 223 verwendet werden. Beispielsweise kann der flüchtige Speicher 221 einen Abschnitt von Daten speichern, welche in dem nichtflüchtigen Speichern 223 gespeichert sind, und kann die gespeicherten Daten in Antwort auf eine Anforderung von dem Modulcontroller 210 oder dem Prozessor 101 ausgeben.
  • In einer Ausführungsform kann der flüchtige Speicher 221 eine direkte Abbildungsrelation mit dem nichtflüchtigen Speicher 223 haben. Beispielsweise kann der flüchtige Speicher 221 eine Mehrzahl von Cache-Leitungen CL0 bis CL3 aufweisen. Eine Cache-Leitung CL kann einen Speicherraum anzeigen, welcher gecachte Daten und einen Tag „TAG”, einen Datenfehlerkorrekturcode ECC_DT, einen Tag-Fehlerkorrekturcode ECC TAG und Dirty-Informationen DRT speichert.
  • Die Cache-Leitung kann eine minimale Zugriffseinheit einer Anforderung des Modulcontrollers 210 oder des Prozessors 101 anzeigen. Der flüchtige Speicher 221 kann eine Speicherkapazität haben, welche der Mehrzahl von Einträgen CL0 bis CL3 entspricht. Das Tag „TAG” kann wenigstens ein Abschnitt von einer Adresse sein, welche Daten DT_v entspricht, welche in demselben Eintrag gespeichert sind. Der Datenfehlerkorrekturcode ECC_DT kann ein Fehlerkorrekturcode der Daten DT_v sein, welche in demselben Eintrag gespeichert sind. Der Tag-Fehlerkorrekturcode ECC TAG kann ein Fehlerkorrekturcode des Tags „TAG” sein, welcher in demselben Eintrag gespeichert ist. Die Dirty-Information DRT kann eine Dirty-Information über die Daten DT_v, welche in demselben Eintrag gespeichert sind, anzeigen.
  • Der nichtflüchtige Speicher 223 kann die Mehrzahl von Bereichen NVM_0 bis NVM_5 aufweisen. Jeder der Mehrzahl von Bereichen NVM_0 bis NVM_5 kann eine Mehrzahl von Leitungen Line0 bis Line3 aufweisen. In einer Ausführungsform kann jede der Leitungen Line0 bis Line3 einen Speicherraum anzeigen, welcher einer Datenzugriffseinheit einer Anforderung des Prozessors 101 oder des Modulcontrollers 210 entspricht.
  • Beispielsweise kann der Speicherbereich NVM_0 die Leitungen Line0 bis Line3, welche einer Cache-Einheit entsprechen, aufweisen. Die Leitungen Line0 bis Line3 können jeweils den Cache-Leitungen CL0 bis CL3 entsprechen. Das heißt, dass die Leitung Line0 der Cache-Leitung CL0 entsprechen kann, und die Leitung Line1 der Cache-Leitung CL1 entsprechen kann. Der Speicherbereich NVM_1 kann die Cache-Leitungen Line0 bis Line3 aufweisen, welche jeweils der Mehrzahl von Cache-Leitungen CL0 bis CL3 entsprechen. Ähnlich kann jeder der Speicherbereiche NVM_2 bis NVM_5 die Leitungen Line0 bis Line3 aufweisen, welche jeweils der Mehrzahl von Cache-Leitungen CL0 bis CL3 entsprechen.
  • Wie obenstehend beschrieben ist, kann der flüchtige Speicher 221 eine direkte Abbildungsrelation mit dem nichtflüchtigen Speicher 223 haben. Die Cache-Leitung CL0 des flüchtigen Speichers 221 kann jeder der Leitungen Line0 der Mehrzahl von Bereichen NVM_0 bis NVM_5 entsprechen und kann Daten DT_v speichern, welche in einer der Leitungen Line0 der Mehrzahl von Bereichen NVM_0 bis NVM_5 gespeichert sind. In anderen Worten gesagt können die Daten DT_v, welche in der Cache-Leitung CL0 gespeichert sind, einer der Leitungen Line0 der Mehrzahl von Bereichen NVM_0 bis NVM_5 entsprechen.
  • Die Cache-Leitung Line0 kann einen Tag „TAG” aufweisen, welcher mit den gespeicherten Daten DT_v verbunden ist. In einer Ausführungsform kann das Tag „TAG” eine Information sein, welche anzeigt, ob die Daten DT_v, welche in der Cache-Leitung CL0 gespeichert sind, einer beliebigen einen der Leitungen Line0 der Mehrzahl von Bereichen NVM_0 bis NVM_5 entsprechen.
  • In einer Ausführungsform kann jede der Mehrzahl von Leitungen Line0 bis Line3 durch die Adresse ADD ausgewählt werden oder erkannt werden, welche von dem Prozessor 101 vorgesehen ist. Das heißt, dass wenigstens eine der Mehrzahl von Leitungen Line0 bis Line3 jedes der Mehrzahl von Speicherbereichen NVM_0 bis NVM_5 durch die Adresse ADD, welche von dem Prozessor 101 vorgesehen ist, ausgewählt werden kann, und eine Zugriffsoperation hinsichtlich der ausgewählten Leitung durchgeführt werden kann.
  • Jede der Mehrzahl von Cache-Leitungen CL0 bis CL3 kann durch wenigstens einen Abschnitt der Adresse ADD, welche von dem Prozessor 101 vorgesehen ist, ausgewählt oder unterschieden werden. Das heißt, dass wenigstens eine der Mehrzahl von Cache-Leitungen CL0 bis CL3 durch wenigstens einen Abschnitt der Adresse ADD, welche von dem Prozessor 101 vorgesehen ist, ausgewählt werden kann, und eine Zugriffsoperation hinsichtlich der ausgewählten Cache-Leitung durchgeführt werden kann.
  • Das Tag „TAG” kann wenigstens einen Abschnitt der Adresse ADD aufweisen, welche von dem Prozessor 101 vorgesehen ist, oder den Rest davon. Beispielsweise kann der Fall, dass wenigstens eine der Mehrzahl von Cache-Leitungen CL0 bis CL3 durch einen Abschnitt der Adresse ADD ausgewählt ist und ein Tag „TAG”_v von der ausgewählten Cache-Leitung in der Adresse ADD enthalten ist, bestimmt werden als dass ein Cache-Treffer erzeugt wird. Alternativ kann der Fall, dass wenigstens eine der Mehrzahl von Cache-Leitungen CL0 bis CL3 durch einen Abschnitt der Adresse ADD ausgewählt wird und ein Tag „TAG”_v von der ausgewählten Cache-Leitung nicht in der Adresse ADD enthalten ist, bestimmt werden als dass eine Cache-Verfehlung erzeugt wird.
  • Wie obenstehend beschrieben ist, kann das nichtflüchtige Speichermodul 200 den flüchtigen Speicher 221 als einen Cache-Speicher verwenden, wodurch die Leistungsfähigkeit des nichtflüchtigen Speichermoduls 200 verbessert wird. In diesem Fall kann das nichtflüchtige Speichermodul 200 das Auftreten eines Cache-Treffers oder einer Cache-Verfehlung basierend auf einem Tag „TAG” bestimmen, welches in dem flüchtigen Speicher 221 gespeichert ist.
  • In einer Ausführungsform wird ein Datentransaktionsverfahren zwischen dem flüchtigen Speicher 221 und dem nichtflüchtigen Speicher 223 untenstehend unter Bezugnahme auf beigefügte Zeichnungen beschrieben werden. Ausführungsformen jedoch, welche untenstehend zu beschreiben sind, sind nur Beispiele zum Beschreiben des Umfangs und Gedankens des erfinderischen Konzepts in leichter Weise, und demnach sind die Ausführungsformen nicht darauf beschränkt. Zusätzlich werden Ausführungsformen des erfinderischen Konzepts beschrieben, wenn der flüchtige Speicher 221 als ein Cache-Speicher des nichtflüchtigen Speichers 223 verwendet wird, die Ausführungsformen sind jedoch nicht darauf beschränkt.
  • 14 ist ein Zeitdiagramm zum Beschreiben einer Leseoperation der 12 im Detail. Bezugnehmend auf 14 kann das nichtflüchtige Speichermodul 200 einen Modul-Lesebefehl von dem Prozessor 101 empfangen. Beispielsweise kann das nichtflüchtige Speichermodul 200 eine erste Adresse ADD1 zu derselben Zeit mit dem Aktivbefehl ACT empfangen und kann einen Lesebefehl RD und eine zweite Adresse ADD2 empfangen.
  • Eine interne Cache-Überprüfungsoperation des nichtflüchtigen Speichermoduls 200 durch den Modulcontroller 210 kann in Antwort auf die empfangenen Signale durchgeführt werden. Beispielsweise kann der Modulcontroller 210 den/die NVM-Befehl/Adresse CA_n und den/die VM-Befehl/Adresse CA_v ausgeben. Der flüchtige Speicher 221 kann Daten, DT_v und einen Tag „TAG”_V, welche in einem Abschnitt gespeichert sind, welcher der Adresse ADD1 oder ADD2 eines Bereiches des flüchtigen Speichers 221 entspricht, in Antwort auf den/die VM-Lese-Befehl/Adresse CA_v ausgeben. Beispielsweise kann, wie obenstehend beschrieben ist, der flüchtige Speicher 221 die Daten DT_v durch die Speicherdatenleitung MDQ durch ein Treiben einer Spannung der Speicherdatenleitung MDQ auf der Basis der Daten DT_v ausgeben. Der flüchtige Speicher 221 kann das Tag „TAG”_v durch die Tag-Datenleitung TDQ durch ein Treiben einer Spannung der Tag-Datenleitung TDQ auf der Basis des Tags „TAG”_v ausgeben. Der Modulcontroller 210 kann das Tag „TAG”_v durch die Tag-Datenleitung TDQ empfangen und kann bestimmen, ob ein Cache-Treffer oder eine Cache-Verfehlung erzeugt wird, basierend auf einem Ergebnis des Vergleichens des empfangenen Tag „TAG”_v mit der Adresse ADD1 oder ADD2.
  • Daten können zu dem flüchtigen Speicher 221 durch die Datenleitung DQ ausgegeben werden, nachdem der Lesebefehl RD und die zweite Adresse ADD2 empfangen sind und eine feststehende Latenz RL verstreicht. In diesem Fall sind die Ausgabedaten Daten, welche als Cache-getroffen bestimmt werden, wenn eine Cache-Überprüfungsoperation durch den Modulcontroller 210 durchgeführt wird. Demzufolge kann der Modulcontroller 210 die Gültigkeitsinformation DQ_INFO, welche für den Prozessor 101 vorzusehen ist, über einen getrennten Pin ausgeben. Das heißt, dass die Gültigkeitsinformation DQ_INFO einen Gültigkeitsabschnitt 251 aufweisen kann, welcher anzeigt, dass Daten, welche aus dem flüchtigen Speicher 221 gelesen sind, gültige Daten sind. Die Gültigkeitsinformation DQ_INFO kann einen Transaktionsidentifikationsabschnitt 252 aufweisen, welcher später zu beschreiben ist. Wenn jedoch bestimmt wird, dass Daten gültig sind, kann er, da der Transaktionsidentifikationsabschnitt 252 unnotwendig ist, durch den Prozessor 101 ignoriert werden. Der Prozessor 101 kann bestimmen, ob Daten gültig sind, basierend auf der Gültigkeitsinformation DQ_INFO.
  • 15 ist ein Zeitdiagramm, welches eine Implementierung von Daten und Gültigkeitsinformation DQ_INFO der 14 veranschaulicht. Bezugnehmend auf 15 wird angenommen, dass Daten, welche durch den Prozessor 101 leseangefordert werden, sequenziell durch die Datenleitung DQ ausgegeben werden. Zur Erleichterung einer Beschreibung sind ein Lesebefehl, eine Adresse etc. in 15 ausgelassen. Datenstücke D1, D2, D3 und D4 werden durch eine Mehrzahl von Pins nach einer spezifischen Latenz in Antwort auf einen Lesebefehl und eine Adresse ausgegeben. In Synchronisation mit der Ausgabe der Daten kann die Gültigkeitsinformation DQ_INFO gemäß einer Ausführungsform des erfinderischen Konzepts durch einen getrennt zugeordneten Pin ausgegeben werden.
  • Die Datenstücke D1, D2, D3 und D4 können in Synchronisation mit ansteigenden und abfallenden Flanken eines Taktsignals CLK ausgegeben werden. Zusätzlich kann die Gültigkeitsinformation DQ_INFO zu dem Prozessor 101 durch den zugeordneten Pin in Synchronisation mit dem Taktsignal CLK ausgegeben werden. Die Gültigkeitsinformation DQ_INFO weist den Gültigkeitsabschnitt 251 und den Transaktionsidentifikationsabschnitt 252 auf. Wenn die Daten D1 bis D4, welche von dem flüchtigen Speicher 221 ausgegeben werden, dem Cache-Treffer entsprechen, kann der Gültigkeitsabschnitt 251 der Gültigkeitsinformation DQ_INFO, welcher einen Wert „V” hat, welcher anzeigt, dass die Daten D1 bis D4 gültig sind, ausgegeben werden. Beispielsweise kann der Gültigkeitsabschnitt 251, welcher einen logischen Wert von „1” hat, ausgegeben werden. Zusätzlich kann es kein Problem geben, auch wenn der Transaktionsidentifikationsabschnitt 252, welcher gültigen Daten entspricht, durch den Prozessor 101 ignoriert wird. Demzufolge kann der Transaktionsidentifikationsabschnitt 252, der beispielsweise einen logischen Wert von „111” hat, ausgegeben werden. In der Ausführungsform, welche in 15 veranschaulicht ist, sind die Anzahl von Bits des Gültigkeitsabschnitts 251 und die Anzahl von Bits des Transaktionsidentifikationsabschnitts 252 „1” und „3”. Die Anzahl von Bits jedoch von jedem des Gültigkeitsabschnitts 251 und des Transaktionsidentifikationsabschnitts 252 können gemäß Ausführungsformen geändert werden.
  • 16 ist ein Zeitdiagramm zum Beschreiben der Leseoperation der 12 im Detail. Die Gültigkeitsinformation DQ_INFO, welche von dem nichtflüchtigen Speichermodul 200 gemäß einer Ausführungsform des erfinderischen Konzepts ausgegeben wird, wenn die Cache-Verfehlung erzeugt wird, ist in 16 veranschaulicht. Das nichtflüchtige Speichermodul 200 kann einen Modul-Lesebefehl von dem Prozessor 101 empfangen. Beispielsweise kann das nichtflüchtige Speichermodul 200 eine erste Adresse ADD1 zu derselben Zeit mit dem Aktivbefehl ACT empfangen, und kann einen Lesebefehl RD und eine zweite Adresse ADD2 empfangen.
  • Eine interne Cache-Überprüfungsoperation des nichtflüchtigen Speichermoduls 200 durch den Modulcontroller 210 kann in Antwort auf den empfangenen Befehl und die Adresse durchgeführt werden. Die Cache-Überprüfungsoperation des nichtflüchtigen Speichermoduls 200 ist unter Bezugnahme auf 14 beschrieben und eine Beschreibung davon wird demnach ausgelassen. Der Modulcontroller 210 kann das Tag „TAG”_v, welches einer lese-angeforderten Adresse entspricht, durch die Tag-Datenleitung TDQ empfangen und kann bestimmen, ob ein Cache-Treffer oder eine Cache-Verfehlung erzeugt wird, basierend auf einem Ergebnis des Vergleichens des empfangenen Tag „TAG”_v mit der Adresse ADD1 oder ADD”.
  • Daten können zu dem flüchtigen Speicher 221 über die Datenleitung DQ ausgegeben werden, nachdem der Lesebefehl RD und die zweite Adresse ADD2 empfangen sind und eine feststehende Latenz RL verstreicht. In diesem Fall wird angenommen, dass ein Ergebnis des Durchführens der Cache-Überprüfungsoperation hinsichtlich der ausgegebenen Daten der Cache-Verfehlung entspricht. In diesem Fall kann der Modulcontroller 210 die Gültigkeitsinformation DQ_INFO durch einen separaten Pin für einen Handschlag (handshaking) mit dem Prozessor 101 ausgeben. Die Gültigkeitsinformation DQ_INFO kann einen Gültigkeitsabschnitt 261 aufweisen, welcher anzeigt, dass Daten, welche von dem flüchtigen Speicher 221 gelesen werden, gültige Daten sind. Die Gültigkeitsinformation DQ_INFO kann einen Transaktionsidentifikationsabschnitt 262 aufweisen. Der Transaktionsidentifikationsabschnitt 262 kann durch ein Nummerieren einer monotonen Zunahmeform einer Transaktion entsprechend der Cache-Verfehlung implementiert sein.
  • Der Prozessor 101 kann erkennen, dass Daten Cache-verfehlte Daten sind, basierend auf der Gültigkeitsinformation DQ_INFO. Der Prozessor 101 kann wiederum eine Datenleseoperation zu einer geeigneten Zeit basierend auf der Transaktionsidentifikation TID anfordern.
  • 17 ist ein Zeitdiagramm, welches eine Implementierung von Daten und Gültigkeitsinformation DQ_INFO der 16 veranschaulicht. Bezugnehmend auf 17 wird angenommen, dass Daten, welche durch den Prozessor 101 leseangefordert sind, sequenziell durch die Datenleitung DQ ausgegeben werden. Zur Erleichterung der Beschreibung sind ein Lesebefehl, eine Adresse etc. in 17 ausgelassen. Datenstücke D1, D2, D3 und D4 werden durch eine Mehrzahl von Pins nach einer spezifischen Latenz RL in Antwort auf einen Lesebefehl und eine Adresse ausgegeben. In Synchronisation mit der Ausgabe der Daten kann die Gültigkeitsinformation DQ_INFO gemäß einer Ausführungsform des erfinderischen Konzepts durch einen getrennt zugeordneten Pin ausgegeben werden.
  • Die Datenstücke D1, D2, D3 und D4 können in Synchronisation mit ansteigenden und abfallenden Flanken eines Taktsignals CLK ausgegeben werden. Zusätzlich kann die Gültigkeitsinformation DQ_INFO zu dem Prozessor 101 durch den zugeordneten Pin in Synchronisation mit dem Taktsignal CLK ausgegeben werden. Die Gültigkeitsinformation DQ_INFO weist den Gültigkeitsabschnitt 261 und den Transaktionsidentifikationsabschnitt 262 auf. Wenn die Daten D1 bis D4, welche von dem flüchtigen Speicher 221 ausgegeben werden, der Cache-Verfehlung entsprechen, kann der Gültigkeitsabschnitt 261 der Gültigkeitsinformation DQ_INFO, welcher einen Wert „1” hat, welcher anzeigt, dass die Daten D1 bis D4 ungültig sind, ausgegeben werden. Beispielsweise kann der Gültigkeitsabschnitt 261, welcher einen logischen Wert von „0” hat, ausgegeben werden. Ferner kann eine Transaktionsidentifikation TID, welche den Daten D1 bis D4 entspricht, welche als ungültige Daten bestimmt sind, aufgrund der Cache-Verfehlung ausgegeben werden. Wenn die Transaktionsidentifikation TID einen logischen Wert von „010” hat, kann der logische Wert von „010”, welcher der Transaktionsidentifikation TID entspricht, zu dem Prozessor 101 durch einen Pin gesendet werden, welcher für die Gültigkeitsinformation DQ_INFO vorgesehen ist.
  • Es sollte wohl verstanden werden, dass die Anzahl von Bits der Gültigkeitsinformation DQ_INFO oder die Anzahl von Bits jedes des Gültigkeitsabschnitts 261 und des Transaktionsidentifikationsabschnitts 262, welche die Gültigkeitsinformation DQ_INFO bilden, nicht auf die obige Beschreibung beschränkt ist.
  • 18 ist ein Blockschaltbild, welches andere Merkmale des Speichermoduls gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 1 und 18 kann ein nichtflüchtiges Speichermodul 300 einen Modulcontroller 310, eine heterogene Speichervorrichtung 320, einen Datenpuffer 330 und eine SPD 340 aufweisen. Der Betrieb und die Konfigurationen der heterogenen Speichervorrichtung 320, des Datenpuffers 330 und der SPD 340 sind im Wesentlichen dieselben wie diejenigen der heterogenen Speichervorrichtung 220, des Datenpuffers 230 und der SPD 240 der 11, und eine Beschreibung davon wird demnach ausgelassen.
  • Der Modulcontroller 310 kann einen/eine Modul-Befehl/Adresse CA von dem Prozessor 101 empfangen und kann die heterogene Speichervorrichtung 320 in Antwort auf den/die empfangene/empfangenen Modul-Befehl/Adresse CA steuern. Beispielsweise kann der Modulcontroller 310 die heterogene Speichervorrichtung 320 mit dem/der NVM-Befehl/Adresse CA_n und dem/der VM-Befehl/Adresse CA_v in Antwort auf den/die Modul-Befehl/Adresse CA von dem Prozessor 101 vorsehen.
  • Der Modulcontroller 310 kann bestimmen, ob der Cache-Treffer oder die Cache-Verfehlung erzeugt wird, basierend auf dem/der Modul-Befehl/Adresse CA von dem Prozessor 101 und dem Tag „TAG”. Der Modulcontroller 310 kann bestimmen, ob der Cache-Treffer oder die Cache-Verfehlung erzeugt wird durch ein Vergleichen des/der Modul-Befehl/Adresse CA von dem Prozessor 101 und dem Tag „TAG”. Um den Cache-Treffer oder die Cache-Verfehlung zu bestimmen, kann der Modulcontroller 310 einen Cache-Verwalter 315 aufweisen.
  • Der Cache-Verwalter 315 kann Transaktionsidentifikationen TID hinsichtlich der Cache-verfehlten Adressen zuordnen und verwalten. Beispielsweise kann der Cache-Verwalter 315 eine Cache-Überprüfungsoperation durchführen und kann die Transaktionsidentifikation TID einer Leseanforderung oder einer Adresse, welche der Cache-Verfehlung entspricht, als eine Konsequenz des Bestimmens zuweisen. In diesem Fall können Transaktionsidentifikationen einer monotonen Anstiegsform einer Mehrzahl von Leseanforderungen oder Adressen, welche dem Cache-Fehlschlag entsprechen, zugewiesen werden. Die Transaktionsidentifikationen TID können für den Prozessor 101 zusammen mit der Gültigkeitsinformation DQ_INFO vorgesehen sein, welche anzeigt, ob der Cache-Treffer erzeugt ist.
  • Hier kann das Tag „TAG” einen Abschnitt einer Adresse aufweisen, welcher Daten entspricht, welche in dem flüchtigen Speicher 221 gespeichert sind. In einer Ausführungsform kann der Modulcontroller 310 das Tag „TAG” mit dem flüchtigen Speicher 321 über die Tag-Datenleitung TDQ austauschen. In einer Ausführungsform kann, wenn Daten in den flüchtigen Speicher 321 geschrieben sind, das Tag „TAG”, welches den Daten entspricht, in den flüchtigen Speicher 221 zusammen mit den Daten unter Steuerung des Modulcontrollers 310 geschrieben werden.
  • Leseangeforderte Daten können durch die Datenleitung DQ nach einer feststehenden Latenz RL in Antwort auf einen Lesebefehl von dem Prozessor 101 ausgegeben werden. Der Modulcontroller 310 kann die Gültigkeitsinformation DQ_INFO von Daten, welche durch die Datenleitung DQ zu dem Prozessor 101 ausgegeben werden, basierend auf einem Ergebnis der Cache-Überprüfungsoperation senden. Die Gültigkeitsinformation DQ_INFO kann eine Gültigkeit und eine Transaktionsidentifikation TID aufweisen, welche mit Daten verbunden sind, welche durch die Datenleitung DQ ausgegeben werden. Der Prozessor 101 kann mit Cache-verfehlten Daten vorgesehen sein, welche in der Lage sind, zu einem Zeitpunkt nach der Latenz RL hinsichtlich der Gültigkeitsinformation DQ_INFO ausgegeben zu werden. Das heißt, dass der Prozessor 101 die Cache-verfehlten Daten unter Bezugnahme auf die Transaktionsidentifikation TID wiederum anfordern kann.
  • Zusätzlich kann der Modulcontroller 310 die Gültigkeitsinformation DQ_INFO von Daten, welche durch die Datenleitung DQ zu dem Prozessor 101 ausgegeben werden, basierend auf dem Cache-Überprüfungsergebnis senden. Die Gültigkeitsinformation DQ_INFO kann eine Gültigkeit und eine Transaktionsidentifikation TID aufweisen, welche mit Daten verbunden ist, welche durch die Datenleitung DQ ausgegeben werden. Der Prozessor 101 kann mit Cache-verfehlten Daten vorgesehen sein, welche in der Lage sind, zu einem Zeitpunkt nach der Latenz RL unter Bezugnahme auf die Gültigkeitsinformation DQ_INFO ausgegeben zu werden. Das heißt, dass der Prozessor 101 die Cache-verfehlten Daten unter Bezugnahme auf die Transaktionsidentifikation TID wiederum anfordern kann.
  • Der Modulcontroller 310 kann Nachrichteninformationen MSG_EN und MSG_DQ (es sei Bezug genommen auf 350) zusammen mit der Gültigkeitsinformation DQ_INFO zu dem Prozessor 101 senden. Die Gültigkeitsinformation DQ_INFO ist Information, welche in Synchronisation mit einem Befehl/einer Adresse und Daten ausgegeben wird, während die Nachrichteninformationen MSG_EN und MSG_DQ ohne Synchronisation mit dem Befehl/der Adresse und Daten ausgegeben werden. Die Nachrichteninformationen können hinsichtlich einer Leseanforderung, welche als die Cache-Verfehlung bestimmt ist, durch ein Verwenden von unidirektionalen Pins vorgesehen sein, welche eine Benachrichtigung vorsehen, dass das nichtflüchtige Speichermodul 300 bereit ist zur Ausgabe. In einer Ausführungsform kann die Nachrichteninformation 350 durch zwei Pins ausgegeben werden. Es sollte jedoch verstanden werden, dass die Nachrichteninformation 350 seriell über einen Pin ausgegeben wird. Die Nachrichteninformation 350 kann eine Transaktionsidentifikation aufweisen, welche Daten, welche in der Lage sind, ausgegeben zu werden, unter Transaktionsidentifikationen entspricht, welche vorangehend als cache-verfehlt bestimmt sind. Der Prozessor 101 kann wiederum eine Leseanforderung senden, welche einer Antwort entspricht, welche ungültige Daten anzeigt, und zwar zu dem nichtflüchtigen Speichermodul 300 unter Bezugnahme auf die Nachrichteninformation 350 (d. h. MSG_EN und MSG_DQ). Zusätzlich sollte verstanden werden, dass die Nachrichteninformation 350 (d. h. MSG_EN und MSG_DQ) ferner eine Vielfalt von Informationen aufweist, sowie die Transaktionsidentifikation TID. Beispielsweise kann die Nachrichteninformation 350 (d. h. MSG_EN und MSG_DQ) Tag-Informationen TAG aufweisen, welche mit bereitgestellten Daten verbunden sind.
  • Gemäß der Ausführungsform, welche unter Bezugnahme auf 18 beschrieben ist, kann das nichtflüchtige Speichermodul 300 die Gültigkeitsinformation DQ_INFO, welche dem Ergebnis der Cache-Überprüfungsoperation entspricht, welche hinsichtlich der Leseanforderung durchgeführt wird, in Synchronisation mit Daten ausgeben. Ferner kann das nichtflüchtige Speichermodul 300 den Prozessor 101 mit der Nachrichteninformation MSG_EN und MSG_DQ vorsehen, welche ohne Synchronisation mit Daten in einer Cache-Verfehlungssituation ausgegeben werden. Die Nachrichteninformation MSG_EN und MSG_DQ können eine Transaktionsidentifikation und dergleichen von Daten aufweisen, welche in der Lage sind, intern ausgegeben zu werden.
  • 19 ist ein Flussdiagramm, welches eine Handschlag-Prozedur zwischen dem Prozessor 101 und dem nichtflüchtigen Speichermodul 300 der 18 veranschaulicht. Bezugnehmend auf 18 und 19 gibt das nichtflüchtige Speichermodul Daten und Gültigkeitsinformation DQ_INFO, welche den Daten entspricht, in Antwort auf eine Leseanforderung von dem Prozessor 101 aus.
  • In Operation S21 sendet der Prozessor 101 einen Modul-Lesebefehl und eine Adresse (RD und ADD). Das nichtflüchtige Speichermodul 300 führt eine Leseoperation hinsichtlich des flüchtigen Speichers 321 in Antwort auf den empfangenen Modul-Lesebefehl und die Adresse (RD und ADD) durch. Beispielsweise können der Modul-Lesebefehl und die Adresse (RD und ADD) einen Lesebefehl zum Lesen von Daten aufweisen, welche in dem nichtflüchtigen Speichermodul 300 gespeichert sind, und eine Leseadresse, welche den gelesenen Daten entspricht. Das nichtflüchtige Speichermodul 300 kann Daten und ein Tag, welches in einem Abschnitt gespeichert ist, welcher der gelesenen Adresse entspricht, von einem Bereich des flüchtigen Speichers 321 lesen.
  • In Operation S22 kann das nichtflüchtige Speichermodul 300 eine Cache-Überprüfungsoperation zum Bestimmen eines Cache-Treffers oder einer Cache-Verfehlung basierend auf dem Leseergebnis durchführen. Wie obenstehend beschrieben ist, kann der Cache-Verwalter 315 die Cache-Überprüfungsaktion durchführen durch ein Vergleichen der Adresse, welche von dem Prozessor 101 empfangen wird, mit dem Tag „TAG”.
  • In Operation S23 verzweigt der Prozess gemäß dem Cache-Überprüfungsergebnis. Wenn ein Abschnitt der Adresse derselbe ist wie das Tag „TAG” kann das nichtflüchtige Speichermodul 300 bestimmen, dass der Cache-Treffer erzeugt ist. Andernfalls kann das nichtflüchtige Speichermodul 300 bestimmen, dass die Cache-Verfehlung erzeugt ist.
  • Wenn der Cache-Treffer erzeugt ist, sendet in Operation S24 das nichtflüchtige Speichermodul 300 die Daten, welche von dem flüchtigen Speicher 321 gelesen sind und Gültigkeitsinformation DQ_INFO zu dem Prozessor 101. Die Gültigkeitsinformation DQ_INFO weist Informationen auf darüber, ob die ausgegebenen Daten dem Cache-Treffer oder der Cache-Verfehlung entsprechen. Der Prozessor 101 kann bestimmen, ob Daten DT_v, welche durch die Gültigkeitsinformation DQ_INFO empfangen werden, gültige Daten sind. Das heißt, dass das nichtflüchtige Speichermodul 300 den Prozessor 101 mit Informationen über den Cache-Treffer als die Gültigkeitsinformation DQ_INFO vorsehen kann, so dass der Prozessor 101 die gelesenen Daten als gültige Daten erkennen kann. Wenn Daten, welche von dem nichtflüchtigen Speichermodul 300 vorgesehen sind, als gültige Daten überprüft werden, kann die Gesamtdatenleseoperation des Prozessors 101 enden.
  • Wenn die Cache-Verfehlung erzeugt wird, sendet in Operation S25 das nichtflüchtige Speichermodul 300 die Gültigkeitsinformation GQ_INFO, welche anzeigt, dass Daten, welche durch die Datenleitung DQ ausgegeben werden, ungültige Daten sind, zu dem Prozessor 101. Das heißt, dass das nichtflüchtige Speichermodul 300 die Gültigkeitsinformation DQ_INFO ausgegeben kann, welche die Cache-Verfehlung dem Prozessor 101 anzeigt. In diesem Fall kann das nichtflüchtige Speichermodul 300 den Prozessor 101 mit der Transaktionsidentifikation TID von Daten, welche der Cache-Verfehlung entsprechen, als zusätzliche Gültigkeitsinformation DQ_INFO vorsehen. Der Prozessor 101 kann die Transaktionsidentifikation TID in einer Tabellenform speichern.
  • Nachdem die Gültigkeitsinformation DQ_INFO, welche die Cache-Verfehlung anzeigt, für den Prozessor 101 vorgesehen ist, kann in Operation S26 das nichtflüchtige Speichermodul 300 Daten, welche nicht in dem flüchtigen Speicher 321 gecacht sind, aus dem nichtflüchtigen Speicher 323 lesen. Das nichtflüchtige Speichermodul 300 kann die gelesenen Daten in einer Cache-Leitung des flüchtigen Speichers 321 oder in einem getrennten flüchtigen Speicherbereich speichern.
  • In Operation S27 kann, wenn es bereit ist, um Daten auszugeben, welche als die Cache-Verfehlung bestimmt sind, das nichtflüchtige Speichermodul 300 die Nachrichteninformation MSG_EN und MSG_DQ zu dem Prozessor 101 senden. Beispielsweise kann das nichtflüchtige Speichermodul 300 ein Nachrichten-Aktivierungssignal MSG_EN aktivieren und kann den Prozessor 101 mit der Transaktionsidentifikation TID vorsehen, welche Daten entspricht, welche bereit sind, durch einen Nachrichten-Pin MSG_DQ ausgegeben zu werden. Die Nachrichteninformation MSG_EN und MSG_DQ kann ohne Synchronisation mit Daten vorgesehen sein.
  • In Operation S28 kann der Prozessor 101 die Nachrichteninformation MSG_EN und MSG_DQ empfangen und kann einen Lesebefehl entsprechend dazu ausgeben. Eine Adresse, welche der Transaktionsidentifikation TID entspricht, kann getrennt durch den Prozessor 101 verwaltet werden.
  • In Schritt S29 kann das nichtflüchtige Speichermodul 300 Daten ausgeben, welche durch den Prozessor 101 angefordert werden. In diesem Fall kann die Gültigkeitsinformation DQ_INFO, die eine Benachrichtigung vorsieht, dass die angeforderten Daten in dem flüchtigen Speicher 321 gecacht sind, zusammen mit Daten ausgegeben werden.
  • Es ist ein Handschlag-Verfahren zwischen dem Prozessor 101 und dem nichtflüchtigen Speichermodul 300 durch ein Verwenden der Gültigkeitsinformation DQ_INFO beschrieben, welche in Synchronisation mit Daten ausgegeben wird, und der Nachrichteninformation MSG_EN und MSG_DQ, welche ohne Synchronisation mit Daten ausgegeben wird.
  • 20 ist ein Zeitdiagramm zum Beschreiben der Handschlag-Operation der 19 im Detail. Bezugnehmend auf 20 kann in einer Cache-Verfehlungssituation das nichtflüchtige Speichermodul 300 gemäß einer Ausführungsform des erfinderischen Konzepts die Gültigkeitsinformation DQ_INFO und die Nachrichteninformation MSG_EN und MSG_DQ zu dem Prozessor 101 senden. In diesem Fall kann der Prozessor 101 wiederum Daten, welche der Cache-Verfehlung entsprechen, unter Bezugnahme auf die Gültigkeitsinformation DQ_INFO und die Nachrichteninformation MSG_EN und MSG_DQ lesen.
  • Der Prozessor 101 sieht das nichtflüchtige Speichermodul 300 mit einem Lesebefehl RD und einer Adresse ADD für eine Datenleseanforderung vor. Das nichtflüchtige Speichermodul 300 kann eine Leseoperation hinsichtlich des flüchtigen Speichers 300 und 120 in Antwort auf den empfangenen Lesebefehl RD und die Adresse ADD durchführen. Im Detail kann der Cache-Verwalter 315 in dem Modulcontroller 310 eine interne Cache-Überprüfungsoperation in Antwort auf den empfangenen Befehl und die Adresse durchführen. Die Cache-Überprüfungsoperation des nichtflüchtigen Speichermoduls 300 ist unter Bezugnahme auf 14 beschrieben und eine Beschreibung davon wird demnach ausgelassen. Der Modulcontroller 310 kann das Tag „TAG”_v, welches einer Leseanforderungsadresse entspricht, durch die Tag-Datenleitung TDQ empfangen und kann bestimmen, ob ein Cache-Treffer oder eine Cache-Verfehlung erzeugt wird, basierend auf einem Ergebnis des Vergleichens des empfangenen Tag „TAG”_v mit der Adresse ADD.
  • Erste Daten DATA_1 können zu dem flüchtigen Speicher 321 durch die Datenleitung DQ ausgegeben werden, nachdem der Lesebefehl RD und die Adresse ADD empfangen sind und eine spezifische Latenz RL verstreicht. In diesem Fall wird angenommen, dass ein Ergebnis des Durchführens durch den Modulcontroller 310 der Cache-Überprüfungsoperation hinsichtlich der ersten Daten DATA_1 der Cache-Verfehlung entspricht. In diesem Fall kann der Modulcontroller 310 die Gültigkeitsinformation DQ_INFO für einen Handschlag mit dem Prozessor 101 ausgeben. Die Gültigkeitsinformation DQ_INFO kann einen Gültigkeitsabschnitt (d. h. „I”) 361 aufweisen, welcher anzeigt, dass die ersten Daten DATA_1 ungültige Daten sind. Die Gültigkeitsinformation DQ_INFO kann ferner einen Transaktionsidentifikationsabschnitt (d. h. TID) 362 haben. Der Transaktionsidentifikationsabschnitt 362 kann durch ein Nummerieren einer monotonen Anstiegsform einer Transaktion entsprechend der Cache-Verfehlung implementiert werden.
  • Der Prozessor 101 kann erkennen, dass die ersten Daten DATA_1 Cache-verfehlte ungültige Daten sind, basierend auf der Gültigkeitsinformation DQ_INFO. Der Prozessor 101 kann Gesamtinformationen über die Cache-verfehlte Leseanforderung unter Bezugnahme auf die Transaktionsidentifikation TID verwalten.
  • Nach dem Senden der Gültigkeitsinformation DQ_INFO kann das nichtflüchtige Speichermodul 300 intern auf den nichtflüchtigen Speicher 323 zugreifen, um die cache-verfehlten Daten zu lesen. Wenn es bereit ist, die cache-verfehlten Daten auszugeben, kann das nichtflüchtige Speichermodul 300 die Nachrichteninformation MSG_EN und MSG_DQ zu dem Prozessor 101 senden. Die Nachrichteninformation MSG_EN und MSG_DQ kann durch eine Signalleitung oder durch ein Verwenden eines getrennten Pins zum Ausgeben des Nachrichten-Aktivierungssignals MSG_EN und des Nachrichten-Datensignals MSG_DQ vorgesehen sein. Wenn das Nachrichten-Aktivierungssignal MSG_EN und das Nachrichten-Datensignal MSG_DQ durch ein Verwenden des getrennten Pins vorgesehen sind, kann das Nachrichten-Datensignal MSG_DQ eine Transaktionsidentifikation TID, welche Daten entspricht, welche bereit zur Ausgabe sind, aufweisen. Im Gegensatz zu der Gültigkeitsinformation DQ_INFO, welche in Synchronisation mit Daten ausgegeben wird, kann die Nachrichteninformation MSG_EN und MSG_DQ ohne Synchronisation mit Daten ausgegeben werden. Das heißt, dass die Nachrichteninformation MSG_EN und MSG_DQ ausgegeben werden kann, wenn das nichtflüchtige Speichermodul 300 die cache-verfehlten Daten abruft und die abgerufenen Daten zum Ausgeben bereit sind.
  • Der Prozessor 101 kann den Lesebefehl RD und die Adresse ADD zu dem nichtflüchtigen Speichermodul 300 in Antwort auf eine Ausgabe der Nachrichteninformation MSG_EN und MSG_DQ wiederum senden. In diesem Fall können der Lesebefehl RD und die Adresse ADD auf der Basis der Transaktionsidentifikation TID erzeugt werden, welche in der Nachrichteninformation MSG_EN und MSG_DQ enthalten sind.
  • Das nichtflüchtige Speichermodul 300 kann die Cache-Überprüfungsoperation hinsichtlich des flüchtigen Speichers 321 in Antwort auf den empfangenen Lesebefehl RD und die Adresse ADD durchführen. Wenn der Cache-Treffer erzeugt wird, kann das nichtflüchtige Speichermodul 300 die Gültigkeitsinformation DQ_INFO in Synchronisation mit zweiten Daten DATA_2 ausgeben, welche nach der Leselatenz RL ausgegeben werden. In diesem Fall kann die ausgegebene Gültigkeitsinformation DQ_INFO einen Gültigkeitsabschnitt 351 aufweisen, was bedeutet, dass die zweiten Daten DATA_2 gültig sind. In dem Cache-Treffer kann, da ein Transaktionsidentifikationsabschnitt 352 bedeutungslos ist, dieser in einem Dummy-Zustand vorgesehen sein.
  • Es wird ein Verfahren zum Ausgeben der Gültigkeitsinformation DQ_INFO in Synchronisation mit Daten und der Nachrichteninformation MSG_EN und MSG_DQ ohne Synchronisation mit Daten beschrieben, wenn eine Leseoperation hinsichtlich des nichtflüchtigen Speichermoduls 300 angefordert ist. Der Prozessor 101 kann, dass die synchronisierten und ausgegebenen Daten ungültige Daten sind, auf der Basis der Gültigkeitsinformation DQ_INFO erkennen und kann eine Transaktionsidentifikation empfangen. Der Prozessor 101 kann eine Transaktionsidentifikation TID von Daten, welche bereit zur Ausgabe sind, durch die Nachrichteninformation MSG_EN und MSG_DQ überprüfen und kann eine Leseoperation, welche mit Daten verbunden ist, welche aufgrund der Cache-Verfehlung nicht erlangt werden, wiederum durchführen.
  • 21 ist ein Schaltbild, welches das Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 1 und 21 kann ein nichtflüchtiges Speichermodul 400 einen Modulcontroller 410, eine heterogene Speichervorrichtung 420, einen Datenpuffer 430 und eine SPD 440 aufweisen. Hier sind der Betrieb und Konfigurationen der heterogenen Speichervorrichtung 420, des Datenpuffers 430 und der SPD 440 im Wesentlichen dieselben wie diejenigen der heterogenen Speichervorrichtung 220, des Datenpuffers 230 und der SPD 440 der 11, und eine Beschreibung davon wird demnach untenstehend ausgelassen.
  • Der Modulcontroller 410 kann einen/eine Modul-Befehl/Adresse CMD/ADD von dem Prozessor 101 empfangen und kann die heterogene Speichervorrichtung 420 in Antwort auf den/die empfangene Modul-Befehl/Adresse CMD/ADD steuern. Beispielsweise kann der Modulcontroller 410 die heterogene Speichervorrichtung 420 mit dem/der NVM-Befehl/Adresse CA_n und dem/der VM-Befehl/Adresse CA_v in Antwort auf den/die Modul-Befehl/Adresse CMD/ADD von dem Prozessor 101 vorsehen.
  • Der Modulcontroller 410 kann bestimmen, ob der Cache-Treffer oder die Cache-Verfehlung erzeugt wird, basierend auf dem/der Modul-Befehl/Adresse CMD/ADD von dem Prozessor 101 und einem Tag „TAG”. Der Modulcontroller 410 kann bestimmen, ob der Cache-Treffer oder die Cache-Verfehlung erzeugt wird basierend auf dem/der Modul-Befehl/Adresse CMD/ADD von dem Prozessor 101 und dem Tag „TAG”. Um den Cache-Treffer oder die Cache-Verfehlung zu bestimmen, kann der Modulcontroller 410 einen Cache-Verwalter 415 aufweisen.
  • Der Cache-Verwalter 415 kann Transaktionsidentifikationen TID in Hinsicht auf cache-verfehlte Adressen zuweisen und verwalten. Beispielsweise kann der Cache-Verwalter 415 eine Cache-Überprüfungsoperation durchführen und kann die Transaktionsidentifikation TID einer Leseanforderung oder einer Adresse, welche der Cache-Verfehlung entspricht, als eine Konsequenz des Bestimmens zuweisen. In diesem Fall können Transaktionsidentifikationen einer monotonen Anstiegsform einer Mehrzahl von Leseanforderungen oder Adressen, welche der Cache-Verfehlung entsprechen, zugewiesen werden. Die Transaktionsidentifikationen TID können für den Prozessor 101 zusammen mit der Gültigkeitsinformation DQ_INFO vorgesehen sein, welche anzeigt, ob der Cache-Treffer erzeugt wird.
  • Hier kann das Tag „TAG” einen Abschnitt einer Adresse ADD aufweisen, welche Daten entspricht, welche in dem flüchtigen Speicher 421 gespeichert sind. In einer Ausführungsform kann der Modulcontroller 410 das Tag „TAG” mit dem flüchtigen Speicher 421 durch die Tag-Datenleitung TDQ austauschen. In einer Ausführungsform kann, wenn Daten in den flüchtigen Speicher 421 geschrieben werden, das Tag „TAG”, welches den Daten entspricht, in den flüchtigen Speicher 221 zusammen mit den Daten unter der Steuerung des Modulcontrollers 410 geschrieben werden.
  • Leseangeforderte Daten können durch die Datenleitung DQ nach einer spezifischen Latenz RL in Antwort auf einen Lesebefehl von dem Prozessor 101 ausgegeben werden. Der Modulcontroller 410 kann die Gültigkeitsinformation DQ_INFO von Daten, welche durch die Datenleitung DQ ausgegeben werden, zu dem Prozessor 101 basierend auf dem Cache-Überprüfungsergebnis senden. Die Gültigkeitsinformation DQ_INFO kann eine Gültigkeit und eine Transaktionsidentifikation TID aufweisen, welche mit einer Datenausgabe durch die Datenleitung DQ verbunden ist. Zusätzlich kann, wenn die Cache-Verfehlung erzeugt wird, der Modulcontroller 410 die Nachrichteninformation MSG_EN, MSG_DQ ohne Synchronisation mit Daten zusammen mit der Gültigkeitsinformation DQ_INFO, welche in Synchronisation mit Daten ausgegeben wird, ausgeben. Zusätzlich kann der Modulcontroller 410 den Prozessor 101 mit Cache-Information Cache_INFO in Synchronisation mit der Gültigkeitsinformation DQ_INFO vorsehen. Die Cache-Information Cache_INFO kann ein Tag „TAG” der leseangeforderten Daten oder Dirty-Informationen einer leseangeforderten Cache-Leitung aufweisen. Es sollte verstanden werden, dass der Modulcontroller 410 einen getrennten Pin hat, um die Cache-Information Cache INFO auszugeben.
  • Merkmale der nichtflüchtigen Speichermodule 100, 200 und 300 gemäß Ausführungsformen des erfinderischen Konzepts werden beschrieben. Hier wird das Handschlag-Verfahren gemäß einer Ausführungsform des erfinderischen Konzepts durch ein Verwenden eines Beispiels beschrieben, in dem die flüchtigen Speicher 121, 221 und 321 als ein Cachespeicher verwendet werden. Ausführungsformen des erfinderischen Konzepts sind jedoch nicht darauf beschränkt. In einem Speichermodul, welches Speicher aufweist, deren Zugriffsgeschwindigkeiten unterschiedlich voneinander sind, können Merkmale des erfinderischen Konzepts auf alle Speichermodule anwendbar sein, welche denselben Leselatenz-Standard erfüllen.
  • 22 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Zur Erleichterung der Veranschaulichung sind Elemente (beispielsweise ein Modulcontroller und eine SPD) mit Ausnahme einer heterogenen Speichervorrichtung 520 und einem Datenpuffer 530 ausgelassen. Ebenso ist für eine beschreibende Zweckmäßigkeit eine detaillierte Beschreibung, welche mit den oben beschriebenen Elementen verbunden ist, ausgelassen. Bezugnehmend auf 22 weist das nichtflüchtige Speichermodul 500 die heterogene Speichervorrichtung 520 und den Datenpuffer 530 auf.
  • Im Gegensatz zu der heterogenen Speichervorrichtung 100 der 2 weist die heterogene Speichervorrichtung 520 der 22 eine Mehrzahl von flüchtigen Speichern 521, einen NVM-Controller 522 und eine Mehrzahl von nichtflüchtigen Speichern 523 auf. Jeder der flüchtigen Speicher 521, des NVM-Controllers 522 und der nichtflüchtigen Speicher 523 kann mit einem getrennten Die implementiert sein, einem getrennten Chip oder einem getrennten Gehäuse. Jeder der flüchtigen Speicher 521, des NVM-Controllers 522 und der nichtflüchtigen Speicher 523 der nichtflüchtigen Speichervorrichtung 520 kann mit einem getrennten Chip implementiert sein, und die getrennten Chips können in einem Gehäuse durch ein Multi-Chip-Package (MCP) implementiert sein.
  • Jeder der Mehrzahl von flüchtigen Speichern 521 ist konfiguriert, um die Speicherdatenleitung MDQ mit dem NVM-Controller 522 gemeinsam zu verwenden. Beispielsweise kann ein erster flüchtiger Speicher VM1 die erste Speicherdatenleitung MDQ1 mit dem NVM-Controller 522 gemeinsam verwenden. Die erste Speicherdatenleitung MDQ1 kann mit dem Datenpuffer 530 verbunden sein. In einer Ausführungsform kann die erste Speicherdatenleitung MDQ1 acht Leitungen aufweisen. Ein n-ter flüchtiger Speicher VMn kann eine n-te Speicherdatenleitung MDQn mit dem NVM-Controller 522 gemeinsam verwenden. Die n-te Speicherdatenleitung MDQn kann mit dem Datenpuffer 530 verbunden sein. In einer Ausführungsform kann die n-te Speicherdatenleitung MDQn acht Leitungen aufweisen. Jeder der Mehrzahl von flüchtigen Speichern 521 kann eine entsprechende eine der Speicherdatenleitungen MDQ1 bis MDQn mit dem NVM-Controller 522 gemeinsam verwenden, und die Mehrzahl von Speicherdatenleitungen MDQ1 bis MDQn kann mit einem Datenpuffer 530 verbunden sein.
  • Der Datenpuffer 530 kann mit dem Prozessor 101 (es sei Bezug genommen auf 1) durch die Datenleitung DQ verbunden sein. In diesem Fall kann die Datenleitung DQ Leitungen aufweisen, deren Anzahl gemäß der Anzahl der Speicherdatenleitungen MDQ1 bis MDQn bestimmt wird.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 500 der 22 gemäß einem Betriebsverfahren arbeiten, welches unter Bezugnahme auf 3 bis 21 beschrieben ist. Beispielsweise kann zu einer ersten Zeitwahl, wenn der Aktivbefehl ACT n empfangen wird, das nichtflüchtige Speichermodul 500 eine Adresse, welche mit den flüchtigen Speichern 521 und den nichtflüchtigen Speichern 523 verbunden ist, durch Adressleitungen empfangen. Zu einer zweiten Zeitwahl kann, wenn ein Befehl CMD0 bis CMD2 empfangen wird, das nichtflüchtige Speichermodul 500 eine Adresse, welche mit den flüchtigen Speichern 521 und den nichtflüchtigen Speichern 523 verbunden ist, durch einige der Adressleitungen empfangen, und kann eine nichtflüchtige erweiterte Adresse, welche mit den flüchtigen Speichern 521 und den nichtflüchtigen Speichern 523 verbunden ist, durch eine Option oder reservierte Leitungen der Adressleitungen empfangen.
  • 23 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Zur beschreibenden Zweckmäßigkeit ist eine Beschreibung, welche mit Elementen verbunden ist, welche unter Bezugnahme auf 22 beschrieben sind, ausgelassen. Bezugnehmend auf 23 weist das nichtflüchtige Speichermodul 600 eine heterogene Speichervorrichtung 620 und einen Datenpuffer 630 auf. Die heterogene Speichervorrichtung 620 weist eine Mehrzahl von flüchtigen Speichern 621, einen NVM-Controller 622 und eine Mehrzahl von nichtflüchtigen Speichern 623 auf.
  • Im Gegensatz zu der heterogenen Speichervorrichtung 520 der 22 weist die heterogene Speichervorrichtung 620 einen dedizierten Spülungskanal FC (Flush-Channel) auf. Der dedizierte Spülungskanal FC sieht einen Datenübertragungsweg zwischen jedem der flüchtigen Speicher 621 und dem NVM-Controller 622 vor. Das nichtflüchtige Speichermodul 600 kann eine Spülungs-Operation des Schreibens von Daten, welche in den flüchtigen Speichern 621 gespeichert sind, zu den nichtflüchtigen Speichern 623 durchführen. Das nichtflüchtige Speichermodul 600 kann die heterogene Speichervorrichtung 620 steuern derart, dass Daten von den flüchtigen Speichern 621 für den NVM-Controller 622 durch den dedizierten Spülungskanal FC vorgesehen sind.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 600 der 23 gemäß einem Betriebsverfahren arbeiten, welches unter Bezugnahme auf 3 bis 21 beschrieben ist.
  • 24 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 24 weist ein nichtflüchtiges Speichermodul 700 einen Modulcontroller MC, eine Mehrzahl von heterogenen Speichervorrichtungen HMD, eine Mehrzahl von Datenpuffern DB, eine SPD und einen TAG-dedizierten flüchtigen Speicher TVM auf. In einer Ausführungsform kann das nichtflüchtige Speichermodul 700 die Form eines lastreduzierten Dual-In-Line-Speichermoduls (LRDIMM) haben. Zur beschreibenden Zweckmäßigkeit ist eine duplizierte Beschreibung von oben beschriebenen Elementen ausgelassen.
  • Wie obenstehend beschrieben ist, empfängt der Modulcontroller MC einen/eine Modul-Befehl/Adresse CA von dem Prozessor 101 (es sei Bezug genommen auf 1) und gibt den/die NVM-Befehl/Adresse CA_n und den/die VM-Befehl/Adresse CA_v in Antwort auf den/die empfangenen Modul-Befehl/Adresse CA aus. Der/die NVM-Befehl/Adresse CA_n und der/die VM-Befehl/Adresse CA_v können für die heterogenen Speichervorrichtungen HMD durch verschiedene Busse vorgesehen sein.
  • Jede der Mehrzahl von heterogenen Speichervorrichtungen HMD kann mit einem getrennten Gehäuse vorgesehen sein und kann eine der heterogenen Speichervorrichtungen 100 bis 600 sein, welche unter Bezugnahme auf 1 bis 22 beschrieben sind. Wie obenstehend beschrieben ist, kann jede der Mehrzahl von heterogenen Speichervorrichtungen HMD in Antwort auf den/die NVM-Befehl/Adresse CA_n und den/die VM-Befehl/Adresse CA_v von dem Modulcontroller MC arbeiten. In einer Ausführungsform kann der/die NVM-Befehl/Adresse CA_n für einen NVM-Controller vorgesehen sein, welcher in jeder heterogenen Speichervorrichtung HMD vorgesehen ist, und der/die VM-Befehl/Adresse CA_v kann für einen flüchtigen Speicher und einen NVM-Controller vorgesehen sein, welche in jeder heterogenen Speichervorrichtung HMD enthalten sind.
  • Die SPD kann die Vorrichtungsinformation DI über das nichtflüchtige Speichermodul 700 aufweisen und kann die Vorrichtungsinformation DI für den Prozessor 101 vorsehen (es sei Bezug genommen auf 1).
  • Der Tag-dedizierte flüchtige Speicher TVM kann in Antwort auf den/die VM-Befehl/Adresse CA_v und dem Modulcontroller MC arbeiten. Der Tag-dedizierte flüchtige Speicher TVM kann Tags TAG speichern, welche Datenstücken zugeordnet sind, welche in flüchtigen Speichern der heterogenen Speichervorrichtungen HMD gespeichert sind. Der Tag-dedizierte flüchtige Speicher TVM kann einen Tag „TAG” durch die Tag-Datenleitung TDQ senden und empfangen. In einer Ausführungsform kann die Tag-Datenleitung TDQ durch den Modulcontroller MC, die Mehrzahl von heterogenen Speichervorrichtungen HMD und den Tag-dedizierten flüchtigen Speicher TVM gemeinsam verwendet werden.
  • Obwohl in 24 nicht gezeigt, kann der Tag-dedizierte flüchtige Speicher TVM konfiguriert sein, um ähnlich zu der heterogenen Speichervorrichtung HMD zu sein. Beispielsweise kann ein flüchtiger Speicher, welcher in wenigstens einer der Mehrzahl von heterogenen Speichervorrichtungen HMD enthalten ist, als der Tag-dedizierte flüchtige Speicher TVM verwendet werden.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 700 der 24 gemäß einem Betriebsverfahren arbeiten, welches unter Bezugnahme auf 3 bis 21 beschrieben ist.
  • 25 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Für eine beschreibende Zweckmäßigkeit ist eine Beschreibung der oben beschriebenen Elemente ausgelassen. Bezugnehmend auf 25 kann ein nichtflüchtiges Speichermodul 800 den Modulcontroller MC, eine Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m, erste und zweite NVM-Controller 822a und 822b, eine Mehrzahl von nichtflüchtigen Speichern NVM11 bis NVM1k und NVM21 bis NVM2i, den Tag-dedizierten flüchtigen Speicher TVM, die SPD und die Mehrzahl von Datenpuffern DB aufweisen. In einer Ausführungsform kann das nichtflüchtige Speichermodul 800 der 25 eine LRDIMM-Struktur haben.
  • Einige (beispielsweise VM11 bis VM1n) der Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m können konfiguriert sein, um Speicherdatenleitungen MDQ mit dem ersten NVM-Controller 822a gemeinsam zu verwenden. Die verbleibenden flüchtigen Speicher VM21 bis VM2m können konfiguriert sein, um die Speicherdatenleitungen MDQ mit dem zweiten NVM-Controller 822b gemeinsam zu verwenden. Jeder der Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m kann konfiguriert sein, um die Speicherdatenleitung MDQ mit einem entsprechenden einen der Mehrzahl von Datenpuffern DB gemeinsam zu verwenden.
  • Einige (beispielsweise NVM11 bis NVM1k) der Mehrzahl von nichtflüchtigen Speichern NVM11 bis NVM1k und NVM21 bis NVM2i) können konfiguriert sein, um in Antwort auf die Steuerung des ersten NVM-Controllers 822a zu arbeiten. Die verbleibenden nichtflüchtigen Speicher NVM21 bis NVM2i können konfiguriert sein, um in Antwort auf eine Steuerung des zweiten NVM-Controllers 822b zu arbeiten.
  • Der Tag-dedizierte flüchtige Speicher TVM kann konfiguriert sein, um die Tag-Datenleitung TDQ mit dem Modulcontroller MC, dem ersten NVM-Controller 822a und dem zweiten NVM-Controller 822b gemeinsam zu verwenden.
  • In einer Ausführungsform kann jedes von Elementen, welche in 25 veranschaulicht sind, mit einer Mehrzahl von Halbleiterchips implementiert sein, und wenigstens einige der Halbleiterchips können in einem Gehäuse implementiert sein. Beispielsweise kann jeder der Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m, der Mehrzahl von nichtflüchtigen Speichern NVM11 bis NVM1k und NVM21 bis NVM2i, der erste NVM-Controller 822a, und der zweite NVM-Controller 822b mit getrennten Halbleiterchips implementiert sein. Einige der Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m, der Mehrzahl von nichtflüchtigen Speichern NVM11 bis NVM1k und NVM21 bis NVM2i, der erste NVM-Controller 822a und der zweite NVM-Controller 822b können in einem Gehäuse implementiert sein.
  • Beispielsweise können einige (beispielsweise VM11 bis VM1n) der Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m in einem Gehäuse implementiert sein, und der erste NVM-Controller 822a und einige (beispielsweise NVM11 bis NVM1k) der Mehrzahl von nichtflüchtigen Speichern NVM11 bis NVM1k und NVM21 bis NVM2i können in einem anderen Gehäuse implementiert sein.
  • In einer Ausführungsform kann der Tag-dedizierte flüchtige Speicher TVM eine Mehrzahl von Halbleiterchips aufweisen. Beispielsweise kann der Tag-dedizierte flüchtige Speicher TVM eine Mehrzahl von Tag-dedizierten flüchtigen Speicherchips aufweisen, von welchen jeder denselben Tag, ECC und Dirty-Information speichert. In diesem Fall kann es, auch wenn ein Betrieb eines beliebigen Tag-dedizierten flüchtigen Speicherchips abnormal ist, möglich sein, Tag-Informationen, ECC-Informationen und Dirty-Information durch einen anderen Tag-dedizierten flüchtigen Speicher normal zu schreiben oder auszugeben. In einer Ausführungsform kann ein Gehäuse, in welchem der Tag-dedizierte flüchtige Speicher TVM enthalten ist, unterschiedlich von einem Gehäuse sein, in welchem andere Elemente enthalten sind. Alternativ kann der Tag-dedizierte flüchtige Speicher TVM in einem Gehäuse implementiert sein, in welchem wenigstens einige andere Elemente enthalten sind.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 800 der 25 gemäß einem Betriebsverfahren arbeiten, welches unter Bezugnahme auf 3 bis 21 beschrieben ist.
  • 26 ist ein Blockschaltbild, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 26 kann ein nichtflüchtiges Speichermodul 900 den Modulcontroller MC, eine Mehrzahl von flüchtigen Speichern VM, einen NVM-Controller 922, nichtflüchtige Speicher NVM, den Tag-dedizierten flüchtigen Speicher TVM, die SPD und die Mehrzahl von Datenpuffern DB aufweisen. Für eine beschreibende Zweckmäßigkeit ist eine detaillierte Beschreibung der oben beschriebenen Elemente ausgelassen. In einer Ausführungsform kann das nichtflüchtige Speichermodul 900 der 26 eine LRDIMM-Struktur haben.
  • Im Gegensatz zu dem nichtflüchtigen Speichermodul 800 der 25 kann das nichtflüchtige Speichermodul 900 der 26 die nichtflüchtigen Speicher NVM durch einen NVM-Controller 922 steuern. Das heißt, dass jeder der Mehrzahl von flüchtigen Speichern VM konfiguriert ist, um eine Speicherdatenleitung MDQ mit dem NVM-Controller 922 gemeinsam zu verwenden.
  • Der Tag-dedizierte flüchtige Speicher TVM ist konfiguriert, um die Tag-Datenleitung TDQ mit dem Modulcontroller MC und dem NVM-Controller 922 gemeinsam zu verwenden. Wie obenstehend beschrieben ist, kann auf der Basis des/der VM-Befehls/Adresse CA_v der Tag-beschriebene flüchtige Speicher TVM ein Tag „TAG” speichern oder kann ein Tag „TAG”, welches darin gespeichert ist, ausgeben.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 900 der 26 gemäß einem Betriebsverfahren, welches unter Bezugnahme auf 3 bis 21 beschrieben ist, arbeiten.
  • 27 ist ein Blockschaltbild, welches ein nichtflüchtiges Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 1 und 27 kann ein nichtflüchtiges Speichermodul 1000 den Modulcontroller MC eine Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m, erste und zweite NVM-Controller 1022a und 1022b, eine Mehrzahl von nichtflüchtigen Speichern NVM11 bis NVM1k und NVM21 bis NVM2i, den Tag-dedizierten flüchtigen Speicher TVM, die SPD, die Mehrzahl von Datenpuffern DB und eine Tag-Steuerschaltung TC aufweisen. Zur beschreibenden Zweckmäßigkeit ist eine Beschreibung der oben erwähnten Elemente ausgelassen. In einer Ausführungsform kann das nichtflüchtige Speichermodul 1000 der 27 eine LRPIMM-Struktur haben.
  • Im Gegensatz zu den nichtflüchtigen Speichermodulen 700, 800 und 900 der 24 bis 26 kann das nichtflüchtige Speichermodul 1000 der 27 ferner die Tag-Steuerschaltung TC aufweisen. Die Steuerschaltung TC ist konfiguriert, um die Tag-Datenleitung TDQ mit dem Tag-dedizierten flüchtigen Speicher TVM gemeinsam zu verwenden. Das heißt, dass die Tag-Steuerschaltung TC ein Tag „TAG” von dem Tag-dedizierten flüchtigen Speicher TVM über die Tag-Datenleitung TDQ empfangen kann, oder das Tag „TAG” zu dem Tag-dedizierten flüchtigen Speicher TVM durch die Tag-Datenleitung TDQ senden kann.
  • Der Modulcontroller MC kann die Tag-Steuerschaltung TC steuern, um zu bestimmen, ob ein Cache-Treffer oder eine Cache-Verfehlung erzeugt ist, und die Tag-Steuerschaltung TC kann das Bestimmungsergebnis als Cache-Information INFO ausgeben. Beispielsweise kann die Tag-Steuerschaltung TC das Tag „TAG” von dem Tag-dedizierten flüchtigen Speicher TVM unter Steuerung des Modulcontrollers MC empfangen. Die Tag-Steuerschaltung TC kann bestimmen, ob die Cache-Verfehlung oder der Cache-Treffer erzeugt ist, durch ein Vergleichen eines Tag „TAG” (oder einer Adresse ADD) von dem Modulcontroller MC mit einem Tag „TAG” von dem Tag-dedizierten flüchtigen Speicher TVM.
  • In einer Ausführungsform kann die Tag-Steuereinheit TC in Software oder Hardware implementiert sein und die Tag-Steuerschaltung TC kann in dem Modulcontroller MC enthalten sein oder kann in jedem des ersten und zweiten NVM-Controller 1022a und 1022b enthalten sein.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 1000 der 27 gemäß einem Betriebsverfahren, welches unter Bezugnahme auf 3 bis 21 beschrieben ist, arbeiten.
  • 28 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 28 weist ein nichtflüchtiges Speichermodul 1100 den Modulcontroller MC, die Mehrzahl von heterogenen Speichern HMD, den Tag-dedizierten flüchtigen Speicher TVM und die SPD auf. Für die beschreibende Zweckmäßigkeit ist eine detaillierte Beschreibung der oben erwähnten Elemente ausgelassen.
  • Im Gegensatz zu dem nichtflüchtigen Speichermodul 700 der 24 weist das nichtflüchtige Speichermodul 1100, welches in 28 veranschaulicht ist, keine Mehrzahl von Datenpuffern auf. Das heißt, dass das nichtflüchtige Speichermodul 1100 eine registrierte DIMM(RDIMM)-Struktur haben kann.
  • Jeder der Mehrzahl von heterogenen Speichern HMD ist direkt mit der Datenleitung DQ verbunden. In einer Ausführungsform kann in jeder der Mehrzahl von heterogenen Speichern HMD ein NVM-Controller, welcher einen nichtflüchtigen Speicher und einen flüchtigen Speicher steuert, konfiguriert sein, um die Datenleitung DQ gemeinsam zu verwenden.
  • In einer Ausführungsform kann der Prozessor 101 (es sei Bezug genommen auf 1) die Vorrichtungsinformation DI von der SPD des nichtflüchtigen Speichermoduls 1100 empfangen und kann das nichtflüchtige Speichermodul 1100 basierend auf der empfangenen Vorrichtungsinformation DI steuern. In diesem Fall kann die Vorrichtungsinformation DI die oben beschriebene Betriebsinformation des nichtflüchtigen Speichermoduls 1100, wie beispielsweise eine Leselatenz RL und eine Schreiblatenz WL aufweisen. Das heißt, dass, auch wenn ein flüchtiger Speicher und ein NVM-Controller, welcher in jeder heterogenen Speichervorrichtung HMD enthalten ist, eine Datenleitung DQ gemeinsam verwenden und Daten miteinander durch die Datenleitung DQ unabhängig von einer Anforderung des Prozessors 101 austauschen, der Prozessor 101, da der Prozessor 101 das nichtflüchtige Speichermodul 1100 basierend auf der Vorrichtungsinformation steuert, normal eine Lese- oder Schreiboperation hinsichtlich des nichtflüchtigen Speichermoduls 1100 durchführen kann.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 1100 der 28 gemäß einem Betriebsverfahren arbeiten, welches unter Bezugnahme auf 3 bis 21 beschrieben ist.
  • 29 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 29 weist ein nichtflüchtiges Speichermodul 1200 den Modulcontroller MC, die Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m, erste und zweite NVM-Controller 1222a und 1222b, die Mehrzahl von nichtflüchtigen Speichern NVM11 bis NVM1k und NVM21 bis NVM2i, den Tag-dedizierten flüchtigen Speicher TVM und die SPD auf. Zur beschreibenden Zweckmäßigkeit ist eine detaillierte Beschreibung der oben beschriebenen Elemente ausgelassen.
  • Im Gegensatz zu dem nichtflüchtigen Speichermodul 800 der 25 kann das nichtflüchtige Speichermodul 1200 der 29 keine Mehrzahl der Datenpuffer DB aufweisen. Das heißt, dass das nichtflüchtige Speichermodul 1200 eine RDIMM-Struktur haben kann. In diesem Fall können einige (beispielsweise VM11 bis VM1 n) der Mehrzahl von flüchtigen Speichern VM11 biv VM1n und VM21 bis VM2m die Datenleitung DQ mit dem ersten NVM-Controller 1222a gemeinsam verwenden, und die verbleibenden flüchtigen Speicher (beispielsweise VM21 bis VM2m) können die Datenleitung DQ mit dem zweiten NVM-Controller 1222b gemeinsam verwenden.
  • Wie in einer Beschreibung, welche unter Bezugnahme auf 28 gegeben ist, kann, auch wenn die Datenleitung DQ durch die Mehrzahl von flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m und die ersten und zweiten NVM-Controller 1222a und 1222b gemeinsam verwendet wird, da der Prozessor 101 basierend auf der Vorrichtungsinformation DI von der SPD arbeitet, der Prozessor 101 das nichtflüchtige Speichermodul unabhängig von einem Datenaustausch zwischen den flüchtigen Speichern VM11 bis VM1n und VM21 bis VM2m und den ersten und zweiten NVM-Controllern 1222a und 1222b normal steuern.
  • In einer Ausführungsform kann das nichtflüchtige Speichermodul 1200 der 29 gemäß einem Betriebsverfahren arbeiten, welches unter Bezugnahme auf 3 bis 21 beschrieben ist.
  • 30 ist ein Blockschaltbild, welches das nichtflüchtige Speichermodul der 1 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 30 weist ein nichtflüchtiges Speichermodul 1300 den Modulcontroller MC, eine Mehrzahl von flüchtigen Speichern VM, einen NVM-Controller 1322, nichtflüchtige Speicher NVM, den Tag-dedizierten flüchtigen Speicher TVM und die SPD auf. Für eine beschreibende Zweckmäßigkeit ist eine detaillierte Beschreibung der oben erwähnten Elemente ausgelassen.
  • Im Gegensatz zu dem nichtflüchtigen Speichermodul 900 der 26 kann das nichtflüchtige Speichermodul 1300 der 30 keine Mehrzahl von Datenpuffern DB aufweisen. Das heißt, dass das nichtflüchtige Speichermodul 1300 eine RDIMM-Struktur haben kann. Die Mehrzahl von flüchtigen Speichern VM ist konfiguriert, um Datenleitungen DQ mit dem NVM-Controller 1322 gemeinsam zu verwenden.
  • Wie obenstehend beschrieben ist, kann, da der Prozessor 101 basierend auf der Vorrichtungsinformation DI von der SPD arbeitet, der Prozessor 101 das nichtflüchtige Speichermodul 1300 unabhängig von einem Datenaustausch zwischen der Mehrzahl von flüchtigen Speichern VM und dem NVM-Controller 1322 normal steuern.
  • Die oben beschriebenen nichtflüchtigen Speichermodule sind lediglich Beispiele und Ausführungsformen sind nicht darauf beschränkt. Nichtflüchtige Speichermodule gemäß Ausführungsformen des erfinderischen Konzepts können verschiedentlich kombiniert oder modifiziert werden.
  • 31 ist ein Blockschaltbild, welches einen nichtflüchtigen Speicher veranschaulicht, welcher in einem nichtflüchtigen Speichermodul gemäß dem erfinderischen Konzept enthalten ist. Bezugnehmend auf 31 kann ein nichtflüchtiger Speicher 1400 ein Speicherzell-Array 1410, einen Adressdekoder 1420, eine Steuerlogikschaltung 1430, einen Seitenpuffer 1440 und eine Eingabe-/Ausgabeschaltung 1450 aufweisen.
  • Die Speicherzellanordnung 1410 weist eine Mehrzahl von Speicherblöcken auf, von welchen jeder eine Mehrzahl von Speicherzellen hat. Die Mehrzahl von Speicherzellen kann mit einer Mehrzahl von Wortleitungen WL verbunden werden. Jede Speicherzelle kann eine Ein-Niveau-Zelle (SLC) sein, welche ein Bit speichert, oder eine Multi-Niveau-Zelle (MLC), welche wenigstens zwei Bit speichert.
  • Der Adressdekoder 1420 kann eine Adresse ADDR von dem NVM-Controller 122 (es sei Bezug genommen auf 2) empfangen und dekodieren. In einer Ausführungsform kann die Adresse ADDR, welche von dem NVM-Controller 122 empfangen wird, eine physikalische Adresse sein, welche einen physikalischen Ort eines Speicherbereichs des nichtflüchtigen Speicherbereichs 1400 anzeigt. Der Adressdekoder 1420 kann wenigstens eine der Wortleitungen WL basierend auf der dekodierten Adresse auswählen und kann eine Spannung der ausgewählten Wortleitung treiben.
  • Die Steuerlogikschaltung 1430 kann den Adressdekoder 1420, den Seitenpuffer 1440 und die Eingabe-/Ausgabe-Schaltung 1450 in Antwort auf einen Befehl CMD und eine Steuerlogik CTRL, welche von dem NVM-Controller 112 empfangen wird, steuern (es sei Bezug genommen auf 2).
  • Der Seitenpuffer 1440 ist mit der Speicherzellanordnung 1410 durch eine Mehrzahl von Bitleitungen BL verbunden und ist mit der Eingabe-/Ausgabe-Schaltung 1450 über eine Mehrzahl von Datenleitungen DL verbunden. Der Seitenpuffer 1440 kann Daten, welche in der Speicherzellanordnung 1410 gespeichert sind, durch ein Abtasten von Spannungen der Mehrzahl von Bitleitungen BL speichern. Alternativ kann der Seitenpuffer 1440 Spannungen der Mehrzahl von Bitleitungen BL basierend auf Daten anpassen, welche durch die Mehrzahl von Datenleitungen DL empfangen werden.
  • Unter der Steuerung der Steuerlogikschaltung 1430 kann die Eingabe-/Ausgabe-Schaltung 1450 Daten von dem NVM-Controller 122 (es sei Bezug genommen auf 2) empfangen und kann die empfangenen Daten zu dem Seitenpuffer 1440 senden. Alternativ kann die Eingabe-/Ausgabe-Schaltung Daten von dem Seitenpuffer 1440 empfangen und die empfangenen Daten zu dem NVM-Controller 122 senden.
  • In einer Ausführungsform kann der NVM-Controller 122 die Adresse ADDR, den Befehl CMD und das Steuersignal CTRL basierend auf einem/einer NVM-Befehl/Adresse CA_n von dem Modulcontroller 110 erzeugen (es sei Bezug genommen auf 2).
  • 32 ist eine Ansicht, welche eine Zellstruktur und eine physikalische Eigenschaft einer Phasenübergangsspeichervorrichtung als ein Beispiel einer nichtflüchtigen Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 32 weist eine Speicherzelle 1500 einen variablen Widerstand und einen Zugriffstransistor NT auf. Der variable Widerstand ist aus einer oberen Elektrode 1510, einen Phasenübergangsmaterial 1520, einem Kontaktstecker 1530 und einer unteren Elektrode 1540 gebildet. Die obere Elektrode 1510 ist mit einer Bitleitung BL verbunden. Die untere Elektrode 1540 ist zwischen dem Kontaktstecker 1530 und dem Zugriffstransistor NT verbunden. Der Kontaktstecker 1530 ist aus einem leitfähigen Material (beispielsweise TiN) gebildet und wird ebenso ein „Heizerstecker” genannt. Das Phasenübergangsmaterial 1520 ist zwischen der oberen Elektrode 1510 und dem Kontaktstecker 1530. Eine Phase des Phasenübergangsmaterials 1520 kann sich gemäß einer Amplitude, einer Dauer, einer Abfallzeit etc. eines zugeführten Strompulses ändern. Die Phase des Phasenübergangsmaterials 1520, welche „eingestellt” oder „rückgestellt” entspricht, wird durch ein amorphes Volumen 2150 wie in 32 veranschaulicht bestimmt. Im Allgemeinen entsprechen eine amorphe Phase und eine kristalline Phase jeweils einer zurückgesetzten Phase und einer gesetzten Phase. Wenn eine Phase des Phasenübergangsmaterials 1520 von der amorphen Phase zu der kristallinen Phase voranschreitet, nimmt das amorphe Volumen ab. Das Phasenübergangsmaterial 1520 hat einen Widerstand, welcher gemäß dem gebildeten amorphen Volumen 2150 variiert. Das heißt, dass ein Wert von geschriebenen Daten gemäß dem amorphen Volumen 2150 des Phasenübergangsmaterials 1520 bestimmt wird, welches gemäß unterschiedlichen Strompulsen gebildet wird.
  • Die 33 bis 34 sind Ansichten, welche eine Speicherzelle veranschaulichen, welche in einem nichtflüchtigen Speicher gemäß einer Ausführungsform des erfinderischen Konzepts enthalten ist. Eine dreidimensionale Zellstruktur eines magnetischen Spin-Transfer-Drehmoment-Direktzugriffsspeichers (STT-MRAM) ist in 33 veranschaulicht. Eine Zellstruktur eines magnetoresistiven RAM wird unter Bezugnahme auf 34 beschrieben werden.
  • Eine Speicherzelle 1600 eines STT-MRAM ist in 33 veranschaulicht. Die Speicherzelle 1600 kann ein magnetisches Tunnelverbindungs(MTJ)-Element 1610 und einen Zelltransistor (CT) 1620 aufweisen. Eine Wortleitung WL0 ist mit einem Gate des Zelltransistors 1620 verbunden. Ein erstes Ende des Zelltransistors 1620 ist mit einer Bitleitung BL0 durch das MTJ-Element 1610 verbunden. Ein zweites Ende des Zelltransistors 1620 ist mit einer Sourceleitung SL0 verbunden.
  • Das MTJ-Element 1610 kann eine gepinnte Schicht 1613, eine freie Schicht 1611 und eine Tunnelschicht 1612, welche zwischenliegend dazwischen angeordnet ist, aufweisen. Eine Magnetisierungsrichtung der gepinnten Schicht 1613 kann feststehend sein und eine Magnetisierungsrichtung der freien Schicht 1611 kann dieselbe sein wie oder entgegengesetzt zu der Magnetisierungsrichtung der gepinnten Schicht unter einem Zustand. Die Speicherzelle 1600 kann ferner beispielsweise eine antiferromagnetische Schicht (nicht gezeigt) aufweisen, um die Magnetisierungsrichtung der gepinnten Schicht 1613 zu befestigen.
  • Um Daten in die Speicherzelle 1600 zu schreiben, wird der Zelltransistor 1620 durch ein Anlegen einer Spannung an die Wortleitung WL0 angeschaltet, und ein Schreibstrom wird zwischen der Bitleitung BL0 und der Sourceleitung SL0 angelegt. Um Daten aus der Speicherzelle 1600 zu lesen, wird der Zelltransistor 1620 durch ein Anlegen einer Spannung an die Wortleitung WL0 angeschaltet, und ein Lesestrom wird in einer Richtung von der Bitleitung BL0 zu der Sourceleitung SL0 angelegt. In diesem Fall werden Daten, welche in der Speicherzelle 1600 gespeichert sind, gemäß einem Widerstandswert bestimmt, welcher unter der oben beschriebenen Bedingung gemessen wird.
  • 34 ist ein Schaltbild, welches eine Speicherzelle 1700 einer magnetoresistiven Speichervorrichtung veranschaulicht. Bezugnehmend auf 34 weist die Speicherzelle 1700 der magnetoresistiven Speichervorrichtung ein variables Widerstandselement (RV) 1710 und ein Auswahlelement (STR) 1720 auf.
  • Das variable Widerstandselement 1710 weist ein variables Widerstandsmaterial zum Speichern von Daten auf. Auf der Basis einer Spannung einer Wortleitung WL führt das Auswahlelement 1720 einen Strom dem variablen Widerstandselement 1710 zu oder blockiert einen Strom, welcher dorthin zugeführt wird. Das Auswahlelement 1720 ist mit einem NMOS-Transistor wie in 34 veranschaulicht implementiert. Das Auswahlelement 1720 kann jedoch mit einem von Schaltelementen wie beispielsweise einem PMOS-Transistor und einer Diode implementiert sein.
  • Das variable Widerstandselement 1710 weist ein paar von Elektroden 1711 und 1713 und einen Datenspeicherfilm 1712, welcher dazwischen gebildet ist, auf. Der Datenspeicherfilm 1712 kann aus einem bipolaren Widerstandsspeichermaterial oder einem unipolaren Widerstandsspeichermaterial gebildet sein. Das bipolare Widerstandsspeichermaterial ist programmiert, um einen Zustand durch eine Pulspolarität einzustellen oder zurückzustellen. Das unipolare Widerstandsspeichermaterial kann programmiert sein, um einen Zustand durch dieselbe Pulspolarität einzustellen oder zurückzusetzen. Das unipolare Widerstandsspeichermaterial weist ein einzelnes Übergangs-Metalloxid wie beispielsweise NiOx oder TiOx auf. Das bipolare Widerstandsspeichermaterial weist pervoskit-basierte Materialien auf.
  • Der STT-MRAM und RRAM sind als ein Beispiel einer Speicherzelle beschrieben, welche in einem nichtflüchtigen Speicher enthalten ist. Es sollte jedoch verstanden werden, dass die Speicherzelle des nichtflüchtigen Speichers gemäß einer Ausführungsform des erfinderischen Konzepts nicht darauf beschränkt ist. Das heißt, dass die Speicherzelle des nichtflüchtigen Speichers in der Form eines eines Flashspeichers, eines PRAM, eines MRAM oder eines ferroelektrischen RAM (FRAM) vorgesehen sein kann.
  • 35 ist ein Blockschaltbild, welches einen flüchtigen Speicher des nichtflüchtigen Speichermoduls gemäß einer Ausführungsform des erfinderischen Konzepts veranschaulicht. Bezugnehmend auf 35 kann ein flüchtiger Speicher 1800 eine Speicherzellanordnung 1810, einen Adresspuffer 1820, einen Zeilendekoder (X-Dekoder) 1830, einen Spaltendekoder (Y-Dekoder) 1840, einen Leseverstärker und Schreibtreiber 1850 und eine Eingabe-/Ausgabe-Schaltung 1860 aufweisen.
  • Die Speicherzellanordnung 1810 kann eine Mehrzahl von Speicherzellen aufweisen, welche mit einer Mehrzahl von Wortleitungen WL und einer Mehrzahl von Bitleitungen BL verbunden sind. Die Mehrzahl von Speicherzellen kann jeweils an Schnittpunkten der Wortleitungen und der Bitleitungen platziert sein. In einer Ausführungsform kann jede der Mehrzahl von Speicherzellen einen Speicherkondensator und einen Zugriffstransistor aufweisen.
  • Der Adresspuffer 1820 kann eine Adresse ADDR von dem Modulcontroller 110 (es sei Bezug genommen auf 2) empfangen und vorübergehend speichern. In einer Ausführungsform kann der Adresspuffer 1820 eine Zeilenadresse ADD_row der empfangenen Adresse ADD für den X-Dekoder 1830 vorsehen und kann eine Spaltenadresse ADD_col davon für den Y-Dekoder 1840 vorsehen.
  • Der X-Dekoder 1830 ist mit der Speicherzellanordnung 1810 durch die Bitleitungen BL verbunden. Der X-Dekoder 1830 kann wenigstens eine, welche der Zeilenadresse A_row entspricht, unter der Mehrzahl von Wortleitungen WL in Antwort auf ein Zeilenadress-Strobe-Signal RAS von dem Modulcontroller 110 aktivieren.
  • Der Y-Dekoder 1840 kann die Spaltenadresse ADD_col von dem Adresspuffer 1820 empfangen. Wenn ein Spaltenadress-Strobe-Signal CAS empfangen wird, kann der Y-Dekoder 1840 den Leseverstärker und Schreibtreiber 1850 basierend auf der Spaltenadresse ADD_col steuern.
  • Der Leseverstärker und Schreibtreiber 1850 ist mit der Speicherzellanordnung 1810 durch die Mehrzahl von Bitleitungen BL verbunden. Der Leseverstärker und Schreibtreiber 1850 kann eine Spannungsänderung jeder Bitleitung abtasten. Alternativ kann der Leseverstärker und Schreibtreiber 1850 Spannungen der Mehrzahl von Bitleitungen basierend auf Daten anpassen, welche von der Eingabe-/Ausgabe-Schaltung 1860 empfangen werden.
  • Die Eingabe-/Ausgabe-Schaltung 1860 kann Daten von dem Leseverstärker und Schreibtreiber 1850 empfangen und kann die empfangenen Daten durch die Speicherdatenleitung MDQ (oder die Datenleitung DQ) ausgeben. Alternativ kann die Eingabe-/Ausgabe-Schaltung 1860 Daten durch die Speicherdatenleitung MDQ (oder die Datenleitung DQ) empfangen und kann die empfangenen Daten für den Leseverstärker und Schreibtreiber 1850 vorsehen.
  • In einer Ausführungsform kann die Adresse ADD eine Adresse sein, welche in dem/der VM-Befehl/Adresse CA_v enthalten ist, welche von dem Modulcontroller 110 (es sei Bezug genommen auf 2) vorgesehen ist. Das Zeilenadress-Strobe-Signal RAS und das Spaltenadress-Strobe-Signal CAS können Signale sein, welche in dem/der VM-Befehl/Adresse CA_v enthalten sind, welcher/welche von dem Modulcontroller 110 vorgesehen ist.
  • 36 ist ein Blockschaltbild, welches ein Nutzersystem veranschaulicht, auf welches das nichtflüchtige Speichermodul gemäß einer Ausführungsform des erfinderischen Konzepts angewandt wird. Bezugnehmend auf 36 kann ein Nutzersystem 3000 einen Prozessor 3001 und eine Mehrzahl von Speichern 3110 bis 3140 aufweisen.
  • Der Prozessor 3001 kann einen Speichercontroller 3002 aufweisen. Der Speichercontroller 3002 kann mit den Speichern 3110 und 3140 durch einen Bus 3003 kommunizieren. In einer Ausführungsform kann der Bus 3003 dedizierte Busse aufweisen, welche jeweils mit der Mehrzahl von Speichern 3110 bis 3140 verbunden sind, oder einen gemeinsam verwendeten Bus, welcher durch die Mehrzahl von Speichern 3110 bis 3140 gemeinsam verwendet wird. In einer Ausführungsform kann der Bus 3003 wenigstens eine der Datenleitung DQ, der Datenleitung DQ, der Speicherdatenleitung MDQ und der Tag-Datenleitung TDQ, welche unter Bezugnahme auf 1 bis 36 beschrieben sind, aufweisen.
  • In einer Ausführungsform können wenigstens einige der Mehrzahl von Speichern 3110 bis 3140 nichtflüchtige Speichermodule sein, welche unter Bezugnahme auf 1 bis 36 beschrieben sind, oder können gemäß einem Betriebsverfahren, welches unter Bezugnahme auf 1 bis 36 beschrieben ist, arbeiten.
  • Alternativ kann jedes von wenigstens einigen der Mehrzahl von Speichermodulen 3110 bis 3140 einen nichtflüchtigen Speicher aufweisen, und jedes der verbleibenden Speichermodule davon kann einen flüchtigen Speicher aufweisen. Ein Speichermodul, welches einen flüchtigen Speicher aufweist, kann als ein Cache-Speicher eines Speichermoduls verwendet werden, welches einen nichtflüchtigen Speicher aufweist. Das heißt, dass, wie unter Bezugnahme auf 1 bis 36 beschrieben ist, einige der Mehrzahl von Speichermodulen 3110 bis 3140 als ein Hauptspeicher des Nutzersystems 3000 verwendet werden können, und die verbleibenden Module davon als ein Cache-Speicher verwendet werden können. Jeder von Speichern, welcher als Cache-Speicher verwendet wird, kann ein flüchtiger Speicher sein, welcher unter Bezugnahme auf 1 bis 35 beschrieben ist, oder kann gleich arbeiten wie ein flüchtiger Speicher, welcher unter Bezugnahme auf 1 bis 35 beschrieben ist.
  • In einer Ausführungsform kann der Speichercontroller 3002 ein Speichercontroller oder ein Controller sein, welcher unter Bezugnahme auf 1 bis 35 beschrieben ist, oder kann gleich arbeiten wie ein Speichercontroller, welcher unter Bezugnahme auf 1 bis 35 beschrieben ist.
  • 37 ist eine Ansicht, welche ein Serversystem veranschaulicht, auf welches das nichtflüchtige Speichersystem gemäß einer Ausführungsform des erfinderischen Konzepts angewandt ist. Bezugnehmend auf 36 kann ein Serversystem 2000 eine Mehrzahl von Server-Racks 2100 aufweisen. Jedes der Server-Racks 2100 kann eine Mehrzahl von nichtflüchtigen Speichermodulen 2200 aufweisen. Die nichtflüchtigen Speichermodule 2200 können direkt mit Prozessoren verbunden sein, welche jeweils in den Server-Racks 2100 enthalten sind. Beispielsweise können die nichtflüchtigen Speichermodule 2200 die Form eines Dual-In-Line-Speichermoduls haben und können auf einem DIMM-Sockel elektrisch mit einem Prozessor verbunden montiert sein, um mit dem Prozessor zu kommunizieren. In einer Ausführungsform können die nichtflüchtigen Speichermodule 2200 als ein Speicher des Serversystems 2000 verwendet werden. In einer Ausführungsform kann jedes der Mehrzahl von nichtflüchtigen Speichermodulen 2200 ein nichtflüchtiges Speichermodul sein, welches unter Bezugnahme auf 1 bis 35 beschrieben ist oder kann gemäß einem Betriebsverfahren, welches unter Bezugnahme auf 1 bis 35 beschrieben ist, arbeiten.
  • Während das erfinderische Konzept unter Bezugnahme auf beispielhafte Ausführungsformen beschrieben wurde, wird es für Fachleute offensichtlich sein, dass verschiedene Änderungen und Modifikationen getätigt werden können, ohne vom Gedanken und Umfang des erfinderischen Konzepts abzuweichen. Demnach sollte es verstanden werden, dass die obigen Ausführungsformen nicht beschränkend sondern veranschaulichend sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2016-0008210 [0001]
    • KR 10-2016-008214 [0001]
    • KR 10-2016-0029743 [0001]

Claims (20)

  1. Verfahren zum Zugreifen auf flüchtige Speichervorrichtungen (VM11–VM1n, VM21–VM2m), nichtflüchtige Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) und einen Controller (MC), welcher die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) und die nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) steuert, wobei das Verfahren Folgendes aufweist: ein Empfangen, durch den Controller (MC), einer Zeilenadresse (RA, ADD_row), welche mit den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) und den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) verbunden ist, durch erste Leitungen zu einer ersten Zeitwahl; ein Empfangen, durch den Controller (MC), einer erweiterten Adresse (EA), welche mit den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) verbunden ist, durch zweite Leitungen zu einer zweiten Zeitwahl; und ein Empfangen, durch den Controller (MC), einer Spaltenadresse (CA, ADD_col), welche mit den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) und den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) verbunden ist, durch dritte Leitungen zu einer dritten Zeitwahl.
  2. Verfahren nach Anspruch 1, ferner aufweisend: ein Empfangen, durch Befehlseingabeleitungen, eines Aktivierungs-Erweiterungsbefehls (EXT), welcher anzeigt, dass die erweiterte Adresse (EA) zu der zweiten Zeitwahl übertragen wird.
  3. Verfahren nach Anspruch 2, ferner aufweisend: ein Empfangen, durch eine Auto-Vorlade-Eingabeleitung, eines zusätzlichen Aktivierungs-Erweiterungsbefehls (EXT), welcher anzeigt, dass die erweiterte Adresse (EA) zu der zweiten Zeitwahl übertragen wird.
  4. Verfahren nach Anspruch 1, ferner aufweisend: ein Empfangen eines Aktivbefehls (ACT) zu der ersten Zeitwahl; ein Empfangen eines Aktivierungs-Erweiterungsbefehls (EXT) zu der zweiten Zeitwahl; und ein Empfangen eines Lese- oder Schreibbefehls zu der dritten Zeitwahl.
  5. Verfahren nach Anspruch 4, wobei es verboten ist, dass ein anderer Befehl zwischen der ersten Zeitwahl und der zweiten Zeitwahl empfangen wird.
  6. Verfahren nach Anspruch 4, wobei zu der zweiten Zeitwahl ein Signal einer „RAS_n/A16”-Leitung, ein Signal einer „CAS_n/A15”-Leitung und ein Signal einer „WE_n/A14”-Leitung jeweils von einem niedrigen Pegel, einem hohen Pegel bzw. einem hohen Pegel sind.
  7. Verfahren nach Anspruch 6, wobei ein Signal einer „A10/AP”-Leitung von einem hohen Pegel zu der zweiten Zeitwahl ist.
  8. Verfahren nach Anspruch 1, wobei die zweiten Leitungen 0-te bis 9-te Adressleitungen aufweisen.
  9. Verfahren nach Anspruch 1, wobei zu der zweiten Zeitwahl jede von Bankgruppen-Adressleitungen, Bankadress-Eingabeleitungen (BA0, BA1), Chip-Identifizierer-Leitungen (C0–C2), einer Burst-Chop-Signalleitung (BC_n/A12) und 11-ten, 13-ten und 17-ten Adressleitungen einen beliebigen Wert hat, welcher durch einen von einem hohen Pegel und einem niedrigen Pegel definiert ist.
  10. Verfahren nach Anspruch 1, ferner aufweisend: ein Lesen, durch den Controller (MC), eines Tag, welches mit der Zeilenadresse (RA, ADD_row) und der Seitenadresse verbunden ist, aus den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m); und ein Zugreifen, durch den Controller (MC), auf die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m), wenn das Tag dasselbe ist wie die erweiterte Adresse (EA).
  11. Verfahren nach Anspruch 10, ferner aufweisend: ein Schreiben, durch den Controller (MC), eines Dirty-Flag, welches mit der Zeilenadresse (RA, ADD_row) und der Spaltenadresse (CA, ADD_col) in den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) verbunden ist, um ein Dirty-Zustand zu sein, wenn der Controller (MC) Daten in die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) schreibt.
  12. Verfahren nach Anspruch 11, ferner aufweisend: ein Schreiben, durch den Controller (MC), der erweiterten Adresse (EA) als ein Tag, welches mit der Zeilenadresse (RA, ADD_row) und der Spaltenadresse (CA, ADD_col) in den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) verbunden ist, wenn der Controller (MC) Daten in die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) schreibt.
  13. Verfahren nach Anspruch 10, ferner aufweisend: ein Lesen, durch den Controller (MC), eines Dirty-Flag, welches mit der Zeilenadresse (RA, ADD_row) und der Spaltenadresse (CA, ADD_col) von den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) verbunden ist, wenn das Tag unterschiedlich von der erweiterten Adresse (EA) ist; und wenn das Dirty-Flag einen Dirty-Zustand anzeigt, ein Lesen, durch den Controller (MC), von Daten basierend auf der Zeilenadresse (RA, ADD_row) und der Spaltenadresse (CA, ADD_col) und ein Schreiben der gelesenen Daten in die nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) basierend auf der Zeilenadresse (RA, ADD_row), der Spaltenadresse (CA, ADD_col) und der erweiterten Adresse (EA).
  14. Verfahren nach Anspruch 13, ferner aufweisend: während einer Leseoperation nachdem eine Schreiboperation hinsichtlich der nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) vollendet ist, ein Lesen, durch den Controller (MC), von zweiten Daten von den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) basierend auf der Zeilenadresse (RA, ADD_row), der Spaltenadresse (CA, ADD_col) und der erweiterten Adresse (EA) und ein Schreiben der zweiten Daten in die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) basierend auf der Zeilenadresse (RA, ADD_row) und der Spaltenadresse (CA, ADD_col).
  15. Verfahren nach Anspruch 13, ferner aufweisend: während einer Schreiboperation, nachdem eine Schreiboperation hinsichtlich der nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) vollendet ist, ein Schreiben, durch den Controller (MC), von zweiten Daten in die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) basierend auf der Zeilenadresse (RA, ADD_row) und der Spaltenadresse (CA, ADD_col) und ein Schreiben der zweiten Daten in die nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) basierend auf der Zeilenadresse (RA, ADD_row), der Spaltenadresse (CA, ADD_col) und der erweiterten Adresse (EA).
  16. Speichermodul, das Folgendes aufweist: nichtflüchtige Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i); flüchtige Speichervorrichtungen (VM11–VM1n, VM21–VM2m); und einen Controller (MC), welcher konfiguriert ist, um die nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) und die flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) zu steuern, wobei der Controller (MC) eine Zeilenadresse (RA, ADD_row), welche mit den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) und den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) verbunden ist, durch erste Leitungen zu einer ersten Zeitwahl empfängt, eine erweiterte Adresse (EA), welche mit den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) verbunden ist, durch zweite Leitungen zu einer zweiten Zeitwahl empfängt, und eine Spaltenadresse (CA, ADD_col), welche mit den nichtflüchtigen Speichervorrichtungen (NVM11–NVM1k, NVM21–NVM2i) und den flüchtigen Speichervorrichtungen (VM11–VM1n, VM21–VM2m) verbunden ist, durch dritte Leitungen zu einer dritten Zeitwahl empfängt.
  17. Verfahren zum Zugreifen auf einen Cachespeicher eines ersten Typs und einen Hauptspeicher eines zweiten Typs, wobei das Verfahren Folgendes aufweist: ein Senden einer gemeinsamen Adresse zu dem Cachespeicher des ersten Typs und dem Hauptspeicher des zweiten Typs durch Adressleitungen, welche mit dem Cachespeicher des ersten Typs verbunden sind, durch ein Verwenden einer Mehrzahl von Sequenzen; und ein Senden einer erweiterten Adresse (EA) zu dem Hauptspeicher des zweiten Typs durch die Adressleitungen, welche mit dem Cachespeicher des ersten Typs verbunden sind, durch ein Verwenden wenigstens einer Sequenz.
  18. Verfahren nach Anspruch 17, wobei die gemeinsame Adresse und die erweiterte Adresse (EA) in eine interne Adresse des Hauptspeichers des zweiten Typs umgewandelt werden und die umgewandelte interne Adresse zu dem Hauptspeicher des zweiten Typs durch getrennte Leitungen unabhängig von den Adressleitungen übertragen wird.
  19. Verfahren nach Anspruch 17, wobei die wenigstens eine Sequenz unter der Mehrzahl von Sequenzen ausgeführt wird.
  20. Verfahren nach Anspruch 17, ferner aufweisend: ein Senden eines Befehls zu dem Cachespeicher des ersten Typs und dem Hauptspeicher des zweiten Typs durch Befehlsleitungen, welche mit dem Cachespeicher des ersten Typs verbunden sind, wobei der Befehl in einen Befehl des Hauptspeichers des zweiten Typs umgewandelt wird, und der umgewandelte Befehl zu dem Hauptspeicher des zweiten Typs durch eine getrennte Leitung unabhängig von der Befehlsleitung übertragen wird.
DE102017100584.6A 2016-01-14 2017-01-13 Verfahren zum Zugreifen auf heterogene Speicher und Speichermodul, welches heterogene Speicher aufweist Pending DE102017100584A1 (de)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201662278610P 2016-01-14 2016-01-14
US62/278,610 2016-01-14
KR10-2016-0008214 2016-01-22
KR1020160008214A KR20170085918A (ko) 2016-01-14 2016-01-22 이종의 메모리 장치들을 포함하는 메모리 모듈 및 그것의 동작 방법
KR10-2016-0008210 2016-01-22
KR20160008210 2016-01-22
KR10-2016-0029743 2016-03-11
KR1020160029743A KR20170085923A (ko) 2016-01-14 2016-03-11 이종의 메모리들을 액세스하는 방법 및 이종의 메모리들을 포함하는 메모리 모듈

Publications (1)

Publication Number Publication Date
DE102017100584A1 true DE102017100584A1 (de) 2017-07-20

Family

ID=59256413

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017100584.6A Pending DE102017100584A1 (de) 2016-01-14 2017-01-13 Verfahren zum Zugreifen auf heterogene Speicher und Speichermodul, welches heterogene Speicher aufweist

Country Status (2)

Country Link
US (2) US20170206165A1 (de)
DE (1) DE102017100584A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI666554B (zh) * 2017-07-21 2019-07-21 美商美光科技公司 具有多工命令/位址匯流排之記憶體設備及記憶體模組,及操作一記憶體裝置之方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2548845B (en) 2016-03-29 2019-11-27 Imagination Tech Ltd Handling memory requests
CN111433749B (zh) * 2017-10-12 2023-12-08 拉姆伯斯公司 具有dram高速缓存的非易失性物理存储器
WO2019090493A1 (zh) * 2017-11-07 2019-05-16 华为技术有限公司 内存块回收方法和装置
US10528283B2 (en) 2018-01-23 2020-01-07 Dell Products, Lp System and method to provide persistent storage class memory using NVDIMM-N with an NVDIMM-P footprint
US10732892B2 (en) * 2018-09-24 2020-08-04 Micron Technology, Inc. Data transfer in port switch memory
US11249841B2 (en) * 2019-02-24 2022-02-15 High Performance Data Storage Preventing read disturbance accumulation in a cache memory
US11526448B2 (en) * 2019-09-27 2022-12-13 Intel Corporation Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning
CN114846545A (zh) * 2019-12-26 2022-08-02 美光科技公司 用于堆叠式存储器***的非确定性操作的技术
US11561731B2 (en) 2019-12-26 2023-01-24 Micron Technology, Inc. Truth table extension for stacked memory systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008214A (ko) 2013-05-02 2016-01-21 할도르 토프쉐 에이/에스 Soec 장치용 가스 유입구
KR20160008210A (ko) 2013-04-29 2016-01-21 르노 에스.아.에스. 온도에 따라서 차량 배터리를 충전하는 방법 및 시스템
KR20160029743A (ko) 2013-07-03 2016-03-15 필립모리스 프로덕츠 에스.에이. 다수 사용 에어로졸 발생 시스템

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3906458A (en) * 1974-08-28 1975-09-16 Burroughs Corp Odd-sized memory having a plurality of even-sized storage elements of the same capacity
US4918598A (en) * 1985-08-14 1990-04-17 Apple Computer, Inc. Method for selectively activating and deactivating devices having same first address and different extended addresses
US5113514A (en) * 1989-08-22 1992-05-12 Prime Computer, Inc. System bus for multiprocessor computer system
US5428566A (en) * 1993-10-27 1995-06-27 Intel Corporation Nonvolatile memory card with ready and busy indication and pin count minimization
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
US5564114A (en) * 1995-01-09 1996-10-08 Cirrus Logic Inc. Method and an arrangement for handshaking on a bus to transfer information between devices in a computer system
JPH0963264A (ja) * 1995-08-18 1997-03-07 Fujitsu Ltd 同期型dram
US6374344B1 (en) * 1998-11-25 2002-04-16 Compaq Information Technologies Group L.P. (Citg) Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts
JP4497689B2 (ja) * 1999-10-01 2010-07-07 キヤノン株式会社 印刷装置、交換ユニット、及び、メモリユニット
US6804763B1 (en) * 2000-10-17 2004-10-12 Igt High performance battery backed ram interface
US7610417B2 (en) * 2005-11-30 2009-10-27 Rambus Inc. Data-width translator coupled between variable-width and fixed-width data ports and supporting multiple data-width configurations
US20080120469A1 (en) * 2006-11-22 2008-05-22 International Business Machines Corporation Systems and Arrangements for Cache Management
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8949502B2 (en) * 2010-11-18 2015-02-03 Nimble Storage, Inc. PCIe NVRAM card based on NVDIMM
WO2013095530A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Efficient pcms refresh mechanism background
JP2013205872A (ja) * 2012-03-27 2013-10-07 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
KR101959853B1 (ko) * 2012-04-09 2019-03-19 삼성전자주식회사 분할 어드레싱 방식 자기 랜덤 액세스 메모리 장치
US20140195730A1 (en) * 2013-01-07 2014-07-10 Dannie Gerrit Feekes Robust and secure memory subsystem
EP2981048A4 (de) * 2013-03-27 2016-02-17 Panasonic Ip Man Co Ltd Initiatorendgerät, zielendgerät, verfahren zur unterbrechung des zugangs zu einem initiatorendgerät und verfahren zur unterbrechung des zugangs zu einem zielendgerät
US9454310B2 (en) * 2014-02-14 2016-09-27 Micron Technology, Inc. Command queuing
US9952784B2 (en) * 2015-03-11 2018-04-24 Sandisk Technologies Llc Multichip dual write
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9959205B2 (en) * 2015-05-13 2018-05-01 Wisconsin Alumni Research Foundation Shared row buffer system for asymmetric memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008210A (ko) 2013-04-29 2016-01-21 르노 에스.아.에스. 온도에 따라서 차량 배터리를 충전하는 방법 및 시스템
KR20160008214A (ko) 2013-05-02 2016-01-21 할도르 토프쉐 에이/에스 Soec 장치용 가스 유입구
KR20160029743A (ko) 2013-07-03 2016-03-15 필립모리스 프로덕츠 에스.에이. 다수 사용 에어로졸 발생 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI666554B (zh) * 2017-07-21 2019-07-21 美商美光科技公司 具有多工命令/位址匯流排之記憶體設備及記憶體模組,及操作一記憶體裝置之方法
US10930632B2 (en) 2017-07-21 2021-02-23 Micron Technology, Inc. Memory device with a multiplexed command/address bus
TWI736914B (zh) * 2017-07-21 2021-08-21 美商美光科技公司 具有多工命令/位址匯流排之記憶體設備及記憶體模組,及操作一記憶體裝置之方法
US11380667B2 (en) 2017-07-21 2022-07-05 Micron Technology, Inc. Memory device with a multiplexed command/address bus
US11830867B2 (en) 2017-07-21 2023-11-28 Micron Technology, Inc. Memory device with a multiplexed command/address bus

Also Published As

Publication number Publication date
US20170206165A1 (en) 2017-07-20
US20190034344A1 (en) 2019-01-31

Similar Documents

Publication Publication Date Title
DE102017100584A1 (de) Verfahren zum Zugreifen auf heterogene Speicher und Speichermodul, welches heterogene Speicher aufweist
US10156995B2 (en) Semiconductor memory devices and methods of operating the same
US9711487B2 (en) Method and device for controlling operation using temperature deviation in multi-chip package
US9772803B2 (en) Semiconductor memory device and memory system
US9135965B2 (en) Memory controller and method for interleaving DRAM and MRAM accesses
US20130329491A1 (en) Hybrid Memory Module
US8060705B2 (en) Method and apparatus for using a variable page length in a memory
US9741425B2 (en) Memory device and memory system including the memory device
US7782703B2 (en) Semiconductor memory having a bank with sub-banks
US10372446B2 (en) Technology to dynamically modulate memory device read granularity
CN105808455B (zh) 访问内存的方法、存储级内存及计算机***
US10929064B2 (en) Methods of operating mixed device type memory modules, and processors and systems configured for operating the same
US20170235524A1 (en) Nonvolatile Memory Modules Comprising Volatile Memory Devices and Nonvolatile Memory Devices
US9064603B1 (en) Semiconductor memory device and memory system including the same
US10867662B2 (en) Apparatuses and methods for subarray addressing
US10037817B2 (en) Semiconductor memory devices and memory systems including the same
CN114115715A (zh) 执行存储器的低时延存取的设备和方法
KR20180047481A (ko) 자기 저항 메모리 모듈 및 이를 포함하는 컴퓨팅 디바이스
US9003121B2 (en) Multi-ported memory with multiple access support
US20230273668A1 (en) Semiconductor memory device, electronic device and method for setting the same
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
US10510429B2 (en) Memory device performing test on memory cell array and method of operating the same
TW201740278A (zh) 用於存取異質記憶體的方法及含異質記憶體的記憶體模組
DE102013100064A1 (de) Verfahren zum Betreiben einer flüchtigen Speichervorrichtung, flüchtige Speichervorrichtung und Verfahren zum Steuern eines Speichersystems

Legal Events

Date Code Title Description
R012 Request for examination validly filed