DE102017128945A1 - Blocklöschungssysteme für nichtflüchtige Kreuzungspunkt-Speichervorrichtungen - Google Patents

Blocklöschungssysteme für nichtflüchtige Kreuzungspunkt-Speichervorrichtungen Download PDF

Info

Publication number
DE102017128945A1
DE102017128945A1 DE102017128945.3A DE102017128945A DE102017128945A1 DE 102017128945 A1 DE102017128945 A1 DE 102017128945A1 DE 102017128945 A DE102017128945 A DE 102017128945A DE 102017128945 A1 DE102017128945 A1 DE 102017128945A1
Authority
DE
Germany
Prior art keywords
cells
subset
operations
read
write
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
DE102017128945.3A
Other languages
English (en)
Inventor
Zvonimir Z. Bandic
Won Ho Choi
Jay Kumar
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.)
SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102017128945A1 publication Critical patent/DE102017128945A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0038Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0097Erasing, e.g. resetting, circuits or methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

Eine Speichervorrichtung enthält eine nichtflüchtige Kreuzungspunkt-Speicher-(NVM)-Vorrichtung, die einen ersten Subsatz von Zellen enthält. Zellen des ersten Subsatzes von Zellen können entweder eine Bitleitung oder eine Wortleitung gemeinsam nutzen. Es kann zumindest eine Pufferzelle in einer jeweiligen Bitleitung oder Wortleitung zwischen jedem benachbarten Paar von Zellen von dem ersten Subsatz von Zellen geben. Die Speichervorrichtung enthält ein Steuermodul. Das Steuermodul ist konfiguriert, um einen Satz von I/O-Operationen aufzunehmen. Das Steuermodul ist konfiguriert, um einen ersten Subsatz des Satzes von I/O-Operationen über den ersten Subsatz von Zellen der Kreuzungspunkt-Speicherkomponente parallel auszuführen. Das Steuermodul kann den ersten Subsatz des Satzes von I/O-Operationen so ausführen, dass I/O-Operationen in den jeweiligen Pufferzellen nicht ausgeführt werden.

