DE102017128945A1 - Blocklöschungssysteme für nichtflüchtige Kreuzungspunkt-Speichervorrichtungen - Google Patents
Blocklöschungssysteme für nichtflüchtige Kreuzungspunkt-Speichervorrichtungen Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 75
- 239000000872 buffer Substances 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims description 44
- 230000003139 buffering effect Effects 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 325
- 238000013500 data storage Methods 0.000 description 32
- 230000008859 change Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- WYTGDNHDOZPMIW-RCBQFDQVSA-N alstonine Natural products C1=CC2=C3C=CC=CC3=NC2=C2N1C[C@H]1[C@H](C)OC=C(C(=O)OC)[C@H]1C2 WYTGDNHDOZPMIW-RCBQFDQVSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 101100072644 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) INO2 gene Proteins 0.000 description 1
- 101100454372 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) LCB2 gene Proteins 0.000 description 1
- 101100489624 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RTS1 gene Proteins 0.000 description 1
- 241000270295 Serpentes Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0038—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0097—Erasing, 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
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-Speicherumgebung2 veranschaulicht, in der eine Datenspeichervorrichtung6 Subsätze von I/O-Operationen von einer Hostvorrichtung4 in einem Plättchen16 gemäß einem oder mehreren Verfahren in dieser Offenbarung parallel ausführen kann. Die Hostvorrichtung 4 kann beispielsweise Daten in einer oder mehreren Datenspeichervorrichtungen6 speichern und/oder aus dieser/diesen abrufen. Bei einigen Beispielen kann die Speicherumgebung2 eine Vielzahl von Datenspeichervorrichtungen, wie die Datenspeichervorrichtung6 enthalten, die als ein Speicherarray arbeiten können. Die Speicherumgebung2 kann beispielsweise eine Vielzahl von Datenspeichervorrichtungen6 enthalten, die als redundantes Array von billigen/unabhängigen Platten (RAID) ausgelegt sind, welche insgesamt als Massendatenspeichervorrichtung für die Hostvorrichtung4 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 Hostvorrichtung4 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 Datenspeichervorrichtung6 eine Steuereinrichtung 8, eine NVM-Vorrichtung10 , eine Spannungsversorgungseinrichtung11 , einen flüchtigen Speicher12 und ein Interface bzw. eine Schnittstelle14 enthalten. Bei einigen Beispielen kann die Datenspeichervorrichtung6 in1 der Klarheit halber nicht dargestellte zusätzliche Komponenten enthalten. So kann die Datenspeichervorrichtung6 beispielsweise eine gedruckte Schaltungsplatine (PB) enthalten, an der Komponenten der Datenspeichervorrichtung6 mechanisch angebracht sind und die elektrisch leitende Bahnen enthält, welche Komponenten der Datenspeichervorrichtung6 verbinden, oder dergleichen enthalten. Bei einigen Beispielen können die physikalischen Abmessungen und Verbinderkonfigurationen der Datenspeichervorrichtung6 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 Datenspeichervorrichtung6 mit einem Motherboard bzw. einer Hauptplatine der Hostvorrichtung4 direkt daran gelötet) sein. - Die Datenspeichervorrichtung
6 kann ein Interface14 zur Schnittstellenverbindung mit der Hostvorrichtung4 enthalten. Das Interface4 kann einen Bus oder beide Busse von einem Datenbus zum Austausch von Daten mit der Hostvorrichtung4 und einem Steuerbus für einen Austausch von Befehlen mit der Hostvorrichtung4 enthalten. Das Interface14 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 Interfaces14 (beispielsweise des Datenbusses, der Steuerbusses oder beider) ist mit der Steuereinrichtung8 elektrisch verbunden, was für eine elektrische Verbindung zwischen der Hostvorrichtung4 und der Steuereinrichtung8 , womit ermöglicht ist, Daten zwischen der Hostvorrichtung4 und der Steuereinrichtung8 auszutauschen. - Die Datenspeichervorrichtung
6 kann eine Spannungsversorgungseinrichtung11 enthalten, die Versorgungsspannung für eine oder mehrere Komponenten der Datenspeichervorrichtung6 bereitstellen kann. Auf den Betrieb in einem Standardmodus hin kann die Spannungsversorgungseinrichtung11 Versorgungsspannung an die eine oder die mehreren Komponenten bereitstellen, indem Versorgungsspannung herangezogen wird, die von einer externen Vorrichtung, wie der Hostvorrichtung4 bereitgestellt wird. Die Spannungsversorgungseinrichtung11 kann beispielsweise Versorgungsspannung für die eine oder mehreren Komponenten unter Heranziehung von Versorgungsspannung bereitstellen, die von der Hostvorrichtung4 über das Interface14 erhalten wird. Bei einigen Beispielen kann die Versorgungsspannungseinrichtung11 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 Speicher12 enthalten, der von der Steuereinrichtung8 dazu genutzt werden kann, Informationen zu speichern. Bei einigen Beispielen kann die Steuereinrichtung8 den flüchtigen Speicher12 als Puffer- bzw. Cache-Speicher nutzen. Die Steuereinrichtung8 kann beispielsweise gepufferte Informationen in dem flüchtigen Speicher12 solange speichern, bis die gepufferte Information in Speicherzellen16 des nichtflüchtigen Speicherarrays10 geschrieben sind. Der flüchtige Speicher12 kann Leistung verbrauchen, die von der Spannungsversorgungseinrichtung11 her erhalten wird. Beispiele des flüchtigen Speichers12 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-Vorrichtung10 , wobei für Zwecke der Klarheit lediglich eine in1 dargestellt ist. Die NVM-Vorrichtung10 kann eine Vielzahl von Zellen18A -18H (insgesamt „Zellen 18“) über eine Vielzahl von Plättchen 16Aa-16Nn (insbesondere „Plättchen 16“) enthalten. Jede Zelle der Zellen18 kann eine Kreuzungspunktspeicherarchitektur zur Speicherung von Daten implementieren. Die NVM-Vorrichtung10 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-Vorrichtung10 eine Vorrichtung aus einer Vielzahl von NVM-Vorrichtungen der Datenspeichervorrichtung6 sein. Bei einigen Beispielen können die NVM-Vorrichtungen10 alle dieselbe Kapazität aufweisen, oder die NVM-Vorrichtungen10 können unterschiedliche Kapazitäten aufweisen. - Bei einigen Beispielen können einige Zellen
18 der NVM-Vorrichtung10 andere Formen des Speichers verwenden (beispielsweise anstelle der exklusiven Nutzung der Kreuzungspunkttechnologie). So kann beispielsweise ein Teil der NVM-Vorrichtung10 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 Steuereinrichtung8 , die eine oder mehrere Operationen der Datenspeichervorrichtung6 verwalten bzw. managen kann. Die Steuereinrichtung8 kann beispielsweise das Lesen von Daten aus der und/oder das Schreiben von Daten in die NVM-Vorrichtung10 managen. Die Steuereinrichtung8 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-Vorrichtung10 diese Funktionen nicht auszuführen, sondern stattdessen lediglich die Plättchen16 und Zellen18 zu speichern, bezüglich der die Funktionen ausgeführt werden. Die Steuereinrichtung8 kann beispielsweise bestimmen, wann eine Vielzahl von I/O-Operationen in einem Plättchen eines Speicherarrays der NVM-Vorrichtung10 zu schreiben sind. Auf die Bestimmung hin, dass die Vielzahl von I/O-Operationen in ein Plättchen16 zu schreiben ist, kann die Steuereinrichtung8 eine Reihe von Subsätzen von I/O-Operationen bestimmen, die in einer Reihe von Subsätzen der Zellen18 auszuführen sind. Jeder Subsatz von Zellen18 kann hier nachstehend als ein Block bezeichnet werden. Jeder Block oder Subsatz von Zellen18 kann sich innerhalb eines Plättchens der Plättchen16 befinden, und jedes Plättchen16 kann eine Vielzahl von Blöcken oder Subsätzen von Zellen18 enthalten. Ferner kann die Steuereinrichtung8 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 Spannungsversorgungseinrichtung11 erzeugen muss, um den elektrischen Widerstand der jeweiligen Speicherzellen18 zu ändern, abnimmt, so dass die Spannungsversorgungseinrichtung11 wenigstens Strom für einen elektrischen Impuls erzeugen kann, während der elektrische Impuls den elektrischen Widerstandszustand der jeweiligen Speicherzellen18 noch zuverlässig ändert. Auf die Verbesserung des Schreibstromzustands kann die Steuereinrichtung8 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-Vorrichtung10 auszuführen ist, oder die NVM-Vorrichtung10 kann einige dieser Funktionen ausführen, während die Steuereinrichtung8 andere Funktionen ausführt. Die NVM-Vorrichtung10 kann beispielsweise detektieren, wann sich die Schreibstromzustände verbessern, die tatsächlichen I/O-Operationen ausführen oder dergleichen, während die Steuereinrichtung8 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-Vorrichtung10 ü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 Steuereinrichtung8 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 Zellen18 zur Speicherung von Daten ändern. Plättchen16 brauchen nicht durch physikalische Teile bzw. Bereiche der NVM-Vorrichtung10 vorherbestimmt zu sein, obwohl bei einigen Beispielen Plättchen16 vorherbestimmte physikalische Bereiche der NVM-Vorrichtung10 sein können. Vielmehr können Plättchen16 in einer Zuordnung von Zellen18 vorliegen, innerhalb der eine Vielzahl von elektrischen Impulsen einer Vielzahl von I/O-Operationen angelegt sein können, während der NVM-Vorrichtung10 ermöglicht ist, gleichzeitig eine Vielzahl von elektrischen Impulsen an eine Vielzahl von Fällen18 innerhalb einer oder mehrerer benachbarter Plättchen16 zu geben. Bei einigen Beispielen können die Plättchen16 eine Zuordnung von Zellen18 sein, die jeweils eine I/O-Operation der empfangenen Vielzahl von I/O-Operationen unterzogen werden. Bei einigen Beispielen kann die NVM-Vorrichtung10 Plättchen16 so konfigurieren, dass die Konfiguration der Spannungsversorgungseinrichtung11 und der Zellen18 in dem NVM-Array ausreichen können, um elektrische Impulse zu erzeugen, die eine I/O-Operation in jeder Zelle18 einer Bitleitung des Plättchens16 parallel ausführen. - Jede Zelle
18 eines Plättchens16 kann zumindest eine Bitleitung oder eine Wortleitung mit zumindest einer anderen Zelle18 des Plättchens16 gemeinsam nutzen. Bei einigen Beispielen kann jede Zelle18 eines Plättchens16 sowohl eine Wortleitung als auch eine Bitleitung mit zumindest einer anderen Zelle18 des Plättchens16 gemeinsam nutzen. Bei einigen Beispielen kann die Schaltung bzw. Schaltungsanordnung der Datenspeichervorrichtung6 so ausgelegt sein, um zumindest einen Strom IRESET gleichzeitig an jeden Plättchen16 der NVM-Vorrichtung10 zu einer gegebenen Zeit zu liefern. Bei bestimmten Beispielen kann dieser Strom für jedes Plättchen16 der NVM-Vorrichtung10 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 Speicherzelle18 angelegt wird. Das Ändern des elektrischen Widerstands einer Zelle18 von einem relativ niedrigen Widerstand in einen relativ hohen Widerstand kann ein Ändern des gespeicherten Verknüpfungszustands eines Speicherwiderstands der Speicherzelle18 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 Speicherzelle18 gelegt wird. Das Anlegen bzw. Abgeben von ISETZ an den Speicherwiderstand kann den gespeicherten Verknüpfungszustand des Speicherwiderstands der Speicherzelle18 ä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 Zellen18 dargestellt. Jedes Plättchen der Plättchen16 kann irgendeine Anzahl von Zellen18 enthalten. Die Zuordnung von Zellen18 innerhalb eines Plättchens16 kann durch Analysieren der Stromanforderungen und des Spannungsabfalls von Schreiboperationen über Zellen18 innerhalb eines Plättchens16 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-Vorrichtungen10 , die PCM-Vorrichtungen sind, können die Größe des Plättchens16 auf der Grundlage von IRESET bestimmen, da die IRESET größer ist als ISET (was beispielsweise mehr Strom beansprucht, um einen Speicherwiderstand einer Zelle1 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 Zelle18 in einen SET- bzw. Setz-Zustand relativ niedrigen Widerstands zu versetzen). Bei einigen Beispielen enthält jedes Plättchen16 der NVM-Vorrichtung10 dieselbe Anzahl von Zellen18 . - Gemäß den Verfahren dieser Offenbarung kann die NVM-Vorrichtung
10 eine Vielzahl von I/O-Operationen von der Steuereinrichtung8 her empfangen. Die I/O-Operationen können letztlich von dem Host4 über das Interface14 ausgehen, oder die I/O-Operationen können von der Steuereinrichtung8 ausgehen. Die Vielzahl von I/O-Operationen kann von der Steuereinrichtung8 in einer einzigen Zeitspanne empfangen werden, oder die Vielzahl von I/O-Operationen kann über eine Zeitspanne von der Steuereinrichtung8 empfangen werden. Sogar bei Beispielen, bei denen die Steuereinrichtung8 die parallele Ausführung einer Bitzahl von I/O-Operationen für ein Plättchen nicht managt, kann die Steuereinrichtung8 noch einige Funktionen hinsichtlich der Ausführung I/O-Operationen ausführen. So kann die Steuereinrichtung8 beispielsweise die I/O-Operationen aus einem ersten Format, welches von dem Host4 benutzt wird, in ein zweites Format umsetzen, welches von der NVM-Vorrichtung 10 benutzt wird, und die Steuereinrichtung8 kann jeweilige Zellen18 und/oder Plättchen16 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ättchens16 löschen, so dass die NVM-Vorrichtung10 eine RESET-Operation auf jede Zelle18 des Plättchens16 ausüben wird. Bei anderen Beispielen kann jede I/O-Operation der Vielzahl von I/O-Operationen die jeweilige Zelle18 eines Plättchens16 programmieren, so dass die NVM-Vorrichtung10 eine SET-Operation auf jede Zelle des Plättchens16 ausübt. Die Vielzahl der I/O-Operationen kann sich auf sämtliche Zellen18 eines Plättchens16 oder auf eine Vielzahl von Zellen18 eines Plättchens16 beziehen. Bei anderen Beispielen bezieht sich die Vielzahl von I/O-Operationen auf sämtliche der Zellen18 einer Vielzahl von Plättchen16 , wie auf jede Zelle18 jedes Plättchens16 zwischen Plättchen 16Aa und dem Plättchen 16An. Bei noch anderen Beispielen beziehen sich die I/O-Operationen auf die Zellen18 von einem oder mehreren Plättchen16 , wie auf einige Zellen18 des Plättchens 16Aa und auf einige Zellen18 des Plättchens 16Nn. Andere lokalisierte Bereiche der Zellen18 , 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ättchen16 erfolgt. Falls beispielsweise die Vielzahl der I/O-Operationen sich auf das Löschen von in den Zellen18A -18D gespeicherten bestimmten Daten beziehen, kann die NVM-Vorrichtung10 sodann die Daten als innerhalb der Plättchen 16Aa-16An gespeichert identifizieren. Bei anderen Beispielen können die Steuereinrichtung 8 oder die NVM-Vorrichtung10 die Vielzahl von I/O-Operationen einem oder mehreren Plättchen16 zuordnen. Falls beispielsweise die Vielzahl von I/O-Operationen sich auf das Programmieren von neuen Daten bezieht, können die Steuereinrichtung8 oder die NVM-Vorrichtung10 die Vielzahl von I/O-Operationen beispielsweise den Zellen18 der Plättchen 16An und Na zuweisen. Die Steuereinrichtung8 und/oder die NVM-Vorrichtung10 können die Vielzahl von I/O-Operationen bestimmten Zellen18 und/oder Plättchen16 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 Steuereinrichtung8 oder die NVM-Vorrichtung10 die I/O-Operation für die NVM-Vorrichtung10 aus Langlebigkeitsgründen zuweisen (beispielsweise abwechselnd der Stelle von Schreibvorgängen, um eine Beeinträchtigung von einigen Zellen18 durch eine relativ hohe Anzahl I/O-Operationen zu vermeiden). Bei einigen Beispielen kann die NVM-Vorrichtung10 die I/O-Operationen zu Plättchen16 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 Zellen18 auszuführen ist. Ferner kann die NVM-Vorrichtung10 bestimmen, dass die bestimmte Anzahl von Zellen18 größer ist als eine maximale Anzahl von Zellen18 , 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 Zellen18 eines Blocks kann die NVM-Vorrichtung10 einen ersten Subsatz von I/O-Operationen bestimmen, wie in einem ersten Block des Plättchens16 ausgeführt werden können. Bei einigen Beispielen kann die NVM-Vorrichtung10 lediglich den ersten Block bestimmen, falls I/O-Operationen für jede Zelle18 des Plättchens16 dieselben sind (beispielsweise dann, wenn sämtliche der Vielzahl von I/O-Operationen RESET-Operationen umfassen, um Zellen18 zu löschen; die NVM-Vorrichtung10 braucht nicht individuell eine I/O-Operation für jede Zelle18 zu bestimmen). - Die NVM-Vorrichtung
10 kann den ersten Block auf der Grundlage der Größe des Stromes bestimmen, den die Spannungsversorgungseinrichtung11 an spezifische Zellen18 und Plättchen16 bereitzustellen ausgelegt ist. Die NVM-Vorrichtung10 kann den ersten Block festlegen, um so viele Zellen18 des Plättchens16 (und darin so viele I/O-Operationen aus der Vielzahl von I/O-Operationen) einzuschließen, wie die Spannungsversorgung11 zur Bereitstellung eines ausreichenden Stromes für ein Plättchen der Plättchen16 ausgelegt ist. In einigen Fällen kann die NVM-Vorrichtung10 lediglich so ausgelegt sein, um einen ausreichenden Strom zur Ausführung von I/O-Operationen in einer gewissen Anzahl von Zellen18 einer einzigen Bitleitung zu liefern (die Spannungsversorgungseinrichtung11 ist beispielsweise so ausgelegt, um ISET für zu löschende Zellen18 einer Bitleitung bereitzustellen, nicht jedoch ISET für sechs zu löschende benachbarte Zellen18 einer Bitleitung). Ferner kann die Spannungsversorgungseinrichtung11 in gewissen Fällen lediglich so ausgelegt sein, um einen Strom zur Ausführung von I/O-Operationen in einer gewissen Anzahl von Zellen18 einer einzigen Wortleitung zu liefern (beispielsweise ist die Spannungsversorgungseinrichtung11 ausgelegt, um ISET für sechs zu löschenden Zellen18 einer Wortleitung innerhalb des Plättchens18 bereitzustellen, nicht jedoch, um ISET für sieben zu löschende Zellen18 des Plättchens16 bereitzustellen). Bei diesem Beispiel kann die NVM-Vorrichtung10 diese Information dazu heranziehen, einen Block zu bestimmen, der sechs Zellen18 einer Wortleitung zu fünf Zellen18 groß ist (womit der Block beispielsweise 30 Zellen18 enthält, die in einem Rechteck angeordnet sind). Ein Block kann eine Konfiguration/Anordnung/Form der Zellen18 auf der Oberfläche der NVM-Vorrichtung10 aufweisen. Andere Anordnungen von Zellen18 können bei anderen Beispielen, wie hier erörtert, in Abhängigkeit von der Anordnung des Plättchens16 , der Stromkapazität der NVM-Vorrichtung10 oder unter anderen Erwägungen verwendet werden. Auf diese Weise kann die NVM-Vorrichtung10 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-Vorrichtung10 Zellen18 des ersten Blocks auswählen, so dass die jeweiligen Puffer-Wortleitungen oder Puffer-Bitleitungen sich zwischen jeweiligen Zellen18 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 Zellen18 zu fünf Zellen18 bei dem obigen Beispiel kann der erste Block beispielsweise 30 Zellen18 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 Zellen18 in der NVM-Vorrichtung10 können sich in einigen Fällen mehr als eine Puffer-Bitleitung zwischen dieser Bitleitung des ersten Subsatzes der Zellen18 befinden (beispielsweise können zwei oder drei oder mehr Puffer-Bitleitungen in dem Fall, dass Zellen18 sich relativ nahe auf einer Oberfläche der NVM-Vorrichtung10 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-Vorrichtung10 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-Vorrichtung10 führen. Da die Zellen18 Zustände auf der Grundlage von thermischen Effekten umschalten, könnten lokalisierte Hot Spots benachbarte Zellen18 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-Vorrichtung10 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 Zellen18 in Blöcken kann die NVM-Vorrichtung10 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-Vorrichtung10 gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht. Die NVM-Vorrichtung10 kann, wie in2 dargestellt, ein I/O-Modul 20, ein Steuermodul22 , ein Schreibmodul24 , einen Zeilendecoder26 , ein Speicherarray28 , ein Blockkonfigurationsmodul30 , ein Zählermodul32 , einen Spaltendecoder34 und ein Erfassungsmodul36 enthalten. Bei einigen Beispielen kann die NVM-Vorrichtung10 mehr oder weniger Komponenten als jene, die in2 dargestellt sind, enthalten, oder Funktionen, die der Vielzahl von in2 dargestellten Modulen zuzuschreiben sind, können in einem einzigen Modul realisiert sein. Jedes der in2 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 Speicherarray28 kann, wie oben beschrieben, Plättchen16 und Zellen18 enthalten. - die NVM-Vorrichtung
10 ist als Module enthaltend dargestellt, (beispielsweise das Modul22 und das Blockkonfigurationsmodul30 ), 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 Steuermodul22 oder das Blockkonfigurationsmodul30 ) stattdessen durch die Steuereinrichtung8 der Datenspeichervorrichtung6 (1 ) ausgeführt werden. Obwohl Beispiele unten hauptsächlich Bestimmungen erörtern, die in Kontext eines einzigen Plättchens16 zum Zwecke der Klarheit vorgenommen werden, ist einzusehen, dass das Steuermodul22 derartige Bestimmungen für eine Vielzahl von Plättchen16 sequentiell oder gleichzeitig vornehmen kann. Das Steuermodul22 kann beispielsweise ausgelegt sein, um eine Vielzahl von I/O-Operationen parallel in einem Plättchen16 , wie hier erörtert, für eine Mehrzahl von Plättchen16 des Speicherarrays28 zu einer selben Zeit auszuführen, so dass das Steuermodul22 eine Mehrzahl von Sätzen aus der Vielzahl von I/O-Operationen managt, um in eine Mehrzahl von Plättchen16 geschrieben zu werden, oder dass das Steuermodul22 eine einzige Vielzahl von I/O-Operationen managt, die in einer Mehrzahl von Plättchen16 auszuführen sind. - Die Steuereinrichtung
8 kann eine Vielzahl von I/O-Operationen an die NVM-Vorrichtung10 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 Host4 oder der Steuereinrichtung8 benutzt wird, in ein zweites Format umsetzen, welches von der NVM-Vorrichtung10 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ättchen16 oder für jede NVM-Vorrichtung10 des NVM-Arrays28 ). 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 Steuermodul22 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ättchen16 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 Steuermodul22 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 Speicherarray28 managen. Das Schreibmodul24 kann beispielsweise I/O-Operationen für das Speicherarray28 ausführen, indem Zellen18 des Blockes eines Plättchens16 innerhalb des Speicherarrays28 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 Schreibmodul24 kann eine Vielzahl von elektrischen Impulsen an den Block leiten und festlegen, indem der Zeilendecoder26 und der Spaltendecoder34 genutzt werden. Das Schreibmodul24 kann einen elektrischen Impuls festlegen, indem ein Strom oder eine Spannung eines elektrischen Impulses spezifiziert wird. Der Zeilendecoder26 und der Spaltendecoder34 können die Vielzahl der elektrischen Impulse zu dem Block hin leiten, so dass auf der einzigen Zelle18 einer gegebenen bzw. bestimmten Zeile und Spalte pro elektrischem Impuls zugegriffen wird. Das Hinleiten eines elektrischen Impulses zu den ausgewählten Zellen18 kann einen Zustand elektrischen Widerstands des Blocks ändern, der die Lösch- oder Programmierung- bzw. Programmoperation für jede Zelle18 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 Zellen18 des Plättchens 16Aa auszuführen ist. Das Steuermodul22 kann bestimmen, dass ein erster Satz von Zellen18 die Zelle18A enthalten kann. Falls die NVM-Vorrichtung10 beispielsweise eine NVM-Vorrichtung ist, kann ein Speicherwiderstand der Zelle18A sich zunächst in einem amorphen Zustand mit einem relativ hohen elektrischen Widerstand befinden, um einen Wert, beispielsweise eine logische Eins zu speichern. Das Schreibmodul24 kann einen Satz von elektrischen Impulsen mit einem maximalen Strom von ISET für den Block erzeugen. Der Zeilendecoder26 und der Spaltendecoder34 können den elektrischen Impuls zu den Zellen 18 des ersten Blockes hinleiten, der die Zelle18A enthält. Falls die NVM-Vorrichtung10 beispielsweise eine PCM-Vorrichtung ist, kann ein Speicherwiderstand der Zelle18A 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 Schreibmodul24 kann bestimmen, dass die Vielzahl der I/O-Operationen für das Plättchen 16An auszuführen ist. Das Steuermodul22 kann einen ersten Block für das Schreibmodul24 bestimmen, um in diesen zu schreiben. Der erste Block kann die Zellen 18C enthalten. Ein Speicherwiderstand der Zelle18C kann zunächst einen relativ niedrigen elektrischen Widerstand aufweisen, um einen Wert, beispielsweise eine logische Null zu speichern. Das Schreibmodul24 kann die Spannungsversorgungseinrichtung11 dazu heranziehen, eine Vielzahl von elektrischen Impulsen mit einem maximalen Strom von IRESET zu erzeugen. Der Zeilendecoder26 und der Spaltendecoder34 können den elektrischen Impuls zu der ausgewählten Zelle hinleiten, beispielsweise zu der Zelle18B , so dass der Speicherwiderstand der Zelle18C (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ättchen16 parallel auszuführen sind. Das Steuermodul22 kann somit Subsätze aus irgendeinem oder mehreren Gründen einer Anzahl von Gründen ausführen, wie der Nähe der Vielzahl von Zellen18 , in denen Operationen auszuführen sind, um einem Lokalisierungsschwellwert zu genügen (beispielsweise dort, wo die Vielzahl von Zellen18 zumindest 19 von jeweils 20 Zellen18 ausmachen, die zu zumindest einer anderen Zelle18 der Vielzahl von Zellen18 benachbart sind, oder dort, wo die Vielzahl von Zellen 18 zumindest 75% der Zellen18 der jeweiligen Plättchen16 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 Datenspeichervorrichtung6 befehligt, Subsätze einer Vielzahl von I/O-Operationen für die Plättchen16 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 Steuermodul22 kann das Blockkonfigurationsmodul30 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 Blockkonfigurationsmodul30 kann eine Blockgröße für einen oder mehrere Plättchen16 bestimmen, in die als Teil der Ausführung der I/O-Operationen geschrieben wird. Bei gewissen Beispielen kann das Blockkonfigurationsmodul30 eine Blockgröße für jedes Plättchen 16 bestimmen, in den geschrieben wird. Bei anderen Beispielen kann das Blockkonfigurationsmodul30 lediglich eine Blockgröße für Plättchen16 bestimmen, die eine Anzahl/einen Prozentsatz von Zellen18 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 Zellen18 eines Plättchens16 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 Blockkonfigurationsmodul30 kann den zweiten Block in einer im Wesentlichen ähnlichen bzw. entsprechenden Weise bestimmen, wie das Blockkonfigurationsmodul30 den ersten Block bestimmte (beispielsweise Bestimmen des ersten Blockes so, dass die Anzahl von Zellen18 innerhalb des ersten Subsatzes unter Berücksichtigung der Stromdichte des Plättchens16 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 Blockkonfigurationsmodul30 einen 5-zu-6-Block bestimmt, kann das rechteckförmige Plättchen16 beispielsweise durch 10-zu-12 Zellen18 gegeben sein. Das Blockkonfigurationsmodul30 kann bestimmen, dass vier Reihen I/O-Operationen, die über 30 Zellen18 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 Blockkonfigurationsmodul30 kann bestimmen, jeden nachfolgenden Block auf relativ benachbarte Sätze von Bitleitungen zu lokalisieren (beispielsweise dort, wo ein erster Block sich an Wortleitungen1 -5 und Bitleitungen1 ,3 ,5 ,7 und9 befinden; ein zweiter Block kann sich an Wortleitungen1 -5 und Bitleitungen2 ,4 ,6 ,8 und10 befinden). Daraufhin, dass das Schreibmodul24 detektiert, dass ein Block einen Rand eines Plättchens16 belegt (beispielsweise das Plättchen16 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ättchens16 lokalisieren (das Schreibmodul24 kann beispielsweise einen dritten Fall des Blockes an Wortleitungen6 -10 und Bitleitungen1 ,3 ,5 ,7 und9 bestimmen). Falls das Blockkonfigurationsmodul30 auf diese Weise ausgelegt ist, kann das Blockkonfigurationsmodul 30 zu einer Zeit eine Größe eines Blocks bestimmen, woraufhin das Schreibmodul24 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. Zellen18 eines Blockes können eine oder eine Vielzahl von Puffer-Bitleitungen zwischen sich selbst und Zellen18 einer anderen Bitleitung eines Blockes aufweisen. Obwohl derartige Puffer zwischen Zellen18 in einem besonderen bzw. bestimmten Block von Zellen18 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 Blockkonfigurationsmodul30 bei einigen Beispielen Puffer-Wortleitungen in einem Block nutzen, so dass Zellen18 einer Wortleitung eines Blockes sich neben Wortleitungen befinden, die keine Zellen18 des Blockes aufweisen. Bei anderen Beispielen kann das Blockkonfigurationsmodul30 sowohl Puffer-Wortleitungen als auch Puffer-Bitleitungen nutzen, so dass Zellen18 eines Blockes niemals anderen Zellen18 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ättchens16 analysiert werden. Je mehr Zellen18 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 Speicherarrays28 ) 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 Zellen18 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 Blockkonfigurationsmodul30 kann den Spannungsabfall und die Stromdichte unter Verwendung des Erfassungsmoduls36 bestimmen, welches sich ändernde und/ oder statische elektrische Werte der NVM-Vorrichtung10 identifiziert. Das Blockkonfigurationsmodul30 kann dies durch Verringern einer Menge der Zellen18 innerhalb eines Blocks oder durch Erhöhen der physikalischen Größe des Blocks vermeiden. Auf diese Weise kann das Blockkonfigurationsmodul eine Menge an Zellen18 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 Zellen18 konfigurieren. Puffer-Bitleitungen und Puffer-Wortleitungen können sich zwischen Zellen18 eines Blockes befinden, die in unterschiedlichen Bitleitungen oder Wortleitungen vorgesehen sind. Bei einigen Beispielen kann ein Block eine Puffer-Bitleitung/-Wortleitung zwischen Zellen18 von unterschiedlichen Bitleitungen/Wortleitungen des Blockes enthalten. Bei anderen Beispielen kann ein Block zwei oder mehr Puffer-Bitleitungen/-Wortleitungen zwischen Zellen18 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 Zellen18 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 Blockkonfigurationsmodul30 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 Blockkonfigurationsmodul30 die Blockform so konfigurieren, dass das Schreibmodul24 einen Block in Bezug auf das Plättchen vorverlegen kann, um einen neuen Satz von Zellen18 einzuschließen, der sich auf eine nächsten 20% der I/O-Operationen bezieht. Das Blockkonfigurationsmodul30 kann beispielsweise Blöcke so konfigurieren, dass ein erster Block einen ersten Subsatz von Zellen18 enthält und dass ein zweiter Block einen zweiten Subsatz von Zellen18 enthält, wobei jede Zelle des ersten Subsatzes von Zellen18 jeder Zelle des zweiten Subsatzes von Zellen18 benachbart ist. - Das Blockkonfigurationsmodul
30 kann auf diese Weise Blöcke so konfigurieren, dass das Schreibmodul24 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 Schreibmodul24 kann das Zählermodul32 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 Zellen18 eines Plättchens16 umfassen, während jede Zelle18 des Plättchens16 eine jeweilige I/O-Operation zu unterziehen ist. Das Zählermodul32 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ählermodul32 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 Schreibmodul24 , das Blockkonfigurationsmodul34 und das Zählermodul32 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-Vorrichtung10 gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht. Bei einigen Beispielen kann die NVM-Vorrichtung10 ausgelegt sein, um eine Vielzahl von I/O-Operationen in Blöcken parallel auszuführen, wenn dies möglich ist. Der Zeilendecoder26 kann beispielsweise eine Bitleitung eines Blocks öffnen, woraufhin der Spaltendecoder34 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 Steuermodul22 eine ausreichende Anzahl von I/O-Operationen zusammen gruppieren kann (beispielsweise zu einem Plättchen16 zusammen). Bei gewissen Beispielen kann das Verfahren von3 dadurch beginnen, dass bestimmt wird, ob eine Vielzahl von I/O-Operationen in Blöcken parallel auszuführen ist. Die Steuereinrichtung8 (1 ) oder das Steuermodul22 können bestimmen, ob eine Vielzahl von I/O-Operationen in Subsätzen von Zellen parallel auszuführen ist, obwohl das Verfahren von3 aus Zwecken der Klarheit unter Bezugnahme auf das Steuermodul22 von2 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 Datenspeichervorrichtung6 ) das Ausführen einer Vielzahl von I/O-Operationen in Blöcken parallel für eine NVM-Vorrichtung10 auf die Vielzahl von I/O-Operationen hin einschließt, welche mehr als zehn I/O-Operationen enthalten. Bei anderen Beispielen kann das Steuermodul22 überprüfen, dass die Vielzahl von Zellen18 , in die die Vielzahl von I/O-Operationen geschrieben wird, ausreichend proximal/lokalisiert sind. Die Vielzahl der Zellen18 , die proximal/lokalisiert sind, kann bedeuten, dass jede Zelle der Vielzahl von Zellen18 sich innerhalb eines einzigen Plättchens16 oder innerhalb einer Anzahl von benachbarten Plättchen16 befindet. Bei einigen Beispielen kann die Vielzahl von Zellen18 , die proximal/lokalisiert sind, bedeuten, dass eine Anzahl oder ein Prozentsatz von Zellen18 , die als Teil der Vielzahl von I/O-Operationen nicht einer I/O-Operation unterzogen werden, dennoch zwischen/innerhalb der Vielzahl von Zellen18 liegen, niedrig bei einem Schwellwert oder unterhalb dessen liegt. Bei bestimmten Beispielen kann der Prozentsatz/die Anzahl Null sein, so dass eine einzige Zelle18 eine I/O-Operation aus der Vielzahl von I/O-Operationen nicht unterzogen wird, die noch zwischen zwei anderen Zellen18 liegen, welche eine I/O-Operation der Vielzahl von I/O-Operationen ausführen, kann dazu führen, dass das Steuermodul22 eine Vielzahl von I/O-Operationen in Blöcken parallel nicht ausführt, wie hier beschrieben. Bei anderen Beispielen kann die Datenspeichervorrichtung6 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 Steuermodul22 einschließen. Die Vielzahl der I/O-Operationen kann beispielsweise mittels des Interfaces14 der Datenspeichervorrichtung6 in dem Host4 empfangen werden. Die Steuereinrichtung8 kann dann die Vielzahl der I/O-Operationen von dem Interface14 empfangen und die Vielzahl der I/O-Operationen zu dem I/O-Modul 20 der NVM-Vorrichtung10 übertragen. Das Steuermodul22 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ättchen16 auszuführen. Bei anderen Beispielen ist die Vielzahl der I/O-Operationen in einem einzigen Plättchen der Plättchen16 auszuführen, oder das Steuermodul22 kann sämtliche der I/O-Operationen einem einzigen Plättchen der Plättchen16 zuweisen. Unabhängig davon kann das Steuermodul22 bestimmen, dass die Vielzahl der I/O-Operationen in einem Plättchen16 zu schreiben ist. Das Steuermodul22 kann den einen oder die mehreren Plättchen16 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 Blockkonfigurationsmodul30 veranlassen, Blockkonfigurationen (44 ) zu bestimmen. Bei einigen Beispielen kann dieser Schritt weggelassen sein, wenn die Blockgröße bestimmt werden kann. Das Blockkonfigurationsmodul30 kann sowohl eine generelle Form von Zellen als auch eine Größe der Zellen18 innerhalb eines Blockes bestimmen. Wie hier erörtert, kann das Blockkonfigurationsmodul30 die Stromdichte und den vorhergesagten Spannungsabfall dazu heranziehen, eine Form und eine Größe von Zellen18 eines Blockes zu bestimmen. Während das Blockkonfigurationsmodul30 Blöcke von irgendeiner Form konfigurieren kann, kann das Blockkonfigurationsmodul30 aufgrund einer rechteckförmigen Geometrie des Speicherarrays28 bei einigen Beispielen rechteckige Blöcke verwenden. - Das Konfigurationsmodul
30 kann Blöcke so konfigurieren, dass ein Block Zellen18 über eine Anzahl von Bitleitungen und Wortleitungen umfasst. Ein Block, der durch das Blockkonfigurationsmodul30 konfiguriert ist, kann Zellen aufweisen, die eine Bitleitung oder Wortleitung mit anderen Zellen des Blockes gemeinsam nutzen. Alternativ kann das Blockkonfigurationsmodul30 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 Blockkonfigurationsmodul30 kann Blöcke so konfigurieren, dass einige Blöcke Pufferzellen enthalten. Bei einigen Beispielen kann das Blockkonfigurationsmodul30 Blöcke so konfigurieren, dass jede Zelle18 des Blockes zumindest eine Puffer-Bitleitung zwischen anderen Zellen von anderen Bitleitungen des Blockes aufweist. Alternativ kann das Blockkonfigurationsmodul30 Blöcke so konfigurieren, dass jede Zelle18 eines Blockes zumindest eine Puffer-Wortleitung zwischen Zellen18 von anderen Wortleitungen des Blockes aufweisen. Alternativ kann das Blockkonfigurationsmodul30 Blöcke so konfigurieren, dass jede Zelle eines Blockes sowohl zumindest eine Puffer-Wortleitung zwischen Zellen18 von anderen Wortleitungen des Blockes als auch zumindest eine Puffer-Bitleitung zwischen Zellen18 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ättchens16 befinden. Das Blockkonfigurationsmodul30 kann Blöcke konfigurieren, um lediglich Zellen18 eines einzigen Plättchens15 sogar dann zu enthalten, falls die Vielzahl der I/O-Operationen in Zellen 18 einer Vielzahl von Plättchen16 zu schreiben ist. Wenn die Vielzahl der I/O-Operationen in Zellen18 einer Vielzahl von Plättchen16 zu schreiben ist, kann das Blockkonfigurationsmodul30 eine Blockkonfiguration für eine Mehrzahl von Plättchen16 oder für jedes Plättchen 16 bestimmen. Bei einigen Beispielen kann das Blockkonfigurationsmodul30 eine einzige Blockkonfiguration bestimmen, die von dem Schreibmodul24 verwendet werden kann, um in jedes Plättchen16 zu schreiben. Bei anderen Beispielen kann das Blockkonfigurationsmodul 30 relativ wenige (beispielsweise ein oder zwei) Blockkonfigurationen bestimmen, die von dem Schreibmodul24 genutzt werden können, um in relativ viele (z.B. 10 oder 20) Plättchens16 zu schreiben. Das Konfigurieren von Blöcken so, dass eine einzige Blockkonfiguration genutzt werden kann, um in eine Mehrzahl von Plättchen16 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ättchen16 genutzt werden kann, um I/O-Operationen für sämtliche der Zellen18 auszuführen, in die zu schreiben ist. Das Blockkonfigurationsmodul30 kann beispielsweise einen Block, der ein Rechteck ist, konfigurieren, welcher sich durch das Plättchen16 verschieben kann, um jede Zelle18 des Plättchens16 zu umfassen. Bei einigen Beispielen kann das Blockkonfigurationsmodul30 einen Block konfigurieren, um ihn auf ein jeweiliges Plättchen16 zu verkleinern, so dass das Schreibmodul24 eine einzige Blockkonfiguration dazu heranziehen kann, I/O-Operationen für jeden Block auszuführen. Ein Blockkonfigurationsmodul30 kann beispielsweise das Erfassungsmodul36 dazu heranziehen zu bestimmen, dass eine maximale Blockgröße (beispielsweise ein Maximum, wie es durch den Spannungsabfall und die Stromdichte eines Speicherarrays28 festgelegt ist) elf Wortleitungen zu sechs Bitleitungen für ein Plättchen16 beträgt, das sind 30 Wortleitungen zu 20 Bitleitungen. Bei einem derartigen Beispiel kann das Blockkonfigurationsmodul30 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 Schreibmodul24 veranlassen, den durch das Blockkonfigurationsmodul30 konfigurierten Block dazu zu nutzen, einen Subsatz der Vielzahl von I/O-Operationen in Zellen18 des Blocks parallel (46 ) zu schreiben. Wie hier erörtert, können die Zellen18 des Blockes alle sich in einem einzigen Plättchen16 befinden. Bei einigen Beispielen kann das Schreibmodul24 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ättchen16 darstellen, so dass eine Vielzahl von Plättchen16 jeweils einer Vielzahl von I/O-Operationen in einer Vielzahl von Zellen18 zu einer gegebenen Zeit unterzogen wird. Der Zeilendecoder26 kann beispielsweise eine jeweilige Bitleitung für jeden Block öffnen, woraufhin der Spaltendecoder24 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 Spaltendecoder34 eine nächste Wortleitung für jeden Block öffnen, während die Bitleitung für jeden Block noch offen ist. Der Spaltendecoder34 kann das Öffnen von Wortleitungen sequentiell solange fortsetzen, bis in sämtliche Zellen18 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ättchen50A -50B (insgesamt „Plättchen 50“) dar, wobei ein erstes Plättchen50A eine Vielzahl von Zellen52A -52JJ (insgesamt „Zellen 52“) enthält und wobei ein zweites Plättchen50B eine Vielzahl von Zellen54A -54JJ (insgesamt „Zellen 54“) enthält. Die Plättchen50 können im Wesentlichen den Plättchen16 ähnlich sein bzw. diesen entsprechen, und die Zellen52 ,54 können im Wesentlichen den Zellen18 entsprechen bzw. diesen ähnlich sein. Die Plättchen50 können an Bitleitungen56A -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 Zelle52 ,54 des Plättchens50A und des Plättchens50B 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 Zellen52 ,54 der Plättchen50 zu löschen. Das Steuermodul22 kann das Blockkonfigurationsmodul30 dazu veranlassen, das Erfassungsmodul36 zur Bestimmung der Stromdichte und des vorhergesagten Spannungsabfalls heranzuziehen. Das Steuermodul22 kann das Erfassungsmodul36 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 Steuermodul22 das Erfassungsmodul36 veranlassen, die Stromdichte und den vorhergesagten Spannungsabfall auf ein Detektieren einer physikalischen Änderung bei irgendeiner Komponente der Datenspeichervorrichtung zu bestimmen, wie dem Austausch der Spannungsversorgungseinrichtung11 . Alternativ können die Stromdichte und der vorhergesagte Spannungsabfall bei einigen Beispielen so vorbestimmt sein, dass das Steuermodul22 das Erfassungsmodul36 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 Wortleitungen58 ) die durch die Stromdichte und den Spannungsabfall zugelassene maximale Blockgröße ist. Das Blockkonfigurationsmodul30 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 Zellen52 ,54 von verschiedenen Bitleitungen56 und/oder Wortleitungen58 des Blockes umfassen. Der Block kann für beide Plättchen50 konfiguriert sein. - Das Steuermodul
22 kann das Zählermodul32 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ättchens50 zu schreiben. Das Zählermodul22 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ählermodul32 kann darin einen Zählerstand auf eins festlegen. - Das Schreibmodul
24 kann unter Heranziehung des Blocks in einen ersten Subsatz von Zellen52 ,54 in beiden Plättchen50 schreiben. Der erste Subsatz der Zellen52 für das erste Plättchen50A kann 52A, 52G, 52C, 521, 52E und 52K sein. Der erste Subsatz der Zellen54 für das zweite Plättchen50B kann 54A, 54G, 54C, 541, 54E und 54K sein. Puffer-Bitleitungen56 können Bitleitungen56B ,56D ,56H und56J umfassen. Die Bitleitung56F kann als Puffer-Bitleitung56 zwischen Blöcken des ersten Plättchens50A und des zweiten Plättchens50B wirken. Das Schreibmodul24 kann unter Heranziehung einer Vielzahl von elektrischen Impulsen der Spannungsversorgungseinrichtung11 , die zu den beabsichtigten Zellen52 ,54 unter Heranziehung des Zeilendecoders26 und des Spaltendecoders34 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 Schreibmodul24 kann in einen zweiten Subsatz von Zellen52 des ersten Plättchens50A und einen zweiten Subsatz von Zellen54 des zweiten Plättchens schreiben. Der zweite Subsatz von Zellen52 für das erste Plättchen50A kann Zellen52B ,52H ,52D ,52J , 52F und 52L enthalten. Der zweite Subsatz von Zellen54 für das zweite Plättchen50B kann Zellen54B ,54H ,54D ,54J ,54F und54L enthalten. Das Zählermodul32 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 Schreibmodul24 kann detektieren, dass sich der Block am Rand des Plättchens50 befindet, und er kann beide Blöcke nach unten zu den nächsten zwei Wortleitungen58C ,58D verschieben. Auf diese Weise kann das Schreibmodul24 das Schreiben in die Plättchen50 fortsetzen, bis das Zählermodul32 detektiert, dass die Plättchen50A ,50B vollständig gelöscht sind, wenn der Zählerstand (beispielsweise sieben) größer ist als die Anzahl von Iterationen des Zählermoduls32 , die als erforderlich bestimmt würden, um die Zellen52 ,54 der Plättchen50 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ättchens50A und des Plättchens50B geschrieben zu werden. Das Steuermodul22 kann ferner bestimmen, dass jede I/O-Operation der Vielzahl von I/O-Operationen RESET-Operationen enthalten kann, um die Zellen52 ,54 der Plättchen50 zu programmieren. Das Steuermodul22 kann das Blockkonfigurationsmodul30 veranlassen, das Detektiermodul36 zur Bestimmung der Stromdichte und des vorhergesagten Spannungsabfalls heranzuziehen. Unter Heranziehung der Daten von der Stromdichte und dem Spannungsabfall kann das Blockkonfigurationsmodul32 bestimmen, dass ein 5×4-Block (beispielsweise fünf Bitleitungen56 zu vier Wortleitungen58 ) die maximale Blockgröße ist, die durch die Stromdichte und den Spannungsabfall zugelassen ist. Wenn die NVM-Vorrichtung10 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 Spannungsversorgungseinrichtung11 weniger Strom für einen elektrischen Impuls erzeugen, während der elektrische Impuls den Zustand des elektrischen Widerstands der jeweiligen Speicherzellen18 noch zuverlässig ändert). - Das Blockkonfigurationsmodul
30 kann hier eine 3x3-Blockkonfiguration bestimmen, so dass Iterationen in die Plättchen50 passen können. Das Zählermodul32 kann bestimmen, dass vier Iterationen erforderlich sind, um in sämtliche Zellen52 ,54 der Plättchen50 zu schreiben. Auf diese Weise kann das Steuermodul22 das Blockkonfigurationsmodul30 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ättchen50 konfigurieren, dass das Blockkonfigurationsmodul32 imstande sein kann, Blöcke zu konfigurieren, welche die gesamte Bitleitung56 des Plättchens50 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-Vorrichtung10 eine PCM-Vorrichtung ist und die Vielzahl von I/O-Operationen RESET-Operationen sind, da RESET-Operationen mehr Strom benötigen). Daher kann das Steuermodul50 die Plättchen so konfigurieren, dass sie nicht mehr als vier Wortleitungen58 groß sind, so dass jeder Block imstande sein kann, die Gesamtheit der Bitleitungen56 des Plättchens50 abzudecken. Das Konfigurieren der Plättchen50 auf diese Weise kann den Aufwand an Verarbeitung reduzieren, die das Schreibmodul24 auszuführen haben kann, was den Prozess vereinfacht. Anders ausgedrückt heißt dies, dass das Schreibmodul24 in dem Fall, dass Blöcke stets die Länge der Bitleitungen56 der Plättchen50 abdecken, nicht zu bestimmen braucht, wenn ein Block nach unten als Ergebnis davon zu verschieben ist, dass ein Block sich am Rand eines Plättchens50 befindet, bevor das Zählermodul32 einen Endzählerstand erreicht hat; vielmehr kann das Schreibmodul24 einen Block in eine Richtung verschieben, bis das Zählermodul32 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ättchen50 lokalisiert ist. Bei derartigen Beispielen kann das Steuermodul22 das Blockkonfigurationsmodul 30, das Zählermodul32 und das Schreibmodul24 veranlassen, die Ausführung der Vielzahl von I/O-Operationen über die Plättchen50 zu koordinieren. Das Steuermodul22 kann beispielsweise bestimmen, die Vielzahl von I/O-Operationen in die Bitleitung56F des Plättchens 50A und die Bitleitung56H des Plättchens50B zu schreiben (beispielsweise in die Zellen 52F, 52L, 52R, 52X, 52DD, 52JJ, 54A, 54G, 54M, 54S, 54T und 54EE), so dass die Bitleitungen56F und56G innerhalb des Speicherarrays18 benachbart sind. Das Blockkonfigurationsmodul30 kann einen Block von 1×3 bestimmen, und das Steuermodul22 kann das Zählermodul32 veranlassen, einen Endzählerstand von vier zu bestimmen, um die Ausführung für beide Plättchen50 aufzunehmen. Das Steuermodul22 kann das Schreibmodul24 veranlassen, nicht in wechselnde Plättchen50 auf wechselnde Zählerstände hin zu schreiben, um eine thermische Interferenz zu vermeiden. Auf einen ersten Zählerstand hin kann das Schreibmodul24 beispielsweise lediglich in drei Zellen52F ,52L ,52R des ersten Plättchens 50A schreiben, und auf einen zweiten Zählerstand hin kann das Schreibmodul24 lediglich in drei Zellen54A ,54G ,54M des zweiten Plättchens50B schreiben; auf einen dritten Zählerstand hin kann das Schreibmodul24 lediglich drei Zellen52X , 52DD, 52JJ des ersten Plättchens schreiben, und auf den vierten Zählerstand hin kann das Schreibmodul24 lediglich in drei Zellen54S ,54T , 54EE des zweiten Plättchens50B schreiben. Auf diese Weise kann die NVM-Vorrichtung10 eine Vielzahl von I/O-Operationen in einem lokalisierten Bereich an einem Rand der Plättchen50 ausführen. -
5 ist ein Ablaufdiagramm, welches ein Beispielsverfahren zur Ausführung von I/O-Operationen für die NVM-Vorrichtung10 gemäß einem oder mehreren Verfahren dieser Offenbarung veranschaulicht. Das I/O-Modul 20 der NVM-Vorrichtung10 kann eine Vielzahl von I/O-Operationen (62 ) aufnehmen. Das Steuermodul22 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 Steuermodul22 kann bestimmen, ob die I/O-Operationen unter Heranziehung von verschiedenen Faktoren, wie hier beschrieben auszuführen sind. Falls das Steuermodul22 bestimmt, die Vielzahl der I/O-Operationen in parallelen Subsätzen nicht auszuführen („NEIN“-Pfad von 64), kann das Schreibmodul24 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 Detektiermodul36 den Spannungsabfall und die Stromdichte analysieren. Das Steuermodul22 kann diese Informationen zur Bestimmung des Schreibstroms heranziehen. Unter Heranziehen des Spannungsabfalls der Stromdichte und/oder des Schreibstroms kann das Steuermodul 22 das Blockkonfigurationsmodul30 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 Zellen18 aufweisen, wie Puffer-Bitleitungen, Puffer-Wortleitungen oder beides. Blöcke können konfiguriert sein, um iterativ um ein Plättchen16 zur Ausführung von I/O-Operationen für notwendige Zellen18 des Plättchens16 verschoben zu werden. Unter Heranziehung des Plättchenblocks kann das Zählermodul32 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ättchens16 auszuführenden I/O-Operationen durch eine Anzahl von I/O-Operationen dividiert wird, die in jedem Block ausgeführt werden. Das Zählermodul32 kann den Zählerstand auf 1 setzen (74 ). - Das Schreibmodul
24 kann einen Subsatz von I/O-Operationen innerhalb des Plättchens16 unter Heranziehung eines Blocks (76 ) parallel ausführen. Das Schreibmodul24 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 Schreibmodul24 kann stattdessen bestimmen, ob der gegenwärtige Zählerstand gleich der Endzählerstand ist. Das Schreibmodul24 kann das Zählermodul32 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ählermodul32 dem gegenwärtigen Zählerstand (82 ) eins hinzuaddieren. Das Schreibmodul24 kann die Blockadresse zu einer Stelle hin ändern, welche nicht ausgeführte Zellen18 (84 ) enthält. Das Schreibmodul24 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 Schreibmodul24 kann das Zählermodul32 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-Vorrichtung10 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)
- 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.
- 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. - 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. - 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. - Die Speichervorrichtung nach
Anspruch 4 , worin bzw. wobei der erste Subsatz von Zellen und der zweite Subsatz von Zellen dieselbe Anzahl von Zellen enthalten. - 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. - 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. - 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. - 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. - Die Speichervorrichtung nach
Anspruch 1 , worin bzw. wobei die NVM-Vorrichtung das Steuermodul enthält. - Die Speichervorrichtung nach
Anspruch 1 , worin bzw. wobei die Speichervorrichtung ferner eine Steuereinrichtung umfasst, wobei die Steuereinrichtung das Steuermodul enthält. - 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.
- 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. - 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. - Das Verfahren nach
Anspruch 14 , worin bzw. wobei der erste Subsatz von Zellen und der zweite Subsatz von Zellen dieselbe Anzahl von Zellen umfassen. - 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. - 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. - 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. - 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.
- 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.
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)
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)
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 |
-
2017
- 2017-01-27 US US15/418,178 patent/US9928907B1/en active Active
- 2017-12-06 DE DE102017128945.3A patent/DE102017128945A1/de active Pending
- 2017-12-22 CN CN201711399970.3A patent/CN108363548B/zh active Active
-
2018
- 2018-02-23 US US15/903,355 patent/US10283199B2/en active Active
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 |