Description

  • Technisches Gebiet
  • Die Offenbarung bezieht sich generell auf Festkörper-Speichervorrichtungen und insbesondere auf nichtflüchtige Kreuzungspunkt-Speichervorrichtungen.
  • Hintergrund
  • Festkörpervorrichtungen (SSDs) können nichtflüchtige Speichervorrichtungen (NVM), wie einen Flashspeicher, einen Phasenänderungsspeicher (PCM), einen Widerstands-Speicher mit wahlfreiem Zugriff (ReRAM), einen magneto-resistiven Speicher mit wahlfreiem Zugriff (MRAM), eine programmierbare Metallisierungszelle (PMC), in anderer Weise als leitender Überbrückungs-Schreib-Lese-Speicher mit wahlfreiem Zugriff oder CBRAM®) oder dergleichen verwenden. Einige dieser Vorrichtungen, wie PCM und ReRAM-Speicher nutzen Formen einer Kreuzungspunkt-Speicherarchitektur. Eine Kreuzungspunkt-Speicherarchitektur kann die Verwendung von Speicherwiderständen umfassen. Die Speicherwiderstandstechnologie kann Daten auf der Grundlage des elektrischen Widerstands der jeweiligen Speicherwiderstände speichern. Speicherwiderstände können sich auf der Grundlage einer Höhe und Richtung eines elektrischen Stromes, dem der Speicherwiderstand kürzlich ausgesetzt wurde, zwischen einem Zustand hohen Widerstands und einem Zustand niedrigen Widerstands ändern. Schreiboperationen in Vorrichtungen mit einer Kreuzungspunkt-Speicherarchitektur können das Festlegen oder Ändern des elektrischen Widerstandszustands der jeweiligen Komponenten umfassen, die derartige Widerstandszustände festhalten.
  • Zusammenfassung
  • Bei einigen Beispielen enthält eine Speichervorrichtung einen nichtflüchtigen Kreuzungspunkt eine nichtflüchtige Speicher-(NVM)-Vorrichtung, die einen ersten Untersatz von Zellen enthält. Zellen des ersten Untersatzes der Zellen können entweder eine Bitleitung oder eine Wortleitung gemeinsam nutzen. Dabei kann es zumindest eine Pufferzelle in einer jeweiligen Bitleitung oder Wortleitung zwischen jedem benachbarten Paar von Zellen von dem ersten Untersatz von Zellen geben. Die Speichervorrichtung enthält ein Steuermodul. Das Steuermodul ist ausgelegt, um einen Satz von Eingabe-/Ausgabe- bzw. I/O-Operationen zu empfangen. Das Steuermodul ist ausgelegt, um einen ersten Untersatz des Platzes der I/O-Operationen parallel über den ersten Untersatz von Zellen der Kreuzungspunkt-Speicherkomponente auszuführen. Das Speichermodul kann den ersten Untersatz der I/O-Operationen so ausführen, dass I/O-Operationen in den jeweiligen Pufferzellen nicht ausgeführt werden.
  • Bei einigen Beispielen enthält ein Verfahren die Verwaltung von Lese- und Schreiboperationen für eine nichtflüchtige Kreuzungspunkt-Speicher-(NVM)-Vorrichtung. Das Verfahren kann den Empfang eines Satzes von Lese- oder Schreiboperationen für die Kreuzungspunkt-NVM-Vorrichtung umfassen. Die NVM-Vorrichtung kann eine Vielzahl von Zellen enthalten, die in eine Vielzahl von Sätzen von Zellen gruppiert sind. Für jeden Satz von Zellen setzen die Zellen des jeweiligen Satzes von Zellen eine Bitleitung oder eine Wortleitung der Kreuzungspunkt-NVM-Vorrichtung gemeinsam. Das Verfahren kann ferner die Ausführung eines ersten Untersatzes des Satzes von I/O-Operationen parallel über einen Satz von Zellen der Vielzahl von Sätzen von Zellen umfassen. Für benachbarte Paare von Zellen aus dem Satz der Zellen gibt es zumindest eine Pufferzelle, die sowohl keiner Lese- oder Schreiboperation des Untersatzes der Lese- oder Schreiboperationen unterzogen wird als auch zwischen den jeweiligen Zellen des benachbarten Paares von Zellen liegt.
  • Bei einigen Beispielen kann ein System Mittel bzw. Einrichtungen zum Empfangen eines Satzes von I/O-Operationen für eine nichtflüchtige Kreuzungspunkt-Speicher-(NVM)-Vorrichtung enthalten. Das System kann ferner Mittel bzw. Einrichtungen zum Ausführen eines ersten Subsatzes des Satzes der I/O-Operationen parallel über einen ersten Subsatz von Zellen der Kreuzungspunkt-NVM-Vorrichtung enthalten. Zellen des ersten Subsatzes der Zellen nutzen eine Bitleitung oder eine Wortleitung gemeinsam. Für jedes benachbarte Paar von Zellen aus dem ersten Subsatz von Zellen gibt es zumindest eine Pufferzelle, die sowohl keiner I/O-Operation des ersten Subsatzes der I/O-Operationen unterzogen wird als auch zwischen den jeweiligen Zellen des benachbarten Paares von Zellen liegt.
  • Die Einzelheiten von einem oder mehreren Beispielen werden in den beigefügten Zeichnungen und der Beschreibung unten fortgeführt. Andere Merkmale, Ziele bzw. Aufgaben und Vorteile werden aus der Beschreibung und den Zeichnungen und aus den Ansprüchen ersichtlich werden.
  • Figurenliste
    • 1 ist ein konzeptionelles und schematisches Blockdiagramm, welches ein Beispiel einer Speicherumgebung veranschaulicht, in der eine Datenspeichervorrichtung Subsätze von I/O-Operationen von einer Host-Vorrichtung parallel in einem lokalisierten Bereich von Speicherzellen gemäß einem oder mehreren Verfahren dieser Offenbarung ausführen kann.
    • 2 ist ein konzeptionelles und schematisches Blockdiagramm, welches Beispielskomponenten einer Speichervorrichtung gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht.
    • 3 ist ein Ablaufdiagramm, welches ein Beispielsverfahren zur Ausführung von I/O-Operationen an einer Speichervorrichtung gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht.
    • 4 stellt Beispielsblöcke von Beispiels-Datenzellen einer NVM-Vorrichtung dar.
    • 5 ist ein Ablaufdiagramm, welches ein Beispielsverfahren zum Ausführen von I/O-Operationen in einer Speichervorrichtung gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht.
  • Detaillierte Beschreibung
  • Generell beschreibt diese Offenbarung Details von Verfahren zum Verwalten bzw. Managen der Parallelausführung von I/O-Operationen in einem lokalisierten Bereich einer nichtflüchtigen Speichervorrichtung (NVM), wie in einem Festkörper-Laufwerk (SSD). Eine NVM-Vorrichtung kann beispielsweise einen Phasenänderungsspeicher (PCM) oder einen Widerstands-Schreib-Lese-Speicher mit wahlfreiem Zugriff (ReRAM) enthalten. Die NVM-Vorrichtung kann eine Kreuzungspunkt-Speicherarchitektur benutzen. Die NVM-Vorrichtung kann in eine Vielzahl von Plättchen bzw. Chipplättchen aufgeteilt sein, die jeweils eine Vielzahl von Speicherzellen enthalten, so dass eine Spannungsversorgungseinrichtung so ausgelegt ist, um elektrische Impulse bereitzustellen, die I/O-Operationen für jedes Plättchen parallel ausführen können (mit gleichzeitigen Schreibvorgängen). Die NVM-Vorrichtung kann eine Vielzahl von I/O-Operationen empfangen. Die Speichervorrichtung kann die Vielzahl der I/O-Operationen in Zellen eines Plättchens ausführen. Die NVM-Vorrichtung kann einen Subsatz der Vielzahl von I/O-Operationen in einem Subsatz von Zellen des Plättchens ausführen. Zellen des Subsatzes der Zellen können zumindest eine Bitleitung oder eine Wortleitung gemeinsam nutzen. Zellen des Subsatzes der Zellen können zumindest eine „Puffer“-Zelle zwischen der jeweiligen Zelle des Subsatzes und anderen Zellen des Subsatzes der Zellen aufweisen.
  • Eine I/O-Eingabe-/Ausgabe-Operation kann beispielsweise eine Schreiboperation oder eine Leseoperation sein. Eine Schreiboperation kann entweder eine Rücksetz-Operation oder eine Einstell- bzw. Setzoperation umfassen. Eine Rücksetzoperation kann den Zustand eines elektrischen Widerstands eines Speicherwiderstands einer Speicherzelle ändern, die einer I/O-Operation unterzogen wird. Eine Rücksetzoperation kann den elektrischen Widerstand der Speicherzelle von einem Zustand relativ niedrigen Widerstands in einen Zustand relativ hohen Widerstands ändern. In entsprechender Weise kann eine Setzoperation den Zustand des elektrischen Widerstands eines Speicherwiderstands einer Speicherzelle von einem Zustand relativ hohen Widerstands in einen Zustand relativen niedrigen Widerstands ändern.
  • Bei gewissen Beispielen kann eine Rücksetzoperation als eine „Programm“-Operation bezeichnet werden, und eine Setzoperation kann als eine „Lösch“-Operation bezeichnet werden. Bei anderen Beispielen können Rücksetz- und Setzoperationen austauschbar verwendet sein, um das Gegenteil zu bedeuten. So kann beispielsweise in gewissen Fällen eine Löschoperation als eine Rücksetzoperation bezeichnet werden, und eine Programmoperation kann als eine Setzoperation bezeichnet werden. Zum Zwecke der Klarheit werden jedoch, wie hier beschrieben, Löschoperationen auf Setzoperationen bezogen, und Programmoperationen, wie sie hier beschrieben werden, sind, werden auf Rücksetzoperationen bezogen.
  • Bei einigen Beispielen kann eine NVM-Vorrichtung bestimmen, dass eine Vielzahl von I/O-Operationen in Zellen eines Plättchens eines Speicherarrays auszuführen ist, so dass zumindest ein Teil der Zellen, die durch die I/O-Operationen beschrieben/gelöscht werden, innerhalb des Plättchens benachbarte Zellen sind. Während eine NVM-Vorrichtung bei einigen Beispielen die Vielzahl von I/O-Operationen in einer Bit-zu-Bit-Technik ausführen kann (beispielsweise durch individuelles Programmieren/Löschen einer Zelle zu einem Zeitpunkt durch Ablauf eines bestimmten Programms oder eines Löschstroms durch die eine Zelle), um eine thermische Interferenz zwischen Zellen zu vermeiden, kann eine derartige Technik bzw. ein derartiges Verfahren zu einem relativ langsamen Schreibdurchsatz führen. Aspekte dieser Offenbarung beziehen sich auf eine NVM-Vorrichtung, die einen ersten Subsatz der Vielzahl von I/O-Operationen in einem ersten Subsatz von Zellen des Plättchens parallel ausführt (beispielsweise im Wesentlichen gleichzeitig als Teil einer einzigen, kombinierten Schreiboperation). Anders ausgedrückt beziehen sich Aspekte dieser Offenbarung auf einen NVM-Vorrichtungs-Schreibvorgang in eine Vielzahl von Zellen in einer oder mehreren Plättchen als Teil einer einzigen Operation, so dass eine Spannungsversorgungseinrichtung der Speichervorrichtung elektrische Impulse für die Vielzahl von Zellen in einer einzigen (beispielsweise nicht im Wesentlichen gestaffelten) Operationen erzeugt und abgibt. Eine NVM-Vorrichtung kann den ersten Subsatz von I/O-Operationen für den ersten Subsatz von Zellen ausführen, so dass Pufferzellen zwischen Zellen des Subsatzes von Zellen vorhanden sind. Eine Pufferzelle kann eine Zelle eines Plättchens sein, die keine I/O-Operation des Subsatzes der I/O-Operationen erfährt. Pufferzellen können einen physikalischen Raum zwischen Zellen bereitstellen, die I/O-Operationen erfahren, um das Auftreten einer Interferenz, (beispielsweise einer thermischen Interferenz) zu verringern.
  • Bei einigen Beispielen kann eine NVM-Vorrichtung den ersten Subsatz von I/O-Operationen für den ersten Subsatz von Zellen ausführen, so dass Puffer-Bitleitungen sich zwischen Zellen des Subsatzes von Zellen befinden, die sich in verschiedenen Bitleitungen befinden. Eine Puffer-Bitleitung kann eine Bitleitung eines Plättchens sein, in der keine Zellen programmiert/gelöscht sind (beispielsweise eine Bitleitung, die nichts als Pufferzellen enthält), während der Ausführung des Subsatzes von I/O-Operationen. Anders ausgedrückt heißt dies, dass bei einigen Beispielen keine Zellen des ersten Subsatzes von Zellen benachbarte Bitleitungen belegen. Bei anderen Beispielen kann eine NVM-Vorrichtung stattdessen oder außerdem Puffer-Wortleitungen nutzen. Eine Puffer-Wortleitung kann eine Wortleitung des Plättchens sein, in der keine Zellen programmiert/gelöscht sind (beispielsweise eine Wortleitung, die nichts als Pufferzellen enthält), während des Ausführens des Subsatzes von I/O-Operationen. Zum Zwecke der Klarheit werden jedoch Puffer-Bitleitungen hier überwiegend benutzt.
  • Die NVM-Vorrichtung kann die Ausführung der Vielzahl von I/O-Operationen durch paralleles Ausführen eines zweiten Subsatzes von I/O-Operationen in einem zweiten Subsatz von Zellen fortsetzen. Entsprechend dem ersten Subsatz von Zellen können Puffer-Bitleitungen zwischen Zellen des zweiten Subsatzes von Zellen vorhanden sein, die sich in unterschiedlichen Bitleitungen befinden. Der zweite Subsatz von Zellen kann dieselbe Anzahl von Zellen aufweisen wie die erste Zahl von Zellen. Die NVM-Vorrichtung kann die Ausführung der Vielzahl von I/O-Operationen unter Heranziehung von Subsätzen von I/O-Operationen an Subsätzen von Zellen des Plättchens, wie hier beschrieben solange fortsetzen, bis die in dem Plättchen auszuführenden I/O-Operationen abgeschlossen sind.
  • Bei einigen Beispielen kann sich die Vielzahl von I/O-Operationen auf Zellen beziehen, die sich innerhalb von mehr als einem Plättchen befinden. Die NVM-Vorrichtung kann beispielsweise bestimmen, dass eine Vielzahl von I/O-Operationen in Zellen zu schreiben ist, die zwei Plättchen belegen. Bei derartigen Beispielen kann die NVM-Vorrichtung keinen ersten Subsatz von I/O-Operationen in einem ersten Subsatz von Zellen in dem ersten Plättchen und einen zweiten Subsatz I/O-Operationen in einem zweiten Subsatz von Zellen in dem zweiten Plättchen, wie oben beschrieben, parallel ausführen. Die NVM-Vorrichtung kann den ersten Subsatz von Zellen und den zweiten Subsatz von Zellen derart identifizieren, dass eine oder mehrere Puffer-Bitleitungen sich zwischen Zellen des ersten Subsatzes von Zellen und Zellen des zweiten Subsatzes von Zellen befinden. Nachdem die ersten und zweiten Subsätze von I/O-Operationen ausgeführt sind, kann die NVM-Vorrichtung einen dritten und vierten Subsatz von I/O-Operationen in einen dritten und vierten Subsatz von Zellen des ersten Plättchens bzw. des zweiten Plättchens ausführen. Auf diese Weise kann die NVM-Vorrichtung durch paralleles Ausführen von I/O-Operationen für ein Plättchen von Zellen den Schreibdurchsatz steigern. Durch Einbeziehen bzw. Einschließen von Pufferzellen zwischen Zellen eines Subsatzes von Zellen, die einem Subsatz der I/O-Operationen unterzogen werden, kann die NVM-Vorrichtung ferner eine Interferenz (beispielsweise eine Störungs- bzw. Rausch-/ thermische Interferenz) zwischen Zellen des Subsatzes von Zellen (und anderen benachbarten Zellen) zur Verringerung von I/O-Operationsfehlern reduzieren.
  • 1 ist ein konzeptionelles und schematisches Blockdiagramm, welches eine Beispiels-Speicherumgebung 2 veranschaulicht, in der eine Datenspeichervorrichtung 6 Subsätze von I/O-Operationen von einer Hostvorrichtung 4 in einem Plättchen 16 gemäß einem oder mehreren Verfahren in dieser Offenbarung parallel ausführen kann. Die Hostvorrichtung 4 kann beispielsweise Daten in einer oder mehreren Datenspeichervorrichtungen 6 speichern und/oder aus dieser/diesen abrufen. Bei einigen Beispielen kann die Speicherumgebung 2 eine Vielzahl von Datenspeichervorrichtungen, wie die Datenspeichervorrichtung 6 enthalten, die als ein Speicherarray arbeiten können. Die Speicherumgebung 2 kann beispielsweise eine Vielzahl von Datenspeichervorrichtungen 6 enthalten, die als redundantes Array von billigen/unabhängigen Platten (RAID) ausgelegt sind, welche insgesamt als Massendatenspeichervorrichtung für die Hostvorrichtung 4 arbeiten.
  • Die Hostvorrichtung 4 kann eine Rechenvorrichtung enthalten, die beispielsweise einen Computer-Server, eine an einem Netzwerk angebrachte Speichereinheit (NAS), einen Desktop-Computer, einen Notebook-(beispielsweise einen Laptop-)-Computer, einen Tablet-Computer, eine Set-Top-Box, eine mobile Rechenvorrichtung, wie ein „Smart“-Phone, ein Fernsehgerät, eine Kamera, eine Displayvorrichtung, ein digitales Medien-Abspielgerät, eine Video-Spielkonsole, eine Video-Streamingvorrichtung oder dergleichen umfasst. In typischer Weise enthält die Hostvorrichtung 4 irgendeine Vorrichtung, die einen Prozessor aufweist, was sich auf irgendeine Form von Hardware bezieht, die imstande ist, Daten zu verarbeiten, und die eine Allzweck-Verarbeitungseinheit, wie eine zentrale Verarbeitungseinheit bzw. Zentraleinheit (CPU) eine zweckbestimmte Hardware (wie eine anwendungsspezifische integrierte Schaltung (ASIC)), konfigurierbare Hardware, wie ein im Feld programmierbares Gatearray (FPGA) oder irgendeine andere Form von Verarbeitungseinheit enthalten kann, die für die Software-Befehle, Microcode, Firmware oder dergleichen konfiguriert ist.
  • Wie in 1 dargestellt, kann die Datenspeichervorrichtung 6 eine Steuereinrichtung 8, eine NVM-Vorrichtung 10, eine Spannungsversorgungseinrichtung 11, einen flüchtigen Speicher 12 und ein Interface bzw. eine Schnittstelle 14 enthalten. Bei einigen Beispielen kann die Datenspeichervorrichtung 6 in 1 der Klarheit halber nicht dargestellte zusätzliche Komponenten enthalten. So kann die Datenspeichervorrichtung 6 beispielsweise eine gedruckte Schaltungsplatine (PB) enthalten, an der Komponenten der Datenspeichervorrichtung 6 mechanisch angebracht sind und die elektrisch leitende Bahnen enthält, welche Komponenten der Datenspeichervorrichtung 6 verbinden, oder dergleichen enthalten. Bei einigen Beispielen können die physikalischen Abmessungen und Verbinderkonfigurationen der Datenspeichervorrichtung 6 einem oder mehreren Standardformfaktoren entsprechen. Einige Beispiele von Standard-Formfaktoren enthalten, ohne indessen darauf beschränkt zu sein, eine 3,5"- bzw. 3,5-Zoll-Datenspeichervorrichtung (beispielsweise eine HDD- oder SSD-Platte), eine 2,5"- bzw. 2,5-Zoll-Datenspeichervorrichtung, eine 1,8-Zoll-Datenspeichervorrichtung, eine periphere Komponentenverbindung (PCI®), PCI-erweitert (PCI-X®), PCI-Express (PCIe®) (beispielsweise PCle® x1, x4, x8, x16, PCIe® MiniCard, MiniPCI®, etc.), M.2 oder dergleichen. Bei einigen Beispielen kann die Datenspeichervorrichtung 6 mit einem Motherboard bzw. einer Hauptplatine der Hostvorrichtung 4 direkt daran gelötet) sein.
  • Die Datenspeichervorrichtung 6 kann ein Interface 14 zur Schnittstellenverbindung mit der Hostvorrichtung 4 enthalten. Das Interface 4 kann einen Bus oder beide Busse von einem Datenbus zum Austausch von Daten mit der Hostvorrichtung 4 und einem Steuerbus für einen Austausch von Befehlen mit der Hostvorrichtung 4 enthalten. Das Interface 14 kann entsprechend irgendeinem geeigneten Protokoll arbeiten. Eine beispielsweise fortschrittliche Technologie-Anbindung (ATA) (beispielsweise serielle ATA (SATA) und parallele ATA (PA-TA)), Faserkanal, Kleincomputer-Systeminterface (SCSI), seriell angebrachte SCS1 (SAS), periphere Komponentenverbindung (PCI), PCI-Express oder nichtflüchtiger Speicher-Express (NVMe). Die elektrische Verbindung des Interfaces 14 (beispielsweise des Datenbusses, der Steuerbusses oder beider) ist mit der Steuereinrichtung 8 elektrisch verbunden, was für eine elektrische Verbindung zwischen der Hostvorrichtung 4 und der Steuereinrichtung 8, womit ermöglicht ist, Daten zwischen der Hostvorrichtung 4 und der Steuereinrichtung 8 auszutauschen.
  • Die Datenspeichervorrichtung 6 kann eine Spannungsversorgungseinrichtung 11 enthalten, die Versorgungsspannung für eine oder mehrere Komponenten der Datenspeichervorrichtung 6 bereitstellen kann. Auf den Betrieb in einem Standardmodus hin kann die Spannungsversorgungseinrichtung 11 Versorgungsspannung an die eine oder die mehreren Komponenten bereitstellen, indem Versorgungsspannung herangezogen wird, die von einer externen Vorrichtung, wie der Hostvorrichtung 4 bereitgestellt wird. Die Spannungsversorgungseinrichtung 11 kann beispielsweise Versorgungsspannung für die eine oder mehreren Komponenten unter Heranziehung von Versorgungsspannung bereitstellen, die von der Hostvorrichtung 4 über das Interface 14 erhalten wird. Bei einigen Beispielen kann die Versorgungsspannungseinrichtung 11 eine oder mehrere Spannungsversorgungs-Speicherkomponenten enthalten, die ausgelegt sind, um auf einen Betrieb in einem Abschaltmodus, in welchem die Versorgungsspannung endet, von der externen Vorrichtung empfangen zu werden, Versorgungsspannung für die eine oder mehreren Komponenten bereitzustellen. Auf diese Weise kann die Versorgungsspannungseinrichtung als eine Sicherungs-Spannungsversorgungsquelle an Bord bzw. auf einer Platine arbeiten. Bei einigen Beispielen enthalten die eine oder mehreren Spannungsversorgungs-Speicherkomponenten, ohne darauf beschränkt zu sein, Kondensatoren, Superkondensatoren, Batterien bzw. Akkumulatoren und dergleichen.
  • Die Datenspeichervorrichtung 6 kann außerdem einen flüchtigen Speicher 12 enthalten, der von der Steuereinrichtung 8 dazu genutzt werden kann, Informationen zu speichern. Bei einigen Beispielen kann die Steuereinrichtung 8 den flüchtigen Speicher 12 als Puffer- bzw. Cache-Speicher nutzen. Die Steuereinrichtung 8 kann beispielsweise gepufferte Informationen in dem flüchtigen Speicher 12 solange speichern, bis die gepufferte Information in Speicherzellen 16 des nichtflüchtigen Speicherarrays 10 geschrieben sind. Der flüchtige Speicher 12 kann Leistung verbrauchen, die von der Spannungsversorgungseinrichtung 11 her erhalten wird. Beispiele des flüchtigen Speichers 12 enthalten, ohne darauf beschränkt zu sein, einen Schreib-Lese-Speicher mit wahlfreiem Zugriff (RAM), einen dynamischen Schreib-Lese-Speicher mit wahlfreiem Zugriff (DRAM), einen statischen RAM-Speicher (SRAM), einen synchronen dynamischen RAM-Speicher (SDRAM (beispielsweise DDR1, DDR2, DDR3, DDR3L, LPDD3, DDR4 und dergleichen).
  • Die Datenspeichervorrichtung 6 enthält zumindest eine NVM-Vorrichtung 10, wobei für Zwecke der Klarheit lediglich eine in 1 dargestellt ist. Die NVM-Vorrichtung 10 kann eine Vielzahl von Zellen 18A-18H (insgesamt „Zellen 18“) über eine Vielzahl von Plättchen 16Aa-16Nn (insbesondere „Plättchen 16“) enthalten. Jede Zelle der Zellen 18 kann eine Kreuzungspunktspeicherarchitektur zur Speicherung von Daten implementieren. Die NVM-Vorrichtung 10 kann so ausgelegt sein, um relativ große Datenmengen zu speichern (beispielsweise 128MB, 512MB, 1GB, 4GB, 16GB, 64GB, 128GB, 512GB, 1TB, etc.). Bei einigen Beispielen kann die NVM-Vorrichtung 10 eine Vorrichtung aus einer Vielzahl von NVM-Vorrichtungen der Datenspeichervorrichtung 6 sein. Bei einigen Beispielen können die NVM-Vorrichtungen 10 alle dieselbe Kapazität aufweisen, oder die NVM-Vorrichtungen 10 können unterschiedliche Kapazitäten aufweisen.
  • Bei einigen Beispielen können einige Zellen 18 der NVM-Vorrichtung 10 andere Formen des Speichers verwenden (beispielsweise anstelle der exklusiven Nutzung der Kreuzungspunkttechnologie). So kann beispielsweise ein Teil der NVM-Vorrichtung 10 Flashspeichervorrichtungen (beispielsweise NAND bzw. NAND-Speicher oder NOR bzw. NOR-Speicher), einen ferroelektrischen Schreib-Lese-Speicher mit wahlfreiem Zugriff (FRAM), holographische Speichervorrichtungen und irgendeinen anderen Typ von nichtflüchtigen Speichervorrichtungen enthalten. Bei einigen Beispielen können PCM-, ReRAM-, MRAM- und FRAM-Vorrichtungen eine bessere Lebensdauer besitzen als Flash-NVM-Vorrichtungen. Mit anderen Worten können PCM-, ReRAM-, MRAM- und FRAM-Vorrichtungen imstande sein, im Vergleich zu Flash-NVM-Vorrichtungen mehr Lese- und Schreiboperationen vor Abnutzung auszuführen.
  • Die Datenspeichervorrichtung 6 enthält die Steuereinrichtung 8, die eine oder mehrere Operationen der Datenspeichervorrichtung 6 verwalten bzw. managen kann. Die Steuereinrichtung 8 kann beispielsweise das Lesen von Daten aus der und/oder das Schreiben von Daten in die NVM-Vorrichtung 10 managen. Die Steuereinrichtung 8 kann eine Einrichtung von oder aus einer Kombination von einem oder mehreren von einem Mikroprozessor, einem digitalen Signalprozessor (DSP), einer Anwendung spezifischen integrierten Schaltung (ASIC), einem im Feld programmierbaren Gatearray (FPGA) oder einer anderen digitalen Verknüpfungsschaltung darstellen.
  • Gemäß einigen Verfahren bzw. Techniken dieser Offenbarung kann die Steuereinrichtung bei einigen Beispielen bestimmen, wann und wie Subsätze von I/O-Operationen parallel mit einer oder mehreren Plättchen der NVM-Vorrichtung 10, wie hier beschrieben, auszuführen sind. Bei diesen Beispielen braucht die NVM-Vorrichtung 10 diese Funktionen nicht auszuführen, sondern stattdessen lediglich die Plättchen 16 und Zellen 18 zu speichern, bezüglich der die Funktionen ausgeführt werden. Die Steuereinrichtung 8 kann beispielsweise bestimmen, wann eine Vielzahl von I/O-Operationen in einem Plättchen eines Speicherarrays der NVM-Vorrichtung 10 zu schreiben sind. Auf die Bestimmung hin, dass die Vielzahl von I/O-Operationen in ein Plättchen 16 zu schreiben ist, kann die Steuereinrichtung 8 eine Reihe von Subsätzen von I/O-Operationen bestimmen, die in einer Reihe von Subsätzen der Zellen 18 auszuführen sind. Jeder Subsatz von Zellen 18 kann hier nachstehend als ein Block bezeichnet werden. Jeder Block oder Subsatz von Zellen 18 kann sich innerhalb eines Plättchens der Plättchen 16 befinden, und jedes Plättchen 16 kann eine Vielzahl von Blöcken oder Subsätzen von Zellen 18 enthalten. Ferner kann die Steuereinrichtung 8 bei einigen Beispielen detektieren, wann eine Schreibstrombedingung sich im Zuge der Ausführung derartiger Subsätze von I/O-Operationen verbessert. Ein Schreibstromzustand kann sich verbessern, wenn die Höhe des Stromes, den die Spannungsversorgungseinrichtung 11 erzeugen muss, um den elektrischen Widerstand der jeweiligen Speicherzellen 18 zu ändern, abnimmt, so dass die Spannungsversorgungseinrichtung 11 wenigstens Strom für einen elektrischen Impuls erzeugen kann, während der elektrische Impuls den elektrischen Widerstandszustand der jeweiligen Speicherzellen 18 noch zuverlässig ändert. Auf die Verbesserung des Schreibstromzustands kann die Steuereinrichtung 8 die Anzahl von Zellen innerhalb des Blockes modifizieren (beispielsweise erhöhen), um den Schreibdurchsatz weiter zu steigern.
  • Bei anderen Beispielen kann die NVM-Vorrichtung 10 bestimmen, wann und wie eine Vielzahl von I/O-Operationen in einem Plättchen der NVM-Vorrichtung 10 auszuführen ist, oder die NVM-Vorrichtung 10 kann einige dieser Funktionen ausführen, während die Steuereinrichtung 8 andere Funktionen ausführt. Die NVM-Vorrichtung 10 kann beispielsweise detektieren, wann sich die Schreibstromzustände verbessern, die tatsächlichen I/O-Operationen ausführen oder dergleichen, während die Steuereinrichtung 8 bestimmt, die Vielzahl von I/O-Operationen in dem Plättchen auszuführen, und die Größe der Blöcke bestimmt und/ oder aktualisiert, in denen die Vielzahl von I/O-Operationen auf einmal ausgeführt werden. Obwohl die NVM-Vorrichtung 10 über die Offenbarung hinweg als Vorrichtung beschrieben ist, die relevante Bestimmungen vornimmt und die Ausführung einer Vielzahl von I/O-Operationen in einem Plättchen zum Zwecke der Klarheit parallel ausführt, ist daher einzusehen, dass es in Betracht gezogen wird und mit dieser Offenbarung und bezüglich der Steuereinrichtung 8 konsistent ist, um einige oder sämtliche dieser Bestimmungen vorzunehmen.
  • Die NVM-Vorrichtung 10 kann eine PCM- oder ReRAM-Technologie nutzen, und sie kann den elektrischen Widerstandszustand von individuellen Zellen der Zellen 18 zur Speicherung von Daten ändern. Plättchen 16 brauchen nicht durch physikalische Teile bzw. Bereiche der NVM-Vorrichtung 10 vorherbestimmt zu sein, obwohl bei einigen Beispielen Plättchen 16 vorherbestimmte physikalische Bereiche der NVM-Vorrichtung 10 sein können. Vielmehr können Plättchen 16 in einer Zuordnung von Zellen 18 vorliegen, innerhalb der eine Vielzahl von elektrischen Impulsen einer Vielzahl von I/O-Operationen angelegt sein können, während der NVM-Vorrichtung 10 ermöglicht ist, gleichzeitig eine Vielzahl von elektrischen Impulsen an eine Vielzahl von Fällen 18 innerhalb einer oder mehrerer benachbarter Plättchen 16 zu geben. Bei einigen Beispielen können die Plättchen 16 eine Zuordnung von Zellen 18 sein, die jeweils eine I/O-Operation der empfangenen Vielzahl von I/O-Operationen unterzogen werden. Bei einigen Beispielen kann die NVM-Vorrichtung 10 Plättchen 16 so konfigurieren, dass die Konfiguration der Spannungsversorgungseinrichtung 11 und der Zellen 18 in dem NVM-Array ausreichen können, um elektrische Impulse zu erzeugen, die eine I/O-Operation in jeder Zelle 18 einer Bitleitung des Plättchens 16 parallel ausführen.
  • Jede Zelle 18 eines Plättchens 16 kann zumindest eine Bitleitung oder eine Wortleitung mit zumindest einer anderen Zelle 18 des Plättchens 16 gemeinsam nutzen. Bei einigen Beispielen kann jede Zelle 18 eines Plättchens 16 sowohl eine Wortleitung als auch eine Bitleitung mit zumindest einer anderen Zelle 18 des Plättchens 16 gemeinsam nutzen. Bei einigen Beispielen kann die Schaltung bzw. Schaltungsanordnung der Datenspeichervorrichtung 6 so ausgelegt sein, um zumindest einen Strom IRESET gleichzeitig an jeden Plättchen 16 der NVM-Vorrichtung 10 zu einer gegebenen Zeit zu liefern. Bei bestimmten Beispielen kann dieser Strom für jedes Plättchen 16 der NVM-Vorrichtung 10 ausreichend sein, um gleichzeitig zumindest eine RESET bzw. -Rücksetz-Operation zu einer gegebenen Zeit auszuführen.
  • Die Rücksetz-Operation kann den elektrischen Widerstand der Speicherzelle 18 von einem relativ niedrigen Widerstand in einen relativ hohen Widerstand ändern, indem ein elektrischer Impuls von einer spezifischen Größe des Stromes (IRESET bzw. IRücksetz) an den Speicherwiderstand der Speicherzelle 18 angelegt wird. Das Ändern des elektrischen Widerstands einer Zelle 18 von einem relativ niedrigen Widerstand in einen relativ hohen Widerstand kann ein Ändern des gespeicherten Verknüpfungszustands eines Speicherwiderstands der Speicherzelle 18 einschließen (beispielsweise einer Änderung eines Speicherwiderstands, der eine PCM-Technologie nutzt, von einem kristallinen Zustand in einen amorphen Zustand). Die SET- bzw. Setz-Operation kann den elektrischen Widerstand der Speicherzelle 18 von einem relativ hohen Widerstand in einen relativ niedrigen Widerstand ändern, indem ein elektrischer Impuls einer anderen Größe des Stromes (ISETZ) an den Speicherwiderstand der Speicherzelle 18 gelegt wird. Das Anlegen bzw. Abgeben von ISETZ an den Speicherwiderstand kann den gespeicherten Verknüpfungszustand des Speicherwiderstands der Speicherzelle 18 ändern (dadurch kann beispielsweise ein Speicherwiderstand, der eine PCM-Technologie nutzt, von einem amorphen Zustand in einen kristallinen Zustand geändert werden).
  • Die Plättchen 16 sind für Zwecke der Klarheit mit zwei Zellen 18 dargestellt. Jedes Plättchen der Plättchen 16 kann irgendeine Anzahl von Zellen 18 enthalten. Die Zuordnung von Zellen 18 innerhalb eines Plättchens 16 kann durch Analysieren der Stromanforderungen und des Spannungsabfalls von Schreiboperationen über Zellen 18 innerhalb eines Plättchens 16 bestimmt werden. Das Plättchen 16Aa kann beispielsweise so groß sein, um benachbarten Plättchen 16Ab und 16Ba (nicht dargestellt) zu ermöglichen, Schreiboperationen parallel mit dem Plättchen 16Aa auszuführen. Die NVM-Vorrichtungen 10, die PCM-Vorrichtungen sind, können die Größe des Plättchens 16 auf der Grundlage von IRESET bestimmen, da die IRESET größer ist als ISET (was beispielsweise mehr Strom beansprucht, um einen Speicherwiderstand einer Zelle 1 in einen Reset- bzw. Rücksetz-Zustand relativ hohen Widerstands zu versetzen als die Größe des Stroms, die dazu führt, einen Speicherwiderstand einer Zelle 18 in einen SET- bzw. Setz-Zustand relativ niedrigen Widerstands zu versetzen). Bei einigen Beispielen enthält jedes Plättchen 16 der NVM-Vorrichtung 10 dieselbe Anzahl von Zellen 18.
  • Gemäß den Verfahren dieser Offenbarung kann die NVM-Vorrichtung 10 eine Vielzahl von I/O-Operationen von der Steuereinrichtung 8 her empfangen. Die I/O-Operationen können letztlich von dem Host 4 über das Interface 14 ausgehen, oder die I/O-Operationen können von der Steuereinrichtung 8 ausgehen. Die Vielzahl von I/O-Operationen kann von der Steuereinrichtung 8 in einer einzigen Zeitspanne empfangen werden, oder die Vielzahl von I/O-Operationen kann über eine Zeitspanne von der Steuereinrichtung 8 empfangen werden. Sogar bei Beispielen, bei denen die Steuereinrichtung 8 die parallele Ausführung einer Bitzahl von I/O-Operationen für ein Plättchen nicht managt, kann die Steuereinrichtung 8 noch einige Funktionen hinsichtlich der Ausführung I/O-Operationen ausführen. So kann die Steuereinrichtung 8 beispielsweise die I/O-Operationen aus einem ersten Format, welches von dem Host 4 benutzt wird, in ein zweites Format umsetzen, welches von der NVM-Vorrichtung 10 benutzt wird, und die Steuereinrichtung 8 kann jeweilige Zellen 18 und/oder Plättchen 16 identifizieren, in denen die I/O-Operationen ausgeführt werden, oder dergleichen.
  • Bei einigen Beispielen kann jede der Vielzahl von I/O-Operationen Zellen 18 eines Plättchens 16 löschen, so dass die NVM-Vorrichtung 10 eine RESET-Operation auf jede Zelle 18 des Plättchens 16 ausüben wird. Bei anderen Beispielen kann jede I/O-Operation der Vielzahl von I/O-Operationen die jeweilige Zelle 18 eines Plättchens 16 programmieren, so dass die NVM-Vorrichtung 10 eine SET-Operation auf jede Zelle des Plättchens 16 ausübt. Die Vielzahl der I/O-Operationen kann sich auf sämtliche Zellen 18 eines Plättchens 16 oder auf eine Vielzahl von Zellen 18 eines Plättchens 16 beziehen. Bei anderen Beispielen bezieht sich die Vielzahl von I/O-Operationen auf sämtliche der Zellen 18 einer Vielzahl von Plättchen 16, wie auf jede Zelle 18 jedes Plättchens 16 zwischen Plättchen 16Aa und dem Plättchen 16An. Bei noch anderen Beispielen beziehen sich die I/O-Operationen auf die Zellen 18 von einem oder mehreren Plättchen 16, wie auf einige Zellen 18 des Plättchens 16Aa und auf einige Zellen 18 des Plättchens 16Nn. Andere lokalisierte Bereiche der Zellen 18, die mit dieser Offenbarung konsistent sind, sind ebenfalls möglich.
  • Bei einigen Beispielen kann die NVM-Vorrichtung 10 identifizieren, dass die Vielzahl der I/O-Operationen für bestimmte Plättchen 16 erfolgt. Falls beispielsweise die Vielzahl der I/O-Operationen sich auf das Löschen von in den Zellen 18A-18D gespeicherten bestimmten Daten beziehen, kann die NVM-Vorrichtung 10 sodann die Daten als innerhalb der Plättchen 16Aa-16An gespeichert identifizieren. Bei anderen Beispielen können die Steuereinrichtung 8 oder die NVM-Vorrichtung 10 die Vielzahl von I/O-Operationen einem oder mehreren Plättchen 16 zuordnen. Falls beispielsweise die Vielzahl von I/O-Operationen sich auf das Programmieren von neuen Daten bezieht, können die Steuereinrichtung 8 oder die NVM-Vorrichtung 10 die Vielzahl von I/O-Operationen beispielsweise den Zellen 18 der Plättchen 16An und Na zuweisen. Die Steuereinrichtung 8 und/oder die NVM-Vorrichtung 10 können die Vielzahl von I/O-Operationen bestimmten Zellen 18 und/oder Plättchen 16 aus Gründen des elektrischen Stromes zuweisen (beispielsweise das Zuweisen von Programm- bzw. Programmierungsanforderungen an spezifische Zellen 18/Plättchen 16, um eine Anzahl von Schreibanforderungen zu steigern, die bei einem gegebenen Spannungsabfall über Bereiche von Bitleitungen und/oder Wortleitungen gleichzeitig ausgeführt werden können). Bei einigen Beispielen können die Steuereinrichtung 8 oder die NVM-Vorrichtung 10 die I/O-Operation für die NVM-Vorrichtung 10 aus Langlebigkeitsgründen zuweisen (beispielsweise abwechselnd der Stelle von Schreibvorgängen, um eine Beeinträchtigung von einigen Zellen 18 durch eine relativ hohe Anzahl I/O-Operationen zu vermeiden). Bei einigen Beispielen kann die NVM-Vorrichtung 10 die I/O-Operationen zu Plättchen 16 zufällig oder pseudozufällig zuweisen.
  • Bei einigen Beispielen kann die NVM-Vorrichtung 10 detektieren, dass die Vielzahl der I/O-Operationen in einer bestimmten Anzahl von Zellen 18 auszuführen ist. Ferner kann die NVM-Vorrichtung 10 bestimmen, dass die bestimmte Anzahl von Zellen 18 größer ist als eine maximale Anzahl von Zellen 18, die in einem Block enthalten sein können. Auf das Detektieren hin, dass die bestimmte bzw. gewisse Anzahl von Zellen größer ist als eine maximale Anzahl von Zellen 18 eines Blocks kann die NVM-Vorrichtung 10 einen ersten Subsatz von I/O-Operationen bestimmen, wie in einem ersten Block des Plättchens 16 ausgeführt werden können. Bei einigen Beispielen kann die NVM-Vorrichtung 10 lediglich den ersten Block bestimmen, falls I/O-Operationen für jede Zelle 18 des Plättchens 16 dieselben sind (beispielsweise dann, wenn sämtliche der Vielzahl von I/O-Operationen RESET-Operationen umfassen, um Zellen 18 zu löschen; die NVM-Vorrichtung 10 braucht nicht individuell eine I/O-Operation für jede Zelle 18 zu bestimmen).
  • Die NVM-Vorrichtung 10 kann den ersten Block auf der Grundlage der Größe des Stromes bestimmen, den die Spannungsversorgungseinrichtung 11 an spezifische Zellen 18 und Plättchen 16 bereitzustellen ausgelegt ist. Die NVM-Vorrichtung 10 kann den ersten Block festlegen, um so viele Zellen 18 des Plättchens 16 (und darin so viele I/O-Operationen aus der Vielzahl von I/O-Operationen) einzuschließen, wie die Spannungsversorgung 11 zur Bereitstellung eines ausreichenden Stromes für ein Plättchen der Plättchen 16 ausgelegt ist. In einigen Fällen kann die NVM-Vorrichtung 10 lediglich so ausgelegt sein, um einen ausreichenden Strom zur Ausführung von I/O-Operationen in einer gewissen Anzahl von Zellen 18 einer einzigen Bitleitung zu liefern (die Spannungsversorgungseinrichtung 11 ist beispielsweise so ausgelegt, um ISET für zu löschende Zellen 18 einer Bitleitung bereitzustellen, nicht jedoch ISET für sechs zu löschende benachbarte Zellen 18 einer Bitleitung). Ferner kann die Spannungsversorgungseinrichtung 11 in gewissen Fällen lediglich so ausgelegt sein, um einen Strom zur Ausführung von I/O-Operationen in einer gewissen Anzahl von Zellen 18 einer einzigen Wortleitung zu liefern (beispielsweise ist die Spannungsversorgungseinrichtung 11 ausgelegt, um ISET für sechs zu löschenden Zellen 18 einer Wortleitung innerhalb des Plättchens 18 bereitzustellen, nicht jedoch, um ISET für sieben zu löschende Zellen 18 des Plättchens 16 bereitzustellen). Bei diesem Beispiel kann die NVM-Vorrichtung 10 diese Information dazu heranziehen, einen Block zu bestimmen, der sechs Zellen 18 einer Wortleitung zu fünf Zellen 18 groß ist (womit der Block beispielsweise 30 Zellen 18 enthält, die in einem Rechteck angeordnet sind). Ein Block kann eine Konfiguration/Anordnung/Form der Zellen 18 auf der Oberfläche der NVM-Vorrichtung 10 aufweisen. Andere Anordnungen von Zellen 18 können bei anderen Beispielen, wie hier erörtert, in Abhängigkeit von der Anordnung des Plättchens 16, der Stromkapazität der NVM-Vorrichtung 10 oder unter anderen Erwägungen verwendet werden. Auf diese Weise kann die NVM-Vorrichtung 10 Blöcke bestimmen, die im Wesentlichen gleichzeitig betrieben werden können; dies kann zu einem besseren Schreibdurchsatz als durch sequentielle I/O-Operationen führen.
  • Die NVM-Vorrichtung 10 kann die einzelnen Zellen in dem ersten Block auswählen, so dass einige Zellen, die entweder eine Bitleitung oder eine Wortleitung gemeinsam nutzen, zumindest eine Pufferzelle auf der jeweiligen Bitleitung oder Wortleitung aufweisen, die beide nicht einer I/O-Operation des ersten Subsatzes von I/O-Operationen unterzogen werden, und zwischen jeweiligen Zellen, die entweder die Bitleitung oder die Wortleitung gemeinsam nutzen. Bei einigen Beispielen kann die NVM-Vorrichtung 10 Zellen 18 des ersten Blocks auswählen, so dass die jeweiligen Puffer-Wortleitungen oder Puffer-Bitleitungen sich zwischen jeweiligen Zellen 18 des ersten Blockes befinden, die sich in unterschiedlichen Wortleitungen oder Bitleitungen befinden. Zum Zwecke der Klarheit werden die Puffer-Bitleitungen hier vorherrschend für Pufferzellen erörtert. Unter Heranziehung von sechs Zellen 18 zu fünf Zellen 18 bei dem obigen Beispiel kann der erste Block beispielsweise 30 Zellen 18 enthalten, die sich in sechs Bitleitungen befinden, wobei keine der sechs Bitleitungen des ersten Blocks einander benachbart sind. In Abhängigkeit von der Konfiguration der Zellen 18 in der NVM-Vorrichtung 10 können sich in einigen Fällen mehr als eine Puffer-Bitleitung zwischen dieser Bitleitung des ersten Subsatzes der Zellen 18 befinden (beispielsweise können zwei oder drei oder mehr Puffer-Bitleitungen in dem Fall, dass Zellen 18 sich relativ nahe auf einer Oberfläche der NVM-Vorrichtung 10 befinden, dazu herangezogen werden, eine Isolierung über einer thermischen Interferenz von benachbarten I/O-Operationsausführungen bereitzustellen).
  • Durch Auswählen des ersten Blockes so, dass keine der Zellen 18 des ersten Blocks benachbarte Bitleitungen belegt, kann die NVM-Vorrichtung 10 die Möglichkeit einer Interferenz verringern, die sich negativ auf die Integrität der I/O-Operationen auswirkt (beispielsweise als Ergebnis einer thermischen Interferenz). Sind I/O-Operationen im Wesentlichen gleichzeitig ausgeführt, könnte dies zu lokalisierten Hot Spots bzw. Heißpunkten in der NVM-Vorrichtung 10 führen. Da die Zellen 18 Zustände auf der Grundlage von thermischen Effekten umschalten, könnten lokalisierte Hot Spots benachbarte Zellen 18 veranlassen (beispielsweise Zellen innerhalb eines selben Blocks/Plättchen oder von Zellen, die sich nicht in einem selben Block/Plättchen befinden), unpassend umgeschaltet zu werden, was potentiell zu Fehlern führt. Die Pufferzellen können die Konzentration des Stromes innerhalb eines kleinen Bereichs der NVM-Vorrichtung 10 reduzieren, was darin eine lokalisierte Erhitzung verringern und eine Chance dafür senken kann, dass eine Zelle unbeabsichtigt umgeschaltet wird. Durch Ausführen von Subsätzen der Vielzahl von I/O-Operationen in einer Vielzahl von Zellen 18 in Blöcken kann die NVM-Vorrichtung 10 ferner den Schreibdurchsatz steigern, indem die Länge der I/O-Operationen erhöht wird, die zu einer gegebenen Zeit ausgeführt werden können.
  • 2 ist ein konzeptionelles und schematisches Blockdiagramm, welches Beispielskomponenten einer NVM-Vorrichtung 10 gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht. Die NVM-Vorrichtung 10 kann, wie in 2 dargestellt, ein I/O-Modul 20, ein Steuermodul 22, ein Schreibmodul 24, einen Zeilendecoder 26, ein Speicherarray 28, ein Blockkonfigurationsmodul 30, ein Zählermodul 32, einen Spaltendecoder 34 und ein Erfassungsmodul 36 enthalten. Bei einigen Beispielen kann die NVM-Vorrichtung 10 mehr oder weniger Komponenten als jene, die in 2 dargestellt sind, enthalten, oder Funktionen, die der Vielzahl von in 2 dargestellten Modulen zuzuschreiben sind, können in einem einzigen Modul realisiert sein. Jedes der in 2 dargestellten und in Bezug darauf beschriebene Module kann in Hardware, Firmware, Software oder eine Kombination daraus realisiert sein, und verschiedene Module können unterschiedlich realisiert sein. Das Speicherarray 28 kann, wie oben beschrieben, Plättchen 16 und Zellen 18 enthalten.
  • die NVM-Vorrichtung 10 ist als Module enthaltend dargestellt, (beispielsweise das Modul 22 und das Blockkonfigurationsmodul 30), die als ausführende Verfahren dieser Offenbarung beschrieben werden bzw. sind. Wie oben erörtert, können bei alternativen Beispielen einige oder sämtliche der Funktionen, die diesen Modulen zuzuschreiben sind, hier (beispielsweise das Steuermodul 22 oder das Blockkonfigurationsmodul 30) stattdessen durch die Steuereinrichtung 8 der Datenspeichervorrichtung 6 (1) ausgeführt werden. Obwohl Beispiele unten hauptsächlich Bestimmungen erörtern, die in Kontext eines einzigen Plättchens 16 zum Zwecke der Klarheit vorgenommen werden, ist einzusehen, dass das Steuermodul 22 derartige Bestimmungen für eine Vielzahl von Plättchen 16 sequentiell oder gleichzeitig vornehmen kann. Das Steuermodul 22 kann beispielsweise ausgelegt sein, um eine Vielzahl von I/O-Operationen parallel in einem Plättchen 16, wie hier erörtert, für eine Mehrzahl von Plättchen 16 des Speicherarrays 28 zu einer selben Zeit auszuführen, so dass das Steuermodul 22 eine Mehrzahl von Sätzen aus der Vielzahl von I/O-Operationen managt, um in eine Mehrzahl von Plättchen 16 geschrieben zu werden, oder dass das Steuermodul 22 eine einzige Vielzahl von I/O-Operationen managt, die in einer Mehrzahl von Plättchen 16 auszuführen sind.
  • Die Steuereinrichtung 8 kann eine Vielzahl von I/O-Operationen an die NVM-Vorrichtung 10 senden, die von dem I/O-Modul 20 aufgenommen werden. Bei einigen Beispielen kann das I/O-Modul 20 Informationen aus der Vielzahl der I/O-Operationen von einem ersten Format, welches von dem Host 4 oder der Steuereinrichtung 8 benutzt wird, in ein zweites Format umsetzen, welches von der NVM-Vorrichtung 10 benutzt wird. I/O-Modul 20 kann eintreffende I/O-Operationen in eine oder mehrere Schlangen organisieren (beispielsweise in eine Schlange für jedes Plättchen 16 oder für jede NVM-Vorrichtung 10 des NVM-Arrays 28). Die eine oder mehreren Schlangen können pseudo-konstant aktualisiert werden, wenn neue I/O-Operationen durch das I/O-Modul 20 empfangen werden, und das Steuermodul 22 managt die Ausführung der in der bzw. den Schlange(n) befindlichen I/O-Operationen. Bei einigen Beispielen wird eine Vielzahl von in einem Plättchen 16 parallel auszuführenden I/O-Operationen in einer einzigen Übertragung zu dem I/O-Modul empfangen. Bei anderen Beispielen kann die Vielzahl der I/O-Operationen über eine Anzahl von Übertragungen empfangen werden, oder die betreffende Vielzahl der I/O-Operationen kann einmal oder mehrmals zu einer Zeit empfangen werden, bis das Steuermodul 22 sämtliche I/O-Operationen in die Vielzahl von I/O-Operationen zusammensetzt.
  • Das Schreibmodul 24 kann einen oder mehrere Aspekte des Schreibens von Daten in das Speicherarray 28 managen. Das Schreibmodul 24 kann beispielsweise I/O-Operationen für das Speicherarray 28 ausführen, indem Zellen 18 des Blockes eines Plättchens 16 innerhalb des Speicherarrays 28 ausgewählt werden, um einen Subsatz der Vielzahl von I/O-Operationen die Daten der I/O-Operationen, wie hier beschrieben, parallel auszuführen. Das Schreibmodul 24 kann eine Vielzahl von elektrischen Impulsen an den Block leiten und festlegen, indem der Zeilendecoder 26 und der Spaltendecoder 34 genutzt werden. Das Schreibmodul 24 kann einen elektrischen Impuls festlegen, indem ein Strom oder eine Spannung eines elektrischen Impulses spezifiziert wird. Der Zeilendecoder 26 und der Spaltendecoder 34 können die Vielzahl der elektrischen Impulse zu dem Block hin leiten, so dass auf der einzigen Zelle 18 einer gegebenen bzw. bestimmten Zeile und Spalte pro elektrischem Impuls zugegriffen wird. Das Hinleiten eines elektrischen Impulses zu den ausgewählten Zellen 18 kann einen Zustand elektrischen Widerstands des Blocks ändern, der die Lösch- oder Programmierung- bzw. Programmoperation für jede Zelle 18 des Blocks speichert.
  • Das Schreibmodul 24 kann beispielsweise eine Vielzahl von I/O-Operationen ausführen, die Löschoperationen (beispielsweise SETZ-Operationen) umfassen. Das Schreibmodul 24 kann bestimmen, dass die Vielzahl von Lösch-I/O-Operationen für die Zellen 18 des Plättchens 16Aa auszuführen ist. Das Steuermodul 22 kann bestimmen, dass ein erster Satz von Zellen 18 die Zelle 18A enthalten kann. Falls die NVM-Vorrichtung 10 beispielsweise eine NVM-Vorrichtung ist, kann ein Speicherwiderstand der Zelle 18A sich zunächst in einem amorphen Zustand mit einem relativ hohen elektrischen Widerstand befinden, um einen Wert, beispielsweise eine logische Eins zu speichern. Das Schreibmodul 24 kann einen Satz von elektrischen Impulsen mit einem maximalen Strom von ISET für den Block erzeugen. Der Zeilendecoder 26 und der Spaltendecoder 34 können den elektrischen Impuls zu den Zellen 18 des ersten Blockes hinleiten, der die Zelle 18A enthält. Falls die NVM-Vorrichtung 10 beispielsweise eine PCM-Vorrichtung ist, kann ein Speicherwiderstand der Zelle 18A mit relativ niedrigem elektrischen Widerstand kristallin werden, um einen Wert einer logischen Null zu speichern.
  • Als weiteres Beispiel kann das Schreibmodul 24 eine Vielzahl von I/O-Operationen ausführen, die Programmierungs-Operationen (beispielsweise RESET-Operationen) enthalten. Das Schreibmodul 24 kann bestimmen, dass die Vielzahl der I/O-Operationen für das Plättchen 16An auszuführen ist. Das Steuermodul 22 kann einen ersten Block für das Schreibmodul 24 bestimmen, um in diesen zu schreiben. Der erste Block kann die Zellen 18C enthalten. Ein Speicherwiderstand der Zelle 18C kann zunächst einen relativ niedrigen elektrischen Widerstand aufweisen, um einen Wert, beispielsweise eine logische Null zu speichern. Das Schreibmodul 24 kann die Spannungsversorgungseinrichtung 11 dazu heranziehen, eine Vielzahl von elektrischen Impulsen mit einem maximalen Strom von IRESET zu erzeugen. Der Zeilendecoder 26 und der Spaltendecoder 34 können den elektrischen Impuls zu der ausgewählten Zelle hinleiten, beispielsweise zu der Zelle 18B, so dass der Speicherwiderstand der Zelle 18C (unter anderen Speicherwiderständen des Blocks) einen relativ hohen elektrischen Widerstand aufweist, um einen Wert einer logischen Eins zu speichern.
  • Bei einigen Beispielen kann das Steuermodul 22 bestimmen, ob Subsätze einer Vielzahl von I/O-Operationen für ein Plättchen 16 parallel auszuführen sind. Das Steuermodul 22 kann somit Subsätze aus irgendeinem oder mehreren Gründen einer Anzahl von Gründen ausführen, wie der Nähe der Vielzahl von Zellen 18, in denen Operationen auszuführen sind, um einem Lokalisierungsschwellwert zu genügen (beispielsweise dort, wo die Vielzahl von Zellen 18 zumindest 19 von jeweils 20 Zellen 18 ausmachen, die zu zumindest einer anderen Zelle 18 der Vielzahl von Zellen 18 benachbart sind, oder dort, wo die Vielzahl von Zellen 18 zumindest 75% der Zellen 18 der jeweiligen Plättchen 16 umfassen). Andere Gründe können die Anzahl von I/O-Operationen innerhalb der Vielzahl von I/O-Operationen umfassen, welche einem Schwellwert genügen, das Detektieren einer Benutzereingabe (beispielsweise der Benutzereingabe, welche die Datenspeichervorrichtung 6 befehligt, Subsätze einer Vielzahl von I/O-Operationen für die Plättchen 16 parallel auszuführen), ein Detektieren einer Dringlichkeit der Vielzahl von I/O-Operationen (beispielsweise dann, wenn ein eintreffender Stapeljob- bzw. -auftrag von I/O-Operationen ein Flag enthält, welches anzeigt, dass der Stapeljob innerhalb einer Zeitspanne ausgeführt werden muss, die einen bestimmten Schwellwert genügt) oder dergleichen. Das Steuermodul 22 kann das Blockkonfigurationsmodul 30 veranlassen, die Blöcke zu bestimmen, in die die Vielzahl von I/O-Operationen zu schreiben ist.
  • Das Blockkonfigurationsmodul 30 kann die Vielzahl von I/O-Operationen kanalisieren, um Blöcke zu bestimmen, in die Subsätze von I/O-Operationen parallel geschrieben werden. Das Blockkonfigurationsmodul 30 kann eine Blockgröße für einen oder mehrere Plättchen 16 bestimmen, in die als Teil der Ausführung der I/O-Operationen geschrieben wird. Bei gewissen Beispielen kann das Blockkonfigurationsmodul 30 eine Blockgröße für jedes Plättchen 16 bestimmen, in den geschrieben wird. Bei anderen Beispielen kann das Blockkonfigurationsmodul 30 lediglich eine Blockgröße für Plättchen 16 bestimmen, die eine Anzahl/einen Prozentsatz von Zellen 18 aufweisen, in die eingeschrieben wird, welche einem Schwellwert genügen. Während Blöcke hier vorherrschend als generell rechteckförmig erörtert sind, ist einzusehen, dass Blöcke von irgendeiner Form sein können, die ausgelegt ist, um parallele I/O-Operationen für Zellen 18 eines Plättchens 16 unter Heranziehung von Puffer-Bitleitungen auszuführen.
  • Nachdem ein erster Subsatz von I/O-Operationen ausgeführt ist, kann das Blockkonfigurationsmodul 30 bei einigen Beispielen einen zweiten Block bestimmen, bei dem ein zweiter Subsatz von I/O-Operationen der Vielzahl von I/O-Operationen auszuführen ist. Das Blockkonfigurationsmodul 30 kann den zweiten Block in einer im Wesentlichen ähnlichen bzw. entsprechenden Weise bestimmen, wie das Blockkonfigurationsmodul 30 den ersten Block bestimmte (beispielsweise Bestimmen des ersten Blockes so, dass die Anzahl von Zellen 18 innerhalb des ersten Subsatzes unter Berücksichtigung der Stromdichte des Plättchens 16 gesteigert ist).
  • Bei einigen Beispielen kann das Blockkonfigurationsmodul 30 einen ersten Block so bestimmen, dass ein zweiter (und dritter und vierter, etc.) Block natürlich folgt. Unter Heranziehung des obigen Falles, in welchem das Blockkonfigurationsmodul 30 einen 5-zu-6-Block bestimmt, kann das rechteckförmige Plättchen 16 beispielsweise durch 10-zu-12 Zellen 18 gegeben sein. Das Blockkonfigurationsmodul 30 kann bestimmen, dass vier Reihen I/O-Operationen, die über 30 Zellen 18 zu einer Zeit parallel ausgeführt werden, imstande sind, die Gesamtheit der Vielzahl von I/O-Operationen auf vier Auftritte hin auszuführen (beispielsweise wenn 120 I/O-Operationen, die mit einer Rate von 30 I/O-Operationen pro Auftreten ausgeführt werden, nach vier Auftritten beendet sein werden). Das Blockkonfigurationsmodul 30 kann bestimmen, jeden nachfolgenden Block auf relativ benachbarte Sätze von Bitleitungen zu lokalisieren (beispielsweise dort, wo ein erster Block sich an Wortleitungen 1-5 und Bitleitungen 1, 3, 5, 7 und 9 befinden; ein zweiter Block kann sich an Wortleitungen 1-5 und Bitleitungen 2, 4, 6, 8 und 10 befinden). Daraufhin, dass das Schreibmodul 24 detektiert, dass ein Block einen Rand eines Plättchens 16 belegt (beispielsweise das Plättchen 16 weist mehr Bitleitungen auf als zu einem aktiven Block benachbart sind), kann das Schreibmodul 24 einen nachfolgenden Block an einen benachbarten Satz von Wortleitungen des Plättchens 16 lokalisieren (das Schreibmodul 24 kann beispielsweise einen dritten Fall des Blockes an Wortleitungen 6-10 und Bitleitungen 1, 3, 5, 7 und 9 bestimmen). Falls das Blockkonfigurationsmodul 30 auf diese Weise ausgelegt ist, kann das Blockkonfigurationsmodul 30 zu einer Zeit eine Größe eines Blocks bestimmen, woraufhin das Schreibmodul 24 neue Fälle von Blöcken derselben Größe bestimmen kann, die sich neben dem vorherigen Subsatz von Zellen befinden, wobei I/O-Operationen ausgeführt werden, bis sämtliche der Vielzahl der I/O-Operationen ausgeführt sind.
  • Puffer-Bitleitungen sind, wie hier beschrieben, Bitleitungen, die sich zwischen Zellen 18 des Blocks befinden und die nicht irgendwelche Zellen 18 innerhalb der Instanz des Blockes enthalten. Zellen 18 eines Blockes können eine oder eine Vielzahl von Puffer-Bitleitungen zwischen sich selbst und Zellen 18 einer anderen Bitleitung eines Blockes aufweisen. Obwohl derartige Puffer zwischen Zellen 18 in einem besonderen bzw. bestimmten Block von Zellen 18 hier der Klarheit halber als Bitleitungen vorhanden erörtert sind, können Puffer bei einigen Beispielen auch in Wortleitungen enthalten sein. Anders ausgedrückt kann das Blockkonfigurationsmodul 30 bei einigen Beispielen Puffer-Wortleitungen in einem Block nutzen, so dass Zellen 18 einer Wortleitung eines Blockes sich neben Wortleitungen befinden, die keine Zellen 18 des Blockes aufweisen. Bei anderen Beispielen kann das Blockkonfigurationsmodul 30 sowohl Puffer-Wortleitungen als auch Puffer-Bitleitungen nutzen, so dass Zellen 18 eines Blockes niemals anderen Zellen 18 eines Blockes direkt benachbart sind.
  • Das Blockkonfigurationsmodul 30 kann die Größe von Blöcken bestimmen, in die Subsätze der Vielzahl von I/O-Operationen zu schreiben sind, indem die Stromdichte und der Spannungsabfall eines Plättchens 16 analysiert werden. Je mehr Zellen 18 das Blockkonfigurationsmodul 30 innerhalb eines Blocks einer gewissen physikalischen Größe enthält (beispielsweise eine Größe des Platzes auf der Vorderseite einer Siliziumoberfläche des Speicherarrays 28) umso höher können beispielsweise der Spannungsabfall und die Stromdichte sein. An einigen Stellen können der Spannungsabfall und die Stromdichte hoch genug sein, um sich auf die Integrität der I/O-Operationen auszuwirken (beispielsweise durch Ableiten von Strom der elektrischen Impulse, so dass eine Höhe des Stroms unter IRESET für Programm- bzw. Programmierungsoperationen und ISET für Löschoperationen für einige oder sämtliche Zellen 18 eines Blocks fällt, oder durch genügendes Steigern der Schreibaktivität in einen lokalisierten Bereich, so dass die Temperatur auf einen Punkt ansteigt, der die Integrität von Schreibvorgängen, wie oben erörtert, beeinflussen kann). Das Blockkonfigurationsmodul 30 kann den Spannungsabfall und die Stromdichte unter Verwendung des Erfassungsmoduls 36 bestimmen, welches sich ändernde und/ oder statische elektrische Werte der NVM-Vorrichtung 10 identifiziert. Das Blockkonfigurationsmodul 30 kann dies durch Verringern einer Menge der Zellen 18 innerhalb eines Blocks oder durch Erhöhen der physikalischen Größe des Blocks vermeiden. Auf diese Weise kann das Blockkonfigurationsmodul eine Menge an Zellen 18 innerhalb eines Blockes steigern, um den Schreibdurchsatz zu steigern, während gleichzeitig eine Chance dafür gesenkt wird, dass eine I/O-Operationsausführung scheitert (beispielsweise als Ergebnis eines ungenügenden Stroms).
  • Das Blockkonfigurationsmodul 30 kann Blöcke mit Puffer-Bitleitungen oder mit - Wortleitungen zwischen Zellen 18 konfigurieren. Puffer-Bitleitungen und Puffer-Wortleitungen können sich zwischen Zellen 18 eines Blockes befinden, die in unterschiedlichen Bitleitungen oder Wortleitungen vorgesehen sind. Bei einigen Beispielen kann ein Block eine Puffer-Bitleitung/-Wortleitung zwischen Zellen 18 von unterschiedlichen Bitleitungen/Wortleitungen des Blockes enthalten. Bei anderen Beispielen kann ein Block zwei oder mehr Puffer-Bitleitungen/-Wortleitungen zwischen Zellen 18 von verschiedenen Bitleitungen/Wortleitungen des Blockes enthalten. Puffer-Bitleitungen und Puffer-Wortleitungen können als Ergebnis eines hohen Schreibdurchsatzes die Chance einer Interferenz (z.B. thermischen Interferenz, welche den Zustand von Speicherwiderständen in unerwünschten Weisen ändert) zwischen Zellen 18 eines Blockes verringern.
  • Bei einigen Beispielen kann das Blockkonfigurationsmodul 30 Blöcke so bestimmen, dass ein erster Block iterativ ausgeführt und verlegt werden kann (z.B. in einen benachbarten Satz von Bitleitungen), bis die Vielzahl der I/O-Operationen vollständig ausgeführt ist. Das Blockkonfigurationsmodul 30 kann beispielsweise eine Blockkonfiguration bestimmen, die 20% der I/O-Operationen der Vielzahl der I/O-Operationen für ein bestimmtes Plättchen 16 ausführt. Ferner kann das Blockkonfigurationsmodul 30 die Blockform so konfigurieren, dass das Schreibmodul 24 einen Block in Bezug auf das Plättchen vorverlegen kann, um einen neuen Satz von Zellen 18 einzuschließen, der sich auf eine nächsten 20% der I/O-Operationen bezieht. Das Blockkonfigurationsmodul 30 kann beispielsweise Blöcke so konfigurieren, dass ein erster Block einen ersten Subsatz von Zellen 18 enthält und dass ein zweiter Block einen zweiten Subsatz von Zellen 18 enthält, wobei jede Zelle des ersten Subsatzes von Zellen 18 jeder Zelle des zweiten Subsatzes von Zellen 18 benachbart ist.
  • Das Blockkonfigurationsmodul 30 kann auf diese Weise Blöcke so konfigurieren, dass das Schreibmodul 24 Blöcke in einer ähnlichen bzw. entsprechenden Weise vorverlegen kann, nachdem jeder Subsatz von I/O-Operationen ausgeführt ist, bis die Vielzahl von I/O-Operationen ausgeführt ist. Das Schreibmodul 24 kann das Zählermodul 32 dazu heranziehen, den Fortschritt der Nutzung von Blöcken zur Ausführung der Vielzahl von I/O-Operationen zu verfolgen. Durch Heranziehen des obigen Falles kann beispielsweise jeder Block 20% der Zellen 18 eines Plättchens 16 umfassen, während jede Zelle 18 des Plättchens 16 eine jeweilige I/O-Operation zu unterziehen ist. Das Zählermodul 32 kann bestimmen, dass fünf Blöcke sämtliche der Vielzahl von I/O-Operationen schreiben können, und es kann darin einen Endzählerstand von 5 bestimmen. Nach jeder Ausführung eines Subsatzes von I/O-Operationen kann das Zählermodul 32 einen fortlaufenden Zählerstand von Subsatz-Ausführungen erhöhen, bis der Endzählerstand erreicht ist und die Vielzahl von I/O-Operationen ausgeführt ist. Auf diese Weise können das Schreibmodul 24, das Blockkonfigurationsmodul 34 und das Zählermodul 32 schnell die Gesamtheit einer Vielzahl von I/O-Operationen nach Bestimmen einer Blockkonfiguration und Zählung ausführen.
  • 3 ist ein Ablaufdiagramm, welches ein Beispielsverfahren zur Ausführung von Schreiboperationen in eine NVM-Vorrichtung 10 gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht. Bei einigen Beispielen kann die NVM-Vorrichtung 10 ausgelegt sein, um eine Vielzahl von I/O-Operationen in Blöcken parallel auszuführen, wenn dies möglich ist. Der Zeilendecoder 26 kann beispielsweise eine Bitleitung eines Blocks öffnen, woraufhin der Spaltendecoder 34 sequentiell Wortleitungen öffnen kann, bis in sämtliche Zellen der Bitleitung des Blockes eingeschrieben worden ist. Dies kann wiederholt werden (beispielsweise in einer Serpentinenweise wiederholt, bis in sämtliche Zellen eines Blockes geschrieben worden ist. Bei einigen Beispielen kann es ferner möglich sein, eine Vielzahl von I/O-Operationen in Blöcken parallel auszuführen, wenn jede der Vielzahl von I/O-Operationen eine Programmoperation ist, wenn jede der Vielzahl von I/O-Operationen eine Löschoperation ist oder wenn das Steuermodul 22 eine ausreichende Anzahl von I/O-Operationen zusammen gruppieren kann (beispielsweise zu einem Plättchen 16 zusammen). Bei gewissen Beispielen kann das Verfahren von 3 dadurch beginnen, dass bestimmt wird, ob eine Vielzahl von I/O-Operationen in Blöcken parallel auszuführen ist. Die Steuereinrichtung 8 (1) oder das Steuermodul 22 können bestimmen, ob eine Vielzahl von I/O-Operationen in Subsätzen von Zellen parallel auszuführen ist, obwohl das Verfahren von 3 aus Zwecken der Klarheit unter Bezugnahme auf das Steuermodul 22 von 2 beschrieben ist.
  • Das Steuermodul 22 kann auf ein Verzeichnis oder eine Tabelle zugreifen, um Benutzer- oder Systempräferenzen dahingehend zu bestimmen, ob eine Vielzahl von I/O-Operationen in Blöcken parallel auszuführen ist. Eine Tabelle kann beispielsweise angeben, dass Systemeinstellungen (beispielsweise Einstellungen der Datenspeichervorrichtung 6) das Ausführen einer Vielzahl von I/O-Operationen in Blöcken parallel für eine NVM-Vorrichtung 10 auf die Vielzahl von I/O-Operationen hin einschließt, welche mehr als zehn I/O-Operationen enthalten. Bei anderen Beispielen kann das Steuermodul 22 überprüfen, dass die Vielzahl von Zellen 18, in die die Vielzahl von I/O-Operationen geschrieben wird, ausreichend proximal/lokalisiert sind. Die Vielzahl der Zellen 18, die proximal/lokalisiert sind, kann bedeuten, dass jede Zelle der Vielzahl von Zellen 18 sich innerhalb eines einzigen Plättchens 16 oder innerhalb einer Anzahl von benachbarten Plättchen 16 befindet. Bei einigen Beispielen kann die Vielzahl von Zellen 18, die proximal/lokalisiert sind, bedeuten, dass eine Anzahl oder ein Prozentsatz von Zellen 18, die als Teil der Vielzahl von I/O-Operationen nicht einer I/O-Operation unterzogen werden, dennoch zwischen/innerhalb der Vielzahl von Zellen 18 liegen, niedrig bei einem Schwellwert oder unterhalb dessen liegt. Bei bestimmten Beispielen kann der Prozentsatz/die Anzahl Null sein, so dass eine einzige Zelle 18 eine I/O-Operation aus der Vielzahl von I/O-Operationen nicht unterzogen wird, die noch zwischen zwei anderen Zellen 18 liegen, welche eine I/O-Operation der Vielzahl von I/O-Operationen ausführen, kann dazu führen, dass das Steuermodul 22 eine Vielzahl von I/O-Operationen in Blöcken parallel nicht ausführt, wie hier beschrieben. Bei anderen Beispielen kann die Datenspeichervorrichtung 6 ausgelegt sein, um stets eine Vielzahl von I/O-Operationen in einem Block, wie hier beschrieben, parallel auszuführen.
  • Das Verfahren von 3 kann einen Empfang einer Vielzahl von I/O-Operationen (42) durch das Steuermodul 22 einschließen. Die Vielzahl der I/O-Operationen kann beispielsweise mittels des Interfaces 14 der Datenspeichervorrichtung 6 in dem Host 4 empfangen werden. Die Steuereinrichtung 8 kann dann die Vielzahl der I/O-Operationen von dem Interface 14 empfangen und die Vielzahl der I/O-Operationen zu dem I/O-Modul 20 der NVM-Vorrichtung 10 übertragen. Das Steuermodul 22 kann die Vielzahl von I/O-Operationen von dem I/O-Modul 20 empfangen. Bei einigen Beispielen ist die Vielzahl der I/O-Operationen in einer Vielzahl von Plättchen 16 auszuführen. Bei anderen Beispielen ist die Vielzahl der I/O-Operationen in einem einzigen Plättchen der Plättchen 16 auszuführen, oder das Steuermodul 22 kann sämtliche der I/O-Operationen einem einzigen Plättchen der Plättchen 16 zuweisen. Unabhängig davon kann das Steuermodul 22 bestimmen, dass die Vielzahl der I/O-Operationen in einem Plättchen 16 zu schreiben ist. Das Steuermodul 22 kann den einen oder die mehreren Plättchen 16 bestimmen, in das bzw. in die die Vielzahl von I/O-Operationen zu schreiben ist, und es kann bestimmen, ob die Vielzahl der I/O-Operationen SETZ-Operationen oder RÜCKSETZ-Operationen (oder vielleicht beide) enthält.
  • Das Steuermodul 22 kann dann das Blockkonfigurationsmodul 30 veranlassen, Blockkonfigurationen (44) zu bestimmen. Bei einigen Beispielen kann dieser Schritt weggelassen sein, wenn die Blockgröße bestimmt werden kann. Das Blockkonfigurationsmodul 30 kann sowohl eine generelle Form von Zellen als auch eine Größe der Zellen 18 innerhalb eines Blockes bestimmen. Wie hier erörtert, kann das Blockkonfigurationsmodul 30 die Stromdichte und den vorhergesagten Spannungsabfall dazu heranziehen, eine Form und eine Größe von Zellen 18 eines Blockes zu bestimmen. Während das Blockkonfigurationsmodul 30 Blöcke von irgendeiner Form konfigurieren kann, kann das Blockkonfigurationsmodul 30 aufgrund einer rechteckförmigen Geometrie des Speicherarrays 28 bei einigen Beispielen rechteckige Blöcke verwenden.
  • Das Konfigurationsmodul 30 kann Blöcke so konfigurieren, dass ein Block Zellen 18 über eine Anzahl von Bitleitungen und Wortleitungen umfasst. Ein Block, der durch das Blockkonfigurationsmodul 30 konfiguriert ist, kann Zellen aufweisen, die eine Bitleitung oder Wortleitung mit anderen Zellen des Blockes gemeinsam nutzen. Alternativ kann das Blockkonfigurationsmodul 30 bei einigen Beispielen Blöcke so konfigurieren, dass lediglich einige Blöcke Zellen aufweisen, die eine Bitleitung und/oder eine Wortleitung mit anderen Zellen des Blockes gemeinsam nutzen. Das Blockkonfigurationsmodul 30 kann Blöcke so konfigurieren, dass einige Blöcke Pufferzellen enthalten. Bei einigen Beispielen kann das Blockkonfigurationsmodul 30 Blöcke so konfigurieren, dass jede Zelle 18 des Blockes zumindest eine Puffer-Bitleitung zwischen anderen Zellen von anderen Bitleitungen des Blockes aufweist. Alternativ kann das Blockkonfigurationsmodul 30 Blöcke so konfigurieren, dass jede Zelle 18 eines Blockes zumindest eine Puffer-Wortleitung zwischen Zellen 18 von anderen Wortleitungen des Blockes aufweisen. Alternativ kann das Blockkonfigurationsmodul 30 Blöcke so konfigurieren, dass jede Zelle eines Blockes sowohl zumindest eine Puffer-Wortleitung zwischen Zellen 18 von anderen Wortleitungen des Blockes als auch zumindest eine Puffer-Bitleitung zwischen Zellen 18 der anderen Bitleitungen des Blockes aufweist.
  • Bei einigen Beispielen kann das Blockkonfigurationsmodul 30 Blöcke so konfigurieren, dass Blöcke sich vollständig innerhalb eines einzigen Plättchens 16 befinden. Das Blockkonfigurationsmodul 30 kann Blöcke konfigurieren, um lediglich Zellen 18 eines einzigen Plättchens 15 sogar dann zu enthalten, falls die Vielzahl der I/O-Operationen in Zellen 18 einer Vielzahl von Plättchen 16 zu schreiben ist. Wenn die Vielzahl der I/O-Operationen in Zellen 18 einer Vielzahl von Plättchen 16 zu schreiben ist, kann das Blockkonfigurationsmodul 30 eine Blockkonfiguration für eine Mehrzahl von Plättchen 16 oder für jedes Plättchen 16 bestimmen. Bei einigen Beispielen kann das Blockkonfigurationsmodul 30 eine einzige Blockkonfiguration bestimmen, die von dem Schreibmodul 24 verwendet werden kann, um in jedes Plättchen 16 zu schreiben. Bei anderen Beispielen kann das Blockkonfigurationsmodul 30 relativ wenige (beispielsweise ein oder zwei) Blockkonfigurationen bestimmen, die von dem Schreibmodul 24 genutzt werden können, um in relativ viele (z.B. 10 oder 20) Plättchens 16 zu schreiben. Das Konfigurieren von Blöcken so, dass eine einzige Blockkonfiguration genutzt werden kann, um in eine Mehrzahl von Plättchen 16 zu schreiben, kann zu Leistungsvorteilen führen, indem weniger Verarbeitungsleistung für die Ausführung der I/O-Operationen benutzt wird.
  • Das Blockkonfigurationsmodul 30 kann Blöcke so konfigurieren, dass eine einzige Blockkonfiguration iterativ innerhalb eines oder mehrerer Plättchen 16 genutzt werden kann, um I/O-Operationen für sämtliche der Zellen 18 auszuführen, in die zu schreiben ist. Das Blockkonfigurationsmodul 30 kann beispielsweise einen Block, der ein Rechteck ist, konfigurieren, welcher sich durch das Plättchen 16 verschieben kann, um jede Zelle 18 des Plättchens 16 zu umfassen. Bei einigen Beispielen kann das Blockkonfigurationsmodul 30 einen Block konfigurieren, um ihn auf ein jeweiliges Plättchen 16 zu verkleinern, so dass das Schreibmodul 24 eine einzige Blockkonfiguration dazu heranziehen kann, I/O-Operationen für jeden Block auszuführen. Ein Blockkonfigurationsmodul 30 kann beispielsweise das Erfassungsmodul 36 dazu heranziehen zu bestimmen, dass eine maximale Blockgröße (beispielsweise ein Maximum, wie es durch den Spannungsabfall und die Stromdichte eines Speicherarrays 28 festgelegt ist) elf Wortleitungen zu sechs Bitleitungen für ein Plättchen 16 beträgt, das sind 30 Wortleitungen zu 20 Bitleitungen. Bei einem derartigen Beispiel kann das Blockkonfigurationsmodul 30 von dem maximalen Block auf eine Blockgröße von zehn Wortleitungen zu fünf Bitleitungen zurück verkleinern, da ein 10x5 Block iterativ in ein 30x20-Plättchen 16 passt, während ein 11×6-Block nicht passen kann.
  • Das Steuermodul 22 kann dann das Schreibmodul 24 veranlassen, den durch das Blockkonfigurationsmodul 30 konfigurierten Block dazu zu nutzen, einen Subsatz der Vielzahl von I/O-Operationen in Zellen 18 des Blocks parallel (46) zu schreiben. Wie hier erörtert, können die Zellen 18 des Blockes alle sich in einem einzigen Plättchen 16 befinden. Bei einigen Beispielen kann das Schreibmodul 24 gleichzeitig (oder im Wesentlichen gleichzeitig) dieselben oder unterschiedliche Blöcke zum Schreiben in andere Blöcke nutzen. Bei einigen Beispielen können die anderen Blöcke ein Schreiben in ein einziges Plättchen 16 darstellen, so dass eine Vielzahl von Plättchen 16 jeweils einer Vielzahl von I/O-Operationen in einer Vielzahl von Zellen 18 zu einer gegebenen Zeit unterzogen wird. Der Zeilendecoder 26 kann beispielsweise eine jeweilige Bitleitung für jeden Block öffnen, woraufhin der Spaltendecoder 24 eine Wortleitung für jeden Block (oder eine Wortleitung für eine Mehrzahl von Blöcken, falls eine Mehrzahl von Blöcken eine Wortleitung gemeinsam nutzt) öffnen. Hierauf folgend kann der Spaltendecoder 34 eine nächste Wortleitung für jeden Block öffnen, während die Bitleitung für jeden Block noch offen ist. Der Spaltendecoder 34 kann das Öffnen von Wortleitungen sequentiell solange fortsetzen, bis in sämtliche Zellen 18 der Bitleitung des gesamten Blockes geschrieben worden ist. Dies kann wiederholt werden (beispielsweise in einer Serpentinenweise wiederholt), bis in sämtliche Zellen des gesamten Blockes geschrieben worden ist.
  • 4 stellt zwei Plättchen 50A-50B (insgesamt „Plättchen 50“) dar, wobei ein erstes Plättchen 50A eine Vielzahl von Zellen 52A-52JJ (insgesamt „Zellen 52“) enthält und wobei ein zweites Plättchen 50B eine Vielzahl von Zellen 54A-54JJ (insgesamt „Zellen 54“) enthält. Die Plättchen 50 können im Wesentlichen den Plättchen 16 ähnlich sein bzw. diesen entsprechen, und die Zellen 52, 54 können im Wesentlichen den Zellen 18 entsprechen bzw. diesen ähnlich sein. Die Plättchen 50 können an Bitleitungen 56A-56L (insgesamt „Bitleitungen 56“) und Wortleitungen 58A-a58F (insgesamt „Wortleitungen 58“) angeordnet sein.
  • Die I/O-Schaltung 20 kann eine Vielzahl von I/O-Operationen aufnehmen. Das Steuermodul 22 kann bestimmen, dass die Vielzahl der I/O-Operationen in jede Zelle 52, 54 des Plättchens 50A und des Plättchens 50B zu schreiben ist. Als Beispiel kann das Steuermodul 22 ferner bestimmen, dass jede I/O-Operation der Vielzahl von I/O-Operationen RESET-Operationen enthalten kann, um die Zellen 52, 54 der Plättchen 50 zu löschen. Das Steuermodul 22 kann das Blockkonfigurationsmodul 30 dazu veranlassen, das Erfassungsmodul 36 zur Bestimmung der Stromdichte und des vorhergesagten Spannungsabfalls heranzuziehen. Das Steuermodul 22 kann das Erfassungsmodul 36 veranlassen, die Stromdichte und den vorhergesagten Spannungsabfall auf einer periodischen Grundlage zu bestimmen, wie nach einer Schwellwertzahl von Schreibvorgängen oder nachdem eine Zeit-Schwellwertgröße verstrichen ist. Alternativ kann das Steuermodul 22 das Erfassungsmodul 36 veranlassen, die Stromdichte und den vorhergesagten Spannungsabfall auf ein Detektieren einer physikalischen Änderung bei irgendeiner Komponente der Datenspeichervorrichtung zu bestimmen, wie dem Austausch der Spannungsversorgungseinrichtung 11. Alternativ können die Stromdichte und der vorhergesagte Spannungsabfall bei einigen Beispielen so vorbestimmt sein, dass das Steuermodul 22 das Erfassungsmodul 36 nicht zu veranlassen braucht, die Stromdichte und den vorhergesagten Spannungsabfall zu bestimmen, oder auf eine Triggerung hin. Unter Heranziehung der Daten aus der Stromdichte und dem Spannungsabfall kann das Blockkonfigurationsmodul bestimmen, dass ein 4×2-Block (beispielsweise vier Bitleitungen 56 zu zwei Wortleitungen 58) die durch die Stromdichte und den Spannungsabfall zugelassene maximale Blockgröße ist. Das Blockkonfigurationsmodul 30 kann ferner bestimmen, dass ein 4×2-Block nicht geeignet in ein 6×6-Plättchen 50 passt (da beispielsweise vier Wortleitungen sich nicht gleichmäßig auf sechs Wortleitungen aufteilen) und darin eine Konfiguration eines 3×2-Blocks sein kann. Der Block kann Puffer-Bitleitungen und/oder Puffer-Wortleitungen zwischen den Zellen 52, 54 von verschiedenen Bitleitungen 56 und/oder Wortleitungen 58 des Blockes umfassen. Der Block kann für beide Plättchen 50 konfiguriert sein.
  • Das Steuermodul 22 kann das Zählermodul 32 dazu veranlassen, eine Anzahl von Iterationen zu bestimmen, die für einen 3×2-Block vorgenommen werden können, um in jede Zelle 6×6 des Plättchens 50 zu schreiben. Das Zählermodul 22 kann bestimmen, dass es sechs Iterationen für einen 3×2-Block mit Puffer-Bitleitungen braucht, um in jede Zelle eines 6×6-Plättchens zu schreiben. Das Zählermodul 32 kann darin einen Zählerstand auf eins festlegen.
  • Das Schreibmodul 24 kann unter Heranziehung des Blocks in einen ersten Subsatz von Zellen 52, 54 in beiden Plättchen 50 schreiben. Der erste Subsatz der Zellen 52 für das erste Plättchen 50A kann 52A, 52G, 52C, 521, 52E und 52K sein. Der erste Subsatz der Zellen 54 für das zweite Plättchen 50B kann 54A, 54G, 54C, 541, 54E und 54K sein. Puffer-Bitleitungen 56 können Bitleitungen 56B, 56D, 56H und 56J umfassen. Die Bitleitung 56F kann als Puffer-Bitleitung 56 zwischen Blöcken des ersten Plättchens 50A und des zweiten Plättchens 50B wirken. Das Schreibmodul 24 kann unter Heranziehung einer Vielzahl von elektrischen Impulsen der Spannungsversorgungseinrichtung 11, die zu den beabsichtigten Zellen 52, 54 unter Heranziehung des Zeilendecoders 26 und des Spaltendecoders 34 hin geleitet werden, in die Blöcke schreiben.
  • Das Zählermodul 32 kann diesen vervollständigten Subsatz von I/O-Operationen detektieren und dem Zählerstand eine eins hinzuaddieren, so dass der Zählerstand zwei beträgt. Das Schreibmodul 24 kann in einen zweiten Subsatz von Zellen 52 des ersten Plättchens 50A und einen zweiten Subsatz von Zellen 54 des zweiten Plättchens schreiben. Der zweite Subsatz von Zellen 52 für das erste Plättchen 50A kann Zellen 52B, 52H, 52D, 52J, 52F und 52L enthalten. Der zweite Subsatz von Zellen 54 für das zweite Plättchen 50B kann Zellen 54B, 54H, 54D, 54J, 54F und 54L enthalten. Das Zählermodul 32 kann den vervollständigten Subsatz von I/O-Operationen detektieren und dem Zählerstand eine 1 hinzuaddieren, so dass der Zählerstand drei beträgt. Das Schreibmodul 24 kann detektieren, dass sich der Block am Rand des Plättchens 50 befindet, und er kann beide Blöcke nach unten zu den nächsten zwei Wortleitungen 58C, 58D verschieben. Auf diese Weise kann das Schreibmodul 24 das Schreiben in die Plättchen 50 fortsetzen, bis das Zählermodul 32 detektiert, dass die Plättchen 50A, 50B vollständig gelöscht sind, wenn der Zählerstand (beispielsweise sieben) größer ist als die Anzahl von Iterationen des Zählermoduls 32, die als erforderlich bestimmt würden, um die Zellen 52, 54 der Plättchen 50 vollständig zu löschen.
  • Bei einigen Beispielen kann die I/O-Schaltung 20 dann eine zweite Vielzahl von I/O-Operationen empfangen, um in jede Zelle 52, 54 des Plättchens 50A und des Plättchens 50B geschrieben zu werden. Das Steuermodul 22 kann ferner bestimmen, dass jede I/O-Operation der Vielzahl von I/O-Operationen RESET-Operationen enthalten kann, um die Zellen 52, 54 der Plättchen 50 zu programmieren. Das Steuermodul 22 kann das Blockkonfigurationsmodul 30 veranlassen, das Detektiermodul 36 zur Bestimmung der Stromdichte und des vorhergesagten Spannungsabfalls heranzuziehen. Unter Heranziehung der Daten von der Stromdichte und dem Spannungsabfall kann das Blockkonfigurationsmodul 32 bestimmen, dass ein 5×4-Block (beispielsweise fünf Bitleitungen 56 zu vier Wortleitungen 58) die maximale Blockgröße ist, die durch die Stromdichte und den Spannungsabfall zugelassen ist. Wenn die NVM-Vorrichtung 10 eine PCM-Vorrichtung ist, kann die maximale Blockgröße für Programmierungsoperationen kleiner sein als für Löschoperationen, da RESET-Operationen generell mehr Strom erfordern als SET-Operationen. Ferner können Schreibzustände bei einigen Beispielen sich verbessern, da weitere I/O-Operationen ausgeführt werden (beispielsweise kann die Spannungsversorgungseinrichtung 11 weniger Strom für einen elektrischen Impuls erzeugen, während der elektrische Impuls den Zustand des elektrischen Widerstands der jeweiligen Speicherzellen 18 noch zuverlässig ändert).
  • Das Blockkonfigurationsmodul 30 kann hier eine 3x3-Blockkonfiguration bestimmen, so dass Iterationen in die Plättchen 50 passen können. Das Zählermodul 32 kann bestimmen, dass vier Iterationen erforderlich sind, um in sämtliche Zellen 52, 54 der Plättchen 50 zu schreiben. Auf diese Weise kann das Steuermodul 22 das Blockkonfigurationsmodul 30 Blockkonfigurationen für jede eintreffende Operation der Vielzahl der I/O-Operationen bestimmen lassen, um Gelegenheiten zu steigern, den Schreibdurchsatz der NVM-Vorrichtung 10 zu erhöhen.
  • Das Steuermodul 22 kann bei einigen Beispielen die Plättchen 50 konfigurieren, dass das Blockkonfigurationsmodul 32 imstande sein kann, Blöcke zu konfigurieren, welche die gesamte Bitleitung 56 des Plättchens 50 sogar in der am meisten beschränkenden Situation belegen. Aufgrund der Stromdichte und des Spannungsabfalls brauchen unter Fortsetzung des obigen Beispiels Blöcke beispielsweise nicht imstande zu sein, größer als 4x2 im am meisten beschränkenden Fall zu sein (beispielsweise dann, wenn die NVM-Vorrichtung 10 eine PCM-Vorrichtung ist und die Vielzahl von I/O-Operationen RESET-Operationen sind, da RESET-Operationen mehr Strom benötigen). Daher kann das Steuermodul 50 die Plättchen so konfigurieren, dass sie nicht mehr als vier Wortleitungen 58 groß sind, so dass jeder Block imstande sein kann, die Gesamtheit der Bitleitungen 56 des Plättchens 50 abzudecken. Das Konfigurieren der Plättchen 50 auf diese Weise kann den Aufwand an Verarbeitung reduzieren, die das Schreibmodul 24 auszuführen haben kann, was den Prozess vereinfacht. Anders ausgedrückt heißt dies, dass das Schreibmodul 24 in dem Fall, dass Blöcke stets die Länge der Bitleitungen 56 der Plättchen 50 abdecken, nicht zu bestimmen braucht, wenn ein Block nach unten als Ergebnis davon zu verschieben ist, dass ein Block sich am Rand eines Plättchens 50 befindet, bevor das Zählermodul 32 einen Endzählerstand erreicht hat; vielmehr kann das Schreibmodul 24 einen Block in eine Richtung verschieben, bis das Zählermodul 32 anzeigt, dass der Zählerstand erreicht worden ist (und darin die Vielzahl von I/O-Operationen ausgeführt worden ist).
  • Bei einigen Beispielen kann das Steuermodul 22 bestimmen, dass die Vielzahl der I/O-Operationen größtenteils im Wesentlichen an einem Rand zwischen Plättchen 50 lokalisiert ist. Bei derartigen Beispielen kann das Steuermodul 22 das Blockkonfigurationsmodul 30, das Zählermodul 32 und das Schreibmodul 24 veranlassen, die Ausführung der Vielzahl von I/O-Operationen über die Plättchen 50 zu koordinieren. Das Steuermodul 22 kann beispielsweise bestimmen, die Vielzahl von I/O-Operationen in die Bitleitung 56F des Plättchens 50A und die Bitleitung 56H des Plättchens 50B zu schreiben (beispielsweise in die Zellen 52F, 52L, 52R, 52X, 52DD, 52JJ, 54A, 54G, 54M, 54S, 54T und 54EE), so dass die Bitleitungen 56F und 56G innerhalb des Speicherarrays 18 benachbart sind. Das Blockkonfigurationsmodul 30 kann einen Block von 1×3 bestimmen, und das Steuermodul 22 kann das Zählermodul 32 veranlassen, einen Endzählerstand von vier zu bestimmen, um die Ausführung für beide Plättchen 50 aufzunehmen. Das Steuermodul 22 kann das Schreibmodul 24 veranlassen, nicht in wechselnde Plättchen 50 auf wechselnde Zählerstände hin zu schreiben, um eine thermische Interferenz zu vermeiden. Auf einen ersten Zählerstand hin kann das Schreibmodul 24 beispielsweise lediglich in drei Zellen 52F, 52L, 52R des ersten Plättchens 50A schreiben, und auf einen zweiten Zählerstand hin kann das Schreibmodul 24 lediglich in drei Zellen 54A, 54G, 54M des zweiten Plättchens 50B schreiben; auf einen dritten Zählerstand hin kann das Schreibmodul 24 lediglich drei Zellen 52X, 52DD, 52JJ des ersten Plättchens schreiben, und auf den vierten Zählerstand hin kann das Schreibmodul 24 lediglich in drei Zellen 54S, 54T, 54EE des zweiten Plättchens 50B schreiben. Auf diese Weise kann die NVM-Vorrichtung 10 eine Vielzahl von I/O-Operationen in einem lokalisierten Bereich an einem Rand der Plättchen 50 ausführen.
  • 5 ist ein Ablaufdiagramm, welches ein Beispielsverfahren zur Ausführung von I/O-Operationen für die NVM-Vorrichtung 10 gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht. Das I/O-Modul 20 der NVM-Vorrichtung 10 kann eine Vielzahl von I/O-Operationen (62) aufnehmen. Das Steuermodul 22 kann bestimmen, ob die Vielzahl von I/O-Operationen in parallelen Subsätzen von I/O-Operationen unter Heranziehung von Blöcken (64) auszuführen ist. Das Steuermodul 22 kann bestimmen, ob die I/O-Operationen unter Heranziehung von verschiedenen Faktoren, wie hier beschrieben auszuführen sind. Falls das Steuermodul 22 bestimmt, die Vielzahl der I/O-Operationen in parallelen Subsätzen nicht auszuführen („NEIN“-Pfad von 64), kann das Schreibmodul 24 I/O-Operationen der Vielzahl von I/O-Operationen Bit für Bit (66) ausführen.
  • Das Steuermodul 22 kann bestimmen, eine Vielzahl von I/O-Operationen in parallelen Operationen unter Heranziehung von Blöcken („JA“-Pfad von 64) auszuführen. Auf die Bestimmung hin, die Vielzahl der I/O-Operationen parallel auszuführen, kann das Detektiermodul 36 den Spannungsabfall und die Stromdichte analysieren. Das Steuermodul 22 kann diese Informationen zur Bestimmung des Schreibstroms heranziehen. Unter Heranziehen des Spannungsabfalls der Stromdichte und/oder des Schreibstroms kann das Steuermodul 22 das Blockkonfigurationsmodul 30 veranlassen, eine Blockkonfiguration (70) zu bestimmen. Die Blockkonfiguration kann eine Größe und eine Form eines Blockes enthalten, wie hier erörtert. Blöcke können Puffer zwischen Zellen 18 aufweisen, wie Puffer-Bitleitungen, Puffer-Wortleitungen oder beides. Blöcke können konfiguriert sein, um iterativ um ein Plättchen 16 zur Ausführung von I/O-Operationen für notwendige Zellen 18 des Plättchens 16 verschoben zu werden. Unter Heranziehung des Plättchenblocks kann das Zählermodul 32 eine Endzählerstand zur Ausführung der Vielzahl von I/O-Operationen (72) bestimmen. Der Endzählerstand kann dadurch bestimmt werden, dass eine Anzahl von innerhalb des Plättchens 16 auszuführenden I/O-Operationen durch eine Anzahl von I/O-Operationen dividiert wird, die in jedem Block ausgeführt werden. Das Zählermodul 32 kann den Zählerstand auf 1 setzen (74).
  • Das Schreibmodul 24 kann einen Subsatz von I/O-Operationen innerhalb des Plättchens 16 unter Heranziehung eines Blocks (76) parallel ausführen. Das Schreibmodul 24 kann bestimmen, ob der gegenwärtige Zählerstand größer ist als die Endzählerstand von (78) oder nicht. Bei einigen Beispielen kann der Zählerstand zunächst auf Null gesetzt sein, und das Schreibmodul 24 kann stattdessen bestimmen, ob der gegenwärtige Zählerstand gleich der Endzählerstand ist. Das Schreibmodul 24 kann das Zählermodul 32 dazu heranziehen zu bestimmen, dass die gegenwärtige Zählerstand größer ist als der Endzählerstand („NEIN“-Pfad von 78). Daraufhin, dass der gegenwärtige Zählerstand nicht größer ist als der Endzählerstand kann das Zählermodul 32 dem gegenwärtigen Zählerstand (82) eins hinzuaddieren. Das Schreibmodul 24 kann die Blockadresse zu einer Stelle hin ändern, welche nicht ausgeführte Zellen 18 (84) enthält. Das Schreibmodul 24 kann dann wieder einen weiteren Subsatz von I/O-Operationen in parallel für den Block ausführen.
  • Das Schreibmodul 24 kann bestimmen, ob der gegenwärtige Zählerstand nunmehr größer ist als der Endzählerstand (78). Das Schreibmodul 24 kann das Zählermodul 32 dazu heranziehen zu bestimmen, dass der gegenwärtige Zählerstand nicht größer ist als der Endzählerstand („JA“-Pfad von 78). Auf die Bestimmung hin, dass der gegenwärtige Zählerstand nicht größer ist als der Endzählerstand kann die NVM-Vorrichtung 10 bestimmen, dass die Vielzahl von I/O-Operationen vollständig ist (80).
  • Die in dieser Offenbarung beschriebenen Verfahren bzw. Techniken können zumindest zum Teil in Hardware, Software, Firmware oder irgendeiner Kombination daraus implementiert sein. Verschiedene Aspekte der beschriebenen Verfahren können beispielsweise in einem oder mehreren Prozessoren implementiert sein, die einen oder mehrere Mikroprozessoren, digitale Signalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen (ASICs), im Feld programmierbare Gatearrays (FPGAs) oder irgendeine andere äquivalente integrierte oder diskrete Verknüpfungsschaltung sowie irgendwelche Kombinationen aus derartigen Komponenten enthalten. Der Begriff „Prozessor“ oder „Verarbeitungsschaltung“ kann sich generell auf irgendeine der vorstehenden Verknüpfungsschaltung, allein oder in Kombination mit anderer Verknüpfungsschaltung, oder irgendeiner anderen äquivalenten Schaltung beziehen. Eine Steuereinheit, die Hardware enthält, kann ebenfalls eines oder mehrere der Verfahren dieser Offenbarung ausführen.
  • Derartige Hardware, Software und Firmware kann innerhalb derselben Vorrichtung oder innerhalb gesonderter Vorrichtungen implementiert sein, um die in dieser Offenbarung beschriebenen verschiedenen Verfahren zu unterstützen. Darüber hinaus können irgendwelche der beschriebenen Einheiten, Module oder Komponenten zusammen oder gesondert als diskrete, jedoch miteinander zusammenarbeitende Verknüpfungsvorrichtungen implementiert sein. Die Darstellung von verschiedenen Merkmalen als Module oder Einheiten dient der Absicht, unterschiedliche funktionelle Aspekte hervorzuheben und impliziert nicht notwendigerweise, dass derartige Module oder Einheiten durch gesonderte Hardware-, Firmware-oder Softwarekomponenten realisiert sein müssen. Vielmehr kann die einem oder mehreren Modulen oder Einheiten zugehörige Funktionalität durch gesonderte Hardware-, Firmware-oder Softwarekomponenten ausgeführt oder innerhalb von gemeinsamen oder gesonderten Hardware-, Firmware- oder Softwarekomponenten integriert sein.
  • Die mit dieser Offenbarung beschriebenen Verfahren können auch in einem Herstellungsartikel verkörpert oder codiert sein, der ein mittels eines Computers lesbares Speichermedium enthält, welches mit Befehlen codiert ist. In einem Herstellungsartikel, der ein codiertes, mittels eines Computers lesbares Speichermedium enthält, eingebettete oder codierte Befehle können einen oder mehrere programmierbare Prozessoren oder andere Prozessoren veranlassen, ein oder mehrere der hier beschriebenen Verfahren zu implementieren, so dass dann, wenn Befehle in dem mittels eines Computers lesbaren Speichermedium enthalten oder codiert sind, durch den einen oder die mehreren Prozessoren ausgeführt werden. Mittels eines Computers lesbares Speichermedium können einen Schreib-Lese-Speicher mit wahlfreiem Zugriff (RAM), einen Festwert- bzw. Lesespeicher (ROM), einen programmierbaren Festwertspeicher (PROM), einen löschbaren programmierbaren Festwertspeicher (EPROM), einen elektronisch löschbaren programmierbaren Festwertspeicher (EEPROM), einen Flashspeicher, eine Festplatte, eine Kompaktdisk ROM (CD-ROM), eine Floppydisk, eine Kassette, magnetische Medien, optische Medien oder andere mittels eines Computers lesbare Medien enthalten. Bei einigen Beispielen kann ein Herstellungsartikel ein oder mehrere mittels eines Computers lesbare Speichermedien enthalten.
  • Bei einigen Beispielen kann ein mittels eines Computers lesbares Speichermedium ein nichtbeständiges Medium enthalten. Der Begriff „nicht beständig“ kann darauf deuten, dass das Speichermedium nicht in einer Trägerwelle oder einem ausgebreiteten Signal verkörpert ist. Bei gewissen Beispielen kann das nicht beständige Speichermedium Daten speichern, die sich über die Zeit ändern können (z.B. in einem RAM oder Cache).
  • Verschiedene Beispiele sind beschrieben worden. Diese und andere Beispiele liegen innerhalb des Schutzumfangs der folgenden Ansprüche.

Claims (20)

  1. Eine Speichervorrichtung, umfassend: Eine nichtflüchtige Kreuzungspunkt-Speichervorrichtung (NVM), die einen ersten Subsatz von Zellen enthält, wobei Zellen des ersten Subsatzes von Zellen eine Bitleitung oder eine Wortleitung gemeinsam nutzen, wobei für jedes benachbarte Paar von Zellen von dem ersten Subsatz von Zellen zumindest eine jeweilige Puffer-Zelle vorhanden ist, die sich zwischen den jeweiligen Zellen des benachbarten Paares von Zellen befindet, und ein Steuermodul, wobei das Steuermodul konfiguriert ist, um einen Satz von I/O-Operationen aufzunehmen bzw. zu empfangen und um einen ersten Subsatz des Satzes der I/O-Operationen über den ersten Subsatz von Zellen parallel auszuführen, wobei I/O-Operationen des ersten Subsatzes der I/O-Operationen in bzw. an den jeweiligen Pufferzellen nicht ausgeführt werden.
  2. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei das Steuermodul ferner konfiguriert ist, um auf der Grundlage eines Spannungsabfalls und des Stroms zur Ausführung des Satzes der I/O-Operationen in dem ersten Subsatz von Zellen zu bestimmen, dass ein ausreichendes Leistungsbudget zur parallelen Ausführung des ersten Subsatzes des Satzes der I/O-Operationen existiert.
  3. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei jede Zelle des ersten Subsatzes der Zellen eine jeweilige Wortleitung mit zumindest einer jeweiligen ersten Zelle des ersten Subsatzes der Zellen und eine jeweilige Bitleitung mit zumindest einer jeweiligen zweiten Zelle des ersten Subsatzes von Zellen gemeinsam nutzt.
  4. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei das Steuermodul ferner konfiguriert ist, um einen zweiten Subsatz des Satzes der I/O-Operationen zu bestimmen, die parallel mit dem ersten Subsatz von I/O-Operationen ausgeführt werden können, indem eine Chipleistung, ein Spannungsabfall und Stromanforderungen des Satzes der I/O-Operationen analysiert werden, und um den zweiten Subsatz der I/O-Operationen parallel über einen zweiten Subsatz von Zellen der Kreuzungspunkt-Speicherkomponente auszuführen, wenn der erste Subsatz von I/O-Operationen über dem ersten Subsatz von Zellen parallel ausgeführt wird, worin bzw. wobei Zellen des zweiten Subsatzes von Zellen eine Wortleitung oder Bitleitung gemeinsam nutzen und für jedes benachbarte Paar von Zellen von dem zweiten Subsatz von Zellen zumindest eine jeweilige Pufferzelle vorhanden ist, die sowohl keiner I/O-Operation des zweiten Subsatzes von I/O-Operationen unterzogen wird als auch sich zwischen den jeweiligen Zellen des benachbarten Paares von Zellen befindet.
  5. Die Speichervorrichtung nach Anspruch 4, worin bzw. wobei der erste Subsatz von Zellen und der zweite Subsatz von Zellen dieselbe Anzahl von Zellen enthalten.
  6. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei das Steuermodul ferner konfiguriert ist, um eine Anzahl von Plättchen der Kreuzungspunkt-NVM-Vorrichtung durch Analysieren einer Chipleistung der Kreuzungspunkt-NVM-Vorrichtung zu bestimmen, worin bzw. wobei die Kreuzungspunkt-NVM-Vorrichtung konfiguriert ist, um einen Subsatz von I/O-Operationen in einem Subsatz von Zellen in jedem Plättchen der Anzahl von Plättchen parallel auszuführen, worin bzw. wobei der Subsatz von Zellen dieselbe Anzahl von Zellen enthält wie der erste Subsatz von Zellen.
  7. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei das Steuermodul ferner konfiguriert ist, um zu bestimmen, dass eine Menge der I/O-Operationen innerhalb des Satzes von I/O-Operationen einem Schwellwert genügt, um daraufhin, dass die Menge der I/O-Operationen dem Schwellwert genügt, zu bestimmen, dass der erste Subsatz des Satzes der I/O-Operationen parallel ausgeführt werden kann, und worin bzw. wobei das parallele Ausführen des ersten Subsatzes der I/O-Operationen über den ersten Subsatz von Zellen daraufhin erfolgt, dass die Menge der I/O-Operationen dem Schwellwert genügt.
  8. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei der Satz der I/O-Operationen einen ersten Satz von Schreiboperationen umfasst, worin bzw. wobei das Steuermodul ferner konfiguriert ist, um einen zweiten Satz von I/O-Operationen für die Kreuzungspunkt-NVM-Vorrichtung aufzunehmen, um auf der Grundlage eines Spannungsabfalls der Kreuzungspunkt-NVM-Vorrichtung einen Schwellwert-Schreibstromwert zu bestimmen, um auf der Grundlage des Schwellwert-Schreibstroms eine Anzahl von Zellen in einen zweiten Subsatz von Zellen zu bestimmen und um einen Subsatz des zweiten Satzes der I/O-Operationen über den zweiten Subsatz von Zellen auszuführen, worin bzw. wobei Zellen des zweiten Subsatzes von Zellen eine Bitleitung oder eine Wortleitung gemeinsam nutzen, worin bzw. wobei für jedes benachbarte Paar von Zellen von dem zweiten Subsatz von Zellen zumindest eine jeweilige Pufferzelle vorhanden ist, die sowohl keiner I/O-Operation des zweiten Subsatzes der I/O-Operationen unterzogen wird als auch sich zwischen den jeweiligen Zellen des benachbarten Paares von Zellen befindet.
  9. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei der Satz der I/O-Operationen sich auf einen Satz von Zellen bezieht, die physikalisch sich in einer nahen Stelle in der Kreuzungspunkt-Speicherkomponente befinden, und der Satz von Zellen den ersten Subsatz von Zellen enthält.
  10. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei die NVM-Vorrichtung das Steuermodul enthält.
  11. Die Speichervorrichtung nach Anspruch 1, worin bzw. wobei die Speichervorrichtung ferner eine Steuereinrichtung umfasst, wobei die Steuereinrichtung das Steuermodul enthält.
  12. Ein Verfahren zum Verwalten bzw. Managen von Lese- oder Schreiboperationen für eine bzw. in einer nichtflüchtigen Kreuzungspunkt-Speicher-(NVM)-Vorrichtung, wobei das Verfahren umfasst: Aufnehmen bzw. Empfangen eines Satzes von Lese- oder Schreiboperationen für die Kreuzungspunkt-NVM-Vorrichtung, worin bzw. wobei die Kreuzungspunkt-NVM-Vorrichtung eine Vielzahl von Zellen enthält, die in eine Vielzahl von Sätzen von Zellen gruppiert sind, und worin bzw. wobei für jeden Satz von Zellen Zellen des jeweiligen Satzes von Zellen eine Bitleitung oder eine Wortleitung der Kreuzungspunkt-NVM-Vorrichtung gemeinsam nutzen, paralleles Ausführen eines Subsatzes des Satzes der Lese- oder Schreiboperationen über einen Satz von Zellen der Vielzahl von Sätzen von Zellen, worin bzw. wobei für benachbarte Paare von Zellen aus dem Satz von Zellen zumindest eine jeweilige Pufferzelle vorhanden ist, die sowohl keiner Lese- oder Schreiboperation des Subsatzes von Lese- oder Schreiboperationen unterzogen wird als auch sich zwischen den jeweiligen Zellen des benachbarten Paares von Zellen befindet.
  13. Das Verfahren nach Anspruch 12, wobei das Verfahren ferner auf der Grundlage eines Spannungsabfalls und eines Stromes zur Ausführung eines Satzes der I/O-Operationen in einem ersten Subsatz von Zellen ein Bestimmen umfasst, dass ein ausreichendes Leistungsbudget zur parallelen Ausführung des ersten Subsatzes des Satzes von Lese- oder Schreiboperationen existiert.
  14. Das Verfahren nach Anspruch 13, wobei das Verfahren ferner durch Analysieren einer Chipleistung, eines Spannungsabfalls und von Stromanforderungen des Satzes von Lese- oder Schreiboperationen ein Bestimmen eines zweiten Subsatzes des Satzes von Lese- oder Schreiboperationen umfasst, die parallel mit dem ersten Subsatz von Lese- oder Schreiboperationen ausgeführt werden können, und paralleles Ausführen des zweiten Subsatzes von Lese- oder Schreiboperationen über einen zweiten Subsatz von Zellen der Kreuzungspunkt-Speicherkomponente, wenn der erste Subsatz von Lese- oder Schreiboperationen parallel über den ersten Subsatz von Zellen ausgeführt wird, worin bzw. wobei Zellen des zweiten Subsatzes von Zellen eine Wortleitung oder Bitleitung gemeinsam nutzen und für jedes benachbarte Paar von Zellen von dem zweiten Subsatz von Zellen zumindest eine jeweilige Pufferzelle vorhanden ist, die sowohl einer Lese- oder Schreiboperation des zweiten Subsatzes von Lese- oder Schreiboperationen unterzogen wird als auch sich zwischen den jeweiligen Zellen des benachbarten Paares von Zellen befindet.
  15. Das Verfahren nach Anspruch 14, worin bzw. wobei der erste Subsatz von Zellen und der zweite Subsatz von Zellen dieselbe Anzahl von Zellen umfassen.
  16. Das Verfahren nach Anspruch 12, wobei der Satz von Lese- oder Schreiboperationen sich auf Zellen befindet, die an einer nahen Stelle in der Kreuzungspunkt-Speicherkomponente physikalisch gebündelt sind, und die Zellen den Satz von Zellen enthalten.
  17. Das Verfahren nach Anspruch 12, ferner umfassend: Bestimmen, dass eine Menge an Lese- oder Schreiboperationen innerhalb des Satzes von Lese- oder Schreiboperationen einem Schwellwert genügt, Bestimmen daraufhin, dass die Menge der Lese- oder Schreiboperationen dem Schwellwert genügt, dass der Subsatz des Satzes von Lese- oder Schreiboperationen parallel ausgeführt werden kann, und wobei die parallele Ausführung des Subsatzes der Lese- oder Schreiboperationen über den Satz von Zellen daraufhin erfolgt, dass die Menge der Lese- oder Schreiboperationen dem Schwellwert genügt.
  18. Das Verfahren nach Anspruch 12, wobei der Satz der Lese- oder Schreiboperationen einen ersten Satz von Schreiboperationen umfasst und wobei das Verfahren ferner umfasst: Empfangen eines zweiten Satzes von Lese- oder Schreiboperationen für die Kreuzungspunkt-NVM-Vorrichtung, Bestimmen eines Schwellwert-Schreibstromwertes auf der Grundlage eines Spannungsabfalls der Kreuzungspunkt-NVM-Vorrichtung, Bestimmen einer Anzahl von Zellen in einem zweiten Subsatz von Zellen auf der Grundlage des Schwellwert-Schreibstroms und Ausführen eines Subsatzes der Lese- oder Schreiboperationen über den zweiten Subsatz der Zellen, wobei Zellen des zweiten Subsatzes der Zellen eine Bitleitung oder eine Wortleitung gemeinsam nutzen, wobei für jedes benachbarte Paar von Zellen von dem zweiten Subsatz von Zellen es zumindest eine jeweilige Pufferzelle gibt, die sowohl einer Lese- oder Schreiboperation des zweiten Subsatzes der Lese- oder Schreiboperationen unterzogen wird als auch sich zwischen den jeweiligen Zellen des benachbarten Paares von Zellen befindet.
  19. Ein System, umfassend: Mittel bzw. eine Einrichtung zur Aufnahme eines Satzes von I/O-Operationen für eine nichtflüchtige Kreuzungspunkt-Speicher-(NVM)-Vorrichtung und Mittel bzw. eine Einrichtung zum parallelen Ausführen eines ersten Subsatzes des Satzes von I/O-Operationen über einen ersten Subsatz von Zellen der Kreuzungspunkt-NVM-Vorrichtung, wobei Zellen des ersten Subsatzes von Zellen eine Bitleitung oder eine Wortleitung gemeinsam nutzen, wobei für jedes benachbarte Paar von Zellen von dem ersten Subsatz von Zellen es zumindest eine jeweilige Pufferzelle gibt, die sowohl einer I/O-Operation des ersten Subsatzes von I/O-Operationen unterzogen wird als auch sich zwischen den jeweiligen Zellen des benachbarten Paares von Zellen befindet.
  20. Das System nach Anspruch 19, ferner umfassend Mittel bzw. eine Einrichtung zum Bestimmen auf der Grundlage eines Spannungsabfalls und eines Stroms zur Ausführung des Satzes I/O-Operationen in dem ersten Subsatz von Zellen, dass ein ausreichendes Leistungsbudget existiert, um den ersten Subsatz des Satzes von I/O-Operationen auszuführen.
DE102017128945.3A 2017-01-27 2017-12-06 Blocklöschungssysteme für nichtflüchtige Kreuzungspunkt-Speichervorrichtungen Pending DE102017128945A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/418,178 2017-01-27
US15/418,178 US9928907B1 (en) 2017-01-27 2017-01-27 Block erase schemes for cross-point non-volatile memory devices

Publications (1)

Publication Number Publication Date
DE102017128945A1 true DE102017128945A1 (de) 2018-08-02

Family

ID=61629734

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017128945.3A Pending DE102017128945A1 (de) 2017-01-27 2017-12-06 Blocklöschungssysteme für nichtflüchtige Kreuzungspunkt-Speichervorrichtungen

Country Status (3)

Country Link
US (2) US9928907B1 (de)
CN (1) CN108363548B (de)
DE (1) DE102017128945A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521146B1 (en) 2017-11-09 2019-12-31 Micron Technology, Inc. UFS based idle time garbage collection management
US10860238B2 (en) * 2017-12-27 2020-12-08 Intel Corporation Method and apparatus for improving firmware loading

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE488009T1 (de) * 2006-03-31 2010-11-15 Mosaid Technologies Inc Flash-speichersystem-steuerverfahren
US7755935B2 (en) 2007-07-26 2010-07-13 International Business Machines Corporation Block erase for phase change memory
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
US7768836B2 (en) * 2008-10-10 2010-08-03 Sandisk Corporation Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
US8725927B2 (en) * 2008-10-15 2014-05-13 Micron Technology, Inc. Hot memory block table in a solid state storage device
US20100161888A1 (en) 2008-12-22 2010-06-24 Unity Semiconductor Corporation Data storage system with non-volatile memory using both page write and block program and block erase
US20100284213A1 (en) 2009-05-06 2010-11-11 Savransky Semyon D Method of cross-point memory programming and related devices
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US9466382B2 (en) 2012-11-14 2016-10-11 Sandisk Technologies Llc Compensation for sub-block erase
US9349450B2 (en) 2013-06-10 2016-05-24 Micron Technology, Inc. Memory devices and memory operational methods including single erase operation of conductive bridge memory cells
US8953387B2 (en) 2013-06-10 2015-02-10 Micron Technology, Inc. Apparatuses and methods for efficient write in a cross-point array
US9312005B2 (en) 2013-09-10 2016-04-12 Micron Technology, Inc. Accessing memory cells in parallel in a cross-point array
US9082493B2 (en) 2013-10-31 2015-07-14 Freescale Semiconductor, Inc. Adaptive erase methods for non-volatile memory
US9356074B1 (en) * 2014-11-17 2016-05-31 Sandisk Technologies Inc. Memory array having divided apart bit lines and partially divided bit line selector switches
EP3023990A1 (de) * 2014-11-20 2016-05-25 Nxp B.V. Mehrfach unabhängige Seitenlöschung
US9886341B2 (en) * 2014-12-31 2018-02-06 Sandisk Technologies Llc Optimizing reclaimed flash memory

Also Published As

Publication number Publication date
US10283199B2 (en) 2019-05-07
CN108363548A (zh) 2018-08-03
US20180218773A1 (en) 2018-08-02
CN108363548B (zh) 2020-01-07
US9928907B1 (en) 2018-03-27

Similar Documents

Publication Publication Date Title
DE102017112013B4 (de) Adaptive Temperatur- und Speicherparameterdrosselung
DE102018115163A1 (de) Routing von datenblöcken während einer thermodrosselung
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE102017104150A1 (de) Abnutzungsausgleich in Speichervorrichtungen
DE102017120325A1 (de) Nichtflüchtiger Arbeitsspeicher mit intelligenter Temperaturerfassung und lokaler Drosselung
DE112017005887T5 (de) Speichersystem und Verfahren zur thermischen Drosselung über eine Befehlsarbitrierung
CN108139970A (zh) 用于直接写入多级单元存储器的系统和方法
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE102017128941A1 (de) Speichersystem und Verfahren zur prädiktiven Blockzuweisung zur effizienten Speicherbereinigung
DE112016002631T5 (de) Speicherfunktionszustandsüberwachung
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE102021114457A1 (de) Abwicklung von lesen in vorrichtungen mit in zonen unterteiltem namensraum
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
DE112020000143T5 (de) Ssd-system, das einschaltzyklus-basierten read-scrub verwendet
DE102008033518A1 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102017120826A1 (de) Verfahren und Vorrichtung zum Überwachen von Speicher unter Verwendung einer Hintergrundmedienabtastung
DE112019005506T5 (de) Systeme und verfahren zum finden einer letzten guten seite in einem offenen nand-block
DE112018006392T5 (de) Leistungspegeleinstellungen in arbeitsspeichervorrichtungen
DE112020000159T5 (de) Systeme und verfahren zum definieren von speicher-unterblöcken
DE112020005096T5 (de) Gewichtung von lesebefehlen an zonen in speicherungsvorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US

Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC., IRVINE, CALIF., US

Owner name: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D., US

Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC., IRVINE, CALIF., US

R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US

Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELAWARE), SAN JOSE, CA, US

R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US

Free format text: FORMER OWNER: SANDISK TECHNOLOGIES, INC. (N.D.GES. D. STAATES DELAWARE), MILPITAS, CA, US